HongHu All rights reserved. */package com.honghu.cloud.controller; import java.math.BigDecimal;impo..._uniapp 三级分销商城">
当前位置:   article > 正文

java版Spring Cloud+Spring Boot+mybatis+security+uniapp+Redis+MQ+VR全景+直播短视频带货+三级分销+b2b2c多商家入驻前后端分离商城源码_uniapp 三级分销商城

uniapp 三级分销商城

 @源码地址来源: https://minglisoft.cn/honghu2/business.html

手机端源码

  1. /**
  2. * Copyright &copy; 2012-2017 <a href="http://minglisoft.cn">HongHu</a> All rights reserved.
  3. */
  4. package com.honghu.cloud.controller;
  5. import java.math.BigDecimal;
  6. import java.util.Date;
  7. import java.util.HashMap;
  8. import java.util.List;
  9. import java.util.Map;
  10. import javax.servlet.http.HttpServletRequest;
  11. import org.apache.commons.lang.StringUtils;
  12. import org.springframework.beans.BeanUtils;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.web.bind.annotation.CrossOrigin;
  15. import org.springframework.web.bind.annotation.GetMapping;
  16. import org.springframework.web.bind.annotation.RequestBody;
  17. import org.springframework.web.bind.annotation.RequestMapping;
  18. import org.springframework.web.bind.annotation.RequestMethod;
  19. import org.springframework.web.bind.annotation.RestController;
  20. import com.google.common.collect.Lists;
  21. import com.honghu.cloud.bean.SmsCode;
  22. import com.honghu.cloud.bean.SmsConfig;
  23. import com.honghu.cloud.bean.SmsTemplate;
  24. import com.honghu.cloud.bean.User;
  25. import com.honghu.cloud.code.ResponseCode;
  26. import com.honghu.cloud.constant.Globals;
  27. import com.honghu.cloud.dto.AccessoryDto;
  28. import com.honghu.cloud.dto.StoreDto;
  29. import com.honghu.cloud.dto.SysConfigDto;
  30. import com.honghu.cloud.dto.UserDto;
  31. import com.honghu.cloud.feign.AccessoryFeignClient;
  32. import com.honghu.cloud.feign.DistributionUserFeignClient;
  33. import com.honghu.cloud.feign.StoreFeignClient;
  34. import com.honghu.cloud.feign.SysConfigFeignClient;
  35. import com.honghu.cloud.redis.RedisUtil;
  36. import com.honghu.cloud.service.ISmsCodeService;
  37. import com.honghu.cloud.service.ISmsConfigService;
  38. import com.honghu.cloud.service.ISmsTemplateService;
  39. import com.honghu.cloud.service.IUserService;
  40. import com.honghu.cloud.tools.AliSmsUtil;
  41. import com.honghu.cloud.tools.SecurityUserHolder;
  42. import com.honghu.cloud.utils.CommUtil;
  43. import com.honghu.cloud.utils.JWT;
  44. import com.honghu.cloud.utils.tools.Md5Encrypt;
  45. import net.sf.json.JSONObject;
  46. /**
  47. * 短信服务
  48. * @author Administrator
  49. *
  50. */
  51. @RestController
  52. @RequestMapping(value = "/mobile")
  53. @CrossOrigin(origins = "*",maxAge = 3600)
  54. public class MobileController {
  55. @Autowired
  56. private ISmsConfigService smsConfigService;
  57. @Autowired
  58. private ISmsTemplateService smsTemplateService;
  59. @Autowired
  60. private ISmsCodeService smsCodeService;
  61. @Autowired
  62. private SysConfigFeignClient sysConfigFeignClient;
  63. @Autowired
  64. private IUserService userService;
  65. @Autowired
  66. private RedisUtil redisUtil;
  67. @Autowired
  68. private StoreFeignClient storeFeignClient;
  69. @Autowired
  70. private DistributionUserFeignClient disUserFeignClient;
  71. @Autowired
  72. private AccessoryFeignClient accessoryFeignClient;
  73. // 短信服务类型
  74. public static List<String> sms_items = Lists.newArrayList();
  75. static{
  76. sms_items.add("bind_mobile"); // 绑定手机发送短信
  77. sms_items.add("register_mobile"); // 手机号码注册发送短信
  78. sms_items.add("login_mobile"); // 手机登录发送短信
  79. sms_items.add("update_password"); // 修改密码
  80. sms_items.add("update_pay_password"); // 修改支付密码
  81. sms_items.add("forget_password"); // 忘记密码
  82. }
  83. /**
  84. * 发送短信服务
  85. * @param json(sms_type:bind_mobile,register_mobile,login_mobile)
  86. * @param request
  87. * @return
  88. */
  89. @RequestMapping(value = "/sendCode", method = RequestMethod.POST)
  90. public Map<String,Object> sendCode(@RequestBody JSONObject json, HttpServletRequest request){
  91. String sms_type = json.optString("sms_type");
  92. if(StringUtils.isEmpty(sms_type)){
  93. return ResponseCode.buildCodeMap("20001", "服务类型不能为空", null);
  94. }
  95. if(!sms_items.contains(sms_type)){
  96. return ResponseCode.buildCodeMap("20002", "服务类型错误", null);
  97. }
  98. String mobile = json.optString("mobile");
  99. if(StringUtils.isEmpty(mobile)){
  100. return ResponseCode.buildCodeMap("20003", "手机号码不能为空", null);
  101. }
  102. // 查询短信配置
  103. SmsConfig smsConfig = smsConfigService.findSmsConfig();
  104. if(smsConfig == null){
  105. return ResponseCode.buildCodeMap("20004", "系统未配置短信服务服务", null);
  106. }
  107. // 根据(英文模板名称)查询短信模板
  108. SmsTemplate smsTemplate = smsTemplateService.findByCodeEn(sms_type);
  109. if(smsTemplate == null){
  110. return ResponseCode.buildCodeMap("20005", "服务模板不存在", null);
  111. }
  112. String content = "";
  113. if (StringUtils.equals(sms_type, "bind_mobile") || StringUtils.equals(sms_type, "register_mobile")
  114. || StringUtils.equals(sms_type, "login_mobile") || StringUtils.equals(sms_type, "forget_password")
  115. || StringUtils.equals(sms_type, "update_password")|| StringUtils.equals(sms_type, "update_pay_password")) {
  116. // 入库验证码
  117. SmsCode smsCode = new SmsCode();
  118. smsCode.setMobile(mobile);
  119. smsCode.setSend_time(new Date());
  120. smsCode.setCode(CommUtil.randomInt(4));
  121. smsCode.setCode_en(sms_type);
  122. smsCodeService.saveEntity(smsCode);
  123. content = "{\"code\":\"" + smsCode.getCode() + "\"}";
  124. }
  125. // 发送短信
  126. String result = AliSmsUtil.sendByALY(mobile, content, smsConfig, smsTemplate);
  127. if(StringUtils.isNotEmpty(result)){
  128. return ResponseCode.buildCodeMap("20006", result, null);
  129. }
  130. return ResponseCode.buildSuccessMap("短信发送成功");
  131. }
  132. /**
  133. * 手机号注册(登录)
  134. * @param json
  135. * @param request
  136. * @return
  137. */
  138. @RequestMapping(value = "/register_mobile", method = RequestMethod.POST)
  139. public Map<String,Object> register_mobile(@RequestBody JSONObject json, HttpServletRequest request){
  140. String sms_type = json.optString("sms_type");
  141. if(StringUtils.isEmpty(sms_type)){
  142. return ResponseCode.buildCodeMap("20001", "服务类型不能为空", null);
  143. }
  144. if(!StringUtils.equals("register_mobile", sms_type)){
  145. return ResponseCode.buildCodeMap("20002", "服务类型错误", null);
  146. }
  147. String mobile = json.optString("mobile");
  148. if(StringUtils.isEmpty(mobile)){
  149. return ResponseCode.buildCodeMap("20003", "手机号码不能为空", null);
  150. }
  151. String code = json.optString("code");
  152. if(StringUtils.isEmpty(code)){
  153. return ResponseCode.buildCodeMap("20004", "验证码不能为空", null);
  154. }
  155. String password = json.optString("password");
  156. if(StringUtils.isEmpty(password)){
  157. return ResponseCode.buildCodeMap("20004", "密码不能为空", null);
  158. }
  159. // 查询短信配置
  160. SmsConfig smsConfig = smsConfigService.findSmsConfig();
  161. Integer use_minute = 5;
  162. if(smsConfig != null && smsConfig.getUse_minute() != null){
  163. use_minute = smsConfig.getUse_minute();
  164. }
  165. // 查询手机号有效期内的验证码
  166. SmsCode smsCode = smsCodeService.findByCode(mobile, sms_type, use_minute);
  167. if(smsCode == null){
  168. return ResponseCode.buildCodeMap("20005", "验证码已过期,请重新获取!", null);
  169. }
  170. if(!StringUtils.equals(code, smsCode.getCode())){
  171. return ResponseCode.buildCodeMap("20006", "验证码错误", null);
  172. }
  173. // 查询手机号码是否注册
  174. User user = userService.selectByUserName(mobile);
  175. if(user != null){
  176. return ResponseCode.buildCodeMap("20007", "手机号已注册", null);
  177. }
  178. user = new User();
  179. user.setDeleteStatus(0);
  180. user.setSex(-1); // 性别 1为男、0为女、-1为保密
  181. user.setDeleteStatus(0);
  182. user.setAddTime(new Date());
  183. user.setMonth_income(0);
  184. user.setIntegral(0);
  185. user.setIs_agent(0);
  186. user.setLoginCount(0);
  187. user.setAvailableBalance(BigDecimal.ZERO);
  188. user.setFreezeBlance(BigDecimal.ZERO);
  189. user.setMobile(mobile);
  190. user.setUserName(mobile);
  191. user.setPassword(Md5Encrypt.md5(password).toLowerCase());
  192. user.setYears(0); // 用户年龄
  193. user.setIs_live(0);
  194. user.setUser_type(0); // 用户类别,默认为0个人用户,1为企业用户
  195. user.setStore_apply_step(0); // 店铺申请进行的步骤,默认为0
  196. user.setInvoiceType(0); // 发票类型
  197. user.setLive_code(userService.selectMaxLiveCode() + 1);
  198. user.setWhether_attention(1); //是否允许关注 0为不允许,1为允许
  199. userService.saveEntity(user);
  200. userService.saveDisUser(user, "-1");
  201. // 修改登录信息
  202. user.setLoginCount(user.getLoginCount()+1);
  203. user.setLastLoginDate(new Date());
  204. user.setLastLoginIp(CommUtil.getIpAddr(request));
  205. // 生成token,格式:用户id;时间戳
  206. String token = JWT.sign(user.getId() + ";" + System.currentTimeMillis()+";"+"app", 0);
  207. // 将token存到redis中,有效期24小时
  208. redisUtil.set(Globals.ANDROID_LOGIN_MARK + user.getId(), token, Globals.USER_INFO_EXPIRE_TIME);
  209. // 返回结果集
  210. Map<String, Object> resultMap = new HashMap<String, Object>();
  211. resultMap.put("token", token);
  212. // 置空用户敏感字段
  213. user.setPassword("");
  214. user.setPay_password("");
  215. resultMap.put("user", user);
  216. // 置空系统配置敏感字段
  217. SysConfigDto sysConfig = sysConfigFeignClient.getSysConfig();
  218. sysConfig.setWeixin_appId("");
  219. sysConfig.setWeixin_appSecret("");
  220. sysConfig.setUploadFilePath("");
  221. sysConfig.setUser_level("");
  222. resultMap.put("sysConfig", sysConfig);
  223. return ResponseCode.buildSuccessMap(resultMap);
  224. }
  225. /**
  226. * 手机号登录
  227. * @param json
  228. * @param request
  229. * @return
  230. */
  231. @RequestMapping(value = "/login_mobile", method = RequestMethod.POST)
  232. public Map<String,Object> login_mobile(@RequestBody JSONObject json, HttpServletRequest request){
  233. String sms_type = json.optString("sms_type");
  234. if(StringUtils.isEmpty(sms_type)){
  235. return ResponseCode.buildCodeMap("20001", "服务类型不能为空", null);
  236. }
  237. if(!StringUtils.equals("login_mobile", sms_type)){
  238. return ResponseCode.buildCodeMap("20002", "服务类型错误", null);
  239. }
  240. String mobile = json.optString("mobile");
  241. if(StringUtils.isEmpty(mobile)){
  242. return ResponseCode.buildCodeMap("20003", "手机号码不能为空", null);
  243. }
  244. String code = json.optString("code");
  245. if(StringUtils.isEmpty(code)){
  246. return ResponseCode.buildCodeMap("20004", "验证码不能为空", null);
  247. }
  248. // 查询短信配置
  249. SmsConfig smsConfig = smsConfigService.findSmsConfig();
  250. Integer use_minute = 5;
  251. if(smsConfig != null && smsConfig.getUse_minute() != null){
  252. use_minute = smsConfig.getUse_minute();
  253. }
  254. // 查询手机号有效期内的验证码
  255. SmsCode smsCode = smsCodeService.findByCode(mobile, sms_type, use_minute);
  256. if(smsCode == null){
  257. return ResponseCode.buildCodeMap("20005", "验证码已过期,请重新获取!", null);
  258. }
  259. if(!StringUtils.equals(code, smsCode.getCode())){
  260. return ResponseCode.buildCodeMap("20006", "验证码错误", null);
  261. }
  262. // 查询手机号码是否注册
  263. User user = userService.selectByUserName(mobile);
  264. if(user == null){
  265. return ResponseCode.buildCodeMap("20007", "该用户不存在", null);
  266. }
  267. if(user.getSecurity() == 1){
  268. return ResponseCode.buildCodeMap("20008", "账户存在安全隐患禁止登录!", null);
  269. }
  270. String storestatus="";
  271. if (user.getStore_id()!=null) {
  272. StoreDto storeDto = storeFeignClient.selectByPrimaryKey(user.getStore_id());
  273. if (storeDto!=null) {
  274. storestatus=storeDto.getStore_status()+"";
  275. }
  276. }
  277. // 修改登录信息
  278. user.setLoginCount(user.getLoginCount()+1);
  279. user.setLastLoginDate(new Date());
  280. user.setLastLoginIp(CommUtil.getIpAddr(request));
  281. // 生成token,格式:用户id;时间戳
  282. String token = JWT.sign(user.getId() + ";" + System.currentTimeMillis()+";"+"app", 0);
  283. // 将token存到redis中,有效期24小时
  284. redisUtil.set(Globals.ANDROID_LOGIN_MARK + user.getId(), token, Globals.USER_INFO_EXPIRE_TIME);
  285. // 返回结果集
  286. Map<String, Object> resultMap = new HashMap<String, Object>();
  287. resultMap.put("token", token);
  288. // 置空用户敏感字段
  289. user.setPassword("");
  290. user.setPay_password("");
  291. if (user.getPhoto_id()!=null) {
  292. AccessoryDto accessoryDto = accessoryFeignClient.selectByPrimaryKey(user.getPhoto_id());
  293. if (accessoryDto!=null) user.setPhoto(accessoryDto);
  294. }
  295. resultMap.put("user", user);
  296. /*// 置空系统配置敏感字段
  297. SysConfigDto sysConfig = sysConfigFeignClient.getSysConfig();
  298. sysConfig.setWeixin_appId("");
  299. sysConfig.setWeixin_appSecret("");
  300. sysConfig.setUploadFilePath("");
  301. sysConfig.setUser_level("");
  302. resultMap.put("sysConfig", sysConfig);*/
  303. resultMap.put("storestatus", storestatus);
  304. return ResponseCode.buildSuccessMap(resultMap);
  305. }
  306. /**
  307. * 手机号绑定
  308. * @param json
  309. * @param request
  310. * @return
  311. */
  312. @RequestMapping(value = "/login_bind", method = RequestMethod.POST)
  313. public Map<String,Object> login_bind(@RequestBody JSONObject json, HttpServletRequest request){
  314. String sms_type = json.optString("sms_type");
  315. if(StringUtils.isEmpty(sms_type)){
  316. return ResponseCode.buildCodeMap("20001", "服务类型不能为空", null);
  317. }
  318. if(!StringUtils.equals("bind_mobile", sms_type)){
  319. return ResponseCode.buildCodeMap("20002", "服务类型错误", null);
  320. }
  321. String mobile = json.optString("mobile");
  322. if(StringUtils.isEmpty(mobile)){
  323. return ResponseCode.buildCodeMap("20003", "手机号码不能为空", null);
  324. }
  325. String code = json.optString("code");
  326. if(StringUtils.isEmpty(code)){
  327. return ResponseCode.buildCodeMap("20004", "验证码不能为空", null);
  328. }
  329. String id = json.optString("id");
  330. if(StringUtils.isEmpty(id)){
  331. return ResponseCode.buildCodeMap("20008", "id不能为空", null);
  332. }
  333. // 查询短信配置
  334. SmsConfig smsConfig = smsConfigService.findSmsConfig();
  335. Integer use_minute = 5;
  336. if(smsConfig != null && smsConfig.getUse_minute() != null){
  337. use_minute = smsConfig.getUse_minute();
  338. }
  339. // 查询手机号有效期内的验证码
  340. SmsCode smsCode = smsCodeService.findByCode(mobile, sms_type, use_minute);
  341. if(smsCode == null){
  342. return ResponseCode.buildCodeMap("20005", "验证码已过期,请重新获取!", null);
  343. }
  344. if(!StringUtils.equals(code, smsCode.getCode())){
  345. return ResponseCode.buildCodeMap("20006", "验证码错误", null);
  346. }
  347. // 返回结果集
  348. Map<String, Object> resultMap = new HashMap<String, Object>();
  349. // 查询手机号码是否注册
  350. User UserName = userService.selectByUserName(mobile); //原用户
  351. User user = userService.selectByPrimaryKey(CommUtil.null2Long(id)); //刚注册的用户
  352. // 原手机号存在用户, 并且登录用户有微信union ,需要合并用户 , 手机号存在, 并且 unionid 为空
  353. if (UserName!=null&&StringUtils.isEmpty(UserName.getWeixin_unionID())&&user.getWeixin_unionID()!=null) {
  354. UserName.setWeixin_unionID(user.getWeixin_unionID()); //将新unionid 存入旧数据中
  355. if (UserName.getLive_code()==null) {
  356. UserName.setLive_code(userService.selectMaxLiveCode() + 1);
  357. }
  358. if (StringUtils.isEmpty(UserName.getNickName())) {
  359. UserName.setNickName(user.getNickName());
  360. }
  361. if (user.getPhoto_id()!=null) {
  362. UserName.setPhoto_id(user.getPhoto_id());
  363. }
  364. if (user.getOpenId()!=null) {
  365. UserName.setOpenId(user.getOpenId());
  366. }
  367. userService.updateById(UserName);
  368. user.setDeleteStatus(1);
  369. user.setMobile("del"+CommUtil.null2String(mobile));
  370. user.setUserName("del"+CommUtil.null2String(mobile));
  371. user.setWeixin_unionID("del"+UserName.getId()+"");
  372. userService.updateById(user);
  373. disUserFeignClient.deleteByUserId(user.getId()); //删除新的 分销关系表
  374. //redisUtil.remove(Globals.ANDROID_LOGIN_MARK + user.getId());
  375. //redisUtil.remove(Globals.WECHAT_LOGIN_MARK + user.getId());
  376. //换用户登录
  377. // 生成token,格式:用户id;时间戳
  378. // String token = JWT.sign(UserName.getId() + ";" + System.currentTimeMillis()+";"+"app", 0);
  379. String tokenStr = request.getHeader("token");
  380. // 将token存到redis中,有效期24小时
  381. redisUtil.set(Globals.ANDROID_LOGIN_MARK + UserName.getId(), tokenStr, Globals.USER_INFO_EXPIRE_TIME);
  382. resultMap.put("token", tokenStr);
  383. // 覆盖redis用户信息
  384. UserDto userDto = new UserDto();
  385. BeanUtils.copyProperties(UserName, userDto);
  386. redisUtil.set(Globals.USER_INFO_MARK + UserName.getId(), userDto, Globals.USER_INFO_EXPIRE_TIME);
  387. resultMap.put("user", UserName);
  388. return ResponseCode.buildSuccessMap(resultMap);
  389. }else if(UserName!=null){
  390. return ResponseCode.buildCodeMap("20007", "手机号已存在", null);
  391. }else{
  392. if (user!=null) {
  393. user.setMobile(mobile);
  394. user.setUserName(mobile);
  395. }
  396. userService.update(user);
  397. }
  398. // 修改登录信息
  399. /*user.setLoginCount(user.getLoginCount()+1);
  400. user.setLastLoginDate(new Date());
  401. user.setLastLoginIp(CommUtil.getIpAddr(request));
  402. // 生成token,格式:用户id;时间戳
  403. String token = JWT.sign(user.getId() + ";" + System.currentTimeMillis(), 0);
  404. // 将token存到redis中,有效期24小时
  405. redisUtil.set(Globals.WECHAT_LOGIN_MARK + user.getId(), token, Globals.USER_INFO_EXPIRE_TIME);*/
  406. // resultMap.put("token", token);
  407. // 置空用户敏感字段
  408. /*user.setPassword("");
  409. user.setPay_password("");*/
  410. resultMap.put("user", user);
  411. // 置空系统配置敏感字段
  412. /*SysConfigDto sysConfig = sysConfigFeignClient.getSysConfig();
  413. sysConfig.setWeixin_appId("");
  414. sysConfig.setWeixin_appSecret("");
  415. sysConfig.setUploadFilePath("");
  416. sysConfig.setUser_level("");
  417. resultMap.put("sysConfig", sysConfig);*/
  418. return ResponseCode.buildSuccessMap(resultMap);
  419. }
  420. /**
  421. * 用户名密码登录
  422. * @param json
  423. * @param request
  424. * @return
  425. */
  426. @RequestMapping(value = "/login_user", method = RequestMethod.POST)
  427. public Map<String,Object> login_user(@RequestBody JSONObject json, HttpServletRequest request){
  428. String username = json.optString("username");
  429. if(StringUtils.isEmpty(username)){
  430. return ResponseCode.buildCodeMap("20001", "用户不能为空", null);
  431. }
  432. String password = json.optString("password");
  433. if(StringUtils.isEmpty(password)){
  434. return ResponseCode.buildCodeMap("20002", "验证码不能为空", null);
  435. }
  436. User user = userService.selectByUserName(username);
  437. if(user == null){
  438. return ResponseCode.buildCodeMap("20003", "用户不存在", null);
  439. }
  440. if(!StringUtils.equals(user.getPassword(), Md5Encrypt.md5(password).toLowerCase())){
  441. return ResponseCode.buildCodeMap("20006", "密码错误", null);
  442. }
  443. if(user.getSecurity() == 1){
  444. return ResponseCode.buildCodeMap("20008", "账户存在安全隐患禁止登录!", null);
  445. }
  446. String storestatus="";
  447. if (user.getStore_id()!=null) {
  448. StoreDto storeDto = storeFeignClient.selectByPrimaryKey(user.getStore_id());
  449. if (storeDto!=null) {
  450. storestatus=storeDto.getStore_status()+"";
  451. }
  452. }
  453. // 修改登录信息
  454. user.setLoginCount(user.getLoginCount()+1);
  455. user.setLastLoginDate(new Date());
  456. user.setLastLoginIp(CommUtil.getIpAddr(request));
  457. // 生成token,格式:用户id;时间戳
  458. String token = JWT.sign(user.getId() + ";" + System.currentTimeMillis()+";"+"app", 0);
  459. // 将token存到redis中,有效期24小时
  460. redisUtil.set(Globals.ANDROID_LOGIN_MARK + user.getId(), token, Globals.USER_INFO_EXPIRE_TIME);
  461. // 返回结果集
  462. Map<String, Object> resultMap = new HashMap<String, Object>();
  463. resultMap.put("token", token);
  464. // 置空用户敏感字段
  465. user.setPassword("");
  466. user.setPay_password("");
  467. resultMap.put("user", user);
  468. // 置空系统配置敏感字段
  469. SysConfigDto sysConfig = sysConfigFeignClient.getSysConfig();
  470. sysConfig.setWeixin_appId("");
  471. sysConfig.setWeixin_appSecret("");
  472. sysConfig.setUploadFilePath("");
  473. sysConfig.setUser_level("");
  474. resultMap.put("sysConfig", sysConfig);
  475. resultMap.put("storestatus", storestatus);
  476. return ResponseCode.buildSuccessMap(resultMap);
  477. }
  478. /**
  479. * 忘记密码保存
  480. * @param json
  481. * @param request
  482. * @return
  483. */
  484. @RequestMapping(value = "/forget_password_save", method = RequestMethod.POST)
  485. public Map<String,Object> forget_password_save(@RequestBody JSONObject json, HttpServletRequest request){
  486. String sms_type = json.optString("sms_type");
  487. if(StringUtils.isEmpty(sms_type)){
  488. return ResponseCode.buildCodeMap("20001", "服务类型不能为空", null);
  489. }
  490. if(!StringUtils.equals("forget_password", sms_type)){
  491. return ResponseCode.buildCodeMap("20002", "服务类型错误", null);
  492. }
  493. String mobile = json.optString("mobile");
  494. if(StringUtils.isEmpty(mobile)){
  495. return ResponseCode.buildCodeMap("20003", "手机号码不能为空", null);
  496. }
  497. String code = json.optString("code");
  498. if(StringUtils.isEmpty(code)){
  499. return ResponseCode.buildCodeMap("20004", "验证码不能为空", null);
  500. }
  501. String password = json.optString("password");
  502. if(StringUtils.isEmpty(password)){
  503. return ResponseCode.buildCodeMap("20005", "密码不能为空", null);
  504. }
  505. // 查询短信配置
  506. SmsConfig smsConfig = smsConfigService.findSmsConfig();
  507. Integer use_minute = 5;
  508. if(smsConfig != null && smsConfig.getUse_minute() != null){
  509. use_minute = smsConfig.getUse_minute();
  510. }
  511. // 查询手机号有效期内的验证码
  512. SmsCode smsCode = smsCodeService.findByCode(mobile, sms_type, use_minute);
  513. if(smsCode == null){
  514. return ResponseCode.buildCodeMap("20006", "验证码已过期,请重新获取!", null);
  515. }
  516. if(!StringUtils.equals(code, smsCode.getCode())){
  517. return ResponseCode.buildCodeMap("20007", "验证码错误", null);
  518. }
  519. // 查询手机号码是否注册
  520. User user = userService.selectByUserName(mobile);
  521. if(user == null){
  522. return ResponseCode.buildCodeMap("20008", "用户不存在", null);
  523. }
  524. user.setPassword(Md5Encrypt.md5(password).toLowerCase());
  525. userService.updateById(user);
  526. return ResponseCode.buildSuccessMap(null);
  527. }
  528. //TODO 鱼易注册
  529. /**
  530. * 手机号注册(登录)
  531. * @param json
  532. * @param request
  533. * @return
  534. */
  535. @RequestMapping(value = "/register_mobile_new", method = RequestMethod.POST)
  536. public Map<String,Object> register_mobile_new(@RequestBody JSONObject json, HttpServletRequest request){
  537. String sms_type = json.optString("sms_type");
  538. String true_name = json.optString("true_name");//真实姓名
  539. if(StringUtils.isEmpty(true_name)){
  540. return ResponseCode.buildCodeMap("20007", "真实姓名不能为空", null);
  541. }
  542. if(StringUtils.isEmpty(sms_type)){
  543. return ResponseCode.buildCodeMap("20001", "服务类型不能为空", null);
  544. }
  545. if(!StringUtils.equals("register_mobile", sms_type)){
  546. return ResponseCode.buildCodeMap("20002", "服务类型错误", null);
  547. }
  548. String mobile = json.optString("mobile");
  549. if(StringUtils.isEmpty(mobile)){
  550. return ResponseCode.buildCodeMap("20003", "手机号码不能为空", null);
  551. }
  552. String code = json.optString("code");
  553. if(StringUtils.isEmpty(code)){
  554. return ResponseCode.buildCodeMap("20004", "验证码不能为空", null);
  555. }
  556. String password = json.optString("password");
  557. if(StringUtils.isEmpty(password)){
  558. return ResponseCode.buildCodeMap("20004", "密码不能为空", null);
  559. }
  560. // 查询短信配置
  561. SmsConfig smsConfig = smsConfigService.findSmsConfig();
  562. Integer use_minute = 5;
  563. if(smsConfig != null && smsConfig.getUse_minute() != null){
  564. use_minute = smsConfig.getUse_minute();
  565. }
  566. // 查询手机号有效期内的验证码
  567. SmsCode smsCode = smsCodeService.findByCode(mobile, sms_type, use_minute);
  568. if(smsCode == null){
  569. return ResponseCode.buildCodeMap("20005", "验证码已过期,请重新获取!", null);
  570. }
  571. if(!StringUtils.equals(code, smsCode.getCode())){
  572. return ResponseCode.buildCodeMap("20006", "验证码错误", null);
  573. }
  574. // 查询手机号码是否注册
  575. User user = userService.selectByUserName(mobile);
  576. if(user != null){
  577. return ResponseCode.buildCodeMap("20007", "手机号已注册", null);
  578. }
  579. user = new User();
  580. user.setDeleteStatus(0);
  581. user.setSex(-1); // 性别 1为男、0为女、-1为保密
  582. user.setDeleteStatus(0);
  583. user.setAddTime(new Date());
  584. user.setMonth_income(0);
  585. user.setIntegral(0);
  586. user.setIs_agent(0);
  587. user.setTrueName(true_name);
  588. user.setLoginCount(0);
  589. user.setAvailableBalance(BigDecimal.ZERO);
  590. user.setFreezeBlance(BigDecimal.ZERO);
  591. user.setMobile(mobile);
  592. user.setUserName(mobile);
  593. user.setPassword(Md5Encrypt.md5(password).toLowerCase());
  594. user.setYears(0); // 用户年龄
  595. user.setIs_live(0);
  596. user.setUser_type(0); // 用户类别,默认为0个人用户,1为企业用户
  597. user.setStore_apply_step(0); // 店铺申请进行的步骤,默认为0
  598. user.setInvoiceType(0); // 发票类型
  599. user.setLive_code(userService.selectMaxLiveCode() + 1);
  600. user.setWhether_attention(1); //是否允许关注 0为不允许,1为允许
  601. userService.saveEntity(user);
  602. userService.saveDisUser(user, "-1");
  603. // 修改登录信息
  604. user.setLoginCount(user.getLoginCount()+1);
  605. user.setLastLoginDate(new Date());
  606. user.setLastLoginIp(CommUtil.getIpAddr(request));
  607. // 生成token,格式:用户id;时间戳
  608. String token = JWT.sign(user.getId() + ";" + System.currentTimeMillis()+";"+"app", 0);
  609. // 将token存到redis中,有效期24小时
  610. redisUtil.set(Globals.ANDROID_LOGIN_MARK + user.getId(), token, Globals.USER_INFO_EXPIRE_TIME);
  611. //传同步给鱼易 真实姓名, 手机号 , 密码,
  612. //userService.yuyiSaveUser(true_name,mobile,password);
  613. // 返回结果集
  614. Map<String, Object> resultMap = new HashMap<String, Object>();
  615. resultMap.put("token", token);
  616. // 置空用户敏感字段
  617. user.setPassword("");
  618. user.setPay_password("");
  619. resultMap.put("user", user);
  620. // 置空系统配置敏感字段
  621. SysConfigDto sysConfig = sysConfigFeignClient.getSysConfig();
  622. sysConfig.setWeixin_appId("");
  623. sysConfig.setWeixin_appSecret("");
  624. sysConfig.setUploadFilePath("");
  625. sysConfig.setUser_level("");
  626. resultMap.put("sysConfig", sysConfig);
  627. return ResponseCode.buildSuccessMap(resultMap);
  628. }
  629. }
 @源码地址来源: https://minglisoft.cn/honghu2/business.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/999812
推荐阅读
相关标签
  

闽ICP备14008679号