@源碼地址來源: https://minglisoft.cn/honghu/business.html
手機端源碼:
/**
* Copyright © 2012-2017 <a href="http://minglisoft.cn">HongHu</a> All rights reserved.
*/
package com.honghu.cloud.controller;
import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import com.google.common.collect.Lists;
import com.honghu.cloud.bean.SmsCode;
import com.honghu.cloud.bean.SmsConfig;
import com.honghu.cloud.bean.SmsTemplate;
import com.honghu.cloud.bean.User;
import com.honghu.cloud.code.ResponseCode;
import com.honghu.cloud.constant.Globals;
import com.honghu.cloud.dto.AccessoryDto;
import com.honghu.cloud.dto.StoreDto;
import com.honghu.cloud.dto.SysConfigDto;
import com.honghu.cloud.dto.UserDto;
import com.honghu.cloud.feign.AccessoryFeignClient;
import com.honghu.cloud.feign.DistributionUserFeignClient;
import com.honghu.cloud.feign.StoreFeignClient;
import com.honghu.cloud.feign.SysConfigFeignClient;
import com.honghu.cloud.redis.RedisUtil;
import com.honghu.cloud.service.ISmsCodeService;
import com.honghu.cloud.service.ISmsConfigService;
import com.honghu.cloud.service.ISmsTemplateService;
import com.honghu.cloud.service.IUserService;
import com.honghu.cloud.tools.AliSmsUtil;
import com.honghu.cloud.tools.SecurityUserHolder;
import com.honghu.cloud.utils.CommUtil;
import com.honghu.cloud.utils.JWT;
import com.honghu.cloud.utils.tools.Md5Encrypt;
import net.sf.json.JSONObject;
/**
* 短信服務
* @author Administrator
*
*/
@RestController
@RequestMapping(value = "/mobile")
@CrossOrigin(origins = "*",maxAge = 3600)
public class MobileController {
@Autowired
private ISmsConfigService smsConfigService;
@Autowired
private ISmsTemplateService smsTemplateService;
@Autowired
private ISmsCodeService smsCodeService;
@Autowired
private SysConfigFeignClient sysConfigFeignClient;
@Autowired
private IUserService userService;
@Autowired
private RedisUtil redisUtil;
@Autowired
private StoreFeignClient storeFeignClient;
@Autowired
private DistributionUserFeignClient disUserFeignClient;
@Autowired
private AccessoryFeignClient accessoryFeignClient;
// 短信服務類型
public static List<String> sms_items = Lists.newArrayList();
static{
sms_items.add("bind_mobile"); // 綁定手機發送短信
sms_items.add("register_mobile"); // 手機號碼註冊發送短信
sms_items.add("login_mobile"); // 手機登錄發送短信
sms_items.add("update_password"); // 修改密碼
sms_items.add("update_pay_password"); // 修改支付密碼
sms_items.add("forget_password"); // 忘記密碼
}
/**
* 發送短信服務
* @param json(sms_type:bind_mobile,register_mobile,login_mobile)
* @param request
* @return
*/
@RequestMapping(value = "/sendCode", method = RequestMethod.POST)
public Map<String,Object> sendCode(@RequestBody JSONObject json, HttpServletRequest request){
String sms_type = json.optString("sms_type");
if(StringUtils.isEmpty(sms_type)){
return ResponseCode.buildCodeMap("20001", "服務類型不能爲空", null);
}
if(!sms_items.contains(sms_type)){
return ResponseCode.buildCodeMap("20002", "服務類型錯誤", null);
}
String mobile = json.optString("mobile");
if(StringUtils.isEmpty(mobile)){
return ResponseCode.buildCodeMap("20003", "手機號碼不能爲空", null);
}
// 查詢短信配置
SmsConfig smsConfig = smsConfigService.findSmsConfig();
if(smsConfig == null){
return ResponseCode.buildCodeMap("20004", "系統未配置短信服務服務", null);
}
// 根據(英文模板名稱)查詢短信模板
SmsTemplate smsTemplate = smsTemplateService.findByCodeEn(sms_type);
if(smsTemplate == null){
return ResponseCode.buildCodeMap("20005", "服務模板不存在", null);
}
String content = "";
if (StringUtils.equals(sms_type, "bind_mobile") || StringUtils.equals(sms_type, "register_mobile")
|| StringUtils.equals(sms_type, "login_mobile") || StringUtils.equals(sms_type, "forget_password")
|| StringUtils.equals(sms_type, "update_password")|| StringUtils.equals(sms_type, "update_pay_password")) {
// 入庫驗證碼
SmsCode smsCode = new SmsCode();
smsCode.setMobile(mobile);
smsCode.setSend_time(new Date());
smsCode.setCode(CommUtil.randomInt(4));
smsCode.setCode_en(sms_type);
smsCodeService.saveEntity(smsCode);
content = "{\"code\":\"" + smsCode.getCode() + "\"}";
}
// 發送短信
String result = AliSmsUtil.sendByALY(mobile, content, smsConfig, smsTemplate);
if(StringUtils.isNotEmpty(result)){
return ResponseCode.buildCodeMap("20006", result, null);
}
return ResponseCode.buildSuccessMap("短信發送成功");
}
/**
* 手機號註冊(登錄)
* @param json
* @param request
* @return
*/
@RequestMapping(value = "/register_mobile", method = RequestMethod.POST)
public Map<String,Object> register_mobile(@RequestBody JSONObject json, HttpServletRequest request){
String sms_type = json.optString("sms_type");
if(StringUtils.isEmpty(sms_type)){
return ResponseCode.buildCodeMap("20001", "服務類型不能爲空", null);
}
if(!StringUtils.equals("register_mobile", sms_type)){
return ResponseCode.buildCodeMap("20002", "服務類型錯誤", null);
}
String mobile = json.optString("mobile");
if(StringUtils.isEmpty(mobile)){
return ResponseCode.buildCodeMap("20003", "手機號碼不能爲空", null);
}
String code = json.optString("code");
if(StringUtils.isEmpty(code)){
return ResponseCode.buildCodeMap("20004", "驗證碼不能爲空", null);
}
String password = json.optString("password");
if(StringUtils.isEmpty(password)){
return ResponseCode.buildCodeMap("20004", "密碼不能爲空", null);
}
// 查詢短信配置
SmsConfig smsConfig = smsConfigService.findSmsConfig();
Integer use_minute = 5;
if(smsConfig != null && smsConfig.getUse_minute() != null){
use_minute = smsConfig.getUse_minute();
}
// 查詢手機號有效期內的驗證碼
SmsCode smsCode = smsCodeService.findByCode(mobile, sms_type, use_minute);
if(smsCode == null){
return ResponseCode.buildCodeMap("20005", "驗證碼已過期,請重新獲取!", null);
}
if(!StringUtils.equals(code, smsCode.getCode())){
return ResponseCode.buildCodeMap("20006", "驗證碼錯誤", null);
}
// 查詢手機號碼是否註冊
User user = userService.selectByUserName(mobile);
if(user != null){
return ResponseCode.buildCodeMap("20007", "手機號已註冊", null);
}
user = new User();
user.setDeleteStatus(0);
user.setSex(-1); // 性別 1爲男、0爲女、-1爲保密
user.setDeleteStatus(0);
user.setAddTime(new Date());
user.setMonth_income(0);
user.setIntegral(0);
user.setIs_agent(0);
user.setLoginCount(0);
user.setAvailableBalance(BigDecimal.ZERO);
user.setFreezeBlance(BigDecimal.ZERO);
user.setMobile(mobile);
user.setUserName(mobile);
user.setPassword(Md5Encrypt.md5(password).toLowerCase());
user.setYears(0); // 用戶年齡
user.setIs_live(0);
user.setUser_type(0); // 用戶類別,默認爲0個人用戶,1爲企業用戶
user.setStore_apply_step(0); // 店鋪申請進行的步驟,默認爲0
user.setInvoiceType(0); // 發票類型
user.setLive_code(userService.selectMaxLiveCode() + 1);
user.setWhether_attention(1); //是否允許關注 0爲不允許,1爲允許
userService.saveEntity(user);
userService.saveDisUser(user, "-1");
// 修改登錄信息
user.setLoginCount(user.getLoginCount()+1);
user.setLastLoginDate(new Date());
user.setLastLoginIp(CommUtil.getIpAddr(request));
// 生成token,格式:用戶id;時間戳
String token = JWT.sign(user.getId() + ";" + System.currentTimeMillis()+";"+"app", 0);
// 將token存到redis中,有效期24小時
redisUtil.set(Globals.ANDROID_LOGIN_MARK + user.getId(), token, Globals.USER_INFO_EXPIRE_TIME);
// 返回結果集
Map<String, Object> resultMap = new HashMap<String, Object>();
resultMap.put("token", token);
// 置空用戶敏感字段
user.setPassword("");
user.setPay_password("");
resultMap.put("user", user);
// 置空系統配置敏感字段
SysConfigDto sysConfig = sysConfigFeignClient.getSysConfig();
sysConfig.setWeixin_appId("");
sysConfig.setWeixin_appSecret("");
sysConfig.setUploadFilePath("");
sysConfig.setUser_level("");
resultMap.put("sysConfig", sysConfig);
return ResponseCode.buildSuccessMap(resultMap);
}
/**
* 手機號登錄
* @param json
* @param request
* @return
*/
@RequestMapping(value = "/login_mobile", method = RequestMethod.POST)
public Map<String,Object> login_mobile(@RequestBody JSONObject json, HttpServletRequest request){
String sms_type = json.optString("sms_type");
if(StringUtils.isEmpty(sms_type)){
return ResponseCode.buildCodeMap("20001", "服務類型不能爲空", null);
}
if(!StringUtils.equals("login_mobile", sms_type)){
return ResponseCode.buildCodeMap("20002", "服務類型錯誤", null);
}
String mobile = json.optString("mobile");
if(StringUtils.isEmpty(mobile)){
return ResponseCode.buildCodeMap("20003", "手機號碼不能爲空", null);
}
String code = json.optString("code");
if(StringUtils.isEmpty(code)){
return ResponseCode.buildCodeMap("20004", "驗證碼不能爲空", null);
}
// 查詢短信配置
SmsConfig smsConfig = smsConfigService.findSmsConfig();
Integer use_minute = 5;
if(smsConfig != null && smsConfig.getUse_minute() != null){
use_minute = smsConfig.getUse_minute();
}
// 查詢手機號有效期內的驗證碼
SmsCode smsCode = smsCodeService.findByCode(mobile, sms_type, use_minute);
if(smsCode == null){
return ResponseCode.buildCodeMap("20005", "驗證碼已過期,請重新獲取!", null);
}
if(!StringUtils.equals(code, smsCode.getCode())){
return ResponseCode.buildCodeMap("20006", "驗證碼錯誤", null);
}
// 查詢手機號碼是否註冊
User user = userService.selectByUserName(mobile);
if(user == null){
return ResponseCode.buildCodeMap("20007", "該用戶不存在", null);
}
if(user.getSecurity() == 1){
return ResponseCode.buildCodeMap("20008", "賬戶存在安全隱患禁止登錄!", null);
}
String storestatus="";
if (user.getStore_id()!=null) {
StoreDto storeDto = storeFeignClient.selectByPrimaryKey(user.getStore_id());
if (storeDto!=null) {
storestatus=storeDto.getStore_status()+"";
}
}
// 修改登錄信息
user.setLoginCount(user.getLoginCount()+1);
user.setLastLoginDate(new Date());
user.setLastLoginIp(CommUtil.getIpAddr(request));
// 生成token,格式:用戶id;時間戳
String token = JWT.sign(user.getId() + ";" + System.currentTimeMillis()+";"+"app", 0);
// 將token存到redis中,有效期24小時
redisUtil.set(Globals.ANDROID_LOGIN_MARK + user.getId(), token, Globals.USER_INFO_EXPIRE_TIME);
// 返回結果集
Map<String, Object> resultMap = new HashMap<String, Object>();
resultMap.put("token", token);
// 置空用戶敏感字段
user.setPassword("");
user.setPay_password("");
if (user.getPhoto_id()!=null) {
AccessoryDto accessoryDto = accessoryFeignClient.selectByPrimaryKey(user.getPhoto_id());
if (accessoryDto!=null) user.setPhoto(accessoryDto);
}
resultMap.put("user", user);
/*// 置空系統配置敏感字段
SysConfigDto sysConfig = sysConfigFeignClient.getSysConfig();
sysConfig.setWeixin_appId("");
sysConfig.setWeixin_appSecret("");
sysConfig.setUploadFilePath("");
sysConfig.setUser_level("");
resultMap.put("sysConfig", sysConfig);*/
resultMap.put("storestatus", storestatus);
return ResponseCode.buildSuccessMap(resultMap);
}
/**
* 手機號綁定
* @param json
* @param request
* @return
*/
@RequestMapping(value = "/login_bind", method = RequestMethod.POST)
public Map<String,Object> login_bind(@RequestBody JSONObject json, HttpServletRequest request){
String sms_type = json.optString("sms_type");
if(StringUtils.isEmpty(sms_type)){
return ResponseCode.buildCodeMap("20001", "服務類型不能爲空", null);
}
if(!StringUtils.equals("bind_mobile", sms_type)){
return ResponseCode.buildCodeMap("20002", "服務類型錯誤", null);
}
String mobile = json.optString("mobile");
if(StringUtils.isEmpty(mobile)){
return ResponseCode.buildCodeMap("20003", "手機號碼不能爲空", null);
}
String code = json.optString("code");
if(StringUtils.isEmpty(code)){
return ResponseCode.buildCodeMap("20004", "驗證碼不能爲空", null);
}
String id = json.optString("id");
if(StringUtils.isEmpty(id)){
return ResponseCode.buildCodeMap("20008", "id不能爲空", null);
}
// 查詢短信配置
SmsConfig smsConfig = smsConfigService.findSmsConfig();
Integer use_minute = 5;
if(smsConfig != null && smsConfig.getUse_minute() != null){
use_minute = smsConfig.getUse_minute();
}
// 查詢手機號有效期內的驗證碼
SmsCode smsCode = smsCodeService.findByCode(mobile, sms_type, use_minute);
if(smsCode == null){
return ResponseCode.buildCodeMap("20005", "驗證碼已過期,請重新獲取!", null);
}
if(!StringUtils.equals(code, smsCode.getCode())){
return ResponseCode.buildCodeMap("20006", "驗證碼錯誤", null);
}
// 返回結果集
Map<String, Object> resultMap = new HashMap<String, Object>();
// 查詢手機號碼是否註冊
User UserName = userService.selectByUserName(mobile); //原用戶
User user = userService.selectByPrimaryKey(CommUtil.null2Long(id)); //剛註冊的用戶
// 原手機號存在用戶, 並且登錄用戶有微信union ,需要合併用戶 , 手機號存在, 並且 unionid 爲空
if (UserName!=null&&StringUtils.isEmpty(UserName.getWeixin_unionID())&&user.getWeixin_unionID()!=null) {
UserName.setWeixin_unionID(user.getWeixin_unionID()); //將新unionid 存入舊數據中
if (UserName.getLive_code()==null) {
UserName.setLive_code(userService.selectMaxLiveCode() + 1);
}
if (StringUtils.isEmpty(UserName.getNickName())) {
UserName.setNickName(user.getNickName());
}
if (user.getPhoto_id()!=null) {
UserName.setPhoto_id(user.getPhoto_id());
}
if (user.getOpenId()!=null) {
UserName.setOpenId(user.getOpenId());
}
userService.updateById(UserName);
user.setDeleteStatus(1);
user.setMobile("del"+CommUtil.null2String(mobile));
user.setUserName("del"+CommUtil.null2String(mobile));
user.setWeixin_unionID("del"+UserName.getId()+"");
userService.updateById(user);
disUserFeignClient.deleteByUserId(user.getId()); //刪除新的 分銷關係表
//redisUtil.remove(Globals.ANDROID_LOGIN_MARK + user.getId());
//redisUtil.remove(Globals.WECHAT_LOGIN_MARK + user.getId());
//換用戶登錄
// 生成token,格式:用戶id;時間戳
// String token = JWT.sign(UserName.getId() + ";" + System.currentTimeMillis()+";"+"app", 0);
String tokenStr = request.getHeader("token");
// 將token存到redis中,有效期24小時
redisUtil.set(Globals.ANDROID_LOGIN_MARK + UserName.getId(), tokenStr, Globals.USER_INFO_EXPIRE_TIME);
resultMap.put("token", tokenStr);
// 覆蓋redis用戶信息
UserDto userDto = new UserDto();
BeanUtils.copyProperties(UserName, userDto);
redisUtil.set(Globals.USER_INFO_MARK + UserName.getId(), userDto, Globals.USER_INFO_EXPIRE_TIME);
resultMap.put("user", UserName);
return ResponseCode.buildSuccessMap(resultMap);
}else if(UserName!=null){
return ResponseCode.buildCodeMap("20007", "手機號已存在", null);
}else{
if (user!=null) {
user.setMobile(mobile);
user.setUserName(mobile);
}
userService.update(user);
}
// 修改登錄信息
/*user.setLoginCount(user.getLoginCount()+1);
user.setLastLoginDate(new Date());
user.setLastLoginIp(CommUtil.getIpAddr(request));
// 生成token,格式:用戶id;時間戳
String token = JWT.sign(user.getId() + ";" + System.currentTimeMillis(), 0);
// 將token存到redis中,有效期24小時
redisUtil.set(Globals.WECHAT_LOGIN_MARK + user.getId(), token, Globals.USER_INFO_EXPIRE_TIME);*/
// resultMap.put("token", token);
// 置空用戶敏感字段
/*user.setPassword("");
user.setPay_password("");*/
resultMap.put("user", user);
// 置空系統配置敏感字段
/*SysConfigDto sysConfig = sysConfigFeignClient.getSysConfig();
sysConfig.setWeixin_appId("");
sysConfig.setWeixin_appSecret("");
sysConfig.setUploadFilePath("");
sysConfig.setUser_level("");
resultMap.put("sysConfig", sysConfig);*/
return ResponseCode.buildSuccessMap(resultMap);
}
/**
* 用戶名密碼登錄
* @param json
* @param request
* @return
*/
@RequestMapping(value = "/login_user", method = RequestMethod.POST)
public Map<String,Object> login_user(@RequestBody JSONObject json, HttpServletRequest request){
String username = json.optString("username");
if(StringUtils.isEmpty(username)){
return ResponseCode.buildCodeMap("20001", "用戶不能爲空", null);
}
String password = json.optString("password");
if(StringUtils.isEmpty(password)){
return ResponseCode.buildCodeMap("20002", "驗證碼不能爲空", null);
}
User user = userService.selectByUserName(username);
if(user == null){
return ResponseCode.buildCodeMap("20003", "用戶不存在", null);
}
if(!StringUtils.equals(user.getPassword(), Md5Encrypt.md5(password).toLowerCase())){
return ResponseCode.buildCodeMap("20006", "密碼錯誤", null);
}
if(user.getSecurity() == 1){
return ResponseCode.buildCodeMap("20008", "賬戶存在安全隱患禁止登錄!", null);
}
String storestatus="";
if (user.getStore_id()!=null) {
StoreDto storeDto = storeFeignClient.selectByPrimaryKey(user.getStore_id());
if (storeDto!=null) {
storestatus=storeDto.getStore_status()+"";
}
}
// 修改登錄信息
user.setLoginCount(user.getLoginCount()+1);
user.setLastLoginDate(new Date());
user.setLastLoginIp(CommUtil.getIpAddr(request));
// 生成token,格式:用戶id;時間戳
String token = JWT.sign(user.getId() + ";" + System.currentTimeMillis()+";"+"app", 0);
// 將token存到redis中,有效期24小時
redisUtil.set(Globals.ANDROID_LOGIN_MARK + user.getId(), token, Globals.USER_INFO_EXPIRE_TIME);
// 返回結果集
Map<String, Object> resultMap = new HashMap<String, Object>();
resultMap.put("token", token);
// 置空用戶敏感字段
user.setPassword("");
user.setPay_password("");
resultMap.put("user", user);
// 置空系統配置敏感字段
SysConfigDto sysConfig = sysConfigFeignClient.getSysConfig();
sysConfig.setWeixin_appId("");
sysConfig.setWeixin_appSecret("");
sysConfig.setUploadFilePath("");
sysConfig.setUser_level("");
resultMap.put("sysConfig", sysConfig);
resultMap.put("storestatus", storestatus);
return ResponseCode.buildSuccessMap(resultMap);
}
/**
* 忘記密碼保存
* @param json
* @param request
* @return
*/
@RequestMapping(value = "/forget_password_save", method = RequestMethod.POST)
public Map<String,Object> forget_password_save(@RequestBody JSONObject json, HttpServletRequest request){
String sms_type = json.optString("sms_type");
if(StringUtils.isEmpty(sms_type)){
return ResponseCode.buildCodeMap("20001", "服務類型不能爲空", null);
}
if(!StringUtils.equals("forget_password", sms_type)){
return ResponseCode.buildCodeMap("20002", "服務類型錯誤", null);
}
String mobile = json.optString("mobile");
if(StringUtils.isEmpty(mobile)){
return ResponseCode.buildCodeMap("20003", "手機號碼不能爲空", null);
}
String code = json.optString("code");
if(StringUtils.isEmpty(code)){
return ResponseCode.buildCodeMap("20004", "驗證碼不能爲空", null);
}
String password = json.optString("password");
if(StringUtils.isEmpty(password)){
return ResponseCode.buildCodeMap("20005", "密碼不能爲空", null);
}
// 查詢短信配置
SmsConfig smsConfig = smsConfigService.findSmsConfig();
Integer use_minute = 5;
if(smsConfig != null && smsConfig.getUse_minute() != null){
use_minute = smsConfig.getUse_minute();
}
// 查詢手機號有效期內的驗證碼
SmsCode smsCode = smsCodeService.findByCode(mobile, sms_type, use_minute);
if(smsCode == null){
return ResponseCode.buildCodeMap("20006", "驗證碼已過期,請重新獲取!", null);
}
if(!StringUtils.equals(code, smsCode.getCode())){
return ResponseCode.buildCodeMap("20007", "驗證碼錯誤", null);
}
// 查詢手機號碼是否註冊
User user = userService.selectByUserName(mobile);
if(user == null){
return ResponseCode.buildCodeMap("20008", "用戶不存在", null);
}
user.setPassword(Md5Encrypt.md5(password).toLowerCase());
userService.updateById(user);
return ResponseCode.buildSuccessMap(null);
}
//TODO 魚易註冊
/**
* 手機號註冊(登錄)
* @param json
* @param request
* @return
*/
@RequestMapping(value = "/register_mobile_new", method = RequestMethod.POST)
public Map<String,Object> register_mobile_new(@RequestBody JSONObject json, HttpServletRequest request){
String sms_type = json.optString("sms_type");
String true_name = json.optString("true_name");//真實姓名
if(StringUtils.isEmpty(true_name)){
return ResponseCode.buildCodeMap("20007", "真實姓名不能爲空", null);
}
if(StringUtils.isEmpty(sms_type)){
return ResponseCode.buildCodeMap("20001", "服務類型不能爲空", null);
}
if(!StringUtils.equals("register_mobile", sms_type)){
return ResponseCode.buildCodeMap("20002", "服務類型錯誤", null);
}
String mobile = json.optString("mobile");
if(StringUtils.isEmpty(mobile)){
return ResponseCode.buildCodeMap("20003", "手機號碼不能爲空", null);
}
String code = json.optString("code");
if(StringUtils.isEmpty(code)){
return ResponseCode.buildCodeMap("20004", "驗證碼不能爲空", null);
}
String password = json.optString("password");
if(StringUtils.isEmpty(password)){
return ResponseCode.buildCodeMap("20004", "密碼不能爲空", null);
}
// 查詢短信配置
SmsConfig smsConfig = smsConfigService.findSmsConfig();
Integer use_minute = 5;
if(smsConfig != null && smsConfig.getUse_minute() != null){
use_minute = smsConfig.getUse_minute();
}
// 查詢手機號有效期內的驗證碼
SmsCode smsCode = smsCodeService.findByCode(mobile, sms_type, use_minute);
if(smsCode == null){
return ResponseCode.buildCodeMap("20005", "驗證碼已過期,請重新獲取!", null);
}
if(!StringUtils.equals(code, smsCode.getCode())){
return ResponseCode.buildCodeMap("20006", "驗證碼錯誤", null);
}
// 查詢手機號碼是否註冊
User user = userService.selectByUserName(mobile);
if(user != null){
return ResponseCode.buildCodeMap("20007", "手機號已註冊", null);
}
user = new User();
user.setDeleteStatus(0);
user.setSex(-1); // 性別 1爲男、0爲女、-1爲保密
user.setDeleteStatus(0);
user.setAddTime(new Date());
user.setMonth_income(0);
user.setIntegral(0);
user.setIs_agent(0);
user.setTrueName(true_name);
user.setLoginCount(0);
user.setAvailableBalance(BigDecimal.ZERO);
user.setFreezeBlance(BigDecimal.ZERO);
user.setMobile(mobile);
user.setUserName(mobile);
user.setPassword(Md5Encrypt.md5(password).toLowerCase());
user.setYears(0); // 用戶年齡
user.setIs_live(0);
user.setUser_type(0); // 用戶類別,默認爲0個人用戶,1爲企業用戶
user.setStore_apply_step(0); // 店鋪申請進行的步驟,默認爲0
user.setInvoiceType(0); // 發票類型
user.setLive_code(userService.selectMaxLiveCode() + 1);
user.setWhether_attention(1); //是否允許關注 0爲不允許,1爲允許
userService.saveEntity(user);
userService.saveDisUser(user, "-1");
// 修改登錄信息
user.setLoginCount(user.getLoginCount()+1);
user.setLastLoginDate(new Date());
user.setLastLoginIp(CommUtil.getIpAddr(request));
// 生成token,格式:用戶id;時間戳
String token = JWT.sign(user.getId() + ";" + System.currentTimeMillis()+";"+"app", 0);
// 將token存到redis中,有效期24小時
redisUtil.set(Globals.ANDROID_LOGIN_MARK + user.getId(), token, Globals.USER_INFO_EXPIRE_TIME);
//傳同步給魚易 真實姓名, 手機號 , 密碼,
//userService.yuyiSaveUser(true_name,mobile,password);
// 返回結果集
Map<String, Object> resultMap = new HashMap<String, Object>();
resultMap.put("token", token);
// 置空用戶敏感字段
user.setPassword("");
user.setPay_password("");
resultMap.put("user", user);
// 置空系統配置敏感字段
SysConfigDto sysConfig = sysConfigFeignClient.getSysConfig();
sysConfig.setWeixin_appId("");
sysConfig.setWeixin_appSecret("");
sysConfig.setUploadFilePath("");
sysConfig.setUser_level("");
resultMap.put("sysConfig", sysConfig);
return ResponseCode.buildSuccessMap(resultMap);
}
}
@源碼地址來源: https://minglisoft.cn/honghu/business.html