From 2c678522fc2adf031c28feb6563648f7133ff4b1 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Mon, 28 Dec 2020 18:19:48 +0800
Subject: [PATCH] modify

---
 zq-erp/src/main/java/com/matrix/system/app/vo/RankingVo.java                     |   15 ++++
 zq-erp/src/main/java/com/matrix/system/hive/dao/SysOrderDao.java                 |    3 +
 zq-erp/src/main/java/com/matrix/system/hive/service/SysOrderService.java         |    3 +
 zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderDao.xml                    |   25 ++++++++
 zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrder.java                   |   10 +++
 zq-erp/src/main/java/com/matrix/system/app/action/ApiRankingAction.java          |   52 +++++++++++++++--
 zq-erp/src/main/java/com/matrix/system/app/dto/RankingDto.java                   |   54 ++++++++++++++++++
 zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java |    6 ++
 8 files changed, 160 insertions(+), 8 deletions(-)

diff --git a/zq-erp/src/main/java/com/matrix/system/app/action/ApiRankingAction.java b/zq-erp/src/main/java/com/matrix/system/app/action/ApiRankingAction.java
index 0b7fba6..4004241 100644
--- a/zq-erp/src/main/java/com/matrix/system/app/action/ApiRankingAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/app/action/ApiRankingAction.java
@@ -1,13 +1,25 @@
 package com.matrix.system.app.action;
 
 import com.matrix.core.pojo.AjaxResult;
-import com.matrix.system.app.vo.RankingDto;
+import com.matrix.core.tools.DateUtil;
+import com.matrix.system.app.dto.RankingDto;
+import com.matrix.system.app.vo.RankingVo;
+import com.matrix.system.common.tools.DataAuthUtil;
+import com.matrix.system.hive.action.util.QueryUtil;
+import com.matrix.system.hive.bean.SysOrder;
+import com.matrix.system.hive.service.AchieveNewService;
+import com.matrix.system.hive.service.SysOrderService;
 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.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
 
 /**
  * @author wzy
@@ -18,19 +30,47 @@
 @RequestMapping(value ="/api/ranking")
 public class ApiRankingAction {
 
-    public AjaxResult findStaffAchieveRanking() {
+    @Autowired
+    private SysOrderService sysOrderService;
+
+    @Autowired
+    private AchieveNewService achieveNewService;
+
+    @ApiOperation(value = "顾问业绩排行榜", notes = "顾问业绩排行榜")
+    @ApiResponses({
+            @ApiResponse(code = 200, message = "ok", response = RankingVo.class)
+    })
+    @PostMapping(value = "/findStaffAchieveRanking")
+    public AjaxResult findStaffAchieveRanking(@RequestBody RankingDto rankingDto) {
         return null;
     }
 
     @ApiOperation(value = "门店业绩排行榜", notes = "门店业绩排行榜")
     @ApiResponses({
-            @ApiResponse(code = 200, message = "ok", response = RankingDto.class)
+            @ApiResponse(code = 200, message = "ok", response = RankingVo.class)
     })
-    public AjaxResult findShopAchieveRanking() {
-        return null;
+    @PostMapping(value = "/findShopAchieveRanking")
+    public AjaxResult findShopAchieveRanking(@RequestBody RankingDto rankingDto) {
+        AjaxResult ajaxResult = AjaxResult.buildSuccessInstance("");
+        if (RankingDto.SALE.equals(rankingDto.getDataType())) {
+            SysOrder sysOrder = new SysOrder();
+            QueryUtil.setQueryLimitCom(sysOrder);
+            sysOrder.setType(rankingDto.getType());
+            sysOrder.setOrderTime(DateUtil.stringToDate(rankingDto.getTime(), DateUtil.DATE_FORMAT_DD));
+            List<RankingVo> list = sysOrderService.findApiShopAchieveRanking(sysOrder);
+            ajaxResult.setRows(list);
+        } else {
+
+        }
+        return ajaxResult;
     }
 
-    public AjaxResult findBeauticianAchieveRanking() {
+    @ApiOperation(value = "美疗师业绩排行榜", notes = "美疗师业绩排行榜")
+    @ApiResponses({
+            @ApiResponse(code = 200, message = "ok", response = RankingVo.class)
+    })
+    @PostMapping(value = "/findBeauticianAchieveRanking")
+    public AjaxResult findBeauticianAchieveRanking(@RequestBody RankingDto rankingDto) {
         return null;
     }
 }
diff --git a/zq-erp/src/main/java/com/matrix/system/app/dto/RankingDto.java b/zq-erp/src/main/java/com/matrix/system/app/dto/RankingDto.java
new file mode 100644
index 0000000..080f1bd
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/app/dto/RankingDto.java
@@ -0,0 +1,54 @@
+package com.matrix.system.app.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Date;
+
+/**
+ * @author wzy
+ * @date 2020-12-28
+ **/
+@ApiModel(value = "RankingDto", description = "排行榜参数接收类")
+public class RankingDto {
+
+    public static final String SALE = "1";
+    public static final String CONSUME = "2";
+
+    public static final String DAY = "1";
+    public static final String MONTH = "2";
+    public static final String YEAR = "3";
+
+    @ApiModelProperty(value = "数据类型 1-销售 2-消耗")
+    private String dataType;
+
+    @ApiModelProperty(value = "排行榜类型 1-日榜 2-月榜 3-年榜")
+    private String type;
+
+    @ApiModelProperty(value = "时间")
+    private String time;
+
+    public String getDataType() {
+        return dataType;
+    }
+
+    public void setDataType(String dataType) {
+        this.dataType = dataType;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public String getTime() {
+        return time;
+    }
+
+    public void setTime(String time) {
+        this.time = time;
+    }
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/app/vo/RankingDto.java b/zq-erp/src/main/java/com/matrix/system/app/vo/RankingVo.java
similarity index 71%
rename from zq-erp/src/main/java/com/matrix/system/app/vo/RankingDto.java
rename to zq-erp/src/main/java/com/matrix/system/app/vo/RankingVo.java
index a43bb16..0b2007b 100644
--- a/zq-erp/src/main/java/com/matrix/system/app/vo/RankingDto.java
+++ b/zq-erp/src/main/java/com/matrix/system/app/vo/RankingVo.java
@@ -9,8 +9,8 @@
  * @author wzy
  * @date 2020-12-28
  **/
-@ApiModel(value = "RankingDto", description = "排行榜返回参数类")
-public class RankingDto {
+@ApiModel(value = "RankingVo", description = "排行榜返回参数类")
+public class RankingVo {
 
     @ApiModelProperty(value = "姓名")
     private String name;
@@ -21,6 +21,17 @@
     @ApiModelProperty(value = "金额")
     private BigDecimal amount;
 
+    @ApiModelProperty(value = "店铺名称")
+    private String shopName;
+
+    public String getShopName() {
+        return shopName;
+    }
+
+    public void setShopName(String shopName) {
+        this.shopName = shopName;
+    }
+
     public String getName() {
         return name;
     }
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrder.java b/zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrder.java
index 663fa32..9c16a42 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrder.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrder.java
@@ -161,6 +161,16 @@
 	 */
 	private Integer times;
 
+	private String type;
+
+	public String getType() {
+		return type;
+	}
+
+	public void setType(String type) {
+		this.type = type;
+	}
+
 	public Integer getTimes() {
 		return times;
 	}
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/dao/SysOrderDao.java b/zq-erp/src/main/java/com/matrix/system/hive/dao/SysOrderDao.java
index 8320974..51f47e0 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/dao/SysOrderDao.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/dao/SysOrderDao.java
@@ -3,6 +3,7 @@
 import com.matrix.core.pojo.PaginationVO;
 import com.matrix.system.app.dto.OrderListDto;
 import com.matrix.system.app.vo.OrderDetailVo;
+import com.matrix.system.app.vo.RankingVo;
 import com.matrix.system.hive.bean.SysOrder;
 import org.apache.ibatis.annotations.Param;
 
@@ -43,4 +44,6 @@
 	int selectApiOrderListTotal(@Param("record") OrderListDto orderListDto);
 
 	OrderDetailVo selectApiOrderDetailById(@Param("orderId") Long orderId);
+
+	List<RankingVo> selectShopAchieveRanking(@Param("record") SysOrder sysOrder);
 }
\ No newline at end of file
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/SysOrderService.java b/zq-erp/src/main/java/com/matrix/system/hive/service/SysOrderService.java
index a3af416..f0c0118 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/service/SysOrderService.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/service/SysOrderService.java
@@ -4,6 +4,7 @@
 import com.matrix.core.pojo.PaginationVO;
 import com.matrix.system.app.dto.OrderListDto;
 import com.matrix.system.app.vo.OrderDetailVo;
+import com.matrix.system.app.vo.RankingVo;
 import com.matrix.system.hive.bean.SysOrder;
 import com.matrix.system.hive.plugin.util.BaseServices;
 import com.matrix.system.hive.pojo.CzXkVo;
@@ -136,4 +137,6 @@
 	int findApiOrderListTotal(OrderListDto orderListDto);
 
 	OrderDetailVo findApiOrderDetailByOrderId(Long orderId);
+
+	List<RankingVo> findApiShopAchieveRanking(SysOrder sysOrder);
 }
\ No newline at end of file
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java
index 250b154..5a826cd 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java
@@ -10,6 +10,7 @@
 import com.matrix.system.app.vo.OrderDetailAchieveItemVo;
 import com.matrix.system.app.vo.OrderDetailItemVo;
 import com.matrix.system.app.vo.OrderDetailVo;
+import com.matrix.system.app.vo.RankingVo;
 import com.matrix.system.common.bean.SysUsers;
 import com.matrix.system.common.dao.BusParameterSettingsDao;
 import com.matrix.system.common.dao.SysUsersDao;
@@ -1250,4 +1251,9 @@
         orderDetail.setItems(items);
         return orderDetail;
     }
+
+    @Override
+    public List<RankingVo> findApiShopAchieveRanking(SysOrder sysOrder) {
+        return sysOrderDao.selectShopAchieveRanking(sysOrder);
+    }
 }
diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderDao.xml
index d86c4f7..28637b1 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderDao.xml
@@ -550,4 +550,29 @@
         left join sys_users c on a.STAFF_ID=c.su_id
         where a.id=#{orderId}
     </select>
+
+    <select id="selectShopAchieveRanking" resultType="com.matrix.system.app.vo.RankingVo">
+        select
+               b.shop_short_name name,
+               b.SHOP_IMAG photo,
+               sum(IFNULL(a.ZK_TOTAL,0)) amount
+        from sys_order a
+        left join sys_shop_info b on a.SHOP_ID=b.ID
+        <where>
+            <if test="record.companyId != null">
+                and a.company_id=#{record.companyId}
+            </if>
+            <if test='record.type == "1" and record.orderTime != null'>
+                and date_format(order_time, '%Y-%m-%d') = date_format(#{record.orderTime}, '%Y-%m-%d')
+            </if>
+            <if test='record.type == "2" and record.orderTime != null'>
+                and date_format(order_time, '%Y-%m') = date_format(#{record.orderTime}, '%Y-%m')
+            </if>
+            <if test='record.type == "3" and record.orderTime != null'>
+                and date_format(order_time, '%Y') = date_format(#{record.orderTime}, '%Y')
+            </if>
+        </where>
+        group by a.SHOP_ID
+        order by amount desc, a.shop_id
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.1