| | |
| | | package com.yeshi.fanli.service.impl.order.msg;
|
| | |
|
| | | import java.math.BigDecimal;
|
| | | import java.util.Date;
|
| | |
|
| | | import javax.annotation.Resource;
|
| | |
|
| | | 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.MsgExtra;
|
| | | import com.yeshi.fanli.entity.bus.msg.MsgOrderDetail;
|
| | | import com.yeshi.fanli.entity.config.push.PushMsgFactory;
|
| | | import com.yeshi.fanli.exception.msg.MsgOrderDetailException;
|
| | | import com.yeshi.fanli.exception.push.PushException;
|
| | | import com.yeshi.fanli.service.inter.msg.MsgExtraService;
|
| | | 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 PushService pushService;
|
| | | |
| | | @Resource
|
| | | private MsgExtraService msgExtraService;
|
| | | |
| | |
|
| | | @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);
|
| | | |
| | | if (needNotify) {
|
| | | 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);
|
| | | |
| | |
|
| | | PushContentDTO dto = PushMsgFactory.createShareOrderStatisticed(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 orderInviteStatistic(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_INVITE, goodsCount, payMoney, money, downTime, null, needNotify);
|
| | | |
| | |
|
| | | 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();
|
| | | }
|
| | | }
|
| | | |
| | | /**
|
| | | * 创建订单被统计消息
|
| | | * @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);
|
| | | // 消息内容
|
| | | msgExtraService.addMsgExtra(detail.getId(),detail.getExtraInfo(), MsgExtra.MSG_TYPE_ORDER);
|
| | | } 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);
|
| | | // 消息内容
|
| | | msgExtraService.addMsgExtra(detail.getId(), detail.getExtraInfo(), MsgExtra.MSG_TYPE_ORDER);
|
| | | } catch (MsgOrderDetailException e) {
|
| | | e.printStackTrace();
|
| | | }
|
| | | |
| | | }
|
| | |
|
| | | @Override
|
| | | public void orderFoundFail(Long uid, String orderId) {
|
| | | try {
|
| | | MsgOrderDetail detail = MsgOrderDetailFactory.createOrderFoundFail(uid, orderId, "");
|
| | | // 消息
|
| | | msgOrderDetailService.addMsgOrderDetail(detail, true);
|
| | | // 消息内容
|
| | | msgExtraService.addMsgExtra(detail.getId(), detail.getExtraInfo(), MsgExtra.MSG_TYPE_ORDER);
|
| | | } catch (MsgOrderDetailException e) {
|
| | | e.printStackTrace();
|
| | | }
|
| | | }
|
| | |
|
| | | }
|
| | | package com.yeshi.fanli.service.impl.order.msg; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.Date; |
| | | |
| | | 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; |
| | | import com.yeshi.fanli.entity.config.push.PushMsgFactory; |
| | | import com.yeshi.fanli.exception.msg.MsgOrderDetailException; |
| | | import com.yeshi.fanli.exception.push.PushException; |
| | | 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 PushService pushService; |
| | | |
| | | @Resource |
| | | private UserInfoService userInfoService; |
| | | |
| | | |
| | | @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); |
| | | 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(); |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | @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); |
| | | |
| | | 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, |
| | | 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; |
| | | } |
| | | |
| | | SystemEnum system = userInfoService.getUserSystem(uid); |
| | | |
| | | // 保存消息明细消息 |
| | | 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, 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 |
| | | */ |
| | | 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 |
| | | @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) { |
| | | try { |
| | | MsgOrderDetail detail = MsgOrderDetailFactory.createOrderFoundFail(uid, orderId, ""); |
| | | // 消息 |
| | | msgOrderDetailService.addMsgOrderDetail(detail, true); |
| | | } 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(); |
| | | } |
| | | } |
| | | } |