12 changed files with 486 additions and 0 deletions
@ -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(门户建设) <br/> |
||||
|
* File: SysUser.java <br/> |
||||
|
* Class: SysUser <br/> |
||||
|
* Description: 用户表. <br/> |
||||
|
* Copyright: Copyright (c) 2011 <br/> |
||||
|
* Company: https://gitee.com/liuzp315 <br/>
|
||||
|
* Makedate: 2021-08-03 00:24:30 <br/> |
||||
|
* |
||||
|
* @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; |
||||
|
} |
@ -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(门户建设) <br/> |
||||
|
* File: SysUserDto.java <br/> |
||||
|
* Class: SysUserDto <br/> |
||||
|
* Description: 用户表 数据传输对象. <br/> |
||||
|
* Copyright: Copyright (c) 2011 <br/> |
||||
|
* Company: https://gitee.com/liuzp315 <br/>
|
||||
|
* Makedate: 2021-08-03 00:24:30 <br/> |
||||
|
* |
||||
|
* @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; |
||||
|
|
||||
|
} |
@ -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; |
||||
|
} |
@ -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; |
||||
|
|
||||
|
} |
@ -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(门户建设) <br/> |
||||
|
* File: SysUserQuery.java <br/> |
||||
|
* Class: SysUserQuery <br/> |
||||
|
* Description: 用户表 查询条件. <br/> |
||||
|
* Copyright: Copyright (c) 2011 <br/> |
||||
|
* Company: https://gitee.com/liuzp315 <br/>
|
||||
|
* Makedate: 2021-08-03 00:24:30 <br/> |
||||
|
* |
||||
|
* @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; |
||||
|
} |
@ -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(门户建设) <br/> |
||||
|
* File: SysUserVo.java <br/> |
||||
|
* Class: SysUserVo <br/> |
||||
|
* Description: 用户表 视图数据对象. <br/> |
||||
|
* Copyright: Copyright (c) 2011 <br/> |
||||
|
* Company: https://gitee.com/liuzp315 <br/>
|
||||
|
* Makedate: 2021-08-03 00:24:30 <br/> |
||||
|
* |
||||
|
* @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<SysRoleVo> 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<String> roleSids = new ArrayList<>(); |
||||
|
|
||||
|
// private List<OrgList> orgList = new ArrayList<>();
|
||||
|
private String defaultOrgPath; |
||||
|
private String defaultOrgPathName; |
||||
|
|
||||
|
@ApiModelProperty("是否需要更换密码") |
||||
|
private Boolean needResetPsd; |
||||
|
@ApiModelProperty("工号") |
||||
|
private String jobNumber; |
||||
|
} |
@ -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; |
||||
|
|
||||
|
} |
@ -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; |
||||
|
} |
@ -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<SysUser> { |
||||
|
|
||||
|
@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); |
||||
|
|
||||
|
} |
@ -0,0 +1,7 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8" ?> |
||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
||||
|
<mapper namespace="com.yxt.yyth.biz.sysuser.SysUserMapper"> |
||||
|
<!-- <where> ${ew.sqlSegment} </where>--> |
||||
|
<!-- ${ew.customSqlSegment} --> |
||||
|
|
||||
|
</mapper> |
@ -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("退出成功"); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
} |
@ -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<SysUserMapper, SysUser> { |
||||
|
|
||||
|
|
||||
|
|
||||
|
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<SysUser>().eq("userName", userName).eq("password", password)); |
||||
|
} |
||||
|
} |
Loading…
Reference in new issue