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