package com.appscomm.plm.service.impl;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import org.guzz.dao.GuzzBaseDao;
import org.guzz.orm.se.SearchExpression;
import org.guzz.orm.se.Terms;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import com.alibaba.fastjson.JSON;
import com.appscomm.common.AccountTypeEnum;
import com.appscomm.common.AppscommException;
import com.appscomm.common.AppscommTokenManager;
import com.appscomm.common.ContactTypeEnum;
import com.appscomm.common.calibrator.AppClientCalibrator;
import com.appscomm.common.calibrator.CalibratorChain;
import com.appscomm.common.calibrator.CalibratorResult;
import com.appscomm.common.calibrator.ParamExistCalibrator;
import com.appscomm.common.redis.support.RedisOpsTemplate;
import com.appscomm.common.utils.BeanCopierUtils;
import com.appscomm.plm.common.calibrator.AccountTypeCalibrator;
import com.appscomm.plm.domain.PlmLoginAccount;
import com.appscomm.plm.domain.PlmUser;
import com.appscomm.plm.domain.PlmUserContact;
import com.appscomm.plm.domain.PlmUserInfo;
import com.appscomm.plm.inout.BaseUserResponse;
import com.appscomm.plm.inout.UserForgotPasswordRequest;
import com.appscomm.plm.inout.UserLoginRequest;
import com.appscomm.plm.inout.UserLoginResponse;
import com.appscomm.plm.inout.UserModifyPasswordReqeust;
import com.appscomm.plm.inout.UserRegisterRequest;
import com.appscomm.plm.inout.UserRegisterResponse;
import com.appscomm.plm.service.AccountService;
import com.appscomm.plm.vo.AccountUserVo;
import com.appscomm.plm.vo.PlmUserInfoVo;
@Service("accountService")
public class AccountServiceImpl implements AccountService {
@Autowired
private GuzzBaseDao appscmBaseDao;
@Autowired
private RedisOpsTemplate redisOpsTemplate;
private Logger logger = LoggerFactory.getLogger(getClass());
@Override
public UserLoginResponse login(UserLoginRequest request) {
logger.info("UserLoginRequest="+JSON.toJSON(request).toString());
UserLoginResponse response = new UserLoginResponse(request.getSeq(),request.getVersionNo());
try{
//参数校验
CalibratorChain calibratorChain = new CalibratorChain();
Object[] existParams = new Object[]{
new String[]{request.getSeq(),"CRM101","随机序列码不能为空"},
new String[]{request.getVersionNo(),"CRM104","接口版本号不能为空"},
new String[]{request.getClientType(),"CRM105","客户端类型不能为空"},
new String[]{request.getAccountId(),"APPS-10001","账户不能为空"},
new String[]{request.getPassword(),"APPS-10013","密码不能为空"}};
calibratorChain.
addCalibrator(ParamExistCalibrator.instance()).
addCalibrator(AppClientCalibrator.instance());
CalibratorResult calibratorResult= calibratorChain.execute(new Object[]{existParams,request.getClientType()});
if(calibratorResult != null &&
!CalibratorResult.RESULT_SUCCESS.equalsIgnoreCase(calibratorResult.getCode())){
response = new UserLoginResponse(request.getSeq(),request.getVersionNo(),calibratorResult.getCode(),calibratorResult.getMessage());
logger.info("UserLoginResponse="+JSON.toJSON(response).toString());
return response;
}
AccountUserVo accountUserVo = getPlmAccount(request.getAccountId());
if(accountUserVo == null){
response = new UserLoginResponse(request.getSeq(),request.getVersionNo(),"APPS-10006","非法账户");
logger.info("UserLoginResponse="+JSON.toJSON(response).toString());
return response;
}
//新旧密码是否相等
if(!request.getPassword().equals(accountUserVo.getAccountPassword())){
response = new UserLoginResponse(request.getSeq(),request.getVersionNo(),"APPS-10006","非法账户");
logger.info("UserLoginResponse="+JSON.toJSON(response).toString());
return response;
}
//判断密码加密方式MD5 32位
if(request.getPassword().length()!=32){
response = new UserLoginResponse(request.getSeq(),request.getVersionNo(),"APPS-10013","密码MD5加密方式");
logger.info("UserLoginResponse="+JSON.toJSON(response).toString());
return response;
}
String token = AppscommTokenManager.getInstance().generateToken(request.getAccountId());
PlmUser plmUser = getPlmUser(accountUserVo.getUserId().intValue());
plmUser.setLoginToken(token);
appscmBaseDao.update(plmUser);
response.setToken(token);
response.setUserId(accountUserVo.getUserId().intValue());
response.setUserInfoId(accountUserVo.getUserInfoId().intValue());
//登录返回的附加信息
Map<String, Object> respMap = new HashMap<String, Object>();
//用户个人信息
PlmUserInfoVo userInfo = getUesrInfo(accountUserVo.getUserInfoId());
//绑定信息
//目标信息
//睡眠提醒
//事项提醒
//久坐提醒
//通知开关
//固件版本号
respMap.put("userInfo", userInfo);
response.setUserMap(respMap);
}catch(AppscommException e){
logger.info(e.getMessage());
response = new UserLoginResponse(request.getSeq(),request.getVersionNo());
response.setResultCode(e.getErrCode());;
response.setResultMessage(e.getMessage());
}catch(Exception e){
logger.info(e.getMessage());
response = new UserLoginResponse(request.getSeq(),request.getVersionNo());
response.setResultCode(BaseUserResponse.RESULT_UNKNOWN);
response.setResultMessage(e.getMessage());
}
logger.info("UserLoginResponse="+JSON.toJSON(response).toString());
return response;
}
private PlmUserInfoVo getUesrInfo(Long userInfoId) {
SearchExpression se =SearchExpression.forClass(PlmUserInfo.class) ;
se.and(Terms.eq("userInfoId",userInfoId.intValue()));
PlmUserInfo plmUserInfo = (PlmUserInfo)appscmBaseDao.findObject(se);
if(plmUserInfo != null){
PlmUserInfoVo plmUserInfoVo = new PlmUserInfoVo();
BeanCopierUtils.copyProperty(plmUserInfo, plmUserInfoVo);
return plmUserInfoVo;
}
return null;
}
private AccountUserVo getPlmAccount(String accountId) {
Map<String,Object> params = new HashMap<String,Object>();
params.put("accountId", accountId);
return (AccountUserVo)appscmBaseDao.findObject("selectCrmAccount", params);
}
private PlmUser getPlmUser(Integer userId) {
SearchExpression se =SearchExpression.forClass(PlmUser.class) ;
se.and(Terms.eq("userId",userId));
return (PlmUser)appscmBaseDao.findObject(se);
}
@Transactional(propagation=Propagation.REQUIRED)
@Override
public UserRegisterResponse register(UserRegisterRequest request) {
logger.info("UserRegisterRequest="+JSON.toJSON(request).toString());
UserRegisterResponse response = new UserRegisterResponse();
try{
//参数校验
CalibratorChain calibratorChain = new CalibratorChain();
Object[] existParams = new Object[]{
new String[]{request.getSeq(),"CRM101","随机序列码不能为空"},
new String[]{request.getVersionNo(),"CRM104","接口版本号不能为空"},
new String[]{request.getClientType(),"CRM105","客户端类型不能为空"},
new String[]{request.getAccountId(),"APPS-10001","账户不能为空"},
new String[]{request.getAccountPassword(),"APPS-10004","账户注册密码不能为空"}};
calibratorChain.
addCalibrator(ParamExistCalibrator.instance()).
addCalibrator(AccountTypeCalibrator.instance()).
addCalibrator(AppClientCalibrator.instance());
CalibratorResult calibratorResult= calibratorChain.execute(new Object[]{existParams,request.getAccountType(),request.getClientType()});
if(calibratorResult != null &&
!CalibratorResult.RESULT_SUCCESS.equalsIgnoreCase(calibratorResult.getCode())){
response = new UserRegisterResponse(request.getSeq(),request.getVersionNo(),calibratorResult.getCode(),calibratorResult.getMessage());
logger.info("UserRegisterResponse="+JSON.toJSON(response).toString());
return response;
}
//校验账户是否已经存在
SearchExpression se =SearchExpression.forClass(PlmLoginAccount.class) ;
se.and(Terms.eq("accountId",request.getAccountId()));
PlmLoginAccount account = (PlmLoginAccount)appscmBaseDao.findObject(se);
if(account != null){
response = new UserRegisterResponse(request.getSeq(),request.getVersionNo(),"APPS-10003","账户已经存在");
logger.info("UserRegisterResponse="+JSON.toJSON(response).toString());
return response;
}
//判断密码加密方式MD5 32位
if(request.getAccountPassword().length() != 32){
response = new UserRegisterResponse(request.getSeq(),request.getVersionNo(),"APPS-10013","密码MD5加密方式");
logger.info("UserRegisterResponse="+JSON.toJSON(response).toString());
return response;
}
PlmUserInfo userInfo = new PlmUserInfo(PlmUserInfo.IS_MANAGE_YES);
//保存用户资料
appscmBaseDao.insert(userInfo);
PlmUser user = new PlmUser(request.getAccountPassword(),userInfo.getUserInfoId());
//保存系统用户资料
user.setUserInfoId(userInfo.getUserInfoId());
appscmBaseDao.insert(user);
//回填关联系统用户ID
userInfo.setRefUserId(user.getUserId());
/**
* 用户基本资料
*/
userInfo.setBirthday(request.getBirthday());
userInfo.setUserName(request.getUserName());
userInfo.setSex(request.getSex());
userInfo.setHeight(request.getHeight());
userInfo.setHeightUnit(request.getHeightUnit());
userInfo.setWeight(request.getWeight());
userInfo.setWeightUnit(request.getWeightUnit());
appscmBaseDao.update(userInfo);
//保存账户资料
account = new PlmLoginAccount(request.getAccountId(),user.getUserId(),request.getAccountType(),new Date());
account.setIsActivity(PlmLoginAccount.IS_ACTIVITY_YES);
String activityCode = AppscommTokenManager.getInstance().generateToken(request.getAccountId());
if(AccountTypeEnum.EMAIL.getType() == request.getAccountType()){
account.setActivityCode(activityCode);
// account.setAccountType(PlmLoginAccount.IS_ACTIVITY_NO);
//调用邮件发送组件,发送激活连接
// PlmParam deployParam = paramService.getUniquePlmParam(PlmParam.KEY_DEPLOY_URL);
// String activityUrl = deployParam.getParamValue1() + "?account="+request.getAccountId()+"&activeToken="+activityCode;
//MailUtil.instance().postMail(new MailInfo(new String[]{request.getAccountId()}, "账户激活", activityUrl));
/*
* 保存联系方式
*/
PlmUserContact userContact = new PlmUserContact(userInfo.getUserInfoId(),ContactTypeEnum.EMAIL.getType(),request.getAccountId());
appscmBaseDao.insert(userContact);
}else if(AccountTypeEnum.PHONE.getType() == request.getAccountType()){
account.setActivityCode(AppscommTokenManager.getInstance().generateSmsCode());
// account.setAccountType(PlmLoginAccount.IS_ACTIVITY_NO);
//TODO 调用短信发送组件,发送激活码
PlmUserContact userContact = new PlmUserContact(userInfo.getUserInfoId(),ContactTypeEnum.PHONE.getType(),request.getAccountId());
appscmBaseDao.insert(userContact);
}else if(AccountTypeEnum.WEIXIN.getType() == request.getAccountType()){
PlmUserContact userContact = new PlmUserContact(userInfo.getUserInfoId(),ContactTypeEnum.WEIXIN.getType(),request.getAccountId());
appscmBaseDao.insert(userContact);
}else if(AccountTypeEnum.WEIBO.getType() == request.getAccountType()){
PlmUserContact userContact = new PlmUserContact(userInfo.getUserInfoId(),ContactTypeEnum.WEIBO.getType(),request.getAccountId());
appscmBaseDao.insert(userContact);
}else if(AccountTypeEnum.QQ.getType() == request.getAccountType()){
PlmUserContact userContact = new PlmUserContact(userInfo.getUserInfoId(),ContactTypeEnum.QQ.getType(),request.getAccountId());
appscmBaseDao.insert(userContact);
}
account.setUserId(user.getUserId());
response = new UserRegisterResponse(request.getSeq(),request.getVersionNo());
appscmBaseDao.insert(account);
Map<String, Object> userMap = new HashMap<String,Object>();
userMap.put("userId", user.getUserId());
userMap.put("userInfoId", user.getUserInfoId());
response.setUserMap(userMap);
}catch(AppscommException e){
logger.info(e.getMessage());
response = new UserRegisterResponse(request.getSeq(),request.getVersionNo());
response.setResultCode(e.getErrCode());;
response.setResultMessage(e.getMessage());
}catch(Exception e){
logger.info(e.getMessage());
response = new UserRegisterResponse(request.getSeq(),request.getVersionNo());
response.setResultCode(BaseUserResponse.RESULT_UNKNOWN);
response.setResultMessage(e.getMessage());
}
logger.info("UserRegisterResponse="+JSON.toJSON(response).toString());
return response;
}
@Override
public BaseUserResponse forgotPassword(UserForgotPasswordRequest request) {
BaseUserResponse response = new BaseUserResponse(request.getSeq(), request.getVersionNo());
try{
//参数校验
CalibratorChain calibratorChain = new CalibratorChain();
Object[] existParams = new Object[]{
new String[]{request.getSeq(),"CRM101","随机序列码不能为空"},
new String[]{request.getVersionNo(),"CRM104","接口版本号不能为空"},
new String[]{request.getClientType(),"CRM105","客户端类型不能为空"},
new String[]{request.getAccountId(),"APPS-10001","账户不能为空"}};
calibratorChain.
addCalibrator(ParamExistCalibrator.instance()).
addCalibrator(AppClientCalibrator.instance());
CalibratorResult calibratorResult= calibratorChain.execute(new Object[]{existParams,request.getClientType()});
if(calibratorResult != null &&
!CalibratorResult.RESULT_SUCCESS.equalsIgnoreCase(calibratorResult.getCode())){
response = new BaseUserResponse(request.getSeq(),request.getVersionNo(),calibratorResult.getCode(),calibratorResult.getMessage());
logger.info("forgotPassword="+JSON.toJSON(response).toString());
return response;
}
//根据密码找回来类型进行处理
int findType = request.getFindType();
if(AccountTypeEnum.EMAIL.getType()==findType){
//邮箱找回
//TODO
}else if(AccountTypeEnum.PHONE.getType()==findType){
//短信找回
//TODO
}
}catch(AppscommException e){
logger.info(e.getMessage());
response = new UserRegisterResponse(request.getSeq(),request.getVersionNo());
response.setResultCode(e.getErrCode());
response.setResultMessage(e.getMessage());
}catch(Exception e){
logger.info(e.getMessage());
response = new UserRegisterResponse(request.getSeq(),request.getVersionNo());
response.setResultCode(BaseUserResponse.RESULT_UNKNOWN);
response.setResultMessage(e.getMessage());
}
return response;
}
@Override
public BaseUserResponse modifyPassword(UserModifyPasswordReqeust request) {
BaseUserResponse response = new BaseUserResponse(request.getSeq(), request.getVersionNo());
try{
//参数校验
CalibratorChain calibratorChain = new CalibratorChain();
Object[] existParams = new Object[]{
new String[]{request.getSeq(),"CRM101","随机序列码不能为空"},
new String[]{request.getVersionNo(),"CRM104","接口版本号不能为空"},
new String[]{request.getClientType(),"CRM105","客户端类型不能为空"},
new String[]{request.getAccountId(),"APPS-10001","账户不能为空"}};
calibratorChain.
addCalibrator(ParamExistCalibrator.instance()).
addCalibrator(AppClientCalibrator.instance());
CalibratorResult calibratorResult= calibratorChain.execute(new Object[]{existParams,request.getClientType()});
if(calibratorResult != null &&
!CalibratorResult.RESULT_SUCCESS.equalsIgnoreCase(calibratorResult.getCode())){
response = new BaseUserResponse(request.getSeq(),request.getVersionNo(),calibratorResult.getCode(),calibratorResult.getMessage());
logger.info("modifyPassword="+JSON.toJSON(response).toString());
return response;
}
//根据账号查询账户信息
AccountUserVo accountUserVo = getPlmAccount(request.getAccountId());
if(accountUserVo == null){
response = new BaseUserResponse(request.getSeq(),request.getVersionNo(),"APPS-10006","非法账户");
logger.info("modifyPassword="+JSON.toJSON(response).toString());
return response;
}
//旧密码是否匹配
if(!request.getOldPassword().equals(accountUserVo.getAccountPassword())){
response = new BaseUserResponse(request.getSeq(),request.getVersionNo(),"APPS-10006","非法账户");
logger.info("modifyPassword="+JSON.toJSON(response).toString());
return response;
}
//判断密码长度是否是MD5 32位
if(request.getNewPassword().length()!=32){
response = new BaseUserResponse(request.getSeq(),request.getVersionNo(),"APPS-10013","密码MD5加密方式");
logger.info("modifyPassword="+JSON.toJSON(response).toString());
return response;
}
PlmUser plmUser = getPlmUser(accountUserVo.getUserId().intValue());
plmUser.setAccountPassword(request.getNewPassword());
appscmBaseDao.update(plmUser);
}catch(AppscommException e){
logger.info(e.getMessage());
response = new UserRegisterResponse(request.getSeq(),request.getVersionNo());
response.setResultCode(e.getErrCode());;
response.setResultMessage(e.getMessage());
}catch(Exception e){
logger.info(e.getMessage());
response = new UserRegisterResponse(request.getSeq(),request.getVersionNo());
response.setResultCode(BaseUserResponse.RESULT_UNKNOWN);
response.setResultMessage(e.getMessage());
}
return response;
}
public void setAppscmBaseDao(GuzzBaseDao appscmBaseDao) {
this.appscmBaseDao = appscmBaseDao;
}
public void setRedisOpsTemplate(RedisOpsTemplate redisOpsTemplate) {
this.redisOpsTemplate = redisOpsTemplate;
}
}
===
package com.appscomm.common;
import java.util.Random;
import org.apache.commons.codec.digest.DigestUtils;
public class AppscommTokenManager {
private static AppscommTokenManager instance = new AppscommTokenManager();
private AppscommTokenManager(){
}
public static synchronized AppscommTokenManager getInstance(){
if(instance == null){
instance = new AppscommTokenManager ();
}
return instance;
}
public String generateToken(String accountId) {
return DigestUtils.sha256Hex(accountId+System.currentTimeMillis()+new Random().nextInt());
}
public String generateSmsCode() {
StringBuffer smsCode = new StringBuffer();
Random random = new Random();
for(int i = 0;i < 6;i++){
smsCode.append(random.nextInt(9));
}
return smsCode.toString();
}
}
===
package com.appscomm.controller;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.guzz.dao.GuzzBaseDao;
import org.guzz.orm.se.SearchExpression;
import org.guzz.orm.se.Terms;
import org.guzz.util.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import com.appscomm.common.redis.support.RedisOpsTemplate;
import com.appscomm.plm.domain.PlmParam;
import com.appscomm.plm.domain.PlmUser;
import com.appscomm.plm.service.ParamService;
public class UserAuthenticationInterceptor implements HandlerInterceptor {
@Autowired
private ParamService paramService;
@Autowired
private RedisOpsTemplate redisOpsTemplate;
@Autowired
private GuzzBaseDao appscmBaseDao;
private final String IGNORE_AUTHENTICATION_URI = "IGNORE_AUTHENTICATION_URI";
private final String APPSCOMM_TOKEN = "appscommtoken";
private final String APPSCOMM_ACCOUNT = "appscommaccountId";
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object o) throws Exception {
String XRequestedWithHeader = request.getHeader("X-Requested-With");
//一部分接口不用进行登录校验
List<PlmParam> ignoreUriList = getIgnoreUriConfig();
String uri = request.getRequestURI();
if(!CollectionUtils.isEmpty(ignoreUriList)){
for(PlmParam plmParam : ignoreUriList){
if(uri.indexOf(plmParam.getParamValue1())>0){
return true;
}
}
}
String appscommtoken = request.getHeader(APPSCOMM_TOKEN);
String appscommaccount = request.getHeader(APPSCOMM_ACCOUNT);
//未登录的判断
if(StringUtil.isEmpty(appscommtoken) || StringUtil.isEmpty(appscommaccount)){
if ("XMLHttpRequest".equalsIgnoreCase(XRequestedWithHeader)) { //AJAX请求
response.setStatus(601);
} else {
response.sendRedirect(request.getContextPath() + "/WEB-INF/index.html");
}
return false;
}
//非法token的判断
String cachetoken = redisOpsTemplate.get(APPSCOMM_TOKEN);
if(StringUtil.isEmpty(cachetoken)){
//缓存中没有对应的token(1、有可能缓存服务器挂掉了,那么从数据库中查找下对应的accountID)
SearchExpression se =SearchExpression.forClass(PlmUser.class) ;
se.and(Terms.eq("userId",Integer.valueOf(appscommaccount)));
PlmUser plmUser = (PlmUser)appscmBaseDao.findObject(se);
if(plmUser == null || StringUtil.isEmpty(plmUser.getLoginToken()) ||
!plmUser.getLoginToken().equalsIgnoreCase(appscommtoken)){
if ("XMLHttpRequest".equalsIgnoreCase(XRequestedWithHeader)) { //AJAX请求
response.setStatus(602);
} else {
response.sendRedirect(request.getContextPath() + "/WEB-INF/index.html");
}
return false;
}else {
response.setHeader(APPSCOMM_TOKEN, appscommtoken);
response.setHeader(APPSCOMM_ACCOUNT, appscommaccount);
return true;
}
}else if(!cachetoken.equalsIgnoreCase(appscommtoken)){
if ("XMLHttpRequest".equalsIgnoreCase(XRequestedWithHeader)) { //AJAX请求
response.setStatus(602);
} else {
response.sendRedirect(request.getContextPath() + "/WEB-INF/index.html");
}
return false;
}else {
response.setHeader(APPSCOMM_TOKEN, appscommtoken);
response.setHeader(APPSCOMM_ACCOUNT, appscommaccount);
return true;
}
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
}
private List<PlmParam> getIgnoreUriConfig(){
List<PlmParam> ignoreUriList = new ArrayList<PlmParam>();
if(CollectionUtils.isEmpty(ignoreUriList)){
ignoreUriList = paramService.getPlmParam(IGNORE_AUTHENTICATION_URI);
}
return ignoreUriList;
}
public void setParamService(ParamService paramService) {
this.paramService = paramService;
}
public void setRedisOpsTemplate(RedisOpsTemplate redisOpsTemplate) {
this.redisOpsTemplate = redisOpsTemplate;
}
public void setAppscmBaseDao(GuzzBaseDao appscmBaseDao) {
this.appscmBaseDao = appscmBaseDao;
}
}
==
var hexcase = 0;
var b64pad = "";
var chrsz = 8;
function hex_md5(s){ return binl2hex(core_md5(str2binl(s), s.length * chrsz));}
function md5_vm_test()
{
return hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72";
}
function core_md5(x, len)
{
x[len >> 5] |= 0x80 << ((len) % 32);
x[(((len + 64) >>> 9) << 4) + 14] = len;
var a = 1732584193;
var b = -271733879;
var c = -1732584194;
var d = 271733878;
for(var i = 0; i < x.length; i += 16)
{
var olda = a;
var oldb = b;
var oldc = c;
var oldd = d;
a = md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936);
d = md5_ff(d, a, b, c, x[i+ 1], 12, -389564586);
c = md5_ff(c, d, a, b, x[i+ 2], 17, 606105819);
b = md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330);
a = md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897);
d = md5_ff(d, a, b, c, x[i+ 5], 12, 1200080426);
c = md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341);
b = md5_ff(b, c, d, a, x[i+ 7], 22, -45705983);
a = md5_ff(a, b, c, d, x[i+ 8], 7 , 1770035416);
d = md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417);
c = md5_ff(c, d, a, b, x[i+10], 17, -42063);
b = md5_ff(b, c, d, a, x[i+11], 22, -1990404162);
a = md5_ff(a, b, c, d, x[i+12], 7 , 1804603682);
d = md5_ff(d, a, b, c, x[i+13], 12, -40341101);
c = md5_ff(c, d, a, b, x[i+14], 17, -1502002290);
b = md5_ff(b, c, d, a, x[i+15], 22, 1236535329);
a = md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510);
d = md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632);
c = md5_gg(c, d, a, b, x[i+11], 14, 643717713);
b = md5_gg(b, c, d, a, x[i+ 0], 20, -373897302);
a = md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691);
d = md5_gg(d, a, b, c, x[i+10], 9 , 38016083);
c = md5_gg(c, d, a, b, x[i+15], 14, -660478335);
b = md5_gg(b, c, d, a, x[i+ 4], 20, -405537848);
a = md5_gg(a, b, c, d, x[i+ 9], 5 , 568446438);
d = md5_gg(d, a, b, c, x[i+14], 9 , -1019803690);
c = md5_gg(c, d, a, b, x[i+ 3], 14, -187363961);
b = md5_gg(b, c, d, a, x[i+ 8], 20, 1163531501);
a = md5_gg(a, b, c, d, x[i+13], 5 , -1444681467);
d = md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784);
c = md5_gg(c, d, a, b, x[i+ 7], 14, 1735328473);
b = md5_gg(b, c, d, a, x[i+12], 20, -1926607734);
a = md5_hh(a, b, c, d, x[i+ 5], 4 , -378558);
d = md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463);
c = md5_hh(c, d, a, b, x[i+11], 16, 1839030562);
b = md5_hh(b, c, d, a, x[i+14], 23, -35309556);
a = md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060);
d = md5_hh(d, a, b, c, x[i+ 4], 11, 1272893353);
c = md5_hh(c, d, a, b, x[i+ 7], 16, -155497632);
b = md5_hh(b, c, d, a, x[i+10], 23, -1094730640);
a = md5_hh(a, b, c, d, x[i+13], 4 , 681279174);
d = md5_hh(d, a, b, c, x[i+ 0], 11, -358537222);
c = md5_hh(c, d, a, b, x[i+ 3], 16, -722521979);
b = md5_hh(b, c, d, a, x[i+ 6], 23, 76029189);
a = md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487);
d = md5_hh(d, a, b, c, x[i+12], 11, -421815835);
c = md5_hh(c, d, a, b, x[i+15], 16, 530742520);
b = md5_hh(b, c, d, a, x[i+ 2], 23, -995338651);
a = md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844);
d = md5_ii(d, a, b, c, x[i+ 7], 10, 1126891415);
c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905);
b = md5_ii(b, c, d, a, x[i+ 5], 21, -57434055);
a = md5_ii(a, b, c, d, x[i+12], 6 , 1700485571);
d = md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606);
c = md5_ii(c, d, a, b, x[i+10], 15, -1051523);
b = md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799);
a = md5_ii(a, b, c, d, x[i+ 8], 6 , 1873313359);
d = md5_ii(d, a, b, c, x[i+15], 10, -30611744);
c = md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380);
b = md5_ii(b, c, d, a, x[i+13], 21, 1309151649);
a = md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070);
d = md5_ii(d, a, b, c, x[i+11], 10, -1120210379);
c = md5_ii(c, d, a, b, x[i+ 2], 15, 718787259);
b = md5_ii(b, c, d, a, x[i+ 9], 21, -343485551);
a = safe_add(a, olda);
b = safe_add(b, oldb);
c = safe_add(c, oldc);
d = safe_add(d, oldd);
}
return Array(a, b, c, d);
}
function md5_cmn(q, a, b, x, s, t)
{
return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
}
function md5_ff(a, b, c, d, x, s, t)
{
return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
}
function md5_gg(a, b, c, d, x, s, t)
{
return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
}
function md5_hh(a, b, c, d, x, s, t)
{
return md5_cmn(b ^ c ^ d, a, b, x, s, t);
}
function md5_ii(a, b, c, d, x, s, t)
{
return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
}
function safe_add(x, y)
{
var lsw = (x & 0xFFFF) + (y & 0xFFFF);
var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
return (msw << 16) | (lsw & 0xFFFF);
}
function bit_rol(num, cnt)
{
return (num << cnt) | (num >>> (32 - cnt));
}
function str2binl(str)
{
var bin = Array();
var mask = (1 << chrsz) - 1;
for(var i = 0; i < str.length * chrsz; i += chrsz)
bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (i%32);
return bin;
}
function binl2hex(binarray)
{
var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
var str = "";
for(var i = 0; i < binarray.length * 4; i++)
{
str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) +
hex_tab.charAt((binarray[i>>2] >> ((i%4)*8 )) & 0xF);
}
return str;
}
=======
/**
* Copyright appscomm 2013. All rights reserved.
*/
package com.appscomm.common.utils;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import org.apache.commons.codec.binary.Hex;
/**
* @ClassName:Md5PwdEncoder.java
* @Description:MD5密码加密
* @author: wuxiaoxue
* @date: 2013-11-27
*/
public class Md5PwdEncoder{
/**
* @Description:密码加密
* @param rawPass 未加密密码,null作为空串
* @param salt 混淆码
* @return
*/
public static String encodePassword(String rawPass) {
MessageDigest messageDigest = getMessageDigest();
byte[] digest;
try {
digest = messageDigest.digest(rawPass.getBytes("UTF-8"));
} catch (UnsupportedEncodingException e) {
throw new IllegalStateException("UTF-8 not supported!");
}
return new String(Hex.encodeHex(digest));
}
protected static final MessageDigest getMessageDigest() {
String algorithm = "MD5";
try {
return MessageDigest.getInstance(algorithm);
} catch (NoSuchAlgorithmException e) {
throw new IllegalArgumentException("No such algorithm [" + algorithm + "]");
}
}
public static void main(String[] arg){
System.out.println(encodePassword("123456"));
}
}
|
package com.appscomm.plm.service.impl;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import org.guzz.dao.GuzzBaseDao;
import org.guzz.orm.se.SearchExpression;
import org.guzz.orm.se.Terms;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import com.alibaba.fastjson.JSON;
import com.appscomm.common.AccountTypeEnum;
import com.appscomm.common.AppscommException;
import com.appscomm.common.AppscommTokenManager;
import com.appscomm.common.ContactTypeEnum;
import com.appscomm.common.calibrator.AppClientCalibrator;
import com.appscomm.common.calibrator.CalibratorChain;
import com.appscomm.common.calibrator.CalibratorResult;
import com.appscomm.common.calibrator.ParamExistCalibrator;
import com.appscomm.common.redis.support.RedisOpsTemplate;
import com.appscomm.common.utils.BeanCopierUtils;
import com.appscomm.plm.common.calibrator.AccountTypeCalibrator;
import com.appscomm.plm.domain.PlmInterfaceSyn;
import com.appscomm.plm.domain.PlmLoginAccount;
import com.appscomm.plm.domain.PlmUser;
import com.appscomm.plm.domain.PlmUserContact;
import com.appscomm.plm.domain.PlmUserInfo;
import com.appscomm.plm.inout.BaseUserResponse;
import com.appscomm.plm.inout.UserForgotPasswordRequest;
import com.appscomm.plm.inout.UserLoginRequest;
import com.appscomm.plm.inout.UserLoginResponse;
import com.appscomm.plm.inout.UserModifyPasswordReqeust;
import com.appscomm.plm.inout.UserRegisterRequest;
import com.appscomm.plm.inout.UserRegisterResponse;
import com.appscomm.plm.service.AccountService;
import com.appscomm.plm.vo.AccountUserVo;
import com.appscomm.plm.vo.PlmUserInfoVo;
@Service("accountService")
public class AccountServiceImpl implements AccountService {
@Autowired
private GuzzBaseDao appscmBaseDao;
@Autowired
private RedisOpsTemplate redisOpsTemplate;
private Logger logger = LoggerFactory.getLogger(getClass());
@Override
public UserLoginResponse login(UserLoginRequest request) {
logger.info("UserLoginRequest="+JSON.toJSON(request).toString());
UserLoginResponse response = new UserLoginResponse(request.getSeq(),request.getVersionNo());
try{
//参数校验
CalibratorChain calibratorChain = new CalibratorChain();
Object[] existParams = new Object[]{
new String[]{request.getSeq(),"CRM101","随机序列码不能为空"},
new String[]{request.getVersionNo(),"CRM104","接口版本号不能为空"},
new String[]{request.getClientType(),"CRM105","客户端类型不能为空"},
new String[]{request.getAccountId(),"APPS-10001","账户不能为空"},
new String[]{request.getPassword(),"APPS-10013","密码不能为空"}};
calibratorChain.
addCalibrator(ParamExistCalibrator.instance()).
addCalibrator(AppClientCalibrator.instance());
CalibratorResult calibratorResult= calibratorChain.execute(new Object[]{existParams,request.getClientType()});
if(calibratorResult != null &&
!CalibratorResult.RESULT_SUCCESS.equalsIgnoreCase(calibratorResult.getCode())){
response = new UserLoginResponse(request.getSeq(),request.getVersionNo(),calibratorResult.getCode(),calibratorResult.getMessage());
logger.info("UserLoginResponse="+JSON.toJSON(response).toString());
return response;
}
AccountUserVo accountUserVo = getPlmAccount(request.getAccountId());
if(accountUserVo == null){
response = new UserLoginResponse(request.getSeq(),request.getVersionNo(),"APPS-10006","非法账户");
logger.info("UserLoginResponse="+JSON.toJSON(response).toString());
return response;
}
//新旧密码是否相等
if(!request.getPassword().equals(accountUserVo.getAccountPassword())){
response = new UserLoginResponse(request.getSeq(),request.getVersionNo(),"APPS-10006","非法账户");
logger.info("UserLoginResponse="+JSON.toJSON(response).toString());
return response;
}
//判断密码加密方式MD5 32位
if(request.getPassword().length()!=32){
response = new UserLoginResponse(request.getSeq(),request.getVersionNo(),"APPS-10013","密码MD5加密方式");
logger.info("UserLoginResponse="+JSON.toJSON(response).toString());
return response;
}
String token = AppscommTokenManager.getInstance().generateToken(request.getAccountId());
SearchExpression se =SearchExpression.forClass(PlmUser.class) ;
appscmBaseDao.list(se);
SearchExpression se2 =SearchExpression.forClass(PlmInterfaceSyn.class) ;
appscmBaseDao.list(se2);
PlmUser plmUser = getPlmUser(accountUserVo.getUserId().intValue());
plmUser.setLoginToken(token);
appscmBaseDao.update(plmUser);
response.setToken(token);
response.setUserId(accountUserVo.getUserId().intValue());
response.setUserInfoId(accountUserVo.getUserInfoId().intValue());
//登录返回的附加信息
Map<String, Object> respMap = new HashMap<String, Object>();
//用户个人信息
PlmUserInfoVo userInfo = getUesrInfo(accountUserVo.getUserInfoId());
//绑定信息
//目标信息
//睡眠提醒
//事项提醒
//久坐提醒
//通知开关
//固件版本号
respMap.put("userInfo", userInfo);
response.setUserMap(respMap);
}catch(AppscommException e){
logger.info(e.getMessage());
response = new UserLoginResponse(request.getSeq(),request.getVersionNo());
response.setResultCode(e.getErrCode());;
response.setResultMessage(e.getMessage());
}catch(Exception e){
logger.info(e.getMessage());
response = new UserLoginResponse(request.getSeq(),request.getVersionNo());
response.setResultCode(BaseUserResponse.RESULT_UNKNOWN);
response.setResultMessage(e.getMessage());
}
logger.info("UserLoginResponse="+JSON.toJSON(response).toString());
return response;
}
private PlmUserInfoVo getUesrInfo(Long userInfoId) {
SearchExpression se =SearchExpression.forClass(PlmUserInfo.class) ;
se.and(Terms.eq("userInfoId",userInfoId.intValue()));
PlmUserInfo plmUserInfo = (PlmUserInfo)appscmBaseDao.findObject(se);
if(plmUserInfo != null){
PlmUserInfoVo plmUserInfoVo = new PlmUserInfoVo();
BeanCopierUtils.copyProperty(plmUserInfo, plmUserInfoVo);
return plmUserInfoVo;
}
return null;
}
private AccountUserVo getPlmAccount(String accountId) {
Map<String,Object> params = new HashMap<String,Object>();
params.put("accountId", accountId);
return (AccountUserVo)appscmBaseDao.findObject("selectCrmAccount", params);
}
private PlmUser getPlmUser(Integer userId) {
SearchExpression se =SearchExpression.forClass(PlmUser.class) ;
se.and(Terms.eq("userId",userId));
return (PlmUser)appscmBaseDao.findObject(se);
}
@Transactional(propagation=Propagation.REQUIRED)
@Override
public UserRegisterResponse register(UserRegisterRequest request) {
logger.info("UserRegisterRequest="+JSON.toJSON(request).toString());
UserRegisterResponse response = new UserRegisterResponse();
try{
//参数校验
CalibratorChain calibratorChain = new CalibratorChain();
Object[] existParams = new Object[]{
new String[]{request.getSeq(),"CRM101","随机序列码不能为空"},
new String[]{request.getVersionNo(),"CRM104","接口版本号不能为空"},
new String[]{request.getClientType(),"CRM105","客户端类型不能为空"},
new String[]{request.getAccountId(),"APPS-10001","账户不能为空"},
new String[]{request.getAccountPassword(),"APPS-10004","账户注册密码不能为空"}};
calibratorChain.
addCalibrator(ParamExistCalibrator.instance()).
addCalibrator(AccountTypeCalibrator.instance()).
addCalibrator(AppClientCalibrator.instance());
CalibratorResult calibratorResult= calibratorChain.execute(new Object[]{existParams,request.getAccountType(),request.getClientType()});
if(calibratorResult != null &&
!CalibratorResult.RESULT_SUCCESS.equalsIgnoreCase(calibratorResult.getCode())){
response = new UserRegisterResponse(request.getSeq(),request.getVersionNo(),calibratorResult.getCode(),calibratorResult.getMessage());
logger.info("UserRegisterResponse="+JSON.toJSON(response).toString());
return response;
}
//校验账户是否已经存在
SearchExpression se =SearchExpression.forClass(PlmLoginAccount.class) ;
se.and(Terms.eq("accountId",request.getAccountId()));
PlmLoginAccount account = (PlmLoginAccount)appscmBaseDao.findObject(se);
if(account != null){
response = new UserRegisterResponse(request.getSeq(),request.getVersionNo(),"APPS-10003","账户已经存在");
logger.info("UserRegisterResponse="+JSON.toJSON(response).toString());
return response;
}
//判断密码加密方式MD5 32位
if(request.getAccountPassword().length() != 32){
response = new UserRegisterResponse(request.getSeq(),request.getVersionNo(),"APPS-10013","密码MD5加密方式");
logger.info("UserRegisterResponse="+JSON.toJSON(response).toString());
return response;
}
PlmUserInfo userInfo = new PlmUserInfo(PlmUserInfo.IS_MANAGE_YES);
//保存用户资料
appscmBaseDao.insert(userInfo);
PlmUser user = new PlmUser(request.getAccountPassword(),userInfo.getUserInfoId());
//保存系统用户资料
user.setUserInfoId(userInfo.getUserInfoId());
appscmBaseDao.insert(user);
//回填关联系统用户ID
userInfo.setRefUserId(user.getUserId());
appscmBaseDao.update(userInfo);
//保存账户资料
account = new PlmLoginAccount(request.getAccountId(),user.getUserId(),request.getAccountType(),new Date());
account.setIsActivity(PlmLoginAccount.IS_ACTIVITY_YES);
String activityCode = AppscommTokenManager.getInstance().generateToken(request.getAccountId());
if(AccountTypeEnum.EMAIL.getType() == request.getAccountType()){
account.setActivityCode(activityCode);
// account.setAccountType(PlmLoginAccount.IS_ACTIVITY_NO);
//调用邮件发送组件,发送激活连接
// PlmParam deployParam = paramService.getUniquePlmParam(PlmParam.KEY_DEPLOY_URL);
// String activityUrl = deployParam.getParamValue1() + "?account="+request.getAccountId()+"&activeToken="+activityCode;
//MailUtil.instance().postMail(new MailInfo(new String[]{request.getAccountId()}, "账户激活", activityUrl));
/*
* 保存联系方式
*/
PlmUserContact userContact = new PlmUserContact(userInfo.getUserInfoId(),ContactTypeEnum.EMAIL.getType(),request.getAccountId());
appscmBaseDao.insert(userContact);
}else if(AccountTypeEnum.PHONE.getType() == request.getAccountType()){
account.setActivityCode(AppscommTokenManager.getInstance().generateSmsCode());
// account.setAccountType(PlmLoginAccount.IS_ACTIVITY_NO);
//TODO 调用短信发送组件,发送激活码
PlmUserContact userContact = new PlmUserContact(userInfo.getUserInfoId(),ContactTypeEnum.PHONE.getType(),request.getAccountId());
appscmBaseDao.insert(userContact);
}else if(AccountTypeEnum.WEIXIN.getType() == request.getAccountType()){
PlmUserContact userContact = new PlmUserContact(userInfo.getUserInfoId(),ContactTypeEnum.WEIXIN.getType(),request.getAccountId());
appscmBaseDao.insert(userContact);
}else if(AccountTypeEnum.WEIBO.getType() == request.getAccountType()){
PlmUserContact userContact = new PlmUserContact(userInfo.getUserInfoId(),ContactTypeEnum.WEIBO.getType(),request.getAccountId());
appscmBaseDao.insert(userContact);
}else if(AccountTypeEnum.QQ.getType() == request.getAccountType()){
PlmUserContact userContact = new PlmUserContact(userInfo.getUserInfoId(),ContactTypeEnum.QQ.getType(),request.getAccountId());
appscmBaseDao.insert(userContact);
}
account.setUserId(user.getUserId());
response = new UserRegisterResponse(request.getSeq(),request.getVersionNo());
appscmBaseDao.insert(account);
Map<String, Object> userMap = new HashMap<String,Object>();
userMap.put("userId", user.getUserId());
userMap.put("userInfoId", user.getUserInfoId());
response.setUserMap(userMap);
}catch(AppscommException e){
logger.info(e.getMessage());
response = new UserRegisterResponse(request.getSeq(),request.getVersionNo());
response.setResultCode(e.getErrCode());;
response.setResultMessage(e.getMessage());
}catch(Exception e){
logger.info(e.getMessage());
response = new UserRegisterResponse(request.getSeq(),request.getVersionNo());
response.setResultCode(BaseUserResponse.RESULT_UNKNOWN);
response.setResultMessage(e.getMessage());
}
logger.info("UserRegisterResponse="+JSON.toJSON(response).toString());
return response;
}
@Override
public BaseUserResponse forgotPassword(UserForgotPasswordRequest request) {
BaseUserResponse response = new BaseUserResponse(request.getSeq(), request.getVersionNo());
try{
//参数校验
CalibratorChain calibratorChain = new CalibratorChain();
Object[] existParams = new Object[]{
new String[]{request.getSeq(),"CRM101","随机序列码不能为空"},
new String[]{request.getVersionNo(),"CRM104","接口版本号不能为空"},
new String[]{request.getClientType(),"CRM105","客户端类型不能为空"},
new String[]{request.getAccountId(),"APPS-10001","账户不能为空"}};
calibratorChain.
addCalibrator(ParamExistCalibrator.instance()).
addCalibrator(AppClientCalibrator.instance());
CalibratorResult calibratorResult= calibratorChain.execute(new Object[]{existParams,request.getClientType()});
if(calibratorResult != null &&
!CalibratorResult.RESULT_SUCCESS.equalsIgnoreCase(calibratorResult.getCode())){
response = new BaseUserResponse(request.getSeq(),request.getVersionNo(),calibratorResult.getCode(),calibratorResult.getMessage());
logger.info("forgotPassword="+JSON.toJSON(response).toString());
return response;
}
//根据密码找回来类型进行处理
int findType = request.getFindType();
if(AccountTypeEnum.EMAIL.getType()==findType){
//邮箱找回
//TODO
}else if(AccountTypeEnum.PHONE.getType()==findType){
//短信找回
//TODO
}
}catch(AppscommException e){
logger.info(e.getMessage());
response = new UserRegisterResponse(request.getSeq(),request.getVersionNo());
response.setResultCode(e.getErrCode());
response.setResultMessage(e.getMessage());
}catch(Exception e){
logger.info(e.getMessage());
response = new UserRegisterResponse(request.getSeq(),request.getVersionNo());
response.setResultCode(BaseUserResponse.RESULT_UNKNOWN);
response.setResultMessage(e.getMessage());
}
return response;
}
@Override
public BaseUserResponse modifyPassword(UserModifyPasswordReqeust request) {
BaseUserResponse response = new BaseUserResponse(request.getSeq(), request.getVersionNo());
try{
//参数校验
CalibratorChain calibratorChain = new CalibratorChain();
Object[] existParams = new Object[]{
new String[]{request.getSeq(),"CRM101","随机序列码不能为空"},
new String[]{request.getVersionNo(),"CRM104","接口版本号不能为空"},
new String[]{request.getClientType(),"CRM105","客户端类型不能为空"},
new String[]{request.getAccountId(),"APPS-10001","账户不能为空"}};
calibratorChain.
addCalibrator(ParamExistCalibrator.instance()).
addCalibrator(AppClientCalibrator.instance());
CalibratorResult calibratorResult= calibratorChain.execute(new Object[]{existParams,request.getClientType()});
if(calibratorResult != null &&
!CalibratorResult.RESULT_SUCCESS.equalsIgnoreCase(calibratorResult.getCode())){
response = new BaseUserResponse(request.getSeq(),request.getVersionNo(),calibratorResult.getCode(),calibratorResult.getMessage());
logger.info("modifyPassword="+JSON.toJSON(response).toString());
return response;
}
//根据账号查询账户信息
AccountUserVo accountUserVo = getPlmAccount(request.getAccountId());
if(accountUserVo == null){
response = new BaseUserResponse(request.getSeq(),request.getVersionNo(),"APPS-10006","非法账户");
logger.info("modifyPassword="+JSON.toJSON(response).toString());
return response;
}
//旧密码是否匹配
if(!request.getOldPassword().equals(accountUserVo.getAccountPassword())){
response = new BaseUserResponse(request.getSeq(),request.getVersionNo(),"APPS-10006","非法账户");
logger.info("modifyPassword="+JSON.toJSON(response).toString());
return response;
}
//判断密码长度是否是MD5 32位
if(request.getNewPassword().length()!=32){
response = new BaseUserResponse(request.getSeq(),request.getVersionNo(),"APPS-10013","密码MD5加密方式");
logger.info("modifyPassword="+JSON.toJSON(response).toString());
return response;
}
PlmUser plmUser = getPlmUser(accountUserVo.getUserId().intValue());
plmUser.setAccountPassword(request.getNewPassword());
appscmBaseDao.update(plmUser);
}catch(AppscommException e){
logger.info(e.getMessage());
response = new UserRegisterResponse(request.getSeq(),request.getVersionNo());
response.setResultCode(e.getErrCode());;
response.setResultMessage(e.getMessage());
}catch(Exception e){
logger.info(e.getMessage());
response = new UserRegisterResponse(request.getSeq(),request.getVersionNo());
response.setResultCode(BaseUserResponse.RESULT_UNKNOWN);
response.setResultMessage(e.getMessage());
}
return response;
}
public void setAppscmBaseDao(GuzzBaseDao appscmBaseDao) {
this.appscmBaseDao = appscmBaseDao;
}
public void setRedisOpsTemplate(RedisOpsTemplate redisOpsTemplate) {
this.redisOpsTemplate = redisOpsTemplate;
}
}
|