diff --git a/basic-interface/src/main/java/ink/wgink/interfaces/consts/ISystemConstant.java b/basic-interface/src/main/java/ink/wgink/interfaces/consts/ISystemConstant.java index 342040dd..b4f931cb 100644 --- a/basic-interface/src/main/java/ink/wgink/interfaces/consts/ISystemConstant.java +++ b/basic-interface/src/main/java/ink/wgink/interfaces/consts/ISystemConstant.java @@ -200,4 +200,9 @@ public interface ISystemConstant { */ String DEFAULT_PASSWORD = "88888888"; + /** + * 注册用户审核 + */ + String REGISTER_USER_EXAMINE = "registerUserExamine"; + } diff --git a/basic-interface/src/main/java/ink/wgink/interfaces/expand/register/IRegisterWithExpandInfoHandlerService.java b/basic-interface/src/main/java/ink/wgink/interfaces/expand/register/IRegisterWithExpandInfoHandlerService.java new file mode 100644 index 00000000..966e5e44 --- /dev/null +++ b/basic-interface/src/main/java/ink/wgink/interfaces/expand/register/IRegisterWithExpandInfoHandlerService.java @@ -0,0 +1,23 @@ +package ink.wgink.interfaces.expand.register; + +import java.util.Map; + +/** + * @ClassName: IRegisterWithExpandInfoHandlerService + * @Description: 注册处理器,该接口在登录成功之后执行自定义的处理 + * @Author: wanggeng + * @Version: 1.0 + */ +public interface IRegisterWithExpandInfoHandlerService { + + /** + * 注册处理 + * + * @param userId 用户ID + * @param expandInfo 拓展信息 + * @param requestParams 请求参数 + * @throws Exception + */ + void handler(String userId, Map expandInfo, Map requestParams) throws Exception; + +} diff --git a/basic-interface/src/main/java/ink/wgink/interfaces/user/IUserBaseService.java b/basic-interface/src/main/java/ink/wgink/interfaces/user/IUserBaseService.java index 644ab340..feb3e6c8 100644 --- a/basic-interface/src/main/java/ink/wgink/interfaces/user/IUserBaseService.java +++ b/basic-interface/src/main/java/ink/wgink/interfaces/user/IUserBaseService.java @@ -63,6 +63,14 @@ public interface IUserBaseService { */ List listByUsernames(List usernames); + /** + * 用户列表 + * + * @param userState 用户状态 + * @return + */ + List listByUserState(Integer userState); + /** * 用户列表 * @@ -88,6 +96,15 @@ public interface IUserBaseService { */ SuccessResultList> listPageByIds(List userIds, ListPage page); + /** + * 用户分页列表 + * + * @param userState 用户状态 + * @param page + * @return + */ + SuccessResultList> listPageByUserState(Integer userState, ListPage page); + /** * 用户列表 * @@ -119,7 +136,7 @@ public interface IUserBaseService { /** * 不包含的用户分页列表 * - * @param userIds 不包含的用户ID列表 + * @param excludeUserIds 不包含的用户ID列表 * @param params * @return */ diff --git a/basic-interface/src/main/java/ink/wgink/interfaces/user/IUserExpandOptionButton.java b/basic-interface/src/main/java/ink/wgink/interfaces/user/IUserExpandOptionButton.java new file mode 100644 index 00000000..95394a23 --- /dev/null +++ b/basic-interface/src/main/java/ink/wgink/interfaces/user/IUserExpandOptionButton.java @@ -0,0 +1,26 @@ +package ink.wgink.interfaces.user; + +import ink.wgink.pojo.bos.UserExpandOptionBtnBO; + +import java.util.List; + +/** + * @ClassName: IUserOptionButtonService + * @Description: 用户操作接口 + * @Author: wanggeng + * @Date: 2022/4/1 17:23 + * @Version: 1.0 + */ +public interface IUserExpandOptionButton { + + Integer getWidth(); + + String getTitle(); + + String getFixed(); + + String getAlign(); + + List listBtn(); + +} diff --git a/basic-pojo/src/main/java/ink/wgink/pojo/bos/UserExpandOptionBtnBO.java b/basic-pojo/src/main/java/ink/wgink/pojo/bos/UserExpandOptionBtnBO.java new file mode 100644 index 00000000..e0910471 --- /dev/null +++ b/basic-pojo/src/main/java/ink/wgink/pojo/bos/UserExpandOptionBtnBO.java @@ -0,0 +1,39 @@ +package ink.wgink.pojo.bos; + +/** + * @ClassName: UserOptionBtn + * @Description: 用户拓展操作按钮 + * @Author: wanggeng + * @Date: 2022/4/1 21:32 + * @Version: 1.0 + */ +public class UserExpandOptionBtnBO { + + private String title; + private String route; + private String colorClass; + + public String getTitle() { + return title == null ? "" : title.trim(); + } + + public void setTitle(String title) { + this.title = title; + } + + public String getRoute() { + return route == null ? "" : route.trim(); + } + + public void setRoute(String route) { + this.route = route; + } + + public String getColorClass() { + return colorClass == null ? "" : colorClass.trim(); + } + + public void setColorClass(String colorClass) { + this.colorClass = colorClass; + } +} diff --git a/service-user/src/main/java/ink/wgink/service/user/controller/route/UserRouteController.java b/service-user/src/main/java/ink/wgink/service/user/controller/route/UserRouteController.java index 59bbe1dc..6324ee0e 100644 --- a/service-user/src/main/java/ink/wgink/service/user/controller/route/UserRouteController.java +++ b/service-user/src/main/java/ink/wgink/service/user/controller/route/UserRouteController.java @@ -2,6 +2,7 @@ package ink.wgink.service.user.controller.route; import ink.wgink.interfaces.consts.ISystemConstant; import ink.wgink.interfaces.user.IUserExpandBaseService; +import ink.wgink.interfaces.user.IUserExpandOptionButton; import ink.wgink.util.ResourceUtil; import ink.wgink.util.request.StaticResourceRequestUtil; import io.swagger.annotations.Api; @@ -14,6 +15,8 @@ import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.InputStream; +import java.util.HashMap; +import java.util.Map; /** * When you feel like quitting. Think about why you started @@ -32,6 +35,8 @@ public class UserRouteController { @Autowired(required = false) private IUserExpandBaseService userExpandBaseService; + @Autowired(required = false) + private IUserExpandOptionButton userExpandOptionButton; @GetMapping("list") public ModelAndView list() { @@ -39,6 +44,15 @@ public class UserRouteController { if (userExpandBaseService != null) { mv.addObject("userExpand", userExpandBaseService.getRoute()); } + if (userExpandOptionButton != null) { + Map expandOption = new HashMap<>(); + expandOption.put("btns", userExpandOptionButton.listBtn()); + expandOption.put("width", userExpandOptionButton.getWidth()); + expandOption.put("title", userExpandOptionButton.getTitle()); + expandOption.put("fixed", userExpandOptionButton.getFixed()); + expandOption.put("align", userExpandOptionButton.getAlign()); + mv.addObject("expandOption", expandOption); + } return mv; } diff --git a/service-user/src/main/java/ink/wgink/service/user/dao/IUserDao.java b/service-user/src/main/java/ink/wgink/service/user/dao/IUserDao.java index 8627633f..8a3d8f47 100644 --- a/service-user/src/main/java/ink/wgink/service/user/dao/IUserDao.java +++ b/service-user/src/main/java/ink/wgink/service/user/dao/IUserDao.java @@ -81,6 +81,14 @@ public interface IUserDao extends IInitBaseTable { */ void updateLoginInfo(Map params) throws UpdateException; + /** + * 更新用户状态 + * + * @param params + * @throws UpdateException + */ + void updateUserState(Map params) throws UpdateException; + /** * 详情 * @@ -125,4 +133,5 @@ public interface IUserDao extends IInitBaseTable { * @throws SearchException */ String getGmtPasswordModified(String userId) throws SearchException; + } diff --git a/service-user/src/main/java/ink/wgink/service/user/enums/UserStateEnum.java b/service-user/src/main/java/ink/wgink/service/user/enums/UserStateEnum.java index 24d54c0e..849b196b 100644 --- a/service-user/src/main/java/ink/wgink/service/user/enums/UserStateEnum.java +++ b/service-user/src/main/java/ink/wgink/service/user/enums/UserStateEnum.java @@ -12,8 +12,23 @@ package ink.wgink.service.user.enums; */ public enum UserStateEnum { + /** + * 正常 + */ NORMAL(0), - LOCK(1); + /** + * 锁定 + */ + LOCK(1), + /** + * 未审核 + */ + UN_EXAMINE(-1), + /** + * 审核不通过 + */ + UN_PASS(-2); + private int value; diff --git a/service-user/src/main/java/ink/wgink/service/user/enums/UserTypeEnum.java b/service-user/src/main/java/ink/wgink/service/user/enums/UserTypeEnum.java index 447bb121..c7598a14 100644 --- a/service-user/src/main/java/ink/wgink/service/user/enums/UserTypeEnum.java +++ b/service-user/src/main/java/ink/wgink/service/user/enums/UserTypeEnum.java @@ -12,8 +12,18 @@ package ink.wgink.service.user.enums; */ public enum UserTypeEnum { + /** + * 系统用户 + */ SYSTEM(1), - NORMAL(2); + /** + * 普通用户 + */ + NORMAL(2), + /** + * 公共用户 + */ + PUBLIC(3); private int value; diff --git a/service-user/src/main/java/ink/wgink/service/user/service/IUserService.java b/service-user/src/main/java/ink/wgink/service/user/service/IUserService.java index f49781a2..b733cf98 100644 --- a/service-user/src/main/java/ink/wgink/service/user/service/IUserService.java +++ b/service-user/src/main/java/ink/wgink/service/user/service/IUserService.java @@ -149,6 +149,8 @@ public interface IUserService extends IUserBaseService, IUserCheckService { * 修改密码 * * @param token + * @param updatePasswordVO + * @throws ReflectUtil.ReflectException */ void updatePassword(String token, UpdatePasswordVO updatePasswordVO) throws ReflectUtil.ReflectException; @@ -186,6 +188,34 @@ public interface IUserService extends IUserBaseService, IUserCheckService { */ void updateExpiredDate(String userId, UpdateExpiredDateVO updateExpiredDateVO); + /** + * 更新用户状态通过 + * + * @param userId + */ + void updateUserStatePass(String userId); + + /** + * 更新用户状态通过 + * + * @param userIds + */ + void updateUserStatePass(List userIds); + + /** + * 更新用户状态不通过 + * + * @param userId + */ + void updateUserStateUnPass(String userId); + + /** + * 更新用户状态不通过 + * + * @param userIds + */ + void updateUserStateUnPass(List userIds); + /** * 导入Excel * @@ -231,6 +261,7 @@ public interface IUserService extends IUserBaseService, IUserCheckService { * * @param token * @return + * @throws ReflectUtil.ReflectException */ AppUserDTO getAppUser(String token) throws ReflectUtil.ReflectException; diff --git a/service-user/src/main/java/ink/wgink/service/user/service/impl/UserServiceImpl.java b/service-user/src/main/java/ink/wgink/service/user/service/impl/UserServiceImpl.java index fdd08c3e..ae7a8990 100644 --- a/service-user/src/main/java/ink/wgink/service/user/service/impl/UserServiceImpl.java +++ b/service-user/src/main/java/ink/wgink/service/user/service/impl/UserServiceImpl.java @@ -26,6 +26,7 @@ import ink.wgink.pojo.result.SuccessResultList; import ink.wgink.pojo.result.UploadExcelResultDTO; import ink.wgink.pojo.vos.UpdatePasswordVO; import ink.wgink.service.user.dao.IUserDao; +import ink.wgink.service.user.enums.UserStateEnum; import ink.wgink.service.user.enums.UserUpdateTypeEnum; import ink.wgink.service.user.excel.UserExcel; import ink.wgink.service.user.excel.UserExcelError; @@ -307,6 +308,42 @@ public class UserServiceImpl extends DefaultBaseService implements IUserService userDao.updateExpiredDate(params); } + @Override + public void updateUserStatePass(String userId) { + Map params = getHashMap(4); + params.put("userId", userId); + params.put("userState", UserStateEnum.NORMAL); + setUpdateInfo(params); + userDao.updateUserState(params); + } + + @Override + public void updateUserStatePass(List userIds) { + Map params = getHashMap(4); + params.put("userIds", userIds); + params.put("userState", UserStateEnum.NORMAL); + setUpdateInfo(params); + userDao.updateUserState(params); + } + + @Override + public void updateUserStateUnPass(String userId) { + Map params = getHashMap(4); + params.put("userId", userId); + params.put("userState", UserStateEnum.UN_PASS); + setUpdateInfo(params); + userDao.updateUserState(params); + } + + @Override + public void updateUserStateUnPass(List userIds) { + Map params = getHashMap(4); + params.put("userId", userIds); + params.put("userState", UserStateEnum.UN_PASS); + setUpdateInfo(params); + userDao.updateUserState(params); + } + @Override public UploadExcelResultDTO importExcel(MultipartFile excel) throws IOException { Map params = getHashMap(16); @@ -421,6 +458,13 @@ public class UserServiceImpl extends DefaultBaseService implements IUserService return list(params); } + @Override + public List listByUserState(Integer userState) { + Map params = getHashMap(2); + params.put("userState", userState); + return list(params); + } + @Override public List list(Map params) { return ArrayListUtil.deepClone(userDao.list(params), UserDTO.class); @@ -440,6 +484,12 @@ public class UserServiceImpl extends DefaultBaseService implements IUserService return listPage(page); } + @Override + public SuccessResultList> listPageByUserState(Integer userState, ListPage page) { + page.getParams().put("userState", userState); + return listPage(page); + } + @Override public List listByIds(List userIds, Map params) { params.put("userIds", userIds); diff --git a/service-user/src/main/resources/mybatis/mapper/user-mapper.xml b/service-user/src/main/resources/mybatis/mapper/user-mapper.xml index 01de7bae..190a7f9a 100644 --- a/service-user/src/main/resources/mybatis/mapper/user-mapper.xml +++ b/service-user/src/main/resources/mybatis/mapper/user-mapper.xml @@ -239,6 +239,29 @@ user_id = #{userId} + + + UPDATE + sys_user + SET + user_state = #{userState}, + modifier = #{modifier}, + gmt_modified = #{gmtModified} + WHERE + is_delete = 0 + + AND + user_id = #{userId} + + + AND + user_id IN + + #{userIds[${index}]} + + + + UPDATE @@ -393,7 +416,11 @@ user_email LIKE CONCAT('%', #{keywords}, '%') ) - + + AND + user_state = #{userState} + + AND user_type = #{userType} diff --git a/service-user/src/main/resources/templates/user/list.html b/service-user/src/main/resources/templates/user/list.html index c0acf037..409decf3 100644 --- a/service-user/src/main/resources/templates/user/list.html +++ b/service-user/src/main/resources/templates/user/list.html @@ -37,6 +37,15 @@ +
+ +
-