xufeng hace 2 años
padre
commit
3546ff9322
Se han modificado 18 ficheros con 235 adiciones y 35 borrados
  1. 20 0
      game-module/game-common/src/main/java/com/zanxiang/common/domain/ResultMap.java
  2. 6 1
      game-module/game-common/src/main/java/com/zanxiang/common/enums/HttpStatusEnum.java
  3. 17 0
      game-module/game-common/src/main/java/com/zanxiang/common/exception/ParamNullException.java
  4. 13 0
      game-module/game-common/src/main/java/com/zanxiang/common/handler/GlobalExceptionHandler.java
  5. 1 11
      game-module/game-manage/src/main/java/com/zanxiang/manage/controller/PayMerchantController.java
  6. 1 1
      game-module/game-manage/src/main/java/com/zanxiang/manage/domain/bo/PayApplicationBO.java
  7. 50 0
      game-module/game-manage/src/main/java/com/zanxiang/manage/domain/bo/PayBoxBO.java
  8. 66 0
      game-module/game-manage/src/main/java/com/zanxiang/manage/domain/dto/PayBoxDTO.java
  9. 1 1
      game-module/game-manage/src/main/java/com/zanxiang/manage/domain/params/PayBoxParam.java
  10. 25 3
      game-module/game-manage/src/main/java/com/zanxiang/manage/service/Impl/PayBoxServiceImpl.java
  11. 8 0
      game-module/game-manage/src/main/java/com/zanxiang/manage/service/PayBoxService.java
  12. 2 0
      game-module/game-manage/src/main/resources/META-INF/spring.factories
  13. 1 1
      game-module/game-mybatis/src/main/java/com/zanxiang/mybatis/mapper/PayBoxMapper.java
  14. 2 1
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/SDKApplication.java
  15. 1 2
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/controller/OrderController.java
  16. 4 0
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/controller/PayController.java
  17. 15 12
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/PlatformOrderServiceImpl.java
  18. 2 2
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/pay/AlipayServiceImpl.java

+ 20 - 0
game-module/game-common/src/main/java/com/zanxiang/common/domain/ResultMap.java

@@ -1,5 +1,7 @@
 package com.zanxiang.common.domain;
 
+import com.zanxiang.common.enums.HttpStatusEnum;
+
 import java.util.HashMap;
 import java.util.Map;
 
@@ -38,6 +40,24 @@ public class ResultMap extends HashMap<String, Object> {
         return r;
     }
 
+    public static ResultMap ok(Object msg, Object data) {
+        ResultMap r = new ResultMap();
+        r.put("msg", msg);
+        r.put("data", data);
+        return r;
+    }
+
+    public static ResultMap ok(Integer deviceType, Object data) {
+        ResultMap r = new ResultMap();
+        r.put("code", HttpStatusEnum.SUCCESS.getCode());
+        r.put("msg", HttpStatusEnum.SUCCESS.getMsg());
+        HashMap<String, Object> dataMap = new HashMap<>(2);
+        dataMap.put("data", data);
+        dataMap.put("deviceType", deviceType);
+        r.put("data", dataMap);
+        return r;
+    }
+
 
     public static ResultMap ok(Map<String, Object> map) {
         ResultMap r = new ResultMap();

+ 6 - 1
game-module/game-common/src/main/java/com/zanxiang/common/enums/HttpStatusEnum.java

@@ -325,7 +325,12 @@ public enum HttpStatusEnum {
     /**
      * 玩家充值未达标
      */
-    ORDER_AMOUNT_IS_NULL(41500, "订单金额为空");
+    ORDER_AMOUNT_IS_NULL(41500, "订单金额为空"),
+
+    /**
+     * 参数为空
+     */
+    PARAM_IS_NULL(41500, "参数为空:");
 
     /**
      * 回传类型

+ 17 - 0
game-module/game-common/src/main/java/com/zanxiang/common/exception/ParamNullException.java

@@ -0,0 +1,17 @@
+package com.zanxiang.common.exception;
+
+/**
+ * @author xufeng
+ * @date 2022/6/22 17:31
+ */
+public class ParamNullException extends RuntimeException {
+    private static final long serialVersionUID = 1L;
+
+    private Integer code;
+
+    private String message;
+
+    public ParamNullException(String message) {
+        this.message = message;
+    }
+}

+ 13 - 0
game-module/game-common/src/main/java/com/zanxiang/common/handler/GlobalExceptionHandler.java

@@ -1,8 +1,10 @@
 package com.zanxiang.common.handler;
 
 import com.zanxiang.common.domain.ResultVo;
+import com.zanxiang.common.enums.HttpStatusEnum;
 import com.zanxiang.common.exception.BaseException;
 import com.zanxiang.common.exception.CustomException;
+import com.zanxiang.common.exception.ParamNullException;
 import com.zanxiang.common.exception.PreAuthorizeException;
 import com.zanxiang.common.utils.StringUtils;
 import com.zanxiang.common.utils.http.AjaxResult;
@@ -40,6 +42,17 @@ public class GlobalExceptionHandler {
         return new ResultVo<>(e.getCode(), e.getMessage());
     }
 
+    /**
+     * 参数异常
+     */
+    @ExceptionHandler(ParamNullException.class)
+    public ResultVo<?> paramNullException(CustomException e) {
+        if (StringUtils.isNull(e.getCode())) {
+            return new ResultVo<>(HttpStatusEnum.PARAM_IS_NULL.getCode(), HttpStatusEnum.PARAM_IS_NULL.getMsg() + e.getMessage());
+        }
+        return new ResultVo<>(e.getCode(), e.getMessage());
+    }
+
     @ExceptionHandler(Exception.class)
     public ResultVo<?> handleException(Exception e) {
         log.error(e.getMessage(), e);

+ 1 - 11
game-module/game-manage/src/main/java/com/zanxiang/manage/controller/PayMerchantController.java

@@ -35,7 +35,7 @@ public class PayMerchantController {
 
     @ApiOperation(value = "商户号-新增/编辑/删除(payWayId/merchantNo/merchantName 必传)")
     @PostMapping(value = "/save")
-    public ResultVo<String> create(@Validated @RequestBody PayMerchantParam param) {
+    public ResultVo<String> save(@Validated @RequestBody PayMerchantParam param) {
         Boolean result = payMerchantService.saveOrUpdate(BeanUtils.copy(param, PayMerchantBO.class));
         if (result) {
             return new ResultVo(HttpStatusEnum.SUCCESS, result);
@@ -53,14 +53,4 @@ public class PayMerchantController {
         return new ResultVo(HttpStatusEnum.FAIL);
     }
 
-    @ApiOperation(value = "盒子-列表")
-    @PostMapping(value = "/box-list")
-    public ResultVo<PayMerchantVO> boxList(@Validated @RequestBody PayMerchantParam param) {
-        List<PayMerchantDTO> result = payMerchantService.list(BeanUtils.copy(param, PayMerchantBO.class));
-        if (!result.isEmpty()) {
-            return new ResultVo(HttpStatusEnum.SUCCESS, result);
-        }
-        return new ResultVo(HttpStatusEnum.FAIL);
-    }
-
 }

+ 1 - 1
game-module/game-manage/src/main/java/com/zanxiang/manage/domain/bo/PayApplicationBO.java

@@ -73,7 +73,7 @@ public class PayApplicationBO implements Serializable {
      * 状态 1 不可用 2 可用
      */
     private Integer status;
-    
+
     /**
      * 是否已删除 1 已删除 2 正常
      */

+ 50 - 0
game-module/game-manage/src/main/java/com/zanxiang/manage/domain/bo/PayBoxBO.java

@@ -0,0 +1,50 @@
+package com.zanxiang.manage.domain.bo;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+/**
+ * @author xufeng
+ * @date 2022/6/22 16:53
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class PayBoxBO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    private Integer id;
+
+    /**
+     * 名称
+     */
+    private String name;
+
+    /**
+     * 支付名称
+     */
+    private String payName;
+
+    /**
+     * 应用id
+     */
+    private Integer payApplicationId;
+
+    /**
+     * 商户号id(多个逗号分割,id,)
+     */
+    private String payMerchantId;
+
+    /**
+     * 盒子类型 1、金币 2、红包
+     */
+    private Integer type;
+
+    /**
+     * 描述
+     */
+    private String desc;
+}

+ 66 - 0
game-module/game-manage/src/main/java/com/zanxiang/manage/domain/dto/PayBoxDTO.java

@@ -0,0 +1,66 @@
+package com.zanxiang.manage.domain.dto;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 支付盒子
+ *
+ * @author xufeng
+ * @date 2022-06-22 15:26
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class PayBoxDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private Integer id;
+
+    /**
+     * 名称
+     */
+    private String name;
+
+    /**
+     * 支付名称
+     */
+    private String payName;
+
+    /**
+     * 应用id
+     */
+    private Integer payApplicationId;
+
+    /**
+     * 商户号id(多个逗号分割,id,)
+     */
+    private String payMerchantId;
+
+    /**
+     * 盒子类型 1、金币 2、红包
+     */
+    private Integer type;
+
+    /**
+     * 描述
+     */
+    private String desc;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+}

+ 1 - 1
game-module/game-manage/src/main/java/com/zanxiang/manage/domain/params/PayMerchantBoxParam.java → game-module/game-manage/src/main/java/com/zanxiang/manage/domain/params/PayBoxParam.java

@@ -14,7 +14,7 @@ import java.util.Date;
  */
 @Data
 @NoArgsConstructor
-public class PayMerchantBoxParam implements Serializable {
+public class PayBoxParam implements Serializable {
 
     private Integer id;
 

+ 25 - 3
game-module/game-manage/src/main/java/com/zanxiang/manage/service/Impl/PayBoxServiceImpl.java

@@ -1,11 +1,17 @@
 package com.zanxiang.manage.service.Impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zanxiang.common.utils.bean.BeanUtils;
+import com.zanxiang.manage.domain.bo.PayBoxBO;
+import com.zanxiang.manage.domain.dto.PayBoxDTO;
 import com.zanxiang.manage.service.PayBoxService;
 import com.zanxiang.mybatis.entity.PayBox;
-import com.zanxiang.mybatis.mapper.HPayBoxMapper;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zanxiang.mybatis.mapper.PayBoxMapper;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * 支付盒子 服务实现类
  *
@@ -13,6 +19,22 @@ import org.springframework.stereotype.Service;
  * @date 2022-06-22 15:26
  */
 @Service
-public class PayBoxServiceImpl extends ServiceImpl<HPayBoxMapper, PayBox> implements PayBoxService {
+public class PayBoxServiceImpl extends ServiceImpl<PayBoxMapper, PayBox> implements PayBoxService {
+
+    @Override
+    public Boolean saveOrUpdate(PayBoxBO bo) {
+        PayBox app = BeanUtils.copy(bo, PayBox.class);
+        return saveOrUpdate(app);
+    }
+
+    @Override
+    public List<PayBoxDTO> list(PayBoxBO bo) {
+        PayBox app = BeanUtils.copy(bo, PayBox.class);
+        List<PayBox> result = list(new LambdaQueryWrapper<PayBox>().setEntity(app));
+        if (result.isEmpty()) {
+            return null;
+        }
+        return BeanUtils.copyList(result, PayBoxDTO.class);
 
+    }
 }

+ 8 - 0
game-module/game-manage/src/main/java/com/zanxiang/manage/service/PayBoxService.java

@@ -1,8 +1,14 @@
 package com.zanxiang.manage.service;
 
+import com.zanxiang.manage.domain.bo.PayBoxBO;
+import com.zanxiang.manage.domain.bo.PayMerchantBO;
+import com.zanxiang.manage.domain.dto.PayBoxDTO;
+import com.zanxiang.manage.domain.dto.PayMerchantDTO;
 import com.zanxiang.mybatis.entity.PayBox;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.List;
+
 /**
  * 支付盒子 服务类接口
  *
@@ -10,5 +16,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
  * @date 2022-06-22 15:26
  */
 public interface PayBoxService extends IService<PayBox> {
+    Boolean saveOrUpdate(PayBoxBO bo);
 
+    List<PayBoxDTO> list(PayBoxBO bo);
 }

+ 2 - 0
game-module/game-manage/src/main/resources/META-INF/spring.factories

@@ -0,0 +1,2 @@
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+  com.zanxiang.common.handler.GlobalExceptionHandler

+ 1 - 1
game-module/game-mybatis/src/main/java/com/zanxiang/mybatis/mapper/HPayBoxMapper.java → game-module/game-mybatis/src/main/java/com/zanxiang/mybatis/mapper/PayBoxMapper.java

@@ -11,5 +11,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @date 2022-06-22 15:26
  */
 @Mapper
-public interface HPayBoxMapper extends BaseMapper<PayBox> {
+public interface PayBoxMapper extends BaseMapper<PayBox> {
 }

+ 2 - 1
game-module/game-sdk/src/main/java/com/zanxiang/sdk/SDKApplication.java

@@ -6,8 +6,9 @@ import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.web.bind.annotation.CrossOrigin;
 
-
+@CrossOrigin
 @Slf4j
 @EnableDiscoveryClient
 @SpringBootApplication

+ 1 - 2
game-module/game-sdk/src/main/java/com/zanxiang/sdk/controller/OrderController.java

@@ -15,14 +15,13 @@ import org.springframework.web.bind.annotation.*;
  * @date 2022/6/17 17:07
  */
 @Api(tags = "支付公共入口")
-@CrossOrigin
 @RestController
 @RequestMapping(value = "/order")
 public class OrderController {
     @Autowired
     private PlatformOrderService orderService;
 
-    @ApiOperation(value = "支付参数生成")
+    @ApiOperation(value = "订单生成")
     @GetMapping(value = "/create")
     public ResultMap create(@ValidLogin UserData user, @RequestBody PlatformOrderParam order) {
 //        orderService.create();

+ 4 - 0
game-module/game-sdk/src/main/java/com/zanxiang/sdk/controller/PayController.java

@@ -47,6 +47,7 @@ public class PayController {
     @PostMapping(value = "/create")
     public ResultMap create(@Validated @RequestBody ProductPayParam product, @ValidLogin UserData userData) {
         String userId = "1";
+        String cpId = "1";
         if (StringUtils.isEmpty(product.getOrderId())) {
             //虚拟充值情况,直接传金额实时生成订单
             if (product.getAmount() == null || Objects.equals(product.getAmount(), BigDecimal.ZERO)) {
@@ -58,10 +59,13 @@ public class PayController {
             orderBO.setProductId("ptb_charge");
             orderBO.setMgUserId(product.getMgUserId());
             orderBO.setUserId(userId);
+            orderBO.setGameId(product.getGameId());
+            orderBO.setCpId(cpId);
             String orderId = platformOrderService.create(orderBO);
             product.setOrderId(orderId);
         }
         ProductPayParamBO bo = new ProductPayParamBO();
+        bo.setGameId(product.getGameId());
         bo.setUserId(userId);
         bo.setPayDevice(userData.getDeviceType());
         bo.setSpbillCreateIp(IPUtil.localHostIP());

+ 15 - 12
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/PlatformOrderServiceImpl.java

@@ -2,7 +2,10 @@ package com.zanxiang.sdk.service.Impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zanxiang.common.enums.HttpStatusEnum;
 import com.zanxiang.common.enums.OrderStateEnum;
+import com.zanxiang.common.exception.CustomException;
+import com.zanxiang.common.exception.ParamNullException;
 import com.zanxiang.common.utils.StringUtils;
 import com.zanxiang.common.utils.bean.BeanUtils;
 import com.zanxiang.mybatis.entity.Order;
@@ -123,45 +126,45 @@ public class PlatformOrderServiceImpl extends ServiceImpl<OrderMapper, Order> im
         switch (active) {
             case "create":
                 if (platformOrderBO.getCpId() == null) {
-                    throw new NullPointerException("CpId");
+                    throw new ParamNullException("CpId");
                 }
                 if (platformOrderBO.getUserId() == null) {
-                    throw new NullPointerException("UserId");
+                    throw new ParamNullException("UserId");
                 }
                 if (platformOrderBO.getMgUserId() == null) {
-                    throw new NullPointerException("MgUserId");
+                    throw new ParamNullException("MgUserId");
                 }
                 if (StringUtils.isEmpty(platformOrderBO.getProductId())) {
-                    throw new NullPointerException("ProductId");
+                    throw new ParamNullException("ProductId");
                 }
                 if (StringUtils.isEmpty(platformOrderBO.getProductName())) {
-                    throw new NullPointerException("ProductName");
+                    throw new ParamNullException("ProductName");
                 }
 //                if (platformOrderBO.getProductCnt() == null) {
 //                    throw new NullPointerException("ProductCnt");
 //                }
                 if (platformOrderBO.getAmount() == null) {
-                    throw new NullPointerException("Amount");
+                    throw new ParamNullException("Amount");
                 }
                 break;
             case "pay":
                 if (platformOrderBO.getId() == null) {
-                    throw new NullPointerException("id");
+                    throw new ParamNullException("id");
                 }
                 if (platformOrderBO.getUserId() == null) {
-                    throw new NullPointerException("UserId");
+                    throw new ParamNullException("UserId");
                 }
                 if (platformOrderBO.getStatus() == 0) {
-                    throw new NullPointerException("Status");
+                    throw new ParamNullException("Status");
                 }
                 if (StringUtils.isEmpty(platformOrderBO.getGamePaywayId())) {
-                    throw new NullPointerException("GamePaywayId");
+                    throw new ParamNullException("GamePaywayId");
                 }
                 if (platformOrderBO.getRealAmount() == null) {
-                    throw new NullPointerException("RealAmount");
+                    throw new ParamNullException("RealAmount");
                 }
                 if (StringUtils.isEmpty(platformOrderBO.getMerchantOrderNo())) {
-                    throw new NullPointerException("MerchantOrderNo");
+                    throw new ParamNullException("MerchantOrderNo");
                 }
 
 

+ 2 - 2
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/pay/AlipayServiceImpl.java

@@ -11,6 +11,7 @@ import com.alipay.easysdk.payment.page.models.AlipayTradePagePayResponse;
 import com.alipay.easysdk.payment.wap.models.AlipayTradeWapPayResponse;
 import com.zanxiang.common.domain.ResultMap;
 import com.zanxiang.common.enums.OrderStateEnum;
+import com.zanxiang.common.enums.PayDeviceEnum;
 import com.zanxiang.common.enums.ResEnum;
 import com.zanxiang.common.utils.URIUtil;
 import com.zanxiang.sdk.domain.bo.PlatformOrderBO;
@@ -52,7 +53,6 @@ public class AlipayServiceImpl extends PayService implements OrderPayService {
         Map<String, String> attachMap = JSON.parseObject(JSON.toJSONString(this.attach), new TypeReference<Map<String, String>>() {
         });
         this.returnUrl = URIUtil.fillUrlParams(this.returnUrl, attachMap, true);
-
         switch (product.getPayDevice()) {
             case 1:
                 return this.pc(product);
@@ -187,7 +187,7 @@ public class AlipayServiceImpl extends PayService implements OrderPayService {
                     .pay(product.getSubject(), product.getOutTradeNo(), product.getTotalFee(), this.returnUrl);
             logger.info("pc端支付生成,result:{}", response);
             if (ResponseChecker.success(response)) {
-                return ResultMap.ok(response.getBody());
+                return ResultMap.ok(product.getPayDevice(), response.getBody());
             } else {
                 return ResultMap.error(ResEnum.FAIL.getMsg());
             }