同步订单

master
wyq 6 months ago
parent 7aff1fbb9a
commit 33db78e8f7
  1. 152
      crmeb-service/src/main/java/com/zbkj/service/service/impl/OrderTaskServiceImpl.java
  2. 6
      crmeb-service/src/main/java/com/zbkj/service/service/impl/RetryServiceImpl.java

@ -19,6 +19,7 @@ import com.zbkj.common.model.product.StoreProductAttrValue;
import com.zbkj.common.model.product.StoreProductReply;
import com.zbkj.common.model.user.User;
import com.zbkj.common.model.user.UserAddress;
import com.zbkj.common.model.wechat.WechatPayInfo;
import com.zbkj.common.model.wechat.video.PayComponentOrder;
import com.zbkj.common.utils.CrmebDateUtil;
import com.zbkj.common.utils.RedisUtil;
@ -27,6 +28,7 @@ import com.zbkj.common.vo.StoreOrderInfoOldVo;
import com.zbkj.service.dao.StoreOrderDao;
import com.zbkj.service.dao.StoreProductAttrValueDao;
import com.zbkj.service.dao.UserAddressDao;
import com.zbkj.service.dao.WechatPayInfoDao;
import com.zbkj.service.pojo.TradeOrderItemCreateReqDTO;
import com.zbkj.service.service.*;
import com.zbkj.service.util.RedisLockUtil;
@ -108,6 +110,8 @@ public class OrderTaskServiceImpl implements OrderTaskService {
@Autowired
private SystemConfigService systemConfigService;
@Autowired
private WechatPayInfoDao wechatPayInfoDao;
/**
* 用户取消订单
* @author Mr.Zhang
@ -452,42 +456,42 @@ public class OrderTaskServiceImpl implements OrderTaskService {
@Override
public void autoSync() {
// // 查询未同步的订单;
// List<StoreOrder> list = storeOrderDao.selectList(new LambdaQueryWrapper<StoreOrder>()
// .eq(StoreOrder::getIsSystemDel, 0)
// .eq(StoreOrder::getPaid, 1)
// .eq(StoreOrder::getIsDel, 0)
// .eq(StoreOrder::getHasSync, 0)
// .eq(StoreOrder::getRefundStatus, 0));
// if (CollUtil.isEmpty(list)){
// return;
// }
//
// for (StoreOrder order : list) {
// boolean lock =
// redisLock.lock(Constants.ORDER_LOCK + order.getOrderId(),5);
// if (!lock) {
// logger.error("订单未获取到锁orderNo = " + order.getOrderId());
// continue;
// }
// try {
// QueryWrapper<MdbPayResultPO> queryWrapper=new QueryWrapper<>();
// queryWrapper.eq("platform_code",order.getOrderId());
// MdbPayResultPO mdbPayResultPO=mdbPayResultDao.selectOne(queryWrapper);
// List<StoreOrderInfo> skuList = storeOrderInfoService.getListByOrderNo(order.getOrderId());
// List<Integer> skuIds = skuList.stream().map(StoreOrderInfo::getAttrValueId).collect(Collectors.toList());
// List<StoreProductAttrValue> attrValues = storeProductAttrValueDao.selectList(new LambdaQueryWrapper<StoreProductAttrValue>().in(StoreProductAttrValue::getId, skuIds).eq(StoreProductAttrValue::getIsDel,0));
// List<TradeOrderItemCreateReqDTO> detailList = new ArrayList<>();
// BigDecimal hbdkje=BigDecimal.ZERO;
// BigDecimal hdyhje=BigDecimal.ZERO;
// BigDecimal jfdkje=BigDecimal.ZERO;
// if(StringUtils.isNotEmpty(mdbPayResultPO.getRpktRducAmt())){
// try {
// hbdkje=BigDecimal.valueOf(Double.parseDouble(mdbPayResultPO.getRpktRducAmt()));
// }catch (Exception e){
// logger.info("红包抵扣金额不是数字格式");
// }
// }
// 查询未同步的订单;
List<StoreOrder> list = storeOrderDao.selectList(new LambdaQueryWrapper<StoreOrder>()
.eq(StoreOrder::getIsSystemDel, 0)
.eq(StoreOrder::getPaid, 1)
.eq(StoreOrder::getIsDel, 0)
.eq(StoreOrder::getHasSync, 0)
.eq(StoreOrder::getRefundStatus, 0));
if (CollUtil.isEmpty(list)){
return;
}
for (StoreOrder order : list) {
boolean lock =
redisLock.lock(Constants.ORDER_LOCK + order.getOrderId(),5);
if (!lock) {
logger.error("订单未获取到锁orderNo = " + order.getOrderId());
continue;
}
try {
QueryWrapper<WechatPayInfo> queryWrapper=new QueryWrapper<>();
queryWrapper.eq("out_trade_no",order.getOutTradeNo());
WechatPayInfo mdbPayResultPO=wechatPayInfoDao.selectOne(queryWrapper);
List<StoreOrderInfo> skuList = storeOrderInfoService.getListByOrderNo(order.getOrderId());
List<Integer> skuIds = skuList.stream().map(StoreOrderInfo::getAttrValueId).collect(Collectors.toList());
List<StoreProductAttrValue> attrValues = storeProductAttrValueDao.selectList(new LambdaQueryWrapper<StoreProductAttrValue>().in(StoreProductAttrValue::getId, skuIds).eq(StoreProductAttrValue::getIsDel,0));
List<TradeOrderItemCreateReqDTO> detailList = new ArrayList<>();
BigDecimal hbdkje=BigDecimal.ZERO;
BigDecimal hdyhje=BigDecimal.ZERO;
BigDecimal jfdkje=BigDecimal.ZERO;
if(mdbPayResultPO.getCouponFee()!=null){
try {
hbdkje=BigDecimal.valueOf(mdbPayResultPO.getCouponFee()*0.01);
}catch (Exception e){
logger.info("红包抵扣金额不是数字格式");
}
}
// if(StringUtils.isNotEmpty(mdbPayResultPO.getActDsctAmt())){
// try {
// hdyhje=BigDecimal.valueOf(Double.parseDouble(mdbPayResultPO.getActDsctAmt()));
@ -502,44 +506,44 @@ public class OrderTaskServiceImpl implements OrderTaskService {
// logger.info("积分抵扣金额不是数字格式");
// }
// }
//
// for (StoreProductAttrValue attrValue : attrValues) {
// TradeOrderItemCreateReqDTO item = new TradeOrderItemCreateReqDTO();
// item.setSkuNo(attrValue.getBarCode());
// item.setSkuName(skuList.get(0).getProductName());
// StoreOrderInfo storeOrderInfo = skuList.stream().filter(o -> o.getAttrValueId().equals(attrValue.getId())).collect(Collectors.toList()).get(0);
// item.setSellQty(storeOrderInfo.getPayNum());
// item.setSellPrice(attrValue.getPrice());
// String productName = trim(skuList.get(0).getProductName());
// String sku = trim(skuList.get(0).getSku());
// String note = productName+sku;
// if (note.length()>40){
// productName= productName.length()>20?productName.substring(0,20):productName;
// note= productName+" "+sku;
// }
// item.setNote(note);
// item.setTotalPrice(order.getPayPrice());
// item.setPayPrice(order.getPayPrice().subtract(hdyhje).subtract(hbdkje).subtract(jfdkje));
// item.setOrderPrice(order.getPayPrice());
// item.setOid(order.getOrderId()+"_1");
// //价格随意全渠道会自动更新
// item.setCost(BigDecimal.ZERO);
// item.setBrandType(" ");
// item.setRebate(BigDecimal.ZERO);
// item.setPriceNote(" ");
// detailList.add(item);
// }
// UserAddress userAddress = userAddressDao.selectDistinct(order);
// retryService.createOrder(order, userAddress, detailList);
// order.setHasSync(1);
// storeOrderDao.updateById(order);
// }catch (Exception e){
// logger.error("订单同步失败:订单号:{},异常信息={}", order.getOrderId(), e);
// retryService.systemErrNc("订单同步失败:订单号:"+order.getOrderId());
// }finally {
// redisLock.unLock(Constants.ORDER_LOCK + order.getOrderId());
// }
// }
for (StoreProductAttrValue attrValue : attrValues) {
TradeOrderItemCreateReqDTO item = new TradeOrderItemCreateReqDTO();
item.setSkuNo(attrValue.getBarCode());
item.setSkuName(skuList.get(0).getProductName());
StoreOrderInfo storeOrderInfo = skuList.stream().filter(o -> o.getAttrValueId().equals(attrValue.getId())).collect(Collectors.toList()).get(0);
item.setSellQty(storeOrderInfo.getPayNum());
item.setSellPrice(attrValue.getPrice());
String productName = trim(skuList.get(0).getProductName());
String sku = trim(skuList.get(0).getSku());
String note = productName+sku;
if (note.length()>40){
productName= productName.length()>20?productName.substring(0,20):productName;
note= productName+" "+sku;
}
item.setNote(note);
item.setTotalPrice(order.getPayPrice());
item.setPayPrice(order.getPayPrice().subtract(hdyhje).subtract(hbdkje).subtract(jfdkje));
item.setOrderPrice(order.getPayPrice());
item.setOid(order.getOrderId()+"_1");
//价格随意全渠道会自动更新
item.setCost(BigDecimal.ZERO);
item.setBrandType(" ");
item.setRebate(BigDecimal.ZERO);
item.setPriceNote(" ");
detailList.add(item);
}
UserAddress userAddress = userAddressDao.selectDistinct(order);
retryService.createOrder(order, userAddress, detailList);
order.setHasSync(1);
storeOrderDao.updateById(order);
}catch (Exception e){
logger.error("订单同步失败:订单号:{},异常信息={}", order.getOrderId(), e);
retryService.systemErrNc("订单同步失败:订单号:"+order.getOrderId());
}finally {
redisLock.unLock(Constants.ORDER_LOCK + order.getOrderId());
}
}
}
@Override

@ -87,15 +87,15 @@ public class RetryServiceImpl implements RetryService {
params.put("platformCode", order.getOrderId());
params.put("erpCode", System.currentTimeMillis());
params.put("channelCode", "COMM1");
params.put("channelName", "交通银行");
params.put("channelCode", "054");
params.put("channelName", "渠道-微信");
params.put("deptCode", "");
params.put("deptName", "");
params.put("businessMan", "16638693690");
params.put("businessManName", "王玉祺");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
params.put("orderTime", sdf.format(order.getPayTime()));
params.put("buyVip", "交通银行用户");
params.put("buyVip", "微信用户");
params.put("payType", "FIRST_MONEY");
params.put("perPayTime", "");
params.put("proofName", "");

Loading…
Cancel
Save