package com.dg.core.controller;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.dg.core.HttpStatus;
|
import com.dg.core.ResultData;
|
import com.dg.core.annotation.Authorization;
|
import com.dg.core.annotation.CurrentUser;
|
import com.dg.core.db.gen.entity.HuaChengSysUser;
|
import com.dg.core.db.gen.entity.SysUser;
|
import com.dg.core.manager.TokenManager;
|
import com.dg.core.service.IHuaChengSysUserService;
|
import com.dg.core.util.SmsUtil;
|
import com.dg.core.util.Snowflake;
|
import com.dg.core.util.TableDataInfo;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.util.Assert;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.servlet.http.HttpServletRequest;
|
import java.time.LocalDateTime;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
@Api(tags = {"用户接口"})
|
@RestController
|
@RequestMapping("/user")
|
public class UserController extends BaseController {
|
@Autowired
|
com.dg.core.service.ISysUserService IUserService;
|
|
@Autowired
|
SmsUtil smsUtil;
|
|
@Autowired
|
TokenManager tokenManager;
|
|
/**
|
* 花城e+用户接口
|
*/
|
@Autowired
|
IHuaChengSysUserService iHuaChengSysUserService;
|
|
@ApiOperation("登录接口")
|
@PostMapping(path = "/login")
|
public ResultData login(@RequestParam String account, @RequestParam String password, HttpServletRequest request) {
|
Assert.notNull(account, "username can not be empty");
|
Assert.notNull(password, "password can not be empty");
|
|
SysUser user=null;
|
//管理员登录
|
user= IUserService.getUserByAccount(account);
|
|
if(user==null)
|
{
|
List<HuaChengSysUser> list=iHuaChengSysUserService.selectData("",account,"");
|
HuaChengSysUser huaChengSysUser=null;
|
|
if(list!=null && list.size()>0 )
|
{
|
huaChengSysUser=list.get(0);
|
}
|
|
if(huaChengSysUser==null || !password.equals(huaChengSysUser.getPassword()))
|
{
|
//提示用户名或密码错误
|
return ResultData.fail(HttpStatus.UNAUTHORIZED, "用户名或密码错误");
|
}
|
|
//本地表查询用户
|
user = IUserService.selectData(huaChengSysUser.getUserId()+"",null,null);
|
if (user == null) {
|
//本地没有此用户 新用户
|
SysUser newSysUser=new SysUser();
|
//默认 1系统后台用户
|
newSysUser.setUserType("3");
|
newSysUser.setPhonenumber(huaChengSysUser.getPhone());
|
newSysUser.setUserId(huaChengSysUser.getUserId());
|
newSysUser.setUserName(huaChengSysUser.getNickName());
|
newSysUser.setSex(huaChengSysUser.getSex());
|
newSysUser.setAvatar(huaChengSysUser.getImageUrl());
|
newSysUser.setCreateTime(LocalDateTime.now());
|
newSysUser.setUpdateTime(LocalDateTime.now());
|
newSysUser.setOpenid(huaChengSysUser.getOpenid());
|
IUserService.insertConfig(newSysUser);
|
}
|
|
user = IUserService.selectData(huaChengSysUser.getUserId()+"",null,null);
|
|
if (user == null) {
|
return ResultData.error("用户不存在!请联系管理员");
|
}
|
|
String token = tokenManager.getTokenByUserId(user.getUserId());
|
System.out.println("token "+token);
|
if (token == null) {
|
//生成一个token,保存用户登录状态
|
token = tokenManager.createToken(user.getUserId(), user.getUserId());
|
}
|
|
user.setLoginDate(LocalDateTime.now());
|
//更新登录时间
|
IUserService.updateConfig(user);
|
|
Map<String, Object> map = new HashMap<>();
|
map.put("token", token);
|
map.put("userId", user.getUserId());
|
map.put("userName", user.getUserName());
|
map.put("permission", user.getPermission());
|
map.put("userType", user.getUserType());
|
map.put("departmentId", user.getDepartmentId());
|
map.put("departmentName", user.getDepartmentName());
|
map.put("moreDepartmentIds", user.getMoreDepartmentIds());
|
|
return ResultData.success(map);
|
}
|
else
|
{
|
if(StringUtils.equals("4",user.getUserType()))
|
{
|
//提示用户名或密码错误
|
return ResultData.fail(HttpStatus.UNAUTHORIZED, "账户不存在");
|
}
|
|
if(!password.equals(user.getPassword()))
|
{
|
//提示用户名或密码错误
|
return ResultData.fail(HttpStatus.UNAUTHORIZED, "用户名或密码错误");
|
}
|
String token = tokenManager.getTokenByUserId(user.getUserId());
|
System.out.println("token "+token);
|
if (token == null) {
|
//生成一个token,保存用户登录状态
|
token = tokenManager.createToken(user.getUserId(), user.getUserId());
|
}
|
|
user.setLoginDate(LocalDateTime.now());
|
//更新登录时间
|
IUserService.updateConfig(user);
|
|
Map<String, Object> map = new HashMap<>();
|
map.put("token", token);
|
map.put("userId", user.getUserId());
|
map.put("userName", user.getUserName());
|
map.put("permission", user.getPermission());
|
map.put("userType", user.getUserType());
|
map.put("departmentId", user.getDepartmentId());
|
map.put("departmentName", user.getDepartmentName());
|
map.put("moreDepartmentIds", user.getMoreDepartmentIds());
|
|
return ResultData.success(map);
|
}
|
|
}
|
|
|
@ApiOperation("发送登录短信验证码")
|
@PostMapping(value = "/sendSms", consumes = "application/json")
|
public ResultData smsSend(@RequestBody SysUser user) {
|
return IUserService.smsSend(user);
|
}
|
|
|
@ApiOperation("账号密码验证登录")
|
@GetMapping(value = "/loginByAccount")
|
public ResultData loginByAccount(@RequestParam String phonenumber,@RequestParam String code) {
|
return IUserService.loginByAccount(phonenumber,code);
|
}
|
|
|
@ApiOperation("通过手机号获取用户信息 登录")
|
@PostMapping(value = "/loginPhionne")
|
public ResultData loginPhionne(@RequestParam String phonenumber)
|
{
|
if(StringUtils.isEmpty(phonenumber))
|
{
|
return ResultData.error("请输入手机号");
|
}
|
return IUserService.loginByPhonenumber(phonenumber);
|
}
|
|
/**
|
* 查询列表
|
*
|
* @return 参数配置信息
|
*/
|
@ApiOperation("用户列表接口")
|
@GetMapping("/getlist")
|
@Authorization
|
public TableDataInfo selectConfigList(@RequestParam(value = "pageNum",required = false) Integer pageNum,
|
@RequestParam(value = "pageSize",required = false) Integer pageSize,
|
@RequestParam(value = "keyword",required = false) String keyword)
|
{
|
Assert.notNull(pageNum, "pageNum can not be empty");
|
Assert.notNull(pageSize, "pageSize can not be empty");
|
Page<SysUser> pageParam = new Page<>(pageNum,pageSize);
|
List<SysUser> list = IUserService.selectConfigList(pageParam,pageSize,null,keyword,null,"1");
|
|
int num=IUserService.selectNum(null,keyword,null,"1");
|
return getDataTable(list,num);
|
}
|
|
|
/**
|
* 新增用户
|
*
|
* @param config 参数配置信息
|
* @return 结果
|
*/
|
@ApiOperation("新增用户接口")
|
@PostMapping("/add")
|
@Authorization
|
public ResultData insertConfig(@RequestBody SysUser config, @CurrentUser SysUser sysUser)
|
{
|
Assert.notNull(config, "parameter can not be empty");
|
|
if(StringUtils.isEmpty(config.getLoginName()))
|
{
|
return error("账户不能为空");
|
}
|
|
if(StringUtils.isEmpty(config.getPassword()))
|
{
|
return error("密码不能为空");
|
}
|
|
if(StringUtils.isEmpty(config.getUserName()))
|
{
|
return error("昵称不能为空");
|
}
|
|
if(StringUtils.isEmpty(config.getPhonenumber()))
|
{
|
return error("手机号不能为空");
|
}
|
|
|
|
|
SysUser user = IUserService.selectData("",config.getPhonenumber(),"");
|
SysUser user2 = IUserService.selectData("","",config.getLoginName());
|
if (user != null) {
|
if(StringUtils.equals("4",user.getUserType()))
|
{
|
config.setUserId(user.getUserId());
|
config.setCreateBy(user.getUserId()+"");
|
config.setUserType("3");
|
config.setIsDivisionHead("1");
|
config.setUpdateTime(LocalDateTime.now());
|
config.setMasterIds(user2.getMasterIds());
|
config.setDepartmentIds(config.getDepartmentIds());
|
config.setDepartmentIdStr(config.getDepartmentIdStr());
|
config.setMattersIds(config.getMattersIds());
|
config.setMasterNames(config.getMasterNames());
|
config.setMattersNames(config.getMattersNames());
|
return toAjax(IUserService.updateConfig(config));
|
}
|
else
|
{
|
//提示用户名或密码错误
|
return error("该用户已存在!");
|
}
|
}
|
|
if(user2 != null)
|
{
|
if(StringUtils.equals("4",user2.getUserType()))
|
{
|
config.setUserId(user2.getUserId());
|
config.setCreateBy(user2.getUserId()+"");
|
config.setUserType("3");
|
config.setIsDivisionHead("1");
|
config.setUpdateTime(LocalDateTime.now());
|
config.setMasterIds(user2.getMasterIds());
|
config.setDepartmentIds(config.getDepartmentIds());
|
config.setDepartmentIdStr(config.getDepartmentIdStr());
|
config.setMattersIds(config.getMattersIds());
|
config.setMasterNames(config.getMasterNames());
|
config.setMattersNames(config.getMattersNames());
|
return toAjax(IUserService.updateConfig(config));
|
}
|
else
|
{
|
//提示用户名或密码错误
|
return error("该用户已存在!");
|
}
|
}
|
|
config.setCreateBy(sysUser.getUserId()+"");
|
config.setUserId(Snowflake.getId()+"");
|
config.setUserType("3");
|
config.setIsDivisionHead("1");
|
config.setMoreDepartmentIds(config.getDepartmentId());
|
config.setCreateTime(LocalDateTime.now());
|
config.setUpdateTime(LocalDateTime.now());
|
|
return toAjax(IUserService.insertConfig(config));
|
}
|
|
/**
|
* 更新聊天记录
|
*
|
* @param config 参数配置信息
|
* @return 结果
|
*/
|
@ApiOperation("修改用户接口")
|
@PostMapping("/update")
|
@Authorization
|
public ResultData updateConfig(@RequestBody SysUser config,@CurrentUser SysUser sys)
|
{
|
if(config.getId()==null)
|
{
|
return error("Id不能为空");
|
}
|
|
if(StringUtils.isEmpty(config.getLoginName()))
|
{
|
return error("账户不能为空");
|
}
|
|
if(StringUtils.isEmpty(config.getDepartmentId()))
|
{
|
return error("请选择部门");
|
}
|
|
config.setMoreDepartmentIds(config.getDepartmentId());
|
config.setPassword(null);
|
config.setUpdateBy(sys.getUserId()+"");
|
|
return toAjax(IUserService.updateConfig(config));
|
}
|
|
/**
|
* 删除用户记录
|
*
|
* @return 结果
|
*/
|
@ApiOperation("删除用户接口(真删除)")
|
@DeleteMapping("/delete/{userId}")
|
@Authorization
|
public ResultData deleteConfigById(@PathVariable("userId") String userId)
|
{
|
if(StringUtils.isEmpty(userId))
|
{
|
return error("userId不能为空");
|
}
|
return toAjax(IUserService.deleteConfigById(userId));
|
}
|
|
|
|
/**
|
* 删除用户记录
|
*
|
* @return 结果
|
*/
|
@ApiOperation("删除用户接口(修改状态 设置成已删除)")
|
@DeleteMapping("/deleteflag/{userId}")
|
@Authorization
|
public ResultData delete(@PathVariable("userId") String userId)
|
{
|
if(StringUtils.isEmpty(userId))
|
{
|
return error("userId不能为空");
|
}
|
|
SysUser sysUser=IUserService.selectData(userId,null,null);
|
//删除标志(0代表存在 2代表删除)
|
sysUser.setDelFlag("2");
|
return toAjax(IUserService.updateConfig(sysUser));
|
}
|
|
|
/**
|
* 修改用户密码接口
|
*
|
* @param config 参数配置信息
|
* @return 结果
|
*/
|
@ApiOperation("修改用户密码接口")
|
@PostMapping("/updatepws")
|
@Authorization
|
public ResultData updatePws(@RequestBody SysUser config)
|
{
|
if(config.getUserId()==null)
|
{
|
return error("userId不能为空");
|
}
|
|
if(StringUtils.isEmpty(config.getPassword()))
|
{
|
return error("密码不能为空");
|
}
|
|
SysUser sysUser=IUserService.selectData(config.getUserId()+"",null,null);
|
if(sysUser==null)
|
{
|
return error("用户不存在");
|
}
|
|
if(StringUtils.equals(sysUser.getPassword(),config.getPassword()))
|
{
|
return error("输入密码与原密码不能相同!");
|
}
|
|
return toAjax(IUserService.updateConfig(config));
|
}
|
|
|
/**
|
* 获取登录人员信息
|
*
|
* @return 结果
|
*/
|
@ApiOperation(value = "获取登录人员信息,userType=1 为超级管理员 isDivisionHead=1 为部门领导",response = SysUser.class)
|
@PostMapping("/getLoginInformation")
|
@Authorization
|
public ResultData getLoginInformation(@CurrentUser SysUser sysUse)
|
{
|
return ResultData.success(sysUse);
|
}
|
|
|
|
|
@ApiOperation("切换部门接口")
|
@GetMapping(value = "/switch/department")
|
public ResultData switchDepartment(@RequestParam(value = "departmentId",required = false) String departmentId,
|
@CurrentUser SysUser sysUse)
|
{
|
sysUse.setDepartmentId(departmentId);
|
return toAjax(IUserService.updateConfig(sysUse));
|
}
|
|
|
|
}
|