[CMLR-010] 补齐 User/Pk 侧 DTO 模型
This commit is contained in:
@@ -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"
|
"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-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-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-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",""
|
"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",""
|
||||||
|
|||||||
|
@@ -0,0 +1,8 @@
|
|||||||
|
package vvpkassistant.User.model.DTO;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class UserCancelPinDTO {
|
||||||
|
private Integer articleId;
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package vvpkassistant.User.model.DTO;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class UserInputUserInfoDTO {
|
||||||
|
private String code;
|
||||||
|
private Integer id;
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package vvpkassistant.User.model.DTO;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class UserLoginWithPhoneNumberDTO {
|
||||||
|
private String code;
|
||||||
|
private Integer inviterId;
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package vvpkassistant.User.model.DTO;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class UserPinToTopDTO {
|
||||||
|
private Integer articleId;
|
||||||
|
private Integer pinExpireTime;
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
package vvpkassistant.User.model.DTO;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class UserPkRecordDetailDTO {
|
||||||
|
private Integer id;
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
@@ -9,6 +9,12 @@ import vvpkassistant.User.mapper.UserDao;
|
|||||||
import vvpkassistant.pk.mapper.PkInfoDao;
|
import vvpkassistant.pk.mapper.PkInfoDao;
|
||||||
import vvpkassistant.pk.mapper.PkRecordDao;
|
import vvpkassistant.pk.mapper.PkRecordDao;
|
||||||
import vvpkassistant.pk.mapper.PkRecordDetailDao;
|
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.PkInfoModel;
|
||||||
import vvpkassistant.pk.model.PkRecord;
|
import vvpkassistant.pk.model.PkRecord;
|
||||||
import vvpkassistant.pk.model.PkRecordDetail;
|
import vvpkassistant.pk.model.PkRecordDetail;
|
||||||
@@ -61,29 +67,29 @@ public class PkController {
|
|||||||
|
|
||||||
// pk列表
|
// pk列表
|
||||||
@PostMapping("pkList")
|
@PostMapping("pkList")
|
||||||
public ResponseData<Object> pkList(@RequestBody Map<String,Object> map) {
|
public ResponseData<Object> pkList(@RequestBody PkListRequestDTO request) {
|
||||||
return ResponseData.success(pkService.getPKList(map));
|
return ResponseData.success(pkService.getPKList(request));
|
||||||
}
|
}
|
||||||
|
|
||||||
// 查询用户发布的大于当前时间的pk数据
|
// 查询用户发布的大于当前时间的pk数据
|
||||||
@PostMapping("queryMyCanUsePkData")
|
@PostMapping("queryMyCanUsePkData")
|
||||||
public ResponseData<Object> queryMyCanUsePkData(@RequestBody Map<String,Object> map) {
|
public ResponseData<Object> queryMyCanUsePkData(@RequestBody PkQueryMyCanUseDTO request) {
|
||||||
Long time = VVTools.currentTimeStamp();
|
Long time = VVTools.currentTimeStamp();
|
||||||
Integer userId = (Integer) map.get("userId");
|
Integer userId = request.getUserId();
|
||||||
List<PkInfoModel> pkModels = pkDao.queryCanUseData(userId, time);
|
List<PkInfoModel> pkModels = pkDao.queryCanUseData(userId, time);
|
||||||
return ResponseData.success(pkModels);
|
return ResponseData.success(pkModels);
|
||||||
}
|
}
|
||||||
|
|
||||||
//pk文章详情
|
//pk文章详情
|
||||||
@PostMapping("pkInfoDetail")
|
@PostMapping("pkInfoDetail")
|
||||||
public ResponseData<Object> pkInfoDetail(@RequestBody Map<String, Integer> map) {
|
public ResponseData<Object> pkInfoDetail(@RequestBody PkInfoDetailDTO request) {
|
||||||
return ResponseData.success(pkService.pkInfoDetail(map));
|
return ResponseData.success(pkService.pkInfoDetail(request));
|
||||||
}
|
}
|
||||||
|
|
||||||
//删除自己的pk数据 (单个)
|
//删除自己的pk数据 (单个)
|
||||||
@PostMapping("deletePkDataWithId")
|
@PostMapping("deletePkDataWithId")
|
||||||
public ResponseData<Object> deletePkDataWithId(@RequestBody Map<String,Integer> map) {
|
public ResponseData<Object> deletePkDataWithId(@RequestBody PkDeleteByIdDTO request) {
|
||||||
Integer id = map.get("id");
|
Integer id = request.getId();
|
||||||
PkInfoModel pkInfoModel = pkDao.selectById(id);
|
PkInfoModel pkInfoModel = pkDao.selectById(id);
|
||||||
|
|
||||||
if (pkInfoModel.getPinExpireTime() > VVTools.currentTimeStamp()) {
|
if (pkInfoModel.getPinExpireTime() > VVTools.currentTimeStamp()) {
|
||||||
@@ -110,16 +116,16 @@ public class PkController {
|
|||||||
|
|
||||||
// 查询pk中每个场次的详细数据
|
// 查询pk中每个场次的详细数据
|
||||||
@PostMapping("fetchDetailPkDataWithId")
|
@PostMapping("fetchDetailPkDataWithId")
|
||||||
public ResponseData<Object> fetchDetailPkDataWithId(@RequestBody Map<String,Integer> map) {
|
public ResponseData<Object> fetchDetailPkDataWithId(@RequestBody PkFetchDetailDTO request) {
|
||||||
Integer id = map.get("id");
|
Integer id = request.getId();
|
||||||
List<PkRecordDetail> pkRecordDetails = recordDao.fetchDetailPkDataWithId(id);
|
List<PkRecordDetail> pkRecordDetails = recordDao.fetchDetailPkDataWithId(id);
|
||||||
return ResponseData.success(pkRecordDetails);
|
return ResponseData.success(pkRecordDetails);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 根据用户id查询该用户已发布的未被邀请的主播列表
|
// 根据用户id查询该用户已发布的未被邀请的主播列表
|
||||||
@PostMapping("listUninvitedPublishedAnchorsByUserId")
|
@PostMapping("listUninvitedPublishedAnchorsByUserId")
|
||||||
public ResponseData<Object> listUninvitedPublishedAnchorsByUserId(@RequestBody Map<String,Integer> map) {
|
public ResponseData<Object> listUninvitedPublishedAnchorsByUserId(@RequestBody PkListUninvitedDTO request) {
|
||||||
Integer userId = map.get("userId");
|
Integer userId = request.getUserId();
|
||||||
List<PkInfoModel> pkInfoModels = pkDao.listUninvitedPublishedAnchorsByUserId(userId);
|
List<PkInfoModel> pkInfoModels = pkDao.listUninvitedPublishedAnchorsByUserId(userId);
|
||||||
for (PkInfoModel pkInfoModel : pkInfoModels) {
|
for (PkInfoModel pkInfoModel : pkInfoModels) {
|
||||||
pkInfoModel.setDisPlayId(VVTools.replaceChar(pkInfoModel.getAnchorId(),'*'));
|
pkInfoModel.setDisPlayId(VVTools.replaceChar(pkInfoModel.getAnchorId(),'*'));
|
||||||
|
|||||||
@@ -10,7 +10,15 @@ import vvpkassistant.Data.ResponseInfo;
|
|||||||
import vvpkassistant.Data.WxChatParam;
|
import vvpkassistant.Data.WxChatParam;
|
||||||
import vvpkassistant.User.mapper.UserDao;
|
import vvpkassistant.User.mapper.UserDao;
|
||||||
import vvpkassistant.User.model.DTO.ScanInfoDTO;
|
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.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.UserModel;
|
||||||
import vvpkassistant.User.model.UserModelVO;
|
import vvpkassistant.User.model.UserModelVO;
|
||||||
import vvpkassistant.User.service.UserService;
|
import vvpkassistant.User.service.UserService;
|
||||||
@@ -62,18 +70,18 @@ public class UserController {
|
|||||||
|
|
||||||
// 配置用户信息
|
// 配置用户信息
|
||||||
@PostMapping("inputUserInfo")
|
@PostMapping("inputUserInfo")
|
||||||
public ResponseData<Object> inputUserInfo(@RequestBody Map<String,Object> param) {
|
public ResponseData<Object> inputUserInfo(@RequestBody UserInputUserInfoDTO param) {
|
||||||
|
|
||||||
if (!param.containsKey("code")) {
|
if (param == null || param.getCode() == null) {
|
||||||
throw new BusinessException(ErrorCode.PARAMS_ERROR,"code不能为空");
|
throw new BusinessException(ErrorCode.PARAMS_ERROR,"code不能为空");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!param.containsKey("id")) {
|
if (param.getId() == null) {
|
||||||
throw new BusinessException(ErrorCode.PARAMS_ERROR,"id不能为空");
|
throw new BusinessException(ErrorCode.PARAMS_ERROR,"id不能为空");
|
||||||
}
|
}
|
||||||
|
|
||||||
//获取前端传递过来的code
|
//获取前端传递过来的code
|
||||||
String code = param.get("code").toString();
|
String code = param.getCode();
|
||||||
|
|
||||||
// 调用微信获取openid接口
|
// 调用微信获取openid接口
|
||||||
Map<String, Object> wx_result = vvRequester.loginApp(code);
|
Map<String, Object> wx_result = vvRequester.loginApp(code);
|
||||||
@@ -105,11 +113,10 @@ public class UserController {
|
|||||||
|
|
||||||
//查询用户
|
//查询用户
|
||||||
String openId = wx_result.get("openid").toString();
|
String openId = wx_result.get("openid").toString();
|
||||||
String sessionKey = wx_result.get("session_key").toString();
|
|
||||||
|
|
||||||
// 创建一个临时model
|
// 创建一个临时model
|
||||||
UserModel tempModel = new UserModel();
|
UserModel tempModel = new UserModel();
|
||||||
tempModel.setId(Integer.valueOf(param.get("id").toString()));
|
tempModel.setId(param.getId());
|
||||||
tempModel.setUserChatId(openId);
|
tempModel.setUserChatId(openId);
|
||||||
int i = userDao.updateById(tempModel);
|
int i = userDao.updateById(tempModel);
|
||||||
if (i == 1) {
|
if (i == 1) {
|
||||||
@@ -133,13 +140,13 @@ public class UserController {
|
|||||||
|
|
||||||
// 手机号登录 / 注册
|
// 手机号登录 / 注册
|
||||||
@PostMapping("loginWithPhoneNumber")
|
@PostMapping("loginWithPhoneNumber")
|
||||||
public ResponseData<Object> loginWithPhoneNumber(@RequestBody Map<String,Object> param) {
|
public ResponseData<Object> loginWithPhoneNumber(@RequestBody UserLoginWithPhoneNumberDTO param) {
|
||||||
|
|
||||||
if (!param.containsKey("code")) {
|
if (param == null || param.getCode() == null) {
|
||||||
throw new BusinessException(ErrorCode.PARAMS_ERROR,"code不能为空");
|
throw new BusinessException(ErrorCode.PARAMS_ERROR,"code不能为空");
|
||||||
}
|
}
|
||||||
|
|
||||||
String code = param.get("code").toString();
|
String code = param.getCode();
|
||||||
String phoneNumber = vvRequester.queryPhoneNumber(code);
|
String phoneNumber = vvRequester.queryPhoneNumber(code);
|
||||||
if (phoneNumber.isEmpty()) {
|
if (phoneNumber.isEmpty()) {
|
||||||
throw new BusinessException(ErrorCode.PARAMS_ERROR,"手机号码无法查询");
|
throw new BusinessException(ErrorCode.PARAMS_ERROR,"手机号码无法查询");
|
||||||
@@ -165,8 +172,8 @@ public class UserController {
|
|||||||
userDao.insert(tempModel);
|
userDao.insert(tempModel);
|
||||||
|
|
||||||
// 判断用户是否为邀请用户
|
// 判断用户是否为邀请用户
|
||||||
if (param.containsKey("inviterId")) {
|
if (param.getInviterId() != null) {
|
||||||
int inviterId = (int) param.get("inviterId");
|
int inviterId = param.getInviterId();
|
||||||
// 查询用户增加积分
|
// 查询用户增加积分
|
||||||
UserModel oldUser = userDao.selectById(inviterId);
|
UserModel oldUser = userDao.selectById(inviterId);
|
||||||
oldUser.setPoints(oldUser.getPoints() + 10);
|
oldUser.setPoints(oldUser.getPoints() + 10);
|
||||||
@@ -211,10 +218,10 @@ public class UserController {
|
|||||||
|
|
||||||
// 查询用户所有pk数据
|
// 查询用户所有pk数据
|
||||||
@PostMapping("queryMyAllPkData")
|
@PostMapping("queryMyAllPkData")
|
||||||
public ResponseData<Object> queryMyAllPkData(@RequestBody Map<String,Integer> map) {
|
public ResponseData<Object> queryMyAllPkData(@RequestBody UserQueryMyAllPkDataDTO request) {
|
||||||
Integer userId = map.get("userId");
|
Integer userId = request.getUserId();
|
||||||
Integer page = map.get("page");
|
Integer page = request.getPage();
|
||||||
Integer size = map.get("size");
|
Integer size = request.getSize();
|
||||||
List<PkInfoModel> pkInfoModels = pkInfoDao.queryAllPkData(userId, page * size, size);
|
List<PkInfoModel> pkInfoModels = pkInfoDao.queryAllPkData(userId, page * size, size);
|
||||||
long currentTimeStamp = VVTools.currentTimeStamp();
|
long currentTimeStamp = VVTools.currentTimeStamp();
|
||||||
// 查找置顶的数据
|
// 查找置顶的数据
|
||||||
@@ -226,11 +233,11 @@ public class UserController {
|
|||||||
|
|
||||||
// 查询我的pk记录 列表
|
// 查询我的pk记录 列表
|
||||||
@PostMapping("handlePkInfo")
|
@PostMapping("handlePkInfo")
|
||||||
public ResponseData<Object> handlePkInfo(@RequestBody Map<String,Integer> map) {
|
public ResponseData<Object> handlePkInfo(@RequestBody UserHandlePkInfoDTO request) {
|
||||||
Integer type = map.get("type");
|
Integer type = request.getType();
|
||||||
Integer id = map.get("userId");
|
Integer id = request.getUserId();
|
||||||
Integer page = map.get("page");
|
Integer page = request.getPage();
|
||||||
Integer size = map.get("size");
|
Integer size = request.getSize();
|
||||||
|
|
||||||
// 我发起的pk数据
|
// 我发起的pk数据
|
||||||
if (type == 1) {
|
if (type == 1) {
|
||||||
@@ -245,8 +252,8 @@ public class UserController {
|
|||||||
|
|
||||||
// 查詢单条pk记录详情
|
// 查詢单条pk记录详情
|
||||||
@PostMapping("pkRecordDetail")
|
@PostMapping("pkRecordDetail")
|
||||||
public ResponseData<Object> pkRecordDetail(@RequestBody Map<String,Integer> map) {
|
public ResponseData<Object> pkRecordDetail(@RequestBody UserPkRecordDetailDTO request) {
|
||||||
Integer id = map.get("id");
|
Integer id = request.getId();
|
||||||
List<PkRecordDetail> pkRecordDetails = detailDao.queryDetail(id);
|
List<PkRecordDetail> pkRecordDetails = detailDao.queryDetail(id);
|
||||||
return ResponseData.success(pkRecordDetails);
|
return ResponseData.success(pkRecordDetails);
|
||||||
}
|
}
|
||||||
@@ -289,13 +296,13 @@ public class UserController {
|
|||||||
|
|
||||||
// 置顶文章
|
// 置顶文章
|
||||||
@PostMapping("pinToTop")
|
@PostMapping("pinToTop")
|
||||||
public ResponseData<Object> pinToTop(@RequestBody Map<String,Integer> map) {
|
public ResponseData<Object> pinToTop(@RequestBody UserPinToTopDTO request) {
|
||||||
// 文章id
|
// 文章id
|
||||||
Integer articleId = map.get("articleId");
|
Integer articleId = request.getArticleId();
|
||||||
PkInfoModel pkInfoModel = pkInfoDao.selectById(articleId);
|
PkInfoModel pkInfoModel = pkInfoDao.selectById(articleId);
|
||||||
Integer userId = pkInfoModel.getSenderId();
|
Integer userId = pkInfoModel.getSenderId();
|
||||||
// 到期时间戳
|
// 到期时间戳
|
||||||
Integer pinExpireTime = map.get("pinExpireTime");
|
Integer pinExpireTime = request.getPinExpireTime();
|
||||||
|
|
||||||
long currentTimeStamp = VVTools.currentTimeStamp();
|
long currentTimeStamp = VVTools.currentTimeStamp();
|
||||||
long hour = VVTools.calculateHoursRound(pinExpireTime, currentTimeStamp);
|
long hour = VVTools.calculateHoursRound(pinExpireTime, currentTimeStamp);
|
||||||
@@ -335,8 +342,8 @@ public class UserController {
|
|||||||
|
|
||||||
// 取消置顶
|
// 取消置顶
|
||||||
@PostMapping("cancelPin")
|
@PostMapping("cancelPin")
|
||||||
public ResponseData<Object> cancelPin(@RequestBody Map<String,Integer> map) {
|
public ResponseData<Object> cancelPin(@RequestBody UserCancelPinDTO request) {
|
||||||
Integer articleId = map.get("articleId");
|
Integer articleId = request.getArticleId();
|
||||||
PkInfoModel pkInfoModel = pkInfoDao.selectById(articleId);
|
PkInfoModel pkInfoModel = pkInfoDao.selectById(articleId);
|
||||||
Integer pinExpireTime = pkInfoModel.getPinExpireTime();
|
Integer pinExpireTime = pkInfoModel.getPinExpireTime();
|
||||||
long hour = VVTools.calculateHoursFloor(pinExpireTime, VVTools.currentTimeStamp());
|
long hour = VVTools.calculateHoursFloor(pinExpireTime, VVTools.currentTimeStamp());
|
||||||
@@ -371,10 +378,10 @@ public class UserController {
|
|||||||
|
|
||||||
// 获取积分明细
|
// 获取积分明细
|
||||||
@PostMapping("pointsDetail")
|
@PostMapping("pointsDetail")
|
||||||
public ResponseData<Object> pointsDetail(@RequestBody Map<String,Integer> map) {
|
public ResponseData<Object> pointsDetail(@RequestBody UserPointsDetailDTO request) {
|
||||||
Integer userId = map.get("userId");
|
Integer userId = request.getUserId();
|
||||||
Integer page = map.get("page");
|
Integer page = request.getPage();
|
||||||
Integer size = map.get("size");
|
Integer size = request.getSize();
|
||||||
List<CoinRecords> coinRecords = coinRecordsDao.fetchMyPointsData(userId, page * size, size);
|
List<CoinRecords> coinRecords = coinRecordsDao.fetchMyPointsData(userId, page * size, size);
|
||||||
return ResponseData.success(coinRecords);
|
return ResponseData.success(coinRecords);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,8 @@
|
|||||||
|
package vvpkassistant.pk.model.DTO;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class PkDeleteByIdDTO {
|
||||||
|
private Integer id;
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
package vvpkassistant.pk.model.DTO;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class PkFetchDetailDTO {
|
||||||
|
private Integer id;
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
@@ -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<String, Object> condition;
|
||||||
|
private Integer userId;
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
package vvpkassistant.pk.model.DTO;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class PkListUninvitedDTO {
|
||||||
|
private Integer userId;
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
package vvpkassistant.pk.model.DTO;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class PkQueryMyCanUseDTO {
|
||||||
|
private Integer userId;
|
||||||
|
}
|
||||||
@@ -1,11 +1,12 @@
|
|||||||
package vvpkassistant.pk.service;
|
package vvpkassistant.pk.service;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
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.PkInfoModel;
|
||||||
import vvpkassistant.pk.model.PkRecord;
|
import vvpkassistant.pk.model.PkRecord;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @author: ziin
|
* @author: ziin
|
||||||
@@ -18,7 +19,7 @@ public interface PKService extends IService<PkInfoModel> {
|
|||||||
|
|
||||||
PkRecord createPKRecord(PkRecord record);
|
PkRecord createPKRecord(PkRecord record);
|
||||||
|
|
||||||
List<PkInfoModel> getPKList(Map<String, Object> map);
|
List<PkInfoModel> getPKList(PkListRequestDTO request);
|
||||||
|
|
||||||
PkInfoModel pkInfoDetail(Map<String, Integer> map);
|
PkInfoModel pkInfoDetail(PkInfoDetailDTO request);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,6 +14,8 @@ import vvpkassistant.config.FunctionConfigHolder;
|
|||||||
import vvpkassistant.exception.BusinessException;
|
import vvpkassistant.exception.BusinessException;
|
||||||
import vvpkassistant.pk.mapper.PkInfoDao;
|
import vvpkassistant.pk.mapper.PkInfoDao;
|
||||||
import vvpkassistant.pk.mapper.PkRecordDao;
|
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.PkInfoModel;
|
||||||
import vvpkassistant.pk.model.PkRecord;
|
import vvpkassistant.pk.model.PkRecord;
|
||||||
|
|
||||||
@@ -147,11 +149,11 @@ public class PKServiceImpl extends ServiceImpl<PkInfoDao, PkInfoModel> implement
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<PkInfoModel> getPKList(Map<String, Object> map) {
|
public List<PkInfoModel> getPKList(PkListRequestDTO request) {
|
||||||
|
|
||||||
Integer page = (Integer) map.get("page");
|
Integer page = request.getPage();
|
||||||
Integer size = (Integer) map.get("size");
|
Integer size = request.getSize();
|
||||||
Map<String,Object> condition = (Map<String, Object>) map.get("condition");
|
Map<String,Object> condition = request.getCondition();
|
||||||
|
|
||||||
Map<String, Long> todayTimeStampMap = VVTools.startAndEndTimeStampForToday();
|
Map<String, Long> todayTimeStampMap = VVTools.startAndEndTimeStampForToday();
|
||||||
Long start = VVTools.currentTimeStamp();
|
Long start = VVTools.currentTimeStamp();
|
||||||
@@ -162,9 +164,9 @@ public class PKServiceImpl extends ServiceImpl<PkInfoDao, PkInfoModel> implement
|
|||||||
long currentTimeStamp = VVTools.currentTimeStamp();
|
long currentTimeStamp = VVTools.currentTimeStamp();
|
||||||
|
|
||||||
//如果传了用户id
|
//如果传了用户id
|
||||||
if (map.containsKey("userId")) {
|
if (request.getUserId() != null) {
|
||||||
Long begin = VVTools.currentTimeStamp();
|
Long begin = VVTools.currentTimeStamp();
|
||||||
Integer userId = Integer.valueOf(map.get("userId").toString());
|
Integer userId = request.getUserId();
|
||||||
// 查询出当前用户大于等于今天的已接受邀请的pk数据
|
// 查询出当前用户大于等于今天的已接受邀请的pk数据
|
||||||
List<PkRecord> pkRecords = pkRecordDao.fetchDataFromTodayWithUserId(userId, begin);
|
List<PkRecord> pkRecords = pkRecordDao.fetchDataFromTodayWithUserId(userId, begin);
|
||||||
// 遍历查询出的数据。如果文章的id相同。就显示完整的主播名称,
|
// 遍历查询出的数据。如果文章的id相同。就显示完整的主播名称,
|
||||||
@@ -202,10 +204,10 @@ public class PKServiceImpl extends ServiceImpl<PkInfoDao, PkInfoModel> implement
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PkInfoModel pkInfoDetail(Map<String, Integer> map) {
|
public PkInfoModel pkInfoDetail(PkInfoDetailDTO request) {
|
||||||
Integer id = map.get("id");
|
Integer id = request.getId();
|
||||||
Integer userId = map.get("userId");
|
Integer userId = request.getUserId();
|
||||||
Integer from = map.get("from"); // 1 首页 2 聊天
|
Integer from = request.getFrom(); // 1 首页 2 聊天
|
||||||
|
|
||||||
PkInfoModel pkInfoModel = pkInfoDao.selectById(id);
|
PkInfoModel pkInfoModel = pkInfoDao.selectById(id);
|
||||||
if (pkInfoModel == null) {
|
if (pkInfoModel == null) {
|
||||||
|
|||||||
Reference in New Issue
Block a user