From 01955bc3f6e6eec6d82a5a3848efde1fa6cc8137 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期三, 30 九月 2020 17:29:26 +0800 Subject: [PATCH] 云发单优化 --- fanli/src/main/java/com/yeshi/fanli/service/impl/order/msg/UserOrderMsgNotificationServiceImpl.java | 311 +++++++++++++++++++++------------------------------ 1 files changed, 127 insertions(+), 184 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/msg/UserOrderMsgNotificationServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/msg/UserOrderMsgNotificationServiceImpl.java index 4cc82b2..9f35f67 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/msg/UserOrderMsgNotificationServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/msg/UserOrderMsgNotificationServiceImpl.java @@ -5,7 +5,10 @@ import javax.annotation.Resource; +import com.yeshi.fanli.entity.SystemEnum; +import com.yeshi.fanli.service.inter.user.UserInfoService; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import com.yeshi.fanli.dto.push.PushContentDTO; import com.yeshi.fanli.entity.bus.msg.MsgOrderDetail; @@ -15,217 +18,157 @@ import com.yeshi.fanli.service.inter.order.msg.MsgOrderDetailService; import com.yeshi.fanli.service.inter.order.msg.UserOrderMsgNotificationService; import com.yeshi.fanli.service.inter.push.PushService; +import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.factory.msg.MsgOrderDetailFactory; @Service public class UserOrderMsgNotificationServiceImpl implements UserOrderMsgNotificationService { - @Resource - private MsgOrderDetailService msgOrderDetailService; + @Resource + private MsgOrderDetailService msgOrderDetailService; - @Resource - private PushService pushService; + @Resource + private PushService pushService; - @Override - public void orderFanLiStatistic(Long uid, String orderId, int orderType, BigDecimal payMoney, BigDecimal money, - int goodsCount, int orderState) { - MsgOrderDetail detail = MsgOrderDetailFactory.createFanLiOrder(uid, orderId, orderType, goodsCount, orderState, - payMoney, money, null); - try { - msgOrderDetailService.addMsgOrderDetail(detail, - (payMoney == null || payMoney.compareTo(new BigDecimal(0)) <= 0) ? false : true); - } catch (MsgOrderDetailException e) { - e.printStackTrace(); - } + @Resource + private UserInfoService userInfoService; - if (payMoney != null && payMoney.compareTo(new BigDecimal(0)) > 0) { - PushContentDTO dto = PushMsgFactory.createFanLiOrderStatisticed(orderType, orderId, money); - try { - pushService.pushZNX(uid, dto.getTitle(), dto.getContent(), null, null); - } catch (NumberFormatException e) { - e.printStackTrace(); - } catch (PushException e) { - e.printStackTrace(); - } - } - } - @Override - public void orderFanLiStateChanged(Long uid, String orderId, int orderType, BigDecimal payMoney, BigDecimal money, - int orderState) { - MsgOrderDetail detail = MsgOrderDetailFactory.createFanLiOrder(uid, orderId, orderType, 0, orderState, payMoney, - money, null); - // 鏆傛椂涓嶆帹閫� - try { - msgOrderDetailService.updateMsgOrderDetail(detail, false); - } catch (MsgOrderDetailException e) { - e.printStackTrace(); - } + @Override + public void orderFanLiStatistic(Long uid, String orderId, int orderType, BigDecimal payMoney, BigDecimal money, + int goodsCount, int orderState, Date downTime) { + // 鏄惁閫氱煡 + boolean needNotify = (payMoney != null && payMoney.compareTo(new BigDecimal(0)) > 0) ? true : false; + // 淇濆瓨娑堟伅鏄庣粏娑堟伅 + addOrderStatistics(uid, orderId, orderType, Constant.TYPE_REBATE, goodsCount, payMoney, money, downTime, null, needNotify); - } + SystemEnum system = userInfoService.getUserSystem(uid); - @Override - public void orderShareStatistic(Long uid, String orderId, int orderType, BigDecimal payMoney, BigDecimal money, - int goodsCount, int orderState) { - MsgOrderDetail detail = MsgOrderDetailFactory.createShareOrder(uid, orderId, orderType, goodsCount, orderState, - payMoney, money, null); - try { - msgOrderDetailService.addMsgOrderDetail(detail, - (payMoney == null || payMoney.compareTo(new BigDecimal(0)) <= 0) ? false : true); - } catch (MsgOrderDetailException e) { - e.printStackTrace(); - } + if (needNotify) { + PushContentDTO dto = PushMsgFactory.createFanLiOrderStatisticed(orderType, orderId, money); + try { + pushService.pushZNX(uid, dto.getTitle(), dto.getContent(), null, null, system); + } catch (NumberFormatException e) { + e.printStackTrace(); + } catch (PushException e) { + e.printStackTrace(); + } + } + } - PushContentDTO dto = PushMsgFactory.createFanLiOrderStatisticed(orderType, orderId, money); - try { - pushService.pushZNX(uid, dto.getTitle(), dto.getContent(), null, null); - } catch (NumberFormatException e) { - e.printStackTrace(); - } catch (PushException e) { - e.printStackTrace(); - } - } + @Override + public void orderShareStatistic(Long uid, String orderId, int orderType, BigDecimal payMoney, BigDecimal money, + int goodsCount, int orderState, Date downTime) { + // 鏄惁閫氱煡 + boolean needNotify = (payMoney != null && payMoney.compareTo(new BigDecimal(0)) > 0) ? true : false; + // 淇濆瓨娑堟伅鏄庣粏娑堟伅 + addOrderStatistics(uid, orderId, orderType, Constant.TYPE_SHAER, goodsCount, payMoney, money, downTime, null, needNotify); - @Override - public void orderShareStateChanged(Long uid, String orderId, int orderType, BigDecimal payMoney, BigDecimal money, - int orderState) { - MsgOrderDetail detail = MsgOrderDetailFactory.createShareOrder(uid, orderId, orderType, 0, orderState, payMoney, - money, null); - // 鏆傛椂涓嶆帹閫� - // try { - // msgOrderDetailService.updateMsgOrderDetail(detail, false); - // } catch (MsgOrderDetailException e) { - // e.printStackTrace(); - // } + SystemEnum system = userInfoService.getUserSystem(uid); - } + PushContentDTO dto = PushMsgFactory.createShareOrderStatisticed(orderType, orderId, money); + try { + pushService.pushZNX(uid, dto.getTitle(), dto.getContent(), null, null, system); + } catch (NumberFormatException e) { + e.printStackTrace(); + } catch (PushException e) { + e.printStackTrace(); + } - @Override - public void orderInviteStatistic(Long uid, String orderId, int orderType, BigDecimal payMoney, BigDecimal money, - int goodsCount, int orderState) { - MsgOrderDetail detail = MsgOrderDetailFactory.createInviteOrder(uid, orderId, orderType, goodsCount, orderState, - payMoney, money, null); - try { - msgOrderDetailService.addMsgOrderDetail(detail, - (money == null || money.compareTo(new BigDecimal(0)) <= 0) ? false : true); - } catch (MsgOrderDetailException e) { - e.printStackTrace(); - } + } - PushContentDTO dto = PushMsgFactory.createInviteOrderStatisticed(orderType, orderId, money); - try { - pushService.pushZNX(uid, dto.getTitle(), dto.getContent(), null, null); - } catch (NumberFormatException e) { - e.printStackTrace(); - } catch (PushException e) { - e.printStackTrace(); - } - } - @Override - public void orderInviteStateChanged(Long uid, String orderId, int orderType, BigDecimal payMoney, BigDecimal money, - int orderState) { - MsgOrderDetail detail = MsgOrderDetailFactory.createInviteOrder(uid, orderId, orderType, 0, orderState, - payMoney, money, null); - // 鏆傛椂涓嶆帹閫� - // try { - // msgOrderDetailService.updateMsgOrderDetail(detail, false); - // } catch (MsgOrderDetailException e) { - // e.printStackTrace(); - // } + @Override + public void orderInviteStatistic(Long uid, String orderId, int orderType, BigDecimal payMoney, BigDecimal money, + BigDecimal subsidy, int goodsCount, int orderState, Date downTime) { + BigDecimal totalMoney = new BigDecimal(0); + if (money != null) { + totalMoney = totalMoney.add(money); + } + if (subsidy != null) { + totalMoney = totalMoney.add(subsidy); + } - } + if (totalMoney.compareTo(new BigDecimal(0)) <= 0) { + return; + } - private String getShortName(String name) { - if (name != null && name.length() > 2) { - return name.charAt(0) + "**" + name.charAt(name.length() - 1); - } - return name; - } + SystemEnum system = userInfoService.getUserSystem(uid); - @Override - public void orderShareFirstLevelStatistic(Long uid, String orderId, int orderType, BigDecimal payMoney, - BigDecimal money, int goodsCount, int orderState, String sourceUserName) { - MsgOrderDetail detail = MsgOrderDetailFactory.createInviteOrder(uid, orderId, orderType, goodsCount, orderState, - payMoney, money, String.format("鐢变竴绾ч槦鍛樸��%s銆戝垎浜�", getShortName(sourceUserName))); - try { - msgOrderDetailService.addMsgOrderDetail(detail, - (money == null || money.compareTo(new BigDecimal(0)) <= 0) ? false : true); - } catch (MsgOrderDetailException e) { - e.printStackTrace(); - } + // 淇濆瓨娑堟伅鏄庣粏娑堟伅 + addOrderStatistics(uid, orderId, orderType, Constant.TYPE_INVITE, goodsCount, payMoney, totalMoney, downTime, null, true); - PushContentDTO dto = PushMsgFactory.createInviteOrderStatisticed(orderType, orderId, money); - try { - pushService.pushZNX(uid, dto.getTitle(), dto.getContent(), null, null); - } catch (NumberFormatException e) { - e.printStackTrace(); - } catch (PushException e) { - e.printStackTrace(); - } + PushContentDTO dto = PushMsgFactory.createInviteOrderStatisticed(orderType, orderId, money); + try { + pushService.pushZNX(uid, dto.getTitle(), dto.getContent(), null, null, system); + } catch (NumberFormatException e) { + e.printStackTrace(); + } catch (PushException e) { + e.printStackTrace(); + } + } - } + /** + * 鍒涘缓璁㈠崟琚粺璁℃秷鎭� + * + * @param uid + * @param orderId 璁㈠崟鍙� + * @param source 璁㈠崟鏉ユ簮锛氭窐瀹濄�佷含涓溿�佸ぉ鐚� + * @param type 璁㈠崟绫诲瀷锛氳嚜璐�佸垎浜�佸洟闃� + * @param goodsCount 鍟嗗搧鏁伴噺 + * @param payMoney 浠樻閲戦 + * @param money 杩斿埄閲戦 + * @param downTime 涓嬪崟鏃堕棿 + * @param beiZhu 澶囨敞淇℃伅 - 闈炲繀濉� + * @return + */ + @Transactional(rollbackFor = Exception.class) + private void addOrderStatistics(Long uid, String orderId, int source, int type, int goodsCount, + BigDecimal payMoney, BigDecimal money, Date downTime, String beiZhu, boolean needNotify) { + try { + MsgOrderDetail detail = MsgOrderDetailFactory.createOrderStatistics(uid, orderId, source, type, goodsCount, payMoney, money, downTime, beiZhu); + // 娑堟伅 + msgOrderDetailService.addMsgOrderDetail(detail, needNotify); + } catch (MsgOrderDetailException e) { + e.printStackTrace(); + } + } - @Override - public void orderShareFirstLevelStateChanged(Long uid, String orderId, int orderType, BigDecimal payMoney, - BigDecimal money, int orderState) { - MsgOrderDetail detail = MsgOrderDetailFactory.createInviteOrder(uid, orderId, orderType, 0, orderState, - payMoney, money, null); - // 鏆傛椂涓嶆帹閫� - // try { - // msgOrderDetailService.updateMsgOrderDetail(detail, false); - // } catch (MsgOrderDetailException e) { - // e.printStackTrace(); - // } - } - @Override - public void orderFoundSuccess(Long uid, String orderId, BigDecimal payMoney, int orderType, Date happendDate) { - MsgOrderDetail detail = MsgOrderDetailFactory.createFoundOrder(uid, orderId, true, payMoney, orderType, - happendDate, "濡傛湁鐤戦棶璇疯仈绯讳汉宸ュ鏈�"); - try { - msgOrderDetailService.addMsgOrderDetail(detail, true); - } catch (MsgOrderDetailException e) { - e.printStackTrace(); - } - } + @Override + @Transactional(rollbackFor = Exception.class) + public void orderFoundSuccess(Long uid, String orderId, int orderSource, int type, BigDecimal payMoney, BigDecimal money, int goodsCount, Date submitTime) { + try { + MsgOrderDetail detail = MsgOrderDetailFactory.createOrderFoundSuccess(uid, orderId, orderSource, type, goodsCount, payMoney, money, submitTime, ""); + // 娑堟伅 + msgOrderDetailService.addMsgOrderDetail(detail, true); + } catch (MsgOrderDetailException e) { + e.printStackTrace(); + } - @Override - public void orderFoundFail(Long uid, String orderId, BigDecimal payMoney, int orderType, Date happendDate) { - MsgOrderDetail detail = MsgOrderDetailFactory.createFoundOrder(uid, orderId, false, payMoney, orderType, - happendDate, "濡傛湁鐤戦棶璇疯仈绯讳汉宸ュ鏈�"); - try { - msgOrderDetailService.addMsgOrderDetail(detail, true); - } catch (MsgOrderDetailException e) { - e.printStackTrace(); - } - } + } - @Override - public void orderElmeStatistic(Long uid, String orderId, int orderType, BigDecimal payMoney, BigDecimal money, - int orderState) { - MsgOrderDetail detail = MsgOrderDetailFactory.createElmeOrder(uid, orderId, orderType, orderState, payMoney, - money, null); - try { - msgOrderDetailService.addMsgOrderDetail(detail, - (payMoney == null || payMoney.compareTo(new BigDecimal(0)) <= 0) ? false : true); - } catch (MsgOrderDetailException e) { - e.printStackTrace(); - } - } + @Override + public void orderFoundFail(Long uid, String orderId) { + try { + MsgOrderDetail detail = MsgOrderDetailFactory.createOrderFoundFail(uid, orderId, ""); + // 娑堟伅 + msgOrderDetailService.addMsgOrderDetail(detail, true); + } catch (MsgOrderDetailException e) { + e.printStackTrace(); + } + } - @Override - public void orderElmeStateChanged(Long uid, String orderId, int orderType, BigDecimal payMoney, BigDecimal money, - int orderState) { - MsgOrderDetail detail = MsgOrderDetailFactory.createElmeOrder(uid, orderId, orderType, orderState, payMoney, - money, null); - // 鏆傛椂涓嶆帹閫� - try { - msgOrderDetailService.updateMsgOrderDetail(detail, false); - } catch (MsgOrderDetailException e) { - e.printStackTrace(); - } - } + @Override + public void orderInvalidToBusinessRunning(Long uid, String orderId, int orderSource, int type) { + try { + MsgOrderDetail detail = MsgOrderDetailFactory.orderInvalidToBusinessRunning(uid, orderId, orderSource, type); + // 娑堟伅 + msgOrderDetailService.addMsgOrderDetail(detail, true); + } catch (MsgOrderDetailException e) { + e.printStackTrace(); + } + } } -- Gitblit v1.8.0