| | |
| | | import com.yeshi.fanli.entity.bus.user.TokenRecord.TokenTypeEnum;
|
| | | import com.yeshi.fanli.entity.bus.user.UserMoneyExtra;
|
| | | import com.yeshi.fanli.entity.goods.CommonGoods;
|
| | | import com.yeshi.fanli.entity.system.ConfigKeyEnum;
|
| | | import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
|
| | | import com.yeshi.fanli.entity.taobao.TaoKeAppInfo;
|
| | | import com.yeshi.fanli.exception.taobao.TaoKeApiException;
|
| | |
| | | import com.yeshi.fanli.log.LogHelper;
|
| | | import com.yeshi.fanli.service.inter.config.ConfigService;
|
| | | import com.yeshi.fanli.service.inter.goods.CommonGoodsService;
|
| | | import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
|
| | | import com.yeshi.fanli.service.inter.money.UserMoneyExtraService;
|
| | | import com.yeshi.fanli.service.inter.msg.UserOtherMsgNotificationService;
|
| | | import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
|
| | | import com.yeshi.fanli.service.inter.taobao.ShareHotGoodsService;
|
| | | import com.yeshi.fanli.service.inter.taobao.TaoBaoBuyRelationMapService;
|
| | | import com.yeshi.fanli.service.inter.tlj.ConfigTaoLiJinService;
|
| | |
| | | import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinRecordService;
|
| | | import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinReportService;
|
| | | import com.yeshi.fanli.service.inter.user.TokenRecordService;
|
| | | import com.yeshi.fanli.service.inter.user.UserExtraTaoBaoInfoService;
|
| | | import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
|
| | | import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService;
|
| | | import com.yeshi.fanli.util.Constant;
|
| | | import com.yeshi.fanli.util.MoneyBigDecimalUtil;
|
| | | import com.yeshi.fanli.util.RedisManager;
|
| | |
| | | import com.yeshi.fanli.util.TaoBaoConstant;
|
| | | import com.yeshi.fanli.util.TokenUtil;
|
| | | import com.yeshi.fanli.util.factory.CommonGoodsFactory;
|
| | | import com.yeshi.fanli.util.taobao.TaoBaoUtil;
|
| | | import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
|
| | | import com.yeshi.fanli.util.taobao.TaoLiJinUtil;
|
| | | import com.yeshi.fanli.vo.msg.ClientTextStyleVO;
|
| | |
| | |
|
| | | @Resource
|
| | | private RedisManager redisManager;
|
| | | |
| | |
|
| | | @Resource
|
| | | private ConfigService configService;
|
| | |
|
| | |
| | |
|
| | | @Resource
|
| | | private ShareHotGoodsService shareHotGoodsService;
|
| | | |
| | |
|
| | | @Resource
|
| | | private TokenRecordService tokenRecordService;
|
| | | |
| | |
|
| | | @Resource
|
| | | private UserTaoLiJinGiveRecordService userTaoLiJinGiveRecordService;
|
| | | |
| | |
|
| | | @Override
|
| | | public UserTaoLiJinRecord selectByPrimaryKey(Long id) {
|
| | | return userTaoLiJinRecordMapper.selectByPrimaryKey(id);
|
| | | }
|
| | |
|
| | | @Transactional
|
| | | @Transactional(rollbackFor=Exception.class)
|
| | | @Override
|
| | | public UserTaoLiJinRecord createSelfBuyTaoLiJin(Long uid, int totalNum, TaoBaoGoodsBrief goods)
|
| | | public UserTaoLiJinRecord createSelfBuyTaoLiJin(Long uid, BigDecimal couplePrice, TaoBaoGoodsBrief goods)
|
| | | throws UserTaoLiJinRecordException {
|
| | | Date date = new Date();
|
| | | SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
|
| | |
| | | } catch (ParseException e2) {
|
| | | e2.printStackTrace();
|
| | | }
|
| | | // 新人红包 自购一元
|
| | | BigDecimal perface = new BigDecimal(1);
|
| | |
|
| | | if (goods.getMaterialLibType() == null || goods.getMaterialLibType() == 0) {// 非返利库商品
|
| | | if (!TaoBaoUtil.isSpecialGoods(goods.getMaterialLibType())) {// 非返利库商品
|
| | | String relationId = null;
|
| | | try {
|
| | | relationId = taoBaoBuyRelationMapService.getRelationId(uid);
|
| | |
| | | if (StringUtil.isNullOrEmpty(relationId)) {
|
| | | throw new UserTaoLiJinRecordException(101, "渠道未备案");
|
| | | }
|
| | | UserTaoLiJinRecord record = createUserTaoLiJin(1, uid, goods.getAuctionId(), perface, 1, name,
|
| | | UserTaoLiJinRecord record = createUserTaoLiJin(1, uid, goods.getAuctionId(), couplePrice, 1, name,
|
| | | sendStartTime, sendEndTime, null, useEndTime, TaoBaoConstant.TAOBAO_RELATION_AS_SPECIAL_PID);
|
| | | record.setSendUrl(record.getSendUrl() + "&relationId=" + relationId);
|
| | | UserTaoLiJinRecord updateRecoed = new UserTaoLiJinRecord();
|
| | |
| | | userTaoLiJinRecordMapper.updateByPrimaryKeySelective(record);
|
| | | return record;
|
| | | } else {// 返利库商品
|
| | | return createUserTaoLiJin(1, uid, goods.getAuctionId(), perface, 1, name, sendStartTime, sendEndTime, null,
|
| | | return createUserTaoLiJin(1, uid, goods.getAuctionId(), couplePrice, 1, name, sendStartTime, sendEndTime, null,
|
| | | useEndTime, TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT);
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | @Transactional
|
| | | @Transactional(rollbackFor=Exception.class)
|
| | | @Override
|
| | | public UserTaoLiJinRecord createShareTaoLiJin(Long uid, int totalNum, TaoBaoGoodsBrief goods)
|
| | | throws UserTaoLiJinRecordException {
|
| | |
| | | }
|
| | |
|
| | | @Override
|
| | | @Transactional
|
| | | @Transactional(rollbackFor=Exception.class)
|
| | | 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 getByRightsId(String rightsId) {
|
| | | return userTaoLiJinRecordMapper.getByRightsId(rightsId);
|
| | | }
|
| | | |
| | |
|
| | | @Override
|
| | | public String giveTaolijin(Long uid, BigDecimal amount) throws UserTaoLiJinRecordException{
|
| | | if (uid == null || amount == null) |
| | | throw new UserTaoLiJinRecordException(1,"参数不正确");
|
| | | |
| | | public String giveTaolijin(Long uid, BigDecimal amount) throws UserTaoLiJinRecordException {
|
| | | if (uid == null || amount == null)
|
| | | throw new UserTaoLiJinRecordException(1, "参数不正确");
|
| | |
|
| | | String giveMin = configTaoLiJinService.getValueByKey("give_min_amount");
|
| | | if (amount.compareTo(new BigDecimal(giveMin)) < 0)
|
| | | throw new UserTaoLiJinRecordException(1,"赠送推广红包金额至少" + giveMin + "元");
|
| | | |
| | | throw new UserTaoLiJinRecordException(1, "赠送推广红包金额至少" + giveMin + "元");
|
| | |
|
| | | // 用户剩余可以淘礼金验证
|
| | | UserMoneyExtra userMoneyExtra = userMoneyExtraService.selectByPrimaryKey(uid);
|
| | | if (userMoneyExtra == null || userMoneyExtra.getTlj() == null)
|
| | | throw new UserTaoLiJinRecordException(1, "红包余额不足");
|
| | | |
| | |
|
| | | BigDecimal tlj = userMoneyExtra.getTlj();
|
| | | if (amount.compareTo(tlj) > 0)
|
| | | throw new UserTaoLiJinRecordException(1, "红包余额不足");
|
| | | |
| | |
|
| | | Date nowDate = new Date();
|
| | | // 赠送记录
|
| | | UserTaoLiJinGiveRecord giveRecord = new UserTaoLiJinGiveRecord();
|
| | |
| | | giveRecord.setGiveTime(nowDate);
|
| | | giveRecord.setEndTime(DateUtil.plusDayDate(Constant.GIVE_DAYS, new Date()));
|
| | | userTaoLiJinGiveRecordService.insertSelective(giveRecord);
|
| | | |
| | |
|
| | | // 口令记录
|
| | | TokenRecord tokenRecord = new TokenRecord();
|
| | | tokenRecord.setUid(uid);
|
| | |
| | | tokenRecord.setEndTime(DateUtil.plusDayDate(Constant.TOKEN_DAYS, new Date()));
|
| | | tokenRecord.setState(0);
|
| | | tokenRecordService.insertSelective(tokenRecord);
|
| | | |
| | |
|
| | | // 创建口令
|
| | | String token = TokenUtil.createToken(tokenRecord.getId());
|
| | | tokenRecord.setToken(token);
|
| | | tokenRecordService.updateByPrimaryKeySelective(tokenRecord);
|
| | | |
| | |
|
| | | // 更新余额
|
| | | UserMoneyExtra updateExtra = new UserMoneyExtra();
|
| | | updateExtra.setUid(uid);
|
| | | updateExtra.setTlj(MoneyBigDecimalUtil.sub(tlj, amount));
|
| | | updateExtra.setUpdateTime(new Date());
|
| | | userMoneyExtraService.updateByPrimaryKeySelective(updateExtra);
|
| | | |
| | |
|
| | | String tips = configTaoLiJinService.getValueByKey("give_taolijin_tips");
|
| | | String projectChineseName = Constant.systemCommonConfig.getProjectChineseName();
|
| | | while(tips.contains("{APP名称}")) {
|
| | | while (tips.contains("{APP名称}")) {
|
| | | tips = tips.replace("{APP名称}", projectChineseName);
|
| | | }
|
| | | tips = tips.replace("{口令}", token).replace("{下载链接}", configService.get("app_down_link"))
|
| | | .replace("{面额}", amount.setScale(0).toString());
|
| | | |
| | | tips = tips.replace("{口令}", token).replace("{下载链接}", configService.get(ConfigKeyEnum.appDownLink.getKey())).replace("{面额}",
|
| | | amount.setScale(0).toString());
|
| | |
|
| | | executor.execute(new Runnable() {
|
| | | @Override
|
| | | public void run() {
|
| | |
| | | }
|
| | | }
|
| | | });
|
| | | |
| | |
|
| | | return tips;
|
| | | }
|
| | | |
| | |
|
| | | }
|