From 788b776c5ecffe9989b57eb17fd1eb9ca4cf5f0d Mon Sep 17 00:00:00 2001
From: yj <Administrator@192>
Date: 星期五, 07 五月 2021 20:53:52 +0800
Subject: [PATCH] 特价

---
 service-lijin/src/main/java/com/ks/lijin/service/remote/LiJinExpendRecordServiceImpl.java |  118 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 117 insertions(+), 1 deletions(-)

diff --git a/service-lijin/src/main/java/com/ks/lijin/service/remote/LiJinExpendRecordServiceImpl.java b/service-lijin/src/main/java/com/ks/lijin/service/remote/LiJinExpendRecordServiceImpl.java
index 1006f00..d0cb411 100644
--- a/service-lijin/src/main/java/com/ks/lijin/service/remote/LiJinExpendRecordServiceImpl.java
+++ b/service-lijin/src/main/java/com/ks/lijin/service/remote/LiJinExpendRecordServiceImpl.java
@@ -1,18 +1,33 @@
 package com.ks.lijin.service.remote;
 
+import com.ks.lijin.exception.LiJinException;
+import com.ks.lijin.exception.LiJinExpendRecordException;
+import com.ks.lijin.exception.TaoKeApiException;
 import com.ks.lijin.mapper.LiJinExpendRecordMapper;
 import com.ks.lijin.pojo.DO.LiJinExpendRecord;
+import com.ks.lijin.pojo.DTO.LiJinCreateParam;
+import com.ks.lijin.pojo.DTO.taobao.TaoBaoGoodsBrief;
+import com.ks.lijin.pojo.DTO.taobao.TaoKeAppInfo;
+import com.ks.lijin.pojo.DTO.taobao.TaoLiJinDTO;
 import com.ks.lijin.query.ExpendRecordQuery;
 import com.ks.lijin.service.LiJinExpendRecordService;
+import com.ks.lijin.utils.taobao.TaoKeApiUtil;
 import org.apache.dubbo.config.annotation.Service;
+import org.springframework.core.task.TaskExecutor;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.List;
 
 @Service(version = "1.0")
 public class LiJinExpendRecordServiceImpl implements LiJinExpendRecordService {
 
+    @Resource(name = "taskExecutor")
+    private TaskExecutor executor;
 
     @Resource
     private LiJinExpendRecordMapper liJinExpendRecordMapper;
@@ -40,7 +55,7 @@
 
     @Override
     public void save(LiJinExpendRecord t) {
-        if(t.getId() != null) {
+        if (t.getId() != null) {
             t.setUpdateTime(new Date());
             liJinExpendRecordMapper.updateByPrimaryKeySelective(t);
         } else {
@@ -55,4 +70,105 @@
     }
 
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public LiJinExpendRecord createLiJin(Long uid, BigDecimal money, TaoBaoGoodsBrief goods)
+            throws LiJinExpendRecordException {
+        Date date = new Date();
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+        SimpleDateFormat formatStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        String date_str = format.format(date);
+        String sendEndTime_str = date_str + " 22:00:00";
+        String useEndTime_str = date_str + " 23:59:59";
+
+        /* 鍒涘缓娣樼ぜ閲� */
+        String name = "鑷喘娣樼ぜ閲戠孩鍖�";
+        // 鍙戞斁寮�濮嬫椂闂�
+        Date sendStartTime = date;
+        // 鍙戞斁鎴鏃堕棿 - 鍒嗕韩褰撴棩22:00
+        Date sendEndTime = null;
+        // 浣跨敤缁撴潫鏃ユ湡 - 鍒嗕韩褰撴棩 23锛�59
+        Date useEndTime = null;
+
+        try {
+            sendEndTime = formatStr.parse(sendEndTime_str);
+            useEndTime = formatStr.parse(useEndTime_str);
+        } catch (ParseException e2) {
+            e2.printStackTrace();
+        }
+
+        LiJinCreateParam params = new LiJinCreateParam();
+        params.setTitle("鑷喘娣樼ぜ閲戠孩鍖�");
+        params.setUid(uid + "");
+        params.setGoodsId(goods.getAuctionId());
+        params.setUseEndTime(useEndTime);
+        params.setSendStartTime(sendStartTime);
+        params.setSendEndTime(sendEndTime);
+        params.setNum(1);
+        params.setMoney(money);
+        // params.setPid(); // pid缂哄皯 TODO
+
+       return createTaoLiJin(params);
+    }
+
+
+    @Transactional(rollbackFor = Exception.class)
+    public LiJinExpendRecord createTaoLiJin(LiJinCreateParam params) throws LiJinExpendRecordException {
+
+        String appkey = "";
+        String appsecret = "";
+
+        // 鎬婚噾棰�
+        //BigDecimal totalMoney = BigDecimalUtil.mul(params.getMoney(), new BigDecimal(params.getNum()));
+
+        // 鍒涘缓娣樼ぜ閲戠孩鍖�
+        TaoLiJinDTO taoLiJinDTO = null;
+        try {
+            taoLiJinDTO = TaoKeApiUtil.createTaoLiJin(params.getGoodsId(), params.getTitle(), params.getMoney(),
+                    params.getNum(), params.getSendStartTime(), params.getSendEndTime(),
+                    params.getUseStartTime(), params.getUseEndTime(), new TaoKeAppInfo(appkey, appsecret, params.getPid()));
+        } catch (LiJinException e) {
+            // 閫氱煡鐩稿簲渚涘簲鍟�  TODO
+            executor.execute(new Runnable() {
+                @Override
+                public void run() {
+                    if (e.getCode() == LiJinException.CODE_TLJ_FORBIDDEN) {
+                        // 璇ュ晢鍝佷笉鏀寔鍒涘缓娣樼ぜ閲戠孩鍖�
+                    } else if (e.getCode() == LiJinException.CODE_TLJ_NO_MONEY) {
+                        // 瀹樻柟鐜╂硶閽卞寘浣欓涓嶈冻
+                    } else if (e.getCode() == LiJinException.CODE_TLJ_UN_PAID) {
+                        // 鏈垱寤鸿处鎴�
+                    }
+                }
+            });
+        } catch (TaoKeApiException e1) {
+            // TODO
+        }
+
+        if (taoLiJinDTO == null) {
+            throw new LiJinExpendRecordException(101, "娣樺疂API鎺ㄥ箍绾㈠寘鍒涘缓澶辫触");
+        }
+
+        // 淇濆瓨璁板綍
+        LiJinExpendRecord record = new LiJinExpendRecord();
+        record.setUid(params.getUid());
+        record.setGoodsId(params.getGoodsId() + "");
+        record.setTitle(params.getTitle());
+        record.setNum(params.getNum());
+        record.setMoney(params.getMoney());
+        record.setRightsId(taoLiJinDTO.getRightsId());
+        record.setSendUrl(taoLiJinDTO.getSendUrl());
+        record.setCreateTime(new Date());
+        liJinExpendRecordMapper.insertSelective(record);
+
+        executor.execute(new Runnable() {
+            @Override
+            public void run() {
+                // 鏇存柊瀵瑰簲 闄愬埗娆℃暟鍜岄噾棰�
+            }
+        });
+        return record;
+    }
+
+
 }

--
Gitblit v1.8.0