Просмотр исходного кода

feat(business): 更新道具使用记录功能

- 修改 API 路径从 /system/itemsLog 到 /business/itemsLog
- 更新权限控制相关的角色前缀从 system: 到 business:
- 在查询列表时添加道具名称字段
-优化查询排序方式,按照创建时间降序排列
- 重构查询方法,使用自定义 SQL 语句提高查询效率
fugui001 4 месяцев назад
Родитель
Сommit
f334cd70d4

+ 1 - 1
ruoyi-admin/src/main/resources/application-prod.yml

@@ -115,7 +115,7 @@ spring.data:
     # 数据库索引
     database: 0
     # redis 密码必须配置
-    password: 123456
+    password: MnKpQr
     # 连接超时时间
     timeout: 10s
     # 是否开启ssl

+ 7 - 7
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/business/controller/PlayersItemsLogController.java

@@ -31,7 +31,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
 @Validated
 @RequiredArgsConstructor
 @RestController
-@RequestMapping("/system/itemsLog")
+@RequestMapping("/business/itemsLog")
 public class PlayersItemsLogController extends BaseController {
 
     private final IPlayersItemsLogService playersItemsLogService;
@@ -39,7 +39,7 @@ public class PlayersItemsLogController extends BaseController {
     /**
      * 查询道具使用记录列表
      */
-    @SaCheckPermission("system:itemsLog:list")
+    @SaCheckPermission("business:itemsLog:list")
     @GetMapping("/list")
     public TableDataInfo<PlayersItemsLogVo> list(PlayersItemsLogBo bo, PageQuery pageQuery) {
         return playersItemsLogService.queryPageList(bo, pageQuery);
@@ -48,7 +48,7 @@ public class PlayersItemsLogController extends BaseController {
     /**
      * 导出道具使用记录列表
      */
-    @SaCheckPermission("system:itemsLog:export")
+    @SaCheckPermission("business:itemsLog:export")
     @Log(title = "道具使用记录", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
     public void export(PlayersItemsLogBo bo, HttpServletResponse response) {
@@ -61,7 +61,7 @@ public class PlayersItemsLogController extends BaseController {
      *
      * @param id 主键
      */
-    @SaCheckPermission("system:itemsLog:query")
+    @SaCheckPermission("business:itemsLog:query")
     @GetMapping("/{id}")
     public R<PlayersItemsLogVo> getInfo(@NotNull(message = "主键不能为空")
                                      @PathVariable Long id) {
@@ -71,7 +71,7 @@ public class PlayersItemsLogController extends BaseController {
     /**
      * 新增道具使用记录
      */
-    @SaCheckPermission("system:itemsLog:add")
+    @SaCheckPermission("business:itemsLog:add")
     @Log(title = "道具使用记录", businessType = BusinessType.INSERT)
     @RepeatSubmit()
     @PostMapping()
@@ -82,7 +82,7 @@ public class PlayersItemsLogController extends BaseController {
     /**
      * 修改道具使用记录
      */
-    @SaCheckPermission("system:itemsLog:edit")
+    @SaCheckPermission("business:itemsLog:edit")
     @Log(title = "道具使用记录", businessType = BusinessType.UPDATE)
     @RepeatSubmit()
     @PutMapping()
@@ -95,7 +95,7 @@ public class PlayersItemsLogController extends BaseController {
      *
      * @param ids 主键串
      */
-    @SaCheckPermission("system:itemsLog:remove")
+    @SaCheckPermission("business:itemsLog:remove")
     @Log(title = "道具使用记录", businessType = BusinessType.DELETE)
     @DeleteMapping("/{ids}")
     public R<Void> remove(@NotEmpty(message = "主键不能为空")

+ 14 - 7
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/business/domain/vo/PlayersItemsLogVo.java

@@ -9,9 +9,6 @@ import org.dromara.business.domain.PlayersItemsLog;
 import java.io.Serial;
 import java.io.Serializable;
 
-
-
-
 /**
  * 道具使用记录视图对象 players_items_log
  *
@@ -36,19 +33,25 @@ public class PlayersItemsLogVo implements Serializable {
      * 道具ID
      */
     @ExcelProperty(value = "道具ID")
-    private Long itermsId;
+    private Long itemId;
 
     /**
-     * 现在的数量
+     * 当前操作的数量
      */
-    @ExcelProperty(value = "现在的数量")
+    @ExcelProperty(value = "当前操作的数量")
     private Long scoreNum;
 
+    /**
+     * 之后的数量
+     */
+    @ExcelProperty(value = "之后的数量")
+    private Long afterNum;
+
     /**
      * 原来的数量
      */
     @ExcelProperty(value = "原来的数量")
-    private Long afterNum;
+    private Long beforeNum;
 
     /**
      * 创建时间
@@ -86,5 +89,9 @@ public class PlayersItemsLogVo implements Serializable {
     @ExcelProperty(value = "道具获取类型   充值/奖励/报名/比赛")
     private String itermsType;
 
+    /**
+     * 道具名称
+     */
+    private String itemName;
 
 }

+ 5 - 2
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/business/mapper/PlayersItemsLogMapper.java

@@ -2,8 +2,10 @@ package org.dromara.business.mapper;
 
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.apache.ibatis.annotations.Param;
-import org.dromara.business.domain.PlayerItems;
+import org.dromara.business.domain.Items;
 import org.dromara.business.domain.PlayersItemsLog;
 import org.dromara.business.domain.vo.PlayersItemsLogVo;
 import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
@@ -25,7 +27,8 @@ public interface PlayersItemsLogMapper extends BaseMapperPlus<PlayersItemsLog, P
     @InterceptorIgnore(tenantLine = "true")
     int batchInsertPlayerItemLog(@Param("list") List<PlayersItemsLog> items);
 
-
+    @InterceptorIgnore(tenantLine = "true")
+    Page<PlayersItemsLogVo> selectPlayerItemsLogInfoList(@Param("page") Page<Items> page, @Param("ew") Wrapper<PlayersItemsLog> wrapper);
 
 
 }

+ 11 - 2
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/business/service/impl/PlayersItemsLogServiceImpl.java

@@ -2,7 +2,9 @@ package org.dromara.business.service.impl;
 
 import org.dromara.business.domain.PlayersItemsLog;
 import org.dromara.business.domain.bo.PlayersItemsLogBo;
+import org.dromara.business.domain.vo.ItemsVo;
 import org.dromara.business.domain.vo.PlayersItemsLogVo;
+import org.dromara.business.mapper.ItemsMapper;
 import org.dromara.business.mapper.PlayersItemsLogMapper;
 import org.dromara.business.service.IPlayersItemsLogService;
 import org.dromara.common.core.utils.MapstructUtils;
@@ -32,6 +34,8 @@ public class PlayersItemsLogServiceImpl implements IPlayersItemsLogService {
 
     private final PlayersItemsLogMapper baseMapper;
 
+    private final ItemsMapper itemsMapper;
+
     /**
      * 查询道具使用记录
      *
@@ -53,7 +57,12 @@ public class PlayersItemsLogServiceImpl implements IPlayersItemsLogService {
     @Override
     public TableDataInfo<PlayersItemsLogVo> queryPageList(PlayersItemsLogBo bo, PageQuery pageQuery) {
         LambdaQueryWrapper<PlayersItemsLog> lqw = buildQueryWrapper(bo);
-        Page<PlayersItemsLogVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        Page<PlayersItemsLogVo> result = baseMapper.selectPlayerItemsLogInfoList(pageQuery.build(), lqw);
+        List<PlayersItemsLogVo> resultRecords = result.getRecords();
+        for (PlayersItemsLogVo resultRecord : resultRecords) {
+            ItemsVo itemsVo = itemsMapper.selectVoByIdInfo(resultRecord.getItemId());
+            resultRecord.setItemName(itemsVo.getName());
+        }
         return TableDataInfo.build(result);
     }
 
@@ -72,7 +81,7 @@ public class PlayersItemsLogServiceImpl implements IPlayersItemsLogService {
     private LambdaQueryWrapper<PlayersItemsLog> buildQueryWrapper(PlayersItemsLogBo bo) {
         Map<String, Object> params = bo.getParams();
         LambdaQueryWrapper<PlayersItemsLog> lqw = Wrappers.lambdaQuery();
-        lqw.orderByAsc(PlayersItemsLog::getId);
+        lqw.orderByDesc(PlayersItemsLog::getCreatedAt);
         lqw.eq(bo.getItermsId() != null, PlayersItemsLog::getItemId, bo.getItermsId());
         lqw.eq(bo.getScoreNum() != null, PlayersItemsLog::getScoreNum, bo.getScoreNum());
         lqw.eq(bo.getAfterNum() != null, PlayersItemsLog::getAfterNum, bo.getAfterNum());

+ 20 - 0
ruoyi-modules/ruoyi-system/src/main/resources/mapper/business/PlayersItemsLogMapper.xml

@@ -71,4 +71,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </insert>
 
 
+    <select id="selectPlayerItemsLogInfoList" resultType="org.dromara.business.domain.vo.PlayersItemsLogVo">
+        SELECT
+            id,
+            item_id,
+            score_num,
+            after_num,
+            created_at,
+            updated_at,
+            user_id,
+            type,
+            remark,
+            item_type,
+            before_num,
+            item_type_text
+        FROM
+            players_items_log  ${ew.customSqlSegment}
+    </select>
+
+
+
 </mapper>