| | |
| | | import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinRecord;
|
| | | import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinReport;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
|
| | | import com.yeshi.fanli.entity.bus.user.UserMoneyExtra;
|
| | | import com.yeshi.fanli.entity.bus.user.UserRank;
|
| | | import com.yeshi.fanli.exception.tlj.UserTaoLiJinOriginException;
|
| | | import com.yeshi.fanli.log.LogHelper;
|
| | |
| | | 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.UserInfoExtraService;
|
| | | import com.yeshi.fanli.service.inter.user.UserMoneyExtraService;
|
| | | import com.yeshi.fanli.util.MoneyBigDecimalUtil;
|
| | |
| | |
|
| | | @Resource
|
| | | private UserTaoLiJinRecordService userTaoLiJinRecordService;
|
| | | |
| | | @Resource
|
| | | private UserTaoLiJinReportService userTaoLiJinReportService;
|
| | |
|
| | |
|
| | | @Override
|
| | |
| | | if (uid == null) {
|
| | | throw new UserTaoLiJinOriginException(1, "参数不能为空");
|
| | | }
|
| | | String value = configTaoLiJinService.getValueByKey("hongbao_newbies");
|
| | | String value = configTaoLiJinService.getValueByKey("hongbao_newbies",null);
|
| | | if (StringUtil.isNullOrEmpty(value)) {
|
| | | throw new UserTaoLiJinOriginException(1, "系统红包不存在");
|
| | | }
|
| | |
| | | throw new UserTaoLiJinOriginException(2, "用户等级不足");
|
| | | }
|
| | |
|
| | | String value = configTaoLiJinService.getValueByKey(key);
|
| | | String value = configTaoLiJinService.getValueByKey(key,null);
|
| | | if (StringUtil.isNullOrEmpty(value)) {
|
| | | throw new UserTaoLiJinOriginException(1, "系统红包不存在");
|
| | | }
|
| | |
| | | throw new UserTaoLiJinOriginException(1, "参数不能为空");
|
| | | }
|
| | |
|
| | | String value = configTaoLiJinService.getValueByKey("hongbao_invite");
|
| | | String value = configTaoLiJinService.getValueByKey("hongbao_invite",null);
|
| | | if (StringUtil.isNullOrEmpty(value)) {
|
| | | throw new UserTaoLiJinOriginException(1, "系统红包不存在");
|
| | | }
|
| | |
| | | throw new UserTaoLiJinOriginException(1, "用户未登录");
|
| | | }
|
| | |
|
| | | String value = configTaoLiJinService.getValueByKey("hongbao_share");
|
| | | String value = configTaoLiJinService.getValueByKey("hongbao_share",null);
|
| | | if (StringUtil.isNullOrEmpty(value)) {
|
| | | throw new UserTaoLiJinOriginException(1, "系统红包不存在");
|
| | | }
|
| | |
| | | UserTaoLiJinOrigin origin = saveOrigin(uid, 1, money, TaoLiJinOriginEnum.shareWin);
|
| | | // 红包明细
|
| | | userTaoLiJinDetailService.createAddDetail(origin);
|
| | | // 消息
|
| | | executor.execute(new Runnable() {
|
| | | @Override
|
| | | public void run() {
|
| | | try {
|
| | | String beizhu = "近30天产生过分享(仅一次奖励)";
|
| | | MsgOtherTaoLiJinContentDTO content = new MsgOtherTaoLiJinContentDTO();
|
| | | content.setState("红包增加");
|
| | | content.setSource("分享订单奖励");
|
| | | content.setMoney(money);
|
| | | userOtherMsgNotificationService.taoLiJinMsg(uid, beizhu, content);
|
| | | } catch (Exception e) {
|
| | | LogHelper.errorDetailInfo(e);
|
| | | }
|
| | | }
|
| | | });
|
| | | // // 消息
|
| | | // executor.execute(new Runnable() {
|
| | | // @Override
|
| | | // public void run() {
|
| | | // try {
|
| | | // String beizhu = "近30天产生过分享(仅一次奖励)";
|
| | | // MsgOtherTaoLiJinContentDTO content = new MsgOtherTaoLiJinContentDTO();
|
| | | // content.setState("红包增加");
|
| | | // content.setSource("分享订单奖励");
|
| | | // content.setMoney(money);
|
| | | // userOtherMsgNotificationService.taoLiJinMsg(uid, beizhu, content);
|
| | | // } catch (Exception e) {
|
| | | // LogHelper.errorDetailInfo(e);
|
| | | // }
|
| | | // }
|
| | | // });
|
| | | return origin;
|
| | | }
|
| | |
|
| | |
| | |
|
| | | // 红包明细
|
| | | userTaoLiJinDetailService.createAddDetail(taoLiJinOrigin);
|
| | | |
| | | // 消息
|
| | | executor.execute(new Runnable() {
|
| | | @Override
|
| | |
| | |
|
| | | @Override
|
| | | public void overdueHongBao(Long uid) {
|
| | | // 15天前过期
|
| | | Date date = null;
|
| | | if (uid == null) {
|
| | | return;
|
| | | }
|
| | | |
| | | // 15天前过期- 非等级红包
|
| | | try {
|
| | | date = DateUtil.reduceDay(15, new Date());
|
| | | Date date = DateUtil.reduceDay(14, new Date());
|
| | | List<UserTaoLiJinOrigin> list = userTaoLiJinOriginMapper.getOverdueTaoLiJin(uid, date);
|
| | | executeOverdueHongBao(uid, date, list);
|
| | | } catch (ParseException e) {
|
| | | e.printStackTrace();
|
| | | }
|
| | |
|
| | | if (date == null) {
|
| | | return;
|
| | | // 30天前过期 - 等级红包
|
| | | try {
|
| | | Date date = DateUtil.reduceDay(29, new Date());
|
| | | List<UserTaoLiJinOrigin> list = userTaoLiJinOriginMapper.getOverdueTaoLiJinByRank(uid, date);
|
| | | executeOverdueHongBao(uid, date, list);
|
| | | } catch (ParseException e) {
|
| | | e.printStackTrace();
|
| | | }
|
| | | |
| | | List<UserTaoLiJinOrigin> list = userTaoLiJinOriginMapper.getOverdueTaoLiJin(uid, date);
|
| | | }
|
| | |
|
| | | |
| | | public void executeOverdueHongBao(Long uid, Date date, List<UserTaoLiJinOrigin> list) {
|
| | | if (list == null || list.size() == 0) {
|
| | | return;
|
| | | }
|
| | | |
| | |
|
| | | BigDecimal total = new BigDecimal(0);
|
| | | for (UserTaoLiJinOrigin userTaoLiJinOrigin: list) {
|
| | | |
| | | for (UserTaoLiJinOrigin userTaoLiJinOrigin : list) {
|
| | | SimpleDateFormat sd = new SimpleDateFormat("yyyy.MM.dd HH.mm");
|
| | | String time = sd.format(userTaoLiJinOrigin.getCreateTime());
|
| | |
|
| | | BigDecimal moneySurplus = userTaoLiJinOrigin.getMoneySurplus();
|
| | | total = MoneyBigDecimalUtil.add(total, moneySurplus);
|
| | |
|
| | | String rightsId = null;
|
| | | boolean refund = false;
|
| | | TaoLiJinOriginEnum originEnum = userTaoLiJinOrigin.getOrigin();
|
| | | if (TaoLiJinOriginEnum.refund.equals(originEnum)) {
|
| | | refund = true;
|
| | | rightsId = userTaoLiJinOrigin.getRightsId();
|
| | | }
|
| | |
|
| | | UserTaoLiJinOrigin origin = new UserTaoLiJinOrigin();
|
| | | origin.setId(userTaoLiJinOrigin.getId());
|
| | | origin.setMoneySurplus(new BigDecimal(0));
|
| | | origin.setUpdateTime(new Date());
|
| | | userTaoLiJinOriginMapper.updateByPrimaryKeySelective(origin);
|
| | | |
| | | total = MoneyBigDecimalUtil.add(total, userTaoLiJinOrigin.getMoneySurplus());
|
| | |
|
| | | if (refund) {
|
| | | UserTaoLiJinReport report = userTaoLiJinReportService.selectByPrimaryKey(rightsId);
|
| | | Date shareTime = null;
|
| | | if (report == null) {
|
| | | shareTime = date;
|
| | | } else {
|
| | | shareTime = report.getCreateTime();
|
| | | }
|
| | |
|
| | | // 消息
|
| | | MsgOtherTaoLiJinContentDTO content = new MsgOtherTaoLiJinContentDTO();
|
| | | content.setState("红包收回");
|
| | | content.setSource("于[" + sd.format(shareTime) + "]创建的分享未被领取部分");
|
| | | content.setTimeDesc("退回于" + time);
|
| | | content.setMoney(moneySurplus);
|
| | | content.setReason("本笔退回推广红包从退回日起至今并未产生分享记录");
|
| | | content.setResult("长期未使用收回");
|
| | | userOtherMsgNotificationService.taoLiJinMsg(uid, "如有疑问请联系人工客服", content);
|
| | |
|
| | | } else {
|
| | | // 消息
|
| | | MsgOtherTaoLiJinContentDTO content = new MsgOtherTaoLiJinContentDTO();
|
| | | content.setState("红包收回");
|
| | | content.setSource(originEnum.getDesc());
|
| | | content.setTimeDesc("获得于" + time);
|
| | | content.setMoney(moneySurplus);
|
| | | content.setReason("本笔推广红包从获得日起至今并未产生分享记录");
|
| | | content.setResult("长期未使用收回");
|
| | | userOtherMsgNotificationService.taoLiJinMsg(uid, "如有疑问请联系人工客服", content);
|
| | | }
|
| | | }
|
| | | |
| | |
|
| | | // 用户剩余淘礼金
|
| | | UserMoneyExtra userMoneyExtra = userMoneyExtraService.selectByPrimaryKey(uid);
|
| | | if (userMoneyExtra == null || userMoneyExtra.getTlj() == null) {
|
| | | return;
|
| | | }
|
| | |
|
| | | UserMoneyExtra updateExtra = new UserMoneyExtra();
|
| | | updateExtra.setUid(uid);
|
| | |
|
| | | BigDecimal tljSelf = userMoneyExtra.getTljSelf();
|
| | | if (tljSelf != null && tljSelf.compareTo(new BigDecimal(0)) > 0) { // 剩余淘礼金-- 自购
|
| | | BigDecimal sub = MoneyBigDecimalUtil.sub(tljSelf, total);
|
| | | if (sub.compareTo(new BigDecimal(0)) > 0) {
|
| | | updateExtra.setTljSelf(sub);
|
| | | } else {
|
| | | updateExtra.setTljSelf(new BigDecimal(0));
|
| | | }
|
| | | }
|
| | | updateExtra.setTlj(MoneyBigDecimalUtil.sub(userMoneyExtra.getTlj(), total));
|
| | | updateExtra.setUpdateTime(new Date());
|
| | | userMoneyExtraService.updateByPrimaryKeySelective(updateExtra);
|
| | |
|
| | | // 插入明细
|
| | | UserTaoLiJinDetail detail = new UserTaoLiJinDetail();
|
| | | detail.setUid(uid);
|
| | | detail.setMoney(new BigDecimal("-" + total.toString()));
|
| | | detail.setTitle(TaoLiJinDetailTypeEnum.sendBack.getDesc());
|
| | | detail.setType(TaoLiJinDetailTypeEnum.sendBack);
|
| | | detail.setCreateTime(date);
|
| | | detail.setCreateTime(new Date());
|
| | | userTaoLiJinDetailService.insertSelective(detail);
|
| | | |
| | | // 消息
|
| | | final BigDecimal totalMoney = total;
|
| | | executor.execute(new Runnable() {
|
| | | @Override
|
| | | public void run() {
|
| | | try {
|
| | | MsgOtherTaoLiJinContentDTO content = new MsgOtherTaoLiJinContentDTO();
|
| | | content.setState("红包扣除");
|
| | | content.setSource("15天内未产生过推广红包分享记录");
|
| | | content.setMoney(totalMoney);
|
| | | userOtherMsgNotificationService.taoLiJinMsg(uid, "清除后无法恢复", content);
|
| | | } catch (Exception e) {
|
| | | LogHelper.errorDetailInfo(e);
|
| | | }
|
| | | }
|
| | | });
|
| | | }
|
| | |
|
| | | |
| | | |
| | | @Override
|
| | | public List<UserTaoLiJinOrigin> getSurplusLiJin(long uid) {
|
| | | return userTaoLiJinOriginMapper.getSurplusLiJin(uid);
|
| | | }
|
| | |
|
| | | |
| | | @Override
|
| | | @Transactional
|
| | | public void addInviteWinMoneyByHand(Long uid, String inviteName, Date date) throws UserTaoLiJinOriginException {
|
| | | if (uid == null || StringUtil.isNullOrEmpty(inviteName)) {
|
| | | throw new UserTaoLiJinOriginException(1, "参数不能为空");
|
| | | }
|
| | | |
| | | String value = configTaoLiJinService.getValueByKey("hongbao_invite",null);
|
| | | if (StringUtil.isNullOrEmpty(value)) {
|
| | | throw new UserTaoLiJinOriginException(1, "系统红包不存在");
|
| | | }
|
| | | BigDecimal money = new BigDecimal(value);
|
| | | |
| | | // 添加用户红包
|
| | | userMoneyExtraService.addTaoLiJin(uid, money, false);
|
| | |
|
| | | // 添加新增记录
|
| | | UserTaoLiJinOrigin taoLiJinOrigin = new UserTaoLiJinOrigin();
|
| | | taoLiJinOrigin.setUid(uid);
|
| | | taoLiJinOrigin.setType(1);
|
| | | taoLiJinOrigin.setOrigin(TaoLiJinOriginEnum.inviteWin);
|
| | | taoLiJinOrigin.setMoney(money);
|
| | | taoLiJinOrigin.setMoneySurplus(money);
|
| | | taoLiJinOrigin.setCreateTime(date);
|
| | | taoLiJinOrigin.setUpdateTime(date);
|
| | | taoLiJinOrigin.setRemark(TaoLiJinOriginEnum.inviteWin.getDesc());
|
| | | userTaoLiJinOriginMapper.insertSelective(taoLiJinOrigin);
|
| | | |
| | | // 明细
|
| | | UserTaoLiJinDetail detail = new UserTaoLiJinDetail();
|
| | | detail.setUid(uid);
|
| | | detail.setMoney(money);
|
| | | detail.setType(TaoLiJinDetailTypeEnum.add);
|
| | | detail.setTitle(TaoLiJinDetailTypeEnum.add.getDesc());
|
| | | detail.setDescInfo("来源:" + TaoLiJinOriginEnum.inviteWin.getDesc());
|
| | | detail.setCreateTime(date);
|
| | | userTaoLiJinDetailService.insertSelective(detail);
|
| | | }
|
| | | |
| | | }
|