Commit c0007805 by yangyang

海南单点登录

parent 63f55aaf
package com.founder.commonutils.publicEntity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
* (SysUser)表实体类
*
* @author jlt
* @since 2022-03-17 14:09:48
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "SysUser对象", description = "用户基本信息")
@TableName("SYS_USER")
public class SysUser implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "xxzj编号")
private String xxzjbh;
@ApiModelProperty(value = "警号")
private String policemanid;
@ApiModelProperty(value = "姓名")
private String truename;
@ApiModelProperty(value = "电话")
private String telephone;
@ApiModelProperty(value = "身份证号")
private String identitycard;
@ApiModelProperty(value = "单位代码")
@SuppressWarnings("serial")
@TableName("sys_user")
public class SysUser extends Model<SysUser> {
@TableId(type = IdType.INPUT)
/**主键编号*/
private String id;
/**
* 单位代码
*/
private String unitcode;
@ApiModelProperty(value = "单位名称")
private String unitname;
@ApiModelProperty(value = "登录用户名")
/**
* 用户名
*/
private String username;
@ApiModelProperty(value = "密码")
/**
* 密码
*/
private String password;
@ApiModelProperty(value = "权限0 是编辑新增删除(所有权限)1:新增修改自己的 2:查看自己的")
private String jurisdiction;
@ApiModelProperty(value = "更新时间")
private Date gxsj;
@ApiModelProperty(value = "入库时间")
private Date rksj;
@ApiModelProperty(value = "信息来源描述")
private String xxlyms;
@ApiModelProperty(value = "职务")
private String jobname;
@ApiModelProperty(value = "xxsc_pdbz")
private String xxsc_pdbz;
@ApiModelProperty(value = "录入人")
/**
* 真实姓名
*/
private String trueName;
/**
* 激活标志 (0是未激活 1激活)
*/
private String openFlag;
private String defaultModel;
private String remark;
/**
* 录入人
*/
private String lrr;
@ApiModelProperty(value = "录入单位代码")
/**
* 录入时间
*/
@DateTimeFormat(pattern = "yyyy-MM-ss HH:mm:ss")
private Date lrsj;
/**
* 改写人
*/
private String gxr;
/**
* 改写时间
*/
@DateTimeFormat(pattern = "yyyy-MM-ss HH:mm:ss")
private Date gxsj;
/**
* 录入单位代码
*/
private String lrdwdm;
@ApiModelProperty(value = "录入单位名称")
/**
* 录入单位名称
*/
private String lrdwmc;
/**
* 用户证件号码
*/
private String identitycard;
/**
* 用户性别
*/
private String sex;
/**
* 用户出生日期
*/
@DateTimeFormat(pattern = "yyyy-MM-ss HH:mm:ss")
private Date birthday;
/**
* 用户联系电话
*/
private String telephone;
/**
* 单位名称
*/
private String unitname;
/**
* 删除标志 0未删除 1删除
*/
private Integer scbz;
/**
* ip地址
*/
private String ip;
/**
* 用户级别
*/
private String grade;
/**
* 用户警号
*/
private String policemanid;
@ApiModelProperty(value = "更新人")
private String gxr;
@ApiModelProperty(value = "更新单位代码")
private String gxdwdm;
@ApiModelProperty(value = "更新单位名称")
private String gxdwmc;
private Integer defaultDesktop;
private String theme;
private Date lastlogintime;
private Date lastchecktime;
/**
* 信息资源授权字符串
*/
private String xxzyurl;
/**
* 工作桌面指挥员模块id
*/
private String gzzmZhy;
/**
* 工作桌面研判员员模块id
*/
private String gzzmYpy;
/**
* 工作桌面侦查员模块id
*/
private String gzzmZcy;
/**
* 用户角色
*/
private String gzzmPlay;
/**
* 管理员判断标志 00:否 01:是
*/
private String glybz;
/**
* 特权用户判断标志 00:否 01:是
*/
private String tqyhbz;
private String jgzPhotoZm;
private String jgzPhotoFm;
private String zbzxDwdm;
private String grdf;
/**
* 获取主键值
*
* @return 主键值
*/
@Override
protected Serializable pkVal() {
return this.id;
}
}
package com.founder.commonutils.util;
import javax.servlet.http.HttpServletRequest;
import java.net.InetAddress;
import java.net.UnknownHostException;
/**
* @Description 常用获取客户端信息的工具
*/
public class NetworkUtil {
/**
* 获取请求主机IP地址,如果通过代理进来,则透过防火墙获取真实IP地址;
*
* @param request
* @return
* @throws
*/
/**
* 获取当前网络ip
* @param request
* @return
*/
public static String getIpAddr(HttpServletRequest request){
String ipAddress = request.getHeader("X-Real-IP");
if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getHeader("Proxy-Client-IP");
}
if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getHeader("WL-Proxy-Client-IP");
}
if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getRemoteAddr();
if("127.0.0.1".equals(ipAddress) ||
"0:0:0:0:0:0:0:1".equals(ipAddress)){
//根据网卡取本机配置的IP
InetAddress inet=null;
try {
inet = InetAddress.getLocalHost();
} catch (UnknownHostException e) {
e.printStackTrace();
}
ipAddress= inet.getHostAddress();
}
}
//对于通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割
if(ipAddress!=null && ipAddress.length()>15){
//"***.***.***.***".length() = 15
if(ipAddress.indexOf(",")>0){
ipAddress = ipAddress.substring(0,ipAddress.indexOf(","));
}
}
return ipAddress;
}
}
package com.founder.publicapi.controller;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.founder.commonutils.publicEntity.MapRestResult;
import com.founder.commonutils.publicEntity.SysUser;
import com.founder.commonutils.publicEntity.SysUsers;
import com.founder.commonutils.util.AesEncryptUtil;
import com.founder.commonutils.util.Base64Util;
import com.founder.commonutils.util.JwtUser;
import com.founder.commonutils.util.NetworkUtil;
import com.founder.publicapi.service.SysUserService;
import com.founder.publicapi.service.SysUsersService;
import com.founder.servicebase.logs.OperLog;
import com.founder.servicebase.logs.OperationType;
......@@ -18,7 +24,11 @@ import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static com.founder.commonutils.util.AesEncryptUtil.desEncrypt;
......@@ -28,7 +38,8 @@ import static com.founder.commonutils.util.AesEncryptUtil.desEncrypt;
public class SysUsersController {
@Autowired
private SysUsersService sysUsersService;
@Autowired
SysUserService sysUserService;
//-----------新版jwt login登录
@ApiOperation(value = "登录")
// @OperLog(message = "登录",operation = OperationType.LOGIN)
......@@ -66,4 +77,37 @@ public class SysUsersController {
}
return MapRestResult.build(500,"登录失败",null);
}
@ApiOperation(value = "单点登录")
@OperLog(message = "单点登录",operation = OperationType.LOGIN)
@PostMapping("/loginByZjhm")
public MapRestResult loginByZjhm(@RequestBody SysUser user, HttpServletRequest request) throws Exception {
//使用AES-128-CBC加密模式
Date now = new Date();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
String today = simpleDateFormat.format(now);
String KEY = "maplogin" + today;
String IV = "map_vues" + today;
// 用于api测试接口
if("text".equals(user.getIdentitycard())){
// 从库中取一个身份证 进行单点登录用于测试接口是否通
SysUser one = sysUserService.getOne(new LambdaQueryWrapper<SysUser >()
.eq(SysUser ::getScbz, "0")
.last("limit 1"));
user.setIdentitycard(AesEncryptUtil.encrypt(one.getIdentitycard(), KEY, IV).trim()); }
String identityCard = desEncrypt(user.getIdentitycard(), KEY, IV).trim();
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("IDENTITYCARD", identityCard);
queryWrapper.eq("SCBZ", 0);
SysUser one = sysUserService.getOne(queryWrapper);
if (one == null) {
return MapRestResult.build(500, "该用户不存在", null);
}
// 拿到真实ip
one.setIp(NetworkUtil.getIpAddr(request));
Map<String,Object> map=new HashMap<>();
map.put("user",one);
return new MapRestResult(map);
}
}
package com.founder.publicapi.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.founder.commonutils.publicEntity.SysUser;
/**
* (SysUser)表数据库访问层
*
* @author yangyang
* @since 2022-07-13 14:09:47
*/
public interface SysUserMapper extends BaseMapper<SysUser> {
}
package com.founder.publicapi.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.founder.commonutils.publicEntity.SysUser;
/**
* (SysUser)表服务接口
*
* @author yangyang
* @since 2022-07-13 14:09:48
*/
public interface SysUserService extends IService<SysUser> {
}
package com.founder.publicapi.service.serviceimpl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.founder.commonutils.publicEntity.SysUser;
import com.founder.publicapi.mapper.SysUserMapper;
import com.founder.publicapi.service.SysUserService;
import org.springframework.stereotype.Service;
/**
* (SysUser)表服务实现类
*
* @author yangyang
* @since 2022-07-13 14:09:48
*/
@Service("sysUserService")
public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> implements SysUserService {
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment