From 0ab1b864458f36b294933112824b10b13770915e Mon Sep 17 00:00:00 2001
From: jiangqs <jiangqs>
Date: 星期五, 07 七月 2023 21:12:43 +0800
Subject: [PATCH] Merge branch 'master' of ssh://sinata.cn:20202/java/HongRuiTang into master

---
 ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml                          |   14 +
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/task/MemberTaskService.java          |    8 
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MerBaseDto.java           |    3 
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopTotalService.java           |    4 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/sys/SysUserController.java    |   20 ++
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MgtShopIdByCodeDto.java   |    3 
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/task/MemberTaskMapper.java            |    2 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/UserServiceRecordMapper.java  |    7 
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/StaffShopPageDto.java             |   69 ++++++
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtShopPageDto.java               |    7 
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopTotalServiceImpl.java  |   10 +
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteSysStaffService.java   |   36 +++
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java              |   10 +
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/staff/StaffController.java        |   67 ++++++
 ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopTotalMapper.xml                        |   41 ++++
 ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml                             |   12 +
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopService.java                |    1 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/staff/StaffController.java    |   29 ++
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopTotalMapper.java             |    3 
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java       |   44 ++++
 ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/MemberTaskMapper.xml                       |   13 +
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopInfoVo.java               |   33 +++
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java   |   20 +
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/SysStaffVo.java            |   53 +++++
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/StaffBaseDto.java         |   14 +
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/MemberTaskServiceImpl.java |    5 
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/StaffPageDto.java         |   17 +
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MerHomeShopTotalVo.java    |    4 
 ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/UserServiceRecordMapper.xml              |   10 +
 29 files changed, 549 insertions(+), 10 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MerBaseDto.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MerBaseDto.java
index f8cb3d0..04c62b4 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MerBaseDto.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MerBaseDto.java
@@ -19,4 +19,7 @@
     @ApiModelProperty(value = "商户id")
     private Long shopId;
 
+    @ApiModelProperty(value = "userIds")
+    private Long userIds;
+
 }
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MgtShopIdByCodeDto.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MgtShopIdByCodeDto.java
index f6c529e..2eb406d 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MgtShopIdByCodeDto.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MgtShopIdByCodeDto.java
@@ -27,5 +27,8 @@
     @ApiModelProperty(value = "店铺名称")
     private String shopName;
 
+    @ApiModelProperty(value = "归属员工di")
+    private Long belongUserId;
+
 
 }
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/StaffBaseDto.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/StaffBaseDto.java
new file mode 100644
index 0000000..186c606
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/StaffBaseDto.java
@@ -0,0 +1,14 @@
+package com.ruoyi.system.api.domain.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author cheny
+ */
+@Data
+public class StaffBaseDto {
+
+    @ApiModelProperty(value = "请求对象id集合 多个用,隔开")
+    private String ids;
+}
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/StaffPageDto.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/StaffPageDto.java
new file mode 100644
index 0000000..d408d7b
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/StaffPageDto.java
@@ -0,0 +1,17 @@
+package com.ruoyi.system.api.domain.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author cheny
+ */
+@Data
+public class StaffPageDto {
+    @ApiModelProperty(name = "pagenum", value = "页码")
+    private Integer pageNum = 1;
+
+
+    @ApiModelProperty(name = "pagesize", value = "每页显示条数")
+    private Integer pageSize = 20;
+}
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MerHomeShopTotalVo.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MerHomeShopTotalVo.java
index 79c1546..9f9948b 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MerHomeShopTotalVo.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MerHomeShopTotalVo.java
@@ -5,6 +5,7 @@
 import lombok.Data;
 
 import java.math.BigDecimal;
+import java.util.List;
 
 /**
  * @author jqs34
@@ -40,4 +41,7 @@
     @ApiModelProperty(value = "剩余体验人数")
     private Integer explorationSurp;
 
+    @ApiModelProperty(value = "多个商户id")
+    private List<Long> shopIds;
+
 }
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/SysStaffVo.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/SysStaffVo.java
new file mode 100644
index 0000000..600a68d
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/SysStaffVo.java
@@ -0,0 +1,53 @@
+package com.ruoyi.system.api.domain.vo;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+
+public class SysStaffVo implements Serializable {
+    /**
+     * 员工id
+     */
+    @ApiModelProperty("员工id")
+    private String staffId;
+    /**
+     * 删除标记
+     */
+    @ApiModelProperty("删除标记")
+    private Integer delFlag;
+    /**
+     * 用户id
+     */
+    @ApiModelProperty("用户id")
+    private Long userId;
+    /**
+     * 员工姓名
+     */
+    @ApiModelProperty("员工姓名")
+    private String staffName;
+    /**
+     * 员工电话
+     */
+    @ApiModelProperty("员工电话")
+    private String staffMobile;
+    /**
+     * 员工邮箱
+     */
+    @ApiModelProperty("员工邮箱")
+    private String staffEmail;
+    /**
+     * 员工职位
+     */
+    @ApiModelProperty("员工职位")
+    private String staffPost;
+    /**
+     * 员工头像
+     */
+    @ApiModelProperty("员工头像")
+    private String staffAvatar;
+    /**
+     * 负责人标记
+     */
+    @ApiModelProperty("负责人标记")
+    private String headFlag;
+
+}
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteSysStaffService.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteSysStaffService.java
new file mode 100644
index 0000000..ccfdab2
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteSysStaffService.java
@@ -0,0 +1,36 @@
+package com.ruoyi.system.api.service;
+
+import com.ruoyi.common.core.constant.SecurityConstants;
+import com.ruoyi.common.core.constant.ServiceNameConstants;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.system.api.model.LoginUser;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 用户服务
+ *
+ * @author jqs
+ */
+@FeignClient(contextId = "remoteSysStaffService", value = ServiceNameConstants.SYSTEM_SERVICE/*, fallbackFactory = RemoteUserFallbackFactory.class*/)
+public interface RemoteSysStaffService
+{
+    /**
+     * 通过用户名查询用户信息
+     *
+     * @param username 用户名
+     * @param source 请求来源
+     * @return 结果
+     */
+    @GetMapping("/user/info/{username}")
+    public R<LoginUser> getUserInfo(@PathVariable("username") String username, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
+
+    @RequestMapping(value = "/staff/isLeader", method = RequestMethod.POST)
+    public boolean isLeader() ;
+
+    @GetMapping("/user/dept/{deptId}")
+    public R<List<Long>> getUserIds(@PathVariable("deptId") Long deptId);
+
+}
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java
index 481bcc2..265845d 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java
@@ -421,6 +421,14 @@
     MerHomeShopTotalVo getMerHomeShopTotalVo(Long shopId);
 
     /**
+     * @description
+     * @author  cheny
+     * @param shopIds
+     * @return  MerHomeShopTotalVo
+     */
+    MerHomeShopTotalVo getMerHomeShopsTotalVo(List<Long> shopIds);
+
+    /**
      * @description  统计商户营业额
      * @author  jqs
      * @date    2023/6/27 19:13
@@ -505,4 +513,6 @@
      * @return  List<MgtShopAllOrderPageVo>
      */
     List<MgtShopAllOrderPageVo> pageMgtShopAllOrder(Page page, @Param("param")MgtShopAllOrderPageDto mgtShopAllOrderPageDto);
+
+
 }
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/UserServiceRecordMapper.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/UserServiceRecordMapper.java
index 93347de..22129f5 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/UserServiceRecordMapper.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/UserServiceRecordMapper.java
@@ -63,4 +63,11 @@
      * @return  Integer
      */
     Integer countShopServicePerson(@Param("shopId")Long shopId);
+    /**
+     * @description  商户端统计商户到店人数
+     * @author  cheny
+     * @param shopIds
+     * @return  Integer
+     */
+    Integer countShopServicePersons(List<Long> shopIds);
 }
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
index 6ac5722..5884fed 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
@@ -16,6 +16,7 @@
 import com.ruoyi.order.domain.pojo.order.OrderGoods;
 import com.ruoyi.order.domain.vo.*;
 import com.ruoyi.order.mapper.order.OrderMapper;
+import com.ruoyi.order.mapper.order.UserServiceRecordMapper;
 import com.ruoyi.order.service.order.ConsumerGoodsService;
 import com.ruoyi.order.service.order.OrderGoodsService;
 import com.ruoyi.order.service.order.OrderService;
@@ -85,6 +86,9 @@
 
     @Resource
     private RemoteActivityService remoteActivityService;
+
+    @Resource
+    private UserServiceRecordMapper userServiceRecordMapper;
 
     /**
      * @description: buyGoods
@@ -806,10 +810,18 @@
      */
     @Override
     public MerHomeShopTotalVo getMerHomeTotal(MerHomeShopTotalVo merHomeShopTotalVo) {
-        Long shopId = merHomeShopTotalVo.getShopId();
-        Integer todayShop = userServiceRecordService.countShopServicePerson(shopId);
-        merHomeShopTotalVo.setTodayShop(todayShop);
-        merHomeShopTotalVo = orderMapper.getMerHomeShopTotalVo(shopId);
+        List<Long> shopIds = merHomeShopTotalVo.getShopIds();
+        if (null != shopIds && shopIds.size() != 0) {
+            Integer todayShop = userServiceRecordMapper.countShopServicePersons(shopIds);
+            merHomeShopTotalVo = orderMapper.getMerHomeShopsTotalVo(shopIds);
+            merHomeShopTotalVo.setTodayShop(todayShop);
+        }else{
+            Long shopId = merHomeShopTotalVo.getShopId();
+            Integer todayShop = userServiceRecordService.countShopServicePerson(shopId);
+            merHomeShopTotalVo.setTodayShop(todayShop);
+            merHomeShopTotalVo = orderMapper.getMerHomeShopTotalVo(shopId);
+
+        }
         return merHomeShopTotalVo;
     }
 
diff --git a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
index f7ccc18..f07561e 100644
--- a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
+++ b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
@@ -1239,6 +1239,20 @@
         WHERE del_flag = 0 AND shopId = #{shopId}
     </select>
 
+    <select id="getMerHomeShopsTotalVo" resultType="com.ruoyi.system.api.domain.vo.MerHomeShopTotalVo">
+        SELECT
+            SUM(CASE WHEN order_status = 2 THEN 1 ELSE 0 END) unHandleOrder,
+            SUM(pay_money) shopTurnover
+        FROM t_order
+        WHERE del_flag = 0
+        <if test="list != null and list.size() > 0">
+            AND shop_id IN
+            <foreach collection="list" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+    </select>
+
     <select id="getMemberUnpaidOrder" resultType="java.math.BigDecimal">
         SELECT IFNULL(SUM(receivable_money-pay_money),0)
         FROM t_order
diff --git a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/UserServiceRecordMapper.xml b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/UserServiceRecordMapper.xml
index 82273b2..53af0b0 100644
--- a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/UserServiceRecordMapper.xml
+++ b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/UserServiceRecordMapper.xml
@@ -141,4 +141,14 @@
         FROM t_user_service_record
         WHERE shop_id = #{shopId} AND DATE(create_time) = CURDATE()
     </select>
+
+    <select id="countShopServicePersons" resultType="java.lang.Integer">
+        SELECT COUNT(DISTINCT user_id)
+        FROM t_user_service_record
+        WHERE shop_id in
+        <foreach item="id" collection="list" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+         AND DATE(create_time) = CURDATE()
+    </select>
 </mapper>
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/staff/StaffController.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/staff/StaffController.java
new file mode 100644
index 0000000..28afd9f
--- /dev/null
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/staff/StaffController.java
@@ -0,0 +1,67 @@
+package com.ruoyi.shop.controller.staff;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.security.utils.SecurityUtils;
+import com.ruoyi.shop.domain.dto.MgtShopPageDto;
+import com.ruoyi.shop.domain.vo.MgtShopPageVo;
+import com.ruoyi.shop.service.shop.ShopService;
+import com.ruoyi.system.api.domain.vo.MerHomeShopTotalVo;
+import com.ruoyi.system.api.service.RemoteSysStaffService;
+import com.ruoyi.system.api.service.RemoteUserService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+
+@Api(value = "员工端商户接口", tags = "员工端商户接口", description = "员工端商户接口")
+@RestController
+@RequestMapping("/staff/shop")
+public class StaffController {
+
+    @Resource
+    private ShopService shopService;
+    @Resource
+    private RemoteUserService sysUserService;
+    @Resource
+    private RemoteSysStaffService remoteSysStaffService;
+
+    /**
+     * 未完成实际统计
+     * @return
+     */
+    @RequestMapping(value = "/getStaffHomeTotal", method = RequestMethod.POST)
+    @ApiOperation(value = "获取员工端商铺统计")
+    public R<MerHomeShopTotalVo> getStaffHomeTotal() {
+        Long userId = SecurityUtils.getUserId();
+        MerHomeShopTotalVo merHomeShopTotalVo = shopService.getStaffHomeTotal(userId);
+        return R.ok(merHomeShopTotalVo);
+    }
+
+    @RequestMapping(value = "/list", method = RequestMethod.POST)
+    @ApiOperation(value = "获取商户端商业统计")
+    public R getShopByUserId(@RequestBody MgtShopPageDto mgtShopPageDto) {
+        Long userId = SecurityUtils.getUserId();
+        if (remoteSysStaffService.isLeader()) {
+            Long deptId = sysUserService.getSysUser(userId).getData().getDeptId();
+            List<Long> userIds = remoteSysStaffService.getUserIds(deptId).getData();
+            if(userIds.size()==0){
+                return R.ok("未关联商户");
+            }
+            mgtShopPageDto.setIds(userIds);
+        } else {
+            mgtShopPageDto.setBelongUserId(userId);
+        }
+        Page<MgtShopPageVo> page = new Page<>();
+        page.setSize(mgtShopPageDto.getPageSize());
+        page.setCurrent(mgtShopPageDto.getPageNum());
+        List<MgtShopPageVo> mgtShopPageVoList = shopService.pageMgtShop(page,mgtShopPageDto);
+        return R.ok(page.setRecords(mgtShopPageVoList));
+    }
+}
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtShopPageDto.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtShopPageDto.java
index 5964b16..e6ab8b7 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtShopPageDto.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtShopPageDto.java
@@ -4,6 +4,8 @@
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.util.List;
+
 /**
  * @author jqs34
  * @ClassName MgtShopPageDto
@@ -89,6 +91,9 @@
     @ApiModelProperty(value = "与合作商关系1.好2.差")
     private Integer relationPartner;
 
+    @ApiModelProperty(value = "商铺id")
+    private Integer shopId;
 
-
+    @ApiModelProperty(value = "多个用户的id")
+    private List<Long> ids;
 }
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/StaffShopPageDto.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/StaffShopPageDto.java
new file mode 100644
index 0000000..a197112
--- /dev/null
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/StaffShopPageDto.java
@@ -0,0 +1,69 @@
+package com.ruoyi.shop.domain.dto;
+
+import com.ruoyi.system.api.domain.dto.StaffPageDto;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author cheny
+ *
+ */
+@Data
+public class StaffShopPageDto extends StaffPageDto {
+
+    @ApiModelProperty(value = "搜索关键词")
+    private String keyword;
+
+    @ApiModelProperty(value = "商户类型1经销商2代理商")
+    private Integer shopType;
+
+    //合作商状态
+
+    //合作商等级
+
+    @ApiModelProperty(value = "归属员工")
+    private Long belongUserId;
+
+    @ApiModelProperty(value = "签约开始时间")
+    private String signStartTime;
+
+    @ApiModelProperty(value = "签约结束时间")
+    private String signEndTime;
+
+    @ApiModelProperty(value = "签约区域code")
+    private String signAreaCode;
+
+    @ApiModelProperty(value = "推荐人")
+    private String recommendPerson;
+
+    @ApiModelProperty(value = "店铺地址省code")
+    private String shopProvinceCode;
+
+    @ApiModelProperty(value = "店铺地址市code")
+    private String shopCityCode;
+
+    @ApiModelProperty(value = "店铺地址区code")
+    private String shopAreaCode;
+
+    @ApiModelProperty(value = "签约省code")
+    private String signProvinceCode;
+
+    @ApiModelProperty(value = "签约市code")
+    private String signCityCode;
+
+    @ApiModelProperty(value = "商户状态0冻结1正常2终止合作")
+    private Integer shopStatus;
+
+//    @ApiModelProperty(value = "来源渠道")
+//    private String shopSource;
+//
+//    @ApiModelProperty(value = "店铺设置状态")
+//    private String shopCustomStatus;
+//
+//    @ApiModelProperty(value = "到期标记")
+//    private Integer expireFlag;
+//
+//    @ApiModelProperty(value = "商户标签 多个,隔开")
+//    private String shopTags;
+
+}
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopInfoVo.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopInfoVo.java
new file mode 100644
index 0000000..d5551bb
--- /dev/null
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopInfoVo.java
@@ -0,0 +1,33 @@
+package com.ruoyi.shop.domain.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class StaffShopInfoVo {
+    @ApiModelProperty(value = "商户id")
+    private Long shopId;
+
+    @ApiModelProperty("商户名称")
+    private String shopName;
+
+    @ApiModelProperty("店铺区域全称")
+    private String shopAreaName;
+
+    @ApiModelProperty("店铺详细地址")
+    private String shopAddress;
+
+    @ApiModelProperty("店主姓名")
+    private String shopownerName;
+
+    @ApiModelProperty("联系电话")
+    private String shopownerPhone;
+
+    @ApiModelProperty("合作期限")
+    private Date cooperationEndTime;
+
+    @ApiModelProperty("所属经销商")
+    private String belongShopName;
+}
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopTotalMapper.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopTotalMapper.java
index 4593b1d..dbbd461 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopTotalMapper.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopTotalMapper.java
@@ -3,6 +3,8 @@
 import com.ruoyi.shop.domain.pojo.shop.ShopTotal;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
+import java.util.List;
+
 /**
  * <p>
  * 商户统计 Mapper 接口
@@ -13,4 +15,5 @@
  */
 public interface ShopTotalMapper extends BaseMapper<ShopTotal> {
 
+    ShopTotal shopsTotalByIds(List<Long> shopIds);
 }
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/task/MemberTaskMapper.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/task/MemberTaskMapper.java
index dd7c1e4..4229f77 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/task/MemberTaskMapper.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/task/MemberTaskMapper.java
@@ -47,4 +47,6 @@
      * @return  MemberTaskSimpleVo
      */
     MemberTaskSimpleVo getLastMemberTask(@Param("userId")Long userId);
+
+    Integer getMembersIngTotal(List<Long> shopIds);
 }
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java
index 8e7a5cc..c504bbb 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java
@@ -25,10 +25,7 @@
 import com.ruoyi.system.api.domain.poji.shop.Shop;
 import com.ruoyi.system.api.domain.poji.sys.SysUser;
 import com.ruoyi.system.api.domain.vo.*;
-import com.ruoyi.system.api.service.RemoteConfigService;
-import com.ruoyi.system.api.service.RemoteMemberService;
-import com.ruoyi.system.api.service.RemoteOrderService;
-import com.ruoyi.system.api.service.RemoteUserService;
+import com.ruoyi.system.api.service.*;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -103,6 +100,8 @@
     @Resource
     private RemoteUserService remoteUserService;
 
+    @Resource
+    private RemoteSysStaffService remoteSysStaffService;
 
     /**
      * 获取商户详情
@@ -653,6 +652,43 @@
     }
 
     /**
+     * 获取获取员工端首页统计
+     * @param userId
+     * @return
+     */
+    @Override
+    public MerHomeShopTotalVo getStaffHomeTotal(Long userId){
+        List<Long> userIds = null;
+        List<Long> shopIds = null;
+        //如果是leader 查询leader下面所有的员工下的所有shopId
+        if(remoteSysStaffService.isLeader()){
+            Long deptId = sysUserService.getSysUser(userId).getData().getDeptId();
+            userIds = remoteSysStaffService.getUserIds(deptId).getData();
+            //根据用户所有id查询关联的商户id
+            MgtBasePlatformDto mgtBasePlatformDto = new MgtBasePlatformDto();
+            mgtBasePlatformDto.setUserIdList(userIds);
+            shopIds = shopMapper.listShopIdByTotal(mgtBasePlatformDto);
+        }else {
+            //普通员工查询商户归属的shopId
+            MgtShopIdByCodeDto mgtShopIdByCodeDto = new MgtShopIdByCodeDto();
+            mgtShopIdByCodeDto.setBelongUserId(userId);
+            shopIds = shopMapper.getShopIdByCode(mgtShopIdByCodeDto);
+        }
+            //分别查询
+            MerHomeShopTotalVo merHomeShopTotalVo = new MerHomeShopTotalVo();
+            merHomeShopTotalVo.setShopIds(shopIds);
+            MerHomeShopTotalVo orderVo = remoteOrderService.getMerHomeTotal(merHomeShopTotalVo).getData();
+            merHomeShopTotalVo.setTodayShop(orderVo.getTodayShop());
+            merHomeShopTotalVo.setUnHandleOrder(orderVo.getUnHandleOrder());
+            merHomeShopTotalVo.setShopTurnover(orderVo.getShopTurnover());
+            ShopTotal shopTotal = shopTotalService.shopsTotalByIds(shopIds);
+            merHomeShopTotalVo.setCycleSurp(shopTotal.getUseableCyclePerson());
+            merHomeShopTotalVo.setExplorationSurp(shopTotal.getUseableExperiencePerson());
+            Integer taskCount = memberTaskService.getMembersIngTotal(shopIds);
+            merHomeShopTotalVo.setTask(taskCount);
+            return merHomeShopTotalVo;
+        }
+    /**
      * 获取商户端
      * @param userId
      * @return
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopTotalServiceImpl.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopTotalServiceImpl.java
index b2c2fa5..73ece42 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopTotalServiceImpl.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopTotalServiceImpl.java
@@ -7,7 +7,9 @@
 import com.ruoyi.system.api.domain.dto.ShopTotalChangeDto;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
 import java.math.BigDecimal;
+import java.util.List;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.concurrent.locks.Lock;
@@ -26,6 +28,9 @@
 
     private Lock lock = new ReentrantLock();
     private ExecutorService executor = Executors.newSingleThreadExecutor();
+    @Resource
+    private ShopTotalMapper shopTotalMapper;
+
 
     /**
      * @param shopTotalChangeDto
@@ -44,6 +49,11 @@
         });
     }
 
+    @Override
+    public ShopTotal shopsTotalByIds(List<Long> shopIds) {
+        return shopTotalMapper.shopsTotalByIds(shopIds);
+    }
+
     //更新商户统计实现
     private void handleShopTotal(ShopTotalChangeDto shopTotalChangeDto){
         ShopTotal shopTotal = this.getById(shopTotalChangeDto.getShopId());
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/MemberTaskServiceImpl.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/MemberTaskServiceImpl.java
index f5acba0..3dae1f3 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/MemberTaskServiceImpl.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/MemberTaskServiceImpl.java
@@ -213,6 +213,11 @@
         return memberTaskMapper.getMemberIngTotal(shopId);
     }
 
+    @Override
+    public Integer getMembersIngTotal(List<Long> shopIds) {
+        return memberTaskMapper.getMembersIngTotal(shopIds);
+    }
+
     /**
      * @description  获取最近任务
      * @author  jqs
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopService.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopService.java
index 69c2fd7..afed314 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopService.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopService.java
@@ -98,6 +98,7 @@
     Shop getByShopId(Long shopId);
 
 
+    MerHomeShopTotalVo getStaffHomeTotal(Long userId);
 
     /**
      * 获取商户端首页统计
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopTotalService.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopTotalService.java
index 9e5557e..aea8c66 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopTotalService.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopTotalService.java
@@ -4,6 +4,8 @@
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.system.api.domain.dto.ShopTotalChangeDto;
 
+import java.util.List;
+
 /**
  * <p>
  * 商户统计 服务类
@@ -22,4 +24,6 @@
      * @return  void
      */
     void changeShopTotal(ShopTotalChangeDto shopTotalChangeDto);
+
+    ShopTotal shopsTotalByIds(List<Long> shopIds);
 }
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/task/MemberTaskService.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/task/MemberTaskService.java
index 3142801..9add6bd 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/task/MemberTaskService.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/task/MemberTaskService.java
@@ -62,5 +62,11 @@
      */
     MemberTaskSimpleVo getLastMemberTask(Long userId);
 
-
+    /**
+     * @description  员工端获取进行中任务数
+     * @author  jqs
+     * @param shopIds
+     * @return  Integer
+     */
+    Integer getMembersIngTotal(List<Long> shopIds);
 }
diff --git a/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml b/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml
index 845d2fa..0132f87 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml
+++ b/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml
@@ -309,6 +309,14 @@
         FROM t_shop ts
         LEFT JOIN t_shop_marketing tsm ON tsm.shop_id = ts.shop_id
         WHERE ts.del_flag = 0
+
+        <if test="param.ids != null and !param.ids.isEmpty()">
+            AND ts.belong_user_id in
+            <foreach item="id" collection="param.ids" open="(" separator="," close=")">
+                #{id}
+            </foreach>
+        </if>
+
         <if test="param.shopType!=null and param.shopType!=''">
             AND ts.shop_type = #{param.shopType}
         </if>
@@ -463,6 +471,9 @@
         <if test="param.shopAreaCode!=null and param.shopAreaCode!=''">
             AND ts.shop_area_code = #{param.shopAreaCode}
         </if>
+        <if test="param.belongUserId!=null and param.belongUserId!=''">
+            AND ts.belong_user_id = #{param.belongUserId}
+        </if>
     </select>
 
     <select id="listMgtShopSimpleVo" resultType="com.ruoyi.shop.domain.vo.MgtShopListSimpleVo">
@@ -477,6 +488,7 @@
         <if test="param.keyword!=null and param.keyword!=''">
             AND shop_name LIKE CONCAT('%',#{param.keyword},'%')
         </if>
+
     </select>
 
     <select id="listShopSimpleVoByIds" resultType="com.ruoyi.system.api.domain.vo.MgtSimpleShopVo">
diff --git a/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopTotalMapper.xml b/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopTotalMapper.xml
index 4dd3b03..00a34c3 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopTotalMapper.xml
+++ b/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopTotalMapper.xml
@@ -1,6 +1,47 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.shop.mapper.shop.ShopTotalMapper">
+    <select id="shopsTotalByIds" parameterType="java.util.List" resultType="com.ruoyi.shop.domain.pojo.shop.ShopTotal">
+        SELECT
+        sum(last_pay_money) lastPayMoney ,
+        sum(total_activity_count) totalActivityCount,
+        sum(total_order) totalOrder,
+        sum(total_cycle_order) totalCycleOrder,
+        sum(total_experience_order) totalExperienceOrder,
+        sum(total_service_order) totalServiceOrder,
+        sum(total_goods_order) totalGoodsOrder,
+        sum(total_service_count) totalServiceCount,
+        sum(used_service_count) usedServiceCount,
+        sum(useable_service_count) useableServiceCount,
+        sum(total_cycle_service) totalCycleService,
+        sum(used_cycle_service) usedCycleService,
+        sum(useable_cycle_service) useableCycleService,
+        sum(total_cycle_person) totalCyclePerson,
+        sum(useable_cycle_person) useable_cycle_person,
+        sum(total_service_service) totalServiceService,
+        sum(used_service_service) usedServiceService,
+        sum(useable_service_service) useableServiceService,
+        sum(total_service_person) totalServicePerson,
+        sum(useable_service_person) useableServicePerson,
+        sum(total_experience_service) totalExperienceService,
+        sum(used_experience_service) usedExperienceService,
+        sum(useable_experience_service) useableExperienceService,
+        sum(total_experience_person) totalExperiencePerson,
+        sum(useable_experience_person) useableExperiencePerson,
+        sum(total_order_money) totalOrderMoney,
+        sum(total_cycle_money) totalCycleMoney,
+        sum(total_experience_money) totalExperienceMoney,
+        sum(total_service_money) totalServiceMoney,
+        sum(total_goods_money) totalGoodsMoney
+        FROM
+        t_shop_total
+        <if test="list!=null and list!=''">
+            where shop_id IN
+            <foreach collection="list" item="id" open="(" separator="," close=")">
+                #{id}
+            </foreach>
+        </if>
 
+    </select>
 
 </mapper>
diff --git a/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/MemberTaskMapper.xml b/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/MemberTaskMapper.xml
index 88203d4..19eb288 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/MemberTaskMapper.xml
+++ b/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/MemberTaskMapper.xml
@@ -99,6 +99,19 @@
         WHERE del_flag = 0 AND task_status = 1 AND shop_id = #{shopId} AND task_date = DATE(NOW())
     </select>
 
+    <select id="getMembersIngTotal" resultType="java.lang.Integer">
+        SELECT COUNT(task_id)
+        FROM t_member_task
+        WHERE del_flag = 0 AND task_status = 1
+        <if test="list!=null and list!=''">
+            AND  shop_id IN
+            <foreach collection="list" item="id" open="(" separator="," close=")">
+                #{id}
+            </foreach>
+        </if>
+        AND task_date = DATE(NOW())
+    </select>
+
     <select id="getLastMemberTask" resultType="com.ruoyi.system.api.domain.vo.MemberTaskSimpleVo">
         SELECT
         task_date taskDate,
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/staff/StaffController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/staff/StaffController.java
new file mode 100644
index 0000000..bec536f
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/staff/StaffController.java
@@ -0,0 +1,29 @@
+package com.ruoyi.system.controller.staff;
+
+import com.ruoyi.common.security.utils.SecurityUtils;
+import com.ruoyi.system.service.staff.SysStaffService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+/**
+ * @author cheny
+ */
+@Api(value = "平台端员工相关接口", tags = "平台端员工相关接口", description = "平台端员工相关接口")
+@RestController
+@RequestMapping("/staff")
+public class StaffController {
+    @Resource
+    private SysStaffService sysStaffService;
+
+    @RequestMapping(value = "/isLeader", method = RequestMethod.POST)
+    @ApiOperation(value = "获取员工信息")
+    public boolean isLeader() {
+        Long userId = SecurityUtils.getUserId();
+        return sysStaffService.getByUserId(userId).getHeadFlag().equals("1") ? true : false;
+    }
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/sys/SysUserController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/sys/SysUserController.java
index f966109..d7c5674 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/sys/SysUserController.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/sys/SysUserController.java
@@ -27,6 +27,7 @@
 
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Set;
 import java.util.stream.Collectors;
@@ -58,6 +59,25 @@
     @Autowired
     private ISysConfigService configService;
 
+
+    /**
+     * 根据部门获取所有员工id
+     * @param deptId
+     * @return
+     */
+    @GetMapping("/dept/{deptId}")
+    public R<List<Long>> getUserIds(@PathVariable("deptId") Long deptId)
+    {
+        SysUser sysUser = new SysUser();
+        sysUser.setDeptId(deptId);
+        List<SysUser> userList = userService.selectUserList(sysUser);
+        List<Long> userIds = new ArrayList<>();
+        for (int i = 0; i < userList.size(); i++) {
+            userIds.add(userList.get(i).getUserId());
+        }
+        return R.ok(userIds);
+    }
+
     /**
      * 获取用户列表
      */

--
Gitblit v1.7.1