浏览代码

米大师支付管理

lth 1 年之前
父节点
当前提交
39e0b62496

+ 56 - 0
game-module/game-module-base/src/main/java/com/zanxiang/game/module/base/util/DateUtils.java

@@ -0,0 +1,56 @@
+package com.zanxiang.game.module.base.util;
+
+import com.zanxiang.module.util.DateUtil;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.time.temporal.TemporalAdjusters;
+
+/**
+ * 时间工具类
+ *
+ * @author ruoyi
+ */
+public class DateUtils extends DateUtil {
+
+    /**
+     * 验证当前时间是否为当天
+     *
+     * @param time 时间
+     * @return boolean
+     */
+    public static boolean isToday(LocalDateTime time) {
+        LocalDateTime startTime = LocalDateTime.now().with(LocalTime.MIN);
+        LocalDateTime endTime = LocalDateTime.now().with(LocalTime.MAX);
+        //如果大于今天的开始日期,小于今天的结束日期
+        return time.isAfter(startTime) && time.isBefore(endTime);
+    }
+
+    /**
+     * 验证当前时间是否为当月
+     *
+     * @param time 时间
+     * @return boolean
+     */
+    public static boolean isThisMonth(LocalDateTime time) {
+        LocalDate localDate = time.toLocalDate();
+        LocalDate now = LocalDate.now();
+        return localDate.isAfter(now.minusMonths(1).with(TemporalAdjusters.lastDayOfMonth())) &&
+                localDate.isBefore(now.plusMonths(1).with(TemporalAdjusters.firstDayOfMonth()));
+    }
+
+    /**
+     * 验证当前时间是否为本周
+     *
+     * @param time 时间
+     * @return boolean
+     */
+    public static boolean isThisWeek(LocalDateTime time) {
+        LocalDateTime now = LocalDateTime.now();
+        int dayOfWeek = now.getDayOfWeek().getValue();
+        LocalDateTime weekStart = now.minusDays(dayOfWeek - 1).with(LocalTime.MIN);
+        LocalDateTime weekEnd = now.plusDays(7 - dayOfWeek).with(LocalTime.MAX);
+        return time.isAfter(weekStart) && time.isBefore(weekEnd);
+    }
+}

+ 47 - 0
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/controller/MiPaySumController.java

@@ -0,0 +1,47 @@
+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.MiPaySumListParam;
+import com.zanxiang.game.module.manage.pojo.vo.MiPaySumListVO;
+import com.zanxiang.game.module.manage.service.IMiPaySumService;
+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 org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * @ClassName MiPaySumController
+ * @Description 米大师支付统计
+ * @Author tianhua
+ * @Date 2023/6/27  11:10
+ **/
+@Api(tags = "米大师支付管理")
+@RestController
+@RequestMapping("/pay/mipaysum")
+public class MiPaySumController {
+
+    @Autowired
+    private IMiPaySumService miPaySumService;
+
+    @ApiOperation(value = "米大师支付统计列表查询")
+    @PostMapping("/list")
+    //@PreAuthorize(permissionKey = "manage:miPaySum:list")
+    @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = MiPaySumListVO.class)})
+    public ResultVO<IPage<MiPaySumListVO>> list(@RequestBody MiPaySumListParam param){
+        return ResultVO.ok(miPaySumService.pageList(param));
+    }
+
+    @ApiOperation(value = "米大师支付状态变更")
+    @PatchMapping("/status/update")
+    //@PreAuthorize(permissionKey = "manage:miPaySum:statusUpdate")
+    @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = Boolean.class)})
+    public ResultVO<Boolean> statusUpdate(@RequestParam Long id,@RequestParam Integer status){
+        return ResultVO.ok(miPaySumService.statusUpdate(id,status));
+    }
+
+
+}

+ 31 - 0
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/pojo/params/MiPaySumListParam.java

@@ -0,0 +1,31 @@
+package com.zanxiang.game.module.manage.pojo.params;
+
+import com.zanxiang.game.module.mybatis.entity.MiPaySum;
+import com.zanxiang.module.web.pojo.BaseListDTO;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * @ClassName MiPaySumListParam
+ * @Description
+ * @Author tianhua
+ * @Date 2023/6/27  11:18
+ **/
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class MiPaySumListParam extends BaseListDTO<MiPaySum> {
+
+    /**
+     * 游戏id
+     */
+    @ApiModelProperty(notes = "游戏id")
+    private Long gameId;
+
+    /**
+     * 状态, 0 : 正常, 1 : 不可用
+     */
+    @ApiModelProperty(notes = "状态, 0 : 正常, 1 : 不可用")
+    private Integer status;
+
+}

+ 19 - 0
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/service/IMiPaySumService.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.MiPaySumListParam;
+import com.zanxiang.game.module.manage.pojo.vo.MiPaySumListVO;
+import com.zanxiang.game.module.manage.pojo.vo.PayMerchantListVO;
 import com.zanxiang.game.module.mybatis.entity.MiPaySum;
 
 /**
@@ -18,4 +22,19 @@ public interface IMiPaySumService extends IService<MiPaySum> {
      * @param miPayAppId mi支付应用程序id
      */
     void add(Long gameId, String appId, String miPayAppId);
+
+    /**
+     * 列表查询
+     * @param param 前端传递的查询参数实体
+     * @return {@link IPage}<{@link MiPaySumListVO}>
+     */
+    IPage<MiPaySumListVO> pageList(MiPaySumListParam param);
+
+    /**
+     * 状态变更
+     * @param id 主键id
+     * @param status 状态
+     * @return {@link Boolean}
+     */
+    boolean statusUpdate(Long id, Integer status);
 }

+ 47 - 0
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/service/impl/MiPaySumServiceImpl.java

@@ -1,15 +1,23 @@
 package com.zanxiang.game.module.manage.service.impl;
 
 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.game.module.base.pojo.enums.DeleteEnum;
 import com.zanxiang.game.module.base.pojo.enums.StatusEnum;
+import com.zanxiang.game.module.base.util.DateUtils;
+import com.zanxiang.game.module.manage.pojo.params.MiPaySumListParam;
+import com.zanxiang.game.module.manage.pojo.vo.MiPaySumListVO;
 import com.zanxiang.game.module.manage.service.IMiPaySumService;
 import com.zanxiang.game.module.mybatis.entity.MiPaySum;
 import com.zanxiang.game.module.mybatis.mapper.MiPaySumMapper;
+import com.zanxiang.module.util.bean.BeanUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 
 /**
@@ -41,4 +49,43 @@ public class MiPaySumServiceImpl extends ServiceImpl<MiPaySumMapper, MiPaySum> i
                 .updateTime(LocalDateTime.now())
                 .build());
     }
+
+    @Override
+    public IPage<MiPaySumListVO> pageList(MiPaySumListParam param) {
+        //返回查询结果
+        return page(param.toPage(), new LambdaQueryWrapper<MiPaySum>()
+                .eq(param.getGameId() != null, MiPaySum::getGameId, param.getGameId())
+                .eq(param.getStatus() != null, MiPaySum::getStatus, param.getStatus())
+                .orderByDesc(MiPaySum::getCreateTime)
+        ).convert(miPaySum -> this.toVo(miPaySum));
+    }
+
+    private MiPaySumListVO toVo(MiPaySum miPaySum){
+        MiPaySumListVO miPaySumListVO = BeanUtil.copy(miPaySum, MiPaySumListVO.class);
+        //判断日更新日期是否为今天
+        if (!DateUtils.isToday(miPaySum.getDayUpdateDate())){
+            //日已用额度归零
+            miPaySumListVO.setDayPayAmount(BigDecimal.ZERO);
+        }
+        //判断周更新日期是否为本周
+        if (!DateUtils.isThisWeek(miPaySum.getMouthUpdateDate())){
+            //周已用额度归零
+            miPaySumListVO.setWeakerPayAmount(BigDecimal.ZERO);
+        }
+        //判断月更新日期是否为本月
+        if (!DateUtils.isThisMonth(miPaySum.getMouthUpdateDate())){
+            //月已用额度归零
+            miPaySumListVO.setMouthPayAmount(BigDecimal.ZERO);
+        }
+        return  miPaySumListVO;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean statusUpdate(Long id, Integer status) {
+        return super.update(new LambdaUpdateWrapper<MiPaySum>()
+                .set(MiPaySum::getStatus,status)
+                .set(MiPaySum::getUpdateTime, LocalDateTime.now())
+                .eq(MiPaySum::getId, id));
+    }
 }