This commit is contained in:
sxu 2025-02-20 10:03:21 +08:00
parent 5707a599fc
commit 30e6a135e4
9 changed files with 76 additions and 70 deletions

View File

@ -59,8 +59,8 @@ public interface RemoteUserService {
* @param source 请求来源
* @return 结果
*/
// @GetMapping("/user/custInfoPhoto/{phone}")
// public R<LoginUser> getCustInfoByPhone(@PathVariable("phone") String phone, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
@GetMapping("/user/custInfoPhoto/{phone}")
public R<LoginUser> getCustInfoByPhone(@PathVariable("phone") String phone, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
/**
* 通过用户名查询用户信息

View File

@ -56,10 +56,10 @@ public class RemoteUserFallbackFactory implements FallbackFactory<RemoteUserServ
return R.fail("获取用户失败:" + throwable.getMessage());
}
// @Override
// public R<LoginUser> getCustInfoByPhone(String phone, String source) {
// return R.fail("获取用户失败:" + throwable.getMessage());
// }
@Override
public R<LoginUser> getCustInfoByPhone(String phone, String source) {
return R.fail("获取用户失败:" + throwable.getMessage());
}
/**
* 通过用户名查询用户信息

View File

@ -149,8 +149,13 @@ public class TokenController {
LoginUser login = strategy.login(form.getUsername(), form.getPassword());
logService.saveLogin(form.getUsername(), "登录", "登录成功", null, "成功");
if (LoginType.PHONE_PASSWORD.equals(form.getLoginType()) || LoginType.PHONE_OTP.equals(form.getLoginType())) {
if (LoginType.CUST_PHONE_PASSWORD.equals(form.getLoginType()) || LoginType.CUST_PHONE_OPT.equals(form.getLoginType())) {
Map<String, Object> map = tokenService.createCustToken(login);
login.setToken((String) map.get("access_token"));
login.setExpireIn((Long) map.get("expires_in"));
login.setLogin((boolean) map.get("isLogin"));
return R.ok(login);
} else if (LoginType.PHONE_PASSWORD.equals(form.getLoginType()) || LoginType.PHONE_OTP.equals(form.getLoginType())) {
Map<String, Object> map = tokenService.createToken(login);
login.setToken((String) map.get("access_token"));
login.setExpireIn((Long) map.get("expires_in"));

View File

@ -100,32 +100,33 @@ public class TokenService {
/**
* 创建客户令牌
*/
// public Map<String, Object> createCustToken(LoginUser loginUser) {
// // 检查并删除已有的token
// delExistingToken(loginUser.getCustId());
// String token = IdUtils.fastUUID();
// Long custId = loginUser.getCustId();
// String phoneNumber = Sm4Utils.decrypt(loginUser.getSysUser().getPhonenumber());
// loginUser.setToken(token);
// loginUser.setCustId(custId);
// loginUser.setIpaddr(IpUtils.getIpAddr());
// loginUser.getSysUser().setPhonenumber(phoneNumber);
// refreshToken(loginUser);
// // Jwt存储信息
// Map<String, Object> claimsMap = new HashMap<String, Object>(16);
// claimsMap.put(SecurityConstants.USER_KEY, token);
// claimsMap.put(SecurityConstants.DETAILS_USER_ID, custId);
// claimsMap.put(SecurityConstants.DETAILS_USERNAME, phoneNumber);
// String accessToken = JwtUtils.createToken(claimsMap);
// Map<String, Object> rspMap = new HashMap<String, Object>(16);
// rspMap.put("access_token", accessToken);
// rspMap.put("expires_in", EXPIRETIME);
// rspMap.put("isLogin", isLogin(String.valueOf(custId)));
// long tokenTime = getTokenTime();
// //对token进行存储
// redisService.setCacheObject(LOGIN_USER_KEY + custId, token, tokenTime, TimeUnit.MINUTES);
// return rspMap;
// }
public Map<String, Object> createCustToken(LoginUser loginUser) {
// 检查并删除已有的token
delExistingToken(loginUser.getCustId());
String token = IdUtils.fastUUID();
Long custId = loginUser.getSysUser().getCustId();
String phoneNumber = Sm4Utils.decrypt(loginUser.getSysUser().getPhonenumber());
loginUser.setToken(token);
loginUser.setCustId(custId);
loginUser.setNickName(loginUser.getSysUser().getNickName());
loginUser.setIpaddr(IpUtils.getIpAddr());
loginUser.getSysUser().setPhonenumber(phoneNumber);
refreshToken(loginUser);
// Jwt存储信息
Map<String, Object> claimsMap = new HashMap<String, Object>(16);
claimsMap.put(SecurityConstants.USER_KEY, token);
claimsMap.put(SecurityConstants.DETAILS_USER_ID, custId);
claimsMap.put(SecurityConstants.DETAILS_USERNAME, phoneNumber);
String accessToken = JwtUtils.createToken(claimsMap);
Map<String, Object> rspMap = new HashMap<String, Object>(16);
rspMap.put("access_token", accessToken);
rspMap.put("expires_in", EXPIRETIME);
rspMap.put("isLogin", isLogin(String.valueOf(custId)));
long tokenTime = getTokenTime();
//对token进行存储
redisService.setCacheObject(LOGIN_USER_KEY + custId, token, tokenTime, TimeUnit.MINUTES);
return rspMap;
}
public boolean isLogin(String userId) {
String existingTokenKey = redisService.getCacheObject(LOGIN_USER_KEY + userId);

View File

@ -209,24 +209,24 @@ public class SysUserController extends BaseController {
/**
* 获取当前用户信息
*/
// @InnerAuth
// @GetMapping("/custInfoPhoto/{photoNumber}")
// public R<LoginUser> custInfoPhotoNumber(@PathVariable("photoNumber") String photoNumber) {
// SysUser sysUser = userService.selectCustInfoByPhoneNumber(photoNumber);
// if (StringUtils.isNull(sysUser)) {
// return R.fail("用户名或密码错误");
// }
// // 角色集合
// //Set<String> roles = permissionService.getRolePermission(sysUser);
// // 权限集合
// //Set<String> permissions = permissionService.getMenuPermission(sysUser);
// LoginUser loginUser = new LoginUser();
// loginUser.setCustId(sysUser.getCustId());
// loginUser.setSysUser(sysUser);
// //sysUserVo.setRoles(roles);
// //sysUserVo.setPermissions(permissions);
// return R.ok(loginUser);
// }
@InnerAuth
@GetMapping("/custInfoPhoto/{photoNumber}")
public R<LoginUser> custInfoPhotoNumber(@PathVariable("photoNumber") String photoNumber) {
SysUser sysUser = userService.selectCustInfoByPhoneNumber(photoNumber);
if (StringUtils.isNull(sysUser)) {
return R.fail("用户名或密码错误");
}
// 角色集合
//Set<String> roles = permissionService.getRolePermission(sysUser);
// 权限集合
//Set<String> permissions = permissionService.getMenuPermission(sysUser);
LoginUser loginUser = new LoginUser();
loginUser.setCustId(sysUser.getCustId());
loginUser.setSysUser(sysUser);
//sysUserVo.setRoles(roles);
//sysUserVo.setPermissions(permissions);
return R.ok(loginUser);
}
/**
* 注册用户信息

View File

@ -162,7 +162,7 @@ public interface SysUserMapper {
* @param
* @return 用户对象信息
*/
// public SysUser selectCustInfoByPhoneNumber(@Param("phoneNumber") String phoneNumber);
public SysUser selectCustInfoByPhoneNumber(@Param("phoneNumber") String phoneNumber);
public void transferUserInfo(SysUser sysUser);
}

View File

@ -237,5 +237,5 @@ public interface ISysUserService {
public AjaxResult systemUpdateUser(SysUser user);
// public SysUser selectCustInfoByPhoneNumber(String photoNumber);
public SysUser selectCustInfoByPhoneNumber(String photoNumber);
}

View File

@ -689,9 +689,9 @@ public class SysUserServiceImpl implements ISysUserService {
* @param photoNumber 用户名
* @return 用户对象信息
*/
// @Override
// public SysUser selectCustInfoByPhoneNumber(String photoNumber) {
// return userMapper.selectCustInfoByPhoneNumber(Sm4Utils.custEncrypt(photoNumber));
// }
@Override
public SysUser selectCustInfoByPhoneNumber(String photoNumber) {
return userMapper.selectCustInfoByPhoneNumber(Sm4Utils.custEncrypt(photoNumber));
}
}

View File

@ -380,18 +380,18 @@
</foreach>
</delete>
<!-- &lt;!&ndash;根据人员id集合获取人员信息&ndash;&gt;-->
<!-- <select id="selectCustInfoByPhoneNumber" resultType="com.bonus.system.api.domain.SysUser">-->
<!-- select cust_id as custId, cust_name as custName, cust_num as custNum, cust_photo_url as custPhotoUrl,-->
<!-- mobile as phonenumber, pwd as password-->
<!-- from cust_info-->
<!-- <where>-->
<!-- cust_state = 1 and (psn_type != 999 or psn_type is null)-->
<!-- <if test="phoneNumber != null and phoneNumber != ''">-->
<!-- and mobile = #{phoneNumber}-->
<!-- </if>-->
<!-- </where>-->
<!-- </select>-->
<!--根据人员id集合获取人员信息-->
<select id="selectCustInfoByPhoneNumber" resultType="com.bonus.system.api.domain.SysUser">
select cust_id as custId, cust_name as custName, cust_num as custNum, cust_photo_url as custPhotoUrl,
mobile as phonenumber, pwd as password
from cust_info
<where>
cust_state = 1 and (psn_type != 999 or psn_type is null)
<if test="phoneNumber != null and phoneNumber != ''">
and mobile = #{phoneNumber}
</if>
</where>
</select>
<!-- 安徽送变电绿智食堂用户数据转换工具 -->
<delete id="transferUserInfo" parameterType="com.bonus.system.api.domain.SysUser">