Ver código fonte

登录限制

PLF 5 anos atrás
pai
commit
38a1ac666f

+ 34 - 45
src/main/java/com/caimei/controller/user/LoginController.java

@@ -31,25 +31,20 @@ public class LoginController {
     protected static final Logger logger = LoggerFactory.getLogger(LoginController.class);
     @Autowired
     private LoginService loginService;
+    private static String AppId;
+    private static String AppSecret;
 
     @Value("${miniprogram.AppId}")
-    private String AppId;
+    public void setAppId(String appId) {
+        AppId = appId;
+    }
 
     @Value("${miniprogram.AppSecret}")
-    private String AppSecret;
+    public void setAppSecret(String appSecret) {
+        AppSecret = appSecret;
+    }
 
-    /**
-     * 判断是否是游客
-     *
-     * @param code
-     * @param request
-     * @return
-     */
-    @ResponseBody
-    @RequestMapping("/doLogin")
-    public WxJsonModel doLogin(@RequestParam(value = "code", required = true) String code,
-                               @RequestParam(value = "userOrganizeID") Integer userOrganizeID,
-                               HttpServletRequest request) {
+    public static WxJsonModel login(String code, HttpServletRequest request) {
         logger.info("Start get SessionKey");
         WxJsonModel res = WxJsonModel.newInstance();
         Map<String, Object> map = new HashMap<>();
@@ -85,6 +80,27 @@ public class LoginController {
             res.setCode("-1");
             return res;
         }
+        return res.success(openid);
+    }
+
+    /**
+     * 判断是否是游客
+     *
+     * @param code
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping("/doLogin")
+    public WxJsonModel doLogin(@RequestParam(value = "code", required = true) String code,
+                               @RequestParam(value = "userOrganizeID") Integer userOrganizeID,
+                               HttpServletRequest request) {
+        WxJsonModel res = WxJsonModel.newInstance();
+        WxJsonModel model = login(code, request);
+        if (model.getCode().equals("-1")) {
+            return model;
+        }
+        String openid = (String) model.getData();
         CmOperationUser operationUser = loginService.doLogin(openid, userOrganizeID);
         if (operationUser == null) {
             String mobile = loginService.cellPhone(userOrganizeID);
@@ -145,38 +161,11 @@ public class LoginController {
     @ResponseBody
     public WxJsonModel register(@RequestParam(value = "code", required = true) String code,
                                 CmOperationUser operationUser, HttpServletRequest request) {
-        WxJsonModel res = WxJsonModel.newInstance();
-        Map<String, Object> map = new HashMap<>();
-        String referer = request.getHeader("Referer"); //获取当前微信小程序的环境
-        map.put("referer", referer);
-        String requestUrl = "https://api.weixin.qq.com/sns/jscode2session";
-        Map<String, String> requestUrlParam = new HashMap<String, String>();
-        requestUrlParam.put("appid", AppId);//小程序appId
-        requestUrlParam.put("secret", AppSecret);//小程序appsecret
-        requestUrlParam.put("js_code", code);//小程序端返回的code
-        requestUrlParam.put("grant_type", "authorization_code");//默认参数
-        //发送post请求读取调用微信接口获取openid用户唯一标识
-        String infos;
-        try {
-            infos = HttpRequest.sendPost(requestUrl, requestUrlParam);
-        } catch (Exception e) {
-            res.setData(map);
-            return res.error("服务器内部异常");
-        }
-        //解析相应内容(转换成json对象)
-        JSONObject jsonObject = JSON.parseObject(infos);
-        String openid = jsonObject.getString("openid");
-        String session_key = jsonObject.getString("session_key");
-        String errcode = jsonObject.getString("errcode");
-        String errmsg = jsonObject.getString("errmsg");
-        if (!StringUtils.isEmpty(errcode) &&
-                (errcode.equals("-1") || errcode.equals("40029") || errcode.equals("45011"))) {
-            res.setMsg(errmsg);
-            res.setData(map);
-            map.put("sessionKey", session_key);
-            res.setCode("-1");
-            return res;
+        WxJsonModel model = login(code, request);
+        if (model.getCode().equals("-1")) {
+            return model;
         }
+        String openid = (String) model.getData();
         operationUser.setOpenid(openid);
         WxJsonModel jsonModel = loginService.update(operationUser);
         return jsonModel;

+ 22 - 2
src/main/java/com/caimei/controller/user/PersonalController.java

@@ -1,6 +1,7 @@
 package com.caimei.controller.user;
 
 import com.caimei.entity.*;
+import com.caimei.service.user.LoginService;
 import com.caimei.service.user.PersonalService;
 import com.github.pagehelper.PageHelper;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -10,6 +11,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.ResponseBody;
 
+import javax.servlet.http.HttpServletRequest;
 import java.util.List;
 import java.util.Map;
 
@@ -21,6 +23,8 @@ import java.util.Map;
 public class PersonalController {
     @Autowired
     private PersonalService personalService;
+    @Autowired
+    private LoginService loginService;
 
     /**
      * 我的个人显示数据
@@ -112,8 +116,16 @@ public class PersonalController {
      */
     @ResponseBody
     @RequestMapping(value = "/save", method = RequestMethod.POST)
-    public WxJsonModel saveAddress(@RequestBody Address address) {
+    public WxJsonModel saveAddress(@RequestBody Address address, String code, Integer userOrganizeID, HttpServletRequest request) {
         WxJsonModel res = WxJsonModel.newInstance();
+        //判断是否处于登录状态
+        WxJsonModel model = LoginController.login(code, request);
+        if (model.getCode().equals("-1")) {
+            return model;
+        }
+        String openid = (String) model.getData();
+        CmOperationUser operationUser = loginService.doLogin(openid, userOrganizeID);
+        if (operationUser == null) res.error("账户异常");
         if (address == null) return res.error("参数异常");
         try {
             personalService.saveAddress(address);
@@ -128,8 +140,16 @@ public class PersonalController {
      */
     @ResponseBody
     @RequestMapping("/delete")
-    public WxJsonModel deleteAddress(Integer addressID) {
+    public WxJsonModel deleteAddress(Integer addressID, String code, Integer userOrganizeID, HttpServletRequest request) {
         WxJsonModel res = WxJsonModel.newInstance();
+        //判断是否处于登录状态
+        WxJsonModel model = LoginController.login(code, request);
+        if (model.getCode().equals("-1")) {
+            return model;
+        }
+        String openid = (String) model.getData();
+        CmOperationUser operationUser = loginService.doLogin(openid, userOrganizeID);
+        if (operationUser == null) res.error("账户异常");
         try {
             personalService.deleteAddress(addressID);
         } catch (Exception e) {

+ 5 - 3
src/main/java/com/caimei/service/user/impl/PersonalServiceImpl.java

@@ -69,9 +69,11 @@ public class PersonalServiceImpl implements PersonalService {
         List<Address> addressList = personalMapper.findAddress(userID);
         for (Address address : addressList) {
             Address cantonal = personalMapper.findCantonal(address.getTownID());
-            address.setProvince(cantonal.getProvince());
-            address.setCity(cantonal.getCity());
-            address.setTown(cantonal.getTown());
+            if (cantonal != null) {
+                address.setProvince(cantonal.getProvince());
+                address.setCity(cantonal.getCity());
+                address.setTown(cantonal.getTown());
+            }
         }
         return addressList;
     }