admin
2021-05-19 bed77a07bfb25f4f5b01883cc63d2dddf317d798
新增礼金批量获取接口
3个文件已修改
1个文件已添加
126 ■■■■■ 已修改文件
facade-lijin/src/main/java/com/ks/lijin/pojo/DTO/MoneyInfo.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
facade-lijin/src/main/java/com/ks/lijin/service/LijinCreateService.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-lijin/src/main/java/com/ks/lijin/service/remote/LijinCreateServiceImpl.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-vip/src/main/java/com/ks/vip/service/remote/VipCenterServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
facade-lijin/src/main/java/com/ks/lijin/pojo/DTO/MoneyInfo.java
New file
@@ -0,0 +1,58 @@
package com.ks.lijin.pojo.DTO;
import java.io.Serializable;
import java.math.BigDecimal;
public class MoneyInfo implements Serializable {
    //商品信息
    private String goodsId;
    private int goodsType;
    //返利面额
    private BigDecimal fanliAmount;
    //礼金面额
    private BigDecimal lijinAmount;
    //首单礼金
    private BigDecimal firstOrderAmount;
    public String getGoodsId() {
        return goodsId;
    }
    public void setGoodsId(String goodsId) {
        this.goodsId = goodsId;
    }
    public int getGoodsType() {
        return goodsType;
    }
    public void setGoodsType(int goodsType) {
        this.goodsType = goodsType;
    }
    public BigDecimal getFanliAmount() {
        return fanliAmount;
    }
    public void setFanliAmount(BigDecimal fanliAmount) {
        this.fanliAmount = fanliAmount;
    }
    public BigDecimal getLijinAmount() {
        return lijinAmount;
    }
    public void setLijinAmount(BigDecimal lijinAmount) {
        this.lijinAmount = lijinAmount;
    }
    public BigDecimal getFirstOrderAmount() {
        return firstOrderAmount;
    }
    public void setFirstOrderAmount(BigDecimal firstOrderAmount) {
        this.firstOrderAmount = firstOrderAmount;
    }
}
facade-lijin/src/main/java/com/ks/lijin/service/LijinCreateService.java
@@ -6,14 +6,26 @@
import com.ks.lijin.exception.LiJinUserException;
import com.ks.lijin.pojo.DO.LiJinExpendRecord;
import com.ks.lijin.pojo.DTO.LiJinCreateParam;
import com.ks.lijin.pojo.DTO.MoneyInfo;
import com.ks.vip.pojo.Enums.VIPEnum;
import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBrief;
import java.math.BigDecimal;
import java.util.List;
/**
 * 礼金创建服务
 */
public interface LijinCreateService {
    /**
     * 获取商品的资金信息
     * @param uid
     * @param goodsBriefList
     * @return
     */
    public List<MoneyInfo> getMoneyInfo(String uid, List<TaoBaoGoodsBrief> goodsBriefList);
    /**
     * 获取商品可创建的淘礼金面额,若不能创建需要抛出相关的异常(1.商品不支持礼金创建 2.当前用户不可创建)
@@ -24,6 +36,7 @@
     */
    public BigDecimal getTBLijinAmount(Long actionId, String uid)
            throws LiJinGoodsException, LiJinUserException, LiJinAmountException;
    /**
     * 获取商品可创建的淘礼金面额,若不能创建需要抛出相关的异常(1.商品不支持礼金创建)
@@ -65,7 +78,7 @@
     * @throws LiJinUserException
     * @throws LiJinAmountException
     */
    public LiJinExpendRecord createTBLijin(String uid,Long auctionId)
    public LiJinExpendRecord createTBLijin(String uid, Long auctionId)
            throws LiJinException, LiJinGoodsException, LiJinUserException, LiJinAmountException;
service-lijin/src/main/java/com/ks/lijin/service/remote/LijinCreateServiceImpl.java
@@ -6,6 +6,7 @@
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.MoneyInfo;
import com.ks.lijin.pojo.DTO.taobao.TaoKeAppInfo;
import com.ks.lijin.pojo.DTO.taobao.TaoLiJinDTO;
import com.ks.lijin.pojo.Enums.NoticeTypeEnum;
@@ -20,17 +21,21 @@
import com.ks.vip.pojo.Enums.VIPEnum;
import com.ks.vip.service.VipCenterService;
import com.ks.vip.service.VipGradePotenceService;
import com.ks.vip.service.VipGradeService;
import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBrief;
import org.apache.dubbo.config.annotation.Reference;
import org.apache.dubbo.config.annotation.Service;
import org.springframework.core.task.TaskExecutor;
import org.springframework.transaction.annotation.Transactional;
import org.yeshi.utils.MoneyBigDecimalUtil;
import org.yeshi.utils.StringUtil;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -56,9 +61,47 @@
    @Reference(version = "1.0")
    private VipGradePotenceService vipGradePotenceService;
    @Reference(version = "1.0")
    private VipGradeService vipGradeService;
    @Resource
    private LiJinExpendRecordService liJinExpendRecordService;
    @Override
    public List<MoneyInfo> getMoneyInfo(String uid, List<TaoBaoGoodsBrief> goodsBriefList) {
        VIPEnum vipRank = null;
        if (!StringUtil.isNullOrEmpty(uid)) {
            vipRank = vipCenterService.getVIPEnumByUid(uid);
        }
        if (vipRank == null) {
            vipRank = vipGradeService.getDefaultGrade().getIdentity();
        }
        VipGradePotence potence = vipGradePotenceService.getPotenceByVipEnum(vipRank);
        List<MoneyInfo> list = new ArrayList<>();
        for (TaoBaoGoodsBrief goods : goodsBriefList) {
            MoneyInfo moneyInfo = new MoneyInfo();
            moneyInfo.setGoodsId(goods.getAuctionId() + "");
            moneyInfo.setGoodsType(1);
            try {
                moneyInfo.setLijinAmount(getTBLijinAmount(goods, vipRank));
            } catch (LiJinGoodsException e) {
                e.printStackTrace();
            } catch (LiJinAmountException e) {
                e.printStackTrace();
            }
            //计算返利比例
            BigDecimal rebateRate = potence.getRebatePercent();
            BigDecimal couponPrice = TaoBaoUtil.getAfterUseCouplePrice(goods);
            BigDecimal fanliMoney = couponPrice.multiply(rebateRate).divide(new BigDecimal(100), 2, RoundingMode.FLOOR);
            moneyInfo.setFanliAmount(fanliMoney);
            moneyInfo.setFirstOrderAmount(null);
            list.add(moneyInfo);
        }
        //获取
        return list;
    }
    @Override
    public BigDecimal getTBLijinAmount(Long actionId, String uid) throws LiJinGoodsException, LiJinUserException, LiJinAmountException {
@@ -241,6 +284,7 @@
    /**
     * 调用账号以及淘宝API
     *
     * @param uid
     * @param goodsId
     * @param lijinAmount
@@ -274,7 +318,7 @@
                        LiJinProviderNotice notice = new LiJinProviderNotice();
                        notice.setRead(false);
                        notice.setProviderId(account.getProviderId());
                       if (e.getCode() == LiJinException.CODE_TLJ_NO_MONEY) {
                        if (e.getCode() == LiJinException.CODE_TLJ_NO_MONEY) {
                            // 官方玩法钱包余额不足
                            notice.setTitle("玩法钱包余额不足");
                            notice.setContent("账号:" + account.getAccountName() + "官方玩法钱包余额不足");
@@ -296,8 +340,9 @@
    /**
     * 获取商品可创建的礼金金额
     * @param goods 商品
     * @param vipRank  会员等级
     *
     * @param goods   商品
     * @param vipRank 会员等级
     * @return
     * @throws LiJinGoodsException
     * @throws LiJinAmountException
service-vip/src/main/java/com/ks/vip/service/remote/VipCenterServiceImpl.java
@@ -147,7 +147,7 @@
    public VipGrade getVipGrade(String uid) {
        VipGrade vipGrade = null;
        VipCenter vipCenter = vipCenterMapper.getByUid(uid);
        if (vipCenter != null || vipCenter.getGradeId() != null) {
        if (vipCenter != null && vipCenter.getGradeId() != null) {
            long nowTime = java.lang.System.currentTimeMillis();
            if (vipCenter.getStartTime().getTime() <= nowTime && vipCenter.getEndTime().getTime() >= nowTime) {
                vipGrade = vipGradeService.selectByPrimaryKey(vipCenter.getGradeId());