Sfoglia il codice sorgente

fengji 修改操作手册, 添加用户名

yanite 3 anni fa
parent
commit
fc3078ba8e

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/CloudTeacherOrderService.java

@@ -112,9 +112,10 @@ public interface CloudTeacherOrderService extends BaseService<Long, CloudTeacher
 
     Msg payNotify(Msg msg) throws Exception;
 
-    Boolean payCheck(String orderNo);
+    Boolean payCheck(String orderNo) throws Exception;
 
     PageInfo<CloudTeacherStudent> queryRecord(CloudTeacherOrderQueryInfo cloudTeacherOrderQueryInfo);
 
     boolean addStudents(CloudTeacherAddQueryInfo cloudTeacherAddQueryInfo);
+
 }

+ 8 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/AppRedemptionCodeServiceImpl.java

@@ -14,6 +14,7 @@ import com.ym.mec.util.ini.IniFileUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.io.ClassPathResource;
+import org.springframework.security.core.parameters.P;
 import org.springframework.stereotype.Service;
 
 import org.slf4j.Logger;
@@ -85,8 +86,14 @@ public class AppRedemptionCodeServiceImpl extends ServiceImpl<RedemptionCodeDao,
     @Override
     public AppRedemptionCode allocation(Integer userId) {
         AppRedemptionCode redemptionCode = redemptionCodeDao.findFirstNull();
+        if (redemptionCode == null) {
+            return null;
+        }
         redemptionCode.setUserId(userId);
-        redemptionCodeDao.update(redemptionCode, new WrapperUtil<AppRedemptionCode>().queryWrapper());
+        int retCount = redemptionCodeDao.update(redemptionCode, new WrapperUtil<AppRedemptionCode>().queryWrapper());
+        if (retCount == 0) {
+            return null;
+        }
         return redemptionCode;
     }
 }

+ 13 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CloudTeacherOrderServiceImpl.java

@@ -19,6 +19,7 @@ import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.IdGeneratorService;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import com.ym.mec.thirdparty.adapay.Payment;
 import com.ym.mec.thirdparty.yqpay.Msg;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
@@ -38,7 +39,7 @@ import static com.ym.mec.biz.dal.enums.PeriodEnum.*;
 
 @Service
 public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTeacherOrder> implements CloudTeacherOrderService {
-    private static final Logger log = LoggerFactory.getLogger(TenantInfoServiceImpl.class);
+    private static final Logger log = LoggerFactory.getLogger(CloudTeacherOrderServiceImpl.class);
     @Autowired
     private CloudTeacherOrderDao cloudTeacherOrderDao;
     @Autowired
@@ -115,6 +116,7 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea
         if (count == 0) {
             return pageInfo;
         }
+        assert dataList != null;
         for (CloudTeacherStudent cst: dataList) {
             TenantConfig tenantConfig = tenantConfigService.getOne(new QueryWrapper<TenantConfig>().eq("tenant_id_", cst.getTenantId()));
             if (tenantConfig == null) {
@@ -160,7 +162,7 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea
         }
         List<Integer> ids = cloudTeacherStudents.stream().map(CloudTeacherStudent::getCloudTeacherOrderId).collect(
                 Collectors.toList());
-        if (cloudTeacherOrderDao.checkOrdered(StringUtil.join(ids, ",")) >= 0) {
+        if (cloudTeacherOrderDao.checkOrdered(StringUtil.join(ids, ",")) != 0) {
             throw new Exception("学生已经支付");
         }
         Integer tenantId = null;
@@ -183,12 +185,11 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea
      * 团练宝支付
      * @param payAmount 金额
      * @param tenantId 分部
-     * @return
+     * @return 支付结果
      */
     private Map<String, Object> payExec(BigDecimal payAmount, Integer tenantId, List<CloudTeacherStudent> cloudTeacherStudents) throws Exception {
         //生成订单编号
         String orderNo = idGenerator.generatorId("payment") + "";
-        String baseApiUrl = sysConfigDao.findConfigValue("base_api_url");
         TenantOrderRecordEnum tenantEnum = TenantOrderRecordEnum.CLOUD_TEACHER;
 
         Map<String, Object> payMap = new HashMap<>();
@@ -199,8 +200,8 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea
                     payAmount,
                     BigDecimal.ZERO,
                     orderNo,
-                    baseApiUrl + "/api-web/cloudTeacherOrder/payNotify",
-                    baseApiUrl + "/api-student/studentOrder/paymentResult?orderNo=" + orderNo,
+                    null,
+                    null,
                     tenantEnum.getMsg(),
                     tenantEnum.getMsg(),
                     1,//临时写死
@@ -285,8 +286,13 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea
         return record;
     }
 
-    public Boolean payCheck(String orderNo) {
+    public Boolean payCheck(String orderNo) throws Exception {
         TenantOrderRecord record = tenantOrderRecordService.getOne(new QueryWrapper<TenantOrderRecord>().eq("order_no_", orderNo));
+        Map<String, Object> payment = Payment.queryPayment(record.getTransNo());
+        if ("succeeded".equals(payment.get("status")) ) {
+            this.paySuccess(record);
+            return true;
+        }
         return record.getOrderState() == 1;
     }
 

+ 6 - 6
mec-biz/src/main/resources/config/mybatis/SysManualMapper.xml

@@ -29,12 +29,12 @@
         select count(1) from sys_manual sm
         left join sys_user u on sm.operator_id_ = u.id_
         <where>
-            1 = 1 AND
+            1 = 1
             <if test="menuId != null and menuId != '' ">
-                menu_id_ = #{menuId}
+                AND menu_id_ = #{menuId}
             </if>
             <if test="search != null and search != '' ">
-                (name_ like concat('%', #{menuId} '%') )
+                AND (name_ like concat('%', #{menuId} '%') )
             </if>
         </where>
         <include refid="global.limit"/>
@@ -45,12 +45,12 @@
              , u.username_ as operatorName from sys_manual sm
         left join sys_user u on sm.operator_id_ = u.id_
         <where>
-            1 = 1 AND
+            1 = 1
             <if test="menuId != null and menuId != '' ">
-                sm.menu_id_ = #{menuId}
+                AND sm.menu_id_ = #{menuId}
             </if>
             <if test="search != null and search != '' ">
-                (name_ like concat('%', #{menuId} '%') )
+                AND (name_ like concat('%', #{menuId} '%') )
             </if>
         </where>
         <include refid="global.limit"/>

+ 3 - 0
mec-web/src/main/java/com/ym/mec/web/controller/AppRedemptionCodeController.java

@@ -35,6 +35,9 @@ public class AppRedemptionCodeController extends BaseController {
     @PostMapping(value = "allocation")
     @PreAuthorize("@pcs.hasPermissions('appRedemptionCode/allocation')")
     public HttpResponseResult<AppRedemptionCode> allocation(@RequestParam("userId")Integer userId) throws Exception {
+        if (userId == null) {
+            throw new Exception("用户Id必须填写");
+        }
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null) {
             return failed("用户信息获取失败");

+ 28 - 14
mec-web/src/main/java/com/ym/mec/web/controller/CloudTeacherOrderController.java

@@ -5,14 +5,22 @@ import com.ym.mec.biz.dal.entity.CloudTeacherStudent;
 import com.ym.mec.biz.dal.page.CloudTeacherAddQueryInfo;
 import com.ym.mec.biz.dal.page.CloudTeacherOrderQueryInfo;
 import com.ym.mec.biz.service.CloudTeacherOrderService;
+import com.ym.mec.biz.service.OrderPayOpsService;
+import com.ym.mec.biz.service.impl.TenantInfoServiceImpl;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.thirdparty.yqpay.Msg;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.math.BigDecimal;
 import java.util.List;
+import java.util.Map;
 
 /**
  * Description
@@ -27,7 +35,10 @@ public class CloudTeacherOrderController extends BaseController {
 
     @Autowired
     private CloudTeacherOrderService cloudTeacherOrderService;
+    @Autowired
+    private OrderPayOpsService orderPayOpsService;
 
+    private static final Logger log = LoggerFactory.getLogger(CloudTeacherOrderController.class);
 
     @ApiOperation(value ="手动添加会员")
     @PostMapping("/addStudents")
@@ -65,14 +76,6 @@ public class CloudTeacherOrderController extends BaseController {
         return succeed(cloudTeacherOrderService.queryRecord(cloudTeacherOrderQueryInfo));
     }
 
-    @ApiOperation(value ="测试支付通知")
-    @PostMapping("/testPayNotify")
-    // @PreAuthorize("@pcs.hasPermissions('cloudTeacherOrder/queryActive')")
-    public Object testPayNotify(@RequestBody Msg msg) throws Exception {
-        return succeed(cloudTeacherOrderService.payNotify(msg));
-    }
-
-
     @ApiOperation(value ="激活团练宝用户")
     @PostMapping("/pay")
     // @PreAuthorize("@pcs.hasPermissions('cloudTeacherOrder/pay')")
@@ -80,17 +83,28 @@ public class CloudTeacherOrderController extends BaseController {
         return succeed(cloudTeacherOrderService.pay(cloudTeacherStudents));
     }
 
-    @ApiOperation(value ="支付回调")
-    @PostMapping("/payNotify")
-    // @PreAuthorize("@pcs.hasPermissions('cloudTeacherOrder/payNotify')")
-    public Msg payNotify(@ModelAttribute Msg msg) throws Exception {
-        return cloudTeacherOrderService.payNotify(msg);
+    @ApiOperation(value ="支付执行")
+    @GetMapping("/payExecute")
+    @PostMapping("/executePayment")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "amount", value = "支付金额", required = true, dataType = "BigDecimal"),
+            @ApiImplicitParam(name = "orderNo", value = "订单号", required = true, dataType = "String"),
+            @ApiImplicitParam(name = "payChannel", value = "支付方式(alipay-支付宝app支付)", required = true, dataType = "String"),
+    })
+    // @PreAuthorize("@pcs.hasPermissions('cloudTeacherOrder/payExecute')")
+    public Object executePayment(BigDecimal amount, String orderNo, String payChannel, String notifyUrl, String returnUrl, String orderSubject, String orderBody, String sign, String code, String platform) {
+        try {
+            Map<String, Object> payment = orderPayOpsService.executePayment(amount, orderNo, payChannel, returnUrl, orderSubject, orderBody, sign, code, platform);
+            return succeed(payment);
+        } catch (Exception e) {
+            return failed(e.getMessage());
+        }
     }
 
     @ApiOperation(value ="轮询查询订单状态")
     @GetMapping("/payCheck")
     // @PreAuthorize("@pcs.hasPermissions('cloudTeacherOrder/payCheck')")
-    public Object payCheck(@RequestParam String orderNo ) {
+    public Object payCheck(@RequestParam String orderNo ) throws Exception {
         return succeed(cloudTeacherOrderService.payCheck(orderNo));
     }
 }