Przeglądaj źródła

//登陆

private_deployment
xhxu 2 lat temu
rodzic
commit
000820a4a4
6 zmienionych plików z 78 dodań i 11 usunięć
  1. +7
    -0
      suimangAdmin/src/main/resources/db/migration/V202305230001__wx_c_user_basic_info.sql
  2. +52
    -6
      suimangCApi/src/main/java/com/iformall/controller/WxUserGrantController.java
  3. +2
    -1
      suimangService/src/main/java/com/iformall/enums/EnumCUserBasicInfoStatus.java
  4. +2
    -0
      suimangService/src/main/java/com/iformall/service/WxCUserBasicInfoService.java
  5. +11
    -4
      suimangService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java
  6. +4
    -0
      suimangService/src/main/java/com/iformall/utils/PasswordHelper.java

+ 7
- 0
suimangAdmin/src/main/resources/db/migration/V202305230001__wx_c_user_basic_info.sql Wyświetl plik

@@ -0,0 +1,7 @@
ALTER TABLE `wx_c_user_basic_info`
ADD UNIQUE INDEX `email_UNIQUE`(`email`) USING BTREE;


ALTER TABLE `wx_c_user_basic_info`
MODIFY COLUMN `phone` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '微信用户绑定的手机号' AFTER `final_tenant_id`,
MODIFY COLUMN `email` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '邮箱' AFTER `id_card`;

+ 52
- 6
suimangCApi/src/main/java/com/iformall/controller/WxUserGrantController.java Wyświetl plik

@@ -118,10 +118,10 @@ public class WxUserGrantController extends BaseController {
*/
@AuthIgnore
@PostMapping("/login")
@ApiOperation(value = "用户登录", notes = "{\"appId\":\"string\",\"code\":\"string\",\"scene\":\"string\",\"sceneAddress\":\"string\",\"latitude\":\"string\",\"longitude\":\"string\",\"systemInfo\":\"string\"}")
public ResultData userLogin(@RequestBody Map<String, String> map) {
@ApiOperation(value = "用户登录", notes = "{\"phone\":\"string\",\"password\":\"string\",\"code\":\"string\"}")
public ResultData loginByPhone(@RequestBody Map<String, String> map) {
String ipAddr = getIpAddr();
logger.debug("[" + ipAddr + "] WxUserGrantController::doLogin");
logger.debug("[" + ipAddr + "] WxUserGrantController::loginByPhone");
String code = map.get("code");
if(StringUtils.isBlank(code)){
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "请输入验证码");
@@ -147,14 +147,60 @@ public class WxUserGrantController extends BaseController {
return new ResultData(ErrorCode.USER_IS_EMPTY);
}

String encryptPassword = new PasswordHelper().encryptPassword(phone, password);
String encryptPassword = new PasswordHelper().encryptPassword(password);

if(!encryptPassword.equals(basicInfo.getPassword())){
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "手机号或密码错误");
}
wxCUserBasicInfoService.handleLoginUser(basicInfo);
Map resultMap = new HashMap();
resultMap.put("phone", basicInfo.getPhone());
// resultMap.put("phone", basicInfo.getPhone());
resultMap.put("token", basicInfo.getToken());
return new ResultData(resultMap);
}

@AuthIgnore
@PostMapping("/loginByEmail")
@ApiOperation(value = "用户登录", notes = "{\"email\":\"string\",\"password\":\"string\",\"code\":\"string\"}")
public ResultData loginByEmail(@RequestBody Map<String, String> map) {
String ipAddr = getIpAddr();
logger.debug("[" + ipAddr + "] WxUserGrantController::loginByEmail");
String code = map.get("code");
if(StringUtils.isBlank(code)){
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "请输入验证码");
}

String key = Constant.captchaPrev + ":" + ipAddr;
String code1 = RedisCacheUtils.getCacheString(redisTemplate, key);
if(StringUtils.isBlank(code1)){
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "验证码已过期");
}
if(!code1.equals(code)){
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "验证码不正确");
}

String email = map.get("email");
String password = map.get("password");
if(StringUtils.isBlank(email) || StringUtils.isBlank(password)){
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "邮箱或密码为空");
}

WxCUserBasicInfo basicInfo = wxCUserBasicInfoService.findInfoByEmail(getTenantInfo(), email);
if(basicInfo == null){
return new ResultData(ErrorCode.USER_IS_EMPTY);
}
if(EnumCUserBasicInfoStatus.NOT_ACTIVE.getCode().equals(basicInfo.getStatus())){
return new ResultData(ErrorCode.MEMBER_IS_LOCKED.getCode(),"该用户未激活");
}

String encryptPassword = new PasswordHelper().encryptPassword(password);

if(!encryptPassword.equals(basicInfo.getPassword())){
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "邮箱或密码错误");
}
wxCUserBasicInfoService.handleLoginUser(basicInfo);
Map resultMap = new HashMap();
// resultMap.put("phone", basicInfo.getPhone());
resultMap.put("token", basicInfo.getToken());
return new ResultData(resultMap);
}
@@ -328,7 +374,7 @@ public class WxUserGrantController extends BaseController {
return new ResultData(Result.ERROR, e.getMessage());
}
if(isValidCode) {
String encryptPassword = new PasswordHelper().encryptPassword(phone, pwd);
String encryptPassword = new PasswordHelper().encryptPassword(pwd);
WxCUserBasicInfo basicInfoUpd = new WxCUserBasicInfo();
basicInfoUpd.setId(basicInfo.getId());
basicInfoUpd.setPassword(encryptPassword);


+ 2
- 1
suimangService/src/main/java/com/iformall/enums/EnumCUserBasicInfoStatus.java Wyświetl plik

@@ -6,7 +6,8 @@ package com.iformall.enums;
public enum EnumCUserBasicInfoStatus {

NORMAL(0, "正常"),
LOCKED(1, "锁定"),;
LOCKED(1, "锁定"),
NOT_ACTIVE(2, "未激活"),;

public static EnumCUserBasicInfoStatus getEnum(Integer code) {
for (EnumCUserBasicInfoStatus value : values()) {


+ 2
- 0
suimangService/src/main/java/com/iformall/service/WxCUserBasicInfoService.java Wyświetl plik

@@ -93,6 +93,8 @@ public interface WxCUserBasicInfoService {
List<WxCUserBasicInfo> findByPhone(TenantEntity tenantEntity, String phone);
WxCUserBasicInfo findInfoByPhone(TenantEntity tenantEntity, String phone);

WxCUserBasicInfo findInfoByEmail(TenantEntity tenantInfo, String email);

/**
* 修改会员积分
*


+ 11
- 4
suimangService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java Wyświetl plik

@@ -674,13 +674,20 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService,IExc

@Override
public WxCUserBasicInfo findInfoByPhone(TenantEntity tenantEntity, String phone) {
WxCUserBasicInfo basic = null;
WxCUserBasicInfo basicQ = new WxCUserBasicInfo();
basicQ.setFinalTenantId(tenantEntity.getFinalTenantId());
basicQ.setPhone(phone);

basic = wxCUserBasicInfoMapper.selectOne(new QueryWrapper(basicQ));
return basic;
return wxCUserBasicInfoMapper.selectOne(new QueryWrapper(basicQ));
}

@Override
public WxCUserBasicInfo findInfoByEmail(TenantEntity tenantInfo, String email) {
WxCUserBasicInfo basicQ = new WxCUserBasicInfo();
basicQ.setFinalTenantId(tenantInfo.getFinalTenantId());
basicQ.setEmail(email);

return wxCUserBasicInfoMapper.selectOne(new QueryWrapper(basicQ));
}

@Override
@@ -844,7 +851,7 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService,IExc
basicInfo.setFinalTenantId(tenantEntity.getFinalTenantId());
basicInfo.setPhone(phone);
if(StringUtils.isNotBlank(pwd)){
String encryptPassword = new PasswordHelper().encryptPassword(phone, pwd);
String encryptPassword = new PasswordHelper().encryptPassword(pwd);
basicInfo.setPassword(encryptPassword);
}
this.save(basicInfo);


+ 4
- 0
suimangService/src/main/java/com/iformall/utils/PasswordHelper.java Wyświetl plik

@@ -23,6 +23,10 @@ public class PasswordHelper {
return new SimpleHash(algorithmName, password, ByteSource.Util.bytes(userName), hashIterations).toHex();
}

public String encryptPassword(String password) {
return new SimpleHash(algorithmName, password, hashIterations).toHex();
}



public static void main(String[] args) {


Ładowanie…
Anuluj
Zapisz