Explorar el Código

1、区分c端和b端接口

rayson hace 1 año
padre
commit
2e7e148ddd
Se han modificado 42 ficheros con 432 adiciones y 144 borrados
  1. 15 0
      citu-framework/citu-spring-boot-starter-web/src/main/java/com/citu/framework/errorcode/config/CituErrorCodeRpcAutoConfiguration.java
  2. 2 1
      citu-framework/citu-spring-boot-starter-web/src/main/java/com/citu/framework/errorcode/core/loader/ErrorCodeLoaderImpl.java
  3. 32 17
      citu-module-system/citu-module-system-api/src/main/java/com/citu/module/system/api/errorcode/ErrorCodeApi.java
  4. 11 5
      citu-module-system/citu-module-system-biz/src/main/java/com/citu/module/system/api/errorcode/ErrorCodeApiImpl.java
  5. 2 8
      citu-module-system/citu-module-system-biz/src/main/resources/application.yaml
  6. 30 5
      menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/MendunerStatusEnum.java
  7. 0 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/config/CustomDataPermissionRuleCustomizer.java
  8. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/enterprise/EnterpriseController.java
  9. 2 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/permission/MdeRoleController.java
  10. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/permission/role/MdeRolePageReqVO.java
  11. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/permission/role/MdeRoleRespVO.java
  12. 12 28
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/user/MdeUserController.java
  13. 4 4
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/user/vo/MdeUserSaveReqVO.java
  14. 8 16
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/user/vo/MdeUserUpdatePasswordReqVO.java
  15. 23 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/user/vo/MdeUserUpdateStatusReqVO.java
  16. 3 3
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/auth/MdeAuthController.java
  17. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/auth/vo/MdeAuthCheckCodeReqVO.java
  18. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/auth/vo/MdeAuthLoginReqVO.java
  19. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/auth/vo/MdeAuthLoginRespVO.java
  20. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/auth/vo/MdeAuthSmsLoginReqVO.java
  21. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/auth/vo/MdeAuthSmsSendReqVO.java
  22. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/auth/vo/MdeAuthSmsValidateReqVO.java
  23. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/auth/vo/MdeAuthSocialLoginReqVO.java
  24. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/auth/vo/MdeAuthWeixinMiniAppLoginReqVO.java
  25. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/auth/vo/MdeWeixinJsapiSignatureRespVO.java
  26. 73 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/user/AppMdeUserController.java
  27. 2 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/user/vo/AppMdeUserCreatePhonePCReqVO.java
  28. 2 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/user/vo/AppMdeUserResetPasswordReqVO.java
  29. 63 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/user/vo/AppMdeUserRespVO.java
  30. 31 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/user/vo/AppMdeUserUpdatePasswordReqVO.java
  31. 2 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/user/vo/AppMdeUserUpdatePhoneByWeixinReqVO.java
  32. 2 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/user/vo/AppMdeUserUpdatePhoneReqVO.java
  33. 4 3
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/convert/MdeAuthConvert.java
  34. 2 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/permission/MdeRoleDO.java
  35. 5 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/user/MdeUserMapper.java
  36. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/auth/MdeAuthService.java
  37. 3 3
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/auth/MdeAuthServiceImpl.java
  38. 2 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/permission/MdePermissionServiceImpl.java
  39. 4 4
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/permission/MdeRoleServiceImpl.java
  40. 31 7
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/user/MdeUserService.java
  41. 47 11
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/user/MdeUserServiceImpl.java
  42. 2 0
      menduner/menduner-system-biz/src/main/resources/application.yaml

+ 15 - 0
citu-framework/citu-spring-boot-starter-web/src/main/java/com/citu/framework/errorcode/config/CituErrorCodeRpcAutoConfiguration.java

@@ -0,0 +1,15 @@
+package com.citu.framework.errorcode.config;
+
+import com.citu.module.system.api.errorcode.ErrorCodeApi;
+import org.springframework.boot.autoconfigure.AutoConfiguration;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+
+/**
+ * 错误码用到 Feign 的配置项
+ *
+ * @author 芋道源码
+ */
+@AutoConfiguration
+@EnableFeignClients(clients = ErrorCodeApi.class) // 主要是引入相关的 API 服务
+public class CituErrorCodeRpcAutoConfiguration {
+}

+ 2 - 1
citu-framework/citu-spring-boot-starter-web/src/main/java/com/citu/framework/errorcode/core/loader/ErrorCodeLoaderImpl.java

@@ -26,6 +26,7 @@ import java.util.List;
 @Slf4j
 public class ErrorCodeLoaderImpl implements ErrorCodeLoader {
 
+
     /**
      * 刷新错误码的频率,单位:毫秒
      */
@@ -61,7 +62,7 @@ public class ErrorCodeLoaderImpl implements ErrorCodeLoader {
     private void loadErrorCodes0() {
         try {
             // 加载错误码
-            List<ErrorCodeRespDTO> errorCodeRespDTOs = errorCodeApi.getErrorCodeList(applicationName, maxUpdateTime);
+            List<ErrorCodeRespDTO> errorCodeRespDTOs = errorCodeApi.getErrorCodeList(applicationName, maxUpdateTime).getCheckedData();
             if (CollUtil.isEmpty(errorCodeRespDTOs)) {
                 return;
             }

+ 32 - 17
citu-module-system/citu-module-system-api/src/main/java/com/citu/module/system/api/errorcode/ErrorCodeApi.java

@@ -1,36 +1,51 @@
 package com.citu.module.system.api.errorcode;
 
 
+import com.citu.framework.common.pojo.CommonResult;
 import com.citu.module.system.api.errorcode.dto.ErrorCodeAutoGenerateReqDTO;
 import com.citu.module.system.api.errorcode.dto.ErrorCodeRespDTO;
+import com.citu.module.system.enums.ApiConstants;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.Parameters;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
 
 import javax.validation.Valid;
 import java.time.LocalDateTime;
 import java.util.List;
 
+import static com.citu.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
 /**
  * 错误码 Api 接口
  *
  * @author 芋道源码
  */
+@FeignClient(name = ApiConstants.NAME) // TODO 芋艿:fallbackFactory =
+@Tag(name = "RPC 服务 - 错误码")
 public interface ErrorCodeApi {
 
-    /**
-     * 自动创建错误码
-     *
-     * @param autoGenerateDTOs 错误码信息
-     */
-    void autoGenerateErrorCodeList(@Valid List<ErrorCodeAutoGenerateReqDTO> autoGenerateDTOs);
-
-    /**
-     * 增量获得错误码数组
-     * <p>
-     * 如果 minUpdateTime 为空时,则获取所有错误码
-     *
-     * @param applicationName 应用名
-     * @param minUpdateTime   最小更新时间
-     * @return 错误码数组
-     */
-    List<ErrorCodeRespDTO> getErrorCodeList(String applicationName, LocalDateTime minUpdateTime);
+    String PREFIX = ApiConstants.PREFIX + "/error-code";
+
+    @PostMapping(PREFIX + "/auto-generate")
+    @Operation(summary = "自动创建错误码")
+    CommonResult<Boolean> autoGenerateErrorCodeList(@Valid @RequestBody List<ErrorCodeAutoGenerateReqDTO> autoGenerateDTOs);
+
+    @GetMapping(PREFIX + "/list")
+    @Operation(summary = "增量获得错误码数组", description = "如果 minUpdateTime 为空时,则获取所有错误码")
+    @Parameters({
+            @Parameter(name = "applicationName", description = "应用名", example = "system-server", required = true),
+            @Parameter(name = "minUpdateTime", description = "最小更新时间")
+    })
+    CommonResult<List<ErrorCodeRespDTO>> getErrorCodeList(
+            @RequestParam(value = "applicationName") String applicationName,
+            @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+            @RequestParam(value = "minUpdateTime", required = false) LocalDateTime minUpdateTime);
 
 }

+ 11 - 5
citu-module-system/citu-module-system-biz/src/main/java/com/citu/module/system/api/errorcode/ErrorCodeApiImpl.java

@@ -1,33 +1,39 @@
 package com.citu.module.system.api.errorcode;
 
+import com.citu.framework.common.pojo.CommonResult;
 import com.citu.module.system.api.errorcode.dto.ErrorCodeAutoGenerateReqDTO;
 import com.citu.module.system.api.errorcode.dto.ErrorCodeRespDTO;
 import com.citu.module.system.service.errorcode.ErrorCodeService;
 import org.springframework.stereotype.Service;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
 import java.util.List;
 
+import static com.citu.framework.common.pojo.CommonResult.success;
+
 /**
  * 错误码 Api 实现类
  *
  * @author 芋道源码
  */
-@Service
+@RestController // 提供 RESTful API 接口,给 Feign 调用
+@Validated
 public class ErrorCodeApiImpl implements ErrorCodeApi {
 
     @Resource
     private ErrorCodeService errorCodeService;
 
     @Override
-    public void autoGenerateErrorCodeList(List<ErrorCodeAutoGenerateReqDTO> autoGenerateDTOs) {
+    public CommonResult<Boolean> autoGenerateErrorCodeList(List<ErrorCodeAutoGenerateReqDTO> autoGenerateDTOs) {
         errorCodeService.autoGenerateErrorCodes(autoGenerateDTOs);
+        return success(true);
     }
 
     @Override
-    public List<ErrorCodeRespDTO> getErrorCodeList(String applicationName, LocalDateTime minUpdateTime) {
-        return errorCodeService.getErrorCodeList(applicationName, minUpdateTime);
+    public CommonResult<List<ErrorCodeRespDTO>> getErrorCodeList(String applicationName, LocalDateTime minUpdateTime) {
+        return success(errorCodeService.getErrorCodeList(applicationName, minUpdateTime));
     }
-
 }

+ 2 - 8
citu-module-system/citu-module-system-biz/src/main/resources/application.yaml

@@ -150,13 +150,7 @@ citu:
   error-code: # 错误码相关配置项
     enable: true
     constants-class-list:
-      - com.citu.module.bpm.enums.ErrorCodeConstants
-      - com.citu.module.infra.enums.ErrorCodeConstants
-      - com.citu.module.member.enums.ErrorCodeConstants
-      - com.citu.module.pay.enums.ErrorCodeConstants
       - com.citu.module.system.enums.ErrorCodeConstants
-      - com.citu.module.mp.enums.ErrorCodeConstants
-      - com.citu.module.menduner.system.enums.ErrorCodeConstants
   tenant: # 多租户相关配置项
     enable: true
     ignore-urls:
@@ -189,7 +183,7 @@ citu:
     expire-times: 10m
     send-frequency: 1m
     send-maximum-quantity-per-day: 10
-    begin-code: 9999 # 这里配置 9999 的原因是,测试方便。
-    end-code: 9999 # 这里配置 9999 的原因是,测试方便。
+    begin-code: 142367 # 这里配置 9999 的原因是,测试方便。
+    end-code: 999999 # 这里配置 9999 的原因是,测试方便。
 
 debug: false

+ 30 - 5
menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/MendunerStatusEnum.java

@@ -1,18 +1,43 @@
 package com.citu.module.menduner.system.enums;
 
+import cn.hutool.core.util.ObjUtil;
+import com.citu.framework.common.core.IntArrayValuable;
+import com.citu.framework.common.enums.CommonStatusEnum;
 import lombok.AllArgsConstructor;
 import lombok.Getter;
 
+import java.util.Arrays;
+
 /**
  * 帐号状态(0正常 1停用)
  **/
 @Getter
 @AllArgsConstructor
-public enum MendunerStatusEnum {
-    NORMAL(0),
-    DISABLE(1);
+public enum MendunerStatusEnum implements IntArrayValuable {
+    ENABLE(0, "开启"),
+    DISABLE(1, "关闭");
+
+    public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(MendunerStatusEnum::getStatus).toArray();
+
+    /**
+     * 状态值
+     */
+    private final Integer status;
     /**
-     * 类型
+     * 状态名
      */
-    private final Integer type;
+    private final String name;
+
+    @Override
+    public int[] array() {
+        return ARRAYS;
+    }
+
+    public static boolean isEnable(Integer status) {
+        return ObjUtil.equal(ENABLE.status, status);
+    }
+
+    public static boolean isDisable(Integer status) {
+        return ObjUtil.equal(DISABLE.status, status);
+    }
 }

+ 0 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/config/CustomDataPermissionRuleCustomizer.java

@@ -1,7 +1,5 @@
 package com.citu.module.menduner.system.config;
 
-import com.citu.framework.datapermission.core.rule.DataPermissionRule;
-
 /**
  * @author rayson
  * @description CustomDataPermissionRuleCustomizer {@link CustomDataPermissionRule} 的自定义配置接口

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/enterprise/EnterpriseController.java

@@ -93,7 +93,7 @@ public class EnterpriseController {
     @Operation(summary = "获取企业精简信息列表", description = "只包含被开启的企业,主要用于前端的下拉选项")
     public CommonResult<List<EnterpriseSimpleRespVO>> getSimpleDeptList() {
         List<EnterpriseDO> list = enterpriseService.getEnterpriseList(
-                new EnterpriseListReqVO().setStatus(MendunerStatusEnum.NORMAL.getType()));
+                new EnterpriseListReqVO().setStatus(MendunerStatusEnum.ENABLE.getStatus()));
         return success(BeanUtils.toBean(list, EnterpriseSimpleRespVO.class));
     }
 

+ 2 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/permission/MdeRoleController.java

@@ -1,7 +1,7 @@
 package com.citu.module.menduner.system.controller.admin.permission;
 
 import com.citu.framework.apilog.core.annotation.ApiAccessLog;
-import com.citu.framework.common.enums.CommonStatusEnum;
+import com.citu.module.menduner.system.enums.MendunerStatusEnum;
 import com.citu.framework.common.pojo.CommonResult;
 import com.citu.framework.common.pojo.PageParam;
 import com.citu.framework.common.pojo.PageResult;
@@ -82,7 +82,7 @@ public class MdeRoleController {
     @GetMapping({"/list-all-simple", "/simple-list"})
     @Operation(summary = "获取角色精简信息列表", description = "只包含被开启的角色,主要用于前端的下拉选项")
     public CommonResult<List<MdeRoleRespVO>> getSimpleRoleList() {
-        List<MdeRoleDO> list = roleService.getRoleListByStatus(singleton(CommonStatusEnum.ENABLE.getStatus()));
+        List<MdeRoleDO> list = roleService.getRoleListByStatus(singleton(MendunerStatusEnum.ENABLE.getStatus()));
         list.sort(Comparator.comparing(MdeRoleDO::getSort));
         return success(BeanUtils.toBean(list, MdeRoleRespVO.class));
     }

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/permission/role/MdeRolePageReqVO.java

@@ -21,7 +21,7 @@ public class MdeRolePageReqVO extends PageParam {
     @Schema(description = "角色标识,模糊匹配", example = "citu")
     private String code;
 
-    @Schema(description = "展示状态,参见 CommonStatusEnum 枚举类", example = "1")
+    @Schema(description = "展示状态,参见 MendunerStatusEnum 枚举类", example = "1")
     private Integer status;
 
     @Schema(description = "创建时间", example = "[2022-07-01 00:00:00,2022-07-01 23:59:59]")

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/permission/role/MdeRoleRespVO.java

@@ -34,7 +34,7 @@ public class MdeRoleRespVO {
     @ExcelProperty("角色排序")
     private Integer sort;
 
-    @Schema(description = "状态,参见 CommonStatusEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+    @Schema(description = "状态,参见 MendunerStatusEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
     @ExcelProperty(value = "角色状态", converter = DictConvert.class)
     @DictFormat(DictTypeConstants.COMMON_STATUS)
     private Integer status;

+ 12 - 28
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/user/MdeUserController.java

@@ -9,6 +9,7 @@ import com.citu.framework.common.util.object.BeanUtils;
 import com.citu.framework.excel.core.util.ExcelUtils;
 import com.citu.framework.security.core.annotations.PreAuthenticated;
 import com.citu.module.menduner.system.controller.admin.user.vo.*;
+import com.citu.module.menduner.system.controller.app.user.vo.AppMdeUserCreatePhonePCReqVO;
 import com.citu.module.menduner.system.dal.dataobject.user.MdeUserDO;
 import com.citu.module.menduner.system.service.user.MdeUserService;
 import io.swagger.v3.oas.annotations.Operation;
@@ -21,6 +22,7 @@ import org.springframework.web.bind.annotation.*;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
+
 import java.io.IOException;
 import java.util.List;
 
@@ -37,6 +39,7 @@ public class MdeUserController {
     @Resource
     private MdeUserService mdeUserService;
 
+
     @PostMapping("/create")
     @Operation(summary = "创建用户信息")
     @PreAuthorize("@ss.hasPermission('menduner:system:mde-user:create')")
@@ -91,42 +94,23 @@ public class MdeUserController {
                 BeanUtils.toBean(list, MdeUserRespVO.class));
     }
 
-    @PutMapping("/update-phone")
-    @Operation(summary = "修改用户手机")
-    @PreAuthenticated
-    public CommonResult<Boolean> updateUserPhone(@RequestBody @Valid MdeUserUpdatePhoneReqVO reqVO) {
-        mdeUserService.updateUserPhone(getLoginUserId(), reqVO);
-        return success(true);
-    }
 
-    @PutMapping("/update-mobile-by-weixin")
-    @Operation(summary = "基于微信小程序的授权码,修改用户手机")
-    @PreAuthenticated
-    public CommonResult<Boolean> updateUserMobileByWeixin(@RequestBody @Valid MdeUserUpdatePhoneByWeixinReqVO reqVO) {
-        mdeUserService.updateUserMobileByWeixin(getLoginUserId(), reqVO);
-        return success(true);
-    }
 
     @PutMapping("/update-password")
-    @Operation(summary = "修改用户密码", description = "用户修改密码时使用")
-    @PreAuthenticated
-    public CommonResult<Boolean> updateUserPassword(@RequestBody @Valid MdeUserUpdatePasswordReqVO reqVO) {
-        mdeUserService.updateUserPassword(getLoginUserId(), reqVO);
+    @Operation(summary = "重置用户密码")
+    @PreAuthorize("@ss.hasPermission('system:user:update-password')")
+    public CommonResult<Boolean> updateUserPassword(@Valid @RequestBody MdeUserUpdatePasswordReqVO reqVO) {
+        mdeUserService.updateUserPassword(reqVO.getId(), reqVO.getPassword());
         return success(true);
     }
 
-    @PutMapping("/reset-password")
-    @Operation(summary = "重置密码", description = "用户忘记密码时使用")
-    public CommonResult<Boolean> resetUserPassword(@RequestBody @Valid MdeUserResetPasswordReqVO reqVO) {
-        mdeUserService.resetUserPassword(reqVO);
+    @PutMapping("/update-status")
+    @Operation(summary = "修改用户状态")
+    @PreAuthorize("@ss.hasPermission('system:user:update')")
+    public CommonResult<Boolean> updateUserStatus(@Valid @RequestBody MdeUserUpdateStatusReqVO reqVO) {
+        mdeUserService.updateUserStatus(reqVO.getId(), reqVO.getStatus());
         return success(true);
     }
 
-    @PostMapping("/create/h5")
-    @Operation(summary = "基于手机号创建用户(H5)", description = "网页注册时使用")
-    public CommonResult<Boolean> createUserIfAbsentH5(@RequestBody @Valid MdeUserCreatePhonePCReqVO reqVO) {
-        mdeUserService.createUserIfAbsentH5(reqVO);
-        return success(true);
-    }
 
 }

+ 4 - 4
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/user/vo/MdeUserSaveReqVO.java

@@ -2,10 +2,10 @@ package com.citu.module.menduner.system.controller.admin.user.vo;
 
 
 import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-import java.util.*;
-import javax.validation.constraints.*;
-import org.springframework.format.annotation.DateTimeFormat;
+import lombok.Data;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
 import java.time.LocalDateTime;
 
 @Schema(description = "管理后台 - 门墩儿-用户登录新增/修改 Request VO")

+ 8 - 16
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/user/vo/MdeUserUpdatePasswordReqVO.java

@@ -1,31 +1,23 @@
 package com.citu.module.menduner.system.controller.admin.user.vo;
 
 import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.AllArgsConstructor;
-import lombok.Builder;
 import lombok.Data;
-import lombok.NoArgsConstructor;
 import org.hibernate.validator.constraints.Length;
 
 import javax.validation.constraints.NotEmpty;
-import javax.validation.constraints.Pattern;
+import javax.validation.constraints.NotNull;
 
-@Schema(description = "门墩儿-用户 - 修改密码 Request VO")
+@Schema(description = "管理后台 - 门墩儿-用户更新密码 Request VO")
 @Data
-@NoArgsConstructor
-@AllArgsConstructor
-@Builder
 public class MdeUserUpdatePasswordReqVO {
 
-    @Schema(description = "新密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "buzhidao")
-    @NotEmpty(message = "新密码不能为空")
+    @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
+    @NotNull(message = "用户编号不能为空")
+    private Long id;
+
+    @Schema(description = "密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "123456")
+    @NotEmpty(message = "密码不能为空")
     @Length(min = 4, max = 16, message = "密码长度为 4-16 位")
     private String password;
 
-    @Schema(description = "手机验证码", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
-    @NotEmpty(message = "手机验证码不能为空")
-    @Length(min = 4, max = 6, message = "手机验证码长度为 4-6 位")
-    @Pattern(regexp = "^[0-9]+$", message = "手机验证码必须都是数字")
-    private String code;
-
 }

+ 23 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/user/vo/MdeUserUpdateStatusReqVO.java

@@ -0,0 +1,23 @@
+package com.citu.module.menduner.system.controller.admin.user.vo;
+
+import com.citu.framework.common.validation.InEnum;
+import com.citu.module.menduner.system.enums.MendunerStatusEnum;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+@Schema(description = "管理后台 - 门墩儿-用户更新状态 Request VO")
+@Data
+public class MdeUserUpdateStatusReqVO {
+
+    @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
+    @NotNull(message = "角色编号不能为空")
+    private Long id;
+
+    @Schema(description = "状态,见 MendunerStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+    @NotNull(message = "状态不能为空")
+    @InEnum(value = MendunerStatusEnum.class, message = "修改状态必须是 {value}")
+    private Integer status;
+
+}

+ 3 - 3
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/auth/MdeAuthController.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/auth/MdeAuthController.java

@@ -1,11 +1,11 @@
-package com.citu.module.menduner.system.controller.admin.auth;
+package com.citu.module.menduner.system.controller.app.auth;
 
 import cn.hutool.core.util.StrUtil;
 import com.citu.framework.common.enums.UserTypeEnum;
 import com.citu.framework.common.pojo.CommonResult;
 import com.citu.framework.security.config.SecurityProperties;
 import com.citu.framework.security.core.util.SecurityFrameworkUtils;
-import com.citu.module.menduner.system.controller.admin.auth.vo.*;
+import com.citu.module.menduner.system.controller.app.auth.vo.*;
 import com.citu.module.menduner.system.convert.MdeAuthConvert;
 import com.citu.module.menduner.system.service.auth.MdeAuthService;
 import com.citu.module.system.api.social.SocialClientApi;
@@ -26,7 +26,7 @@ import javax.validation.Valid;
 import static com.citu.framework.common.pojo.CommonResult.success;
 import static com.citu.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
 
-@Tag(name = "用户登录")
+@Tag(name = "用户端 - 用户登录")
 @RestController
 @RequestMapping("/menduner/system/auth")
 @Validated

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/auth/vo/MdeAuthCheckCodeReqVO.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/auth/vo/MdeAuthCheckCodeReqVO.java

@@ -1,4 +1,4 @@
-package com.citu.module.menduner.system.controller.admin.auth.vo;
+package com.citu.module.menduner.system.controller.app.auth.vo;
 
 import com.citu.framework.common.validation.InEnum;
 import com.citu.framework.common.validation.Mobile;

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/auth/vo/MdeAuthLoginReqVO.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/auth/vo/MdeAuthLoginReqVO.java

@@ -1,4 +1,4 @@
-package com.citu.module.menduner.system.controller.admin.auth.vo;
+package com.citu.module.menduner.system.controller.app.auth.vo;
 
 import cn.hutool.core.util.StrUtil;
 import com.citu.framework.common.validation.InEnum;

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/auth/vo/MdeAuthLoginRespVO.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/auth/vo/MdeAuthLoginRespVO.java

@@ -1,4 +1,4 @@
-package com.citu.module.menduner.system.controller.admin.auth.vo;
+package com.citu.module.menduner.system.controller.app.auth.vo;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.AllArgsConstructor;

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/auth/vo/MdeAuthSmsLoginReqVO.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/auth/vo/MdeAuthSmsLoginReqVO.java

@@ -1,4 +1,4 @@
-package com.citu.module.menduner.system.controller.admin.auth.vo;
+package com.citu.module.menduner.system.controller.app.auth.vo;
 
 import cn.hutool.core.util.StrUtil;
 import com.citu.framework.common.validation.InEnum;

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/auth/vo/MdeAuthSmsSendReqVO.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/auth/vo/MdeAuthSmsSendReqVO.java

@@ -1,4 +1,4 @@
-package com.citu.module.menduner.system.controller.admin.auth.vo;
+package com.citu.module.menduner.system.controller.app.auth.vo;
 
 import com.citu.framework.common.validation.InEnum;
 import com.citu.framework.common.validation.Mobile;

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/auth/vo/MdeAuthSmsValidateReqVO.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/auth/vo/MdeAuthSmsValidateReqVO.java

@@ -1,4 +1,4 @@
-package com.citu.module.menduner.system.controller.admin.auth.vo;
+package com.citu.module.menduner.system.controller.app.auth.vo;
 
 import com.citu.framework.common.validation.InEnum;
 import com.citu.framework.common.validation.Mobile;

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/auth/vo/MdeAuthSocialLoginReqVO.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/auth/vo/MdeAuthSocialLoginReqVO.java

@@ -1,4 +1,4 @@
-package com.citu.module.menduner.system.controller.admin.auth.vo;
+package com.citu.module.menduner.system.controller.app.auth.vo;
 
 import com.citu.framework.common.validation.InEnum;
 import com.citu.module.system.enums.social.SocialTypeEnum;

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/auth/vo/MdeAuthWeixinMiniAppLoginReqVO.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/auth/vo/MdeAuthWeixinMiniAppLoginReqVO.java

@@ -1,4 +1,4 @@
-package com.citu.module.menduner.system.controller.admin.auth.vo;
+package com.citu.module.menduner.system.controller.app.auth.vo;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.AllArgsConstructor;

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/auth/vo/MdeWeixinJsapiSignatureRespVO.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/auth/vo/MdeWeixinJsapiSignatureRespVO.java

@@ -1,4 +1,4 @@
-package com.citu.module.menduner.system.controller.admin.auth.vo;
+package com.citu.module.menduner.system.controller.app.auth.vo;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.AllArgsConstructor;

+ 73 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/user/AppMdeUserController.java

@@ -0,0 +1,73 @@
+package com.citu.module.menduner.system.controller.app.user;
+
+
+import com.citu.framework.common.pojo.CommonResult;
+import com.citu.framework.common.util.object.BeanUtils;
+import com.citu.framework.security.core.annotations.PreAuthenticated;
+import com.citu.module.menduner.system.controller.app.user.vo.*;
+import com.citu.module.menduner.system.dal.dataobject.user.MdeUserDO;
+import com.citu.module.menduner.system.service.user.MdeUserService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+
+import static com.citu.framework.common.pojo.CommonResult.success;
+import static com.citu.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
+
+@Tag(name = "用户端 - 用户信息")
+@RestController
+@RequestMapping("/menduner/system/mde-user")
+@Validated
+public class AppMdeUserController {
+
+    @Resource
+    private MdeUserService mdeUserService;
+
+    @GetMapping("/get")
+    @Operation(summary = "获得用户信息")
+    @Parameter(name = "id", description = "编号", required = true, example = "1024")
+    @PreAuthenticated
+    public CommonResult<AppMdeUserRespVO> getMdeUser(@RequestParam("id") Long id) {
+        MdeUserDO mdeUser = mdeUserService.getMdeUser(id);
+        return success(BeanUtils.toBean(mdeUser, AppMdeUserRespVO.class));
+    }
+
+    @PutMapping("/update-phone")
+    @Operation(summary = "修改用户手机")
+    @PreAuthenticated
+    public CommonResult<Boolean> updateUserPhone(@RequestBody @Valid AppMdeUserUpdatePhoneReqVO reqVO) {
+        mdeUserService.updateUserPhone(getLoginUserId(), reqVO);
+        return success(true);
+    }
+
+    @PutMapping("/update-mobile-by-weixin")
+    @Operation(summary = "基于微信小程序的授权码,修改用户手机")
+    @PreAuthenticated
+    public CommonResult<Boolean> updateUserMobileByWeixin(@RequestBody @Valid AppMdeUserUpdatePhoneByWeixinReqVO reqVO) {
+        mdeUserService.updateUserMobileByWeixin(getLoginUserId(), reqVO);
+        return success(true);
+    }
+
+    @PutMapping("/update-password")
+    @Operation(summary = "修改用户密码", description = "用户修改密码时使用")
+    @PreAuthenticated
+    public CommonResult<Boolean> updateUserPassword(@RequestBody @Valid AppMdeUserUpdatePasswordReqVO reqVO) {
+        mdeUserService.updateUserPassword(getLoginUserId(), reqVO);
+        return success(true);
+    }
+
+    @PutMapping("/reset-password")
+    @Operation(summary = "重置密码", description = "用户忘记密码时使用")
+    public CommonResult<Boolean> resetUserPassword(@RequestBody @Valid AppMdeUserResetPasswordReqVO reqVO) {
+        mdeUserService.resetUserPassword(reqVO);
+        return success(true);
+    }
+
+
+}

+ 2 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/user/vo/MdeUserCreatePhonePCReqVO.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/user/vo/AppMdeUserCreatePhonePCReqVO.java

@@ -1,4 +1,4 @@
-package com.citu.module.menduner.system.controller.admin.user.vo;
+package com.citu.module.menduner.system.controller.app.user.vo;
 
 import com.citu.framework.common.validation.Mobile;
 import io.swagger.v3.oas.annotations.media.Schema;
@@ -14,7 +14,7 @@ import javax.validation.constraints.NotBlank;
 @NoArgsConstructor
 @AllArgsConstructor
 @Builder
-public class MdeUserCreatePhonePCReqVO {
+public class AppMdeUserCreatePhonePCReqVO {
 
     @Schema(description = "手机号",requiredMode = Schema.RequiredMode.REQUIRED,example = "15878962356")
     @NotBlank(message = "手机号不能为空")

+ 2 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/user/vo/MdeUserResetPasswordReqVO.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/user/vo/AppMdeUserResetPasswordReqVO.java

@@ -1,4 +1,4 @@
-package com.citu.module.menduner.system.controller.admin.user.vo;
+package com.citu.module.menduner.system.controller.app.user.vo;
 
 import com.citu.framework.common.validation.Mobile;
 import io.swagger.v3.oas.annotations.media.Schema;
@@ -17,7 +17,7 @@ import javax.validation.constraints.Pattern;
 @NoArgsConstructor
 @AllArgsConstructor
 @Builder
-public class MdeUserResetPasswordReqVO {
+public class AppMdeUserResetPasswordReqVO {
 
     @Schema(description = "新密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "buzhidao")
     @NotEmpty(message = "新密码不能为空")

+ 63 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/user/vo/AppMdeUserRespVO.java

@@ -0,0 +1,63 @@
+package com.citu.module.menduner.system.controller.app.user.vo;
+
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.citu.framework.excel.core.annotations.DictFormat;
+import com.citu.framework.excel.core.convert.DictConvert;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Schema(description = "管理后台 - 门墩儿-用户登录 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class AppMdeUserRespVO {
+
+    @Schema(description = "用户ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "2684")
+    @ExcelProperty("用户ID")
+    private Long id;
+
+    @Schema(description = "用户账号", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四")
+    @ExcelProperty("用户账号")
+    private String username;
+
+    @Schema(description = "用户邮箱")
+    @ExcelProperty("用户邮箱")
+    private String email;
+
+    @Schema(description = "手机号码")
+    @ExcelProperty("手机号码")
+    private String phone;
+
+    @Schema(description = "头像地址")
+    @ExcelProperty("头像地址")
+    private String avatar;
+
+    @Schema(description = "帐号状态(0正常 1停用)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
+    @ExcelProperty(value = "帐号状态(0正常 1停用)", converter = DictConvert.class)
+    @DictFormat("menduner_status") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中
+    private Integer status;
+
+    @Schema(description = "注册 IP")
+    @ExcelProperty("注册 IP")
+    private String registerIp;
+
+    @Schema(description = "注册终端")
+    @ExcelProperty("注册终端")
+    private Integer registerTerminal;
+
+    @Schema(description = "最后登录IP")
+    @ExcelProperty("最后登录IP")
+    private String loginIp;
+
+    @Schema(description = "最后登录时间")
+    @ExcelProperty("最后登录时间")
+    private LocalDateTime loginDate;
+
+    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("创建时间")
+    private LocalDateTime createTime;
+
+}

+ 31 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/user/vo/AppMdeUserUpdatePasswordReqVO.java

@@ -0,0 +1,31 @@
+package com.citu.module.menduner.system.controller.app.user.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.hibernate.validator.constraints.Length;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.Pattern;
+
+@Schema(description = "门墩儿-用户 - 修改密码 Request VO")
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+public class AppMdeUserUpdatePasswordReqVO {
+
+    @Schema(description = "新密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "buzhidao")
+    @NotEmpty(message = "新密码不能为空")
+    @Length(min = 4, max = 16, message = "密码长度为 4-16 位")
+    private String password;
+
+    @Schema(description = "手机验证码", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
+    @NotEmpty(message = "手机验证码不能为空")
+    @Length(min = 4, max = 6, message = "手机验证码长度为 4-6 位")
+    @Pattern(regexp = "^[0-9]+$", message = "手机验证码必须都是数字")
+    private String code;
+
+}

+ 2 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/user/vo/MdeUserUpdatePhoneByWeixinReqVO.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/user/vo/AppMdeUserUpdatePhoneByWeixinReqVO.java

@@ -1,4 +1,4 @@
-package com.citu.module.menduner.system.controller.admin.user.vo;
+package com.citu.module.menduner.system.controller.app.user.vo;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
@@ -7,7 +7,7 @@ import javax.validation.constraints.NotEmpty;
 
 @Schema(description = "门墩儿-用户 - 基于微信小程序的授权码,修改手机 Request VO")
 @Data
-public class MdeUserUpdatePhoneByWeixinReqVO {
+public class AppMdeUserUpdatePhoneByWeixinReqVO {
 
     @Schema(description = "手机 code,小程序通过 wx.getPhoneNumber 方法获得",
             requiredMode = Schema.RequiredMode.REQUIRED, example = "hello")

+ 2 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/user/vo/MdeUserUpdatePhoneReqVO.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/user/vo/AppMdeUserUpdatePhoneReqVO.java

@@ -1,4 +1,4 @@
-package com.citu.module.menduner.system.controller.admin.user.vo;
+package com.citu.module.menduner.system.controller.app.user.vo;
 
 import com.citu.framework.common.validation.Mobile;
 import io.swagger.v3.oas.annotations.media.Schema;
@@ -11,7 +11,7 @@ import javax.validation.constraints.Pattern;
 
 @Schema(description = "门墩儿-用户 - 修改手机 Request VO")
 @Data
-public class MdeUserUpdatePhoneReqVO {
+public class AppMdeUserUpdatePhoneReqVO {
 
     @Schema(description = "手机验证码", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
     @NotEmpty(message = "手机验证码不能为空")

+ 4 - 3
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/convert/MdeAuthConvert.java

@@ -1,8 +1,8 @@
 package com.citu.module.menduner.system.convert;
 
 
-import com.citu.module.menduner.system.controller.admin.auth.vo.*;
-import com.citu.module.menduner.system.controller.admin.user.vo.MdeUserResetPasswordReqVO;
+import com.citu.module.menduner.system.controller.app.user.vo.AppMdeUserResetPasswordReqVO;
+import com.citu.module.menduner.system.controller.app.auth.vo.*;
 import com.citu.module.system.api.oauth2.dto.OAuth2AccessTokenRespDTO;
 import com.citu.module.system.api.sms.dto.code.SmsCodeSendReqDTO;
 import com.citu.module.system.api.sms.dto.code.SmsCodeUseReqDTO;
@@ -22,7 +22,8 @@ public interface MdeAuthConvert {
 
     SmsCodeSendReqDTO convert(MdeAuthSmsSendReqVO reqVO);
 
-    SmsCodeUseReqDTO convert(MdeUserResetPasswordReqVO reqVO, SmsSceneEnum scene, String usedIp);
+    SmsCodeUseReqDTO convert(AppMdeUserResetPasswordReqVO reqVO, SmsSceneEnum scene, String usedIp);
+
     SmsCodeUseReqDTO convert(MdeAuthSmsLoginReqVO reqVO, Integer scene, String usedIp);
 
     MdeAuthLoginRespVO convert(OAuth2AccessTokenRespDTO bean, String openid);

+ 2 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/permission/MdeRoleDO.java

@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
-import com.citu.framework.common.enums.CommonStatusEnum;
+import com.citu.module.menduner.system.enums.MendunerStatusEnum;
 import com.citu.framework.mybatis.core.type.JsonLongSetTypeHandler;
 import com.citu.framework.tenant.core.db.TenantBaseDO;
 import com.citu.module.system.enums.permission.DataScopeEnum;
@@ -47,7 +47,7 @@ public class MdeRoleDO extends TenantBaseDO {
     /**
      * 角色状态
      *
-     * 枚举 {@link CommonStatusEnum}
+     * 枚举 {@link MendunerStatusEnum}
      */
     private Integer status;
     /**

+ 5 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/user/MdeUserMapper.java

@@ -7,6 +7,8 @@ import com.citu.module.menduner.system.controller.admin.user.vo.MdeUserPageReqVO
 import com.citu.module.menduner.system.dal.dataobject.user.MdeUserDO;
 import org.apache.ibatis.annotations.Mapper;
 
+import java.util.List;
+
 /**
  * 门墩儿-用户登录 Mapper
  *
@@ -38,4 +40,7 @@ public interface MdeUserMapper extends BaseMapperX<MdeUserDO> {
         return selectOne(MdeUserDO::getUsername, username);
     }
 
+    default List<MdeUserDO> selectListByStatus(Integer status) {
+        return selectList(MdeUserDO::getStatus, status);
+    }
 }

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/auth/MdeAuthService.java

@@ -1,7 +1,7 @@
 package com.citu.module.menduner.system.service.auth;
 
 
-import com.citu.module.menduner.system.controller.admin.auth.vo.*;
+import com.citu.module.menduner.system.controller.app.auth.vo.*;
 
 import javax.validation.Valid;
 

+ 3 - 3
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/auth/MdeAuthServiceImpl.java

@@ -2,13 +2,13 @@ package com.citu.module.menduner.system.service.auth;
 
 import cn.hutool.core.lang.Assert;
 import cn.hutool.core.util.ObjectUtil;
-import com.citu.framework.common.enums.CommonStatusEnum;
+import com.citu.module.menduner.system.enums.MendunerStatusEnum;
 import com.citu.framework.common.enums.TerminalEnum;
 import com.citu.framework.common.enums.UserTypeEnum;
 import com.citu.framework.common.util.monitor.TracerUtils;
 import com.citu.framework.common.util.servlet.ServletUtils;
 import com.citu.framework.common.util.validation.ValidationUtils;
-import com.citu.module.menduner.system.controller.admin.auth.vo.*;
+import com.citu.module.menduner.system.controller.app.auth.vo.*;
 import com.citu.module.menduner.system.convert.MdeAuthConvert;
 import com.citu.module.menduner.system.dal.dataobject.user.MdeUserDO;
 import com.citu.module.menduner.system.service.user.MdeUserService;
@@ -129,7 +129,7 @@ public class MdeAuthServiceImpl implements MdeAuthService {
             throw exception(MDE_AUTH_LOGIN_BAD_CREDENTIALS);
         }
         // 校验是否禁用
-        if (ObjectUtil.notEqual(user.getStatus(), CommonStatusEnum.ENABLE.getStatus())) {
+        if (ObjectUtil.notEqual(user.getStatus(), MendunerStatusEnum.ENABLE.getStatus())) {
             createLoginLog(user.getId(), mobile, logTypeEnum, LoginResultEnum.USER_DISABLED);
             throw exception(MDE_AUTH_LOGIN_USER_DISABLED);
         }

+ 2 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/permission/MdePermissionServiceImpl.java

@@ -5,7 +5,7 @@ import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.ArrayUtil;
 import cn.hutool.extra.spring.SpringUtil;
 import com.baomidou.dynamic.datasource.annotation.DSTransactional;
-import com.citu.framework.common.enums.CommonStatusEnum;
+import com.citu.module.menduner.system.enums.MendunerStatusEnum;
 import com.citu.framework.common.util.collection.CollectionUtils;
 import com.citu.framework.datapermission.core.annotation.DataPermission;
 import com.citu.module.menduner.system.dal.dataobject.permission.MdeRoleDO;
@@ -102,7 +102,7 @@ public class MdePermissionServiceImpl implements MdePermissionService {
         Set<Long> roleIds = getSelf().getUserRoleIdListByUserIdFromCache(userId);
         // 获得角色数组,并移除被禁用的
         List<MdeRoleDO> roles = mdeRoleService.getRoleListFromCache(roleIds);
-        roles.removeIf(role -> !CommonStatusEnum.ENABLE.getStatus().equals(role.getStatus()));
+        roles.removeIf(role -> !MendunerStatusEnum.ENABLE.getStatus().equals(role.getStatus()));
         return roles;
     }
 

+ 4 - 4
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/permission/MdeRoleServiceImpl.java

@@ -4,7 +4,7 @@ import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.extra.spring.SpringUtil;
-import com.citu.framework.common.enums.CommonStatusEnum;
+import com.citu.module.menduner.system.enums.MendunerStatusEnum;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.common.util.collection.CollectionUtils;
 import com.citu.framework.common.util.object.BeanUtils;
@@ -65,7 +65,7 @@ public class MdeRoleServiceImpl implements MdeRoleService {
         // 2. 插入到数据库
         MdeRoleDO role = BeanUtils.toBean(createReqVO, MdeRoleDO.class)
                 .setType(ObjectUtil.defaultIfNull(type, RoleTypeEnum.CUSTOM.getType()))
-                .setStatus(CommonStatusEnum.ENABLE.getStatus())
+                .setStatus(MendunerStatusEnum.ENABLE.getStatus())
                 .setDataScope(DataScopeEnum.ALL.getScope()); // 默认可查看所有数据。原因是,可能一些项目不需要项目权限
         roleMapper.insert(role);
 
@@ -181,7 +181,7 @@ public class MdeRoleServiceImpl implements MdeRoleService {
 
     @Override
     public MdeRoleDO getRoleByDefault() {
-        MdeRoleDO role = roleMapper.selectOne(MdeRoleDO::getCode,"menduner_default_role",MdeRoleDO::getStatus, MendunerStatusEnum.NORMAL.getType());
+        MdeRoleDO role = roleMapper.selectOne(MdeRoleDO::getCode,"menduner_default_role",MdeRoleDO::getStatus, MendunerStatusEnum.ENABLE.getStatus());
         if (role == null) {
             throw exception(MDE_ROLE_NOT_EXISTS);
         }
@@ -256,7 +256,7 @@ public class MdeRoleServiceImpl implements MdeRoleService {
             if (role == null) {
                 throw exception(MDE_ROLE_NOT_EXISTS);
             }
-            if (!CommonStatusEnum.ENABLE.getStatus().equals(role.getStatus())) {
+            if (!MendunerStatusEnum.ENABLE.getStatus().equals(role.getStatus())) {
                 throw exception(MDE_ROLE_IS_DISABLE, role.getName());
             }
         });

+ 31 - 7
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/user/MdeUserService.java

@@ -4,10 +4,13 @@ package com.citu.module.menduner.system.service.user;
 import com.citu.framework.common.enums.TerminalEnum;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.common.validation.Mobile;
-import com.citu.module.menduner.system.controller.admin.user.vo.*;
+import com.citu.module.menduner.system.controller.admin.user.vo.MdeUserPageReqVO;
+import com.citu.module.menduner.system.controller.admin.user.vo.MdeUserSaveReqVO;
+import com.citu.module.menduner.system.controller.app.user.vo.*;
 import com.citu.module.menduner.system.dal.dataobject.user.MdeUserDO;
 
 import javax.validation.Valid;
+import java.util.List;
 
 /**
  * 门墩儿-用户登录 Service 接口
@@ -89,7 +92,7 @@ public interface MdeUserService {
      * @param reqVO
      * @return 用户对象
      */
-    MdeUserDO createUserIfAbsentH5(MdeUserCreatePhonePCReqVO reqVO);
+    MdeUserDO createUserIfAbsentH5(AppMdeUserCreatePhonePCReqVO reqVO);
 
 
     /**
@@ -120,7 +123,7 @@ public interface MdeUserService {
      * @param userId 用户编号
      * @param reqVO  请求信息
      */
-    void updateUserPhone(Long userId, MdeUserUpdatePhoneReqVO reqVO);
+    void updateUserPhone(Long userId, AppMdeUserUpdatePhoneReqVO reqVO);
 
     /**
      * 修改手机,基于微信小程序的授权码
@@ -128,7 +131,7 @@ public interface MdeUserService {
      * @param userId 用户编号
      * @param reqVO 请求信息
      */
-    void updateUserMobileByWeixin(Long userId, MdeUserUpdatePhoneByWeixinReqVO reqVO);
+    void updateUserMobileByWeixin(Long userId, AppMdeUserUpdatePhoneByWeixinReqVO reqVO);
 
     /**
      * 修改密码
@@ -136,14 +139,35 @@ public interface MdeUserService {
      * @param userId 用户编号
      * @param reqVO  请求信息
      */
-    void updateUserPassword(Long userId, MdeUserUpdatePasswordReqVO reqVO);
+    void updateUserPassword(Long userId, AppMdeUserUpdatePasswordReqVO reqVO);
 
+    /**
+     * 修改密码
+     *
+     * @param id       用户编号
+     * @param password 密码
+     */
+    void updateUserPassword(Long id, String password);
+
+    /**
+     * 修改状态
+     *
+     * @param id     用户编号
+     * @param status 状态
+     */
+    void updateUserStatus(Long id, Integer status);
     /**
      * 忘记密码
      *
      * @param reqVO 请求信息
      */
-    void resetUserPassword(MdeUserResetPasswordReqVO reqVO);
-
+    void resetUserPassword(AppMdeUserResetPasswordReqVO reqVO);
 
+    /**
+     * 获得指定状态的用户们
+     *
+     * @param status 状态
+     * @return 用户们
+     */
+    List<MdeUserDO> getUserListByStatus(Integer status);
 }

+ 47 - 11
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/user/MdeUserServiceImpl.java

@@ -4,18 +4,20 @@ package com.citu.module.menduner.system.service.user;
 import cn.hutool.core.lang.Assert;
 import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.StrUtil;
-import com.citu.framework.common.enums.CommonStatusEnum;
+import com.citu.module.menduner.system.enums.MendunerStatusEnum;
 import com.citu.framework.common.enums.TerminalEnum;
 import com.citu.framework.common.enums.UserTypeEnum;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.common.util.object.BeanUtils;
 import com.citu.framework.datapermission.core.util.DataPermissionUtils;
-import com.citu.module.menduner.system.controller.admin.user.vo.*;
+import com.citu.module.menduner.system.controller.admin.user.vo.MdeUserPageReqVO;
+import com.citu.module.menduner.system.controller.app.user.vo.AppMdeUserResetPasswordReqVO;
+import com.citu.module.menduner.system.controller.admin.user.vo.MdeUserSaveReqVO;
+import com.citu.module.menduner.system.controller.app.user.vo.*;
 import com.citu.module.menduner.system.convert.MdeAuthConvert;
 import com.citu.module.menduner.system.dal.dataobject.user.MdeUserDO;
 import com.citu.module.menduner.system.dal.mysql.user.MdeUserMapper;
 import com.citu.module.menduner.system.service.permission.MdePermissionService;
-import com.citu.module.menduner.system.service.permission.MdePermissionServiceImpl;
 import com.citu.module.system.api.sms.SmsCodeApi;
 import com.citu.module.system.api.sms.dto.code.SmsCodeUseReqDTO;
 import com.citu.module.system.api.social.SocialClientApi;
@@ -25,7 +27,6 @@ import com.google.common.annotations.VisibleForTesting;
 import com.mzt.logapi.context.LogRecordContext;
 import com.mzt.logapi.service.impl.DiffParseFunction;
 import com.mzt.logapi.starter.annotation.LogRecord;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.crypto.password.PasswordEncoder;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -33,6 +34,7 @@ import org.springframework.validation.annotation.Validated;
 
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
+import java.util.List;
 
 import static com.citu.framework.common.exception.util.ServiceExceptionUtil.exception;
 import static com.citu.framework.common.util.servlet.ServletUtils.getClientIP;
@@ -75,7 +77,7 @@ public class MdeUserServiceImpl implements MdeUserService {
                 createReqVO.getPhone(), createReqVO.getEmail());
         // 2.1 插入用户
         MdeUserDO user = BeanUtils.toBean(createReqVO, MdeUserDO.class);
-        user.setStatus(CommonStatusEnum.ENABLE.getStatus()); // 默认开启
+        user.setStatus(MendunerStatusEnum.ENABLE.getStatus()); // 默认开启
         user.setPassword(encodePassword(createReqVO.getPassword())); // 加密密码
         mdeUserMapper.insert(user);
         // 2.2 绑定默认角色
@@ -233,7 +235,7 @@ public class MdeUserServiceImpl implements MdeUserService {
         MdeUserDO user = new MdeUserDO();
         user.setUsername(phone);
         user.setPhone(phone);
-        user.setStatus(CommonStatusEnum.ENABLE.getStatus()); // 默认开启
+        user.setStatus(MendunerStatusEnum.ENABLE.getStatus()); // 默认开启
         user.setPassword(encodePassword(password)); // 加密密码
         user.setRegisterIp(registerIp).setRegisterTerminal(terminal);
         user.setAvatar(avtar); // 基础信息
@@ -261,7 +263,7 @@ public class MdeUserServiceImpl implements MdeUserService {
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public MdeUserDO createUserIfAbsentH5(MdeUserCreatePhonePCReqVO reqVO) {
+    public MdeUserDO createUserIfAbsentH5(AppMdeUserCreatePhonePCReqVO reqVO) {
         // 用户已经存在
         MdeUserDO user = mdeUserMapper.selectByPhone(reqVO.getPhone());
         if (user != null) {
@@ -303,7 +305,7 @@ public class MdeUserServiceImpl implements MdeUserService {
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void updateUserPhone(Long userId, MdeUserUpdatePhoneReqVO reqVO) {
+    public void updateUserPhone(Long userId, AppMdeUserUpdatePhoneReqVO reqVO) {
         // 1.1 检测用户是否存在
         MdeUserDO user = validateUserExists(userId);
         // 1.2 校验新手机是否已经被绑定
@@ -323,7 +325,7 @@ public class MdeUserServiceImpl implements MdeUserService {
     }
 
     @Override
-    public void updateUserMobileByWeixin(Long userId, MdeUserUpdatePhoneByWeixinReqVO reqVO) {
+    public void updateUserMobileByWeixin(Long userId, AppMdeUserUpdatePhoneByWeixinReqVO reqVO) {
         // 1.1 获得对应的手机号信息
         SocialWxPhoneNumberInfoRespDTO phoneNumberInfo = socialClientApi.getWxMaPhoneNumberInfo(
                 UserTypeEnum.MEMBER.getValue(), reqVO.getCode()).getCheckedData();
@@ -336,7 +338,7 @@ public class MdeUserServiceImpl implements MdeUserService {
     }
 
     @Override
-    public void updateUserPassword(Long userId, MdeUserUpdatePasswordReqVO reqVO) {
+    public void updateUserPassword(Long userId, AppMdeUserUpdatePasswordReqVO reqVO) {
         // 检测用户是否存在
         MdeUserDO user = validateUserExists(userId);
         // 校验验证码
@@ -357,7 +359,7 @@ public class MdeUserServiceImpl implements MdeUserService {
     }
 
     @Override
-    public void resetUserPassword(MdeUserResetPasswordReqVO reqVO) {
+    public void resetUserPassword(AppMdeUserResetPasswordReqVO reqVO) {
         // 检验用户是否存在
         MdeUserDO user = validateUserExists(reqVO.getPhone());
 
@@ -369,4 +371,38 @@ public class MdeUserServiceImpl implements MdeUserService {
         mdeUserMapper.updateById(MdeUserDO.builder().id(user.getId())
                 .password(passwordEncoder.encode(reqVO.getPassword())).build());
     }
+
+    @Override
+    public void updateUserStatus(Long id, Integer status) {
+        // 校验用户存在
+        validateUserExists(id);
+        // 更新状态
+        MdeUserDO updateObj = new MdeUserDO();
+        updateObj.setId(id);
+        updateObj.setStatus(status);
+        mdeUserMapper.updateById(updateObj);
+    }
+
+    @Override
+    @LogRecord(type = MDE_USER_TYPE, subType = MDE_USER_UPDATE_PASSWORD_SUB_TYPE, bizNo = "{{#id}}",
+            success = MDE_USER_UPDATE_PASSWORD_SUCCESS)
+    public void updateUserPassword(Long id, String password) {
+        // 1. 校验用户存在
+        MdeUserDO user = validateUserExists(id);
+
+        // 2. 更新密码
+        MdeUserDO updateObj = new MdeUserDO();
+        updateObj.setId(id);
+        updateObj.setPassword(encodePassword(password)); // 加密密码
+        mdeUserMapper.updateById(updateObj);
+
+        // 3. 记录操作日志上下文
+        LogRecordContext.putVariable("mde-user", user);
+        LogRecordContext.putVariable("mde-newPassword", updateObj.getPassword());
+    }
+
+    @Override
+    public List<MdeUserDO> getUserListByStatus(Integer status) {
+        return mdeUserMapper.selectListByStatus(status);
+    }
 }

+ 2 - 0
menduner/menduner-system-biz/src/main/resources/application.yaml

@@ -36,6 +36,8 @@ springdoc:
   swagger-ui:
     enabled: true # 2.1 是否开启 Swagger 文档的官方 UI 界面
     path: /swagger-ui.html
+    tags-sorter: alpha
+    operations-sorter: alpha
   default-flat-param-object: true # 参见 https://doc.xiaominfo.com/docs/faq/v4/knife4j-parameterobject-flat-param 文档
 
 knife4j: