From a06040f0d92b6179eadc3616a33fa21b3ad349d8 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期一, 24 十二月 2018 11:31:11 +0800 Subject: [PATCH] zijinxiangqing --- fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java | 171 ++++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 127 insertions(+), 44 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java index 9f426ce..2ab204d 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java @@ -23,6 +23,7 @@ import com.yeshi.fanli.dao.mybatis.ThreeSaleGiftMapper; import com.yeshi.fanli.dao.mybatis.UserInfoMapper; import com.yeshi.fanli.dao.mybatis.hongbao.HongBaoMapper; +import com.yeshi.fanli.dao.mybatis.money.UserMoneyDetailMapper; import com.yeshi.fanli.dao.mybatis.order.OrderItemMapper; import com.yeshi.fanli.dao.mybatis.order.OrderMapper; import com.yeshi.fanli.dao.mybatis.share.PidUserMapper; @@ -34,6 +35,7 @@ import com.yeshi.fanli.entity.bus.user.Order; import com.yeshi.fanli.entity.bus.user.OrderItem; import com.yeshi.fanli.entity.bus.user.UserInfo; +import com.yeshi.fanli.entity.money.UserMoneyDetail; import com.yeshi.fanli.entity.taobao.PidOrder; import com.yeshi.fanli.entity.taobao.PidUser; import com.yeshi.fanli.entity.taobao.TaoBaoOrder; @@ -44,6 +46,7 @@ import com.yeshi.fanli.exception.ObjectStateException; import com.yeshi.fanli.exception.OrderItemException; import com.yeshi.fanli.exception.TaoBaoWeiQuanException; +import com.yeshi.fanli.exception.money.UserMoneyDetailException; import com.yeshi.fanli.log.LogHelper; import com.yeshi.fanli.service.inter.hongbao.AccountDetailsHongBaoMapService; import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService; @@ -64,6 +67,7 @@ import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.TimeUtil; import com.yeshi.fanli.util.factory.AccountDetailsFactory; +import com.yeshi.fanli.util.factory.UserMoneyDetailFactory; import com.yeshi.fanli.util.taobao.TaoBaoOrderUtil; @Service @@ -143,6 +147,9 @@ @Resource private AccountDetailsHongBaoMapService accountDetailsHongBaoMapService; + + @Resource + private UserMoneyDetailMapper userMoneyDetailMapper; @Override public void processOrder(Map<String, List<TaoBaoOrder>> orders) { @@ -509,6 +516,20 @@ AccountDetailsFactory.FANLI, orderItem, null, hb.getUserInfo()); accountDetailsMapper.insertSelective(accountDetails); + // 鎻掑叆鏂扮増璧勯噾鏄庣粏 + try { + UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createFanLi(hb.getUserInfo().getId(), + hb.getOrderId(), 1,hb.getId(), hb.getMoney()); + userMoneyDetail.setId(accountDetails.getId()); + userMoneyDetailMapper.insert(userMoneyDetail); + } catch (UserMoneyDetailException e1) { + try { + LogHelper.errorDetailInfo(e1); + } catch (Exception e2) { + e2.printStackTrace(); + } + } + // 娣诲姞璧勯噾鏄庣粏涓庣孩鍖呯殑鏄犲皠鍏崇郴 accountDetailsHongBaoMapService.saveAccountDetailsHongBaoMap(hb.getId(), accountDetails.getId()); @@ -609,7 +630,7 @@ List<Long> hbIdList = new ArrayList<>(); - BigDecimal money = new BigDecimal(0); + BigDecimal invitemoney = new BigDecimal(0); // 闇�瑕佸垽鏂��娆剧殑璁㈠崟鍙� Set<String> drawBackOrders = new HashSet<String>(); for (HongBao hongBao : hongBaoList) { @@ -619,7 +640,7 @@ hongBao = hongBaoMapper.selectByPrimaryKeyForUpdate(hongBao.getId()); if (hongBao.getState() == HongBao.STATE_BUKELINGQU || hongBao.getState() == HongBao.STATE_KELINGQU) { - money = money.add(hongBao.getMoney()); + invitemoney = invitemoney.add(hongBao.getMoney()); HongBao updateHongBao = new HongBao(); updateHongBao.setId(hongBao.getId()); updateHongBao.setGetTime(System.currentTimeMillis()); @@ -642,11 +663,90 @@ } } } - + + + /** - * 澶勭悊椤剁骇鍒嗕韩璧� + * 澶勭悊涓�绾т簩绾у垎浜禋(灞炰簬閭�璇疯禋绫诲瀷) */ + List<HongBao> totalHongBaoList = new ArrayList<>(); + // 鏌ヨUID鐨勪簩绾ф垨鑰呬笁绾у垎浜禋璁㈠崟 + // TODO 鏆傛椂鏌ヨ10000鏉℃暟鎹紝鍚庨潰鍐嶅仛鍒嗛〉 + List<HongBao> hbList = hongBaoMapper.selectCanBalanceHongBaoByTypeAndUid(HongBao.TYPE_SHARE_YIJI, uid, 10000); + + if (hbList != null && hbList.size() > 0) + totalHongBaoList.addAll(hbList); + + hbList = hongBaoMapper.selectCanBalanceHongBaoByTypeAndUid(HongBao.TYPE_SHARE_ERJI, uid, 10000); + if (hbList != null && hbList.size() > 0) + totalHongBaoList.addAll(hbList); + + for (HongBao hb : totalHongBaoList) { + if (hb.getState() == HongBao.STATE_BUKELINGQU || hb.getState() == HongBao.STATE_KELINGQU) { + hb = filterWeiQuanINGHongBao(hb); + if (hb == null) + continue; + invitemoney = invitemoney.add(hb.getMoney()); + HongBao updateHongBao = new HongBao(); + updateHongBao.setId(hb.getId()); + updateHongBao.setGetTime(System.currentTimeMillis()); + updateHongBao.setState(HongBao.STATE_YILINGQU); + hongBaoMapper.updateByPrimaryKeySelective(updateHongBao); + // 娣诲姞鍒扮孩鍖呰繑鍒╄褰曢泦鍚� + hbIdList.add(hb.getId()); + if (!StringUtil.isNullOrEmpty(hb.getOrderId())) + drawBackOrders.add(hb.getOrderId()); + } + } + + + + // 閭�璇疯禋鍒拌处 + if (invitemoney.compareTo(new BigDecimal(0)) > 0) { + userInfoMapper.addHongBaoByUid(uid, invitemoney); + // 娣诲姞璁板綍 + AccountDetails accountDetails = AccountDetailsFactory.create("+" + invitemoney, + AccountDetailsFactory.TICHENG, null, null, new UserInfo(uid)); + accountDetailsMapper.insertSelective(accountDetails); + + // 娣诲姞鏂扮増璇︽儏璁板綍 + try { + UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createInvite(uid, 0, 0, 0, invitemoney, + new Date()); + userMoneyDetail.setId(accountDetails.getId()); + userMoneyDetailMapper.insert(userMoneyDetail); + } catch (UserMoneyDetailException e) { + try { + LogHelper.errorDetailInfo(e); + } catch (Exception e1) { + e1.printStackTrace(); + } + } + + // 璁板綍杩斿埄绾㈠寘涓庤祫閲戣鎯呯殑瀵瑰簲鍏崇郴 + + // 娣诲姞鍒扮孩鍖呰繑鍒╄褰曢泦鍚� + accountDetailsHongBaoMapService.saveAccountDetailsHongBaoMap(hbIdList, accountDetails.getId()); + + // 鍙戦�佹帹閫� + try { + // 鎻愭垚鍒拌处娑堟伅閫氱煡 + userNotificationService.tiChengInviteRecieved(uid, invitemoney); + } catch (Exception e) { + e.printStackTrace(); + } + for (String orderId : drawBackOrders) + taoBaoWeiQuanDrawBackService.doWeiQuanInvite(orderId); + } + + hbIdList.clear(); + drawBackOrders.clear(); + + /** + * 澶勭悊鍒嗕韩璧� + */ + BigDecimal sharemoney = new BigDecimal(0); // 鏌ヨUID鐨勫垎浜禋璁㈠崟 List<PidOrder> pidOrderList = pidOrderMapper.getCanBalanceListByUid(uid); for (PidOrder pidOrder : pidOrderList) { @@ -655,7 +755,7 @@ if (hongBao == null) continue; if (hongBao.getState() == HongBao.STATE_BUKELINGQU || hongBao.getState() == HongBao.STATE_KELINGQU) { - money = money.add(hongBao.getMoney()); + sharemoney = sharemoney.add(hongBao.getMoney()); HongBao updateHongBao = new HongBao(); updateHongBao.setId(hongBao.getId()); updateHongBao.setGetTime(System.currentTimeMillis()); @@ -676,50 +776,32 @@ } } - /** - * 澶勭悊涓�绾т簩绾у垎浜禋 - */ - - List<HongBao> totalHongBaoList = new ArrayList<>(); - // 鏌ヨUID鐨勪簩绾ф垨鑰呬笁绾у垎浜禋璁㈠崟 - // TODO 鏆傛椂鏌ヨ10000鏉℃暟鎹紝鍚庨潰鍐嶅仛鍒嗛〉 - List<HongBao> hbList = hongBaoMapper.selectCanBalanceHongBaoByTypeAndUid(HongBao.TYPE_SHARE_YIJI, uid, 10000); - - if (hbList != null && hbList.size() > 0) - totalHongBaoList.addAll(hbList); - - hbList = hongBaoMapper.selectCanBalanceHongBaoByTypeAndUid(HongBao.TYPE_SHARE_ERJI, uid, 10000); - if (hbList != null && hbList.size() > 0) - totalHongBaoList.addAll(hbList); - - for (HongBao hb : totalHongBaoList) { - if (hb.getState() == HongBao.STATE_BUKELINGQU || hb.getState() == HongBao.STATE_KELINGQU) { - hb = filterWeiQuanINGHongBao(hb); - if (hb == null) - continue; - money = money.add(hb.getMoney()); - HongBao updateHongBao = new HongBao(); - updateHongBao.setId(hb.getId()); - updateHongBao.setGetTime(System.currentTimeMillis()); - updateHongBao.setState(HongBao.STATE_YILINGQU); - hongBaoMapper.updateByPrimaryKeySelective(updateHongBao); - // 娣诲姞鍒扮孩鍖呰繑鍒╄褰曢泦鍚� - hbIdList.add(hb.getId()); - if (!StringUtil.isNullOrEmpty(hb.getOrderId())) - drawBackOrders.add(hb.getOrderId()); - } - } + /** - * 澧炲姞鐢ㄦ埛璧勯噾璁板綍 + * 鍒嗕韩璧氬埌璐� */ - if (money.compareTo(new BigDecimal(0)) > 0) { - userInfoMapper.addHongBaoByUid(uid, money); + if (sharemoney.compareTo(new BigDecimal(0)) > 0) { + userInfoMapper.addHongBaoByUid(uid, sharemoney); // 娣诲姞璁板綍 - AccountDetails accountDetails = AccountDetailsFactory.create("+" + money, AccountDetailsFactory.TICHENG, - null, null, new UserInfo(uid)); + AccountDetails accountDetails = AccountDetailsFactory.create("+" + sharemoney, + AccountDetailsFactory.SHARE_GOODS, null, null, new UserInfo(uid)); accountDetailsMapper.insertSelective(accountDetails); + + // 娣诲姞鏂扮増璇︽儏璁板綍 + try { + UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createShare(uid, 0, 0, 0, sharemoney, + new Date()); + userMoneyDetail.setId(accountDetails.getId()); + userMoneyDetailMapper.insert(userMoneyDetail); + } catch (UserMoneyDetailException e) { + try { + LogHelper.errorDetailInfo(e); + } catch (Exception e1) { + e1.printStackTrace(); + } + } // 璁板綍杩斿埄绾㈠寘涓庤祫閲戣鎯呯殑瀵瑰簲鍏崇郴 // 娣诲姞鍒扮孩鍖呰繑鍒╄褰曢泦鍚� @@ -728,13 +810,14 @@ // 鍙戦�佹帹閫� try { // 鎻愭垚鍒拌处娑堟伅閫氱煡 - userNotificationService.tiChengRecieved(uid, money); + userNotificationService.tiChengShareRecieved(uid, sharemoney); } catch (Exception e) { e.printStackTrace(); } for (String orderId : drawBackOrders) taoBaoWeiQuanDrawBackService.doWeiQuanShare(orderId); } + } } -- Gitblit v1.8.0