From 975888ed15a3326b824ebc6d28a769da56e3bcd8 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Mon, 21 Dec 2020 18:18:30 +0800
Subject: [PATCH] modify

---
 zq-erp/src/main/java/com/matrix/system/api/action/UsersAction.java                 |   15 ++++
 zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml                    |   14 ++++
 zq-erp/src/main/java/com/matrix/system/hive/dao/AchieveNewDao.java                 |    4 +
 zq-erp/src/main/java/com/matrix/system/hive/service/imp/AchieveNewServiceImpl.java |   46 ++++++++++++++-
 zq-erp/src/main/java/com/matrix/system/api/vo/UserAchieveVo.java                   |   80 ++++++++++++++++++++++++++
 zq-erp/src/main/java/com/matrix/system/hive/service/AchieveNewService.java         |    3 +
 6 files changed, 157 insertions(+), 5 deletions(-)

diff --git a/zq-erp/src/main/java/com/matrix/system/api/action/UsersAction.java b/zq-erp/src/main/java/com/matrix/system/api/action/UsersAction.java
index fd7d50f..68402ca 100644
--- a/zq-erp/src/main/java/com/matrix/system/api/action/UsersAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/api/action/UsersAction.java
@@ -1,8 +1,13 @@
 package com.matrix.system.api.action;
 
 import com.matrix.core.pojo.AjaxResult;
+import com.matrix.system.api.vo.UserAchieveVo;
+import com.matrix.system.hive.service.AchieveNewService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -17,12 +22,20 @@
 @RequestMapping(value = "/api/user")
 public class UsersAction {
 
+    @Autowired
+    private AchieveNewService achieveNewService;
 
 
     @ApiOperation(value = "获取用户业绩接口 type 1-今日 2-昨天 3-本月 4-上月")
+    @ApiResponses({
+            @ApiResponse(code = 200, message = "ok", response = UserAchieveVo.class)
+    })
     @GetMapping(value = "/findUserAchieve/{type}")
     public AjaxResult findUserAchieve(@PathVariable("type") Integer type) {
-        return null;
+        UserAchieveVo achieveVo = achieveNewService.findUserAchieveByTime(type);
+        AjaxResult ajaxResult = AjaxResult.buildSuccessInstance("获取成功");
+        ajaxResult.putInMap("achieve", achieveVo);
+        return ajaxResult;
     }
 
 
diff --git a/zq-erp/src/main/java/com/matrix/system/api/vo/UserAchieveVo.java b/zq-erp/src/main/java/com/matrix/system/api/vo/UserAchieveVo.java
new file mode 100644
index 0000000..a8cbaa9
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/api/vo/UserAchieveVo.java
@@ -0,0 +1,80 @@
+package com.matrix.system.api.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.math.BigDecimal;
+
+/**
+ * @author wzy
+ * @date 2020-12-21
+ **/
+@ApiModel(value = "UserAchieveVo", description = "员工业绩返回类")
+public class UserAchieveVo {
+
+    @ApiModelProperty(value = "总现金业绩")
+    private BigDecimal allCash;
+
+    @ApiModelProperty(value = "售卡业绩")
+    private BigDecimal card;
+
+    @ApiModelProperty(value = "项目业绩")
+    private BigDecimal project;
+
+    @ApiModelProperty(value = "产品业绩")
+    private BigDecimal product;
+
+    @ApiModelProperty(value = "余额划扣业绩")
+    private BigDecimal cardUse;
+
+    @ApiModelProperty(value = "服务提成")
+    private BigDecimal projCommission;
+
+    public BigDecimal getAllCash() {
+        return allCash;
+    }
+
+    public void setAllCash(BigDecimal allCash) {
+        this.allCash = allCash;
+    }
+
+    public BigDecimal getCard() {
+        return card;
+    }
+
+    public void setCard(BigDecimal card) {
+        this.card = card;
+    }
+
+    public BigDecimal getProject() {
+        return project;
+    }
+
+    public void setProject(BigDecimal project) {
+        this.project = project;
+    }
+
+    public BigDecimal getProduct() {
+        return product;
+    }
+
+    public void setProduct(BigDecimal product) {
+        this.product = product;
+    }
+
+    public BigDecimal getCardUse() {
+        return cardUse;
+    }
+
+    public void setCardUse(BigDecimal cardUse) {
+        this.cardUse = cardUse;
+    }
+
+    public BigDecimal getProjCommission() {
+        return projCommission;
+    }
+
+    public void setProjCommission(BigDecimal projCommission) {
+        this.projCommission = projCommission;
+    }
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/dao/AchieveNewDao.java b/zq-erp/src/main/java/com/matrix/system/hive/dao/AchieveNewDao.java
index f39cd28..8695c69 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/dao/AchieveNewDao.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/dao/AchieveNewDao.java
@@ -1,9 +1,11 @@
 package com.matrix.system.hive.dao;
 
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
 import com.matrix.core.pojo.PaginationVO;
+import com.matrix.system.api.vo.UserAchieveVo;
 import com.matrix.system.hive.bean.AchieveNew;
 import org.apache.ibatis.annotations.Param;
 
@@ -55,5 +57,7 @@
 	List<AchieveNew> selectVipConsumeStatisticsList(@Param("record") AchieveNew achieveNew, @Param("pageVo") PaginationVO pageVo);
 
 	int selectVipConsumeStatisticsTotal(@Param("record") AchieveNew achieveNew);
+
+	UserAchieveVo selectUserAchieveByTime(@Param("startTime") Date startTime, @Param("endTime") Date endTime, @Param("userId") Long userId);
 	
 }
\ No newline at end of file
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/AchieveNewService.java b/zq-erp/src/main/java/com/matrix/system/hive/service/AchieveNewService.java
index 0b2ec73..05a4c25 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/service/AchieveNewService.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/service/AchieveNewService.java
@@ -2,6 +2,7 @@
 
 import java.util.List;
 
+import com.matrix.system.api.vo.UserAchieveVo;
 import com.matrix.system.hive.bean.AchieveNew;
 import com.matrix.system.hive.bean.SysOrder;
 import com.matrix.system.hive.bean.SysProjServices;
@@ -113,4 +114,6 @@
 
 	int findVipConsumeStatisticsTotal(AchieveNew achieveNew);
 
+	public UserAchieveVo findUserAchieveByTime(int type);
+
 }
\ No newline at end of file
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/AchieveNewServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/AchieveNewServiceImpl.java
index df7c66e..2209a1c 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/AchieveNewServiceImpl.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/AchieveNewServiceImpl.java
@@ -1,9 +1,14 @@
 package com.matrix.system.hive.service.imp;
 
+import com.matrix.core.constance.MatrixConstance;
 import com.matrix.core.exception.GlobleException;
 import com.matrix.core.pojo.PaginationVO;
+import com.matrix.core.tools.DateUtil;
 import com.matrix.core.tools.ModelUtils;
 import com.matrix.core.tools.StringUtils;
+import com.matrix.core.tools.WebUtil;
+import com.matrix.system.api.vo.UserAchieveVo;
+import com.matrix.system.common.bean.SysUsers;
 import com.matrix.system.common.dao.SysUsersDao;
 import com.matrix.system.constance.Dictionary;
 import com.matrix.system.hive.bean.*;
@@ -16,10 +21,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * This field was generated by Zking.software.Codegen.
@@ -317,4 +319,40 @@
     public int findVipConsumeStatisticsTotal(AchieveNew achieveNew) {
         return achieveNewDao.selectVipConsumeStatisticsTotal(achieveNew);
     }
+
+    @Override
+    public UserAchieveVo findUserAchieveByTime(int type) {
+        SysUsers users = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
+        Calendar calendar = Calendar.getInstance();
+        Date startTime = calendar.getTime();
+        Date endTime = calendar.getTime();
+        switch (type) {
+            // 本日
+            case 1 :
+                break;
+                // 昨日
+            case 2:
+                startTime = DateUtil.previousNDate(startTime, 1);
+                endTime = startTime;
+                break;
+                // 本月
+            case 3:
+                calendar.set(Calendar.DAY_OF_MONTH, 1);
+                startTime = calendar.getTime();
+                break;
+                // 上月
+            case 4:
+                calendar.add(Calendar.MONTH, -1);
+                calendar.set(Calendar.DAY_OF_MONTH, 1);
+                startTime = calendar.getTime();
+                calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
+                endTime = calendar.getTime();
+                break;
+            default:
+                break;
+
+        }
+
+        return achieveNewDao.selectUserAchieveByTime(startTime, endTime, users.getSuId());
+    }
 }
\ No newline at end of file
diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml
index c8ab5b1..a3a562c 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml
@@ -923,4 +923,18 @@
 			and FIND_IN_SET(#{record.beaultId}, a.BEATUY_ID)
 		</if>
 	</select>
+
+
+	<select id="selectUserAchieveByTime" resultType="com.matrix.system.api.vo.UserAchieveVo">
+		select
+			sum(IFNULL(proj_cash,0) + IFNULL(goods_cash,0) + IFNULL(card_cash,0)) allCash,
+			sum(card_cash) card,
+			sum(proj_cash) project,
+			sum(goods_cash) product,
+			sum(consume) cardUse,
+			sum(proj_percentage) projCommission
+		from achieve_new
+		where sale_id=#{userId}
+		and (date_format(datatime, "%Y-%m-%d") >= #{startTime} or #{endTime} >= date_format(datatime, "%Y-%m-%d"))
+	</select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.1