From 54b0dd1b6f8230799b0b4490f8b39afdd53a4e4c Mon Sep 17 00:00:00 2001
From: yujian <yujian@123.com>
Date: 星期三, 21 八月 2019 09:30:57 +0800
Subject: [PATCH] 积分明细
---
fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderRepairServiceImpl.java | 211 +++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 206 insertions(+), 5 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderRepairServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderRepairServiceImpl.java
index ccb03db..f51e352 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderRepairServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderRepairServiceImpl.java
@@ -19,6 +19,7 @@
import org.springframework.transaction.annotation.Transactional;
import com.yeshi.fanli.dao.mybatis.HongBaoV2Mapper;
+import com.yeshi.fanli.dao.mybatis.money.ExtractCheckCompensateMapper;
import com.yeshi.fanli.dao.mybatis.order.CommonOrderGoodsMapper;
import com.yeshi.fanli.dao.mybatis.order.CommonOrderMapper;
import com.yeshi.fanli.dao.mybatis.order.CommonOrderTradeIdMapMapper;
@@ -27,6 +28,7 @@
import com.yeshi.fanli.entity.bus.user.HongBaoV2;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.goods.CommonGoods;
+import com.yeshi.fanli.entity.money.ExtractCheckCompensate;
import com.yeshi.fanli.entity.money.UserMoneyDetail;
import com.yeshi.fanli.entity.order.CommonOrder;
import com.yeshi.fanli.entity.order.CommonOrderGoods;
@@ -34,21 +36,27 @@
import com.yeshi.fanli.entity.order.HongBaoOrder;
import com.yeshi.fanli.entity.order.OrderRepairHistory;
import com.yeshi.fanli.entity.order.ShareGoodsActivityOrder;
+import com.yeshi.fanli.entity.push.PushInfo;
+import com.yeshi.fanli.entity.push.PushInfo.PushTypeEnum;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.entity.taobao.TaoBaoOrder;
import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder;
import com.yeshi.fanli.exception.HongBaoException;
+import com.yeshi.fanli.exception.PushException;
import com.yeshi.fanli.exception.money.UserMoneyDetailException;
+import com.yeshi.fanli.exception.push.PushInfoException;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.goods.CommonGoodsService;
import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
import com.yeshi.fanli.service.inter.hongbao.HongBaoV2Service;
+import com.yeshi.fanli.service.inter.msg.UserMoneyMsgNotificationService;
import com.yeshi.fanli.service.inter.order.CommonOrderService;
import com.yeshi.fanli.service.inter.order.HongBaoOrderService;
import com.yeshi.fanli.service.inter.order.OrderRepairHistoryService;
import com.yeshi.fanli.service.inter.order.OrderRepairService;
import com.yeshi.fanli.service.inter.order.ShareGoodsActivityOrderService;
+import com.yeshi.fanli.service.inter.push.PushInfoService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoOrderService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoWeiQuanOrderService;
import com.yeshi.fanli.service.inter.user.UserInfoService;
@@ -64,6 +72,8 @@
import com.yeshi.fanli.util.taobao.TaoBaoOrderUtil;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
+
+import net.sf.json.JSONObject;
@Service
public class OrderRepairServiceImpl implements OrderRepairService {
@@ -127,6 +137,15 @@
@Resource
private UserMoneyService userMoneyService;
+
+ @Resource
+ private PushInfoService pushInfoService;
+
+ @Resource
+ private UserMoneyMsgNotificationService userMoneyMsgNotificationService;
+
+ @Resource
+ private ExtractCheckCompensateMapper extractCheckCompensateMapper;
@Transactional
@Override
@@ -423,7 +442,7 @@
if (commonOrder.getState() == CommonOrder.STATE_JS)
payMent = commonOrder.getSettlement();
if (payMent.compareTo(new BigDecimal(10)) < 0) {
- mianDan = userSystemCouponRecordService.isSuccessMianDan(commonOrder.getOrderNo());
+ mianDan = userSystemCouponRecordService.isSuccessMianDan(commonOrder.getSourceType(),commonOrder.getOrderNo());
}
}
@@ -880,6 +899,7 @@
@Transactional(propagation = Propagation.REQUIRED)
private void deleteByCommonOrderId(Long commonOrderId) {
+ commonOrderMapper.deleteByPrimaryKey(commonOrderId);
HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByCommonOrderId(commonOrderId);
if (hongBaoOrder == null || hongBaoOrder.getHongBaoV2() == null)
return;
@@ -890,7 +910,7 @@
}
hongBaoV2Mapper.deleteByPrimaryKey(hongBaoOrder.getHongBaoV2().getId());
hongBaoOrderMapper.deleteByPrimaryKey(hongBaoOrder.getId());
- commonOrderMapper.deleteByPrimaryKey(commonOrderId);
+
}
@Transactional
@@ -940,8 +960,12 @@
return orderInfoMap.get(orderId);
}
+ @Transactional
@Override
public void repireFirstAndSecondLevel(String orderId) throws Exception {
+ repireFirstShare(orderId);
+ if (1 > 0)
+ return;
OrderInfo info = getOrderInfo(orderId);
Map<Long, BigDecimal> oldMoneyMap = new HashMap<>();
if (info.getFirstUid() != null)
@@ -964,6 +988,8 @@
for (CommonOrder commonOrder : list) {
HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByCommonOrderId(commonOrder.getId());
+ if (hongBaoOrder == null)
+ continue;
HongBaoV2 hongBao = hongBaoOrder.getHongBaoV2();
Long firstUid = info.getFirstUid();
Long secondUid = info.getSecondUid();
@@ -1098,6 +1124,118 @@
}
+ private void repireFirstShare(String orderId) throws Exception {
+ OrderInfo info = getOrderInfo(orderId);
+ Long firstUid = info.getFirstUid();
+ Map<Long, BigDecimal> oldMoneyMap = new HashMap<>();
+ if (info.getFirstUid() != null)
+ oldMoneyMap.put(info.getFirstUid(), info.getFirstUidMoney());
+ if (info.getSecondUid() != null)
+ oldMoneyMap.put(info.getSecondUid(), info.getSecondUidMoney());
+
+ if (info != null) {
+ List<CommonOrder> list = commonOrderMapper.listBySourceTypeAndOrderNo(Constant.SOURCE_TYPE_TAOBAO,
+ info.getOrderId());
+ // 鏌ヨ鏄惁鏈夊瓙绾㈠寘
+ for (CommonOrder commonOrder : list) {
+ HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByCommonOrderId(commonOrder.getId());
+ if (hongBaoOrder == null)
+ continue;
+ List<HongBaoV2> hongBaoList = hongBaoV2Mapper.listChildrenById(hongBaoOrder.getHongBaoV2().getId());
+ if (hongBaoList != null && hongBaoList.size() > 0)// 鏈夊瓙绾㈠寘灏变笉澶勭悊浜�
+ return;
+ }
+
+ for (CommonOrder commonOrder : list) {
+ if (commonOrder.getState() == CommonOrder.STATE_SX || commonOrder.getState() == CommonOrder.STATE_WQ)
+ continue;
+ // 鍒嗕韩璧�
+
+ HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByCommonOrderId(commonOrder.getId());
+ if (hongBaoOrder == null)
+ continue;
+
+ HongBaoV2 hongBao = hongBaoOrder.getHongBaoV2();
+ // 4鏈�17鏃ュ悗鎵嶆湁涓�绾у垎浜禋
+ if (commonOrder.getThirdCreateTime().getTime() > TimeUtil.convertToTimeTemp("2019-04-17",
+ "yyyy-MM-dd")) {
+ UserInfo boss = null;
+ if (firstUid != null)
+ boss = userInfoService.selectByPKey(firstUid);
+ if (boss != null) {
+ BigDecimal firstLevelRate = hongBaoManageService.getFirstShareRate(1,
+ commonOrder.getThirdCreateTime().getTime());
+ HongBaoV2 child = new HongBaoV2();
+ child.setBeizhu("2019骞�7鏈堟壒閲忎慨鏀�");
+ child.setParent(hongBao);
+ child.setType(HongBaoV2.TYPE_SHARE_YIJI);
+ if (commonOrder.getState() == CommonOrder.STATE_FK) {
+ child.setState(HongBaoV2.STATE_BUKELINGQU);
+ child.setMoney(MoneyBigDecimalUtil.mul(commonOrder.getEstimate(),
+ firstLevelRate.divide(new BigDecimal(100))));
+ } else if (commonOrder.getState() == CommonOrder.STATE_JS) {
+ child.setState(HongBaoV2.STATE_KELINGQU);
+ child.setMoney(MoneyBigDecimalUtil.mul(commonOrder.geteIncome(),
+ firstLevelRate.divide(new BigDecimal(100))));
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(commonOrder.getSettleTime());
+ calendar.add(Calendar.MONTH, 1);
+ child.setPreGetTime(new Date(TimeUtil.convertToTimeTemp(
+ calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1) + "-25",
+ "yyyy-M-dd")));
+
+ if (child.getPreGetTime().getTime() < System.currentTimeMillis()) {
+ child.setGetTime(child.getPreGetTime());
+ child.setState(HongBaoV2.STATE_YILINGQU);
+ }
+
+ }
+ child.setUserInfo(boss);
+ child.setUrank(boss.getRank());
+ child.setVersion(2);
+ child.setCreateTime(new Date());
+ hongBaoV2Mapper.insertSelective(child);
+ }
+ }
+ }
+
+ }
+
+ // 缁熻淇敼鍚庣殑璧勯噾
+ List<CommonOrder> newCommonOrderList = commonOrderMapper.listBySourceTypeAndOrderNo(Constant.SOURCE_TYPE_TAOBAO,
+ orderId);
+ Map<Long, BigDecimal> newMap = new HashMap<>();
+ if (newCommonOrderList != null)
+ for (CommonOrder co : newCommonOrderList) {
+ HongBaoOrder newHongBaoOrder = hongBaoOrderService.selectDetailByCommonOrderId(co.getId());
+ if (newHongBaoOrder == null)
+ continue;
+ HongBaoV2 hongBao = newHongBaoOrder.getHongBaoV2();
+ List<HongBaoV2> children = hongBaoV2Service.listChildrenById(hongBao.getId());
+ if (children != null)
+ for (HongBaoV2 child : children) {
+ if (newMap.get(child.getUserInfo().getId()) == null)
+ newMap.put(child.getUserInfo().getId(), new BigDecimal(0));
+ if (child.getState() == HongBaoV2.STATE_YILINGQU)
+ newMap.put(child.getUserInfo().getId(),
+ newMap.get(child.getUserInfo().getId()).add(child.getMoney()));
+ }
+ }
+
+ for (Iterator<Long> its = newMap.keySet().iterator(); its.hasNext();) {
+ Long uid = its.next();
+ BigDecimal beforeGetMoney = oldMoneyMap.get(uid);
+ BigDecimal afterGetMoney = newMap.get(uid);
+ OrderRepairHistory history = new OrderRepairHistory();
+ history.setAfterGetMoney(afterGetMoney);
+ history.setBeforeGetMoney(beforeGetMoney);
+ history.setOrderId(orderId);
+ history.setUid(uid);
+ orderRepairHistoryService.addOrderRepairHistory(history);
+ }
+
+ }
+
class OrderInfo {
private String orderId;
private Long firstUid;
@@ -1156,22 +1294,85 @@
@Override
public void doMoney(Long uid) {
List<OrderRepairHistory> historyList = listByUid(uid);
+ for (int i = 0; i < historyList.size(); i++) {
+ if (historyList.get(i).getCreateTime().getTime() < TimeUtil.convertToTimeTemp("2019-07-15 17:00:38",
+ "yyyy-MM-dd HH:mm:ss")) {
+ historyList.remove(i);
+ i--;
+ }
+
+ }
+
BigDecimal money = new BigDecimal(0);
+ String orders = "";
for (OrderRepairHistory history : historyList) {
- money.add(history.getAfterGetMoney().subtract(history.getBeforeGetMoney()));
+ money = money.add(history.getAfterGetMoney().subtract(history.getBeforeGetMoney()));
+ orders += history.getOrderId() + ",";
}
if (money.compareTo(new BigDecimal(0)) > 0)// 璧勯噾闇�瑕佸鍔�
{
try {
- UserMoneyDetail detail = UserMoneyDetailFactory.createSystemEqualize(null, money, new UserInfo(uid));
+ UserMoneyDetail detail = UserMoneyDetailFactory.createSystemEqualize("璁㈠崟缁熻寮傚父淇", money,
+ new UserInfo(uid));
// 绯荤粺琛ラ綈
+ // 鍔犺祫閲�
userMoneyService.addUserMoney(uid, money, detail);
+ pushMsg(uid, "鍏充簬杩戞湡璁㈠崟涓庤祫閲戝紓甯哥殑鎺掓煡涓庝慨澶嶇粨鏋滈�氱煡",
+ "灏婃暚鐨勭敤鎴凤紝缁忎粩缁嗘牳瀵规偍璐︽埛涓殑璁㈠崟锛屽彂鐜版偍璐︽埛涓湁鏈粺璁℃垨閿欒缁熻鐨勮鍗曪紝鎴戜滑宸茬粡涓烘偍琛ラ綈璧勯噾锛屽搴旇祫閲戝凡缁忓瓨鍏ユ偍鐨勮处鎴蜂綑棰濅腑锛屾暚璇锋煡鏀舵敞鏌ユ敹銆傛劅璋俊浠伙紝杩斿埄鍒窤pp缁堝皢鎴愪负鎮ㄦ渶淇′换鐨勮喘鐗╃渷閽卞姪鎵嬨��");
+ userMoneyMsgNotificationService.systemEqualize(uid, "璁㈠崟缁熻寮傚父淇", money, userInfoService.getBalance(uid));
} catch (UserMoneyDetailException e) {
e.printStackTrace();
}
- } else {// 璧勯噾闇�瑕佸噺灏�
+ } else {// 璧勯噾闇�瑕佸噺灏�,涓嶈鎵i挶
+ pushMsg(uid, "鍏充簬杩戞湡璁㈠崟涓庤祫閲戝紓甯哥殑鎺掓煡涓庝慨澶嶇粨鏋滈�氱煡",
+ "灏婃暚鐨勭敤鎴凤紝缁忎粩缁嗘牳瀵规偍璐︽埛涓殑璁㈠崟锛屽彂鐜版偍璐︽埛涓湁閿欒缁熻鐨勮鍗曪紝鎴戜滑宸茬粡涓烘偍鎭㈠姝e父锛屾墍娑夊強璁㈠崟澶氱粺璁″嚭鏉ョ殑璧勯噾锛屼笉浼氳鎵i櫎锛屽嵆鎮ㄨ处鎴蜂腑鐨勮祫閲戝皢淇濇寔涓嶅彉锛屽凡鎻愮幇鐨勮祫閲戯紝涔熶笉浼氭敹鍥烇紝鏁鐭ユ檽銆傛劅璋俊浠伙紝杩斿埄鍒窤pp缁堝皢鎴愪负鎮ㄦ渶淇′换鐨勮喘鐗╃渷閽卞姪鎵嬨��");
+ // userMoneyMsgNotificationService.systemEqualize(uid, "璁㈠崟缁熻寮傚父淇",
+ // money, userInfoService.getBalance(uid));
+ // 鍔犲叆鎻愮幇瀹℃牳寮傚父淇濇姢涓�
+ ExtractCheckCompensate check = new ExtractCheckCompensate();
+ check.setBeiZhu("7鏈堣鍗曞紓甯哥郴缁熷鐞�:" + orders);
+ check.setCreateTime(new Date());
+ check.setMoney(money);
+ check.setUserInfo(new UserInfo(uid));
+ check.setUpdateTime(new Date());
+ extractCheckCompensateMapper.insertSelective(check);
+ }
+ }
+ private void pushMsg(Long uid, String title, String content) {
+
+ PushInfo pushInfo = new PushInfo();
+ pushInfo.setTitle(title);
+ pushInfo.setContent(content);
+ pushInfo.setUids(uid + "");
+ JSONObject jsonData = new JSONObject();
+ jsonData.put("url", "");
+ jsonData.put("ios", "鍏ㄦ帹");
+ jsonData.put("android", "鍏ㄦ帹");
+ pushInfo.setJsonData(jsonData.toString());
+ pushInfo.setType(PushTypeEnum.ZNX);
+ pushInfo.setArrayAndroid("[鍏ㄦ帹]");
+ pushInfo.setArrayIOS("[鍏ㄦ帹]");
+
+ pushInfo.setCreateTime(new Date());
+
+ try {
+ pushInfoService.save(pushInfo);
+ } catch (PushInfoException e) {
+ e.printStackTrace();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ try {
+ pushInfoService.handPush(pushInfo.getId());
+ } catch (PushInfoException e) {
+ e.printStackTrace();
+ } catch (PushException e) {
+ e.printStackTrace();
+ } catch (Exception e) {
+ e.printStackTrace();
}
}
--
Gitblit v1.8.0