Explorar o código

临时新增 解锁未支付职位

DESKTOP-VAEGFGM\zqc hai 2 meses
pai
achega
ac5c97b6a1

+ 11 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/job/JobAdvertisedController.java

@@ -18,6 +18,7 @@ import org.springframework.web.bind.annotation.*;
 import javax.annotation.Resource;
 import javax.validation.Valid;
 
+import java.time.LocalDateTime;
 import java.util.List;
 
 import static com.citu.framework.common.pojo.CommonResult.success;
@@ -136,4 +137,14 @@ public class JobAdvertisedController {
         return success(true);
     }
 
+
+    @PostMapping("/wait/job/manual/submit")
+    @PreAuthorize("@ss.hasPermission('menduner:system:job-advertised:manual:submit')")
+    public CommonResult<Boolean> waitJobManualSubmit(@RequestParam("jobId") Long jobId) {
+        jobAdvertisedService.enableAndUpdateExpireTime(jobId, LocalDateTime.now().plusDays(120));
+        return success(true);
+    }
+
+
+
 }

+ 15 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/order/TradeOrderController.java

@@ -54,6 +54,19 @@ public class TradeOrderController {
         return success(true);
     }
 
+
+//    @PostMapping("/manual/update-paid")
+//    @Operation(summary = "后台人员手工更新订单为已支付") // 由 pay-module 支付服务,进行回调,可见 PayNotifyJob
+//    @PermitAll
+//    public CommonResult<Boolean> manualUpdateOrderPaid(@RequestBody PayOrderNotifyReqDTO notifyReqDTO) {
+//        tradeOrderService.manualUpdateOrderPaid(Long.valueOf(notifyReqDTO.getMerchantOrderId()),
+//                notifyReqDTO.getPayOrderId());
+//        return success(true);
+//    }
+
+
+
+
     @PutMapping("/refund")
     @Operation(summary = "发起订单的退款")
     @Parameter(name = "id", description = "编号", required = true, example = "1024")
@@ -72,4 +85,6 @@ public class TradeOrderController {
         return success(true);
     }
 
+
+
 }

+ 4 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/order/TradeOrderService.java

@@ -54,6 +54,10 @@ public interface TradeOrderService {
      */
     void updateOrderPaid(Long id, Long payOrderId);
 
+
+    void manualUpdateOrderPaid(Long aLong, Long payOrderId);
+
+
     /**
      * 发起订单的退款
      *

+ 26 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/order/TradeOrderServiceImpl.java

@@ -2,6 +2,7 @@ package com.citu.module.menduner.system.service.order;
 
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.extra.spring.SpringUtil;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.module.menduner.common.util.LoginUserContext;
 import com.citu.module.menduner.system.controller.app.jobhunt.order.vo.AppTradeOrderPageReqVO;
@@ -152,6 +153,31 @@ public class TradeOrderServiceImpl implements TradeOrderService {
         orderProducer.send(order);
 
     }
+    @Transactional
+    @Override
+    public void manualUpdateOrderPaid(Long id, Long payOrderId) {
+        // 校验并获得支付订单(可支付)
+        PayOrderRespDTO payOrder = validateOrderCanPaid(id, payOrderId);
+
+        // 更新 PayOrderDO 状态为已支付
+        int updateCount = tradeOrderMapper.updateByIdAndPayed(id, false,
+                new TradeOrderDO().setPayStatus(true).setPayTime(LocalDateTime.now())
+                        // 支付成功就完成
+                        .setStatus(TradeOrderStatusEnum.COMPLETED.getStatus())
+                        // null的目的是解决订单超时后,pay服务才同步状态回到订单
+                        .setCancelType(null)
+                        .setCancelTime(null)
+                        .setPayChannelCode(payOrder.getChannelCode()));
+        if (updateCount == 0) {
+            throw exception(ORDER_UPDATE_PAID_STATUS_NOT_UNPAID);
+        }
+        //设置金额为0
+        tradeOrderMapper.update(null,new LambdaUpdateWrapper<TradeOrderDO>().eq(TradeOrderDO::getId,id).set(TradeOrderDO::getPrice,0));
+        payOrderApi.updatePayOrderPrice(payOrderId,0);
+        //发送mq做业务逻辑处理
+        TradeOrderDO order = tradeOrderMapper.selectById(id);
+        orderProducer.send(order);
+    }
 
     /**
      * 校验交易订单满足被支付的条件