diff --git a/bweb/src/main/java/com/bweb/controller/BsUserController.java b/bweb/src/main/java/com/bweb/controller/BsUserController.java new file mode 100644 index 0000000..1e45f12 --- /dev/null +++ b/bweb/src/main/java/com/bweb/controller/BsUserController.java @@ -0,0 +1,114 @@ +package com.bweb.controller; + +import com.alibaba.fastjson.JSONObject; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import com.hfkj.common.exception.ErrorCode; +import com.hfkj.common.exception.ErrorHelp; +import com.hfkj.common.exception.SysCode; +import com.hfkj.common.utils.ResponseMsgUtil; +import com.hfkj.entity.BsUser; +import com.hfkj.model.ResponseData; +import com.hfkj.service.user.BsUserService; +import com.hfkj.service.user.impl.BsUserServiceImpl; +import com.hfkj.sysenum.SecUserStatusEnum; +import com.hfkj.sysenum.UserStatusEnum; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Map; + +/** + * @className: BsUserController + * @author: HuRui + * @date: 2024/5/6 + **/ +@Controller +@RequestMapping(value="/user") +@Api(value="系统菜单管理") +public class BsUserController { + private static Logger log = LoggerFactory.getLogger(BsUserController.class); + @Resource + private BsUserService userService; + + @RequestMapping(value="/restore",method = RequestMethod.POST) + @ResponseBody + @ApiOperation(value = "恢复") + public ResponseData restore(@RequestBody JSONObject body) { + try { + if (body == null || body.getLong("userId") == null) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, ""); + } + + // 查询用户详情 + BsUser user = userService.getUser(body.getLong("userId")); + if (user == null) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, ""); + } + user.setStatus(UserStatusEnum.status1.getCode()); + userService.editData(user); + + return ResponseMsgUtil.success("操作成功"); + + } catch (Exception e) { + log.error("error!",e); + return ResponseMsgUtil.exception(e); + } + } + + @RequestMapping(value="/disable",method = RequestMethod.POST) + @ResponseBody + @ApiOperation(value = "禁用") + public ResponseData disable(@RequestBody JSONObject body) { + try { + if (body == null || body.getLong("userId") == null) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, ""); + } + // 查询用户详情 + BsUser user = userService.getUser(body.getLong("userId")); + if (user == null) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, ""); + } + user.setStatus(SecUserStatusEnum.status2.getCode()); + userService.editData(user); + + // 退出当前登录信息 + userService.loginOut(new BsUserServiceImpl().token(user)); + + return ResponseMsgUtil.success("操作成功"); + + } catch (Exception e) { + log.error("error!",e); + return ResponseMsgUtil.exception(e); + } + } + + @RequestMapping(value="/queryUserList",method = RequestMethod.GET) + @ResponseBody + @ApiOperation(value = "查询用户列表") + public ResponseData queryUserList(@RequestParam(value = "name" , required = false) String name, + @RequestParam(value = "phone" , required = false) String phone, + @RequestParam(value = "status" , required = false) Integer status, + @RequestParam(value = "pageNum" , required = true) Integer pageNum, + @RequestParam(value = "pageSize" , required = true) Integer pageSize) { + try { + Map param = new HashMap<>(); + param.put("name", name); + param.put("phone", phone); + param.put("status", status); + + PageHelper.startPage(pageNum, pageSize); + return ResponseMsgUtil.success(new PageInfo<>(userService.getList(param))); + + } catch (Exception e) { + log.error("error!",e); + return ResponseMsgUtil.exception(e); + } + } +} diff --git a/order/src/main/java/com/order/controller/OrderController.java b/order/src/main/java/com/order/controller/OrderController.java index 01dd05c..73e381e 100644 --- a/order/src/main/java/com/order/controller/OrderController.java +++ b/order/src/main/java/com/order/controller/OrderController.java @@ -6,6 +6,7 @@ import com.hfkj.common.exception.SysCode; import com.hfkj.common.security.UserCenter; import com.hfkj.common.utils.ResponseMsgUtil; import com.hfkj.model.ResponseData; +import com.hfkj.model.UserSessionObject; import com.hfkj.model.order.OrderChildModel; import com.hfkj.model.order.OrderModel; import com.hfkj.service.order.BsOrderService; @@ -39,12 +40,14 @@ public class OrderController { @ApiOperation(value = "创建订单") public ResponseData create(@RequestBody OrderModel body) { try { - // TODO 获取用户信息 - + // 用户session + UserSessionObject userSession = userCenter.getSessionModel(UserSessionObject.class); + if (userSession == null) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.ACCOUNT_LOGIN_NOT, ""); + } if (body == null || body.getOrderChildList().isEmpty()) { throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, ""); } - // 子订单必填项校验 for (OrderChildModel orderChild : body.getOrderChildList()) { if (orderChild.getProductType() == null diff --git a/service/src/main/java/com/hfkj/common/security/UserCenter.java b/service/src/main/java/com/hfkj/common/security/UserCenter.java index af0d894..83e4fea 100644 --- a/service/src/main/java/com/hfkj/common/security/UserCenter.java +++ b/service/src/main/java/com/hfkj/common/security/UserCenter.java @@ -71,6 +71,17 @@ public class UserCenter { } } + /** + * 退出登录 + * @param token + */ + public void remove(String token) { + if (StringUtils.isNotBlank(token)) { + //通过token方式登录 + redisUtil.del(token); + } + } + /** * 获取session信息 * @param clazz diff --git a/service/src/main/java/com/hfkj/service/user/BsUserService.java b/service/src/main/java/com/hfkj/service/user/BsUserService.java index 6f9c403..a4342b1 100644 --- a/service/src/main/java/com/hfkj/service/user/BsUserService.java +++ b/service/src/main/java/com/hfkj/service/user/BsUserService.java @@ -5,6 +5,7 @@ import com.hfkj.entity.BsUser; import com.hfkj.sysenum.UserLoginPlatform; import com.hfkj.sysenum.UserLoginType; +import java.util.List; import java.util.Map; /** @@ -34,6 +35,14 @@ public interface BsUserService { */ BsUser getUser(String phone); + + /** + * 获取用户列表 + * @param param + * @return + */ + List getList(Map param); + /** * 用户注册 * @param phone 手机号 @@ -56,6 +65,12 @@ public interface BsUserService { */ SessionObject login(UserLoginPlatform platform, UserLoginType loginType, String phone, String password, Map other) throws Exception; + /** + * 退出登录 + * @param token + */ + void loginOut(String token); + /** * 更新登录Session * @param token diff --git a/service/src/main/java/com/hfkj/service/user/impl/BsUserServiceImpl.java b/service/src/main/java/com/hfkj/service/user/impl/BsUserServiceImpl.java index 6b1ddc7..811ac76 100644 --- a/service/src/main/java/com/hfkj/service/user/impl/BsUserServiceImpl.java +++ b/service/src/main/java/com/hfkj/service/user/impl/BsUserServiceImpl.java @@ -73,15 +73,34 @@ public class BsUserServiceImpl implements BsUserService { return null; } + @Override + public List getList(Map param) { + BsUserExample example = new BsUserExample(); + BsUserExample.Criteria criteria = example.createCriteria() + .andStatusNotEqualTo(UserStatusEnum.status0.getCode()); + + if (StringUtils.isNotBlank(MapUtils.getString(param, "name"))) { + criteria.andNameLike("%"+MapUtils.getString(param, "name")+"%"); + } + if (StringUtils.isNotBlank(MapUtils.getString(param, "phone"))) { + criteria.andPhoneLike("%"+MapUtils.getString(param, "phone")+"%"); + } + if (MapUtils.getInteger(param, "status") != null) { + criteria.andStatusEqualTo(MapUtils.getInteger(param, "status")); + } + example.setOrderByClause("update_time desc"); + return userMapper.selectByExample(example); + } + /** * 生成token * @param user 用户 * @return * @throws Exception */ - private String token(BsUser user) throws Exception { + public String token(BsUser user) throws Exception { // token 生成格式:账户id + 时间戳 - return AESEncodeUtil.aesEncrypt(user.getId()+"_"+System.currentTimeMillis(), "ydQcF894xdcKQKfc8SEZdZrnSxzMckjZ"); + return AESEncodeUtil.aesEncrypt(user.getId().toString(), "ydQcF894xdcKQKfc8SEZdZrnSxzMckjZ"); } @Override @@ -120,12 +139,20 @@ public class BsUserServiceImpl implements BsUserService { return sessionObject; } + @Override + public void loginOut(String token) { + userCenter.remove(token); + } + @Override public SessionObject updateSession(String token) { SessionObject sessionObject = userCenter.getSessionObject(token); UserSessionObject user = (UserSessionObject) sessionObject.getObject(); - userCenter.save(new SessionObject(token, new UserSessionObject(getUser(user.getUser().getId())))); - return null; + + // 重新缓存 + SessionObject newSession = new SessionObject(token, new UserSessionObject(getUser(user.getUser().getId()))); + userCenter.save(newSession); + return newSession; } } diff --git a/service/src/main/java/com/hfkj/sysenum/UserStatusEnum.java b/service/src/main/java/com/hfkj/sysenum/UserStatusEnum.java index 2dc1273..c865847 100644 --- a/service/src/main/java/com/hfkj/sysenum/UserStatusEnum.java +++ b/service/src/main/java/com/hfkj/sysenum/UserStatusEnum.java @@ -17,9 +17,9 @@ public enum UserStatusEnum { status1(1, "正常"), /** - * 冻结 + * 禁用 */ - status2(2, "冻结"), + status2(2, "禁用"), ; private int code; diff --git a/user/src/main/java/com/user/controller/BsUserController.java b/user/src/main/java/com/user/controller/BsUserController.java index e545339..5ed9f32 100644 --- a/user/src/main/java/com/user/controller/BsUserController.java +++ b/user/src/main/java/com/user/controller/BsUserController.java @@ -203,7 +203,7 @@ public class BsUserController { if (session != null) { userCenter.remove(request); } else { - throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "账户已退出登录"); + throw ErrorHelp.genException(SysCode.System, ErrorCode.ACCOUNT_LOGIN_NOT, ""); } return ResponseMsgUtil.success("退出成功");