Jelajahi Sumber

优化:排行榜有登录用户查询登录用户排名,无登录不查当前登录排名,三年排名改为总排名。

lym 4 tahun lalu
induk
melakukan
d19e32f535

+ 12 - 11
carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/h5/controller/web/CustomerCarbonValController.java

@@ -1,7 +1,7 @@
 package com.hcloud.microserver.h5.controller.web;
 
+import com.hcloud.microserver.commoncore.annotation.CurrentUser;
 import com.hcloud.microserver.commoncore.base.ResponseBase;
-import com.hcloud.microserver.commoncore.base.ResultVO;
 import com.hcloud.microserver.commoncore.enums.ResultEnum;
 import com.hcloud.microserver.commoncore.exception.GlobalException;
 import com.hcloud.microserver.commoncore.util.string.StringUtils;
@@ -11,6 +11,7 @@ import com.hcloud.microserver.h5.facade.carbon.forms.CustomerInfoForm;
 import com.hcloud.microserver.h5.facade.carbon.vo.CustomerCarbonValRankVO;
 import com.hcloud.microserver.h5.service.CustomerCarbonValService;
 import com.hcloud.microserver.h5.service.CustomerService;
+import com.hcloud.microserver.h5.util.CurrUserUtil;
 import io.swagger.annotations.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -40,17 +41,17 @@ public class CustomerCarbonValController extends CarbonBaseController {
         }
         CustomerCarbonValRankForm form = new CustomerCarbonValRankForm();
         form.setType(type);
-        //获取当前登录用户
-        CustomerInfoForm customerInfo = customerService.getCurrentMember();
-        if (customerInfo == null) {
-            return responseError(new ResultVO(ResultEnum.TOKEN_EXPIRED));
-        }
-        if (StringUtils.isEmpty(form.getCustomerId())){
-            form.setCustomerId(customerInfo.getGuid());
-        }
-        if (form.getCustomerType() == null){
-            form.setCustomerType(customerInfo.getCustomerType());
+        //获取是否有登录用户
+        CustomerInfoForm customerInfo = CurrUserUtil.getCurrentMember();
+        if (customerInfo != null) {
+            if (StringUtils.isEmpty(form.getCustomerId())){
+                form.setCustomerId(customerInfo.getGuid());
+            }
+            if (form.getCustomerType() == null){
+                form.setCustomerType(customerInfo.getCustomerType());
+            }
         }
+
         CustomerCarbonValRankVO vo = customerCarbonValService.getCustomerCarbonValRankList(form);
         return responseResultSuccess(vo);
     }

+ 12 - 9
carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/h5/service/impl/CustomerCarbonValServiceImpl.java

@@ -1,5 +1,6 @@
 package com.hcloud.microserver.h5.service.impl;
 
+import com.hcloud.microserver.commoncore.util.string.StringUtils;
 import com.hcloud.microserver.h5.dao.CustomerCarbonValMapper;
 import com.hcloud.microserver.h5.facade.carbon.forms.CustomerCarbonValRankForm;
 import com.hcloud.microserver.h5.facade.carbon.vo.CustomerCarbonValRankVO;
@@ -19,18 +20,20 @@ public class CustomerCarbonValServiceImpl implements CustomerCarbonValService {
     @Override
     public CustomerCarbonValRankVO getCustomerCarbonValRankList(CustomerCarbonValRankForm form) {
         List<CustomerCarbonValRankForm> list = customerCarbonValMapper.getCustomerCarbonValRankList(form);
-        if (list != null && list.size() > 0){
-            CustomerCarbonValRankVO vo = new CustomerCarbonValRankVO();
-            form.setCurrCustomerRank(true); //查询当前客户排名
-            List<CustomerCarbonValRankForm> currCustomerRankList = customerCarbonValMapper.getCustomerCarbonValRankList(form);
-            if (currCustomerRankList != null && currCustomerRankList.size() > 0){
-                vo.setCurrCustomerRankForm(currCustomerRankList.get(0));
+        CustomerCarbonValRankVO vo = new CustomerCarbonValRankVO();
+        if (list != null && list.size() > 0 && StringUtils.isNotEmpty(form.getCustomerId())){
+            if ((form.getType() == 1 && form.getCustomerType() == 1)  //查询当前客户排名
+                    || (form.getType() == 2 && form.getCustomerType() > 1)){
+                form.setCurrCustomerRank(true);
+                List<CustomerCarbonValRankForm> currCustomerRankList = customerCarbonValMapper.getCustomerCarbonValRankList(form);
+                if (currCustomerRankList != null && currCustomerRankList.size() > 0)
+                    vo.setCurrCustomerRankForm(currCustomerRankList.get(0));
             }
-            vo.setList(list);
-            return vo;
         }
-        return null;
+        vo.setList(list);
+        return vo;
     }
+
     @Override
     public BigDecimal selectCarbonAmountByCustomerId(String guid){
        return customerCarbonValMapper.selectCarbonAmountByCustomerId(guid);

+ 52 - 0
carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/h5/util/CurrUserUtil.java

@@ -0,0 +1,52 @@
+package com.hcloud.microserver.h5.util;
+
+import com.hcloud.microserver.commoncore.enums.ResultEnum;
+import com.hcloud.microserver.commoncore.exception.GlobalException;
+import com.hcloud.microserver.commoncore.util.string.StringUtils;
+import com.hcloud.microserver.h5.bo.CustomerDetails;
+import com.hcloud.microserver.h5.facade.carbon.forms.CustomerInfoForm;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.context.SecurityContext;
+import org.springframework.security.core.context.SecurityContextHolder;
+
+/**
+ * @className:
+ * @description: 当前登录用户
+ * @author: lym
+ * @date: 2020/11/27
+ */
+public class CurrUserUtil {
+
+    public static CustomerInfoForm getCurrentMember() {
+        SecurityContext ctx = SecurityContextHolder.getContext();
+        Authentication auth = ctx.getAuthentication();
+        Object principal = auth.getPrincipal();
+        if (principal instanceof CustomerDetails) {
+            CustomerDetails memberDetails = (CustomerDetails) principal;
+            return memberDetails.getCustomerInfo();
+        }
+        return null;
+    }
+
+    public static CustomerInfoForm getCurrentCustomerInfo(){
+        CustomerInfoForm customerInfo = getCurrentMember();
+        if (customerInfo == null) {
+            throw new GlobalException(ResultEnum.TOKEN_EXPIRED);
+        }
+        return customerInfo;
+    }
+
+    /**
+     * 获取登录用户id
+     * lym
+     * @return
+     */
+    public static String getCustomerId(){
+        CustomerInfoForm customerInfo = getCurrentCustomerInfo();
+        String customerId = customerInfo.getGuid();
+        if (StringUtils.isEmpty(customerId)) {
+            throw new GlobalException(ResultEnum.TOKEN_EXPIRED);
+        }
+        return customerId;
+    }
+}

+ 3 - 2
carbon-h5/carbon-h5-service/src/main/resources/com/hcloud/microserver/h5/dao/CustomerCarbonValMapper.xml

@@ -351,6 +351,7 @@
     where guid = #{guid,jdbcType=CHAR}
   </update>
 
+  <!-- 查询客户购碳量排行榜 lym -->
   <select id="getCustomerCarbonValRankList" parameterType="com.hcloud.microserver.h5.facade.carbon.forms.CustomerCarbonValRankForm"
       resultType="com.hcloud.microserver.h5.facade.carbon.forms.CustomerCarbonValRankForm">
       SELECT obj.* from (SELECT @rownum := @rownum + 1 AS rank,tmp.t_customer_id AS customerId,tmp.carbonVal
@@ -358,8 +359,8 @@
         FROM (SELECT @rownum := 0) r,(SELECT a.t_customer_id,SUM(a.carbon_val) AS carbonVal
         FROM t_customer_carbon_val a
         INNER JOIN t_customer_info b ON b.guid = a.t_customer_id
-        WHERE a.year_time BETWEEN YEAR(DATE_SUB(NOW(),INTERVAL 3 YEAR)) AND YEAR(NOW())
-        AND a.type = 1
+        WHERE a.type = 1
+        <!-- AND a.year_time BETWEEN YEAR(DATE_SUB(NOW(),INTERVAL 3 YEAR)) AND YEAR(NOW()) -->
         <if test="type != null and type == 1">
           AND b.customer_type = 1
         </if>