From ee27335b788cbffb6a8715f9e375a07b37025dc1 Mon Sep 17 00:00:00 2001 From: wangpengfei <1928057482@qq.com> Date: Wed, 29 Nov 2023 16:14:50 +0800 Subject: [PATCH] =?UTF-8?q?=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/yxt/yyth/api/sysuser/SysUser.java | 72 +++++++++++++++ .../com/yxt/yyth/api/sysuser/SysUserDto.java | 40 ++++++++ .../yxt/yyth/api/sysuser/SysUserInfoVo.java | 30 ++++++ .../yxt/yyth/api/sysuser/SysUserListVo.java | 19 ++++ .../yxt/yyth/api/sysuser/SysUserQuery.java | 51 ++++++++++ .../com/yxt/yyth/api/sysuser/SysUserVo.java | 92 +++++++++++++++++++ .../com/yxt/yyth/api/sysuser/UserQuery.java | 21 +++++ .../yxt/yyth/api/sysuser/UserRoleQuery.java | 19 ++++ .../yxt/yyth/biz/sysuser/SysUserMapper.java | 27 ++++++ .../yxt/yyth/biz/sysuser/SysUserMapper.xml | 7 ++ .../com/yxt/yyth/biz/sysuser/SysUserRest.java | 60 ++++++++++++ .../yxt/yyth/biz/sysuser/SysUserService.java | 48 ++++++++++ 12 files changed, 486 insertions(+) create mode 100644 src/main/java/com/yxt/yyth/api/sysuser/SysUser.java create mode 100644 src/main/java/com/yxt/yyth/api/sysuser/SysUserDto.java create mode 100644 src/main/java/com/yxt/yyth/api/sysuser/SysUserInfoVo.java create mode 100644 src/main/java/com/yxt/yyth/api/sysuser/SysUserListVo.java create mode 100644 src/main/java/com/yxt/yyth/api/sysuser/SysUserQuery.java create mode 100644 src/main/java/com/yxt/yyth/api/sysuser/SysUserVo.java create mode 100644 src/main/java/com/yxt/yyth/api/sysuser/UserQuery.java create mode 100644 src/main/java/com/yxt/yyth/api/sysuser/UserRoleQuery.java create mode 100644 src/main/java/com/yxt/yyth/biz/sysuser/SysUserMapper.java create mode 100644 src/main/java/com/yxt/yyth/biz/sysuser/SysUserMapper.xml create mode 100644 src/main/java/com/yxt/yyth/biz/sysuser/SysUserRest.java create mode 100644 src/main/java/com/yxt/yyth/biz/sysuser/SysUserService.java diff --git a/src/main/java/com/yxt/yyth/api/sysuser/SysUser.java b/src/main/java/com/yxt/yyth/api/sysuser/SysUser.java new file mode 100644 index 0000000..baf1ee6 --- /dev/null +++ b/src/main/java/com/yxt/yyth/api/sysuser/SysUser.java @@ -0,0 +1,72 @@ +package com.yxt.yyth.api.sysuser; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.yxt.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * Project: anrui_portal(门户建设)
+ * File: SysUser.java
+ * Class: SysUser
+ * Description: 用户表.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-08-03 00:24:30
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@ApiModel(value = "用户表", description = "用户表") +@TableName("sys_user") +@Data +public class SysUser extends BaseEntity { + private static final long serialVersionUID = 1L; + + + @ApiModelProperty("登录名,登录名不能相同") + private String userName; + + @ApiModelProperty("密码(加密或签名后)") + private String password; + + @ApiModelProperty("密码修改时限") + private String pwdDayslimit; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @ApiModelProperty("最后一次密码修改时间") + private Date pwdModifyTime; + + @ApiModelProperty("在线状态(0为离线、1为在线)") + private Integer onlineState; + + @ApiModelProperty("用户登录时随机生成身份验证字符串") + private String token; + + @ApiModelProperty("是否是管理员:1管理员,2一般用户,0是超级管理员,3尚无单位人员") + private String isAdmin; + + @ApiModelProperty("手机登录唯一标识,手机与用户绑定字段") + private String appId; + + @ApiModelProperty("关联的人员sid") + private String staffSid; + + @ApiModelProperty("手机号") + private String mobile; + + @ApiModelProperty("用户类型:1员工、2客户、3供应商") + private Integer userType; + + @ApiModelProperty("用户头像") + private String headImage; + + private String roleSid; + private String orgSid; + private String postSid; +} diff --git a/src/main/java/com/yxt/yyth/api/sysuser/SysUserDto.java b/src/main/java/com/yxt/yyth/api/sysuser/SysUserDto.java new file mode 100644 index 0000000..b0007c8 --- /dev/null +++ b/src/main/java/com/yxt/yyth/api/sysuser/SysUserDto.java @@ -0,0 +1,40 @@ +package com.yxt.yyth.api.sysuser; + + +import com.yxt.common.core.dto.Dto; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * Project: anrui_portal(门户建设)
+ * File: SysUserDto.java
+ * Class: SysUserDto
+ * Description: 用户表 数据传输对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-08-03 00:24:30
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@ApiModel(value = "用户表 数据传输对象", description = "用户表 数据传输对象") +@Data +public class SysUserDto implements Dto { + @ApiModelProperty("手机号") + private String mobile; + @ApiModelProperty("用户类型:1员工、2客户、3供应商") + private Integer userType; + @ApiModelProperty(value = "姓名", required = true) + //@NotBlank(message = "姓名不能为空") + private String name; + @ApiModelProperty(value = "验证码", required = true) + //@NotBlank(message = "验证码不能为空") + private String verificationCode; + @ApiModelProperty(value = "部门sid") + private String deptSid; + @ApiModelProperty(value = "岗位sid") + private String postSid; + +} \ No newline at end of file diff --git a/src/main/java/com/yxt/yyth/api/sysuser/SysUserInfoVo.java b/src/main/java/com/yxt/yyth/api/sysuser/SysUserInfoVo.java new file mode 100644 index 0000000..4192481 --- /dev/null +++ b/src/main/java/com/yxt/yyth/api/sysuser/SysUserInfoVo.java @@ -0,0 +1,30 @@ +package com.yxt.yyth.api.sysuser; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author dimengzhe + * @Date 2022/2/9 9:12 + * @Description 用户组织信息 + */ +@Data +public class SysUserInfoVo implements Vo { + + private static final long serialVersionUID = 7931121025686046432L; + @ApiModelProperty("关联的员工sid") + private String staffSid; + + @ApiModelProperty("关联的员工名称") + private String staffName; + + @ApiModelProperty("员工的组织sid(多个时为第一个)") + private String orgSid; + + @ApiModelProperty("员工的组织名称(多个时为第一个)") + private String orgName; + + @ApiModelProperty("员工的组织部门编码") + private String orgCode; +} diff --git a/src/main/java/com/yxt/yyth/api/sysuser/SysUserListVo.java b/src/main/java/com/yxt/yyth/api/sysuser/SysUserListVo.java new file mode 100644 index 0000000..c00cf15 --- /dev/null +++ b/src/main/java/com/yxt/yyth/api/sysuser/SysUserListVo.java @@ -0,0 +1,19 @@ +package com.yxt.yyth.api.sysuser; + +import com.yxt.common.core.vo.Vo; +import lombok.Data; + +/** + * @Author dimengzhe + * @Date 2022/9/14 15:36 + * @Description + */ +@Data +public class SysUserListVo implements Vo { + private static final long serialVersionUID = -3047907553025391436L; + + private String name; + + private String sid; + +} diff --git a/src/main/java/com/yxt/yyth/api/sysuser/SysUserQuery.java b/src/main/java/com/yxt/yyth/api/sysuser/SysUserQuery.java new file mode 100644 index 0000000..8967cf4 --- /dev/null +++ b/src/main/java/com/yxt/yyth/api/sysuser/SysUserQuery.java @@ -0,0 +1,51 @@ +package com.yxt.yyth.api.sysuser; + + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * Project: anrui_portal(门户建设)
+ * File: SysUserQuery.java
+ * Class: SysUserQuery
+ * Description: 用户表 查询条件.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-08-03 00:24:30
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@ApiModel(value = "用户表 查询条件", description = "用户表 查询条件") +@Data +public class SysUserQuery implements Query { + + + @ApiModelProperty("角色sid") + private String roleSid; + @ApiModelProperty("用户名称") + private String userName; + @ApiModelProperty("姓名") + private String name; + @ApiModelProperty("部门名称") + private String orgName; + + @ApiModelProperty("密码(加密或签名后)") + private String password; + + @ApiModelProperty("用户登录时随机生成身份验证字符串") + private String token; + @ApiModelProperty("用户登录时随机生成的验证码字符串") + private String verifyCode; + private String uuid; + + @ApiModelProperty("手机登录唯一标识,手机与用户绑定字段") + private String appId; + @ApiModelProperty("手机登录类型:1、密码登录2、验证码登录") + private String type; + @ApiModelProperty(value = "是否是测试",example = "false") + private Boolean isTest; +} \ No newline at end of file diff --git a/src/main/java/com/yxt/yyth/api/sysuser/SysUserVo.java b/src/main/java/com/yxt/yyth/api/sysuser/SysUserVo.java new file mode 100644 index 0000000..c13de1d --- /dev/null +++ b/src/main/java/com/yxt/yyth/api/sysuser/SysUserVo.java @@ -0,0 +1,92 @@ +package com.yxt.yyth.api.sysuser; + + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.ArrayList; +import java.util.List; + +/** + * Project: anrui_portal(门户建设)
+ * File: SysUserVo.java
+ * Class: SysUserVo
+ * Description: 用户表 视图数据对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-08-03 00:24:30
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@ApiModel(value = "用户表 视图数据对象", description = "用户表 视图数据对象") +@Data +@NoArgsConstructor +public class SysUserVo implements Vo { + private static final long serialVersionUID = 2415131854581950721L; + @ApiModelProperty("部门sid") + private String departmentSid; + @ApiModelProperty("部门名称") + private String departmentName; + @ApiModelProperty("上级部门名称-本级部门名称 岗位名称") + @JsonProperty("pNameAndDepartmentNameAndPostName") + private String pNameAndDepartmentNameAndPostName; + @ApiModelProperty("岗位名称") + private String postName; + @ApiModelProperty("岗位Sid") + private String postSid; + @ApiModelProperty("单位sid") + private String organizationSid; + @ApiModelProperty("单位名称") + private String organizationName; + @ApiModelProperty("用户姓名") + private String name; + @ApiModelProperty("登录名,登录名不能相同") + private String userName; + + @ApiModelProperty("id") + private Integer id; + @ApiModelProperty("用户sid") + private String sid; + @ApiModelProperty("是否是管理员:1管理员,2一般用户,0是超级管理员,3尚无单位人员") + private String isAdmin; + @ApiModelProperty("角色名称") + private String roleName; +// private List roleList; + @ApiModelProperty("关联的人员sid") + private String staffSid; + + @ApiModelProperty("手机号") + private String mobile; + @ApiModelProperty(value = "禁用状态") + private String isEnable; + + @ApiModelProperty("用户类型:1员工、2客户、3供应商") + private String userType; + @ApiModelProperty("用户类型:1、2、3") + private String userTypeKey; + @ApiModelProperty("用户头像") + private String headImage; + @ApiModelProperty("组织名称") + private String orgNamePath; + @ApiModelProperty("组织sid") + private String orgSidPath; + @ApiModelProperty(value = "token") + private String token; + @ApiModelProperty(value = "角色sids") + private List roleSids = new ArrayList<>(); + +// private List orgList = new ArrayList<>(); + private String defaultOrgPath; + private String defaultOrgPathName; + + @ApiModelProperty("是否需要更换密码") + private Boolean needResetPsd; + @ApiModelProperty("工号") + private String jobNumber; +} diff --git a/src/main/java/com/yxt/yyth/api/sysuser/UserQuery.java b/src/main/java/com/yxt/yyth/api/sysuser/UserQuery.java new file mode 100644 index 0000000..1d7710a --- /dev/null +++ b/src/main/java/com/yxt/yyth/api/sysuser/UserQuery.java @@ -0,0 +1,21 @@ +package com.yxt.yyth.api.sysuser; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author dimengzhe + * @Date 2022/6/21 8:47 + * @Description + */ +@Data +public class UserQuery implements Query { + + private static final long serialVersionUID = -3979717077029562761L; + @ApiModelProperty(value = "角色sid必传项") + private String roleSid; + @ApiModelProperty(value = "用户部门sid路径是必传项") + private String orgSidPath; + +} diff --git a/src/main/java/com/yxt/yyth/api/sysuser/UserRoleQuery.java b/src/main/java/com/yxt/yyth/api/sysuser/UserRoleQuery.java new file mode 100644 index 0000000..0748c4e --- /dev/null +++ b/src/main/java/com/yxt/yyth/api/sysuser/UserRoleQuery.java @@ -0,0 +1,19 @@ +package com.yxt.yyth.api.sysuser; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author dimengzhe + * @Date 2022/8/25 8:38 + * @Description + */ +@Data +public class UserRoleQuery implements Query { + private static final long serialVersionUID = 1913450300189800653L; + + @ApiModelProperty("角色sid") + private String roleSid; + private String orgSid; +} diff --git a/src/main/java/com/yxt/yyth/biz/sysuser/SysUserMapper.java b/src/main/java/com/yxt/yyth/biz/sysuser/SysUserMapper.java new file mode 100644 index 0000000..d0363b6 --- /dev/null +++ b/src/main/java/com/yxt/yyth/biz/sysuser/SysUserMapper.java @@ -0,0 +1,27 @@ +package com.yxt.yyth.biz.sysuser; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.yxt.yyth.api.sysuser.SysUser; +import com.yxt.yyth.api.sysuser.SysUserVo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; +import org.apache.ibatis.annotations.Update; + +import java.util.List; +import java.util.Map; + +/** + * @author wangpengfei + * @date 2023/5/4 14:37 + */ +@Mapper +public interface SysUserMapper extends BaseMapper { + + @Select("select count(userName) as userName from sys_user where userName=#{userName} and password=#{password}") + SysUserVo getUser(@Param("userName")String userName, @Param("password")String password); + +} diff --git a/src/main/java/com/yxt/yyth/biz/sysuser/SysUserMapper.xml b/src/main/java/com/yxt/yyth/biz/sysuser/SysUserMapper.xml new file mode 100644 index 0000000..f3222f5 --- /dev/null +++ b/src/main/java/com/yxt/yyth/biz/sysuser/SysUserMapper.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/yxt/yyth/biz/sysuser/SysUserRest.java b/src/main/java/com/yxt/yyth/biz/sysuser/SysUserRest.java new file mode 100644 index 0000000..b64d286 --- /dev/null +++ b/src/main/java/com/yxt/yyth/biz/sysuser/SysUserRest.java @@ -0,0 +1,60 @@ +package com.yxt.yyth.biz.sysuser; + +import cn.dev33.satoken.stp.SaTokenInfo; +import cn.dev33.satoken.stp.StpUtil; +import com.yxt.common.base.config.RedisUtil; +import com.yxt.common.core.result.ResultBean; +import com.yxt.yyth.api.sysuser.*; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + + +/** + * @author wangpengfei + * @date 2023/5/4 14:38 + */ +@Api(tags = "用户") +@RestController +@RequestMapping("/sysuser") +public class SysUserRest { + + @Autowired + SysUserService sysUserService; + + + @ApiOperation("登录") + @PostMapping("/doLogin") + public ResultBean doLogin(@RequestBody SysUser user) { + ResultBean rb = new ResultBean(); + SysUserVo sysUserVo = sysUserService.getUser(user.getUserName(), user.getPassword()); + if (sysUserVo.getUserName().equals("1")) { + SysUser sysUser = sysUserService.getSysUser(user.getUserName(), user.getPassword()); + StpUtil.login(sysUser.getId()); + SaTokenInfo tokenInfo = StpUtil.getTokenInfo(); + System.out.println(StpUtil.getTokenName()); + System.out.println(StpUtil.getTokenValue()); + return rb.success().setData(tokenInfo); + //return SaResult.ok("登录成功"); + } else if (sysUserVo.getUserName().equals("0")) { + return rb.setMsg("账户不存在或者密码不正确"); + } + return rb.setMsg("登录失败"); + } + + /** + * 注销 + * + * @return + */ + @ApiOperation("退出登录") + @RequestMapping("/signOut") + public ResultBean logout() { + ResultBean rb = new ResultBean(); + StpUtil.logout(); + return rb.setMsg("退出成功"); + } + + +} diff --git a/src/main/java/com/yxt/yyth/biz/sysuser/SysUserService.java b/src/main/java/com/yxt/yyth/biz/sysuser/SysUserService.java new file mode 100644 index 0000000..60c465b --- /dev/null +++ b/src/main/java/com/yxt/yyth/biz/sysuser/SysUserService.java @@ -0,0 +1,48 @@ +package com.yxt.yyth.biz.sysuser; + +import cn.hutool.core.bean.BeanUtil; +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.yxt.common.base.config.RedisUtil; +import com.yxt.common.base.config.component.FileUploadComponent; +import com.yxt.common.base.config.component.ImageUploadUtil; +import com.yxt.common.base.service.MybatisBaseService; +import com.yxt.common.base.utils.*; +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +import com.yxt.yyth.api.sysuser.SysUser; +import com.yxt.yyth.api.sysuser.SysUserVo; +import org.apache.ibatis.annotations.Param; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; + +import java.io.File; +import java.util.*; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; + +import static java.util.concurrent.Executors.newScheduledThreadPool; + +/** + * @author wangpengfei + * @date 2023/5/4 14:37 + */ +@Service +public class SysUserService extends MybatisBaseService { + + + + public SysUserVo getUser(String userName, String password) { + ResultBean rb = new ResultBean(); + SysUserVo sysUserVo = baseMapper.getUser(userName, password); + return sysUserVo; + } + + public SysUser getSysUser(String userName, String password) { + return baseMapper.selectOne(new QueryWrapper().eq("userName", userName).eq("password", password)); + } +}