Просмотр исходного кода

[mall用户修改密码][修复]:mall用户修改密码

release_toaliyun_real
Stormeye.Wu 7 лет назад
Родитель
Сommit
eb5335c322
7 измененных файлов: 176 добавлений и 19 удалений
  1. +2
    -0
      mallinkAdmin/src/main/java/com/iformall/config/ShiroConfig.java
  2. +79
    -1
      mallinkAdmin/src/main/java/com/iformall/controller/MallUserInfoController.java
  3. +2
    -0
      mallinkService/src/main/java/com/iformall/common/ErrorCode.java
  4. +36
    -0
      mallinkService/src/main/java/com/iformall/enums/EnumMallUserStatus.java
  5. +3
    -0
      mallinkService/src/main/java/com/iformall/service/MallUserInfoService.java
  6. +53
    -18
      mallinkService/src/main/java/com/iformall/service/impl/MallUserInfoServiceImpl.java
  7. +1
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxMerchantBUserServiceImpl.java

+ 2
- 0
mallinkAdmin/src/main/java/com/iformall/config/ShiroConfig.java Просмотреть файл

@@ -117,6 +117,8 @@ public class ShiroConfig {
filterChainDefinitionMap.put("/swagger-resources/**","anon"); filterChainDefinitionMap.put("/swagger-resources/**","anon");
filterChainDefinitionMap.put("/webjars/**","anon"); filterChainDefinitionMap.put("/webjars/**","anon");
filterChainDefinitionMap.put("/wxMsgCallback/**","anon"); filterChainDefinitionMap.put("/wxMsgCallback/**","anon");
filterChainDefinitionMap.put("/user/sendvalidationcode","anon");
filterChainDefinitionMap.put("/user/updatepwd","anon");
filterChainDefinitionMap.put("/carCallback/**","anon"); filterChainDefinitionMap.put("/carCallback/**","anon");
filterChainDefinitionMap.put("/wxMallApply/add","anon"); filterChainDefinitionMap.put("/wxMallApply/add","anon");
filterChainDefinitionMap.put("/wxMallApply/sendvalidationcode","anon"); filterChainDefinitionMap.put("/wxMallApply/sendvalidationcode","anon");


+ 79
- 1
mallinkAdmin/src/main/java/com/iformall/controller/MallUserInfoController.java Просмотреть файл

@@ -2,13 +2,18 @@ package com.iformall.controller;


import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.iformall.common.ErrorCode; import com.iformall.common.ErrorCode;
import com.iformall.common.Result;
import com.iformall.common.ResultData; import com.iformall.common.ResultData;
import com.iformall.domain.po.*; import com.iformall.domain.po.*;
import com.iformall.enums.EnumMallUserStatus;
import com.iformall.service.*; import com.iformall.service.*;
import com.iformall.shiro.PasswordHelper; import com.iformall.shiro.PasswordHelper;
import com.iformall.shiro.UserSession; import com.iformall.shiro.UserSession;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils; import org.apache.shiro.SecurityUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@@ -48,6 +53,9 @@ public class MallUserInfoController extends BaseController {
@Autowired @Autowired
MallRolePermissionService mallRolePermissionService; MallRolePermissionService mallRolePermissionService;


@Autowired
WxMsgValidationcodeService wxMsgValidationcodeService;

@ApiOperation(value = "用户分页接口", response = String.class) @ApiOperation(value = "用户分页接口", response = String.class)
@GetMapping("lists") @GetMapping("lists")
public ResultData listAsPage(MallUserInfo userInfo, Integer pageNum, Integer pageSize) { public ResultData listAsPage(MallUserInfo userInfo, Integer pageNum, Integer pageSize) {
@@ -211,7 +219,6 @@ public class MallUserInfoController extends BaseController {
} }
info.setMenus(menus); info.setMenus(menus);
} else { } else {
// System.out.println("id:"+ SecurityUtils.getSubject().getSession().getId());
MallUserRole ur = new MallUserRole(); MallUserRole ur = new MallUserRole();
ur.setUid(info.getId()); ur.setUid(info.getId());
PageInfo<MallUserRole> page = mallUserRoleService.listAsPage(ur, 1, 1); PageInfo<MallUserRole> page = mallUserRoleService.listAsPage(ur, 1, 1);
@@ -233,4 +240,75 @@ public class MallUserInfoController extends BaseController {
} }
return new ResultData(info); return new ResultData(info);
} }

@GetMapping("sendvalidationcode")
@ApiImplicitParams({
@ApiImplicitParam(name = "userName", value = "手机号", dataType = "String", paramType = "query", required = true),
@ApiImplicitParam(name = "type", value = "场景(1:登录)", dataType = "Integer", paramType = "query", required = true)})
public ResultData sendvalidationcode(String userName, Integer type) {

MallUserInfo userQ = new MallUserInfo();
userQ.setUsername(userName);

MallUserInfo user = userInfoService.getByUsername(userName);
if (user==null) {
logger.error("用户不存在, userName: " + userName);
return new ResultData(ErrorCode.USER_IS_EMPTY);
}

if(user.getStatus() == EnumMallUserStatus.NOT_VALID.getCode()){
logger.error("用户已停用, userName: " + userName);
return new ResultData(ErrorCode.USER_IS_LOCKED);
}

if (StringUtils.isBlank(user.getPhone())) {
logger.error("用户手机号为空, userName: " + userName);
return new ResultData(ErrorCode.USER_PHONE_IS_NOT_FOUND);
}

WxMsgValidationcode wxMsgValidationcode = new WxMsgValidationcode();
wxMsgValidationcode.setTenantId(user.getTenantId());
wxMsgValidationcode.setPhone(user.getPhone());
wxMsgValidationcode.setType(type);
return wxMsgValidationcodeService.sendvalidationcode(wxMsgValidationcode);
}

@ApiOperation(value = "修改密码", notes = "{\"userName\",\"string\",\"code\",\"string\",\"pwd\",\"string\"}")
@PostMapping("/updatepwd")
public ResultData updatepwd(@RequestBody Map<String, String> params) {
// String phone,String code,String pwd
String userName = params.get("userName");
String code = params.get("code");
String pwd = params.get("pwd");

if (StringUtils.isBlank(userName)) {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "userName不能为空");
}
if (StringUtils.isBlank(code)) {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "验证码不能为空");
}
if (StringUtils.isBlank(pwd)) {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "密码不能为空");
}

MallUserInfo userQ = new MallUserInfo();
userQ.setUsername(userName);
MallUserInfo user = userInfoService.getByUsername(userName);
if (user==null) {
logger.error("用户不存在, userName: " + userName);
return new ResultData(ErrorCode.USER_IS_EMPTY);
}

user.setPassword(pwd);

PasswordHelper passwordHelper = new PasswordHelper();
passwordHelper.encryptPassword(user);


try {
return userInfoService.updatepwd(user, code);
} catch (Exception e) {
return new ResultData(Result.ERROR, e.getMessage());
}
}
} }

+ 2
- 0
mallinkService/src/main/java/com/iformall/common/ErrorCode.java Просмотреть файл

@@ -48,6 +48,7 @@ public enum ErrorCode{
/** /**
* 用户2000-2099 * 用户2000-2099
*/ */
USER_PHONE_IS_NOT_FOUND(1990,"手机号不存在"),
USER_IS_EMPTY(2000, "用户不存在"), USER_IS_EMPTY(2000, "用户不存在"),
PASSWORD_ERROR(2001, "密码错误"), PASSWORD_ERROR(2001, "密码错误"),
LOGIN_USER_OR_PWD_ERROR(2002, "用户名或密码错误"), LOGIN_USER_OR_PWD_ERROR(2002, "用户名或密码错误"),
@@ -59,6 +60,7 @@ public enum ErrorCode{
USER_NAME_IS_FOUND(2008,"用户名已存在"), USER_NAME_IS_FOUND(2008,"用户名已存在"),
USER_PHONE_IS_FOUND(2009,"手机号已存在"), USER_PHONE_IS_FOUND(2009,"手机号已存在"),



/** /**
* 商场/商户 * 商场/商户
*/ */


+ 36
- 0
mallinkService/src/main/java/com/iformall/enums/EnumMallUserStatus.java Просмотреть файл

@@ -0,0 +1,36 @@
package com.iformall.enums;

/**
* Created by Stormeye on 2018/08/09.
*/
public enum EnumMallUserStatus {

VALID(1, "有效"),
NOT_VALID(0, "无效")
;

public static EnumMallUserStatus getEnum(Integer code) {
for (EnumMallUserStatus value : values()) {
if (value.getCode().equals(code)) {
return value;
}
}
return null;
}

private Integer code;
private String message;

EnumMallUserStatus(Integer code, String message) {
this.code = code;
this.message = message;
}

public Integer getCode() {
return code;
}

public String getMessage() {
return message;
}
}

+ 3
- 0
mallinkService/src/main/java/com/iformall/service/MallUserInfoService.java Просмотреть файл

@@ -1,6 +1,7 @@
package com.iformall.service; package com.iformall.service;


import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.iformall.common.ResultData;
import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.MallUserInfo;


public interface MallUserInfoService { public interface MallUserInfoService {
@@ -73,4 +74,6 @@ public interface MallUserInfoService {


boolean cntByUserPhone(String phone, Long id); boolean cntByUserPhone(String phone, Long id);


ResultData updatepwd(MallUserInfo user, String code);

} }

+ 53
- 18
mallinkService/src/main/java/com/iformall/service/impl/MallUserInfoServiceImpl.java Просмотреть файл

@@ -2,27 +2,43 @@ package com.iformall.service.impl;


import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.iformall.common.ErrorCode;
import com.iformall.common.IdWorker; import com.iformall.common.IdWorker;
import com.iformall.common.Result;
import com.iformall.common.ResultData;
import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.MallUserInfo;
import com.iformall.domain.po.MallUserRole; import com.iformall.domain.po.MallUserRole;
import com.iformall.domain.po.WxMsgValidationcode;
import com.iformall.exception.MallinkException;
import com.iformall.mapper.MallUserInfoMapper; import com.iformall.mapper.MallUserInfoMapper;
import com.iformall.mapper.MallUserRoleMapper; import com.iformall.mapper.MallUserRoleMapper;
import com.iformall.mapper.WxMsgValidationcodeMapper;
import com.iformall.service.MallUserInfoService; import com.iformall.service.MallUserInfoService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;


import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors;


@Service @Service
public class MallUserInfoServiceImpl implements MallUserInfoService { public class MallUserInfoServiceImpl implements MallUserInfoService {
@Autowired
private final Logger logger = LoggerFactory.getLogger(this.getClass());

@Autowired
MallUserInfoMapper mallUserInfoMapper; MallUserInfoMapper mallUserInfoMapper;
@Autowired

@Autowired
MallUserRoleMapper userRoleMapper; MallUserRoleMapper userRoleMapper;


@Autowired
WxMsgValidationcodeMapper wxMsgValidationcodeMapper;



@Override @Override
public PageInfo<MallUserInfo> listAsPage(MallUserInfo record, Integer pageIndex, Integer pageSize) { public PageInfo<MallUserInfo> listAsPage(MallUserInfo record, Integer pageIndex, Integer pageSize) {
@@ -39,7 +55,7 @@ public class MallUserInfoServiceImpl implements MallUserInfoService {
if (record.getId() == null) { if (record.getId() == null) {
//record.setId(UUID.randomUUID().toString().replaceAll("-", "")); //record.setId(UUID.randomUUID().toString().replaceAll("-", ""));
final IdWorker idWorker = IdWorker.get(); final IdWorker idWorker = IdWorker.get();
record.setId(idWorker.nextId());
record.setId(idWorker.nextId());
mallUserInfoMapper.insertSelective(record); mallUserInfoMapper.insertSelective(record);
} else { } else {
mallUserInfoMapper.updateByPrimaryKeySelective(record); mallUserInfoMapper.updateByPrimaryKeySelective(record);
@@ -50,18 +66,14 @@ public class MallUserInfoServiceImpl implements MallUserInfoService {
public void deleteById(Long id) { public void deleteById(Long id) {
mallUserInfoMapper.deleteByPrimaryKey(id); mallUserInfoMapper.deleteByPrimaryKey(id);
} }

@Override @Override
public MallUserInfo getByUsername(String username) { public MallUserInfo getByUsername(String username) {
MallUserInfo userInfo = new MallUserInfo(); MallUserInfo userInfo = new MallUserInfo();
userInfo.setUsername(username); userInfo.setUsername(username);
return mallUserInfoMapper.selectOne(userInfo); return mallUserInfoMapper.selectOne(userInfo);
} }
@Override @Override
public long cntByUserName(String username) { public long cntByUserName(String username) {
MallUserInfo userInfo = new MallUserInfo(); MallUserInfo userInfo = new MallUserInfo();
@@ -85,18 +97,41 @@ public class MallUserInfoServiceImpl implements MallUserInfoService {


@Override @Override
public boolean cntByUserName(String username, Long id) { public boolean cntByUserName(String username, Long id) {
Map<String,Object> params=new HashMap<>();
params.put("username",username);
params.put("id",id);
return mallUserInfoMapper.cntByUserName(params)>0?true:false;
Map<String, Object> params = new HashMap<>();
params.put("username", username);
params.put("id", id);
return mallUserInfoMapper.cntByUserName(params) > 0 ? true : false;
} }


@Override @Override
public boolean cntByUserPhone(String phone, Long id) { public boolean cntByUserPhone(String phone, Long id) {
Map<String,Object> params=new HashMap<>();
params.put("phone",phone);
params.put("id",id);
return mallUserInfoMapper.cntByUserName(params)>0?true:false;
Map<String, Object> params = new HashMap<>();
params.put("phone", phone);
params.put("id", id);
return mallUserInfoMapper.cntByUserName(params) > 0 ? true : false;
}

@Override
public ResultData updatepwd(MallUserInfo user, String code) {
WxMsgValidationcode wxMsgValidationcode = new WxMsgValidationcode();
wxMsgValidationcode.setTenantId(user.getTenantId());
wxMsgValidationcode.setPhone(user.getPhone());
wxMsgValidationcode.setCode(code);
List<WxMsgValidationcode> wxmsgvalidationcodelist = wxMsgValidationcodeMapper.findList(wxMsgValidationcode);
Date currentdate = new Date();
wxmsgvalidationcodelist = wxmsgvalidationcodelist.stream().filter(validationcode ->
validationcode.getExpiretime().after(currentdate)).collect(Collectors.toList());
if (wxmsgvalidationcodelist.size() > 0) {
try {
mallUserInfoMapper.updateByPrimaryKey(user);
} catch (Exception e) {
logger.error("db failed: 用户-" + user.getUsername() + ", e:" + e.getMessage());
throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage());
}
} else {
return new ResultData(Result.ERROR,"验证码不存在或过期",false);
}
return new ResultData();
} }


} }

+ 1
- 0
mallinkService/src/main/java/com/iformall/service/impl/WxMerchantBUserServiceImpl.java Просмотреть файл

@@ -99,6 +99,7 @@ public class WxMerchantBUserServiceImpl implements WxMerchantBUserService {
public ResultData updatepwd(String appId, String phone, String code, String pwd) { public ResultData updatepwd(String appId, String phone, String code, String pwd) {
WxAppinfo appinfo = wxAppinfoMapper.findByAppId(appId); WxAppinfo appinfo = wxAppinfoMapper.findByAppId(appId);
WxMsgValidationcode wxMsgValidationcode = new WxMsgValidationcode(); WxMsgValidationcode wxMsgValidationcode = new WxMsgValidationcode();
wxMsgValidationcode.setTenantId(appinfo.getTenantId());
wxMsgValidationcode.setPhone(phone); wxMsgValidationcode.setPhone(phone);
wxMsgValidationcode.setCode(code); wxMsgValidationcode.setCode(code);
List<WxMsgValidationcode> wxmsgvalidationcodelist = wxMsgValidationcodeMapper.findList(wxMsgValidationcode); List<WxMsgValidationcode> wxmsgvalidationcodelist = wxMsgValidationcodeMapper.findList(wxMsgValidationcode);


Загрузка…
Отмена
Сохранить