Browse Source

bug fixes

PLF 5 years ago
parent
commit
d3b6262292

+ 6 - 4
src/main/java/com/caimei/controller/products/DetailsController.java

@@ -1,6 +1,7 @@
 package com.caimei.controller.products;
 
 import com.caimei.entity.CmMallCart;
+import com.caimei.entity.CmOperationUser;
 import com.caimei.entity.CmOrganizeProducts;
 import com.caimei.entity.WxJsonModel;
 import com.caimei.service.products.DetailsService;
@@ -11,6 +12,8 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
 
+import javax.servlet.http.HttpServletRequest;
+
 /**
  * 详情页面
  */
@@ -41,13 +44,12 @@ public class DetailsController {
      */
     @ResponseBody
     @RequestMapping("/addCart")
-    public WxJsonModel addCart(@RequestBody CmMallCart cmMallCart) {
+    public WxJsonModel addCart(@RequestBody CmMallCart cmMallCart, HttpServletRequest request) {
         WxJsonModel model = WxJsonModel.newInstance();
         if (cmMallCart == null) return model.error("参数异常");
-        /*HttpSession session = SessionHelper.getSession();
-        String openid = (String) session.getAttribute("openid");
+        String openid = (String) request.getSession().getAttribute("openid");
         CmOperationUser operationUser = loginService.doLogin(openid, cmMallCart.getOrganizeID());
-        if (operationUser == null) return model.error("账户异常");*/
+        if (operationUser == null) return model.error("账户异常");
         Integer count = 0;
         try {
             count = detailsService.saveCart(cmMallCart);

+ 17 - 2
src/main/java/com/caimei/controller/products/ShoppingController.java

@@ -1,13 +1,17 @@
 package com.caimei.controller.products;
 
 import com.caimei.entity.CmMallCart;
+import com.caimei.entity.CmOperationUser;
 import com.caimei.entity.WxJsonModel;
 import com.caimei.service.products.ShoppingService;
+import com.caimei.service.user.LoginService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
 
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
 import java.util.Map;
 
 /**
@@ -18,6 +22,8 @@ import java.util.Map;
 public class ShoppingController {
     @Autowired
     private ShoppingService shoppingService;
+    @Autowired
+    private LoginService loginService;
 
     /**
      * 购物页数据
@@ -48,9 +54,18 @@ public class ShoppingController {
      */
     @ResponseBody
     @RequestMapping("/delete")
-    public WxJsonModel deleteCart(Integer userID,String productIDs) {
+    public WxJsonModel deleteCart(Integer userID, String productIDs, HttpServletRequest request) {
         WxJsonModel model = WxJsonModel.newInstance();
-        shoppingService.deleteCart(userID,productIDs);
+        HttpSession session = request.getSession();
+        String openid = (String) session.getAttribute("openid");
+        Integer organizeID = (Integer) session.getAttribute("organizeID");
+        CmOperationUser operationUser = loginService.doLogin(openid, organizeID);
+        if (operationUser == null) return model.error("账户异常");
+        try {
+            shoppingService.deleteCart(userID, productIDs);
+        } catch (Exception e) {
+            return model.error("删除失败");
+        }
         return model.success("删除成功", "");
     }
 }

+ 8 - 30
src/main/java/com/caimei/controller/user/LoginController.java

@@ -33,23 +33,14 @@ 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.ValidTime}")
     private Integer ValidTime;
-
     @Value("${miniprogram.AppId}")
-    public void setAppId(String appId) {
-        AppId = appId;
-    }
-
+    private String AppId;
     @Value("${miniprogram.AppSecret}")
-    public void setAppSecret(String appSecret) {
-        AppSecret = appSecret;
-    }
+    private String AppSecret;
 
-    public static WxJsonModel login(String code, HttpServletRequest request) {
+    public WxJsonModel login(String code, HttpServletRequest request) {
         logger.info("Start get SessionKey");
         WxJsonModel res = WxJsonModel.newInstance();
         Map<String, Object> map = new HashMap<>();
@@ -106,13 +97,17 @@ public class LoginController {
             return model;
         }
         String openid = (String) model.getData();
+        //传入session,返回用户信息,更新sessionId
         HttpSession session = SessionHelper.getSession();
+        String sessionId = session.getId();
         session.setAttribute("openid", openid);
+        session.setAttribute("organizeID", userOrganizeID);
         CmOperationUser operationUser = loginService.doLogin(openid, userOrganizeID);
         if (operationUser == null) {
             String mobile = loginService.cellPhone(userOrganizeID);
             return res.error("-1", mobile, "游客,请登录");
         }
+        operationUser.setSessionId(sessionId);
         return res.success("1", operationUser);
     }
 
@@ -174,24 +169,7 @@ public class LoginController {
         }
         String openid = (String) model.getData();
         operationUser.setOpenid(openid);
-        WxJsonModel jsonModel = loginService.update(operationUser);
+        WxJsonModel jsonModel = loginService.update(operationUser, request);
         return jsonModel;
     }
-
-    @RequestMapping("/testSession")
-    @ResponseBody
-    public WxJsonModel testSession() {
-        HttpSession session = SessionHelper.getSession();
-        session.setAttribute("testSession","testSessiontestSessiontestSessiontestSession");
-        return new WxJsonModel();
-    }
-
-    @RequestMapping("/getSession")
-    @ResponseBody
-    public WxJsonModel getSession() {
-        HttpSession session = SessionHelper.getSession();
-        String getSession = (String) session.getAttribute("testSession");
-        return new WxJsonModel();
-    }
-
 }

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

@@ -120,11 +120,7 @@ public class PersonalController {
         WxJsonModel res = WxJsonModel.newInstance();
         if (address == null) return res.error("参数异常");
         //判断是否处于登录状态
-        WxJsonModel model = LoginController.login(code, request);
-        if (model.getCode().equals("-1")) {
-            return model;
-        }
-        String openid = (String) model.getData();
+        String openid = (String) request.getSession().getAttribute("openid");
         CmOperationUser operationUser = loginService.doLogin(openid, address.getUserOrganizeID());
         if (operationUser == null) return res.error("账户异常");
         try {
@@ -143,11 +139,7 @@ public class PersonalController {
     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();
+        String openid = (String) request.getSession().getAttribute("openid");
         CmOperationUser operationUser = loginService.doLogin(openid, userOrganizeID);
         if (operationUser == null) return res.error("账户异常");
         try {

+ 9 - 0
src/main/java/com/caimei/entity/CmOperationUser.java

@@ -20,6 +20,7 @@ public class CmOperationUser implements Serializable {
     private String delFlag;              //0 有效 其它无效
     private String clubStatus;          //会所状态  (90, "已上线"),(91, "已冻结")
     private Integer userID;             //用户ID:隶属于哪个用户的运营人员
+    private String sessionId;           //session标识
 
     public Integer getId() {
         return id;
@@ -148,4 +149,12 @@ public class CmOperationUser implements Serializable {
     public void setUserID(Integer userID) {
         this.userID = userID;
     }
+
+    public String getSessionId() {
+        return sessionId;
+    }
+
+    public void setSessionId(String sessionId) {
+        this.sessionId = sessionId;
+    }
 }

+ 3 - 1
src/main/java/com/caimei/service/user/LoginService.java

@@ -3,13 +3,15 @@ package com.caimei.service.user;
 import com.caimei.entity.CmOperationUser;
 import com.caimei.entity.WxJsonModel;
 
+import javax.servlet.http.HttpServletRequest;
+
 public interface LoginService {
 
     CmOperationUser doLogin(String openid, Integer userOrganizeID);
 
     CmOperationUser isEnabled(String invitationCode, Integer userOrganizeID);
 
-    WxJsonModel update(CmOperationUser operationUser);
+    WxJsonModel update(CmOperationUser operationUser, HttpServletRequest request);
 
     String cellPhone(Integer userOrganizeID);
 }

+ 12 - 2
src/main/java/com/caimei/service/user/impl/LoginServiceImpl.java

@@ -4,9 +4,12 @@ import com.caimei.entity.CmOperationUser;
 import com.caimei.entity.WxJsonModel;
 import com.caimei.mapper.user.LoginMapper;
 import com.caimei.service.user.LoginService;
+import com.caimei.utils.SessionHelper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
 import java.util.Date;
 
 @Service
@@ -27,7 +30,7 @@ public class LoginServiceImpl implements LoginService {
     }
 
     @Override
-    public WxJsonModel update(CmOperationUser operationUser) {
+    public WxJsonModel update(CmOperationUser operationUser, HttpServletRequest request) {
         WxJsonModel res = WxJsonModel.newInstance();
         CmOperationUser cmOperationUser = loginMapper.doLogin(operationUser.getOpenid(), operationUser.getUserOrganizeID());
         //判断是否已有绑定用户
@@ -49,7 +52,14 @@ public class LoginServiceImpl implements LoginService {
         operationUser.setBindTime(new Date());
         operationUser.setUpdateTime(new Date());
         loginMapper.update(operationUser);
-        return res.success(operationUser);
+        //传入session,返回用户信息,更新sessionId
+        CmOperationUser user1 = loginMapper.doLogin(operationUser.getOpenid(), operationUser.getUserOrganizeID());
+        HttpSession session = SessionHelper.getSession();
+        String sessionId = session.getId();
+        session.setAttribute("openid", operationUser.getOpenid());
+        session.setAttribute("organizeID", operationUser.getUserOrganizeID());
+        user1.setSessionId(sessionId);
+        return res.success(user1);
     }
 
     @Override