From 2012b3b5db3c6b06535a68f775bcc81b16151b90 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期五, 06 九月 2019 16:54:00 +0800
Subject: [PATCH] 加入任务
---
fanli/src/main/java/com/yeshi/fanli/service/impl/tlj/UserTaoLiJinOriginServiceImpl.java | 282 +++++++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 239 insertions(+), 43 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/tlj/UserTaoLiJinOriginServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/tlj/UserTaoLiJinOriginServiceImpl.java
index 3688ab4..74c2daf 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/tlj/UserTaoLiJinOriginServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/tlj/UserTaoLiJinOriginServiceImpl.java
@@ -14,15 +14,18 @@
import org.yeshi.utils.DateUtil;
import com.yeshi.fanli.dao.mybatis.tlj.UserTaoLiJinOriginMapper;
+import com.yeshi.fanli.dto.msg.MsgOtherGiveContentDTO;
import com.yeshi.fanli.dto.msg.MsgOtherTaoLiJinContentDTO;
import com.yeshi.fanli.entity.bus.tlj.DeviceTaoLiJinRecord;
import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinDetail;
+import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinGiveRecord;
import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinDetail.TaoLiJinDetailTypeEnum;
import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinOrigin;
import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinOrigin.TaoLiJinOriginEnum;
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;
@@ -32,6 +35,7 @@
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;
@@ -66,6 +70,9 @@
@Resource
private UserTaoLiJinRecordService userTaoLiJinRecordService;
+
+ @Resource
+ private UserTaoLiJinReportService userTaoLiJinReportService;
@Override
@@ -143,7 +150,7 @@
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, "绯荤粺绾㈠寘涓嶅瓨鍦�");
}
@@ -202,7 +209,7 @@
throw new UserTaoLiJinOriginException(2, "鐢ㄦ埛绛夌骇涓嶈冻");
}
- String value = configTaoLiJinService.getValueByKey(key);
+ String value = configTaoLiJinService.getValueByKey(key,null);
if (StringUtil.isNullOrEmpty(value)) {
throw new UserTaoLiJinOriginException(1, "绯荤粺绾㈠寘涓嶅瓨鍦�");
}
@@ -241,7 +248,7 @@
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, "绯荤粺绾㈠寘涓嶅瓨鍦�");
}
@@ -280,7 +287,7 @@
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, "绯荤粺绾㈠寘涓嶅瓨鍦�");
}
@@ -292,22 +299,22 @@
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;
}
@@ -372,6 +379,7 @@
// 绾㈠寘鏄庣粏
userTaoLiJinDetailService.createAddDetail(taoLiJinOrigin);
+
// 娑堟伅
executor.execute(new Runnable() {
@Override
@@ -393,70 +401,258 @@
});
}
-
-
@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(new Date());
+ userTaoLiJinDetailService.insertSelective(detail);
+ }
+
+
+ @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);
+ }
+
+
+ @Override
+ @Transactional
+ public void exchangeMoney(Long uid, BigDecimal money) throws UserTaoLiJinOriginException{
+ if (uid == null || money == null) {
+ throw new UserTaoLiJinOriginException(1, "鍙傛暟涓嶈兘涓虹┖");
+ }
+ // 娣诲姞鐢ㄦ埛绾㈠寘
+ userMoneyExtraService.addTaoLiJin(uid, money, false);
+ // 娣诲姞鏂板璁板綍
+ UserTaoLiJinOrigin origin = saveOrigin(uid, 1, money, TaoLiJinOriginEnum.exchange);
+ // 绾㈠寘鏄庣粏
+ userTaoLiJinDetailService.createAddDetail(origin);
+ }
+
+
+ @Override
+ @Transactional
+ public UserTaoLiJinOrigin receiveFriendsGive(Long uid, BigDecimal money) throws UserTaoLiJinOriginException{
+ if (uid == null || money == null) {
+ throw new UserTaoLiJinOriginException(1, "鍙傛暟涓嶈兘涓虹┖");
+ }
+ // 娣诲姞绾㈠寘浣欓
+ userMoneyExtraService.addTaoLiJin(uid, money, false);
+ // 娣诲姞鏂板璁板綍
+ UserTaoLiJinOrigin origin = saveOrigin(uid, 1, money, TaoLiJinOriginEnum.friendsGive);
+ // 绾㈠寘鏄庣粏
+ userTaoLiJinDetailService.createAddDetail(origin);
// 娑堟伅
- final BigDecimal totalMoney = total;
executor.execute(new Runnable() {
@Override
public void run() {
try {
MsgOtherTaoLiJinContentDTO content = new MsgOtherTaoLiJinContentDTO();
- content.setState("绾㈠寘鎵i櫎");
- content.setSource("15澶╁唴鏈骇鐢熻繃鎺ㄥ箍绾㈠寘鍒嗕韩璁板綍");
- content.setMoney(totalMoney);
- userOtherMsgNotificationService.taoLiJinMsg(uid, "娓呴櫎鍚庢棤娉曟仮澶�", content);
+ content.setState("绾㈠寘澧炲姞");
+ content.setSource("濂藉弸璧犻��");
+ content.setMoney(money);
+ userOtherMsgNotificationService.taoLiJinMsg(uid, "", content);
} catch (Exception e) {
LogHelper.errorDetailInfo(e);
}
}
});
+ return origin;
}
-
+
+
+
@Override
- public List<UserTaoLiJinOrigin> getSurplusLiJin(long uid) {
- return userTaoLiJinOriginMapper.getSurplusLiJin(uid);
+ @Transactional
+ public void giveSendBack(Long uid, UserTaoLiJinGiveRecord record) throws UserTaoLiJinOriginException{
+ if (uid == null || record == null) {
+ throw new UserTaoLiJinOriginException(1, "鍙傛暟涓嶈兘涓虹┖");
+ }
+
+ BigDecimal money = record.getAmount();
+
+ // 娣诲姞绾㈠寘浣欓
+ userMoneyExtraService.addTaoLiJin(uid, money, false);
+ // 娣诲姞鏂板璁板綍
+ saveOrigin(uid, 1, money, TaoLiJinOriginEnum.giveSendBack);
+ // 绾㈠寘鏄庣粏
+ UserTaoLiJinDetail detail = new UserTaoLiJinDetail();
+ detail.setUid(uid);
+ detail.setMoney(money);
+ detail.setType(TaoLiJinDetailTypeEnum.giveBack);
+ detail.setTitle(TaoLiJinDetailTypeEnum.giveBack.getDesc());
+ detail.setCreateTime(new Date());
+ userTaoLiJinDetailService.insertSelective(detail);
+
+
+ executor.execute(new Runnable() {
+ @Override
+ public void run() {
+ // 閫�鍥炴秷鎭�
+ String beiZhu = "璇峰埌鎴戠殑-鎺ㄥ箍绾㈠寘鏌ョ湅";
+ SimpleDateFormat sd = new SimpleDateFormat("yyyy.MM.dd HH:mm");
+ MsgOtherGiveContentDTO msgOther = new MsgOtherGiveContentDTO();
+ msgOther.setType(MsgOtherGiveContentDTO.TYEP_TLJ);
+ msgOther.setTitle("鎺ㄥ箍绾㈠寘閫�鍥�");
+ msgOther.setGiveType("浣犺禒閫佺殑楼"+ money + "鍏冩帹骞跨孩鍖呮湭琚鍙�");
+ msgOther.setGiveTime(sd.format(record.getGiveTime()));
+ msgOther.setReturnTime(sd.format(new Date()));
+ userOtherMsgNotificationService.tokenGiveMsg(record.getGiveUid(), beiZhu, msgOther);
+ }
+ });
+
}
}
--
Gitblit v1.8.0