YJ
2021-05-14 502c88a5376e45f46b7df2161167628ffd8f9bf6
service-lijin/src/main/java/com/ks/lijin/service/remote/LiJinExpendRecordServiceImpl.java
@@ -5,12 +5,17 @@
import com.ks.lijin.exception.TaoKeApiException;
import com.ks.lijin.mapper.LiJinExpendRecordMapper;
import com.ks.lijin.pojo.DO.LiJinExpendRecord;
import com.ks.lijin.pojo.DO.LiJinProviderAccount;
import com.ks.lijin.pojo.DO.LiJinProviderNotice;
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.pojo.Enums.NoticeTypeEnum;
import com.ks.lijin.query.ExpendRecordQuery;
import com.ks.lijin.service.LiJinExpendRecordService;
import com.ks.lijin.service.LiJinProviderAccountService;
import com.ks.lijin.service.LiJinProviderNoticeService;
import com.ks.lijin.utils.taobao.TaoKeApiUtil;
import org.apache.dubbo.config.annotation.Service;
import org.springframework.core.task.TaskExecutor;
@@ -32,6 +37,11 @@
    @Resource
    private LiJinExpendRecordMapper liJinExpendRecordMapper;
    @Resource
    private LiJinProviderNoticeService liJinProviderNoticeService;
    @Resource
    private  LiJinProviderAccountService liJinProviderAccountService;
    @Override
    public long count(LiJinExpendRecord obj) {
@@ -72,8 +82,15 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public LiJinExpendRecord createLiJin(Long uid, BigDecimal money, TaoBaoGoodsBrief goods)
    public LiJinExpendRecord createLiJin(String uid, BigDecimal money, TaoBaoGoodsBrief goods)
            throws LiJinExpendRecordException {
        // TODO 验证次数
        int expendNum = countTodayNumByExpend(uid);
        // TODO 验证金额
        BigDecimal bigDecimal = countTodayMoneyByExpend(uid);
        Date date = new Date();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        SimpleDateFormat formatStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@@ -106,7 +123,10 @@
        params.setSendEndTime(sendEndTime);
        params.setNum(1);
        params.setMoney(money);
        // params.setPid(); // pid缺少 TODO
        //  params.setAppkey();
        //  params.setAppsecret();
       return createTaoLiJin(params);
    }
@@ -114,12 +134,8 @@
    @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()));
        String appkey =params.getAppkey();
        String appsecret = params.getAppsecret();
        // 创建淘礼金红包
        TaoLiJinDTO taoLiJinDTO = null;
@@ -132,10 +148,23 @@
            executor.execute(new Runnable() {
                @Override
                public void run() {
                    LiJinProviderAccount account  = liJinProviderAccountService.getByAppInfo(appkey, appsecret);
                    if (account == null) {
                        return;
                    }
                    LiJinProviderNotice notice = new LiJinProviderNotice();
                    notice.setRead(false);
                    notice.setProviderId(account.getProviderId());
                    if (e.getCode() == LiJinException.CODE_TLJ_FORBIDDEN) {
                        // 该商品不支持创建淘礼金红包
                    } else if (e.getCode() == LiJinException.CODE_TLJ_NO_MONEY) {
                        // 官方玩法钱包余额不足
                        notice.setTitle("玩法钱包余额不足");
                        notice.setContent("账号:"+ appkey +"官方玩法钱包余额不足");
                        notice.setType(NoticeTypeEnum.noMoney.name());
                        liJinProviderNoticeService.save(notice);
                    } else if (e.getCode() == LiJinException.CODE_TLJ_UN_PAID) {
                        // 未创建账户
                    }
@@ -161,14 +190,17 @@
        record.setCreateTime(new Date());
        liJinExpendRecordMapper.insertSelective(record);
        executor.execute(new Runnable() {
            @Override
            public void run() {
                // 更新对应 限制次数和金额
            }
        });
        return record;
    }
    @Override
    public int countTodayNumByExpend(String uid) {
        return liJinExpendRecordMapper.countTodayNumByExpend(uid);
    }
    @Override
    public BigDecimal countTodayMoneyByExpend(String uid) {
        return liJinExpendRecordMapper.countTodayMoneyByExpend(uid);
    }
}