在不发货的地区编码中

This commit is contained in:
Owen 2025-01-11 23:51:12 +08:00
parent 421f3453b7
commit c7119e4518
3 changed files with 42 additions and 30 deletions

View File

@ -39,13 +39,17 @@ public class ApiDealServiceImpl implements ApiDealStrategyService {
@Override
public ApiDealResp<OrderApiCreateResp> createOrder(final SuperiorApiLogSaveReqVO logVO, OrderApiCreateParam param) {
String redisKey = "ApiDealServiceImpl::createOrder::" + param.getId();
RLock lock = redissonClient.getLock(redisKey);
logVO.setApiType(1);
logVO.setHaokaOrderId(param.getId());
logVO.setHaokaProductId(param.getProductId());
logVO.setHaokaSuperiorApiId(param.getSuperiorApiId());
// RLock lock = redissonClient.getLock(redisKey);
try {
lock.lock(1, TimeUnit.SECONDS);
// boolean b = lock.tryLock(1, 20, TimeUnit.SECONDS);
// if (!b){
// logVO.setInnerNote("获取不到锁!");
// return ApiDealResp.failed("获取不到锁");
// }
OnSaleProductPreOrderRespVO onSaleProductPreOrder = onSaleProductService.getOnSaleProductPreOrder(param.getOnSaleProductId());
if (onSaleProductPreOrder == null) {
String msg = "关联上级产品不存在";
@ -83,7 +87,7 @@ public class ApiDealServiceImpl implements ApiDealStrategyService {
logVO.setErrorInfo(e.getMessage());
return ApiDealResp.failed(e.getMessage());
} finally {
lock.unlock();
// lock.unlock();
superiorApiLogService.createSuperiorApiLog(logVO);
}
}

View File

@ -89,11 +89,13 @@ public class LianTongApiDealStrategy implements ApiDealStrategy {
// 1提交资料 lianTongSubmitUserInfo
KingIdentityCustV2Request ziLiao = new KingIdentityCustV2Request();
ziLiao.setProvince(numAddress.getPhoneProvinceCode());
ziLiao.setCity(numAddress.getPhoneCityCode());
if (numAddress!=null){
ziLiao.setProvince(numAddress.getPhoneProvinceCode());
ziLiao.setCity(numAddress.getPhoneCityCode());
}
ziLiao.setCertName(param.getIdCardName());
ziLiao.setCertNum(param.getIdCardNum());
if (skuConfigVO != null && StringUtils.isNotEmpty(skuConfigVO.getConfig())) {
if (StringUtils.isNotEmpty(skuConfigVO.getConfig())) {
String config = skuConfigVO.getConfig();
JSONObject configs = JSON.parseObject(config);
@ -187,8 +189,12 @@ public class LianTongApiDealStrategy implements ApiDealStrategy {
// 3 token提交正式订单 lianTongOrderSyncV2
KingOrderSyncV2Request syncV2 = new KingOrderSyncV2Request();
syncV2.setProvinceCode(numAddress.getPhoneProvinceCode());
syncV2.setCityCode(numAddress.getPhoneCityCode());
if (numAddress!=null){
syncV2.setProvinceCode(numAddress.getPhoneProvinceCode());
syncV2.setCityCode(numAddress.getPhoneCityCode());
}
syncV2.setCreateTime(format);
syncV2.setPhoneNum(param.getPlanMobile());
syncV2.setGoodsId(skuConfigVO.getSuperiorCode());

View File

@ -63,18 +63,20 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersMapper, OrdersDO> imple
private ProductLimitService productLimitService;
@Resource
private OrderOperateLogService orderOperateLogService;
/**
* 重新提交订单
*
* @param orderId
* @return
*/
public Long reCreateOrder(Long orderId){
if (ObjectUtil.isEmpty(orderId)){
throw invalidParamException("参数orderId不能为空");
public Long reCreateOrder(Long orderId) {
if (ObjectUtil.isEmpty(orderId)) {
throw invalidParamException("参数orderId不能为空");
}
OrdersDO ordersDO = ordersMapper.selectById(orderId);
Long statusOld = ordersDO.getStatus();
if (ObjectUtil.isEmpty(ordersDO)){
if (ObjectUtil.isEmpty(ordersDO)) {
throw invalidParamException("订单不存在!");
}
// 调用上游接口下单
@ -85,7 +87,7 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersMapper, OrdersDO> imple
// 判断是否需要发送短信
// 如果订单订单状态变更需要发送短信
if (statusOld!=null && statusOld.equals(ordersDO.getStatus())){
if (statusOld != null && statusOld.equals(ordersDO.getStatus())) {
// 创建后需要发送短信
smsTaskService.sendSMS(
ordersDO.getStatus(),
@ -101,7 +103,7 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersMapper, OrdersDO> imple
return orderId;
}
private OrdersDO handleOrderCreate(final OrdersDO ordersDO){
private OrdersDO handleOrderCreate(final OrdersDO ordersDO) {
return createOrder(ordersDO);
}
@ -156,7 +158,7 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersMapper, OrdersDO> imple
throw exception(ORDERS_NOT_EXISTS);
}
OrdersDO updateObj = BeanUtils.toBean(updateReqVO, OrdersDO.class);
if("120".equals(updateReqVO.getStatus())){
if ("120".equals(updateReqVO.getStatus())) {
// 提交初审时判断限制条件
OnSaleProductPreOrderRespVO onSaleProductPreOrder = onSaleProductService.getOnSaleProductPreOrder(oldOrderDo.getOnSaleProductId());
ProductLimitRespVO productLimit = productLimitService.getProductLimit(onSaleProductPreOrder.getParentProduct().getHaokaProductLimitId());
@ -169,7 +171,7 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersMapper, OrdersDO> imple
int age = IdCardAgeCalculator.calculateAge(oldOrderDo.getIdCardNum());
Integer ageMax = productLimit.getAgeMax();
Integer ageMin = productLimit.getAgeMin();
if(ObjectUtil.isNotEmpty(ageMax) && ObjectUtil.isNotEmpty(ageMin) && age<=ageMax && age>= ageMin){
if (ObjectUtil.isNotEmpty(ageMax) && ObjectUtil.isNotEmpty(ageMin) && age <= ageMax && age >= ageMin) {
// 年龄校验不通过 开卡失败
OrderOperateLogSaveReqVO logSaveReqVO = new OrderOperateLogSaveReqVO();
logSaveReqVO.setOrderId(updateObj.getId());
@ -180,10 +182,10 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersMapper, OrdersDO> imple
updateObj.setStatus(-451L);
}
List<ProductLimitCardRespVO> productLimitCardRespVO = productLimit.getProductLimitCardRespVO();
if(ObjectUtil.isNotEmpty(productLimitCardRespVO)){
if (ObjectUtil.isNotEmpty(productLimitCardRespVO)) {
for (ProductLimitCardRespVO limitCardRespVO : productLimitCardRespVO) {
String cardNum = String.valueOf(limitCardRespVO.getCardNum());
if(idCardNum.startsWith(cardNum)){
if (idCardNum.startsWith(cardNum)) {
// 身份证号码校验不通过 开卡失败
OrderOperateLogSaveReqVO logSaveReqVO = new OrderOperateLogSaveReqVO();
logSaveReqVO.setOrderId(updateObj.getId());
@ -199,9 +201,8 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersMapper, OrdersDO> imple
List<ProductLimitAreaRespVO> productLimitAreaVos = productLimit.getProductLimitAreaVos();
// 地区限制检查
if (CollectionUtil.isNotEmpty(productLimitAreaVos)){
if (CollectionUtil.isNotEmpty(productLimitAreaVos)) {
// 允许的地区编码
List<String> allowedAreaCode = productLimitAreaVos
@ -210,7 +211,7 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersMapper, OrdersDO> imple
.map(ProductLimitAreaRespVO::getAddressCode)
.toList();
// 不在允许的地区编码
if (CollectionUtil.isNotEmpty(allowedAreaCode) && !allowedAreaCode.contains(addressProvinceCode)){
if (CollectionUtil.isNotEmpty(allowedAreaCode) && !allowedAreaCode.contains(addressProvinceCode)) {
updateObj.setStatus(125L);
OrderOperateLogSaveReqVO logSaveReqVO = new OrderOperateLogSaveReqVO();
logSaveReqVO.setOrderId(updateObj.getId());
@ -222,11 +223,11 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersMapper, OrdersDO> imple
List<String> notAllowedAreaCode = productLimitAreaVos
.stream()
.filter(o->!o.getAllowed())
.filter(o -> !o.getAllowed())
.map(ProductLimitAreaRespVO::getAddressCode)
.toList();
// 在不发货的地区编码中
if (CollectionUtil.isNotEmpty(notAllowedAreaCode) && notAllowedAreaCode.contains(addressProvinceCode)){
if (CollectionUtil.isNotEmpty(notAllowedAreaCode) && notAllowedAreaCode.contains(addressProvinceCode)) {
updateObj.setStatus(125L);
OrderOperateLogSaveReqVO logSaveReqVO = new OrderOperateLogSaveReqVO();
logSaveReqVO.setOrderId(updateObj.getId());
@ -248,7 +249,7 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersMapper, OrdersDO> imple
ordersMapper.updateById(updateObj);
// 状态变化发送短信提醒
if (updateReqVO.getStatus()!=null && updateReqVO.getStatus().equals(oldOrderDo.getStatus())){
if (updateReqVO.getStatus() != null && updateReqVO.getStatus().equals(oldOrderDo.getStatus())) {
smsTaskService.sendSMS(
updateObj.getStatus(),
@ -279,9 +280,9 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersMapper, OrdersDO> imple
ordersMapper.updateById(updateObj);
Long status = updateObj.getStatus();
// 进入审核流程
if (ObjectUtil.equals(status, 450)) {
if (status != null && status == 450L) {
// 450 审核通过
if("2".equals(autoType)){
if ("2".equals(String.valueOf(autoType))) {
// 自动生产
OrderOperateLogSaveReqVO logSaveReqVO = new OrderOperateLogSaveReqVO();
logSaveReqVO.setOrderId(updateObj.getId());
@ -290,7 +291,7 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersMapper, OrdersDO> imple
logSaveReqVO.setMsgSource("1");
orderOperateLogService.createOrderOperateLog(logSaveReqVO);
createOrder(updateObj);
}else {
} else {
// 手动生产
updateObj.setStatus(450L);
ordersMapper.updateById(updateObj);
@ -301,6 +302,7 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersMapper, OrdersDO> imple
/**
* 提交订单
*
* @param updateReqVO
*/
@Override
@ -337,7 +339,7 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersMapper, OrdersDO> imple
// 记录操作记录
OrderOperateLogSaveReqVO logSaveReqVO = new OrderOperateLogSaveReqVO();
logSaveReqVO.setOrderId(ordersDO.getId());
if(success){
if (success) {
// 订单调用接口返回结果
logSaveReqVO.setMsgSource("1");
@ -347,7 +349,7 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersMapper, OrdersDO> imple
// 上游订单状态
ordersDO.setUpstreamOrderStatus(Integer.valueOf(orderStatusCode));
// api记录成功操作记录
if("0".equals(orderStatusCode)){
if ("0".equals(orderStatusCode)) {
// 提交异常
logSaveReqVO.setMsgType("1");
ordersDO.setStatus(-460L);
@ -363,7 +365,7 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersMapper, OrdersDO> imple
ordersDO.setStatus(470L);
logSaveReqVO.setMsg("提单成功");
}
}else {
} else {
// 系统失败操作记录
logSaveReqVO.setMsg(msg);
logSaveReqVO.setMsgSource("0");