admin
2021-06-23 b47f8a03db79bb1f6356479cd8a5cf190d7d9694
service-lijin/src/main/java/com/ks/lijin/service/remote/LijinCreateServiceImpl.java
@@ -16,6 +16,8 @@
import com.ks.lijin.service.LiJinProviderNoticeService;
import com.ks.lijin.service.LijinCreateService;
import com.ks.lijin.service.manager.LiJinProviderTaoKeAccountManager;
import com.ks.lijin.service.manager.LijinConfigManager;
import com.ks.lijin.service.manager.LijinDangerGoodsManager;
import com.ks.lijin.service.manager.LijinGoodsManager;
import com.ks.lijin.util.Constant;
import com.ks.lijin.utils.taobao.TaoBaoUtil;
@@ -59,13 +61,13 @@
    @Resource
    private LiJinProviderAccountService liJinProviderAccountService;
    @Reference(version = "1.0")
    @Reference(version = "1.0", check = false)
    private VipCenterService vipCenterService;
    @Reference(version = "1.0")
    @Reference(version = "1.0", check = false)
    private VipGradePotenceService vipGradePotenceService;
    @Reference(version = "1.0")
    @Reference(version = "1.0", check = false)
    private VipGradeService vipGradeService;
    @Resource
@@ -79,6 +81,12 @@
    @Resource
    private LijinGoodsManager lijinGoodsManager;
    @Resource
    private LijinDangerGoodsManager lijinDangerGoodsManager;
    @Resource
    private LijinConfigManager lijinConfigManager;
    @Override
    public List<MoneyInfo> getMoneyInfo(String uid, List<TaoBaoGoodsBrief> goodsBriefList) {
@@ -181,8 +189,9 @@
        return money;
    }
    @Override
    public boolean userCanCreateTBLijin(String uid) throws LiJinUserException {
    public boolean userCanCreateTBLijin(String uid, Date registerDate) throws LiJinUserException {
        VipGradePotence potence = vipCenterService.getVipPotence(uid);
        if (potence == null) {
            return false;
@@ -202,6 +211,18 @@
        // 使用次数已经超过最大次数
        int numExpend = liJinExpendRecordService.countTodayNumByExpend(uid);
        if (registerDate != null) {
            //判断新用户
            String newerHour = lijinConfigManager.getConfigValue("newer-hour");
            String dayPlusCount = lijinConfigManager.getConfigValue("newer-everyday-plus-lijin-count");
            if (!StringUtil.isNullOrEmpty(newerHour) && !StringUtil.isNullOrEmpty(dayPlusCount)) {
                //新用户每日附加次数
                if (System.currentTimeMillis() - registerDate.getTime() < 1000 * 60 * 60L * Integer.parseInt(dayPlusCount)) {
                    numExpend += Integer.parseInt(dayPlusCount);
                }
            }
        }
        if (numMax.intValue() <= numExpend) {
            throw new LiJinUserException(LiJinUserException.CODE_USER_CREATE_NUM_LIMIT, "用户创建淘礼金的次数超限");
        }
@@ -263,8 +284,20 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public LiJinExpendRecord createTBLijin(String uid, Long goodsId) throws LiJinException, LiJinGoodsException, LiJinUserException, LiJinAmountException {
        return createTBLijin(uid, null, goodsId);
    }
        userCanCreateTBLijin(uid);
    @Override
    public LiJinExpendRecord createTBLijin(String uid, Date registerDate, Long auctionId) throws LiJinException, LiJinGoodsException, LiJinUserException, LiJinAmountException {
        //用户是否有创建权限
        userCanCreateTBLijin(uid, registerDate);
        //商品是否在危险商品中
        boolean dangerous = lijinDangerGoodsManager.isDangerous(auctionId + "", 1);
        if (dangerous) {
            throw new LiJinGoodsException(LiJinGoodsException.CODE_GOODS_NOT_SUPPORT, "该商品暂无法创建礼金");
        }
        // 获取用户等级
        VIPEnum vipRank = vipCenterService.getVIPEnumByUid(uid);
@@ -279,7 +312,7 @@
        //淘礼金创建
        TaoBaoGoodsBrief goods = null;
        try {
            goods = TaoKeApiUtil.searchGoodsDetail(goodsId);
            goods = TaoKeApiUtil.searchGoodsDetail(auctionId);
        } catch (TaoBaoGoodsDownException e) {
            throw new LiJinGoodsException(LiJinGoodsException.CODE_GOODS_OFFLINE, "商品下线");
        }
@@ -298,15 +331,15 @@
        if (redisTemplate.opsForValue().setIfAbsent(key, "1", 120, TimeUnit.SECONDS)) {
            Date now = new Date();
            try {
                TaoLijinCreateResultDTO taoLiJinDTO = executeTaoLiJin(goodsId, lijinAmount, params);
                TaoLijinCreateResultDTO taoLiJinDTO = executeTaoLiJin(auctionId, lijinAmount, params);
                if (taoLiJinDTO == null) {
                    throw new LiJinException(1, "淘宝API推广红包创建失败");
                }
                //添加账号的
                return addCreateSuccessRecord(uid, goodsId, lijinAmount, params.getTitle(), params.getNum(), taoLiJinDTO);
                return addCreateSuccessRecord(uid, auctionId, lijinAmount, params.getTitle(), params.getNum(), taoLiJinDTO);
            } catch (LiJinGoodsException e) {
                if (e.getCode() == LiJinGoodsException.CODE_GOODS_CREATED_FULL) {
                    lijinGoodsManager.createdFullToday(goodsId, now);
                    lijinGoodsManager.createdFullToday(auctionId, now);
                }
                throw e;
            } finally {