优化tao订单消息

This commit is contained in:
Richie 2025-05-23 17:13:38 +08:00
parent 4ead082dec
commit cd41bd9d22
17 changed files with 353 additions and 528 deletions

View File

@ -1,6 +1,6 @@
package cn.qihangerp.oms.controller; package cn.qihangerp.oms.controller;
import cn.qihangerp.oms.feign.EchoService;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -13,8 +13,8 @@ import org.springframework.web.client.RestTemplate;
@RestController @RestController
public class HomeController { public class HomeController {
@Resource // @Resource
private EchoService echoService; // private EchoService echoService;
@Autowired @Autowired
private RestTemplate restTemplate; private RestTemplate restTemplate;
@Autowired @Autowired
@ -31,10 +31,10 @@ public class HomeController {
public String rest() { public String rest() {
return restTemplate.getForObject("http://tao-oms/test/na", String.class); return restTemplate.getForObject("http://tao-oms/test/na", String.class);
} }
@GetMapping(value = "/echo-feign") // @GetMapping(value = "/echo-feign")
public String feign() { // public String feign() {
String token = "Bearer eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjdkOTBmN2EzLWUwNWQtNDkxNy04NjIzLTU1OGRhNGY3NjE3NiJ9._Oukm9b0P1WvcOywLdhs6_BOt_6mRSF41Q6f4fBm_DGUkPR86Qg1tqyRTM5ouTR2Xz46IRuRAVez8Wcl3NIlwg"; // String token = "Bearer eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjdkOTBmN2EzLWUwNWQtNDkxNy04NjIzLTU1OGRhNGY3NjE3NiJ9._Oukm9b0P1WvcOywLdhs6_BOt_6mRSF41Q6f4fBm_DGUkPR86Qg1tqyRTM5ouTR2Xz46IRuRAVez8Wcl3NIlwg";
//
return echoService.echo(token); // return echoService.echo(token);
} // }
} }

View File

@ -1,12 +1,12 @@
package cn.qihangerp.oms.feign; //package cn.qihangerp.oms.feign;
//
import org.springframework.cloud.openfeign.FeignClient; //import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping; //import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestHeader; //import org.springframework.web.bind.annotation.RequestHeader;
//
//
@FeignClient(name = "open-api") //@FeignClient(name = "open-api")
public interface EchoService { //public interface EchoService {
@GetMapping(value = "/test/na") // @GetMapping(value = "/test/na")
String echo(@RequestHeader(name = "Authorization",required = true) String Token); // String echo(@RequestHeader(name = "Authorization",required = true) String Token);
} //}

View File

@ -0,0 +1,68 @@
package cn.qihangerp.oms.feign;
import com.alibaba.fastjson2.JSONObject;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestParam;
@FeignClient(name = "open-api")
public interface OpenApiService {
@GetMapping(value = "/dou/order/get_detail")
JSONObject getDouOrderDetail(@RequestParam String orderId);
@GetMapping(value = "/dou/refund/get_detail")
JSONObject getDouRefundDetail(@RequestParam String id);
/**
* 抖店发货
* @param Token
* @return
*/
// @GetMapping(value = "/dou/ship/order_ship")
// JSONObject shipDouOrder(@RequestHeader(name = "Authorization",required = true) String Token, @RequestBody DouOrderShipBo bo);
// @GetMapping(value = "/dou/ship/order_ship_multi_pack")
// JSONObject shipDouOrderMultiPack(@RequestHeader(name = "Authorization",required = true) String Token, @RequestBody DouOrderShipMultiPackBo bo);
@GetMapping(value = "/jd/order/get_detail")
JSONObject getJdOrderDetail(@RequestParam Long orderId,@RequestParam Integer vc);
@GetMapping(value = "/jd/refund/get_detail")
JSONObject getJdRefundDetail(@RequestParam Long refundId,@RequestParam Integer vc);
@GetMapping(value = "/pdd/order/get_detail")
JSONObject getPddOrderDetail(@RequestParam String sn);
@GetMapping(value = "/pdd/refund/get_detail")
JSONObject getPddRefundDetail(@RequestParam Long id);
/**
* 淘宝发货
* @param Token
* @return
*/
// @GetMapping(value = "/tao/ship/order_ship")
// JSONObject shipTaoOrder(@RequestHeader(name = "Authorization",required = true) String Token, @RequestBody TaoOrderShipBo bo);
@GetMapping(value = "/tao/order/get_detail")
JSONObject getTaoOrderDetail(@RequestParam String tid);
@GetMapping(value = "/tao/refund/get_detail")
JSONObject getTaoRefundDetail(@RequestParam Long refundId);
@GetMapping(value = "/wei/order/get_detail")
JSONObject getWeiOrderDetail(@RequestParam String orderId);
@GetMapping(value = "/wei/refund/get_detail")
JSONObject getWeiRefundDetail(@RequestParam String afterSaleOrderId);
/**
* 微信小店发货
* @param Token
* @return
*/
// @GetMapping(value = "/wei/ship/order_ship")
// JSONObject shipWeiOrder(@RequestHeader(name = "Authorization",required = true) String Token, @RequestBody WeiOrderShipBo bo);
}

View File

@ -1,5 +1,6 @@
package cn.qihangerp.oms.mq; package cn.qihangerp.oms.mq;
import cn.qihangerp.module.service.ApiMessageService;
import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSON;
import cn.qihangerp.common.enums.EnumShopType; import cn.qihangerp.common.enums.EnumShopType;
import cn.qihangerp.common.mq.MqMessage; import cn.qihangerp.common.mq.MqMessage;
@ -37,9 +38,12 @@ public class ApiMessageReceiver implements MessageListener {
String messageContent = new String(message.getBody()); String messageContent = new String(message.getBody());
MqMessage vo = JSON.parseObject(messageContent, MqMessage.class); MqMessage vo = JSON.parseObject(messageContent, MqMessage.class);
System.out.println(vo.getMqType()); logger.info("收到通知消息:",vo);
cn.qihangerp.module.service.ApiMessageService apiMessageService = SpringUtils.getBean(ApiMessageService.class);
apiMessageService.messageHandle(vo);
// System.out.println(vo.getMqType());
if(vo.getMqType() == MqType.ORDER_MESSAGE){ // if(vo.getMqType() == MqType.ORDER_MESSAGE){
// 有新订单插入新订单到shop_order // 有新订单插入新订单到shop_order
// ErpSaleOrderService orderService = SpringUtils.getBean(ErpSaleOrderService.class); // ErpSaleOrderService orderService = SpringUtils.getBean(ErpSaleOrderService.class);
@ -50,7 +54,7 @@ public class ApiMessageReceiver implements MessageListener {
// logger.info("订单消息TAO"+messageContent); // logger.info("订单消息TAO"+messageContent);
// orderService.taoOrderMessage(vo.getKeyId()); // orderService.taoOrderMessage(vo.getKeyId());
// } // }
} // }
// else if(vo.getMqType() == MqType.REFUND_MESSAGE){ // else if(vo.getMqType() == MqType.REFUND_MESSAGE){
// ORefundService refundService = SpringUtils.getBean(ORefundService.class); // ORefundService refundService = SpringUtils.getBean(ORefundService.class);
// if(vo.getShopType().getIndex() == EnumShopType.JD.getIndex()) { // if(vo.getShopType().getIndex() == EnumShopType.JD.getIndex()) {

View File

@ -0,0 +1,16 @@
package cn.qihangerp.oms.mq;
import cn.qihangerp.common.ResultVo;
import cn.qihangerp.common.mq.MqMessage;
public interface ApiMessageService {
// ResultVo<Integer> jdOrderMessage(String orderId);
//
// ResultVo<Integer> jdvcOrderMessage(String orderId );
// ResultVo<Integer> taoOrderMessage(String tid );
// ResultVo<Integer> pddOrderMessage(String orderSn );
// ResultVo<Integer> douOrderMessage(String orderId );
// ResultVo<Integer> offlineOrderMessage(String orderNum);
// ResultVo<Integer> weiOrderMessage(String orderNum );
ResultVo<Integer> messageHandle(MqMessage mqMessage);
}

View File

@ -0,0 +1,163 @@
package cn.qihangerp.oms.mq;
import cn.qihangerp.common.ResultVo;
import cn.qihangerp.common.enums.EnumShopType;
import cn.qihangerp.common.mq.MqMessage;
import cn.qihangerp.common.mq.MqType;
import cn.qihangerp.common.utils.SpringUtils;
import cn.qihangerp.module.order.service.OOrderService;
import cn.qihangerp.module.order.service.ORefundService;
import cn.qihangerp.module.order.service.OShipmentService;
import cn.qihangerp.module.service.ApiMessageService;
import cn.qihangerp.oms.feign.OpenApiService;
import com.alibaba.fastjson2.JSONObject;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@AllArgsConstructor
@Slf4j
@Service
public class ApiMessageServiceImpl implements ApiMessageService {
private final OpenApiService openApiService;
// private final PddApiService pddApiService;
// private final TaoApiService taoApiService;
// private final JdApiService jdApiService;
// private final DouApiService douApiService;
// private final WeiApiService weiApiService;
@Override
public ResultVo<Integer> messageHandle(MqMessage mqMessage) {
if (mqMessage.getMqType() == MqType.ORDER_MESSAGE) {
// 有新订单插入新订单到shop_order
OOrderService orderService = SpringUtils.getBean(OOrderService.class);
if (mqMessage.getShopType().getIndex() == EnumShopType.JD.getIndex()) {
log.info("订单消息JD");
JSONObject jsonObject = openApiService.getJdOrderDetail(Long.parseLong(mqMessage.getKeyId()), 0);
if (jsonObject.getInteger("code") != 200 || jsonObject.getJSONObject("data") == null) {
log.info("=====jdpop order message===没有找到订单");
return ResultVo.error(404, "没有找到订单");
}
JSONObject orderDetail = jsonObject.getJSONObject("data");
orderService.jdOrderMessage(mqMessage.getKeyId(),orderDetail);
} else if (mqMessage.getShopType().getIndex() == EnumShopType.TAO.getIndex()) {
log.info("订单消息TAO");
JSONObject jsonObject = openApiService.getTaoOrderDetail(mqMessage.getKeyId());
if (jsonObject.getInteger("code") != 200 || jsonObject.getJSONObject("data") == null) {
log.error("===查询原始订单错误==={}",jsonObject.getString("msg"));
log.info("=====tao order message===没有找到订单");
return ResultVo.error(404, "没有找到订单");
}
JSONObject orderDetail = jsonObject.getJSONObject("data");
orderService.taoOrderMessage(mqMessage.getKeyId(), orderDetail);
} else if (mqMessage.getShopType().getIndex() == EnumShopType.PDD.getIndex()) {
log.info("订单消息PDD");
JSONObject jsonObject = openApiService.getPddOrderDetail(mqMessage.getKeyId());
if (jsonObject.getInteger("code") != 200 || jsonObject.getJSONObject("data") == null) {
log.info("=====pdd order message===没有找到订单");
return ResultVo.error(404, "没有找到订单");
}
JSONObject orderDetail = jsonObject.getJSONObject("data");
orderService.pddOrderMessage(mqMessage.getKeyId(), orderDetail);
} else if (mqMessage.getShopType().getIndex() == EnumShopType.DOU.getIndex()) {
log.info("订单消息DOU");
JSONObject jsonObject = openApiService.getDouOrderDetail(mqMessage.getKeyId());
if (jsonObject.getInteger("code") != 200 || jsonObject.getJSONObject("data") == null) {
log.info("=====dou order message===没有找到订单");
return ResultVo.error(404, "没有找到订单");
}
JSONObject orderDetail = jsonObject.getJSONObject("data");
orderService.douOrderMessage(mqMessage.getKeyId(), orderDetail);
} else if (mqMessage.getShopType().getIndex() == EnumShopType.OFFLINE.getIndex()) {
log.info("订单消息OFFLINE");
orderService.offlineOrderMessage(mqMessage.getKeyId());
} else if (mqMessage.getShopType().getIndex() == EnumShopType.WEI.getIndex()) {
log.info("订单消息WEI");
JSONObject jsonObject = openApiService.getWeiOrderDetail(mqMessage.getKeyId());
if (jsonObject.getInteger("code") != 200 || jsonObject.getJSONObject("data") == null) {
log.info("=====wei order message===没有找到订单");
return ResultVo.error(404, "没有找到订单");
}
JSONObject orderDetail = jsonObject.getJSONObject("data");
orderService.weiOrderMessage(mqMessage.getKeyId(), orderDetail);
}
} else if (mqMessage.getMqType() == MqType.REFUND_MESSAGE) {
// 售后消息
ORefundService refundService = SpringUtils.getBean(ORefundService.class);
if (mqMessage.getShopType().getIndex() == EnumShopType.JD.getIndex()) {
log.info("退款消息JD");
// log.info("=====jd refund message===消息处理" + serviceId);
JSONObject jsonObject = openApiService.getJdRefundDetail(Long.parseLong(mqMessage.getKeyId()), 0);
if (jsonObject.getInteger("code") != 200 || jsonObject.getJSONObject("data") == null) {
log.info("=====jd refund message===没有找到退款单");
return ResultVo.error(404, "没有找到退款单");
}
JSONObject refundDetail = jsonObject.getJSONObject("data");
refundService.jdRefundMessage(mqMessage.getKeyId(), refundDetail);
} else if (mqMessage.getShopType().getIndex() == EnumShopType.TAO.getIndex()) {
log.info("退款消息TAO");
JSONObject jsonObject = openApiService.getTaoRefundDetail(Long.parseLong(mqMessage.getKeyId()));
if (jsonObject.getInteger("code") != 200 || jsonObject.getJSONObject("data") == null) {
log.info("=====tao refund message===没有找到退款单");
return ResultVo.error(404, "没有找到退款单");
}
JSONObject refundDetail = jsonObject.getJSONObject("data");
refundService.taoRefundMessage(mqMessage.getKeyId(), refundDetail);
} else if (mqMessage.getShopType().getIndex() == EnumShopType.PDD.getIndex()) {
log.info("退款消息PDD");
JSONObject jsonObject = openApiService.getPddRefundDetail(Long.parseLong(mqMessage.getKeyId()));
if (jsonObject.getInteger("code") != 200 || jsonObject.getJSONObject("data") == null) {
log.info("=====pdd refund message===没有找到退款单");
return ResultVo.error(404, "没有找到退款单");
}
JSONObject refundDetail = jsonObject.getJSONObject("data");
refundService.pddRefundMessage(mqMessage.getKeyId(), refundDetail);
} else if (mqMessage.getShopType().getIndex() == EnumShopType.DOU.getIndex()) {
log.info("退款消息DOU");
JSONObject jsonObject = openApiService.getDouRefundDetail(mqMessage.getKeyId());
if (jsonObject.getInteger("code") != 200 || jsonObject.getJSONObject("data") == null) {
log.info("=====dou refund message===没有找到退款单");
return ResultVo.error(404, "没有找到退款单");
}
JSONObject refundDetail = jsonObject.getJSONObject("data");
refundService.douRefundMessage(mqMessage.getKeyId(), refundDetail);
} else if (mqMessage.getShopType().getIndex() == EnumShopType.WEI.getIndex()) {
log.info("退款消息WEI");
JSONObject jsonObject = openApiService.getWeiRefundDetail(mqMessage.getKeyId());
if (jsonObject.getInteger("code") != 200 || jsonObject.getJSONObject("data") == null) {
log.info("=====dou refund message===没有找到退款单");
return ResultVo.error(404, "没有找到退款单");
}
JSONObject refundDetail = jsonObject.getJSONObject("data");
refundService.weiRefundMessage(mqMessage.getKeyId(), refundDetail);
}
} else if (mqMessage.getMqType() == MqType.SHIP_STOCKUP_MESSAGE) {
// 备货消息
log.info("=================收到备货消息==============");
if (mqMessage.getShopType().getIndex() == EnumShopType.OFFLINE.getIndex()) {
OShipmentService shipmentService = SpringUtils.getBean(OShipmentService.class);
// shipmentService.shipStockup(mqMessage.getKeyId(), EnumShopType.OFFLINE);
}
} else if (mqMessage.getMqType() == MqType.SHIP_SEND_MESSAGE) {
// 发货消息
log.info("=================收到发货消息==============");
if (mqMessage.getShopType().getIndex() == EnumShopType.OFFLINE.getIndex()) {
OShipmentService shipmentService = SpringUtils.getBean(OShipmentService.class);
// shipmentService.shipSendMessage(mqMessage.getKeyId(), EnumShopType.OFFLINE, mqMessage.getData1(), mqMessage.getData2());
// orderService.offlineOrderMessage(mqMessage.getKeyId());
}
}
return null;
}
}

View File

@ -85,5 +85,5 @@ spring:
mybatis-plus: mybatis-plus:
mapper-locations: classpath*:mapper/**/*Mapper.xml mapper-locations: classpath*:mapper/**/*Mapper.xml
type-aliases-package: cn.qihangerp.oms.domain;cn.qihangerp.module.domain;cn.qihangerp.security.entity; type-aliases-package: cn.qihangerp.oms.domain;cn.qihangerp.module.domain;cn.qihangerp.security.entity;
configuration: # configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 开启sql日志 # log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 开启sql日志

View File

@ -50,7 +50,7 @@ public class JwtAuthenticationTokenFilter extends OncePerRequestFilter {
if (request.getRequestURI().equals("/login") if (request.getRequestURI().equals("/login")
|| request.getRequestURI().contains("/login") || request.getRequestURI().contains("/login")
|| request.getRequestURI().contains("/captchaImage") || request.getRequestURI().contains("/captchaImage")
|| request.getRequestURI().equals("/order/get_detail") || request.getRequestURI().contains("/order/get_detail")
|| request.getRequestURI().equals("/refund/get_detail") || request.getRequestURI().equals("/refund/get_detail")
|| request.getRequestURI().contains("/system/config") || request.getRequestURI().contains("/system/config")
) { ) {

View File

@ -61,7 +61,7 @@ public class SecurityConfig {
// 允许所有OPTIONS请求 // 允许所有OPTIONS请求
.requestMatchers("/home").permitAll() .requestMatchers("/home").permitAll()
.requestMatchers(HttpMethod.GET, "/favicon.ico").permitAll() .requestMatchers(HttpMethod.GET, "/favicon.ico").permitAll()
.requestMatchers(HttpMethod.GET, "/order/get_detail").permitAll() .requestMatchers(HttpMethod.GET, "/*/order/get_detail").permitAll()
.requestMatchers(HttpMethod.GET, "/refund/get_detail").permitAll() .requestMatchers(HttpMethod.GET, "/refund/get_detail").permitAll()
.requestMatchers(HttpMethod.GET, "/images/preview/**").permitAll() .requestMatchers(HttpMethod.GET, "/images/preview/**").permitAll()
.requestMatchers(HttpMethod.GET, "/system/config/**").permitAll() .requestMatchers(HttpMethod.GET, "/system/config/**").permitAll()

View File

@ -70,7 +70,7 @@
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.projectlombok</groupId>it <groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId> <artifactId>lombok</artifactId>
<version>1.18.30</version> <version>1.18.30</version>
<scope>provided</scope> <scope>provided</scope>

View File

@ -45,7 +45,7 @@ public class OOrderItem implements Serializable {
/** /**
* erp系统商品规格id * erp系统商品规格id
*/ */
private String goodsSkuId; private Long goodsSkuId;
/** /**
* 商品标题 * 商品标题

View File

@ -52,7 +52,7 @@ public class OShipStockUp implements Serializable {
/** /**
* erp系统商品规格id * erp系统商品规格id
*/ */
private String specId; private Long specId;
/** /**
* 商品标题 * 商品标题

View File

@ -22,7 +22,7 @@ import java.util.List;
*/ */
public interface OOrderService extends IService<OOrder> { public interface OOrderService extends IService<OOrder> {
ResultVo<Integer> jdOrderMessage(String orderId, JSONObject orderDetail); ResultVo<Integer> jdOrderMessage(String orderId, JSONObject orderDetail);
ResultVo<Integer> jdvcOrderMessage(String orderId,JSONObject orderDetail );
ResultVo<Integer> taoOrderMessage(String tid,JSONObject orderDetail ); ResultVo<Integer> taoOrderMessage(String tid,JSONObject orderDetail );
ResultVo<Integer> pddOrderMessage(String orderSn,JSONObject orderDetail ); ResultVo<Integer> pddOrderMessage(String orderSn,JSONObject orderDetail );
ResultVo<Integer> douOrderMessage(String orderId,JSONObject orderDetail ); ResultVo<Integer> douOrderMessage(String orderId,JSONObject orderDetail );

View File

@ -21,7 +21,7 @@ import java.util.List;
*/ */
public interface ORefundService extends IService<ORefund> { public interface ORefundService extends IService<ORefund> {
ResultVo<Integer> jdRefundMessage(String serviceId, JSONObject refundDetail); ResultVo<Integer> jdRefundMessage(String serviceId, JSONObject refundDetail);
ResultVo<Integer> jdvcRefundMessage(String returnId,JSONObject refundDetail);
ResultVo<Integer> taoRefundMessage(String refundId,JSONObject refundDetail); ResultVo<Integer> taoRefundMessage(String refundId,JSONObject refundDetail);
ResultVo<Integer> pddRefundMessage(String refundId,JSONObject refundDetail); ResultVo<Integer> pddRefundMessage(String refundId,JSONObject refundDetail);
ResultVo<Integer> douRefundMessage(String refundId,JSONObject refundDetail); ResultVo<Integer> douRefundMessage(String refundId,JSONObject refundDetail);

View File

@ -76,7 +76,7 @@ public class OOrderItemServiceImpl extends ServiceImpl<OOrderItemMapper, OOrderI
public ResultVo<Integer> updateErpSkuId(String id, Long erpSkuId) { public ResultVo<Integer> updateErpSkuId(String id, Long erpSkuId) {
OOrderItem update = new OOrderItem(); OOrderItem update = new OOrderItem();
update.setId(id); update.setId(id);
update.setGoodsSkuId(erpSkuId.toString()); update.setGoodsSkuId(erpSkuId);
update.setUpdateBy("手动修改ERP SKU ID"); update.setUpdateBy("手动修改ERP SKU ID");
update.setUpdateTime(new Date()); update.setUpdateTime(new Date());
mapper.updateById(update); mapper.updateById(update);

View File

@ -1,6 +1,8 @@
package cn.qihangerp.module.order.service.impl; package cn.qihangerp.module.order.service.impl;
import cn.qihangerp.module.goods.domain.OGoodsSku;
import cn.qihangerp.module.goods.mapper.OGoodsSkuMapper;
import cn.qihangerp.module.order.domain.OOrder; import cn.qihangerp.module.order.domain.OOrder;
import cn.qihangerp.module.order.domain.OOrderItem; import cn.qihangerp.module.order.domain.OOrderItem;
import cn.qihangerp.module.order.domain.OfflineOrder; import cn.qihangerp.module.order.domain.OfflineOrder;
@ -30,6 +32,7 @@ import cn.qihangerp.common.utils.StringUtils;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.java.Log; import lombok.extern.java.Log;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.transaction.interceptor.TransactionAspectSupport;
@ -45,7 +48,7 @@ import java.util.regex.Pattern;
* @description 针对表o_order(订单表)的数据库操作Service实现 * @description 针对表o_order(订单表)的数据库操作Service实现
* @createDate 2024-03-09 13:15:57 * @createDate 2024-03-09 13:15:57
*/ */
@Log @Slf4j
@AllArgsConstructor @AllArgsConstructor
@Service @Service
public class OOrderServiceImpl extends ServiceImpl<OOrderMapper, OOrder> public class OOrderServiceImpl extends ServiceImpl<OOrderMapper, OOrder>
@ -54,6 +57,8 @@ public class OOrderServiceImpl extends ServiceImpl<OOrderMapper, OOrder>
private final OOrderMapper orderMapper; private final OOrderMapper orderMapper;
private final OOrderItemMapper orderItemMapper; private final OOrderItemMapper orderItemMapper;
private final OGoodsSkuMapper oGoodsSkuMapper;
private final OfflineOrderMapper offlineOrderMapper; private final OfflineOrderMapper offlineOrderMapper;
private final OfflineOrderItemMapper offlineOrderItemMapper; private final OfflineOrderItemMapper offlineOrderItemMapper;
@ -207,7 +212,7 @@ public class OOrderServiceImpl extends ServiceImpl<OOrderMapper, OOrder>
orderItem.setSkuNum(itemObject.getString("outerSkuId")); orderItem.setSkuNum(itemObject.getString("outerSkuId"));
orderItem.setSkuId(itemObject.getString("skuId")); orderItem.setSkuId(itemObject.getString("skuId"));
orderItem.setGoodsId(itemObject.getLong("oGoodsId")); orderItem.setGoodsId(itemObject.getLong("oGoodsId"));
orderItem.setGoodsSkuId(itemObject.getString("oGoodsSkuId")); orderItem.setGoodsSkuId(itemObject.getLong("oGoodsSkuId"));
orderItem.setGoodsTitle(itemObject.getString("skuName")); orderItem.setGoodsTitle(itemObject.getString("skuName"));
orderItem.setGoodsPrice(StringUtils.isEmpty(itemObject.getString("jdPrice")) ? 0.0 : Double.parseDouble(itemObject.getString("jdPrice"))); orderItem.setGoodsPrice(StringUtils.isEmpty(itemObject.getString("jdPrice")) ? 0.0 : Double.parseDouble(itemObject.getString("jdPrice")));
Integer quantity = itemObject.getInteger("itemTotal"); Integer quantity = itemObject.getInteger("itemTotal");
@ -251,273 +256,6 @@ public class OOrderServiceImpl extends ServiceImpl<OOrderMapper, OOrder>
} }
@Transactional
@Override
public ResultVo<Integer> jdvcOrderMessage(String customOrderId,JSONObject orderDetail ) {
log.info("接收jdvc订单消息"+customOrderId);
// JSONObject jsonObject = jdApiService.getOrderDetail(Long.parseLong(customOrderId),1);
// if(jsonObject.getInteger("code")!=200 || jsonObject.getJSONObject("data") ==null){
// log.info("=====jdvc order message===没有找到订单");
// return ResultVo.error(404,"没有找到订单");
// }
//
// JSONObject orderDetail = jsonObject.getJSONObject("data");
log.info("=====jdvc order message===订单:"+JSONObject.toJSONString(orderDetail));
JSONArray itemArray = orderDetail.getJSONArray("items");
if (itemArray.isEmpty()) {
// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
log.info("=====jdvc order message===没有items====事务回滚=======");
}
// List<JdVcOrder> jdVcOrders = jdVcOrderMapper.selectList(new LambdaQueryWrapper<JdVcOrder>().eq(JdVcOrder::getCustomOrderId, customOrderId));
// if(jdVcOrders == null || jdVcOrders.size() == 0) {
// // 没有找到订单信息
// return ResultVo.error(ResultVoEnum.NotFound,"没有找到TAO订单"+customOrderId);
// }
// JdVcOrder jdVcOrder = jdVcOrders.get(0);
// 状态
Integer orderStatus = null;
Integer refundStatus = null;
// 订单状态:7 新订单10等待发货16等待确认收货19订单完成22锁定29删除
Integer orderState = orderDetail.getInteger("orderState");
if(orderState==7){
//7 新订单
orderStatus = 1;
refundStatus =1;
}else if(orderState==10){
//10等待发货
orderStatus = 1;
refundStatus=1;
}else if(orderState==16){
//16等待确认收货
orderStatus = 2;
refundStatus=1;
}else if(orderState==19){
//19订单完成
orderStatus = 3;
refundStatus=1;
}else if(orderState==22){
//22锁定
orderStatus = 22;
refundStatus = 1;
}else if(orderState==29) {
//29删除
orderStatus = 29;
refundStatus = 1;
}
List<OOrder> oOrders = orderMapper.selectList(new LambdaQueryWrapper<OOrder>().eq(OOrder::getOrderNum, customOrderId));
if(oOrders == null || oOrders.isEmpty()) {
// 新增订单
// 新增订单
OOrder insert = new OOrder();
insert.setOrderNum(customOrderId);
insert.setShopType(EnumShopType.JDVC.getIndex());
insert.setShopId(orderDetail.getLong("shopId"));
insert.setBuyerMemo(orderDetail.getString("orderRemark"));
insert.setSellerMemo(orderDetail.getString("memoByVendor"));
insert.setOrderStatus(orderStatus);
insert.setRefundStatus(refundStatus);
insert.setGoodsAmount(orderDetail.getDouble("jdPrice"));
insert.setPostFee(orderDetail.getDouble("totalCarriage"));
insert.setAmount(orderDetail.getDouble("cost"));
insert.setPayment(orderDetail.getDouble("cost"));
insert.setPlatformDiscount(0.0);
insert.setSellerDiscount(0.0);
insert.setReceiverName(orderDetail.getString("consigneeName"));
insert.setReceiverMobile(orderDetail.getString("phone"));
insert.setAddress(orderDetail.getString("address"));
insert.setProvince(orderDetail.getString("provinceName"));
insert.setCity(orderDetail.getString("cityName"));
insert.setTown(orderDetail.getString("countyName"));
insert.setOrderTime(orderDetail.getDate("orderCreateDate"));
insert.setShipType(0);
insert.setCreateTime(new Date());
insert.setCreateBy("ORDER_MESSAGE");
orderMapper.insert(insert);
// 插入orderItem
addJdVcOrderItem(insert.getId(),customOrderId,orderStatus,orderDetail.getJSONArray("items"));
}else {
//修改
// 修改订单 (修改)
OOrder update = new OOrder();
update.setId(oOrders.get(0).getId());
update.setOrderStatus(orderStatus);
update.setRefundStatus(refundStatus);
update.setGoodsAmount(orderDetail.getDouble("jdPrice"));
update.setPostFee(orderDetail.getDouble("totalCarriage"));
update.setAmount(orderDetail.getDouble("cost"));
update.setPayment(orderDetail.getDouble("cost"));
update.setPlatformDiscount(0.0);
update.setSellerDiscount(0.0);
update.setPlatformDiscount(0.0);
update.setSellerDiscount(0.0);
update.setReceiverName(orderDetail.getString("consigneeName"));
update.setReceiverMobile(orderDetail.getString("phone"));
update.setAddress(orderDetail.getString("address"));
update.setProvince(orderDetail.getString("provinceName"));
update.setCity(orderDetail.getString("cityName"));
update.setTown(orderDetail.getString("countyName"));
// update.setOrderTime(jdVcOrder.getOrderCreateDate() );
update.setUpdateTime(new Date());
update.setUpdateBy("ORDER_MESSAGE");
orderMapper.updateById(update);
// 删除orderItem
orderItemMapper.delete(new LambdaQueryWrapper<OOrderItem>().eq(OOrderItem::getOrderId,update.getId()));
// 插入orderItem
addJdVcOrderItem(update.getId(),customOrderId,orderStatus,orderDetail.getJSONArray("items"));
}
return ResultVo.success();
}
private void addJdVcOrderItem(String oOrderId,String customOrderId,Integer orderStatus,JSONArray orderItems){
if(orderItems!=null && orderItems.size()>0) {
for (int i =0;i<orderItems.size();i++) {
JSONObject itemObject =orderItems.getJSONObject(i);
OOrderItem orderItem = new OOrderItem();
orderItem.setOrderId(oOrderId);
orderItem.setOrderNum(customOrderId);
orderItem.setSubOrderNum(customOrderId+"-"+itemObject.getString("sku"));
orderItem.setSkuNum(itemObject.getString("sku"));
orderItem.setSkuId(itemObject.getString("sku"));
orderItem.setGoodsId(itemObject.getLong("ogoodsId"));
orderItem.setGoodsSkuId(itemObject.getString("ogoodsSkuId"));
orderItem.setGoodsImg("");
orderItem.setGoodsSpec(itemObject.getString("wareName"));
orderItem.setGoodsTitle(itemObject.getString("wareName"));
orderItem.setGoodsPrice(itemObject.getDouble("jdPrice"));
orderItem.setItemAmount(itemObject.getDouble("cost"));
orderItem.setPayment(itemObject.getDouble("cost"));
orderItem.setQuantity(itemObject.getInteger("wareNum"));
orderItem.setRefundStatus(1);
orderItem.setRefundCount(0);
// 状态
orderItem.setOrderStatus(orderStatus);
orderItem.setCreateTime(new Date());
orderItem.setCreateBy("ORDER_MESSAGE");
orderItemMapper.insert(orderItem);
}
}
}
// @Override
// public ResultVo<Integer> jdvcOrderMessage(String orderId) {
// log.info("接收jdvc订单消息"+orderId);
// List<JdVcPurchaseOrder> jdVcOrders = jdVcOrderMapper.selectList(new LambdaQueryWrapper<JdVcPurchaseOrder>().eq(JdVcPurchaseOrder::getOrderId, orderId));
// if(jdVcOrders == null || jdVcOrders.size() == 0) {
// // 没有找到订单信息
// return ResultVo.error(ResultVoEnum.NotFound,"没有找到TAO订单"+orderId);
// }
// JdVcPurchaseOrder jdVcOrder = jdVcOrders.get(0);
// List<OOrder> oOrders = orderMapper.selectList(new LambdaQueryWrapper<OOrder>().eq(OOrder::getOrderNum, orderId));
// if(oOrders == null || oOrders.isEmpty()) {
// // 新增订单
// OOrder insert = new OOrder();
// insert.setOrderNum(orderId);
// insert.setShopType(EnumShopType.JDVC.getIndex());
// insert.setShopId(jdVcOrder.getShopId().intValue());
// insert.setBuyerMemo("");
// insert.setSellerMemo("");
// // 状态
// insert.setOrderStatus(jdVcOrder.getState());
// insert.setRefundStatus(1);
//
// insert.setGoodsAmount(jdVcOrder.getTotalPrice());
// insert.setPostFee(0.0);
// insert.setAmount(jdVcOrder.getTotalPrice());
// insert.setPayment(jdVcOrder.getTotalPrice());
// insert.setReceiverName(jdVcOrder.getReceiverName());
// insert.setReceiverMobile(jdVcOrder.getWarehousePhone());
// insert.setAddress(jdVcOrder.getAddress());
// insert.setProvince("");
// insert.setCity("");
// insert.setTown("");
// insert.setOrderTime(jdVcOrder.getCreatedDate() );
// insert.setShipType(0);
// insert.setCreateTime(new Date());
// insert.setCreateBy("ORDER_MESSAGE");
//
// orderMapper.insert(insert);
// // 插入orderItem
// addJdVcOrderItem(insert.getId(),orderId,jdVcOrder.getState());
// }else {
// //修改
// // 修改订单 (修改)
// OOrder update = new OOrder();
// update.setId(oOrders.get(0).getId());
// update.setOrderStatus(jdVcOrder.getState());
// update.setGoodsAmount(jdVcOrder.getTotalPrice());
// update.setPostFee(0.0);
// update.setAmount(jdVcOrder.getTotalPrice());
// update.setPayment(jdVcOrder.getTotalPrice());
// update.setReceiverName(jdVcOrder.getReceiverName());
// update.setReceiverMobile(jdVcOrder.getWarehousePhone());
// update.setAddress(jdVcOrder.getAddress());
// update.setUpdateTime(new Date());
// update.setUpdateBy("ORDER_MESSAGE");
// orderMapper.updateById(update);
//
// // 删除orderItem
// orderItemMapper.delete(new LambdaQueryWrapper<OOrderItem>().eq(OOrderItem::getOrderId,update.getId()));
//
// // 插入orderItem
// addJdVcOrderItem(update.getId(),orderId,jdVcOrder.getState());
// }
// return ResultVo.success();
// }
//
// private void addJdVcOrderItem(String oOrderId,String orderId,Integer orderStatus){
// List<JdVcPurchaseOrderItem> originOrderItems = jdVcOrderItemMapper.selectList(new LambdaQueryWrapper<JdVcPurchaseOrderItem>().eq(JdVcPurchaseOrderItem::getOrderId, orderId));
// if(originOrderItems!=null && originOrderItems.size()>0) {
// for (var item : originOrderItems) {
// OOrderItem orderItem = new OOrderItem();
// orderItem.setOrderId(oOrderId);
// orderItem.setOrderNum(item.getOrderId().toString());
// orderItem.setSubOrderNum(item.getId().toString());
// // 这里将订单商品skuid转换成erp系统的skuid
// Long erpGoodsId = 0L;
// Long erpSkuId = 0L;
//
// List<JdVcGoods> shopGoods = jdVcGoodsMapper.selectList(new LambdaQueryWrapper<JdVcGoods>().eq(JdVcGoods::getWareId, item.getWareId()));
// if (shopGoods != null && !shopGoods.isEmpty()) {
// erpGoodsId = shopGoods.get(0).getOGoodsId();
// erpSkuId = shopGoods.get(0).getOGoodsSkuId();
//// orderItem.setGoodsImg(taoGoodsSku.get(0).getLogo());
//// orderItem.setGoodsSpec(jdGoodsSkus.get(0).getSkuName());
//// orderItem.setSkuNum(taoGoodsSku.get(0).getOuterId());
// }
// orderItem.setSkuNum("");
// orderItem.setSkuId(item.getWareId().toString());
// orderItem.setGoodsId(erpGoodsId);
// orderItem.setGoodsSkuId(erpSkuId);
// orderItem.setGoodsImg("");
// orderItem.setGoodsSpec(item.getWareName());
// orderItem.setGoodsTitle(item.getWareName());
// orderItem.setGoodsPrice(item.getTotoalPrice());
// orderItem.setItemAmount(item.getPurchasePrice());
// orderItem.setPayment(item.getPurchasePrice());
// orderItem.setQuantity(item.getOriginalNum());
// orderItem.setRefundStatus(1);
// orderItem.setRefundCount(0);
// // 状态
// orderItem.setOrderStatus(orderStatus);
// orderItem.setCreateTime(new Date());
// orderItem.setCreateBy("ORDER_MESSAGE");
// orderItemMapper.insert(orderItem);
// }
// }
// }
@Transactional @Transactional
@Override @Override
@ -654,12 +392,8 @@ public class OOrderServiceImpl extends ServiceImpl<OOrderMapper, OOrder>
update.setUpdateBy("ORDER_MESSAGE"); update.setUpdateBy("ORDER_MESSAGE");
orderMapper.updateById(update); orderMapper.updateById(update);
// 删除orderItem
orderItemMapper.delete(new LambdaQueryWrapper<OOrderItem>().eq(OOrderItem::getOrderId,update.getId()));
// 插入orderItem // 插入orderItem
addTaoOrderItem(update.getId(),tid,itemArray); addTaoOrderItem(update.getId(),tid,itemArray);
} }
return ResultVo.success(); return ResultVo.success();
} }
@ -668,14 +402,53 @@ public class OOrderServiceImpl extends ServiceImpl<OOrderMapper, OOrder>
for (int i = 0; i < itemArray.size(); i++) { for (int i = 0; i < itemArray.size(); i++) {
JSONObject itemObject = itemArray.getJSONObject(i); JSONObject itemObject = itemArray.getJSONObject(i);
// 查询商品库商品
Long oGoodsId = itemObject.getLong("oGoodsId");
Long oGoodsSkuId =itemObject.getLong("oGoodsSkuId");
String skuNum = itemObject.getString("outerSkuId");
if(oGoodsSkuId<=0){
// 没有关联商品库商品skuid查找关联====使用skucode查找
if(org.springframework.util.StringUtils.hasText(skuNum)) {
List<OGoodsSku> oGoodsSkus = oGoodsSkuMapper.selectList(new LambdaQueryWrapper<OGoodsSku>().eq(OGoodsSku::getSkuCode, skuNum));
if(oGoodsSkus==null||oGoodsSkus.isEmpty()){
log.error("同步TAO订单没有找到商品库商品SKU");
}else{
oGoodsId = oGoodsSkus.get(0).getGoodsId();
oGoodsSkuId = oGoodsSkus.get(0).getId();
}
}else {
log.error("同步TAO订单{},原始订单没有填写sku编码信息",tid);
}
}else{
OGoodsSku oGoodsSku = oGoodsSkuMapper.selectById(oGoodsSkuId);
if(oGoodsSku==null){
// 没有关联商品库商品skuid查找关联====使用skucode查找
if(org.springframework.util.StringUtils.hasText(skuNum)) {
List<OGoodsSku> oGoodsSkus = oGoodsSkuMapper.selectList(new LambdaQueryWrapper<OGoodsSku>().eq(OGoodsSku::getSkuCode, skuNum));
if(oGoodsSkus==null||oGoodsSkus.isEmpty()){
log.error("同步TAO订单没有找到商品库商品SKU");
}else{
oGoodsId = oGoodsSkus.get(0).getGoodsId();
oGoodsSkuId = oGoodsSkus.get(0).getId();
}
}else {
log.error("同步TAO订单{},原始订单没有填写sku编码信息",tid);
}
}else{
oGoodsId = oGoodsSku.getGoodsId();
oGoodsSkuId = oGoodsSku.getId();
}
}
OOrderItem orderItem = new OOrderItem(); OOrderItem orderItem = new OOrderItem();
orderItem.setOrderId(oOrderId); orderItem.setOrderId(oOrderId);
orderItem.setOrderNum(tid); orderItem.setOrderNum(tid);
orderItem.setSubOrderNum(itemObject.getString("oid")); orderItem.setSubOrderNum(itemObject.getString("oid"));
orderItem.setSkuNum(itemObject.getString("outerSkuId")); orderItem.setSkuNum(skuNum);
orderItem.setSkuId(itemObject.getString("skuId")); orderItem.setSkuId(itemObject.getString("skuId"));
orderItem.setGoodsId(itemObject.getLong("oGoodsId")); orderItem.setGoodsId(oGoodsId);
orderItem.setGoodsSkuId(itemObject.getString("oGoodsSkuId")); orderItem.setGoodsSkuId(oGoodsSkuId);
orderItem.setGoodsImg(itemObject.getString("picPath")); orderItem.setGoodsImg(itemObject.getString("picPath"));
orderItem.setGoodsSpec(itemObject.getString("skuPropertiesName")); orderItem.setGoodsSpec(itemObject.getString("skuPropertiesName"));
orderItem.setGoodsTitle(itemObject.getString("title")); orderItem.setGoodsTitle(itemObject.getString("title"));
@ -706,9 +479,21 @@ public class OOrderServiceImpl extends ServiceImpl<OOrderMapper, OOrder>
// 状态 // 状态
int orderStatus = TaoOrderStateEnum.getIndex(itemObject.getString("status")); int orderStatus = TaoOrderStateEnum.getIndex(itemObject.getString("status"));
orderItem.setOrderStatus(orderStatus); orderItem.setOrderStatus(orderStatus);
List<OOrderItem> oOrderItems = orderItemMapper.selectList(new LambdaQueryWrapper<OOrderItem>().eq(OOrderItem::getOrderId, oOrderId).eq(OOrderItem::getSkuId, itemObject.getString("skuId")));
if(oOrderItems==null||oOrderItems.isEmpty()){
//不存在新增
orderItem.setCreateTime(new Date()); orderItem.setCreateTime(new Date());
orderItem.setCreateBy("ORDER_MESSAGE"); orderItem.setCreateBy("ORDER_MESSAGE");
orderItemMapper.insert(orderItem); orderItemMapper.insert(orderItem);
}else {
orderItem.setId(oOrderItems.get(0).getId());
orderItem.setUpdateBy("ORDER_MESSAGE");
orderItem.setUpdateTime(new Date());
orderItemMapper.updateById(orderItem);
}
} }
} }
@ -819,7 +604,7 @@ public class OOrderServiceImpl extends ServiceImpl<OOrderMapper, OOrder>
orderItem.setSkuNum(itemObject.getString("outerId")); orderItem.setSkuNum(itemObject.getString("outerId"));
orderItem.setSkuId(itemObject.getString("skuId")); orderItem.setSkuId(itemObject.getString("skuId"));
orderItem.setGoodsId(itemObject.getLong("ogoodsId")); orderItem.setGoodsId(itemObject.getLong("ogoodsId"));
orderItem.setGoodsSkuId(itemObject.getString("ogoodsSkuId")); orderItem.setGoodsSkuId(itemObject.getLong("ogoodsSkuId"));
orderItem.setGoodsImg(itemObject.getString("goodsImg")); orderItem.setGoodsImg(itemObject.getString("goodsImg"));
orderItem.setGoodsSpec(itemObject.getString("goodsSpec")); orderItem.setGoodsSpec(itemObject.getString("goodsSpec"));
orderItem.setGoodsTitle(itemObject.getString("goodsName")); orderItem.setGoodsTitle(itemObject.getString("goodsName"));
@ -928,7 +713,7 @@ public class OOrderServiceImpl extends ServiceImpl<OOrderMapper, OOrder>
orderItem.setSkuNum(itemObject.getString("outerId")); orderItem.setSkuNum(itemObject.getString("outerId"));
orderItem.setSkuId(itemObject.getString("skuId")); orderItem.setSkuId(itemObject.getString("skuId"));
orderItem.setGoodsId(itemObject.getLong("ogoodsId")); orderItem.setGoodsId(itemObject.getLong("ogoodsId"));
orderItem.setGoodsSkuId(itemObject.getString("ogoodsSkuId")); orderItem.setGoodsSkuId(itemObject.getLong("ogoodsSkuId"));
orderItem.setGoodsImg(itemObject.getString("goodsImg")); orderItem.setGoodsImg(itemObject.getString("goodsImg"));
orderItem.setGoodsSpec(itemObject.getString("goodsSpec")); orderItem.setGoodsSpec(itemObject.getString("goodsSpec"));
orderItem.setGoodsTitle(itemObject.getString("goodsName")); orderItem.setGoodsTitle(itemObject.getString("goodsName"));
@ -1164,7 +949,7 @@ public class OOrderServiceImpl extends ServiceImpl<OOrderMapper, OOrder>
orderItem.setSkuNum(itemObject.getString("outSkuId")); orderItem.setSkuNum(itemObject.getString("outSkuId"));
orderItem.setSkuId(itemObject.getString("skuId")); orderItem.setSkuId(itemObject.getString("skuId"));
orderItem.setGoodsId(itemObject.getLong("ogoodsId")); orderItem.setGoodsId(itemObject.getLong("ogoodsId"));
orderItem.setGoodsSkuId(itemObject.getString("ogoodsSkuId")); orderItem.setGoodsSkuId(itemObject.getLong("ogoodsSkuId"));
orderItem.setGoodsImg(itemObject.getString("productPic")); orderItem.setGoodsImg(itemObject.getString("productPic"));
// if(org.springframework.util.StringUtils.hasText(item.getSpec())) { // if(org.springframework.util.StringUtils.hasText(item.getSpec())) {
@ -1311,7 +1096,7 @@ public class OOrderServiceImpl extends ServiceImpl<OOrderMapper, OOrder>
orderItem.setSkuNum(item.getSkuNum()); orderItem.setSkuNum(item.getSkuNum());
orderItem.setSkuId(item.getSkuId()); orderItem.setSkuId(item.getSkuId());
orderItem.setGoodsId(item.getGoodsId()); orderItem.setGoodsId(item.getGoodsId());
orderItem.setGoodsSkuId(item.getGoodsSkuId()+""); orderItem.setGoodsSkuId(item.getGoodsSkuId());
orderItem.setGoodsImg(item.getGoodsImg()); orderItem.setGoodsImg(item.getGoodsImg());
orderItem.setGoodsSpec(item.getGoodsSpec()); orderItem.setGoodsSpec(item.getGoodsSpec());
orderItem.setGoodsTitle(item.getGoodsTitle()); orderItem.setGoodsTitle(item.getGoodsTitle());
@ -1460,102 +1245,6 @@ public class OOrderServiceImpl extends ServiceImpl<OOrderMapper, OOrder>
return orderMapper.getWaitShipOrderAllCount(); return orderMapper.getWaitShipOrderAllCount();
} }
// /**
// * 新增订单
// *
// * @param bo 订单
// * @return 结果
// */
// @Transactional
// @Override
// public int insertErpOrder(OrderCreateBo bo,String createBy)
// {
// List<OOrder> oOrders = orderMapper.selectList(new LambdaQueryWrapper<OOrder>().eq(OOrder::getOrderNum, bo.getOrderNum()));
//
// if (oOrders!=null&& oOrders.size()>0) return -1;// 订单号已存在
//// erpOrder.setCreateTime(DateUtils.getNowDate());
//// int rows = erpOrderMapper.insertErpOrder(erpOrder);
//// insertErpOrderItem(erpOrder);
//// return rows;
// if(bo.getItemList() == null || bo.getItemList().size() == 0) return -2;
// else{
// // 循环查找是否缺少specId
// for (OrderCreateItemBo itemBo : bo.getItemList()) {
// if(itemBo.getSkuId()==null || itemBo.getQuantity()<=0) return -3;
// }
// }
//
// OShop shop = shopMapper.selectById(bo.getShopId());
// Integer shopType = 0;
// if(shop!=null){
// shopType = shop.getType();
// }else return -4;
//
// // 开始组合订单信息
// OOrder order = new OOrder();
// order.setOrderNum(bo.getOrderNum());
// order.setShopId(bo.getShopId());
// order.setShopType(shopType);
// order.setBuyerMemo(bo.getBuyerMemo());
// order.setRemark(bo.getRemark());
// order.setRefundStatus(1);
// order.setOrderStatus(1);
// order.setGoodsAmount(bo.getGoodsAmount());
// order.setPostFee(bo.getPostage());
// order.setAmount(bo.getGoodsAmount()+bo.getPostage());
// order.setSellerDiscount(bo.getSellerDiscount());
// order.setPlatformDiscount(0.0);
// order.setPayment(bo.getGoodsAmount()+bo.getPostage()-bo.getSellerDiscount());
// order.setReceiverName(bo.getReceiverName());
// order.setReceiverMobile(bo.getReceiverPhone());
// order.setProvince(bo.getProvince());
// order.setCity(bo.getCity());
// order.setTown(bo.getTown());
// order.setAddress(bo.getAddress());
// order.setOrderTime(new Date());
//
// order.setCreateTime(new Date());
// order.setShipType(0);
// order.setErpPushStatus(0);
// order.setCreateBy(createBy);
//
// orderMapper.insert(order);
//
//// List<OOrderItem> itemList = new ArrayList<OOrderItem>();
// for (int i = 0; i < bo.getItemList().size(); i++) {
// OrderCreateItemBo itemBo = bo.getItemList().get(i);
// OOrderItem orderItem = new OOrderItem();
//
// orderItem.setOrderId(order.getId());
// orderItem.setOrderNum(bo.getOrderNum());
// if(bo.getItemList().size()==1) {
// orderItem.setSubOrderNum(bo.getOrderNum());
// }else{
// orderItem.setSubOrderNum(bo.getOrderNum()+(i+1));
// }
// orderItem.setSkuId(itemBo.getSkuId());
// orderItem.setGoodsId(0L);
// orderItem.setGoodsSkuId(Long.parseLong(itemBo.getSkuId()));
// orderItem.setGoodsTitle(itemBo.getGoodsName());
// orderItem.setGoodsImg(itemBo.getGoodsImg());
// orderItem.setGoodsSpec(itemBo.getSkuName());
// orderItem.setSkuNum(itemBo.getSkuCode());
// orderItem.setGoodsPrice(itemBo.getGoodsPrice().doubleValue());
// orderItem.setItemAmount(itemBo.getItemAmount().doubleValue());
// orderItem.setPayment(itemBo.getItemAmount().doubleValue());
// orderItem.setQuantity(itemBo.getQuantity());
// orderItem.setRefundCount(0);
// orderItem.setRefundStatus(1);
// orderItem.setOrderStatus(order.getOrderStatus());
// orderItem.setHasPushErp(0);
// orderItem.setCreateTime(new Date());
// orderItem.setCreateBy(createBy);
// orderItemMapper.insert(orderItem);
//// itemList.add(orderItem);
// }
//
// return 1;
// }
} }

View File

@ -236,121 +236,6 @@ public class ORefundServiceImpl extends ServiceImpl<ORefundMapper, ORefund>
return ResultVo.success(); return ResultVo.success();
} }
@Transactional
@Override
public ResultVo<Integer> jdvcRefundMessage(String returnId,JSONObject refundDetail) {
log.info("京东VC退货消息处理" + returnId);
// log.info("=====jdvc refund message===消息处理" + returnId);
// JSONObject jsonObject = jdApiService.getRefundDetail(Long.parseLong(returnId),1);
// if(jsonObject.getInteger("code")!=200 || jsonObject.getJSONObject("data") ==null){
// log.info("=====jdvc refund message===没有找到退款单");
// return ResultVo.error(404,"没有找到退款单");
// }
//
// JSONObject refundDetail = jsonObject.getJSONObject("data");
log.info("=====jdvc refund message===退款单:"+JSONObject.toJSONString(refundDetail));
// List<JdVcRefund> returnList = jdVcRefundMapper.selectList(new LambdaQueryWrapper<JdVcRefund>().eq(JdVcRefund::getId, returnId));
// if (returnList == null || returnList.size() == 0) {
// // 没有找到订单信息
// return ResultVo.error(ResultVoEnum.NotFound, "没有找到京东VC退货单" + returnId);
// }
// JdVcRefund jdVcRefund = returnList.get(0);
// 对JSON做处理
// JSONArray jsonArray = JSONArray.parseArray(jdVcRefund.getOrderDetailList());
//类型(10-退货 20-换货 30-维修 40-大家电安装 50-大家电移机 60-大家电增值服务 70-上门维修 90-优鲜赔 80-补发商品 100-试用收回 11-仅退款)
Integer refundType=null;
Integer hasReturnGoods = null;
if(refundDetail.getInteger("orderState")==29 ) {
if (refundDetail.getInteger("operatorState") == 5 || refundDetail.getInteger("operatorState") == 10) {
refundType = 11;//这是没有发货的退货
hasReturnGoods = 0;
} else if (refundDetail.getInteger("operatorState") == 16) {
refundType = 10;//这是发货了的退款
hasReturnGoods = 1;
}
}
Integer status=10010;
//审核状态0未审核 1审核通过 2审核不通过
if(refundDetail.getInteger("approvalState")==0){
// 10001-待审核
status = 10001;
}else if(refundDetail.getInteger("approvalState")==1){
status = 10010;
}else if(refundDetail.getInteger("approvalState")==2){
status = 14000;
}
List<ORefund> oRefunds = mapper.selectList(new LambdaQueryWrapper<ORefund>().eq(ORefund::getRefundNum, returnId));
if (oRefunds == null || oRefunds.isEmpty()) {
// 新增
ORefund insert = new ORefund();
insert.setRefundNum(refundDetail.getString("id"));
insert.setRefundType(refundType);
insert.setHasGoodReturn(hasReturnGoods);
insert.setShopId(refundDetail.getLong("shopId"));
insert.setShopType(EnumShopType.JDVC.getIndex());
// 查询ERP订单
// OOrder order = null;
// OOrderItem orderItem = null;
// List<OOrder> oOrders = orderMapper.selectList(new LambdaQueryWrapper<OOrder>().eq(OOrder::getOrderNum, jdVcRefund.getCustomOrderId()).eq(OOrder::getShopId, jdVcRefund.getShopId()));
// if(oOrders!=null && oOrders.size()>0){
// order = oOrders.get(0);
// List<OOrderItem> oOrderItems = orderItemMapper.selectList(new LambdaQueryWrapper<OOrderItem>().eq(OOrderItem::getOrderId, oOrders.get(0).getId()).eq(OOrderItem::getSkuId, jdVcRefund.getSkuId()));
// if(oOrderItems!=null && oOrderItems.size()>0){
// orderItem = oOrderItems.get(0);
// }else{
// log.info("没有找到TAO子订单erp信息");
// return ResultVo.error(ResultVoEnum.NotFound,"没有找到TAO子订单erp信息");
// }
// }else{
// log.info("没有找到TAO订单erp信息"+jdVcRefund.getCustomOrderId());
// return ResultVo.error(ResultVoEnum.NotFound,"没有找到TAO订单erp信息"+jdVcRefund.getCustomOrderId());
// }
insert.setOrderNum(refundDetail.getString("customOrderId"));
insert.setOrderItemNum(refundDetail.getString("customOrderId")+"-"+refundDetail.getString("skuId"));
insert.setSkuId(refundDetail.getLong("skuId"));
insert.setGoodsId(refundDetail.getLong("ogoodsId"));
insert.setGoodsSkuId(refundDetail.getString("ogoodsSkuId"));
insert.setSkuNum(refundDetail.getString("skuId"));
insert.setGoodsName(refundDetail.getString("commodityName"));
insert.setGoodsSku("");
insert.setGoodsImage("");
insert.setQuantity(refundDetail.getLong("commodityNum"));
insert.setRefundReason(refundDetail.getString("roReason"));
insert.setStatus(status);
insert.setRefundFee(refundDetail.getDouble("roApplyFee"));
// todo:少了一個退款申請時間
insert.setCreateTime(new Date());
insert.setCreateBy("REFUND_MESSAGE");
mapper.insert(insert);
} else {
// 修改
ORefund update = new ORefund();
update.setId(oRefunds.get(0).getId());
update.setRefundType(refundType);
update.setHasGoodReturn(hasReturnGoods);
update.setGoodsId(refundDetail.getLong("ogoodsId"));
update.setGoodsSkuId(refundDetail.getString("ogoodsSkuId"));
update.setRefundFee(refundDetail.getDouble("roApplyFee"));
update.setStatus(status);
// update.setStatus(jdAfter.getServiceStatus());
update.setUpdateTime(new Date());
update.setUpdateBy("REFUND_MESSAGE");
mapper.updateById(update);
}
return ResultVo.success();
}
@Transactional @Transactional
@Override @Override