admin
2019-06-26 fec21610e3a2574a4d474a738bc76081a59ef27e
淘礼金分享路径修改
3个文件已修改
143 ■■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/service/impl/tlj/UserTaoLiJinRecordServiceImpl.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserExtraTaoBaoInfoServiceImpl.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/user/UserExtraTaoBaoInfoService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/tlj/UserTaoLiJinRecordServiceImpl.java
@@ -29,15 +29,18 @@
import com.yeshi.fanli.service.inter.goods.CommonGoodsService;
import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
import com.yeshi.fanli.service.inter.msg.UserOtherMsgNotificationService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoBuyRelationMapService;
import com.yeshi.fanli.service.inter.tlj.ConfigTaoLiJinService;
import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinDetailService;
import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinOriginService;
import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinRecordService;
import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinReportService;
import com.yeshi.fanli.service.inter.user.UserExtraTaoBaoInfoService;
import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
import com.yeshi.fanli.service.inter.user.UserMoneyExtraService;
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.TaoBaoConstant;
import com.yeshi.fanli.util.factory.CommonGoodsFactory;
import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
@@ -84,6 +87,12 @@
    @Resource
    private UserInfoExtraService userInfoExtraService;
    @Resource
    private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService;
    @Resource
    private TaoBaoBuyRelationMapService taoBaoBuyRelationMapService;
    @Override
    public UserTaoLiJinRecord selectByPrimaryKey(Long id) {
        return userTaoLiJinRecordMapper.selectByPrimaryKey(id);
@@ -115,16 +124,35 @@
        // 新人红包 自购一元
        BigDecimal perface = new BigDecimal(1);
        String pid = TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT;
        if (goods.getMaterialLibType() == null || goods.getMaterialLibType() == 0)
            pid = TaoBaoConstant.TAOBAO_RELATION_AS_SPECIAL_PID;
        return createUserTaoLiJin(1, uid, goods.getAuctionId(), perface, 1, name, sendStartTime, sendEndTime, null,
                useEndTime, pid);
        if (goods.getMaterialLibType() == null || goods.getMaterialLibType() == 0) {// 非返利库商品
            String relationId = null;
            try {
                relationId = taoBaoBuyRelationMapService.getRelationId(uid);
            } catch (Exception e) {
                LogHelper.errorDetailInfo(e, "uid:" + uid, null);
            }
            if (StringUtil.isNullOrEmpty(relationId)) {
                throw new UserTaoLiJinRecordException(101, "渠道未备案");
            }
            UserTaoLiJinRecord record = createUserTaoLiJin(1, uid, goods.getAuctionId(), perface, 1, name,
                    sendStartTime, sendEndTime, null, useEndTime, TaoBaoConstant.TAOBAO_RELATION_AS_SPECIAL_PID);
            record.setSendUrl(record.getSendUrl() + "&relationId=" + relationId);
            return record;
        } else {// 返利库商品
            return createUserTaoLiJin(1, uid, goods.getAuctionId(), perface, 1, name, sendStartTime, sendEndTime, null,
                    useEndTime, TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT);
        }
    }
    @Override
    public UserTaoLiJinRecord createShareTaoLiJin(Long uid, int totalNum, TaoBaoGoodsBrief goods)
            throws UserTaoLiJinRecordException {
        String relationId = userExtraTaoBaoInfoService.getRelationIdByUid(uid);
        if (StringUtil.isNullOrEmpty(relationId))
            throw new UserTaoLiJinRecordException(101, "渠道未授权");
        Date date = new Date();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        SimpleDateFormat formatStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@@ -164,37 +192,42 @@
            perface = TaoLiJinUtil.getSpreadMoney(warningRate, goods);
        }
        return createUserTaoLiJin(2, uid, goods.getAuctionId(), perface, totalNum, name, sendStartTime, sendEndTime,
                null, useEndTime, TaoBaoConstant.TAOBAO_RELATION_PID_DEFAULT);
        UserTaoLiJinRecord record = createUserTaoLiJin(2, uid, goods.getAuctionId(), perface, totalNum, name,
                sendStartTime, sendEndTime, null, useEndTime, TaoBaoConstant.TAOBAO_RELATION_PID_DEFAULT);
        String sendUrl = record.getSendUrl() + "&relationId=" + relationId;
        record.setSendUrl(sendUrl);
        return record;
    }
    @Override
    @Transactional
    public UserTaoLiJinRecord createUserTaoLiJin(int origin, Long uid, Long auctionId, BigDecimal perface, int totalNum, String name,
            Date sendStartTime, Date sendEndTime, Date useStartTime, Date useEndTime,String pid) throws UserTaoLiJinRecordException{
    public UserTaoLiJinRecord createUserTaoLiJin(int origin, Long uid, Long auctionId, BigDecimal perface, int totalNum,
            String name, Date sendStartTime, Date sendEndTime, Date useStartTime, Date useEndTime, String pid)
            throws UserTaoLiJinRecordException {
        // 用户剩余可以淘礼金验证
        UserMoneyExtra userMoneyExtra = userMoneyExtraService.selectByPrimaryKey(uid);
        if (userMoneyExtra == null || userMoneyExtra.getTlj() == null) {
            throw new UserTaoLiJinRecordException(101, "红包余额不足");
        }
        // 过期
        userTaoLiJinOriginService.overdueHongBao(uid);
        BigDecimal tlj = userMoneyExtra.getTlj();
        BigDecimal totalMoney = MoneyBigDecimalUtil.mul(perface, new BigDecimal(totalNum));
        if (totalMoney.compareTo(tlj) > 0) {
            throw new UserTaoLiJinRecordException(101, "红包余额不足");
        }
        // 创建淘礼金红包
        TaoLiJinDTO taoLiJinDTO = TaoKeApiUtil.createTaoLiJin(auctionId, name, perface, totalNum, sendStartTime, sendEndTime, useStartTime, useEndTime, pid);
        TaoLiJinDTO taoLiJinDTO = TaoKeApiUtil.createTaoLiJin(auctionId, name, perface, totalNum, sendStartTime,
                sendEndTime, useStartTime, useEndTime, pid);
        if (taoLiJinDTO == null) {
            throw new UserTaoLiJinRecordException(101, "红包创建失败");
        }
        //  保存记录
        // 保存记录
        UserTaoLiJinRecord record = new UserTaoLiJinRecord();
        record.setUid(uid);
        record.setGoodsId(auctionId);
@@ -209,7 +242,7 @@
        record.setSendUrl(taoLiJinDTO.getSendUrl());
        record.setCreateTime(new Date());
        userTaoLiJinRecordMapper.insertSelective(record);
        // 剩余淘礼金
        BigDecimal surplusTlj = MoneyBigDecimalUtil.sub(tlj, totalMoney);
        UserMoneyExtra updateExtra = new UserMoneyExtra();
@@ -217,9 +250,9 @@
        updateExtra.setTlj(surplusTlj);
        updateExtra.setUpdateTime(new Date());
        userMoneyExtraService.updateByPrimaryKeySelective(updateExtra);
        record.setSurplusMoney(surplusTlj);
        // 异步
        String rightsId = taoLiJinDTO.getRightsId();
        executor.execute(new Runnable() {
@@ -237,30 +270,29 @@
                } catch (Exception e) {
                    LogHelper.errorDetailInfo(e);
                }
                // 成功使用红包
                try {
                    BigDecimal total = totalMoney;
                    BigDecimal lastMoney = null;
                    BigDecimal zero = new BigDecimal(0);
                    // 修改余额
                    List<UserTaoLiJinOrigin> list = userTaoLiJinOriginService.getSurplusLiJin(uid);
                    if (list != null && list.size() > 0) {
                        for (UserTaoLiJinOrigin taoLiJinOrigin: list) {
                            if (total.compareTo(zero) < 1 ) {
                        for (UserTaoLiJinOrigin taoLiJinOrigin : list) {
                            if (total.compareTo(zero) < 1) {
                                break;
                            }
                            BigDecimal moneySurplus = taoLiJinOrigin.getMoneySurplus();
                            lastMoney = total;
                            total = MoneyBigDecimalUtil.sub(total, moneySurplus);
                            if (total.compareTo(zero) >= 0 ) {
                            if (total.compareTo(zero) >= 0) {
                                moneySurplus = zero;
                            } else {
                                moneySurplus = MoneyBigDecimalUtil.sub(moneySurplus, lastMoney);
                            }
                            UserTaoLiJinOrigin usertlj = new UserTaoLiJinOrigin();
                            usertlj.setId(taoLiJinOrigin.getId());
                            usertlj.setMoneySurplus(moneySurplus);
@@ -271,35 +303,34 @@
                } catch (Exception e) {
                    LogHelper.errorDetailInfo(e);
                }
                // 使用成功消息
                try {
                    String beizhu = "未被领取/使用的部分将会退回";
                    SimpleDateFormat sd = new SimpleDateFormat("yyyy.MM.dd hh.mm");
                    String time = sd.format(new Date());
                    MsgOtherTaoLiJinContentDTO content = new MsgOtherTaoLiJinContentDTO();
                    content.setState("红包扣除");
                    content.setSource(time + " 创建的分享记录");
                    content.setMoney(totalMoney);
                    userOtherMsgNotificationService.taoLiJinMsg(uid, beizhu, content);
                } catch (Exception e) {
                    LogHelper.errorDetailInfo(e);
                }
                // 创建报告
                try {
                    userTaoLiJinReportService.insertDefault(rightsId);
                } catch (Exception e) {
                    LogHelper.errorDetailInfo(e);
                }
                // 检测商品是否存在
                try {
                    CommonGoods commonGoods = commonGoodsService.getCommonGoodsByGoodsIdAndGoodsType(auctionId, CommonGoods.GOODS_TYPE_TB);
                    CommonGoods commonGoods = commonGoodsService.getCommonGoodsByGoodsIdAndGoodsType(auctionId,
                            CommonGoods.GOODS_TYPE_TB);
                    if (commonGoods == null) {
                        TaoBaoGoodsBrief taoBaoGoodsBrief = redisManager.getTaoBaoGoodsBrief(auctionId);
                        if (taoBaoGoodsBrief != null) {
@@ -311,7 +342,7 @@
                }
            }
        });
        return record;
    }
fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserExtraTaoBaoInfoServiceImpl.java
@@ -29,7 +29,7 @@
    @Resource
    private ForbiddenUserIdentifyCodeService forbiddenUserIdentifyCodeService;
    @Resource
    private UserAccountBindingHistoryService userAccountBindingHistoryService;
@@ -54,7 +54,7 @@
        taoBaoInfo.setRelationId(relationId);
        taoBaoInfo.setRelationValid(valid);
        taoBaoInfo.setRelationUpdateTime(new Date());
        userExtraTaoBaoInfoMapper.clearUid(uid);
        List<UserExtraTaoBaoInfo> list = userExtraTaoBaoInfoMapper.listByTaoBaoUid(taoBaoUid);
@@ -68,12 +68,12 @@
            taoBaoInfo.setUpdateTime(new Date());
            userExtraTaoBaoInfoMapper.updateByPrimaryKeySelective(taoBaoInfo);
//            // 清空多余已绑定数据
//            if (list.size() > 1) {
//                for (int i = 1; i < list.size(); i++) {
//                    clearTaoBaoInfo(list.get(i));
//                }
//            }
            // // 清空多余已绑定数据
            // if (list.size() > 1) {
            // for (int i = 1; i < list.size(); i++) {
            // clearTaoBaoInfo(list.get(i));
            // }
            // }
        }
    }
@@ -98,7 +98,7 @@
        taoBaoInfo.setSpecialValid(valid);
        taoBaoInfo.setSpecialId(specialId);
        taoBaoInfo.setSpecialUpdateTime(new Date());
        userExtraTaoBaoInfoMapper.clearUid(uid);
        List<UserExtraTaoBaoInfo> list = userExtraTaoBaoInfoMapper.listByTaoBaoUid(taoBaoUid);
@@ -153,8 +153,8 @@
        // 判断之前用户是否绑定过
        UserExtraTaoBaoInfo info = userExtraTaoBaoInfoMapper.selectByUid(uid);
        //清除之前的用户ID
        // 清除之前的用户ID
        userExtraTaoBaoInfoMapper.clearUid(uid);
        if (list == null || list.size() == 0) {
@@ -182,7 +182,7 @@
        history.setUid(uid);
        // 之前已经绑定电话号码
        if (info!=null)
        if (info != null)
            history.setFirst(false);
        else
            history.setFirst(true);
@@ -272,4 +272,14 @@
        return userExtraTaoBaoInfoMapper.selectBySpecialIdWithUidNotNull(specialId);
    }
    @Override
    public String getRelationIdByUid(Long uid) {
        UserExtraTaoBaoInfo extraInfo = getByUid(uid);
        String relationId = null;
        if (extraInfo != null && extraInfo.getRelationId() != null && extraInfo.getRelationValid() != null
                && extraInfo.getRelationValid() == true)
            relationId = extraInfo.getRelationId();
        return relationId;
    }
}
fanli/src/main/java/com/yeshi/fanli/service/inter/user/UserExtraTaoBaoInfoService.java
@@ -85,4 +85,12 @@
     */
    public void saveUserTaoBaoInfo(Long uid, String relationId, String specialId, String taoBaoUid, String nickName,
            boolean valid) throws UserExtraTaoBaoInfoException;
    /**
     * 获取渠道ID
     * @param uid
     * @return
     */
    public String getRelationIdByUid(Long uid);
}