Pārlūkot izejas kodu

新增:客户购碳量排行榜接口。

lym 4 gadi atpakaļ
vecāks
revīzija
8f56df0215

+ 1 - 1
carbon-back/carbon-back-common/src/main/java/com/hcloud/microserver/system/facade/carbon/forms/ProductTypeForm.java

@@ -28,5 +28,5 @@ public class ProductTypeForm extends BaseForm {
 
     List<ProductExpansionForm> productExpansionForms;
 
-    List<ProductTypeExpansionForm> productTypeExpansionForms;
+    List<ProductTypeExpansionForm> productTypeExpansions;
 }

+ 65 - 0
carbon-back/carbon-back-service/src/main/java/com/hcloud/microserver/system/bank/controller/base/NormalController.java

@@ -0,0 +1,65 @@
+package com.hcloud.microserver.system.bank.controller.base;
+
+import com.hcloud.microserver.commoncore.annotation.AuthCarbonValidate;
+import com.hcloud.microserver.commoncore.base.BaseController;
+import com.hcloud.microserver.commoncore.base.ResponseBase;
+import com.hcloud.microserver.commoncore.base.ResultVO;
+import com.hcloud.microserver.commoncore.domain.FileDO;
+import com.hcloud.microserver.commoncore.enums.ResultEnum;
+import com.hcloud.microserver.commoncore.util.FileType;
+import com.hcloud.microserver.commoncore.util.FileUtil;
+import io.swagger.annotations.*;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Date;
+
+@RestController
+@RequestMapping("/web/normal")
+@Api(tags = "公共操作服务",description = "公共操作服务")
+public class NormalController extends BaseController {
+
+    private static final String TARGET_IMAGE_DIC_NAME="images/";
+
+    @Value("${img.location}")
+    private String UPLOAD_FILE_PATH;
+
+    @ApiOperation(value = "图片上传",notes = "上传问题图片,图片限制大小10MB")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "file",value = "上传内容",dataType = "MultipartFile")
+    })
+    @ApiResponse(code = 0,message = "操作成功")
+    @AuthCarbonValidate
+    @PostMapping("/uploadPics")
+    public ResponseBase uploadPics(@RequestParam("file") MultipartFile file, HttpServletRequest request){
+        ResultVO resultVO = this.uploadImageFiles(file,TARGET_IMAGE_DIC_NAME);
+        return responseSuccess(resultVO);
+    }
+
+    /**
+     * 上传代码
+     * @param file
+     * @return
+     */
+    public ResultVO uploadImageFiles(@RequestParam("file") MultipartFile file, String type){
+        String fileName = file.getOriginalFilename();
+        fileName = FileUtil.renameToUUID(fileName);
+        FileDO sysFile = new FileDO(FileType.fileType(fileName),fileName, new Date());
+        try {
+            String targetPath = UPLOAD_FILE_PATH;
+            if(null!=type && !"".equals(type)){
+                sysFile.setUrl(type+sysFile.getUrl());
+                targetPath=UPLOAD_FILE_PATH+type;
+            }
+            FileUtil.uploadFile(file.getBytes(),targetPath , fileName);
+        } catch (Exception e) {
+            return new ResultVO(ResultEnum.SYS_ERROR);
+        }
+        return success(sysFile.getUrl());
+    }
+}

+ 1 - 1
carbon-back/carbon-back-service/src/main/java/com/hcloud/microserver/system/bank/service/impl/ProductTypeServiceImpl.java

@@ -146,7 +146,7 @@ public class ProductTypeServiceImpl implements ProductTypeService {
      */
     private void multiAddExpansion(ProductTypeForm productTypeForm, String guid) {
         int result;
-        List<ProductTypeExpansionForm> productTypeExpansionForms = productTypeForm.getProductTypeExpansionForms();
+        List<ProductTypeExpansionForm> productTypeExpansionForms = productTypeForm.getProductTypeExpansions();
         List<ProductTypeExpansion> productTypeExpansions = new ArrayList<>();
         if (Objects.nonNull(productTypeExpansionForms) && productTypeExpansionForms.size() > 0) {
             for (ProductTypeExpansionForm productTypeExpansionForm : productTypeExpansionForms) {

+ 38 - 0
carbon-h5/carbon-h5-common/src/main/java/com/hcloud/microserver/h5/facade/carbon/forms/CustomerCarbonValRankForm.java

@@ -0,0 +1,38 @@
+package com.hcloud.microserver.h5.facade.carbon.forms;
+
+import com.hcloud.microserver.commoncore.base.BaseForm;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+
+@Data
+@ApiModel("客户购碳量排行")
+public class CustomerCarbonValRankForm extends BaseForm {
+
+    @ApiModelProperty(value = "类型 1:个人排行榜 2:企业排行榜",example = "类型 1:个人排行榜 2:企业排行榜")
+    @NotNull(message = "查询排行类型不能为空!")
+    private Integer type;
+
+    @ApiModelProperty(value = "客户id",example = "客户id")
+    private String customerId;
+
+    @ApiModelProperty(value = "客户类型(1.自然人,2.履约企业,3.非履约企业,4.认证企业)",example = "客户类型(1.自然人,2.履约企业,3.非履约企业,4.认证企业)")
+    private Integer customerType;
+
+    @ApiModelProperty(value = "客户名称",example = "客户名称")
+    private String customerName;
+
+    @ApiModelProperty(value = "客户头像",example = "客户头像")
+    private String headImage;
+
+    @ApiModelProperty(value = "客户购碳量",example = "客户购碳量")
+    private BigDecimal carbonVal;
+
+    @ApiModelProperty(value = "排名",example = "排名")
+    private Integer rank;
+
+    private boolean isCurrCustomerRank = false;
+}

+ 19 - 0
carbon-h5/carbon-h5-common/src/main/java/com/hcloud/microserver/h5/facade/carbon/vo/CustomerCarbonValRankVO.java

@@ -0,0 +1,19 @@
+package com.hcloud.microserver.h5.facade.carbon.vo;
+
+import com.hcloud.microserver.h5.facade.carbon.forms.CustomerCarbonValRankForm;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel("客户购碳量排行")
+public class CustomerCarbonValRankVO {
+
+    @ApiModelProperty(value = "客户购碳量排名",example = "客户购碳量排名")
+    private List<CustomerCarbonValRankForm> list;
+
+    @ApiModelProperty(value = "当前客户排名",example = "当前客户排名")
+    private CustomerCarbonValRankForm currCustomerRankForm;
+}

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

@@ -0,0 +1,54 @@
+package com.hcloud.microserver.h5.controller.web;
+
+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;
+import com.hcloud.microserver.h5.common.BaseInfoDO;
+import com.hcloud.microserver.h5.common.CarbonBaseController;
+import com.hcloud.microserver.h5.facade.carbon.forms.CustomerCarbonValRankForm;
+import com.hcloud.microserver.h5.facade.carbon.vo.CustomerCarbonValRankVO;
+import com.hcloud.microserver.h5.service.CustomerCarbonValService;
+import io.swagger.annotations.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+
+@RestController
+@RequestMapping("/wap/carbonVal")
+@Api(tags = "购碳量信息接口",description = "购碳量信息接口")
+public class CustomerCarbonValController extends CarbonBaseController {
+
+    @Autowired
+    private CustomerCarbonValService customerCarbonValService;
+
+    @ApiOperation(value = "排行榜",notes = "排行榜")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "type",value = "类型 1:企业排行榜 2:个人排行榜", dataType = "int")
+    })
+    @ApiResponse(code =0,message = "查询成功")
+    @PostMapping("/getCustomerCarbonValRank")
+    public ResponseBase getCustomerCarbonValRank(@RequestBody @Valid CustomerCarbonValRankForm form){
+        if (form.getType() < 1 || form.getType() > 2){
+            throw new GlobalException(ResultEnum.FAILURE.getCode(),"查询排行类型错误!");
+        }
+
+        BaseInfoDO baseInfoDO = this.initiSaveObject();
+        if (baseInfoDO == null) {
+            return responseError(new ResultVO(ResultEnum.TOKEN_EXPIRED));
+        }
+        if (StringUtils.isEmpty(form.getCustomerId())){
+            form.setCustomerId(baseInfoDO.getCustomerId());
+        }
+        if (form.getCustomerType() == null){
+            form.setCustomerType(baseInfoDO.getCustomerType());
+        }
+        CustomerCarbonValRankVO vo = customerCarbonValService.getCustomerCarbonValRankList(form);
+        return responseResultSuccess(vo);
+    }
+}

+ 9 - 0
carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/h5/dao/CustomerCarbonValMapper.java

@@ -2,6 +2,7 @@ package com.hcloud.microserver.h5.dao;
 
 import com.hcloud.microserver.h5.facade.carbon.entity.CustomerCarbonVal;
 import com.hcloud.microserver.h5.facade.carbon.entity.CustomerCarbonValExample;
+import com.hcloud.microserver.h5.facade.carbon.forms.CustomerCarbonValRankForm;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -29,4 +30,12 @@ public interface CustomerCarbonValMapper {
     int updateByPrimaryKeySelective(CustomerCarbonVal record);
 
     int updateByPrimaryKey(CustomerCarbonVal record);
+
+    /**
+     * 查询客户购碳量排行榜
+     * lym
+     * @param form
+     * @return
+     */
+    List<CustomerCarbonValRankForm> getCustomerCarbonValRankList(CustomerCarbonValRankForm form);
 }

+ 15 - 0
carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/h5/service/CustomerCarbonValService.java

@@ -0,0 +1,15 @@
+package com.hcloud.microserver.h5.service;
+
+import com.hcloud.microserver.h5.facade.carbon.forms.CustomerCarbonValRankForm;
+import com.hcloud.microserver.h5.facade.carbon.vo.CustomerCarbonValRankVO;
+
+public interface CustomerCarbonValService {
+
+    /**
+     * 查询客户购碳量排行榜
+     * lym
+     * @param form
+     * @return
+     */
+    CustomerCarbonValRankVO getCustomerCarbonValRankList(CustomerCarbonValRankForm form);
+}

+ 33 - 0
carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/h5/service/impl/CustomerCarbonValServiceImpl.java

@@ -0,0 +1,33 @@
+package com.hcloud.microserver.h5.service.impl;
+
+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;
+import com.hcloud.microserver.h5.service.CustomerCarbonValService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Service
+public class CustomerCarbonValServiceImpl implements CustomerCarbonValService {
+
+    @Resource
+    CustomerCarbonValMapper customerCarbonValMapper;
+
+    @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));
+            }
+            vo.setList(list);
+            return vo;
+        }
+        return null;
+    }
+}

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

@@ -350,4 +350,29 @@
       update_time = #{updateTime,jdbcType=TIMESTAMP}
     where guid = #{guid,jdbcType=CHAR}
   </update>
+
+  <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
+        ,IFNULL(c.customer_name,c.nick_name) AS customerName,c.head_image AS headImage
+        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
+        <if test="type != null and type == 1">
+          AND b.customer_type = 1
+        </if>
+        <if test="type != null and type == 2">
+          AND b.customer_type != 1
+        </if>
+        GROUP BY t_customer_id
+        ) tmp
+        LEFT JOIN t_customer_info c ON tmp.t_customer_id = c.guid
+        ORDER BY tmp.carbonVal DESC
+      ) obj WHERE 1 = 1
+        <if test="customerId != null and isCurrCustomerRank != null and isCurrCustomerRank == true">
+          AND obj.CustomerId = #{customerId}
+        </if>
+  </select>
 </mapper>