bilingfeng пре 2 година
родитељ
комит
07e14c549a

+ 7 - 5
game-module/game-manage/src/main/java/com/zanxiang/manage/controller/ChoiceController.java

@@ -4,7 +4,6 @@ import com.zanxiang.common.domain.ResultVO;
 import com.zanxiang.common.enums.*;
 import com.zanxiang.common.utils.bean.BeanUtils;
 import com.zanxiang.erp.security.annotation.PreAuthorize;
-import com.zanxiang.common.enums.PayApplicationTypeEnum;
 import com.zanxiang.manage.domain.vo.*;
 import com.zanxiang.manage.service.*;
 import io.swagger.annotations.Api;
@@ -67,6 +66,9 @@ public class ChoiceController {
     @Autowired
     private IPayDeviceService payDeviceService;
 
+    @Autowired
+    private IPayBoxService payBoxService;
+
     @ApiOperation(value = "vip等级选择列表")
     @GetMapping(value = "/vip/level/list")
     @PreAuthorize(permissionKey = "sdk:choiceVipLevel:list")
@@ -227,12 +229,12 @@ public class ChoiceController {
         return new ResultVO<>(payApplicationService.payApplicationChoiceList());
     }
 
-    @ApiOperation(value = "支付盒子类型选择列表")
+    @ApiOperation(value = "支付盒子选择列表")
     @GetMapping(value = "/pay/box/list")
     @PreAuthorize(permissionKey = "sdk:payBoxChoice:list")
-    @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = PayBoxTypeChoiceVO.class, responseContainer = "list")})
-    public ResultVO<List<PayBoxTypeChoiceVO>> payBoxChoiceList() {
-        return ResultVO.ok(BeanUtils.copyList(Arrays.asList(AppletStoreEnum.values()), PayBoxTypeChoiceVO.class));
+    @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = PayBoxChoiceVO.class, responseContainer = "list")})
+    public ResultVO<List<PayBoxChoiceVO>> payBoxChoiceList() {
+        return ResultVO.ok(payBoxService.payBoxChoiceList());
     }
 
 }

+ 6 - 0
game-module/game-manage/src/main/java/com/zanxiang/manage/domain/params/GamePayWayAddUpdateParam.java

@@ -40,6 +40,12 @@ public class GamePayWayAddUpdateParam {
     @ApiModelProperty(notes = "支付类型id")
     private Long payDeviceId;
 
+    /**
+     * 描述
+     */
+    @ApiModelProperty(notes = "备注")
+    private String remark;
+
     /**
      * 米大师支付配置
      */

+ 6 - 0
game-module/game-manage/src/main/java/com/zanxiang/manage/domain/vo/PayApplicationChoiceVO.java

@@ -22,4 +22,10 @@ public class PayApplicationChoiceVO {
      */
     @ApiModelProperty(notes = "应用名称")
     private String appName;
+
+    /**
+     * 类型,1 : 小程序, 2 : 公众号,3 : 支付宝应用
+     */
+    @ApiModelProperty(notes = "类型,1 : 小程序, 2 : 公众号,3 : 支付宝应用")
+    private Integer type;
 }

+ 31 - 0
game-module/game-manage/src/main/java/com/zanxiang/manage/domain/vo/PayBoxChoiceVO.java

@@ -0,0 +1,31 @@
+package com.zanxiang.manage.domain.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author : lingfeng
+ * @time : 2023-02-15
+ * @description : 盒子选择列表
+ */
+@Data
+public class PayBoxChoiceVO {
+
+    /**
+     * 盒子主键id
+     */
+    @ApiModelProperty(notes = "盒子主键id")
+    private Integer id;
+
+    /**
+     * 盒子名称
+     */
+    @ApiModelProperty(notes = "盒子名称")
+    private String name;
+
+    /**
+     * 盒子类型 1、小程序 2、微信公众号
+     */
+    @ApiModelProperty(notes = "盒子类型 1、小程序 2、微信公众号")
+    private Integer type;
+}

+ 6 - 0
game-module/game-manage/src/main/java/com/zanxiang/manage/domain/vo/PayMerchantChoiceVO.java

@@ -22,4 +22,10 @@ public class PayMerchantChoiceVO {
      */
     @ApiModelProperty(notes = "商户名称")
     private String merchantName;
+
+    /**
+     * 商户平台类型, 1 : 支付宝, 2 : 微信
+     */
+    @ApiModelProperty(notes = "商户平台类型, 1 : 支付宝, 2 : 微信")
+    private Long payWayId;
 }

+ 9 - 0
game-module/game-manage/src/main/java/com/zanxiang/manage/service/IGamePayWayService.java

@@ -2,6 +2,7 @@ package com.zanxiang.manage.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.zanxiang.manage.domain.params.GamePayWayAddUpdateParam;
 import com.zanxiang.manage.domain.params.GamePayWayListParam;
 import com.zanxiang.manage.domain.vo.GamePayWayListVO;
 import com.zanxiang.manage.domain.vo.GamePayWayVO;
@@ -16,6 +17,14 @@ import java.util.List;
  */
 public interface IGamePayWayService extends IService<GamePayWay> {
 
+    /**
+     * 添加或更新
+     *
+     * @param param 参数
+     * @return boolean
+     */
+    boolean addOrUpdate(GamePayWayAddUpdateParam param);
+
     /**
      * 根据游戏id查询
      *

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

@@ -83,4 +83,12 @@ public interface IPayApplicationService extends IService<PayApplication> {
      * @return boolean
      */
     boolean deleteById(Long id);
+
+    /**
+     * 通过应用程序id
+     *
+     * @param appId 应用程序id
+     * @return {@link PayApplicationDTO}
+     */
+    PayApplicationDTO getByAppId(String appId);
 }

+ 10 - 0
game-module/game-manage/src/main/java/com/zanxiang/manage/service/IPayBoxService.java

@@ -5,9 +5,12 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.zanxiang.manage.domain.dto.PayBoxDTO;
 import com.zanxiang.manage.domain.params.PayBoxAddUpdateParam;
 import com.zanxiang.manage.domain.params.PayBoxListParam;
+import com.zanxiang.manage.domain.vo.PayBoxChoiceVO;
 import com.zanxiang.manage.domain.vo.PayBoxListVO;
 import com.zanxiang.mybatis.entity.PayBox;
 
+import java.util.List;
+
 /**
  * @author : lingfeng
  * @time : 2022-06-23
@@ -15,6 +18,13 @@ import com.zanxiang.mybatis.entity.PayBox;
  */
 public interface IPayBoxService extends IService<PayBox> {
 
+    /**
+     * 支付框选择列表
+     *
+     * @return {@link List}<{@link PayBoxChoiceVO}>
+     */
+    List<PayBoxChoiceVO> payBoxChoiceList();
+
     /**
      * 列表
      *

+ 78 - 0
game-module/game-manage/src/main/java/com/zanxiang/manage/service/impl/GamePayWayServiceImpl.java

@@ -4,13 +4,18 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zanxiang.common.enums.DeleteEnum;
 import com.zanxiang.common.enums.PayWayEnum;
+import com.zanxiang.common.enums.StatusEnum;
+import com.zanxiang.common.exception.BaseException;
 import com.zanxiang.common.utils.bean.BeanUtils;
 import com.zanxiang.manage.domain.dto.*;
+import com.zanxiang.manage.domain.params.GamePayWayAddUpdateParam;
 import com.zanxiang.manage.domain.params.GamePayWayListParam;
 import com.zanxiang.manage.domain.vo.GamePayWayListVO;
 import com.zanxiang.manage.domain.vo.GamePayWayVO;
 import com.zanxiang.manage.service.*;
+import com.zanxiang.mybatis.entity.GameApplet;
 import com.zanxiang.mybatis.entity.GamePayWay;
 import com.zanxiang.mybatis.mapper.GamePayWayMapper;
 import lombok.extern.slf4j.Slf4j;
@@ -50,6 +55,79 @@ public class GamePayWayServiceImpl extends ServiceImpl<GamePayWayMapper, GamePay
     @Autowired
     private IPayBoxService payBoxService;
 
+    @Autowired
+    private IPayApplicationService payApplicationService;
+
+    @Override
+    public boolean addOrUpdate(GamePayWayAddUpdateParam param) {
+        Long id = param.getId();
+        GamePayWay gamePayWay;
+        if (id != null) {
+            gamePayWay = super.getById(id);
+            if (gamePayWay == null) {
+                throw new BaseException("参数错误, 游戏支付配置信息不存在");
+            }
+        } else {
+            gamePayWay = new GamePayWay();
+            gamePayWay.setPayWayId(param.getPayWayId());
+            gamePayWay.setStatus(StatusEnum.YES.getCode());
+            gamePayWay.setIsDelete(DeleteEnum.NO.getCode());
+            gamePayWay.setCreateTime(LocalDateTime.now());
+        }
+        this.gamePayWayUpdate(gamePayWay, param);
+        return super.saveOrUpdate(gamePayWay);
+    }
+
+    private void gamePayWayUpdate(GamePayWay gamePayWay, GamePayWayAddUpdateParam param) {
+        Long payWayId = gamePayWay.getPayWayId();
+        if (Objects.equals(PayWayEnum.ALI_PAY.getPayWayId(), payWayId.intValue())) {
+            GamePayWayAddUpdateParam.AliPayConfigBean aliPayConfig = param.getAliPayConfig();
+            //更改了支付宝应用
+            if (!Objects.equals(aliPayConfig.getAppId(), gamePayWay.getAppId())) {
+                PayApplicationDTO payApplicationDTO = payApplicationService.getByAppId(aliPayConfig.getAppId());
+                gamePayWay.setAppId(payApplicationDTO.getAppId());
+                gamePayWay.setAppName(payApplicationDTO.getAppName());
+                gamePayWay.setMerchantNo(payApplicationDTO.getMerchantNo());
+            }
+        }
+        if (Objects.equals(PayWayEnum.WX_PAY.getPayWayId(), payWayId.intValue())) {
+            GamePayWayAddUpdateParam.WxPayConfigBean wxPayConfig = param.getWxPayConfig();
+            //更改了支付宝应用
+            if (!Objects.equals(wxPayConfig.getAppId(), gamePayWay.getAppId())) {
+                PayApplicationDTO payApplicationDTO = payApplicationService.getByAppId(wxPayConfig.getAppId());
+                gamePayWay.setAppId(payApplicationDTO.getAppId());
+                gamePayWay.setAppName(payApplicationDTO.getAppName());
+            }
+            gamePayWay.setMerchantNo(wxPayConfig.getMerchantNo());
+            gamePayWay.setPayBoxId(wxPayConfig.getPayBoxId());
+            gamePayWay.setThumbUrl(wxPayConfig.getThumbUrl());
+        }
+        if (Objects.equals(PayWayEnum.MI_PAY.getPayWayId(), payWayId.intValue())) {
+            GamePayWayAddUpdateParam.MiPayConfigBean miPayConfig = param.getMiPayConfig();
+            gameAppletService.update(new LambdaUpdateWrapper<GameApplet>()
+                    .set(GameApplet::getMiPayAppId, miPayConfig.getAppId())
+                    .set(GameApplet::getMiPayAppKey, miPayConfig.getAppKey())
+                    .set(GameApplet::getMiPayAppKeyDev, miPayConfig.getAppKeyDev())
+                    .set(GameApplet::getUpdateTime, LocalDateTime.now())
+                    .eq(GameApplet::getGameId, gamePayWay.getGameId()));
+        }
+        Map<Long, PayDeviceDTO> payDeviceMap = payDeviceService.payDeviceMap();
+        Map<Long, PayWayDTO> payWayMap = payWayService.payWayMap();
+        String payName = "";
+        if (payWayMap.get(param.getPayWayId()) != null) {
+            payName += payWayMap.get(param.getPayWayId()).getPayWayName();
+        }
+        if (payDeviceMap.get(param.getPayDeviceId()) != null) {
+            payName += payDeviceMap.get(param.getPayDeviceId()).getPayDeviceName();
+        }
+        gamePayWay.setPayName(payName);
+        gamePayWay.setGameId(param.getGameId());
+        gamePayWay.setPayWayId(param.getPayWayId());
+        gamePayWay.setPayDeviceId(param.getPayDeviceId());
+        gamePayWay.setRemark(param.getRemark());
+        gamePayWay.setUpdateTime(LocalDateTime.now());
+    }
+
     @Override
     public IPage<GamePayWayListVO> pageList(GamePayWayListParam param) {
         Map<Long, GameCategoryDTO> gameCategoryMap = gameCategoryService.gameCategoryMap();

+ 12 - 2
game-module/game-manage/src/main/java/com/zanxiang/manage/service/impl/PayApplicationServiceImpl.java

@@ -5,11 +5,11 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.zanxiang.common.enums.DeleteEnum;
+import com.zanxiang.common.enums.PayApplicationTypeEnum;
 import com.zanxiang.common.enums.StatusEnum;
 import com.zanxiang.common.exception.BaseException;
 import com.zanxiang.common.utils.bean.BeanUtils;
 import com.zanxiang.manage.domain.dto.PayApplicationDTO;
-import com.zanxiang.common.enums.PayApplicationTypeEnum;
 import com.zanxiang.manage.domain.params.PayApplicationAddUpdateParam;
 import com.zanxiang.manage.domain.params.PayApplicationListParam;
 import com.zanxiang.manage.domain.vo.PayApplicationChoiceVO;
@@ -46,7 +46,7 @@ public class PayApplicationServiceImpl extends ServiceImpl<PayApplicationMapper,
     @Override
     public List<PayApplicationChoiceVO> payApplicationChoiceList() {
         List<PayApplication> payApplicationList = super.list(new LambdaQueryWrapper<PayApplication>()
-                .select(PayApplication::getAppId, PayApplication::getAppName)
+                .select(PayApplication::getAppId, PayApplication::getType, PayApplication::getAppName)
         );
         return BeanUtils.copyList(payApplicationList, PayApplicationChoiceVO.class);
     }
@@ -190,4 +190,14 @@ public class PayApplicationServiceImpl extends ServiceImpl<PayApplicationMapper,
         return BeanUtils.copyList(payApplicationList, PayApplicationDTO.class)
                 .stream().collect(Collectors.toMap(PayApplicationDTO::getAppId, Function.identity()));
     }
+
+    @Override
+    public PayApplicationDTO getByAppId(String appId) {
+        PayApplication payApplication = super.getOne(new LambdaQueryWrapper<PayApplication>()
+                .eq(PayApplication::getAppId, appId));
+        if (payApplication == null) {
+            throw new BaseException("参数错误, 支付应用appId对应信息不存在");
+        }
+        return BeanUtils.copy(payApplication, PayApplicationDTO.class);
+    }
 }

+ 13 - 4
game-module/game-manage/src/main/java/com/zanxiang/manage/service/impl/PayBoxServiceImpl.java

@@ -17,6 +17,7 @@ import com.zanxiang.manage.domain.dto.PayBoxDTO;
 import com.zanxiang.manage.domain.dto.PayMerchantDTO;
 import com.zanxiang.manage.domain.params.PayBoxAddUpdateParam;
 import com.zanxiang.manage.domain.params.PayBoxListParam;
+import com.zanxiang.manage.domain.vo.PayBoxChoiceVO;
 import com.zanxiang.manage.domain.vo.PayBoxListVO;
 import com.zanxiang.manage.service.IPayApplicationService;
 import com.zanxiang.manage.service.IPayBoxService;
@@ -33,10 +34,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Set;
+import java.util.*;
 
 /**
  * @author : lingfeng
@@ -54,6 +52,13 @@ public class PayBoxServiceImpl extends ServiceImpl<PayBoxMapper, PayBox> impleme
     @Autowired
     private IPayApplicationService payApplicationService;
 
+    @Override
+    public List<PayBoxChoiceVO> payBoxChoiceList() {
+        List<PayBox> payBoxList = super.list(new LambdaQueryWrapper<PayBox>()
+                .select(PayBox::getId, PayBox::getType, PayBox::getName));
+        return BeanUtils.copyList(payBoxList, PayBoxChoiceVO.class);
+    }
+
     @Override
     public IPage<PayBoxListVO> pageList(PayBoxListParam param) {
         //条件查询支付应用列表
@@ -124,6 +129,8 @@ public class PayBoxServiceImpl extends ServiceImpl<PayBoxMapper, PayBox> impleme
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Boolean addOrUpdate(PayBoxAddUpdateParam param) {
+        //查询支付应用
+        PayApplicationDTO payApplicationDTO = payApplicationService.getByAppId(param.getPayApplicationAppId());
         Long id = param.getId();
         //更新
         if (id != null) {
@@ -136,6 +143,7 @@ public class PayBoxServiceImpl extends ServiceImpl<PayBoxMapper, PayBox> impleme
             //更新
             payBox.setName(param.getName());
             payBox.setAppId(param.getPayApplicationAppId());
+            payBox.setType(payApplicationDTO.getType());
             payBox.setMerchantNos(StringUtils.join(param.getMerchantNos(), ","));
             payBox.setStoreType(param.getStoreType());
             payBox.setRemark(param.getRemark());
@@ -148,6 +156,7 @@ public class PayBoxServiceImpl extends ServiceImpl<PayBoxMapper, PayBox> impleme
         return super.save(PayBox.builder()
                 .name(param.getName())
                 .appId(param.getPayApplicationAppId())
+                .type(payApplicationDTO.getType())
                 .merchantNos(StringUtils.join(param.getMerchantNos(), ","))
                 .storeType(param.getStoreType())
                 .remark(param.getRemark())

+ 1 - 1
game-module/game-manage/src/main/java/com/zanxiang/manage/service/impl/PayMerchantServiceImpl.java

@@ -128,7 +128,7 @@ public class PayMerchantServiceImpl extends ServiceImpl<PayMerchantMapper, PayMe
     @Override
     public List<PayMerchantChoiceVO> payMerchantChoiceList() {
         List<PayMerchant> payMerchantList = super.list(new LambdaQueryWrapper<PayMerchant>().
-                select(PayMerchant::getMerchantNo, PayMerchant::getMerchantName));
+                select(PayMerchant::getMerchantNo, PayMerchant::getPayWayId, PayMerchant::getMerchantName));
         return BeanUtils.copyList(payMerchantList, PayMerchantChoiceVO.class);
     }
 

+ 5 - 0
game-module/game-mybatis/src/main/java/com/zanxiang/mybatis/entity/PayBox.java

@@ -48,6 +48,11 @@ public class PayBox implements Serializable {
      */
     private String merchantNos;
 
+    /**
+     * 盒子类型 1、小程序 2、公众号 2、支付宝
+     */
+    private Integer type;
+
     /**
      * 商城小程序类型 1、商城百货 2、商城美妆 3、商城内容
      */