Pārlūkot izejas kodu

Merge branch 'package' of GameCenter/game-center into dev

zhimo 1 gadu atpakaļ
vecāks
revīzija
8ab6f6ac66
12 mainītis faili ar 447 papildinājumiem un 44 dzēšanām
  1. 16 2
      game-module/game-module-base/src/main/java/com/zanxiang/game/module/base/pojo/enums/PayDeviceEnum.java
  2. 52 0
      game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/controller/GameAppletShellController.java
  3. 68 0
      game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/pojo/params/GameAppletShellAddUpdateParam.java
  4. 24 0
      game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/pojo/params/GameAppletShellListParam.java
  5. 99 0
      game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/pojo/vo/GameAppletShellListVO.java
  6. 20 0
      game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/service/IGameAppletShellService.java
  7. 0 7
      game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/service/IPayDeviceService.java
  8. 121 0
      game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/service/impl/GameAppletShellServiceImpl.java
  9. 0 11
      game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/service/impl/PayDeviceServiceImpl.java
  10. 34 23
      game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/service/impl/PayMerchantServiceImpl.java
  11. 10 0
      game-module/game-module-mybatis/src/main/java/com/zanxiang/game/module/mybatis/entity/GameAppletShell.java
  12. 3 1
      game-module/game-module-sdk/src/main/java/com/zanxiang/game/module/sdk/service/impl/UserServiceImpl.java

+ 16 - 2
game-module/game-module-base/src/main/java/com/zanxiang/game/module/base/pojo/enums/PayDeviceEnum.java

@@ -78,12 +78,26 @@ public enum PayDeviceEnum {
         if (payDeviceId == null) {
             return Strings.EMPTY;
         }
+        PayDeviceEnum payDeviceEnum = PayDeviceEnum.getPayDeviceEnum(payDeviceId);
+        return payDeviceEnum == null ? Strings.EMPTY : payDeviceEnum.getPayDeviceName();
+    }
+
+    /**
+     * 得到支付设备枚举
+     *
+     * @param payDeviceId 支付设备id
+     * @return {@link PayDeviceEnum}
+     */
+    public static PayDeviceEnum getPayDeviceEnum(Long payDeviceId) {
+        if (payDeviceId == null) {
+            return null;
+        }
         for (PayDeviceEnum payDeviceEnum : PayDeviceEnum.values()) {
             if (Objects.equals(payDeviceId, payDeviceEnum.getPayDeviceId())) {
-                return payDeviceEnum.getPayDeviceName();
+                return payDeviceEnum;
             }
         }
-        return Strings.EMPTY;
+        return null;
     }
 
     /**

+ 52 - 0
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/controller/GameAppletShellController.java

@@ -0,0 +1,52 @@
+package com.zanxiang.game.module.manage.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.zanxiang.erp.security.annotation.PreAuthorize;
+import com.zanxiang.game.module.manage.pojo.params.GameAppletShellAddUpdateParam;
+import com.zanxiang.game.module.manage.pojo.params.GameAppletShellListParam;
+import com.zanxiang.game.module.manage.pojo.vo.CpVO;
+import com.zanxiang.game.module.manage.pojo.vo.GameAppletShellListVO;
+import com.zanxiang.game.module.manage.service.IGameAppletShellService;
+import com.zanxiang.module.util.pojo.ResultVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author : lingfeng
+ * @time : 2023-07-10
+ * @description : 壳包控制接口
+ */
+@Api(tags = {"壳包控制接口"})
+@RestController
+@RequestMapping("/applet/shell")
+@Slf4j
+public class GameAppletShellController {
+
+    @Autowired
+    private IGameAppletShellService gameAppletShellService;
+
+    @ApiOperation(value = "壳包配置更新或者添加")
+    @PostMapping(value = "/add/or/update")
+    @PreAuthorize(permissionKey = "manage:appletShell:addOrUpdate")
+    @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = Boolean.class)})
+    public ResultVO<Boolean> addOrUpdate(@Validated @RequestBody GameAppletShellAddUpdateParam param) {
+        return ResultVO.ok(gameAppletShellService.addOrUpdate(param));
+    }
+
+    @ApiOperation(value = "壳包配置列表查询")
+    @PostMapping(value = "/list")
+    @PreAuthorize(permissionKey = "manage:appletShell:list")
+    @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = CpVO.class)})
+    public ResultVO<IPage<GameAppletShellListVO>> list(@Validated @RequestBody GameAppletShellListParam param) {
+        return ResultVO.ok(gameAppletShellService.listOfPage(param));
+    }
+}

+ 68 - 0
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/pojo/params/GameAppletShellAddUpdateParam.java

@@ -0,0 +1,68 @@
+package com.zanxiang.game.module.manage.pojo.params;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author : lingfeng
+ * @time : 2023-07-10
+ * @description : 客保控制
+ */
+@Data
+public class GameAppletShellAddUpdateParam {
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty(notes = "主键id, 不传为创建, 传则更新")
+    private Long id;
+
+    /**
+     * 游戏id
+     */
+    @NotNull(message = "游戏id不可为空")
+    @ApiModelProperty(notes = "游戏id, 必传")
+    private Long gameId;
+
+    /**
+     * 是否在申诉
+     */
+    @NotNull(message = "申诉状态不可为空")
+    @ApiModelProperty(notes = "是否在申诉, 必传, 非申诉中proControlType字段只能选择 0 和 1, 申诉只则没有限制")
+    private Boolean isAppeal;
+
+    /**
+     * 线上版本号
+     */
+    @NotBlank(message = "线上版本号不可为空")
+    @ApiModelProperty(notes = "线上版本号, 必传")
+    private String proVersion;
+
+    /**
+     * 提审版本号
+     */
+    @ApiModelProperty(notes = "提审版本号")
+    private String arraignVersion;
+
+    /**
+     * 壳包控制类型, 0:关闭, 1:开启, 2:新用户开启, 老用户关闭, 3:角色等级控制开启
+     */
+    @NotNull(message = "壳包控制类型不可为空")
+    @ApiModelProperty(notes = "壳包控制类型, 0:关闭, 1:开启, 2:新用户开启, 老用户关闭, 3:角色等级控制开启, 必传")
+    private Integer proControlType;
+
+    /**
+     * 壳包控制等级, 类型为3时, 必填
+     */
+    @ApiModelProperty(notes = "壳包控制等级, proControlType类型为3时, 必填")
+    private Long proControlLevel;
+
+    /**
+     * 壳跳出按钮开关
+     */
+    @ApiModelProperty(notes = "壳跳出按钮开关, 非必填")
+    private Boolean isSkipSwitch;
+}

+ 24 - 0
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/pojo/params/GameAppletShellListParam.java

@@ -0,0 +1,24 @@
+package com.zanxiang.game.module.manage.pojo.params;
+
+import com.zanxiang.game.module.mybatis.entity.GameAppletShell;
+import com.zanxiang.module.web.pojo.BaseListDTO;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author : lingfeng
+ * @time : 2023-07-10
+ * @description : 壳包配置查询参数
+ */
+@Data
+public class GameAppletShellListParam extends BaseListDTO<GameAppletShell> {
+
+    /**
+     * 游戏id
+     */
+    @NotNull
+    @ApiModelProperty(notes = "游戏id")
+    private Long gameId;
+}

+ 99 - 0
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/pojo/vo/GameAppletShellListVO.java

@@ -0,0 +1,99 @@
+package com.zanxiang.game.module.manage.pojo.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * @author : lingfeng
+ * @time : 2023-07-10
+ * @description : 壳包控制配置
+ */
+@Data
+public class GameAppletShellListVO {
+
+    /**
+     * 游戏id
+     */
+    @ApiModelProperty(notes = "游戏id")
+    private Long gameId;
+
+    /**
+     * 游戏名称
+     */
+    @ApiModelProperty(notes = "游戏名称")
+    private String gameName;
+
+    /**
+     * 是否在申诉
+     */
+    @ApiModelProperty(notes = "是否在申诉")
+    private Boolean isAppeal;
+
+    /**
+     * 线上版本号
+     */
+    @ApiModelProperty(notes = "线上版本号")
+    private String proVersion;
+
+    /**
+     * 提审版本号
+     */
+    @ApiModelProperty(notes = "提审版本号")
+    private String arraignVersion;
+
+    /**
+     * 壳包控制类型, 0:关闭, 1:开启, 2:新用户开启, 老用户关闭, 3:角色等级控制开启
+     */
+    @ApiModelProperty(notes = "壳包控制类型, 0:关闭, 1:开启, 2:新用户开启, 老用户关闭, 3:角色等级控制开启")
+    private Integer proControlType;
+
+    /**
+     * 壳包控制等级, 类型为3时, 必填
+     */
+    @ApiModelProperty(notes = "壳包控制等级, 类型为3时, 必填")
+    private Long proControlLevel;
+
+    /**
+     * 壳跳出按钮开关
+     */
+    @ApiModelProperty(notes = "壳跳出按钮开关")
+    private Boolean isSkipSwitch;
+
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(notes = "创建人id")
+    private Long createBy;
+
+    /**
+     * 创建人名字
+     */
+    @ApiModelProperty(notes = "创建人名字")
+    private String createByName;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(notes = "创建时间")
+    private LocalDateTime createTime;
+
+    /**
+     * 更新操作人
+     */
+    @ApiModelProperty(notes = "更新操作人id")
+    private Long updateBy;
+
+    /**
+     * 更新操作人名字
+     */
+    @ApiModelProperty(notes = "更新操作人名字")
+    private String updateByName;
+
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty(notes = "更新时间")
+    private LocalDateTime updateTime;
+}

+ 20 - 0
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/service/IGameAppletShellService.java

@@ -1,6 +1,10 @@
 package com.zanxiang.game.module.manage.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.zanxiang.game.module.manage.pojo.params.GameAppletShellAddUpdateParam;
+import com.zanxiang.game.module.manage.pojo.params.GameAppletShellListParam;
+import com.zanxiang.game.module.manage.pojo.vo.GameAppletShellListVO;
 import com.zanxiang.game.module.mybatis.entity.GameAppletShell;
 
 /**
@@ -9,4 +13,20 @@ import com.zanxiang.game.module.mybatis.entity.GameAppletShell;
  * @description : 壳包控制
  */
 public interface IGameAppletShellService extends IService<GameAppletShell> {
+
+    /**
+     * 添加或更新
+     *
+     * @param param 参数
+     * @return {@link Boolean}
+     */
+    Boolean addOrUpdate(GameAppletShellAddUpdateParam param);
+
+    /**
+     * 列表页面
+     *
+     * @param param 参数
+     * @return {@link IPage}<{@link GameAppletShellListVO}>
+     */
+    IPage<GameAppletShellListVO> listOfPage(GameAppletShellListParam param);
 }

+ 0 - 7
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/service/IPayDeviceService.java

@@ -28,11 +28,4 @@ public interface IPayDeviceService extends IService<PayDevice> {
      * @return {@link Map}<{@link Long}, {@link PayDeviceDTO}>
      */
     Map<Long, PayDeviceDTO> payDeviceMap();
-
-    /**
-     * 支付方式选择列表
-     *
-     * @return {@link Map}<{@link Long}, {@link PayDeviceChoiceVO}>
-     */
-    Map<Long, PayDeviceChoiceVO> payDeviceChoiceMap();
 }

+ 121 - 0
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/service/impl/GameAppletShellServiceImpl.java

@@ -1,13 +1,38 @@
 package com.zanxiang.game.module.manage.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zanxiang.erp.base.ErpServer;
+import com.zanxiang.erp.base.rpc.ISysUserRpc;
+import com.zanxiang.erp.security.util.SecurityUtil;
+import com.zanxiang.game.module.base.pojo.enums.DeleteEnum;
+import com.zanxiang.game.module.base.pojo.enums.ShellControlEnum;
+import com.zanxiang.game.module.base.pojo.enums.StatusEnum;
+import com.zanxiang.game.module.manage.pojo.dto.GameDTO;
+import com.zanxiang.game.module.manage.pojo.params.GameAppletShellAddUpdateParam;
+import com.zanxiang.game.module.manage.pojo.params.GameAppletShellListParam;
+import com.zanxiang.game.module.manage.pojo.vo.GameAppletShellListVO;
 import com.zanxiang.game.module.manage.service.IGameAppletShellService;
+import com.zanxiang.game.module.manage.service.IGameService;
 import com.zanxiang.game.module.mybatis.entity.GameAppletShell;
 import com.zanxiang.game.module.mybatis.mapper.GameAppletShellMapper;
+import com.zanxiang.module.util.bean.BeanUtil;
+import com.zanxiang.module.util.exception.BaseException;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.dubbo.config.annotation.DubboReference;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDateTime;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
 
 /**
  * @author : lingfeng
@@ -17,4 +42,100 @@ import java.time.LocalDateTime;
 @Slf4j
 @Service
 public class GameAppletShellServiceImpl extends ServiceImpl<GameAppletShellMapper, GameAppletShell> implements IGameAppletShellService {
+
+    @Autowired
+    private IGameService gameService;
+
+    @Lazy
+    @DubboReference(providedBy = ErpServer.SERVER_DUBBO_NAME)
+    private ISysUserRpc sysUserRpc;
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean addOrUpdate(GameAppletShellAddUpdateParam param) {
+        //参数判断
+        if (Objects.equals(ShellControlEnum.SHELL_CONTROL_LOW_LEVEL_OPEN.getShellControl(), param.getProControlType())
+                && param.getProControlLevel() == null) {
+            throw new BaseException("参数错误, 控制低等级开启壳, 等级限制不可为空");
+        }
+        //非申诉中, 类型限制
+        if (!param.getIsAppeal() && !ShellControlEnum.SHELL_CONTROL_CLOSE.getShellControl().equals(param.getProControlType())
+                && !ShellControlEnum.SHELL_CONTROL_OPEN.getShellControl().equals(param.getProControlType())) {
+            throw new BaseException("参数错误, 非申诉中状态, 控制类型只能选开启/关闭");
+        }
+        Long id = param.getId();
+        //创建
+        if (id == null) {
+            GameAppletShell gameAppletShell = super.getOne(new LambdaQueryWrapper<GameAppletShell>()
+                    .eq(GameAppletShell::getGameId, param.getGameId()));
+            if (gameAppletShell != null) {
+                throw new BaseException("该游戏已经存在壳包配置, 禁止重复添加");
+            }
+            return super.save(this.transform(param));
+        }
+        //更新
+        GameAppletShell gameAppletShell = super.getById(id);
+        if (gameAppletShell == null) {
+            throw new BaseException("参数错误, 游戏壳包配置信息不存在");
+        }
+        gameAppletShell.setIsAppeal(param.getIsAppeal());
+        gameAppletShell.setProVersion(param.getProVersion());
+        gameAppletShell.setArraignVersion(param.getArraignVersion());
+        gameAppletShell.setProControlType(param.getProControlType());
+        gameAppletShell.setProControlLevel(param.getProControlLevel());
+        gameAppletShell.setIsSkipSwitch(param.getIsSkipSwitch());
+        gameAppletShell.setUpdateBy(SecurityUtil.getUserId());
+        gameAppletShell.setUpdateTime(LocalDateTime.now());
+        return super.updateById(gameAppletShell);
+    }
+
+    private GameAppletShell transform(GameAppletShellAddUpdateParam param) {
+        return GameAppletShell.builder()
+                .gameId(param.getGameId())
+                .isAppeal(param.getIsAppeal())
+                .proVersion(param.getProVersion())
+                .arraignVersion(param.getArraignVersion())
+                .proControlType(param.getProControlType())
+                .proControlLevel(param.getProControlLevel())
+                .isSkipSwitch(param.getIsSkipSwitch())
+                .status(StatusEnum.YES.getCode())
+                .isDelete(DeleteEnum.NO.getCode())
+                .createBy(SecurityUtil.getUserId())
+                .createTime(LocalDateTime.now())
+                .createBy(SecurityUtil.getUserId())
+                .updateTime(LocalDateTime.now())
+                .build();
+    }
+
+    @Override
+    public IPage<GameAppletShellListVO> listOfPage(GameAppletShellListParam param) {
+        return super.page(param.toPage(), new QueryWrapper<GameAppletShell>().lambda()
+                .eq(param.getGameId() != null, GameAppletShell::getGameId, param.getGameId())
+                .orderByDesc(GameAppletShell::getCreateTime)
+        ).convert(this::toVO);
+    }
+
+    private GameAppletShellListVO toVO(GameAppletShell gameAppletShell) {
+        if (gameAppletShell == null) {
+            return null;
+        }
+        GameAppletShellListVO gameAppletShellListVO = BeanUtil.copy(gameAppletShell, GameAppletShellListVO.class);
+        GameDTO gameDTO = gameService.getById(gameAppletShellListVO.getGameId());
+        if (gameDTO != null) {
+            gameAppletShellListVO.setGameName(gameDTO.getName());
+        }
+        Map<Long, String> userNameMap = null;
+        List<Long> userIds = Arrays.asList(gameAppletShellListVO.getCreateBy(), gameAppletShellListVO.getUpdateBy());
+        try {
+            userNameMap = sysUserRpc.getUserNameByIds(userIds).getData();
+        } catch (Exception e) {
+            log.error("获取投手名字信息异常, userIds : {}, e : {}", userIds, e.getMessage());
+        }
+        if (CollectionUtils.isNotEmpty(userNameMap)) {
+            gameAppletShellListVO.setCreateByName(userNameMap.get(gameAppletShellListVO.getCreateBy()));
+            gameAppletShellListVO.setUpdateByName(userNameMap.get(gameAppletShellListVO.getUpdateBy()));
+        }
+        return gameAppletShellListVO;
+    }
+
 }

+ 0 - 11
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/service/impl/PayDeviceServiceImpl.java

@@ -45,15 +45,4 @@ public class PayDeviceServiceImpl extends ServiceImpl<PayDeviceMapper, PayDevice
         return payDeviceList.stream().map(payDevice -> BeanUtil.copy(payDevice, PayDeviceDTO.class))
                 .collect(Collectors.toMap(PayDeviceDTO::getId, Function.identity()));
     }
-
-    @Override
-    public Map<Long, PayDeviceChoiceVO> payDeviceChoiceMap() {
-        List<PayDevice> payDeviceList = super.list();
-        if (CollectionUtils.isEmpty(payDeviceList)) {
-            return Collections.emptyMap();
-        }
-        return payDeviceList.stream()
-                .map(payDevice -> BeanUtil.copy(payDevice, PayDeviceChoiceVO.class))
-                .collect(Collectors.toMap(PayDeviceChoiceVO::getId, Function.identity()));
-    }
 }

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

@@ -6,13 +6,14 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.zanxiang.game.module.base.pojo.enums.DeleteEnum;
+import com.zanxiang.game.module.base.pojo.enums.PayDeviceEnum;
 import com.zanxiang.game.module.base.pojo.enums.PayWayEnum;
 import com.zanxiang.game.module.base.pojo.enums.StatusEnum;
+import com.zanxiang.game.module.base.util.DateUtils;
 import com.zanxiang.game.module.manage.pojo.dto.PayMerchantDTO;
 import com.zanxiang.game.module.manage.pojo.dto.PayWayDTO;
 import com.zanxiang.game.module.manage.pojo.params.PayMerchantAddUpdateParam;
 import com.zanxiang.game.module.manage.pojo.params.PayMerchantListParam;
-import com.zanxiang.game.module.manage.pojo.vo.PayDeviceChoiceVO;
 import com.zanxiang.game.module.manage.pojo.vo.PayMerchantChoiceVO;
 import com.zanxiang.game.module.manage.pojo.vo.PayMerchantListVO;
 import com.zanxiang.game.module.manage.service.IPayDeviceService;
@@ -28,6 +29,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.util.*;
 import java.util.function.Function;
@@ -135,12 +137,6 @@ public class PayMerchantServiceImpl extends ServiceImpl<PayMerchantMapper, PayMe
 
     @Override
     public IPage<PayMerchantListVO> pageList(PayMerchantListParam param) {
-        //米大师商户与微信商户同类型
-        if (Objects.equals(param.getPayWayId(), PayWayEnum.MI_PAY.getPayWayId())) {
-            param.setPayWayId(PayWayEnum.WX_PAY.getPayWayId());
-        }
-        //支付方式
-        Map<Long, PayDeviceChoiceVO> payDeviceMap = payDeviceService.payDeviceChoiceMap();
         //查询
         return page(param.toPage(), new LambdaQueryWrapper<PayMerchant>()
                 .eq(param.getMerchantNo() != null, PayMerchant::getMerchantNo, param.getMerchantNo())
@@ -148,29 +144,29 @@ public class PayMerchantServiceImpl extends ServiceImpl<PayMerchantMapper, PayMe
                 .eq(param.getStatus() != null, PayMerchant::getStatus, param.getStatus())
                 .like(Strings.isNotBlank(param.getMerchantName()), PayMerchant::getMerchantName, param.getMerchantName())
                 .orderByDesc(PayMerchant::getCreateTime))
-                .convert(payMerchant -> this.toVo(payMerchant, payDeviceMap));
+                .convert(this::toVo);
     }
 
-    private PayMerchantListVO toVo(PayMerchant payMerchant, Map<Long, PayDeviceChoiceVO> payDeviceMap) {
+    private PayMerchantListVO toVo(PayMerchant payMerchant) {
         PayMerchantListVO payMerchantListVO = BeanUtil.copy(payMerchant, PayMerchantListVO.class);
         if (payMerchantListVO == null) {
             return null;
         }
-        List<Long> payDeviceIdList = new ArrayList<>();
-        List<String> payDeviceNameList = new ArrayList<>();
-        String payDeviceIds = payMerchant.getPayDeviceIds();
-        if (Strings.isNotBlank(payDeviceIds)) {
-            String[] deviceIdArray = payDeviceIds.split(",");
-            for (String deviceId : deviceIdArray) {
-                PayDeviceChoiceVO payDeviceChoiceVO = payDeviceMap.get(Long.valueOf(deviceId));
-                if (payDeviceChoiceVO != null) {
-                    payDeviceIdList.add(payDeviceChoiceVO.getId());
-                    payDeviceNameList.add(payDeviceChoiceVO.getPayDeviceName());
-                }
-            }
+        //判断月更新日期是否为本月
+        if (!DateUtils.isThisMonth(payMerchant.getMouthUpdateDate())) {
+            //月已用额度归零
+            payMerchantListVO.setMouthPayAmount(BigDecimal.ZERO);
+        }
+        //判断日更新日期是否为今天
+        if (!DateUtils.isToday(payMerchant.getDayUpdateDate())) {
+            //日已用额度归零
+            payMerchantListVO.setDayPayAmount(BigDecimal.ZERO);
+        }
+        //判断周更新日期是否为本周
+        if (!DateUtils.isThisWeek(payMerchant.getMouthUpdateDate())) {
+            //周已用额度归零
+            payMerchantListVO.setWeakerPayAmount(BigDecimal.ZERO);
         }
-        payMerchantListVO.setPayDeviceIdList(payDeviceIdList);
-        payMerchantListVO.setPayDeviceNameList(payDeviceNameList);
         //密钥
         if (Strings.isNotBlank(payMerchant.getPayConfig())) {
             Map<String, String> payConfigMap = JsonUtil.toMap(payMerchant.getPayConfig(), Map.class, String.class);
@@ -181,6 +177,21 @@ public class PayMerchantServiceImpl extends ServiceImpl<PayMerchantMapper, PayMe
                 payMerchantListVO.setSecretKey(payConfigMap.get("apiKey"));
             }
         }
+        //支付方式
+        String payDeviceIds = payMerchant.getPayDeviceIds();
+        if (Strings.isBlank(payDeviceIds)) {
+            return payMerchantListVO;
+        }
+        payMerchantListVO.setPayDeviceIdList(new ArrayList<>());
+        payMerchantListVO.setPayDeviceNameList(new ArrayList<>());
+        String[] deviceIdArray = payDeviceIds.split(",");
+        for (String deviceId : deviceIdArray) {
+            PayDeviceEnum payDeviceEnum = PayDeviceEnum.getPayDeviceEnum(Long.valueOf(deviceId));
+            if (payDeviceEnum != null) {
+                payMerchantListVO.getPayDeviceIdList().add(payDeviceEnum.getPayDeviceId());
+                payMerchantListVO.getPayDeviceNameList().add(payDeviceEnum.getPayDeviceName());
+            }
+        }
         return payMerchantListVO;
     }
 

+ 10 - 0
game-module/game-module-mybatis/src/main/java/com/zanxiang/game/module/mybatis/entity/GameAppletShell.java

@@ -74,11 +74,21 @@ public class GameAppletShell implements Serializable {
      */
     private Integer isDelete;
 
+    /**
+     * 创建人
+     */
+    private Long createBy;
+
     /**
      * 创建时间
      */
     private LocalDateTime createTime;
 
+    /**
+     * 更新操作人
+     */
+    private Long updateBy;
+
     /**
      * 更新时间
      */

+ 3 - 1
game-module/game-module-sdk/src/main/java/com/zanxiang/game/module/sdk/service/impl/UserServiceImpl.java

@@ -146,7 +146,9 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
             return ResultVO.fail(HttpStatusEnum.PHONE_IS_BIND.getMsg());
         }
         //校验手机号是否已经绑定了其他账号
-        int count = super.count(new LambdaQueryWrapper<User>().eq(User::getMobile, mobile));
+        int count = super.count(new LambdaQueryWrapper<User>()
+                .eq(User::getGameId, userData.getGameId())
+                .eq(User::getMobile, mobile));
         if (count > 0) {
             return ResultVO.fail(HttpStatusEnum.PHONE_BIND_TOO_MUCH.getMsg());
         }