Explorar o código

增加修改手机号接口

Qifeng-Wu %!s(int64=5) %!d(string=hai) anos
pai
achega
908b538850

+ 62 - 1
happy-job-module-hpjob/src/main/java/com/jeeplus/modules/api/sys/LoginAppController.java

@@ -461,4 +461,65 @@ public class LoginAppController extends BaseAppController {
         ModelAndView view = new ModelAndView(new MappingJackson2JsonView(), obj);
         return view;
     }
-}
+    
+    /**
+     * 手机端修改手机号
+     */
+    @RequestMapping(value = "/editUserPhone", method = RequestMethod.POST)
+    @ResponseBody
+    public ModelAndView editUserPhone(HttpServletRequest request, HttpServletResponse response) {
+    	response.setHeader("Access-Control-Allow-Origin", "*");
+        response.setHeader("Access-Control-Allow-Method", "POST,GET");
+        Map<String, Object> returnMap = new HashMap<String, Object>();
+        Map<String, String> requestMap = findRequestMap(request);
+        Map<String, Object> obj = null;
+        try {
+        	  //一个接口两种用法,1、当带参数type为"check_phone"时,不去修改手机号,仅仅只是校验修改手机号之前的验证(前端在修改手机号时,点击发送验证码时校验手机号的动作时使用)
+        	  //2、否则就是去验证并修改手机号
+              String type = requestMap.get("type");
+        	  if ("check_phone".equals(type)) {//验证手机号
+        		  returnMap = hpUserService.editUserPhone(requestMap, type);
+                  if ("1004".equals(returnMap.get("success"))) {
+                      obj = errorResult(ErrorCode.code_2008, "用户信息验证失败");
+                  } else if ("2010".equals(returnMap.get("success"))) {
+                      obj = errorResult(ErrorCode.code_2010, Global.getNoLogin());
+                  } else if ("2007".equals(returnMap.get("success"))) {
+                      obj = errorResult(ErrorCode.code_2007, "新手机号与原手机号相同");
+                  } else if ("1007".equals(returnMap.get("success"))) {
+                      obj = errorResult(ErrorCode.code_1007, "该账号已存在");
+                  } else {
+                      obj = successResult(ErrorCode.code_1000, "手机号验证通过", returnMap);
+                  }
+        	  }else {//验证并修改手机号
+        		  String phone = requestMap.get("phone");
+            	  String code = (String) CacheUtils.get(APP_USER, phone);
+                  String getCode = requestMap.get("code");
+                  if (StringUtils.isNotBlank(code) && StringUtils.isNotBlank(getCode)) {
+                      if (code.equals(getCode)) {
+                    	  returnMap = hpUserService.editUserPhone(requestMap, type);
+                          if ("1004".equals(returnMap.get("success"))) {
+                              obj = errorResult(ErrorCode.code_2008, "用户信息验证失败");
+                          } else if ("2010".equals(returnMap.get("success"))) {
+                              obj = errorResult(ErrorCode.code_2010, Global.getNoLogin());
+                          } else if ("2007".equals(returnMap.get("success"))) {
+                              obj = errorResult(ErrorCode.code_2007, "新手机号与原手机号相同");
+                          } else if ("1007".equals(returnMap.get("success"))) {
+                              obj = errorResult(ErrorCode.code_1007, "该账号已存在");
+                          } else {
+                              obj = successResult(ErrorCode.code_1000, "手机号修改已完成", returnMap);
+                          }
+                      } else {
+                          obj = errorResult(ErrorCode.code_1011, "验证码错误");
+                      }
+                  } else {
+                      obj = errorResult(ErrorCode.code_1012, "验证码无效或不存在");
+                  }
+        	  }
+        } catch (Exception e) {
+            e.printStackTrace();
+            obj = errorResult(ErrorCode.code_2006, "手机号修改失败");
+        }
+        ModelAndView view = new ModelAndView(new MappingJackson2JsonView(), obj);
+        return view;
+    }
+}

+ 54 - 0
happy-job-module-hpjob/src/main/java/com/jeeplus/modules/sys/service/HpUserService.java

@@ -2763,4 +2763,58 @@ public class HpUserService extends CrudService<HpUserMapper, HpUser> {
     public int findSumUser() {
         return mapper.findSumUser();
     }
+    
+    /**
+     * 修改手机号
+     *
+     * @param requestMap
+     * @return
+     */
+    @Transactional(readOnly = false)
+    public Map<String, Object> editUserPhone(Map<String, String> requestMap, String type) {
+        Map<String, Object> returnMap = new HashMap<>();
+        String userId = requestMap.get("user_id");
+        String userToken = requestMap.get("user_token");
+        String memberId = requestMap.get("member_id");
+        String newPhone = requestMap.get("new_phone");
+        
+        //验证用户是否处于登录态
+        if (TokenUtil.validateLogin(memberId, userId)) {
+            //验证用户合法性
+            if (TokenUtil.validateToken(userId, userToken)) {
+            	 HpUser hpUser = this.get(userId);
+            	 //验证用户手机号修改的新手机号与旧手机号相同
+            	 if(hpUser!=null && !hpUser.getPhone().equals(newPhone)) {
+            		 HpUser user = new HpUser();
+            		 user.setPhone(newPhone);
+            		 List<HpUser> list = mapper.findByPhone(user);
+            		 //验证用户新手机号是否已存在
+                	 if (list != null && list.size()>0) {
+                		 //新手机号是否已存在
+                		 returnMap.put("success", "1007"); 
+                	 } else {
+                		 if ("check_phone".equals(type)) {//不去修改手机号,仅仅只是校验修改手机号之前的验证(前端在修改手机号时, 点击发送验证码时校验手机号的动作时使用)
+                			 return returnMap;
+                		 } else { //去修改手机号
+                			 //修改用户表(user)中手机号
+                             hpUser.setPhone(newPhone);
+                             this.save(hpUser);
+                             
+                             //修改会员表(member)中手机号
+                             HpMember hpMember = hpMemberService.get(memberId);
+                             hpMember.setPhone(newPhone);
+                             hpMemberService.save(hpMember); 
+                		 }
+                	 }
+            	 }else {
+            		 returnMap.put("success", "2007");//需要修改的新手机号码与原来的手机号码相同 
+            	 }
+            } else {
+                returnMap.put("success", "1004");
+            }
+        } else {
+            returnMap.put("success", "2010");
+        }    
+        return returnMap;
+    }
 }