diff --git a/features/2026-02-08_20-03-29-controller-map-lambda-refactor.csv b/features/2026-02-08_20-03-29-controller-map-lambda-refactor.csv index c758912..07fe3df 100644 --- a/features/2026-02-08_20-03-29-controller-map-lambda-refactor.csv +++ b/features/2026-02-08_20-03-29-controller-map-lambda-refactor.csv @@ -1,6 +1,6 @@ "id","priority","phase","area","title","description","acceptance_criteria","test_mcp","review_initial_requirements","review_regression_requirements","dev_state","review_initial_state","review_regression_state","git_state","owner","refs","notes" "CMLR-000","P0","1","backend","建立改造基线清单","冻结当前 18 个 Map 入参接口、关键返回类型与调用链,作为后续等价回归基线。","形成一份可追溯清单并覆盖 User/Pk/Anchors/SystemMessage/Chat 五个 Controller;抽样 5 条接口请求-响应对照样本可复现。","AUTOSERVER","核对接口 URL、HTTP 方法、请求字段名、返回类型不变;清单需可与代码位置一一跳转。","回归时逐项对照基线,任何字段级偏差需记录并阻断合并。","已完成","已完成","已完成","已提交","","plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:18;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:30;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:97;src/main/java/vvpkassistant/controller/UserController.java:65;src/main/java/vvpkassistant/controller/PkController.java:64;src/main/java/vvpkassistant/controller/AnchorsController.java:31;src/main/java/vvpkassistant/controller/SystemMessageController.java:25;src/main/java/vvpkassistant/controller/ChatController.java:37;plan/2026-02-08_20-03-29-controller-map-baseline.md:1;plan/2026-02-08_20-03-29-controller-map-baseline.md:32","picked_reason:作为P0基线先冻结18个Map入参接口与调用链,降低后续等价替换回归风险。 | review_initial:已核对18个接口URL/HTTP方法/Map字段名/返回类型与代码一致。 | evidence:新增基线文档并抽样5条可复现请求响应样本。 | evidence:rg核验Map入参接口数量=18。 | done_at:2026-02-08" -"CMLR-010","P0","2.1","backend","补齐 User/Pk 侧 DTO 模型","为 UserController 与 PkController 的 Map 入参接口新增显式 DTO,保持 JSON key 与可空语义不变。","新增 DTO 覆盖 User 8 个接口与 Pk 6 个接口;Controller 编译通过且不再直接读取 Map key。","AUTOSERVER","字段命名与旧 Map key 完全一致;可选字段保持可空并保留默认行为。","针对每个 Controller 至少执行 1 条成功与 1 条异常参数用例,确认返回结构无变化。","未开始","未开始","未开始","未提交","","plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:19;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:135;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:188;src/main/java/vvpkassistant/controller/UserController.java:64;src/main/java/vvpkassistant/controller/PkController.java:63","" +"CMLR-010","P0","2.1","backend","补齐 User/Pk 侧 DTO 模型","为 UserController 与 PkController 的 Map 入参接口新增显式 DTO,保持 JSON key 与可空语义不变。","新增 DTO 覆盖 User 8 个接口与 Pk 6 个接口;Controller 编译通过且不再直接读取 Map key。","AUTOSERVER","字段命名与旧 Map key 完全一致;可选字段保持可空并保留默认行为。","针对每个 Controller 至少执行 1 条成功与 1 条异常参数用例,确认返回结构无变化。","已完成","已完成","已完成","已提交","","plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:19;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:135;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:188;src/main/java/vvpkassistant/controller/UserController.java:64;src/main/java/vvpkassistant/controller/PkController.java:63;src/main/java/vvpkassistant/controller/UserController.java:73;src/main/java/vvpkassistant/controller/PkController.java:70;src/main/java/vvpkassistant/pk/service/PKService.java:22;src/main/java/vvpkassistant/pk/service/PKServiceImpl.java:152;src/main/java/vvpkassistant/User/model/DTO/UserInputUserInfoDTO.java:1;src/main/java/vvpkassistant/pk/model/DTO/PkListRequestDTO.java:1","picked_reason:P0且直接影响14个Map入参接口,先完成可尽早收敛控制器签名改造风险。 | review_initial:User8+Pk6接口均改为DTO读取,字段名保持与历史Map key一致。 | validation_limited:mvn -q -DskipTests package 在当前仓库基线失败(大量与本改动无关的Lombok getter/log符号缺失)。 | manual_test:修复仓库编译基线后执行 mvn -q -DskipTests package;并分别调用 /user/loginWithPhoneNumber 与 /pk/deletePkDataWithId 的成功/异常参数用例比对返回结构。 | evidence:新增14个DTO并完成UserController/PkController RequestBody Map->DTO替换。 | evidence:rg核验 UserController/PkController 中 @RequestBody Map 匹配为0。 | risk:medium 未完成可执行编译与接口回归,存在运行期兼容性待验证。 | done_at:2026-02-08" "CMLR-020","P1","2.2","backend","补齐 Anchors/SystemMessage/Chat DTO","为 AnchorsController、SystemMessageController、ChatController 的 Map 入参接口新增 DTO,保留宽松兼容策略。","新增 DTO 覆盖 4 个接口(anchor/list, anchor/deleteMyAnchor, systemMessage/list, chat/receiveImMessage);Chat 回调可接受未知字段。","AUTOSERVER","Chat DTO 需支持扩展字段(如保留 payload 承载);分页字段类型与旧行为一致。","回归验证空字段、未知字段、缺字段场景,保证错误路径与历史一致。","未开始","未开始","未开始","未提交","","plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:53;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:227;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:254;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:280;src/main/java/vvpkassistant/controller/AnchorsController.java:30;src/main/java/vvpkassistant/controller/SystemMessageController.java:24;src/main/java/vvpkassistant/controller/ChatController.java:36","" "CMLR-030","P0","3","backend","控制器签名 Map->DTO 等价替换","仅替换 Controller 方法参数类型与取值逻辑,保持 URL、HTTP 方法、返回 VO/Map 结构不变。","18 个 Map 入参接口全部改为 DTO;全局路由无新增/删除;接口返回类型与 JSON 字段集合与基线一致。","AUTOSERVER","代码评审重点检查序列化字段、空值分支、异常处理路径是否与旧实现等价。","回归执行关键接口快照比对(字段名、字段数量、状态码),差异需附原因。","未开始","未开始","未开始","未提交","","plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:20;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:136;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:365","" "CMLR-040","P0","4.1","backend","迁移 User 域注解 SQL 到 Lambda","将 User 相关 Mapper 注解 SQL 迁移到 MyBatis-Plus LambdaQuery/LambdaUpdate,并保证签到与手机号查询语义不变。","UserDao 中目标注解方法完成迁移或迁出;`queryWithPhoneNumber`、签到相关查询写入等价实现并通过测试。","AUTOSERVER","确认真实表名与实体映射一致(system_user/system_users 差异);签到日期逻辑统一时区。","执行用户登录、签到首签/重复签到、我的 PK 列表查询回归并对比旧行为。","未开始","未开始","未开始","未提交","","plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:124;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:140;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:144;src/main/java/vvpkassistant/User/mapper/UserDao.java:16","" diff --git a/src/main/java/vvpkassistant/User/model/DTO/UserCancelPinDTO.java b/src/main/java/vvpkassistant/User/model/DTO/UserCancelPinDTO.java new file mode 100644 index 0000000..c086640 --- /dev/null +++ b/src/main/java/vvpkassistant/User/model/DTO/UserCancelPinDTO.java @@ -0,0 +1,8 @@ +package vvpkassistant.User.model.DTO; + +import lombok.Data; + +@Data +public class UserCancelPinDTO { + private Integer articleId; +} diff --git a/src/main/java/vvpkassistant/User/model/DTO/UserHandlePkInfoDTO.java b/src/main/java/vvpkassistant/User/model/DTO/UserHandlePkInfoDTO.java new file mode 100644 index 0000000..8a96327 --- /dev/null +++ b/src/main/java/vvpkassistant/User/model/DTO/UserHandlePkInfoDTO.java @@ -0,0 +1,11 @@ +package vvpkassistant.User.model.DTO; + +import lombok.Data; + +@Data +public class UserHandlePkInfoDTO { + private Integer type; + private Integer userId; + private Integer page; + private Integer size; +} diff --git a/src/main/java/vvpkassistant/User/model/DTO/UserInputUserInfoDTO.java b/src/main/java/vvpkassistant/User/model/DTO/UserInputUserInfoDTO.java new file mode 100644 index 0000000..c9d3433 --- /dev/null +++ b/src/main/java/vvpkassistant/User/model/DTO/UserInputUserInfoDTO.java @@ -0,0 +1,9 @@ +package vvpkassistant.User.model.DTO; + +import lombok.Data; + +@Data +public class UserInputUserInfoDTO { + private String code; + private Integer id; +} diff --git a/src/main/java/vvpkassistant/User/model/DTO/UserLoginWithPhoneNumberDTO.java b/src/main/java/vvpkassistant/User/model/DTO/UserLoginWithPhoneNumberDTO.java new file mode 100644 index 0000000..0834fbc --- /dev/null +++ b/src/main/java/vvpkassistant/User/model/DTO/UserLoginWithPhoneNumberDTO.java @@ -0,0 +1,9 @@ +package vvpkassistant.User.model.DTO; + +import lombok.Data; + +@Data +public class UserLoginWithPhoneNumberDTO { + private String code; + private Integer inviterId; +} diff --git a/src/main/java/vvpkassistant/User/model/DTO/UserPinToTopDTO.java b/src/main/java/vvpkassistant/User/model/DTO/UserPinToTopDTO.java new file mode 100644 index 0000000..ebbc2ee --- /dev/null +++ b/src/main/java/vvpkassistant/User/model/DTO/UserPinToTopDTO.java @@ -0,0 +1,9 @@ +package vvpkassistant.User.model.DTO; + +import lombok.Data; + +@Data +public class UserPinToTopDTO { + private Integer articleId; + private Integer pinExpireTime; +} diff --git a/src/main/java/vvpkassistant/User/model/DTO/UserPkRecordDetailDTO.java b/src/main/java/vvpkassistant/User/model/DTO/UserPkRecordDetailDTO.java new file mode 100644 index 0000000..6589225 --- /dev/null +++ b/src/main/java/vvpkassistant/User/model/DTO/UserPkRecordDetailDTO.java @@ -0,0 +1,8 @@ +package vvpkassistant.User.model.DTO; + +import lombok.Data; + +@Data +public class UserPkRecordDetailDTO { + private Integer id; +} diff --git a/src/main/java/vvpkassistant/User/model/DTO/UserPointsDetailDTO.java b/src/main/java/vvpkassistant/User/model/DTO/UserPointsDetailDTO.java new file mode 100644 index 0000000..4d30ce8 --- /dev/null +++ b/src/main/java/vvpkassistant/User/model/DTO/UserPointsDetailDTO.java @@ -0,0 +1,10 @@ +package vvpkassistant.User.model.DTO; + +import lombok.Data; + +@Data +public class UserPointsDetailDTO { + private Integer userId; + private Integer page; + private Integer size; +} diff --git a/src/main/java/vvpkassistant/User/model/DTO/UserQueryMyAllPkDataDTO.java b/src/main/java/vvpkassistant/User/model/DTO/UserQueryMyAllPkDataDTO.java new file mode 100644 index 0000000..73c1d33 --- /dev/null +++ b/src/main/java/vvpkassistant/User/model/DTO/UserQueryMyAllPkDataDTO.java @@ -0,0 +1,10 @@ +package vvpkassistant.User.model.DTO; + +import lombok.Data; + +@Data +public class UserQueryMyAllPkDataDTO { + private Integer userId; + private Integer page; + private Integer size; +} diff --git a/src/main/java/vvpkassistant/controller/PkController.java b/src/main/java/vvpkassistant/controller/PkController.java index 0a512dd..fe302de 100644 --- a/src/main/java/vvpkassistant/controller/PkController.java +++ b/src/main/java/vvpkassistant/controller/PkController.java @@ -9,6 +9,12 @@ import vvpkassistant.User.mapper.UserDao; import vvpkassistant.pk.mapper.PkInfoDao; import vvpkassistant.pk.mapper.PkRecordDao; import vvpkassistant.pk.mapper.PkRecordDetailDao; +import vvpkassistant.pk.model.DTO.PkDeleteByIdDTO; +import vvpkassistant.pk.model.DTO.PkFetchDetailDTO; +import vvpkassistant.pk.model.DTO.PkInfoDetailDTO; +import vvpkassistant.pk.model.DTO.PkListRequestDTO; +import vvpkassistant.pk.model.DTO.PkListUninvitedDTO; +import vvpkassistant.pk.model.DTO.PkQueryMyCanUseDTO; import vvpkassistant.pk.model.PkInfoModel; import vvpkassistant.pk.model.PkRecord; import vvpkassistant.pk.model.PkRecordDetail; @@ -61,29 +67,29 @@ public class PkController { // pk列表 @PostMapping("pkList") - public ResponseData pkList(@RequestBody Map map) { - return ResponseData.success(pkService.getPKList(map)); + public ResponseData pkList(@RequestBody PkListRequestDTO request) { + return ResponseData.success(pkService.getPKList(request)); } // 查询用户发布的大于当前时间的pk数据 @PostMapping("queryMyCanUsePkData") - public ResponseData queryMyCanUsePkData(@RequestBody Map map) { + public ResponseData queryMyCanUsePkData(@RequestBody PkQueryMyCanUseDTO request) { Long time = VVTools.currentTimeStamp(); - Integer userId = (Integer) map.get("userId"); + Integer userId = request.getUserId(); List pkModels = pkDao.queryCanUseData(userId, time); return ResponseData.success(pkModels); } //pk文章详情 @PostMapping("pkInfoDetail") - public ResponseData pkInfoDetail(@RequestBody Map map) { - return ResponseData.success(pkService.pkInfoDetail(map)); + public ResponseData pkInfoDetail(@RequestBody PkInfoDetailDTO request) { + return ResponseData.success(pkService.pkInfoDetail(request)); } //删除自己的pk数据 (单个) @PostMapping("deletePkDataWithId") - public ResponseData deletePkDataWithId(@RequestBody Map map) { - Integer id = map.get("id"); + public ResponseData deletePkDataWithId(@RequestBody PkDeleteByIdDTO request) { + Integer id = request.getId(); PkInfoModel pkInfoModel = pkDao.selectById(id); if (pkInfoModel.getPinExpireTime() > VVTools.currentTimeStamp()) { @@ -110,16 +116,16 @@ public class PkController { // 查询pk中每个场次的详细数据 @PostMapping("fetchDetailPkDataWithId") - public ResponseData fetchDetailPkDataWithId(@RequestBody Map map) { - Integer id = map.get("id"); + public ResponseData fetchDetailPkDataWithId(@RequestBody PkFetchDetailDTO request) { + Integer id = request.getId(); List pkRecordDetails = recordDao.fetchDetailPkDataWithId(id); return ResponseData.success(pkRecordDetails); } // 根据用户id查询该用户已发布的未被邀请的主播列表 @PostMapping("listUninvitedPublishedAnchorsByUserId") - public ResponseData listUninvitedPublishedAnchorsByUserId(@RequestBody Map map) { - Integer userId = map.get("userId"); + public ResponseData listUninvitedPublishedAnchorsByUserId(@RequestBody PkListUninvitedDTO request) { + Integer userId = request.getUserId(); List pkInfoModels = pkDao.listUninvitedPublishedAnchorsByUserId(userId); for (PkInfoModel pkInfoModel : pkInfoModels) { pkInfoModel.setDisPlayId(VVTools.replaceChar(pkInfoModel.getAnchorId(),'*')); diff --git a/src/main/java/vvpkassistant/controller/UserController.java b/src/main/java/vvpkassistant/controller/UserController.java index ab1552e..6c23f55 100644 --- a/src/main/java/vvpkassistant/controller/UserController.java +++ b/src/main/java/vvpkassistant/controller/UserController.java @@ -10,7 +10,15 @@ import vvpkassistant.Data.ResponseInfo; import vvpkassistant.Data.WxChatParam; import vvpkassistant.User.mapper.UserDao; import vvpkassistant.User.model.DTO.ScanInfoDTO; +import vvpkassistant.User.model.DTO.UserCancelPinDTO; +import vvpkassistant.User.model.DTO.UserHandlePkInfoDTO; +import vvpkassistant.User.model.DTO.UserInputUserInfoDTO; +import vvpkassistant.User.model.DTO.UserLoginWithPhoneNumberDTO; import vvpkassistant.User.model.DTO.UserModelDTO; +import vvpkassistant.User.model.DTO.UserPinToTopDTO; +import vvpkassistant.User.model.DTO.UserPkRecordDetailDTO; +import vvpkassistant.User.model.DTO.UserPointsDetailDTO; +import vvpkassistant.User.model.DTO.UserQueryMyAllPkDataDTO; import vvpkassistant.User.model.UserModel; import vvpkassistant.User.model.UserModelVO; import vvpkassistant.User.service.UserService; @@ -62,18 +70,18 @@ public class UserController { // 配置用户信息 @PostMapping("inputUserInfo") - public ResponseData inputUserInfo(@RequestBody Map param) { + public ResponseData inputUserInfo(@RequestBody UserInputUserInfoDTO param) { - if (!param.containsKey("code")) { + if (param == null || param.getCode() == null) { throw new BusinessException(ErrorCode.PARAMS_ERROR,"code不能为空"); } - if (!param.containsKey("id")) { + if (param.getId() == null) { throw new BusinessException(ErrorCode.PARAMS_ERROR,"id不能为空"); } //获取前端传递过来的code - String code = param.get("code").toString(); + String code = param.getCode(); // 调用微信获取openid接口 Map wx_result = vvRequester.loginApp(code); @@ -105,11 +113,10 @@ public class UserController { //查询用户 String openId = wx_result.get("openid").toString(); - String sessionKey = wx_result.get("session_key").toString(); // 创建一个临时model UserModel tempModel = new UserModel(); - tempModel.setId(Integer.valueOf(param.get("id").toString())); + tempModel.setId(param.getId()); tempModel.setUserChatId(openId); int i = userDao.updateById(tempModel); if (i == 1) { @@ -133,13 +140,13 @@ public class UserController { // 手机号登录 / 注册 @PostMapping("loginWithPhoneNumber") - public ResponseData loginWithPhoneNumber(@RequestBody Map param) { + public ResponseData loginWithPhoneNumber(@RequestBody UserLoginWithPhoneNumberDTO param) { - if (!param.containsKey("code")) { + if (param == null || param.getCode() == null) { throw new BusinessException(ErrorCode.PARAMS_ERROR,"code不能为空"); } - String code = param.get("code").toString(); + String code = param.getCode(); String phoneNumber = vvRequester.queryPhoneNumber(code); if (phoneNumber.isEmpty()) { throw new BusinessException(ErrorCode.PARAMS_ERROR,"手机号码无法查询"); @@ -165,8 +172,8 @@ public class UserController { userDao.insert(tempModel); // 判断用户是否为邀请用户 - if (param.containsKey("inviterId")) { - int inviterId = (int) param.get("inviterId"); + if (param.getInviterId() != null) { + int inviterId = param.getInviterId(); // 查询用户增加积分 UserModel oldUser = userDao.selectById(inviterId); oldUser.setPoints(oldUser.getPoints() + 10); @@ -211,10 +218,10 @@ public class UserController { // 查询用户所有pk数据 @PostMapping("queryMyAllPkData") - public ResponseData queryMyAllPkData(@RequestBody Map map) { - Integer userId = map.get("userId"); - Integer page = map.get("page"); - Integer size = map.get("size"); + public ResponseData queryMyAllPkData(@RequestBody UserQueryMyAllPkDataDTO request) { + Integer userId = request.getUserId(); + Integer page = request.getPage(); + Integer size = request.getSize(); List pkInfoModels = pkInfoDao.queryAllPkData(userId, page * size, size); long currentTimeStamp = VVTools.currentTimeStamp(); // 查找置顶的数据 @@ -226,11 +233,11 @@ public class UserController { // 查询我的pk记录 列表 @PostMapping("handlePkInfo") - public ResponseData handlePkInfo(@RequestBody Map map) { - Integer type = map.get("type"); - Integer id = map.get("userId"); - Integer page = map.get("page"); - Integer size = map.get("size"); + public ResponseData handlePkInfo(@RequestBody UserHandlePkInfoDTO request) { + Integer type = request.getType(); + Integer id = request.getUserId(); + Integer page = request.getPage(); + Integer size = request.getSize(); // 我发起的pk数据 if (type == 1) { @@ -245,8 +252,8 @@ public class UserController { // 查詢单条pk记录详情 @PostMapping("pkRecordDetail") - public ResponseData pkRecordDetail(@RequestBody Map map) { - Integer id = map.get("id"); + public ResponseData pkRecordDetail(@RequestBody UserPkRecordDetailDTO request) { + Integer id = request.getId(); List pkRecordDetails = detailDao.queryDetail(id); return ResponseData.success(pkRecordDetails); } @@ -289,13 +296,13 @@ public class UserController { // 置顶文章 @PostMapping("pinToTop") - public ResponseData pinToTop(@RequestBody Map map) { + public ResponseData pinToTop(@RequestBody UserPinToTopDTO request) { // 文章id - Integer articleId = map.get("articleId"); + Integer articleId = request.getArticleId(); PkInfoModel pkInfoModel = pkInfoDao.selectById(articleId); Integer userId = pkInfoModel.getSenderId(); // 到期时间戳 - Integer pinExpireTime = map.get("pinExpireTime"); + Integer pinExpireTime = request.getPinExpireTime(); long currentTimeStamp = VVTools.currentTimeStamp(); long hour = VVTools.calculateHoursRound(pinExpireTime, currentTimeStamp); @@ -335,8 +342,8 @@ public class UserController { // 取消置顶 @PostMapping("cancelPin") - public ResponseData cancelPin(@RequestBody Map map) { - Integer articleId = map.get("articleId"); + public ResponseData cancelPin(@RequestBody UserCancelPinDTO request) { + Integer articleId = request.getArticleId(); PkInfoModel pkInfoModel = pkInfoDao.selectById(articleId); Integer pinExpireTime = pkInfoModel.getPinExpireTime(); long hour = VVTools.calculateHoursFloor(pinExpireTime, VVTools.currentTimeStamp()); @@ -371,10 +378,10 @@ public class UserController { // 获取积分明细 @PostMapping("pointsDetail") - public ResponseData pointsDetail(@RequestBody Map map) { - Integer userId = map.get("userId"); - Integer page = map.get("page"); - Integer size = map.get("size"); + public ResponseData pointsDetail(@RequestBody UserPointsDetailDTO request) { + Integer userId = request.getUserId(); + Integer page = request.getPage(); + Integer size = request.getSize(); List coinRecords = coinRecordsDao.fetchMyPointsData(userId, page * size, size); return ResponseData.success(coinRecords); } diff --git a/src/main/java/vvpkassistant/pk/model/DTO/PkDeleteByIdDTO.java b/src/main/java/vvpkassistant/pk/model/DTO/PkDeleteByIdDTO.java new file mode 100644 index 0000000..a531fca --- /dev/null +++ b/src/main/java/vvpkassistant/pk/model/DTO/PkDeleteByIdDTO.java @@ -0,0 +1,8 @@ +package vvpkassistant.pk.model.DTO; + +import lombok.Data; + +@Data +public class PkDeleteByIdDTO { + private Integer id; +} diff --git a/src/main/java/vvpkassistant/pk/model/DTO/PkFetchDetailDTO.java b/src/main/java/vvpkassistant/pk/model/DTO/PkFetchDetailDTO.java new file mode 100644 index 0000000..cc16fea --- /dev/null +++ b/src/main/java/vvpkassistant/pk/model/DTO/PkFetchDetailDTO.java @@ -0,0 +1,8 @@ +package vvpkassistant.pk.model.DTO; + +import lombok.Data; + +@Data +public class PkFetchDetailDTO { + private Integer id; +} diff --git a/src/main/java/vvpkassistant/pk/model/DTO/PkInfoDetailDTO.java b/src/main/java/vvpkassistant/pk/model/DTO/PkInfoDetailDTO.java new file mode 100644 index 0000000..dc88e92 --- /dev/null +++ b/src/main/java/vvpkassistant/pk/model/DTO/PkInfoDetailDTO.java @@ -0,0 +1,10 @@ +package vvpkassistant.pk.model.DTO; + +import lombok.Data; + +@Data +public class PkInfoDetailDTO { + private Integer id; + private Integer userId; + private Integer from; +} diff --git a/src/main/java/vvpkassistant/pk/model/DTO/PkListRequestDTO.java b/src/main/java/vvpkassistant/pk/model/DTO/PkListRequestDTO.java new file mode 100644 index 0000000..aa116e8 --- /dev/null +++ b/src/main/java/vvpkassistant/pk/model/DTO/PkListRequestDTO.java @@ -0,0 +1,13 @@ +package vvpkassistant.pk.model.DTO; + +import lombok.Data; + +import java.util.Map; + +@Data +public class PkListRequestDTO { + private Integer page; + private Integer size; + private Map condition; + private Integer userId; +} diff --git a/src/main/java/vvpkassistant/pk/model/DTO/PkListUninvitedDTO.java b/src/main/java/vvpkassistant/pk/model/DTO/PkListUninvitedDTO.java new file mode 100644 index 0000000..79aaea1 --- /dev/null +++ b/src/main/java/vvpkassistant/pk/model/DTO/PkListUninvitedDTO.java @@ -0,0 +1,8 @@ +package vvpkassistant.pk.model.DTO; + +import lombok.Data; + +@Data +public class PkListUninvitedDTO { + private Integer userId; +} diff --git a/src/main/java/vvpkassistant/pk/model/DTO/PkQueryMyCanUseDTO.java b/src/main/java/vvpkassistant/pk/model/DTO/PkQueryMyCanUseDTO.java new file mode 100644 index 0000000..837ef29 --- /dev/null +++ b/src/main/java/vvpkassistant/pk/model/DTO/PkQueryMyCanUseDTO.java @@ -0,0 +1,8 @@ +package vvpkassistant.pk.model.DTO; + +import lombok.Data; + +@Data +public class PkQueryMyCanUseDTO { + private Integer userId; +} diff --git a/src/main/java/vvpkassistant/pk/service/PKService.java b/src/main/java/vvpkassistant/pk/service/PKService.java index 0066f77..ce37367 100644 --- a/src/main/java/vvpkassistant/pk/service/PKService.java +++ b/src/main/java/vvpkassistant/pk/service/PKService.java @@ -1,11 +1,12 @@ package vvpkassistant.pk.service; import com.baomidou.mybatisplus.extension.service.IService; +import vvpkassistant.pk.model.DTO.PkInfoDetailDTO; +import vvpkassistant.pk.model.DTO.PkListRequestDTO; import vvpkassistant.pk.model.PkInfoModel; import vvpkassistant.pk.model.PkRecord; import java.util.List; -import java.util.Map; /* * @author: ziin @@ -18,7 +19,7 @@ public interface PKService extends IService { PkRecord createPKRecord(PkRecord record); - List getPKList(Map map); + List getPKList(PkListRequestDTO request); - PkInfoModel pkInfoDetail(Map map); + PkInfoModel pkInfoDetail(PkInfoDetailDTO request); } diff --git a/src/main/java/vvpkassistant/pk/service/PKServiceImpl.java b/src/main/java/vvpkassistant/pk/service/PKServiceImpl.java index 83b2674..55f94ec 100644 --- a/src/main/java/vvpkassistant/pk/service/PKServiceImpl.java +++ b/src/main/java/vvpkassistant/pk/service/PKServiceImpl.java @@ -14,6 +14,8 @@ import vvpkassistant.config.FunctionConfigHolder; import vvpkassistant.exception.BusinessException; import vvpkassistant.pk.mapper.PkInfoDao; import vvpkassistant.pk.mapper.PkRecordDao; +import vvpkassistant.pk.model.DTO.PkInfoDetailDTO; +import vvpkassistant.pk.model.DTO.PkListRequestDTO; import vvpkassistant.pk.model.PkInfoModel; import vvpkassistant.pk.model.PkRecord; @@ -147,11 +149,11 @@ public class PKServiceImpl extends ServiceImpl implement } @Override - public List getPKList(Map map) { + public List getPKList(PkListRequestDTO request) { - Integer page = (Integer) map.get("page"); - Integer size = (Integer) map.get("size"); - Map condition = (Map) map.get("condition"); + Integer page = request.getPage(); + Integer size = request.getSize(); + Map condition = request.getCondition(); Map todayTimeStampMap = VVTools.startAndEndTimeStampForToday(); Long start = VVTools.currentTimeStamp(); @@ -162,9 +164,9 @@ public class PKServiceImpl extends ServiceImpl implement long currentTimeStamp = VVTools.currentTimeStamp(); //如果传了用户id - if (map.containsKey("userId")) { + if (request.getUserId() != null) { Long begin = VVTools.currentTimeStamp(); - Integer userId = Integer.valueOf(map.get("userId").toString()); + Integer userId = request.getUserId(); // 查询出当前用户大于等于今天的已接受邀请的pk数据 List pkRecords = pkRecordDao.fetchDataFromTodayWithUserId(userId, begin); // 遍历查询出的数据。如果文章的id相同。就显示完整的主播名称, @@ -202,10 +204,10 @@ public class PKServiceImpl extends ServiceImpl implement } @Override - public PkInfoModel pkInfoDetail(Map map) { - Integer id = map.get("id"); - Integer userId = map.get("userId"); - Integer from = map.get("from"); // 1 首页 2 聊天 + public PkInfoModel pkInfoDetail(PkInfoDetailDTO request) { + Integer id = request.getId(); + Integer userId = request.getUserId(); + Integer from = request.getFrom(); // 1 首页 2 聊天 PkInfoModel pkInfoModel = pkInfoDao.selectById(id); if (pkInfoModel == null) {