From 522f32b832e47a1e0cb01b0b495d16ada34366a6 Mon Sep 17 00:00:00 2001
From: jyy <935090232@qq.com>
Date: Sat, 16 Jan 2021 15:00:31 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/api' into api

---
 zq-erp/src/main/java/com/matrix/system/hive/service/SysOrderService.java           |    1 
 zq-erp/src/main/resources/mybatis/mapper/hive/SysVipInfoDao.xml                    |    3 +
 zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysVipInfoServiceImpl.java |    2 
 zq-erp/src/main/java/com/matrix/system/app/action/ApiRankingAction.java            |   30 +++------
 zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml                    |   41 ++++++++++++-
 zq-erp/src/main/java/com/matrix/system/app/vo/UserAchieveVo.java                   |    6 +-
 zq-erp/src/main/java/com/matrix/system/hive/dao/AchieveNewDao.java                 |    2 
 zq-erp/src/main/java/com/matrix/system/hive/bean/AchieveNew.java                   |   10 +++
 zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java   |   31 +++++----
 9 files changed, 84 insertions(+), 42 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 9389cc0..bdae1a1 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
@@ -45,15 +45,11 @@
     })
     @PostMapping(value = "/findStaffAchieveRanking")
     public AjaxResult findStaffAchieveRanking(@RequestBody RankingDto rankingDto) {
-        SysOrder sysOrder = new SysOrder();
-        if (DataAuthUtil.hasAllShopAuth()) {
-            QueryUtil.setQueryLimitCom(sysOrder);
-        } else {
-            QueryUtil.setQueryLimit(sysOrder);
-        }
-        sysOrder.setOrderTime(new Date());
-        sysOrder.setType(rankingDto.getType());
-        return AjaxResult.buildSuccessInstance(sysOrderService.findStaffSaleAchieveRanking(sysOrder));
+        AchieveNew achieveNew = new AchieveNew();
+        QueryUtil.setQueryLimitCom(achieveNew);
+        achieveNew.setType(rankingDto.getType());
+        achieveNew.setDatatime(new Date());
+        return AjaxResult.buildSuccessInstance(achieveNewDao.selectStaffSaleAchieveRanking(achieveNew));
     }
 
     @ApiOperation(value = "门店业绩排行榜", notes = "门店业绩排行榜")
@@ -64,11 +60,11 @@
     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(new Date());
-            List<RankingVo> list = sysOrderService.findApiShopAchieveRanking(sysOrder);
+            AchieveNew achieveNew = new AchieveNew();
+            QueryUtil.setQueryLimitCom(achieveNew);
+            achieveNew.setType(rankingDto.getType());
+            achieveNew.setDatatime(new Date());
+            List<RankingVo> list = achieveNewDao.selectStaffSaleAchieveRanking(achieveNew);
             ajaxResult.setRows(list);
         } else {
             AchieveNew achieveNew = new AchieveNew();
@@ -88,11 +84,7 @@
     @PostMapping(value = "/findBeauticianAchieveRanking")
     public AjaxResult findBeauticianAchieveRanking(@RequestBody RankingDto rankingDto) {
         AchieveNew achieveNew = new AchieveNew();
-        if (DataAuthUtil.hasAllShopAuth()) {
-            QueryUtil.setQueryLimitCom(achieveNew);
-        } else {
-            QueryUtil.setQueryLimit(achieveNew);
-        }
+        QueryUtil.setQueryLimitCom(achieveNew);
         achieveNew.setDatatime(new Date());
         achieveNew.setT1(rankingDto.getType());
         return AjaxResult.buildSuccessInstance(achieveNewDao.selectBeauticianConsumeAchieveRanking(achieveNew));
diff --git a/zq-erp/src/main/java/com/matrix/system/app/vo/UserAchieveVo.java b/zq-erp/src/main/java/com/matrix/system/app/vo/UserAchieveVo.java
index 0c98178..216c609 100644
--- a/zq-erp/src/main/java/com/matrix/system/app/vo/UserAchieveVo.java
+++ b/zq-erp/src/main/java/com/matrix/system/app/vo/UserAchieveVo.java
@@ -15,13 +15,13 @@
     @ApiModelProperty(value = "用户ID")
     private Long id;
 
-    @ApiModelProperty(value = "订单业绩")
+    @ApiModelProperty(value = "现金业绩")
     private BigDecimal orderCash;
 
-    @ApiModelProperty(value = "现金业绩")
+    @ApiModelProperty(value = "划扣业绩")
     private BigDecimal cash;
 
-    @ApiModelProperty(value = "划扣业绩")
+    @ApiModelProperty(value = "业绩提成")
     private BigDecimal cardUse;
 
     @ApiModelProperty(value = "本金消耗")
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/bean/AchieveNew.java b/zq-erp/src/main/java/com/matrix/system/hive/bean/AchieveNew.java
index adafea6..6a5a4f5 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/bean/AchieveNew.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/bean/AchieveNew.java
@@ -261,6 +261,16 @@
 
 	private String goodsName;
 
+	private String type;
+
+	public String getType() {
+		return type;
+	}
+
+	public void setType(String type) {
+		this.type = type;
+	}
+
 	public String getGoodsNo() {
 		return goodsNo;
 	}
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 5c5c3ec..90d9a2e 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
@@ -69,4 +69,6 @@
 	List<RankingVo> selectBeauticianConsumeAchieveRanking(@Param("record") AchieveNew achieveNew);
 
 	List<AchieveNew> selectOrderItemAchieveByOrderId(Long orderId);
+
+	List<RankingVo> selectStaffSaleAchieveRanking(@Param("record") AchieveNew achieveNew);
 }
\ 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 23cfd15..6e0e060 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
@@ -142,5 +142,4 @@
 
 	List<RankingVo> findApiShopAchieveRanking(SysOrder sysOrder);
 
-	List<RankingVo> findStaffSaleAchieveRanking(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 41b857e..849966a 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
@@ -167,6 +167,10 @@
     @Override
     public SysOrder checkAndSaveOrder(SysOrder sysOrder) {
         // 收款改变订单状态
+        SysOrder source = null;
+        if (sysOrder.getId() != null) {
+            source = sysOrderDao.selectById(sysOrder.getId());
+        }
 
         // 计算订单折扣金额,收款情况下 计算订单总额
         double zkTotal = 0.0;
@@ -203,8 +207,8 @@
         SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY);
         sysOrder.setZkTotal(zkTotal);
         sysOrder.setStatu(orderStatus);
-        sysOrder.setStaffId(user.getSuId());
-        sysOrder.setCompanyId(user.getCompanyId());
+        sysOrder.setStaffId(source != null ? source.getStaffId() : user.getSuId());
+        sysOrder.setCompanyId(source != null ? source.getCompanyId() : user.getCompanyId());
 
         sysOrder.setPayTime(new Date());
         if(sysOrder.getId()==null){
@@ -221,11 +225,16 @@
 
         sysOrder.getItems().forEach(sysOrderItem -> {
             sysOrderItem.setOrderId(sysOrder.getId());
-            // 取负数
-            sysOrderItem.setCount(-sysOrderItem.getCount());
-            orderItemDao.insert(sysOrderItem);
-            // 调整回来
-            sysOrderItem.setCount(-sysOrderItem.getCount());
+            if (sysOrder.getStatu().equals(Dictionary.ORDER_STATU_TK)) {
+                // 取负数
+                sysOrderItem.setCount(-sysOrderItem.getCount());
+                orderItemDao.insert(sysOrderItem);
+                // 调整回来
+                sysOrderItem.setCount(-sysOrderItem.getCount());
+            } else {
+                orderItemDao.insert(sysOrderItem);
+            }
+
         });
 
         return sysOrder;
@@ -565,8 +574,7 @@
             Integer buyNum = orderItemDao.selectByGoodsId(shopGoods.getId());
             buyNum = (buyNum == null ? 0 : buyNum);
             if ((buyNum + carItem.getCount()) > maxNum) {
-
-                throw new GlobleException(shopGoods.getName() + "已超过最大销售数量,还剩【" + (maxNum - buyNum) + "】件");
+                throw new GlobleException(shopGoods.getName() + "已超过最大销售数量");
             }
             if ((buyNum + carItem.getCount()) == maxNum) {
                 if (!shopGoods.getStaus().equals(Dictionary.BUSINESS_STATE_DOWN)) {
@@ -1243,11 +1251,6 @@
     @Override
     public List<RankingVo> findApiShopAchieveRanking(SysOrder sysOrder) {
         return sysOrderDao.selectShopAchieveRanking(sysOrder);
-    }
-
-    @Override
-    public List<RankingVo> findStaffSaleAchieveRanking(SysOrder sysOrder) {
-        return sysOrderDao.selectStaffSaleAchieveRanking(sysOrder);
     }
 
     @Transactional(rollbackFor = Exception.class)
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysVipInfoServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysVipInfoServiceImpl.java
index 137935c..2860589 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysVipInfoServiceImpl.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysVipInfoServiceImpl.java
@@ -17,6 +17,7 @@
 import com.matrix.system.common.tools.ServiceUtil;
 import com.matrix.system.constance.Dictionary;
 import com.matrix.system.constance.TableMapping;
+import com.matrix.system.hive.action.util.QueryUtil;
 import com.matrix.system.hive.bean.*;
 import com.matrix.system.hive.dao.*;
 import com.matrix.system.hive.plugin.util.CollectionUtils;
@@ -425,6 +426,7 @@
 		if (!DataAuthUtil.hasAllShopAuth()) {
 			vipInfoListDto.setShopId(sysUsers.getShopId());
 		}
+		QueryUtil.setQueryLimitCom(sysUsers.getCompanyId());
 		return sysVipInfoDao.selectVipAddressBookByList(vipInfoListDto);
 	}
 
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 d1e4b85..24f299d 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml
@@ -940,15 +940,15 @@
 	<select id="selectUserAchieveByTime" resultType="com.matrix.system.app.vo.UserAchieveVo">
 		select
 			sale_id id,
-			sum(IFNULL(proj_cash,0) + IFNULL(goods_cash,0) + IFNULL(card_cash,0) + IFNULL(consume, 0) + IFNULL(b.arrears, 0)) orderCash,
-			sum(IFNULL(proj_cash,0) + IFNULL(goods_cash,0) + IFNULL(card_cash,0) + IFNULL(b.arrears, 0)) cash,
-			sum(IFNULL(consume, 0)) cardUse,
+			sum(case t3 when '现金业绩' then card_cash else 0 end) orderCash,
+			sum(case t3 when '划扣业绩' then card_cash else 0 end) cash,
+			sum(IFNULL(proj_percentage, 0)) cardUse,
 			sum(IFNULL(his_consume, 0)) hisConsume,
 			sum(IFNULL(free_consume, 0)) freeConsume,
 			sum(IFNULL(proj_percentage, 0)) projCommission
 		from achieve_new a
-		left join sys_order b on a.sale_id=b.STAFF_ID and (date_format(b.ORDER_TIME, '%Y-%m-%d') >= date_format(#{startTime}, '%Y-%m-%d') and date_format(#{endTime}, '%Y-%m-%d') >= date_format(b.ORDER_TIME, '%Y-%m-%d'))
-		where sale_id=#{userId}
+		left join sys_order b on a.beault_id=b.STAFF_ID and (date_format(b.ORDER_TIME, '%Y-%m-%d') >= date_format(#{startTime}, '%Y-%m-%d') and date_format(#{endTime}, '%Y-%m-%d') >= date_format(b.ORDER_TIME, '%Y-%m-%d'))
+		where a.beault_id=#{userId}
 		and (date_format(datatime, '%Y-%m-%d') >= date_format(#{startTime}, '%Y-%m-%d') and date_format(#{endTime}, '%Y-%m-%d') >= date_format(datatime, '%Y-%m-%d'))
 	</select>
 
@@ -1030,4 +1030,35 @@
 		left join sys_order_item d on a.order_item_id=d.id
 		where a.order_id=#{orderId}
 	</select>
+
+	<select id="selectStaffSaleAchieveRanking" resultType="com.matrix.system.app.vo.RankingVo">
+		select
+		b.su_name name,
+		b.su_id id,
+		b.su_photo photo,
+		sum(ifnull(card_cash,0)) amount,
+		c.shop_short_name shopName
+		from achieve_new a
+		inner join sys_users b on a.beault_id=b.su_id
+		inner join sys_shop_info c on a.SHOP_ID=c.ID
+		<where>
+			<if test="record.companyId != null">
+				and b.company_id=#{record.companyId}
+			</if>
+			<if test="record.shopId != null">
+				and b.shop_id=#{record.shopId}
+			</if>
+			<if test='record.type == "1" and record.datatime != null'>
+				and date_format(datatime, '%Y-%m-%d') = date_format(#{record.datatime}, '%Y-%m-%d')
+			</if>
+			<if test='record.type == "2" and record.datatime != null'>
+				and date_format(datatime, '%Y-%m') = date_format(#{record.datatime}, '%Y-%m')
+			</if>
+			<if test='record.type == "3" and record.datatime != null'>
+				and date_format(datatime, '%Y') = date_format(#{record.datatime}, '%Y')
+			</if>
+		</where>
+		group by b.su_id
+		order by amount desc, b.su_id
+	</select>
 </mapper>
\ No newline at end of file
diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/SysVipInfoDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/SysVipInfoDao.xml
index 0f64c0b..d29ea9e 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/hive/SysVipInfoDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/hive/SysVipInfoDao.xml
@@ -1320,6 +1320,9 @@
         <if test="record.shopId != null">
             and a.shop_id=#{record.shopId}
         </if>
+        <if test="record.companyId != null">
+            and a.company_id=#{record.companyId}
+        </if>
         <if test='record.birthType=="1"'>
             and a.BIRTHDAY1 between curdate() and DATE_ADD(CURDATE(), INTERVAL 3 DAY)
         </if>

--
Gitblit v1.9.1