定时任务

master
wyq 7 months ago
parent 7b37f10b56
commit bd04519d70
  1. 5
      crmeb-admin/src/main/java/com/zbkj/admin/controller/extend/TestController.java
  2. 2
      crmeb-admin/src/main/resources/logback-spring.xml
  3. 1
      crmeb-service/src/main/java/com/zbkj/service/service/impl/CallbackServiceImpl.java
  4. 5
      crmeb-service/src/main/java/com/zbkj/service/service/impl/OrderPayServiceImpl.java
  5. 6
      crmeb-service/src/main/java/com/zbkj/service/service/impl/OrderTaskServiceImpl.java
  6. 46
      crmeb-service/src/main/java/com/zbkj/service/service/impl/StoreOrderServiceImpl.java
  7. 45
      crmeb-service/src/main/java/com/zbkj/service/service/impl/StoreOrderTaskServiceImpl.java

@ -40,6 +40,9 @@ public class TestController {
private StoreOrderRefundService storeOrderRefundService;
@Autowired
private WechatNewService wechatNewService;
@Autowired
private OrderTaskService orderTaskService;
@PostMapping("/aa")
String createDelivery(@RequestBody MallDelivery mallDelivery){
StoreOrder storeOrder = storeOrderDao.selectOne(new LambdaQueryWrapper<StoreOrder>().eq(StoreOrder::getOrderId, mallDelivery.getPlatformCode()));
@ -53,8 +56,8 @@ public class TestController {
String bb(@RequestBody MallDelivery mallDelivery){
StoreOrder storeOrder = storeOrderDao.selectOne(new LambdaQueryWrapper<StoreOrder>().eq(StoreOrder::getOrderId, mallDelivery.getPlatformCode()));
orderTaskService.refundApply();
wechatNewService.payRefundQuery(storeOrder);
return "";
}

@ -254,7 +254,7 @@
</rollingPolicy>
<!-- 设置此 appender 的最低日志级别 -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
<level>DEBUG</level>
</filter>
</appender>

@ -530,6 +530,7 @@ public class CallbackServiceImpl implements CallbackService {
logger.warn("微信退款订单已确认成功==>" + refundRecord.getColumns() + ", rawData==>" + xmlInfo + ", data==>" + notifyRecord);
return refundRecord.getStr("returnXml");
}
storeOrder.setAfterSalesStatus("已退款");
storeOrder.setRefundStatus(2);
boolean update = storeOrderService.updateById(storeOrder);
if (update) {

@ -14,6 +14,7 @@ import com.alipay.api.domain.AlipayTradeWapPayModel;
import com.alipay.api.request.AlipayTradeAppPayRequest;
import com.alipay.api.request.AlipayTradeWapPayRequest;
import com.alipay.api.response.AlipayTradeAppPayResponse;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zbkj.common.constants.*;
import com.zbkj.common.exception.CrmebException;
import com.zbkj.common.model.combination.StoreCombination;
@ -39,6 +40,7 @@ import com.zbkj.common.utils.CrmebDateUtil;
import com.zbkj.common.utils.RedisUtil;
import com.zbkj.common.utils.WxPayUtil;
import com.zbkj.common.vo.*;
import com.zbkj.service.dao.StoreOrderInfoDao;
import com.zbkj.service.delete.OrderUtils;
import com.zbkj.service.service.*;
import lombok.Data;
@ -111,7 +113,8 @@ public class OrderPayServiceImpl implements OrderPayService {
@Autowired
private OrderUtils orderUtils;
@Autowired
private StoreOrderInfoDao storeOrderInfoDao;
//订单类
private StoreOrder order;

@ -29,6 +29,7 @@ import com.zbkj.service.dao.UserAddressDao;
import com.zbkj.service.pojo.TradeOrderItemCreateReqDTO;
import com.zbkj.service.service.*;
import com.zbkj.service.util.RedisLockUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -55,6 +56,7 @@ import java.util.stream.Collectors;
* +----------------------------------------------------------------------
*/
@Service
@Slf4j
public class OrderTaskServiceImpl implements OrderTaskService {
//日志
private static final Logger logger = LoggerFactory.getLogger(OrderTaskServiceImpl.class);
@ -165,7 +167,7 @@ public class OrderTaskServiceImpl implements OrderTaskService {
redisLock.lock(Constants.ORDER_LOCK + storeOrder.getOrderId(),5);
if (!lock) {
logger.error("订单未获取到锁orderNo = " + orderId);
continue;
throw new CrmebException("单号被锁,orderNo = " + orderId);
}
// boolean result = storeOrderTaskService.refundApply(storeOrder);
boolean result = storeOrderTaskService.refundOrder(storeOrder);
@ -174,8 +176,8 @@ public class OrderTaskServiceImpl implements OrderTaskService {
redisUtil.lPush(redisKey, orderId);
}
} catch (Exception e) {
log.error("订单退款错误:" , e);
retryService.systemErrNc("订单退款错误:" + e);
logger.error("订单退款错误:" + e.getMessage());
redisUtil.lPush(redisKey, orderId);
}
}

@ -567,6 +567,9 @@ public class StoreOrderServiceImpl extends ServiceImpl<StoreOrderDao, StoreOrder
throw new CrmebException("系统繁忙,请稍后再试");
}
StoreOrder storeOrder = getInfoException(request.getOrderNo());
if("退货退款".equals(storeOrder.getAfterSalesType()) && StrUtil.isBlank(storeOrder.getReshippingAddress())){
throw new CrmebException("请先同意退货");
}
if (!storeOrder.getPaid()) {
throw new CrmebException("未支付无法退款");
}
@ -585,22 +588,22 @@ public class StoreOrderServiceImpl extends ServiceImpl<StoreOrderDao, StoreOrder
User user = userService.getById(storeOrder.getUid());
//退款
if (storeOrder.getPayType().equals(Constants.PAY_TYPE_WE_CHAT) && request.getAmount().compareTo(BigDecimal.ZERO) > 0) {
try {
storeOrderRefundService.refund(request, storeOrder);
} catch (Exception e) {
e.printStackTrace();
throw new CrmebException("微信申请退款失败!");
}
}
if (storeOrder.getPayType().equals(Constants.PAY_TYPE_ALI_PAY) && request.getAmount().compareTo(BigDecimal.ZERO) > 0) {
try {
aliPayService.refund(request, storeOrder);
} catch (Exception e) {
e.printStackTrace();
throw new CrmebException("支付宝申请退款失败!");
}
}
// if (storeOrder.getPayType().equals(Constants.PAY_TYPE_WE_CHAT) && request.getAmount().compareTo(BigDecimal.ZERO) > 0) {
// try {
// storeOrderRefundService.refund(request, storeOrder);
// } catch (Exception e) {
// e.printStackTrace();
// throw new CrmebException("微信申请退款失败!");
// }
// }
// if (storeOrder.getPayType().equals(Constants.PAY_TYPE_ALI_PAY) && request.getAmount().compareTo(BigDecimal.ZERO) > 0) {
// try {
// aliPayService.refund(request, storeOrder);
// } catch (Exception e) {
// e.printStackTrace();
// throw new CrmebException("支付宝申请退款失败!");
// }
// }
//修改订单退款状态
storeOrder.setRefundStatus(3);
@ -619,7 +622,7 @@ public class StoreOrderServiceImpl extends ServiceImpl<StoreOrderDao, StoreOrder
// 退款task
redisUtil.lPush(Constants.ORDER_TASK_REDIS_KEY_AFTER_REFUND_BY_USER, storeOrder.getId());
}
if (storeOrder.getPayType().equals(Constants.PAY_TYPE_WE_CHAT) && request.getAmount().compareTo(BigDecimal.ZERO) == 0) {
if (storeOrder.getPayType().equals(Constants.PAY_TYPE_WE_CHAT) && request.getAmount().compareTo(BigDecimal.ZERO) != 0) {
//新增日志
userBillService.saveRefundBill(request, user);
@ -2368,6 +2371,11 @@ public class StoreOrderServiceImpl extends ServiceImpl<StoreOrderDao, StoreOrder
return;
}
switch (status) {
case Constants.ORDER_STATUS_REFUNDING_REQUEST: //申请退款
queryWrapper.eq("paid", 1);
queryWrapper.in("refund_status", 1);
queryWrapper.eq("is_del", 0);
break;
case Constants.ORDER_STATUS_UNPAID: //未支付
queryWrapper.eq("paid", 0);//支付状态
queryWrapper.eq("status", 0); //订单状态
@ -2407,7 +2415,7 @@ public class StoreOrderServiceImpl extends ServiceImpl<StoreOrderDao, StoreOrder
break;
case Constants.ORDER_STATUS_REFUNDING: //退款中
queryWrapper.eq("paid", 1);
queryWrapper.in("refund_status", 1,3);
queryWrapper.in("refund_status", 3);
queryWrapper.eq("is_del", 0);
break;
case Constants.ORDER_STATUS_REFUNDED: //已退款
@ -2420,7 +2428,7 @@ public class StoreOrderServiceImpl extends ServiceImpl<StoreOrderDao, StoreOrder
break;
default:
queryWrapper.eq("paid", 1);
queryWrapper.ne("refund_status", 2);
// queryWrapper.ne("refund_status", 2);
break;
}
queryWrapper.eq("is_system_del", 0);

@ -6,6 +6,7 @@ import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.zbkj.common.constants.*;
import com.zbkj.common.exception.CrmebException;
import com.zbkj.common.model.product.StoreProduct;
@ -27,9 +28,11 @@ import com.zbkj.common.model.order.StoreOrderInfo;
import com.zbkj.common.model.product.StoreProductAttrValue;
import com.zbkj.common.model.system.SystemAdmin;
import com.zbkj.common.vo.ShopOrderPayVo;
import com.zbkj.common.vo.WxRefundQueryResponseVo;
import com.zbkj.common.vo.WxRefundResponseVo;
import com.zbkj.service.delete.OrderUtils;
import com.zbkj.service.service.*;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
@ -56,6 +59,7 @@ import java.util.stream.Collectors;
* +----------------------------------------------------------------------
*/
@Service
@Slf4j
public class StoreOrderTaskServiceImpl implements StoreOrderTaskService {
//日志
private static final Logger logger = LoggerFactory.getLogger(StoreOrderTaskServiceImpl.class);
@ -361,9 +365,7 @@ public class StoreOrderTaskServiceImpl implements StoreOrderTaskService {
List<UserIntegralRecord> addIntegralList = integralRecordList.stream().filter(e -> ObjectUtil.isNull(e.getId())).collect(Collectors.toList());
List<UserIntegralRecord> updateIntegralList = integralRecordList.stream().filter(e -> ObjectUtil.isNotNull(e.getId())).collect(Collectors.toList());
StoreOrder tempOrder = new StoreOrder();
tempOrder.setId(storeOrder.getId());
tempOrder.setRefundStatus(2);
// 佣金处理:只处理冻结期佣金
// 查询佣金记录
List<UserBrokerageRecord> brokerageRecordList = CollUtil.newArrayList();
@ -389,16 +391,15 @@ public class StoreOrderTaskServiceImpl implements StoreOrderTaskService {
return Boolean.FALSE;
}
/* }*/
String mdbRefundNo = createAfterSale(storeOrder, user);
if (StrUtil.isNotBlank(mdbRefundNo)) {
storeOrder.setAfterSalesStatus("已退款");
storeOrder.setRefundStatus(2);
storeOrder.setMdbRefundNo(mdbRefundNo);
}else {
logger.error("买单吧查询创建/退款查询失败,订单号:{} " ,storeOrder.getOrderId());
boolean mdbRefundNo = createAfterSale(storeOrder, user);
if (!mdbRefundNo) {
logger.error("查询创建/退款查询失败,订单号:{} " ,storeOrder.getOrderId());
return Boolean.FALSE;
}
Boolean execute = transactionTemplate.execute(e -> {
storeOrder.setAfterSalesStatus("已退款");
storeOrder.setRefundStatus(2);
storeOrderService.updateById(storeOrder);
//写订单日志
storeOrderStatusService.saveRefund(storeOrder.getId(), storeOrder.getRefundPrice(), "成功");
@ -428,7 +429,7 @@ public class StoreOrderTaskServiceImpl implements StoreOrderTaskService {
throw new CrmebException("回滚库存失败");
}
storeOrderService.updateById(tempOrder);
// 拼团状态处理
if (storeOrder.getCombinationId() > 0) {
@ -458,12 +459,22 @@ public class StoreOrderTaskServiceImpl implements StoreOrderTaskService {
return execute;
}
private String createAfterSale(StoreOrder storeOrder, User user) {
// WxRefundResponseVo wxRefundResponseVo = wechatNewService.payRefundQuery(storeOrder);
// StoreOrderRefundRequest request = new StoreOrderRefundRequest();
// request.setAmount(storeOrder.getRefundPrice());
// storeOrderRefundService.refund(request, storeOrder);
return null;
private boolean createAfterSale(StoreOrder storeOrder, User user) {
WxRefundQueryResponseVo vo=null;
try {
vo =wechatNewService.payRefundQuery(storeOrder);
}catch(Exception e){
log.error("查询创建/退款查询失败,订单号:{} " ,storeOrder.getOrderId());
}
log.info("查询创建/退款查询结果:{}" , JSON.toJSONString(vo));
if (vo==null || !"SUCCESS".equals(vo.getRefundStatus0())){
StoreOrderRefundRequest request = new StoreOrderRefundRequest();
request.setAmount(storeOrder.getRefundPrice());
storeOrderRefundService.refund(request, storeOrder);
//创建申请退款后继续返回false 等下次定时任务扫描 重新查询退款成功状态返回true
return false;
}
return true;
}
/**

Loading…
Cancel
Save