From ef88ec7134353de8add403f45a092aebb96207ae Mon Sep 17 00:00:00 2001 From: irving Date: Mon, 20 Oct 2025 23:10:44 -0400 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=BA=97=E5=91=98=E6=98=B5=E7=A7=B0?= =?UTF-8?q?=E5=8F=8A=E6=80=A7=E5=88=AB=E4=BF=AE=E6=94=B9=E7=BA=B3=E5=85=A5?= =?UTF-8?q?=E8=B5=84=E6=96=99=E5=AE=A1=E6=A0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PlayClerkUserInfoController.java | 8 ++++ .../entity/PlayClerkDataReviewInfoEntity.java | 2 +- .../clerk/module/enums/ClerkDataType.java | 3 +- .../module/vo/PlayClerkDataReviewQueryVo.java | 4 +- .../vo/PlayClerkDataReviewReturnVo.java | 6 +-- .../PlayClerkDataReviewInfoServiceImpl.java | 6 +++ .../impl/PlayClerkUserInfoServiceImpl.java | 43 ++++++++++++------- .../weichat/controller/WxClerkController.java | 35 +++++++++++++++ .../entity/PlayClerkUserLoginResponseVo.java | 10 +++++ .../entity/PlayClerkUserNicknameVo.java | 17 ++++++++ .../weichat/entity/PlayClerkUserSexVo.java | 21 +++++++++ 11 files changed, 133 insertions(+), 22 deletions(-) create mode 100644 play-admin/src/main/java/com/starry/admin/modules/weichat/entity/PlayClerkUserNicknameVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/weichat/entity/PlayClerkUserSexVo.java diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayClerkUserInfoController.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayClerkUserInfoController.java index 6526304..bfc607c 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayClerkUserInfoController.java +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayClerkUserInfoController.java @@ -1,7 +1,9 @@ package com.starry.admin.modules.clerk.controller; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.starry.admin.common.exception.CustomException; import com.starry.admin.modules.clerk.module.entity.PlayClerkUserInfoEntity; import com.starry.admin.modules.clerk.module.entity.PlayClerkUserQueryVo; import com.starry.admin.modules.clerk.module.entity.PlayClerkUserReturnVo; @@ -216,6 +218,9 @@ public class PlayClerkUserInfoController { @PostMapping(value = "/update") public R update(@ApiParam(value = "店员信息", required = true) @Validated @RequestBody PlayClerkUserEditVo vo) { PlayClerkUserInfoEntity entity = ConvertUtil.entityToVo(vo, PlayClerkUserInfoEntity.class); + if (StrUtil.isNotBlank(vo.getSex())) { + throw new CustomException("性别修改需要提交资料审核"); + } boolean success = playClerkUserInfoService.update(entity); if (success) { return R.ok(); @@ -233,6 +238,9 @@ public class PlayClerkUserInfoController { @PostMapping(value = "/updateState") public R updateState( @ApiParam(value = "店员状态信息", required = true) @Validated @RequestBody PlayClerkUserStateEditVo vo) { + if (StrUtil.isNotBlank(vo.getSex())) { + throw new CustomException("性别修改需要提交资料审核"); + } PlayClerkUserInfoEntity entity = ConvertUtil.entityToVo(vo, PlayClerkUserInfoEntity.class); boolean success = playClerkUserInfoService.update(entity); if (success) { diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkDataReviewInfoEntity.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkDataReviewInfoEntity.java index 8a0c664..6799fae 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkDataReviewInfoEntity.java +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkDataReviewInfoEntity.java @@ -36,7 +36,7 @@ public class PlayClerkDataReviewInfoEntity extends BaseEntity list = - // playClerkDataReviewInfoService.queryByClerkId(userInfo.getId(),"0"); - // // 判断头像、音频、相册是否可以编辑,如果存在未审核的数据,则不允许编辑 - // Map map = - // list.stream().collect(Collectors.toMap(PlayClerkDataReviewInfoEntity::getDataType, - // account -> account, (entity1, entity2) -> entity1)); - // if (map.containsKey("1")) { - // result.setAvatarAllowEdit(false); - // } - // if (map.containsKey("2")) { - // result.setAlbumAllowEdit(false); - // } - // if (map.containsKey("3")) { - // result.setAudioAllowEdit(false); - // } + List pendingReviews = playClerkDataReviewInfoService + .queryByClerkId(userInfo.getId(), "0"); + if (pendingReviews != null && !pendingReviews.isEmpty()) { + Set pendingTypes = pendingReviews.stream() + .map(PlayClerkDataReviewInfoEntity::getDataType) + .filter(StrUtil::isNotBlank) + .collect(Collectors.toSet()); + if (pendingTypes.contains("0")) { + result.setNicknameAllowEdit(false); + } + if (pendingTypes.contains("1")) { + result.setAvatarAllowEdit(false); + } + if (pendingTypes.contains("2")) { + result.setAlbumAllowEdit(false); + } + if (pendingTypes.contains("3")) { + result.setAudioAllowEdit(false); + } + if (pendingTypes.contains("4")) { + result.setSexAllowEdit(false); + } + } // 是店员之后,判断是否可以登录 if ("1".equals(result.getClerkState())) { // 设置店员是否运行登录 diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxClerkController.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxClerkController.java index b063d07..b1ee55b 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxClerkController.java +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxClerkController.java @@ -46,6 +46,7 @@ import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; import java.time.LocalDateTime; import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -242,6 +243,36 @@ public class WxClerkController { return R.ok("申请成功"); } + @ApiOperation(value = "更新昵称", notes = "店员更新昵称") + @ApiResponses({@ApiResponse(code = 200, message = "操作成功")}) + @ClerkUserLogin + @PostMapping("/user/updateNickname") + public R updateNickname(@ApiParam(value = "昵称信息", required = true) @Validated @RequestBody PlayClerkUserNicknameVo vo) { + PlayClerkUserInfoEntity userInfo = ThreadLocalRequestDetail.getClerkUserInfo(); + PlayClerkDataReviewInfoEntity entity = new PlayClerkDataReviewInfoEntity(); + entity.setClerkId(userInfo.getId()); + entity.setDataType("0"); + entity.setReviewState("0"); + entity.setDataContent(Collections.singletonList(vo.getNickname())); + playClerkDataReviewInfoService.create(entity); + return R.ok("提交成功,等待审核~"); + } + + @ApiOperation(value = "更新性别", notes = "店员更新性别") + @ApiResponses({@ApiResponse(code = 200, message = "操作成功")}) + @ClerkUserLogin + @PostMapping("/user/updateSex") + public R updateSex(@ApiParam(value = "性别信息", required = true) @Validated @RequestBody PlayClerkUserSexVo vo) { + PlayClerkUserInfoEntity userInfo = ThreadLocalRequestDetail.getClerkUserInfo(); + PlayClerkDataReviewInfoEntity entity = new PlayClerkDataReviewInfoEntity(); + entity.setClerkId(userInfo.getId()); + entity.setDataType("4"); + entity.setReviewState("0"); + entity.setDataContent(Collections.singletonList(String.valueOf(vo.getSex()))); + playClerkDataReviewInfoService.create(entity); + return R.ok("提交成功,等待审核~"); + } + @ApiOperation(value = "更新头像", notes = "店员更新头像") @ApiResponses({@ApiResponse(code = 200, message = "操作成功")}) @ClerkUserLogin @@ -324,6 +355,10 @@ public class WxClerkController { @ClerkUserLogin @PostMapping("/user/updateOther") public R updateOther(@Validated @RequestBody PlayClerkUserOtherVo vo) { + if (vo.getSex() != null) { + throw new CustomException("性别修改需要提交资料审核"); + } + vo.setSex(null); PlayClerkUserInfoEntity userInfo = ConvertUtil.entityToVo(vo, PlayClerkUserInfoEntity.class); userInfo.setId(ThreadLocalRequestDetail.getClerkUserInfo().getId()); playClerkUserInfoService.update(userInfo); diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/PlayClerkUserLoginResponseVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/PlayClerkUserLoginResponseVo.java index c889e53..d37909c 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/PlayClerkUserLoginResponseVo.java +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/PlayClerkUserLoginResponseVo.java @@ -35,6 +35,11 @@ public class PlayClerkUserLoginResponseVo { */ private boolean avatarAllowEdit = true; + /** + * 昵称是否可编辑 + */ + private boolean nicknameAllowEdit = true; + /** * 相册 */ @@ -55,6 +60,11 @@ public class PlayClerkUserLoginResponseVo { */ private boolean audioAllowEdit = true; + /** + * 性别是否可编辑 + */ + private boolean sexAllowEdit = true; + /** * 店员性别(0:未知;1:男;2:女) */ diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/PlayClerkUserNicknameVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/PlayClerkUserNicknameVo.java new file mode 100644 index 0000000..ff0ff61 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/PlayClerkUserNicknameVo.java @@ -0,0 +1,17 @@ +package com.starry.admin.modules.weichat.entity; + +import javax.validation.constraints.NotBlank; +import lombok.Data; + +/** + * 店员昵称修改请求 + */ +@Data +public class PlayClerkUserNicknameVo { + + /** + * 店员昵称 + */ + @NotBlank(message = "昵称不能为空") + private String nickname; +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/PlayClerkUserSexVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/PlayClerkUserSexVo.java new file mode 100644 index 0000000..d5f13d1 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/PlayClerkUserSexVo.java @@ -0,0 +1,21 @@ +package com.starry.admin.modules.weichat.entity; + +import javax.validation.constraints.Max; +import javax.validation.constraints.Min; +import javax.validation.constraints.NotNull; +import lombok.Data; + +/** + * 店员性别修改请求 + */ +@Data +public class PlayClerkUserSexVo { + + /** + * 店员性别(0:未知;1:男;2:女) + */ + @NotNull(message = "性别不能为空") + @Min(value = 0, message = "性别参数错误") + @Max(value = 2, message = "性别参数错误") + private Integer sex; +}