java版Spring Cloud+Spring Boot+mybatis+security+uniapp+Redis+MQ+VR全景+直播短視頻帶貨+三級分銷+b2b2c多商家入駐前後端分離商城源碼

 @源碼地址來源: https://minglisoft.cn/honghu/business.html

手機端源碼:

/**
 * Copyright &copy; 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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章