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.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(name = "producer")
|
private Producer producer;
|
|
@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);
|
producer.send(message);
|
}
|
}
|
|
}
|
|
@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);
|
}
|
}
|