| | |
| | | package com.yeshi.fanli.service.impl.order.tb;
|
| | |
|
| | | import java.math.BigDecimal;
|
| | | import java.util.Date;
|
| | | import java.util.List;
|
| | |
|
| | | import javax.annotation.Resource;
|
| | |
|
| | | import org.springframework.stereotype.Service;
|
| | | import org.springframework.transaction.annotation.Transactional;
|
| | |
|
| | | import com.aliyun.openservices.ons.api.Message;
|
| | | import com.aliyun.openservices.ons.api.Producer;
|
| | | import com.yeshi.fanli.dao.mybatis.taobao.TaoBaoWeiQuanOrderMapper;
|
| | | import com.yeshi.fanli.dto.mq.order.OrderTopicTagEnum;
|
| | | import com.yeshi.fanli.dto.mq.order.body.BanLiShopOrderMQMsg;
|
| | | import com.yeshi.fanli.dto.mq.order.body.OrderWeiQuanMQMsg;
|
| | | import com.yeshi.fanli.entity.bus.msg.MsgOrderDetail;
|
| | | import com.yeshi.fanli.entity.bus.msg.MsgOrderDetail.MsgTypeOrderTypeEnum;
|
| | | import com.yeshi.fanli.entity.order.CommonOrder;
|
| | | import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder;
|
| | | import com.yeshi.fanli.service.inter.order.CommonOrderService;
|
| | | import com.yeshi.fanli.service.inter.order.UserOrderWeiQuanRecordService;
|
| | | import com.yeshi.fanli.service.inter.order.msg.MsgOrderDetailService;
|
| | | import com.yeshi.fanli.service.inter.order.msg.UserOrderMsgNotificationService;
|
| | | import com.yeshi.fanli.service.inter.order.tb.TaoBaoWeiQuanOrderService;
|
| | | import com.yeshi.fanli.service.manger.msg.RocketMQManager;
|
| | | import com.yeshi.fanli.util.Constant;
|
| | | import com.yeshi.fanli.util.rocketmq.MQMsgBodyFactory;
|
| | | import com.yeshi.fanli.util.rocketmq.MQTopicName;
|
| | |
|
| | | @Service
|
| | | public class TaoBaoWeiQuanOrderServiceImpl implements TaoBaoWeiQuanOrderService {
|
| | | @Resource
|
| | | private TaoBaoWeiQuanOrderMapper taoBaoWeiQuanOrderMapper;
|
| | |
|
| | | @Resource
|
| | | private UserOrderMsgNotificationService userOrderMsgNotificationService;
|
| | |
|
| | | @Resource
|
| | | private MsgOrderDetailService msgOrderDetailService;
|
| | |
|
| | | @Resource
|
| | | private CommonOrderService commonOrderService;
|
| | |
|
| | | @Resource
|
| | | private UserOrderWeiQuanRecordService userOrderWeiQuanRecordService;
|
| | |
|
| | | @Resource
|
| | | private RocketMQManager rocketMQManager;
|
| | |
|
| | | @Transactional(rollbackFor = Exception.class)
|
| | | @Override
|
| | | public void addWeiQuanOrder(TaoBaoWeiQuanOrder order) {
|
| | | if (order == null)
|
| | | return;
|
| | |
|
| | | boolean isAdd = false;
|
| | | boolean isUpdate = false;
|
| | | Long id = null;
|
| | |
|
| | | TaoBaoWeiQuanOrder taoBaoWeiQuanOrder = taoBaoWeiQuanOrderMapper
|
| | | .selectByOrderIdAndOrderItemId(order.getOrderId(), order.getOrderItemId());
|
| | | if (taoBaoWeiQuanOrder != null) {
|
| | | id = taoBaoWeiQuanOrder.getId();
|
| | | // 已经是最新的状态了
|
| | | if (taoBaoWeiQuanOrder.getState() != null && (taoBaoWeiQuanOrder.getState().contains("维权成功")))
|
| | | return;
|
| | | // 更新金额,状态与时间
|
| | | TaoBaoWeiQuanOrder update = new TaoBaoWeiQuanOrder();
|
| | | update.setId(taoBaoWeiQuanOrder.getId());
|
| | | update.setFanMoney(order.getFanMoney());
|
| | | update.setJieSuanTime(order.getJieSuanTime());
|
| | | update.setMoney(order.getMoney());
|
| | | update.setState(order.getState());
|
| | | update.setUpdateTime(new Date());
|
| | | update.setWeiQuanFinishTime(order.getWeiQuanFinishTime());
|
| | | taoBaoWeiQuanOrderMapper.updateByPrimaryKeySelective(update);
|
| | | isUpdate = true;
|
| | | try {
|
| | | if (order.getState().contains("维权成功")) {
|
| | | // 更改CommonOrder的状态
|
| | | CommonOrder commonOrder = commonOrderService
|
| | | .selectBySourceTypeAndTradeId(Constant.SOURCE_TYPE_TAOBAO, order.getOrderItemId());
|
| | | if (commonOrder != null) {
|
| | | CommonOrder updateCommonOrder = new CommonOrder(commonOrder.getId());
|
| | | updateCommonOrder.setState(CommonOrder.STATE_WQ);
|
| | | updateCommonOrder.setUpdateTime(new Date());
|
| | | commonOrderService.updateByPrimaryKeySelective(updateCommonOrder);
|
| | | userOrderWeiQuanRecordService.addTaoBaoWeiQuan(taoBaoWeiQuanOrder);
|
| | | }
|
| | | }
|
| | | } catch (Exception e) {
|
| | |
|
| | | }
|
| | | } else {
|
| | | order.setCreateTime(new Date());
|
| | | order.setUpdateTime(new Date());
|
| | | taoBaoWeiQuanOrderMapper.insertSelective(order);
|
| | | id = order.getId();
|
| | | isAdd = true;
|
| | | if (order.getState().contains("维权成功")) {
|
| | | // 更改CommonOrder的状态
|
| | | CommonOrder commonOrder = commonOrderService.selectBySourceTypeAndTradeId(Constant.SOURCE_TYPE_TAOBAO,
|
| | | order.getOrderItemId());
|
| | | if (commonOrder != null) {
|
| | | CommonOrder updateCommonOrder = new CommonOrder(commonOrder.getId());
|
| | | updateCommonOrder.setState(CommonOrder.STATE_WQ);
|
| | | updateCommonOrder.setUpdateTime(new Date());
|
| | | commonOrderService.updateByPrimaryKeySelective(updateCommonOrder);
|
| | | userOrderWeiQuanRecordService.addTaoBaoWeiQuan(order);
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | // 增加或修改
|
| | | if (isAdd || isUpdate) {
|
| | | if (id != null) {
|
| | | OrderWeiQuanMQMsg msg = new OrderWeiQuanMQMsg(order.getOrderId(), order.getOrderItemId(),
|
| | | Constant.SOURCE_TYPE_TAOBAO);
|
| | | Message message = MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER, OrderTopicTagEnum.taoBaoOrderWeiQuan,
|
| | | msg);
|
| | | rocketMQManager.sendNormalMsg(message, null);
|
| | | }
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | @Override
|
| | | public List<TaoBaoWeiQuanOrder> getWeiQuanSuccessOrders(String orderId) {
|
| | | return taoBaoWeiQuanOrderMapper.selectListByOrderIdAndState(orderId, "维权成功");
|
| | | }
|
| | |
|
| | | @Override
|
| | | public TaoBaoWeiQuanOrder listByorderItemId(String tradeId) {
|
| | | return taoBaoWeiQuanOrderMapper.selectByOrderItemId(tradeId);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public List<TaoBaoWeiQuanOrder> listByState(String state, int page, int pageSize) {
|
| | | return taoBaoWeiQuanOrderMapper.listByState(state, (page - 1) * pageSize, pageSize);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public long countByState(String state) {
|
| | | return taoBaoWeiQuanOrderMapper.countByState(state);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public List<TaoBaoWeiQuanOrder> listByOrderId(String orderId) {
|
| | | return taoBaoWeiQuanOrderMapper.listByOrderId(orderId);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public TaoBaoWeiQuanOrder selectByTradeId(String tradeId) {
|
| | | return taoBaoWeiQuanOrderMapper.selectByOrderItem(tradeId);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public List<TaoBaoWeiQuanOrder> listByBeginWeiQuan(int page, int pageSize) {
|
| | | return taoBaoWeiQuanOrderMapper.listByBeginWeiQuan((page - 1) * pageSize, pageSize);
|
| | | }
|
| | | }
|
| | | package com.yeshi.fanli.service.impl.order.tb; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | import javax.annotation.Resource; |
| | | |
| | | import com.yeshi.fanli.exception.money.TeamRewardDebtException; |
| | | import com.yeshi.fanli.exception.order.TaoBaoOrderException; |
| | | import com.yeshi.fanli.service.manger.order.TeamRewardManager; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import com.aliyun.openservices.ons.api.Message; |
| | | import com.aliyun.openservices.ons.api.Producer; |
| | | import com.yeshi.fanli.dao.mybatis.taobao.TaoBaoWeiQuanOrderMapper; |
| | | import com.yeshi.fanli.dto.mq.order.OrderTopicTagEnum; |
| | | import com.yeshi.fanli.dto.mq.order.body.BanLiShopOrderMQMsg; |
| | | import com.yeshi.fanli.dto.mq.order.body.OrderWeiQuanMQMsg; |
| | | import com.yeshi.fanli.entity.bus.msg.MsgOrderDetail; |
| | | import com.yeshi.fanli.entity.bus.msg.MsgOrderDetail.MsgTypeOrderTypeEnum; |
| | | import com.yeshi.fanli.entity.order.CommonOrder; |
| | | import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder; |
| | | import com.yeshi.fanli.service.inter.order.CommonOrderService; |
| | | import com.yeshi.fanli.service.inter.order.UserOrderWeiQuanRecordService; |
| | | import com.yeshi.fanli.service.inter.order.msg.MsgOrderDetailService; |
| | | import com.yeshi.fanli.service.inter.order.msg.UserOrderMsgNotificationService; |
| | | import com.yeshi.fanli.service.inter.order.tb.TaoBaoWeiQuanOrderService; |
| | | import com.yeshi.fanli.service.manger.msg.RocketMQManager; |
| | | import com.yeshi.fanli.util.Constant; |
| | | import com.yeshi.fanli.util.rocketmq.MQMsgBodyFactory; |
| | | import com.yeshi.fanli.util.rocketmq.MQTopicName; |
| | | |
| | | @Service |
| | | public class TaoBaoWeiQuanOrderServiceImpl implements TaoBaoWeiQuanOrderService { |
| | | @Resource |
| | | private TaoBaoWeiQuanOrderMapper taoBaoWeiQuanOrderMapper; |
| | | |
| | | @Resource |
| | | private TeamRewardManager teamRewardManager; |
| | | |
| | | |
| | | @Resource |
| | | private CommonOrderService commonOrderService; |
| | | |
| | | @Resource |
| | | private UserOrderWeiQuanRecordService userOrderWeiQuanRecordService; |
| | | |
| | | @Resource |
| | | private RocketMQManager rocketMQManager; |
| | | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | @Override |
| | | public void addWeiQuanOrder(TaoBaoWeiQuanOrder order) { |
| | | if (order == null) |
| | | return; |
| | | |
| | | boolean isAdd = false; |
| | | boolean isUpdate = false; |
| | | Long id = null; |
| | | |
| | | TaoBaoWeiQuanOrder taoBaoWeiQuanOrder = taoBaoWeiQuanOrderMapper |
| | | .selectByOrderIdAndOrderItemId(order.getOrderId(), order.getOrderItemId()); |
| | | if (taoBaoWeiQuanOrder != null) { |
| | | id = taoBaoWeiQuanOrder.getId(); |
| | | // 已经是最新的状态了 |
| | | if (taoBaoWeiQuanOrder.getState() != null && (taoBaoWeiQuanOrder.getState().contains("维权成功"))) |
| | | return; |
| | | // 更新金额,状态与时间 |
| | | TaoBaoWeiQuanOrder update = new TaoBaoWeiQuanOrder(); |
| | | update.setId(taoBaoWeiQuanOrder.getId()); |
| | | update.setFanMoney(order.getFanMoney()); |
| | | update.setJieSuanTime(order.getJieSuanTime()); |
| | | update.setMoney(order.getMoney()); |
| | | update.setState(order.getState()); |
| | | update.setUpdateTime(new Date()); |
| | | update.setWeiQuanFinishTime(order.getWeiQuanFinishTime()); |
| | | taoBaoWeiQuanOrderMapper.updateByPrimaryKeySelective(update); |
| | | isUpdate = true; |
| | | try { |
| | | if (order.getState().contains("维权成功")) { |
| | | weiQuanSuccess(order); |
| | | } |
| | | } catch (Exception e) { |
| | | |
| | | } |
| | | } else { |
| | | order.setCreateTime(new Date()); |
| | | order.setUpdateTime(new Date()); |
| | | taoBaoWeiQuanOrderMapper.insertSelective(order); |
| | | id = order.getId(); |
| | | isAdd = true; |
| | | if (order.getState().contains("维权成功")) { |
| | | weiQuanSuccess(order); |
| | | } |
| | | } |
| | | |
| | | // 增加或修改 |
| | | if (isAdd || isUpdate) { |
| | | if (id != null) { |
| | | OrderWeiQuanMQMsg msg = new OrderWeiQuanMQMsg(order.getOrderId(), order.getOrderItemId(), |
| | | Constant.SOURCE_TYPE_TAOBAO); |
| | | Message message = MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER, OrderTopicTagEnum.taoBaoOrderWeiQuan, |
| | | msg); |
| | | rocketMQManager.sendNormalMsg(message, null); |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 维权成功 |
| | | * |
| | | * @param order |
| | | */ |
| | | private void weiQuanSuccess(TaoBaoWeiQuanOrder order) { |
| | | // 更改CommonOrder的状态 |
| | | CommonOrder commonOrder = commonOrderService.selectBySourceTypeAndTradeId(Constant.SOURCE_TYPE_TAOBAO, |
| | | order.getOrderItemId()); |
| | | if (commonOrder != null) { |
| | | CommonOrder updateCommonOrder = new CommonOrder(commonOrder.getId()); |
| | | updateCommonOrder.setState(CommonOrder.STATE_WQ); |
| | | updateCommonOrder.setUpdateTime(new Date()); |
| | | commonOrderService.updateByPrimaryKeySelective(updateCommonOrder); |
| | | userOrderWeiQuanRecordService.addTaoBaoWeiQuan(order); |
| | | try { |
| | | teamRewardManager.weiQuan(order.getOrderId(), Constant.SOURCE_TYPE_TAOBAO, order.getOrderItemId()); |
| | | } catch (TaoBaoOrderException e) { |
| | | e.printStackTrace(); |
| | | } catch (TeamRewardDebtException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public List<TaoBaoWeiQuanOrder> getWeiQuanSuccessOrders(String orderId) { |
| | | return taoBaoWeiQuanOrderMapper.selectListByOrderIdAndState(orderId, "维权成功"); |
| | | } |
| | | |
| | | @Override |
| | | public TaoBaoWeiQuanOrder listByorderItemId(String tradeId) { |
| | | return taoBaoWeiQuanOrderMapper.selectByOrderItemId(tradeId); |
| | | } |
| | | |
| | | @Override |
| | | public List<TaoBaoWeiQuanOrder> listByState(String state, int page, int pageSize) { |
| | | return taoBaoWeiQuanOrderMapper.listByState(state, (page - 1) * pageSize, pageSize); |
| | | } |
| | | |
| | | @Override |
| | | public long countByState(String state) { |
| | | return taoBaoWeiQuanOrderMapper.countByState(state); |
| | | } |
| | | |
| | | @Override |
| | | public List<TaoBaoWeiQuanOrder> listByOrderId(String orderId) { |
| | | return taoBaoWeiQuanOrderMapper.listByOrderId(orderId); |
| | | } |
| | | |
| | | @Override |
| | | public TaoBaoWeiQuanOrder selectByTradeId(String tradeId) { |
| | | return taoBaoWeiQuanOrderMapper.selectByOrderItem(tradeId); |
| | | } |
| | | |
| | | @Override |
| | | public List<TaoBaoWeiQuanOrder> listByBeginWeiQuan(int page, int pageSize) { |
| | | return taoBaoWeiQuanOrderMapper.listByBeginWeiQuan((page - 1) * pageSize, pageSize); |
| | | } |
| | | } |