Browse Source

工作台数据查询,渠道维度 (初版)

zhaoxian 2 years ago
parent
commit
613c81fa36

+ 2 - 0
ruixuan-common/src/main/java/com/ruixuan/common/utils/DateUtils.java

@@ -10,9 +10,11 @@ import java.time.LocalDateTime;
 import java.time.LocalTime;
 import java.time.ZoneId;
 import java.time.ZonedDateTime;
+import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 /**

+ 82 - 10
ruixuan-live/src/main/java/com/ruixuan/isc/controller/KuaishouItemCollectSamplesController.java

@@ -1,12 +1,5 @@
 package com.ruixuan.isc.controller;
 
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.UnsupportedEncodingException;
-import java.util.*;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.google.gson.Gson;
@@ -26,20 +19,43 @@ import com.ruixuan.common.enums.BusinessType;
 import com.ruixuan.common.utils.Check;
 import com.ruixuan.data.utils.ExportExcelUtils;
 import com.ruixuan.isc.entity.KuaishouItemCollectSampleExpress;
-import com.ruixuan.isc.entity.KuaishouItemCollectSamples;
 import com.ruixuan.isc.entity.KuaishouItemCollectSampleLog;
+import com.ruixuan.isc.entity.KuaishouItemCollectSamples;
 import com.ruixuan.isc.enums.CompanyEnum;
 import com.ruixuan.isc.service.IKuaishouItemCollectSamplesService;
 import com.ruixuan.isc.service.IKuaishouItemListService;
 import com.ruixuan.system.service.ISysDeptService;
 import com.ruixuan.system.service.ISysRoleService;
 import com.ruixuan.system.service.ISysUserService;
+import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
-import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.xml.transform.Result;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.UnsupportedEncodingException;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 
 /**
@@ -48,6 +64,7 @@ import org.springframework.web.bind.annotation.*;
  * @author ruoyi
  * @date 2023-02-08
  */
+@Api(tags = "商品领样")
 @RestController
 @Slf4j
 @RequestMapping("/itemCollectSamples")
@@ -471,5 +488,60 @@ public class KuaishouItemCollectSamplesController extends BaseController {
             ex.printStackTrace();
         }
     }
+
+
+    @GetMapping("/getPersonalInfo")
+    @ApiOperation(value = "工作台——个人信息")
+    public JSONObject getPersonalInfo(@ApiParam("创建人ID") @RequestParam(value = "userId", required = true) Long userId) {
+        JSONObject returnJson = new JSONObject();
+        try {
+            if (Check.isNull(userId)) {
+                throw new Exception("请传入人员ID");
+            }
+            return kuaishouItemCollectSamplesService.getPersonalInfo(userId);
+        } catch (Exception e) {
+            e.printStackTrace();
+            returnJson.put("code", -1);
+            returnJson.put("message", e.getMessage());
+        }
+        return returnJson;
+    }
+
+
+    @GetMapping("/getOrderData")
+    @ApiOperation(value = "工作台——订单数据")
+    public JSONObject getOrderData(@ApiParam("创建人ID") @RequestParam(value = "userId", required = true) Long userId,
+                                   @ApiParam("日期") @RequestParam(value = "statDate", required = false) String statDate) {
+        JSONObject returnJson = new JSONObject();
+        try {
+            if (Check.isNull(userId)) {
+                throw new Exception("请传入人员ID");
+            }
+            return kuaishouItemCollectSamplesService.getOrderData(userId, statDate);
+        } catch (Exception e) {
+            e.printStackTrace();
+            returnJson.put("code", -1);
+            returnJson.put("message", e.getMessage());
+        }
+        return returnJson;
+    }
+
+    @GetMapping("/getDataAnalysis")
+    @ApiOperation(value = "工作台——数据分析")
+    public JSONObject getDataAnalysis(@ApiParam("创建人ID") @RequestParam(value = "userId", required = true) Long userId) {
+        JSONObject returnJson = new JSONObject();
+        try {
+            if (Check.isNull(userId)) {
+                throw new Exception("请传入人员ID");
+            }
+            return kuaishouItemCollectSamplesService.getDataAnalysis(userId);
+        } catch (Exception e) {
+            e.printStackTrace();
+            returnJson.put("code", -1);
+            returnJson.put("message", e.getMessage());
+        }
+        return returnJson;
+    }
 }
 
+

+ 7 - 4
ruixuan-live/src/main/java/com/ruixuan/isc/mapper/KuaishouItemCollectSamplesMapper.java

@@ -18,8 +18,7 @@ import java.util.Map;
  * @author ruoyi
  * @date 2023-02-08
  */
-public interface KuaishouItemCollectSamplesMapper
-{
+public interface KuaishouItemCollectSamplesMapper {
     /**
      * 查询【请填写功能名称】
      *
@@ -34,7 +33,7 @@ public interface KuaishouItemCollectSamplesMapper
      * @param requestMap 【请填写功能名称】
      * @return 【请填写功能名称】集合
      */
-    public List<KuaishouItemCollectSamples> selectKuaishouItemCollectSamplesList(Map<String,Object> requestMap);
+    public List<KuaishouItemCollectSamples> selectKuaishouItemCollectSamplesList(Map<String, Object> requestMap);
 
     /**
      * 新增【请填写功能名称】
@@ -72,7 +71,7 @@ public interface KuaishouItemCollectSamplesMapper
 
     List<JSONObject> promoterList(@Param("promoterIds") JSONArray promoterIds);
 
-    Integer check(@Param("itemId") Long itemId,@Param("promoterId") Long promoterId);
+    Integer check(@Param("itemId") Long itemId, @Param("promoterId") Long promoterId);
 
     void batchAdd(@Param(value = "adds") List<KuaishouItemCollectSamples> adds);
 
@@ -101,5 +100,9 @@ public interface KuaishouItemCollectSamplesMapper
     JSONObject promoterInfo(@Param("promoterId") Long promoterId);
 
     Long getItemIdById(@Param("id") Long id);
+
+    Integer getSampleCountByUserId(@Param("userId") Long userId, @Param("status") Integer status);
+
+    JSONObject queryTheNumberOfCompletedJobs(@Param("promoterIds") List<Long> promoterIds, @Param("statDate") String statDate);
 }
 

+ 4 - 0
ruixuan-live/src/main/java/com/ruixuan/isc/mapper/KuaishouPromoterMapper.java

@@ -60,4 +60,8 @@ public interface KuaishouPromoterMapper {
     JSONObject getNearlyMonthGmv(@Param("promoterId") Long promoterId, @Param("start") String start, @Param("end") String end);
 
     void insertKuaishouPromoterRecord(JSONObject record);
+
+    List<Long> selectPromoterIdList(@Param("userId") Long userId);
+
+    JSONObject getgetMonthPromoterTotal(@Param("userId") Long userId, @Param("start") String start, @Param("end") String end);
 }

+ 8 - 0
ruixuan-live/src/main/java/com/ruixuan/isc/mapper/SupplyChainMapper.java

@@ -72,4 +72,12 @@ public interface SupplyChainMapper {
     List<JSONObject> exportUserItemDetail(Map<String, Object> requestMap);
 
     String getCookie();
+
+    JSONObject selectOrderInfo(@Param("promoterIds") List<Long> promoterIds, @Param("statDate") String statDate);
+
+    JSONObject selectOrderRate(@Param("promoterIds") List<Long> promoterIds, @Param("statDate") String statDate, @Param("endDate") String endDate, @Param("statDate2") String statDate2, @Param("endDate2") String endDate2);
+
+    List<JSONObject> getMonthOrderAmount(@Param("promoterIds") List<Long> promoterIds, @Param("userId") Long userId, @Param("statDate") String statDate, @Param("endDate") String endDate);
+
+    JSONObject getMonthOrderAmountTotal(@Param("promoterIds") List<Long> promoterIds, @Param("start") String start, @Param("end") String end);
 }

+ 6 - 0
ruixuan-live/src/main/java/com/ruixuan/isc/service/IKuaishouItemCollectSamplesService.java

@@ -93,5 +93,11 @@ public interface IKuaishouItemCollectSamplesService {
     JSONObject getCopyInfo(Long promoterId);
 
     Long getItemIdById(Long id);
+
+    JSONObject getPersonalInfo(Long userId);
+
+    JSONObject getOrderData(Long userId, String statDate);
+
+    JSONObject getDataAnalysis(Long userId);
 }
 

+ 4 - 0
ruixuan-live/src/main/java/com/ruixuan/isc/service/IKuaishouPromoterService.java

@@ -56,4 +56,8 @@ public interface IKuaishouPromoterService {
     AjaxResult getPromoterInfo(Long promoterId);
 
     KuaishouPromoter getOnlyPromoterInfo(Long promoterId);
+
+    List<Long> selectPromoterIdList(Long userId);
+
+    JSONObject getgetMonthPromoterTotal(Long userId, String start, String end);
 }

+ 8 - 0
ruixuan-live/src/main/java/com/ruixuan/isc/service/ISupplyChainService.java

@@ -95,4 +95,12 @@ public interface ISupplyChainService {
 
     //认领列表导出
     List<JSONObject> exportUserItemDetail(Map<String, Object> requestMap);
+
+    JSONObject selectOrderInfo(List<Long> promoterIds, String statDate);
+
+    JSONObject selectOrderRate(List<Long> promoterIds, String statDate, String endDate, String statDate2, String endDate2);
+
+    List<JSONObject> getMonthOrderAmount(List<Long> promoterIds, Long userId, String start, String end);
+
+    JSONObject getMonthOrderAmountTotal(List<Long> promoterIds, String start, String end);
 }

+ 137 - 0
ruixuan-live/src/main/java/com/ruixuan/isc/service/impl/KuaishouItemCollectSamplesServiceImpl.java

@@ -10,6 +10,7 @@ import com.kuaidi100.sdk.core.IBaseClient;
 import com.kuaidi100.sdk.request.SubscribeParam;
 import com.kuaidi100.sdk.request.SubscribeParameters;
 import com.kuaidi100.sdk.request.SubscribeReq;
+import com.ruixuan.common.core.domain.entity.SysUser;
 import com.ruixuan.common.utils.Check;
 import com.ruixuan.common.utils.DateUtils;
 import com.ruixuan.isc.entity.KuaishouItemCollectSampleExpress;
@@ -17,10 +18,16 @@ import com.ruixuan.isc.entity.KuaishouItemCollectSampleLog;
 import com.ruixuan.isc.entity.KuaishouItemCollectSamples;
 import com.ruixuan.isc.mapper.KuaishouItemCollectSamplesMapper;
 import com.ruixuan.isc.service.IKuaishouItemCollectSamplesService;
+import com.ruixuan.isc.service.IKuaishouPromoterService;
+import com.ruixuan.isc.service.ISupplyChainService;
+import com.ruixuan.system.service.ISysUserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -37,6 +44,15 @@ public class KuaishouItemCollectSamplesServiceImpl implements IKuaishouItemColle
     @Autowired
     private KuaishouItemCollectSamplesMapper kuaishouItemCollectSamplesMapper;
 
+    @Autowired
+    private ISysUserService userService;
+
+    @Autowired
+    private IKuaishouPromoterService promoterService;
+
+    @Autowired
+    private ISupplyChainService supplyChainService;
+
     /**
      * 查询【请填写功能名称】
      *
@@ -308,5 +324,126 @@ public class KuaishouItemCollectSamplesServiceImpl implements IKuaishouItemColle
     }
 
 
+    @Override
+    public JSONObject getPersonalInfo(Long userId) {
+        JSONObject returnJson = new JSONObject();
+        JSONObject data = new JSONObject();
+        SysUser sysUser = userService.selectUserById(userId);
+        if (Check.isNotNull(sysUser)) {
+            data.put("userName", sysUser.getNickName());
+        }
+        Integer status = 1; //待审核领样数
+        data.put("toBeReviewed", kuaishouItemCollectSamplesMapper.getSampleCountByUserId(userId, status));
+        status = 3;//待发货领样数
+        data.put("toBeShipped", kuaishouItemCollectSamplesMapper.getSampleCountByUserId(userId, status));
+        status = 5;//待上传作业数
+        data.put("toBeUploaded", kuaishouItemCollectSamplesMapper.getSampleCountByUserId(userId, status));
+        returnJson.put("code", 0);
+        returnJson.put("message", "调用成功");
+        returnJson.put("data", data);
+        return returnJson;
+    }
+
+    @Override
+    public JSONObject getOrderData(Long userId, String statDate) {
+        JSONObject returnJson = new JSONObject();
+        JSONObject data = new JSONObject();
+        List<Long> promoterIds = promoterService.selectPromoterIdList(userId);
+        if (Check.isNotNull(promoterIds)) {
+            data.put("promoterCount", promoterIds.size());//达人总数
+            JSONObject Sample = kuaishouItemCollectSamplesMapper.queryTheNumberOfCompletedJobs(promoterIds, statDate);
+            data.put("completeCount", Sample.getInteger("completeCount"));//完成作业数
+            data.put("completeRate", Sample.getString("completeRate"));//合格作业率
+            JSONObject order = supplyChainService.selectOrderInfo(promoterIds, statDate);
+            data.put("allNumber", order.getInteger("allNumber"));//订单总数
+            data.put("validOrderNUm", order.getInteger("validOrderNUm"));//有效订单数
+            data.put("inValidOrderNUm", order.getInteger("allNumber") - order.getInteger("validOrderNUm"));//失效订单数
+            data.put("orderAmount", order.getInteger("orderAmount"));//订单金额
+            data.put("regimentalPromotionAmount", order.getInteger("regimentalPromotionAmount"));//预估服务费
+            data.put("baseAmount", order.getInteger("baseAmount"));//累计货贷基数
+            //当天
+            String today = DateUtils.getNowDateStr();
+            Date date = new Date();
+            //昨天
+            String yesterday = DateUtils.getSubtractTime(date, 1);
+            //上周的同一天(上个近七天的结束日期)
+            String todayOfLastWeek = DateUtils.getSubtractTime(date, 7);
+            //当前近七天的开始日期
+            String start = DateUtils.getSubtractTime(date, 6);
+            //上个近七天的开始日期
+            String LastStart = DateUtils.getSubtractTime(date, 13);
+
+            //日环比
+            JSONObject dateOrderRate = supplyChainService.selectOrderRate(promoterIds, today, today, yesterday, yesterday);
+            data.put("dateOrderRate", dateOrderRate.getString("orderRate"));
+            data.put("dateAmountRate", dateOrderRate.getString("amountRate"));
+            //周同比
+            JSONObject monthOrderRate = supplyChainService.selectOrderRate(promoterIds, today, today, todayOfLastWeek, todayOfLastWeek);
+            data.put("monthOrderRate", monthOrderRate.getString("orderRate"));
+            data.put("monthAmountRate", monthOrderRate.getString("amountRate"));
+            //数据对比
+            JSONObject dataOrderRate = supplyChainService.selectOrderRate(promoterIds, start, today, LastStart, todayOfLastWeek);
+            data.put("dataOrderRate", dataOrderRate.getString("orderRate"));
+            data.put("dataAmountRate", dataOrderRate.getString("amountRate"));
+        }
+        returnJson.put("code", 0);
+        returnJson.put("message", "调用成功");
+        returnJson.put("data", data);
+        return returnJson;
+    }
+
+    @Override
+    public JSONObject getDataAnalysis(Long userId) {
+        JSONObject returnJson = new JSONObject();
+        JSONObject data = new JSONObject();
+        List<Long> promoterIds = promoterService.selectPromoterIdList(userId);
+        if (Check.isNotNull(promoterIds)) {
+            //当天
+            String end = DateUtils.getNowDateStr();
+            //当前月份第一天
+            String start = DateUtils.getFirstDayByMonth();
+            List<JSONObject> list = supplyChainService.getMonthOrderAmount(promoterIds, userId, start, end);
+            List<String> allDates = DateUtils.getAllDatesOfTwoTimes(start, end);
+            if (Check.isNull(list) || list.size() != allDates.size()) {
+                String orderAmountStr = JSONObject.toJSONString(list);
+                for (String date : allDates) {
+                    if (!orderAmountStr.contains(date)) {
+                        JSONObject obj = new JSONObject();
+                        obj.put("date", date);
+                        obj.put("orderAmount", 0);
+                        obj.put("totalRegimentalSettleAmount", 0);
+                        obj.put("promoterCount", 0);
+                        list.add(obj);
+                    }
+                }
+                //排序
+                Collections.sort(list, new Comparator<JSONObject>() {
+                    @Override
+                    public int compare(JSONObject o1, JSONObject o2) {
+                        return o1.getString("date").compareTo(o2.getString("date"));
+                    }
+                });
+            }
+            data.put("list", list);
+            JSONObject amount = supplyChainService.getMonthOrderAmountTotal(promoterIds, start, end);
+            if (Check.isNotNull(amount)) {
+                data.put("orderAmount", amount.getInteger("orderAmount"));
+                data.put("totalRegimentalSettleAmount", amount.getInteger("totalRegimentalSettleAmount"));
+                data.put("orderAmountRate", amount.getString("orderAmountRate"));
+                data.put("totalRegimentalSettleAmountRate", amount.getString("totalRegimentalSettleAmountRate"));
+            }
+            JSONObject promoter = promoterService.getgetMonthPromoterTotal(userId, start, end);
+            if (Check.isNotNull(promoter)) {
+                data.put("promoterCount", promoter.getString("count"));
+                data.put("promoterRate", promoter.getString("rate"));
+            }
+        }
+        returnJson.put("code", 0);
+        returnJson.put("message", "调用成功");
+        returnJson.put("data", data);
+        return returnJson;
+    }
+
+
 }
 

+ 11 - 2
ruixuan-live/src/main/java/com/ruixuan/isc/service/impl/KuaishouPromoterServiceImpl.java

@@ -19,7 +19,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.Date;
@@ -264,6 +263,16 @@ public class KuaishouPromoterServiceImpl implements IKuaishouPromoterService {
 
     @Override
     public KuaishouPromoter getOnlyPromoterInfo(Long promoterId) {
-            return kuaishouPromoterMapper.getOneByIdAndPromoterId(null, promoterId);
+        return kuaishouPromoterMapper.getOneByIdAndPromoterId(null, promoterId);
+    }
+
+    @Override
+    public List<Long> selectPromoterIdList(Long userId) {
+        return kuaishouPromoterMapper.selectPromoterIdList(userId);
+    }
+
+    @Override
+    public JSONObject getgetMonthPromoterTotal(Long userId, String start, String end) {
+        return kuaishouPromoterMapper.getgetMonthPromoterTotal(userId, start, end);
     }
 }

+ 20 - 0
ruixuan-live/src/main/java/com/ruixuan/isc/service/impl/SupplyChainServiceImpl.java

@@ -180,4 +180,24 @@ public class SupplyChainServiceImpl implements ISupplyChainService {
     public List<JSONObject> exportUserItemDetail(Map<String, Object> requestMap) {
         return supplyChainMapper.exportUserItemDetail(requestMap);
     }
+
+    @Override
+    public JSONObject selectOrderInfo(List<Long> promoterIds, String statDate) {
+        return supplyChainMapper.selectOrderInfo(promoterIds, statDate);
+    }
+
+    @Override
+    public JSONObject selectOrderRate(List<Long> promoterIds, String statDate, String endDate, String statDate2, String endDate2) {
+        return supplyChainMapper.selectOrderRate(promoterIds, statDate, endDate, statDate2, endDate2);
+    }
+
+    @Override
+    public List<JSONObject> getMonthOrderAmount(List<Long> promoterIds, Long userId, String start, String end) {
+        return supplyChainMapper.getMonthOrderAmount(promoterIds, userId, start, end);
+    }
+
+    @Override
+    public JSONObject getMonthOrderAmountTotal(List<Long> promoterIds, String start, String end) {
+        return supplyChainMapper.getMonthOrderAmountTotal(promoterIds, start, end);
+    }
 }

+ 119 - 39
ruixuan-live/src/main/resources/mapper/isc/KuaishouItemCollectSamplesMapper.xml

@@ -35,7 +35,34 @@
     </resultMap>
 
     <sql id="selectKuaishouItemCollectSamplesVo">
-        select id, item_id, item_title, item_price, item_img_url, item_desc, commission_rate, regimental_promotion, sample_count, sample_requirement, item_create_id, item_create_name, collect_sample_id, collect_sample_name, partner_recommend_text, promoter_id, promoter_nick_name,promoter_url, promoter_phone, promoter_address, consignee,courier_number, task_file_url, collect_sample_status, collect_sample_desc, create_time, update_time from kuaishou_item_collect_samples
+        select id,
+               item_id,
+               item_title,
+               item_price,
+               item_img_url,
+               item_desc,
+               commission_rate,
+               regimental_promotion,
+               sample_count,
+               sample_requirement,
+               item_create_id,
+               item_create_name,
+               collect_sample_id,
+               collect_sample_name,
+               partner_recommend_text,
+               promoter_id,
+               promoter_nick_name,
+               promoter_url,
+               promoter_phone,
+               promoter_address,
+               consignee,
+               courier_number,
+               task_file_url,
+               collect_sample_status,
+               collect_sample_desc,
+               create_time,
+               update_time
+        from kuaishou_item_collect_samples
     </sql>
 
     <select id="selectKuaishouItemCollectSamplesList" parameterType="com.ruixuan.isc.entity.KuaishouItemCollectSamples"
@@ -126,32 +153,37 @@
         group by promoter_id
     </select>
     <select id="check" resultType="java.lang.Integer">
-        select count(1)  from kuaishou_item_collect_samples
+        select count(1)
+        from kuaishou_item_collect_samples
         where item_id = #{itemId}
-        and promoter_id = #{promoterId}
-        and collect_sample_status != 2
+          and promoter_id = #{promoterId}
+          and collect_sample_status != 2
     </select>
     <select id="getExpress" resultType="com.ruixuan.isc.entity.KuaishouItemCollectSampleExpress"
             parameterType="java.lang.String">
-        select *  from kuaishou_item_collect_sample_express where  courier_number = #{courierNumber}
+        select *
+        from kuaishou_item_collect_sample_express
+        where courier_number = #{courierNumber}
 
     </select>
     <select id="getStatusByCourierNumbe" resultType="java.lang.Integer" parameterType="java.lang.String">
-        select  collect_sample_status  from  kuaishou_item_collect_samples where  courier_number = #{nu} order by update_time desc limit 1
+        select collect_sample_status
+        from kuaishou_item_collect_samples
+        where courier_number = #{nu}
+        order by update_time desc limit 1
     </select>
     <select id="courierNumberInfo" resultType="com.alibaba.fastjson.JSONObject"
             parameterType="java.lang.String">
-         select
-           courier_number as 'courierNumber',
-           state as 'state',
-           express_data as 'expressData',
-           create_time as 'createTime',
-           update_time as 'updateTime'
-           from kuaishou_item_collect_sample_express where  courier_number = #{courierNumber}
+        select courier_number as 'courierNumber', state as 'state', express_data as 'expressData', create_time as 'createTime', update_time as 'updateTime'
+        from kuaishou_item_collect_sample_express
+        where courier_number = #{courierNumber}
     </select>
     <select id="getLogList" resultType="com.ruixuan.isc.entity.KuaishouItemCollectSampleLog"
             parameterType="java.lang.Long">
-        select  *  from kuaishou_item_collect_sample_log where sample_id = #{sampleId} order by collect_sample_status asc
+        select *
+        from kuaishou_item_collect_sample_log
+        where sample_id = #{sampleId}
+        order by collect_sample_status asc
     </select>
     <select id="exportCollectSamples" resultType="com.alibaba.fastjson.JSONObject">
         select
@@ -178,21 +210,23 @@
     </select>
     <select id="getCollectSampleInfo" resultType="com.alibaba.fastjson.JSONObject"
             parameterType="java.lang.Long">
-        select
-          count(id) as 'sampleCount',
-          count(distinct collect_sample_id) as 'userCount'
-          from kuaishou_item_collect_samples where item_id = #{itemId} and collect_sample_status >= 3
+        select count(id) as 'sampleCount', count(distinct collect_sample_id) as 'userCount'
+        from kuaishou_item_collect_samples
+        where item_id = #{itemId}
+          and collect_sample_status >= 3
     </select>
     <select id="promoterInfo" resultType="com.alibaba.fastjson.JSONObject" parameterType="java.lang.Long">
-         select  total_sale as 'totalSale',
-                 fans_number as 'fansNumber'
-          from kuaishou_promoter where promoter_id = #{promoterId} limit 1
+        select total_sale as 'totalSale', fans_number as 'fansNumber'
+        from kuaishou_promoter
+        where promoter_id = #{promoterId} limit 1
     </select>
+
     <select id="getItemIdById" resultType="java.lang.Long" parameterType="java.lang.Long">
-        select  item_id  from kuaishou_item_collect_samples where id = #{id}
+        select item_id
+        from kuaishou_item_collect_samples
+        where id = #{id}
     </select>
 
-
     <insert id="insertKuaishouItemCollectSamples" parameterType="com.ruixuan.isc.entity.KuaishouItemCollectSamples">
         insert into kuaishou_item_collect_samples
         <trim prefix="(" suffix=")" suffixOverrides=",">
@@ -313,7 +347,8 @@
 
     </insert>
     <insert id="replaceExpress" parameterType="com.ruixuan.isc.entity.KuaishouItemCollectSampleExpress">
-        replace into kuaishou_item_collect_sample_express(
+        replace
+        into kuaishou_item_collect_sample_express(
             courier_number,
             com,
             state,
@@ -321,14 +356,15 @@
         )
         values
        (
-            #{courierNumber},
-            #{com},
-            #{state},
-            #{expressData}
-       )
+        #{courierNumber},
+        #{com},
+        #{state},
+        #{expressData}
+        )
     </insert>
     <insert id="insertLog" parameterType="com.ruixuan.isc.entity.KuaishouItemCollectSampleLog">
-        replace into kuaishou_item_collect_sample_log(
+        replace
+        into kuaishou_item_collect_sample_log(
             sample_id,
             user_id,
             user_name,
@@ -338,13 +374,13 @@
         )
         values
        (
-            #{sampleId},
-            #{userId},
-            #{userName},
-            #{collectSampleStatus},
-            #{createTime},
-            #{updateTime}
-       )
+        #{sampleId},
+        #{userId},
+        #{userName},
+        #{collectSampleStatus},
+        #{createTime},
+        #{updateTime}
+        )
 
     </insert>
     <insert id="batchAddLogs">
@@ -409,7 +445,9 @@
     </update>
 
     <delete id="deleteKuaishouItemCollectSamplesById" parameterType="java.lang.Long">
-        delete from kuaishou_item_collect_samples where id = #{id}
+        delete
+        from kuaishou_item_collect_samples
+        where id = #{id}
     </delete>
 
     <delete id="deleteKuaishouItemCollectSamplesByIds" parameterType="java.lang.String">
@@ -418,7 +456,49 @@
             #{id}
         </foreach>
     </delete>
+
     <delete id="cleanLogs">
-        delete from kuaishou_item_collect_sample_log where  sample_id = #{sampleId} and collect_sample_status = #{status}
+        delete
+        from kuaishou_item_collect_sample_log
+        where sample_id = #{sampleId}
+          and collect_sample_status = #{status}
     </delete>
+
+
+    <select id="getSampleCountByUserId" resultType="java.lang.Integer">
+        select IFNULL(SUM(sample_count), 0) as 'sampleCount'
+        from kuaishou_item_collect_samples
+        where collect_sample_status = #{status}
+          AND collect_sample_id = #{userId}
+    </select>
+
+
+    <!--     完成作业数/合格作业率-->
+    <select id="queryTheNumberOfCompletedJobs" resultType="com.alibaba.fastjson.JSONObject">
+        SELECT completeCount, allCount,
+        IFNULL(CONCAT(ROUND(completeCount / allCount * 100, 2), '%'), '0%') as 'completeRate'
+        FROM (SELECT IFNULL(SUM(sample_count), 0) as 'completeCount'
+        FROM kuaishou_item_collect_samples
+        WHERE DATE_FORMAT(create_time, '%Y-%m-%d') = #{statDate}
+        And collect_sample_status = 7
+        AND promoter_id in
+        <foreach collection="promoterIds" item="item" separator=","
+                 open="(" close=")">
+            #{item}
+        </foreach>
+        ) t1
+        LEFT JOIN
+        (SELECT IFNULL(SUM(sample_count), 0) as 'allCount'
+        FROM kuaishou_item_collect_samples
+        WHERE DATE_FORMAT(create_time, '%Y-%m-%d') = #{statDate}
+        AND promoter_id in
+        <foreach collection="promoterIds" item="item" separator=","
+                 open="(" close=")">
+            #{item}
+        </foreach>
+        ) t2 on 1 = 1
+
+    </select>
+
+
 </mapper>

+ 23 - 0
ruixuan-live/src/main/resources/mapper/isc/KuaishouPromoterMapper.xml

@@ -70,6 +70,12 @@
         where id = #{id}
     </select>
 
+    <select id="selectPromoterIdList" resultType="Long">
+        select promoter_id
+        from kuaishou_promoter
+        where user_id = #{userId}
+    </select>
+
     <select id="getOneByIdAndPromoterId" resultMap="KuaishouPromoterResult">
         <include refid="selectKuaishouPromoterVo"/>
         where promoter_id = #{promoterId}
@@ -79,6 +85,23 @@
         limit 1
     </select>
 
+
+    <select id="getgetMonthPromoterTotal" resultType="com.alibaba.fastjson.JSONObject">
+        SELECT t1.count,
+               CONCAT(ROUND(t2.count / t1.count * 100, 2), '%') as 'rate'
+        FROM (SELECT count(promoter_id) as 'count'
+              FROM kuaishou_promoter
+              WHERE user_id = #{userId}
+                AND DATE_FORMAT(create_time, '%Y-%m-%d') >= #{start}
+                AND DATE_FORMAT(create_time, '%Y-%m-%d') &lt;= #{end}) t1
+                 LEFT JOIN
+             (SELECT count(promoter_id) as 'count'
+              FROM kuaishou_promoter
+              WHERE user_id = #{userId}
+                AND DATE_FORMAT(create_time, '%Y-%m-%d') = #{end}) t2 ON 1 = 1
+    </select>
+
+
     <insert id="insertKuaishouPromoter" parameterType="com.ruixuan.isc.entity.KuaishouPromoter" useGeneratedKeys="true"
             keyProperty="id">
         insert into kuaishou_promoter

+ 142 - 28
ruixuan-live/src/main/resources/mapper/isc/SupplyChainMapper.xml

@@ -4,13 +4,14 @@
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruixuan.isc.mapper.SupplyChainMapper">
     <insert id="bindUser">
-        insert into
-        kuaishou_item_bind_user(item_id,user_id,user_name)
-        value
-        (#{itemId},#{userId},#{nikeName})
+        insert into kuaishou_item_bind_user(item_id, user_id, user_name)
+            value
+            (#{itemId},#{userId},#{nikeName})
     </insert>
     <delete id="unbindUser" parameterType="java.lang.Long">
-        delete  from kuaishou_item_bind_user where  item_id = #{itemId}
+        delete
+        from kuaishou_item_bind_user
+        where item_id = #{itemId}
     </delete>
 
 
@@ -627,20 +628,17 @@
 
     </select>
     <select id="getSupplyChainUserList" resultType="com.alibaba.fastjson.JSONObject">
-    select t3.user_id as 'userId',
-       t3.nick_name as 'nickMame',
-       t1.role_name as 'roleName',
-       t3.status
-    from sys_role t1
-         left join sys_user_role t2 on t1.role_id = t2.role_id
-         left join sys_user t3 on t2.user_id = t3.user_id
-     where t1.role_key in (
-                      'supplyChain',
-                      'commodityManagement',
-                      'supplyChainAdmin'
-    )
-     group by t3.user_id
-     order  by t3.create_time asc
+        select t3.user_id as 'userId', t3.nick_name as 'nickMame', t1.role_name as 'roleName', t3.status
+        from sys_role t1
+                 left join sys_user_role t2 on t1.role_id = t2.role_id
+                 left join sys_user t3 on t2.user_id = t3.user_id
+        where t1.role_key in (
+                              'supplyChain',
+                              'commodityManagement',
+                              'supplyChainAdmin'
+            )
+        group by t3.user_id
+        order by t3.create_time asc
 
     </select>
     <select id="adminReportList" resultType="com.alibaba.fastjson.JSONObject">
@@ -849,13 +847,11 @@
         order by FROM_UNIXTIME(t.order_create_time / 1000, '%y-%m-%d') asc
     </select>
     <select id="itemBindSummary" resultType="com.alibaba.fastjson.JSONObject">
-       select count(t1.item_id)                                       as 'itemTotal',
-       sum(case when t2.item_id is not null then 1 else 0 end) as 'claimCount',
-       sum(case when t2.item_id is null then 1 else 0 end)     as 'unClaimCount'
-       from kuaishou_item_info t1
-         left join kuaishou_item_bind_user t2
-                   on t1.item_id = t2.item_id
-       where 1=1
+        select count(t1.item_id) as 'itemTotal', sum(case when t2.item_id is not null then 1 else 0 end) as 'claimCount', sum(case when t2.item_id is null then 1 else 0 end) as 'unClaimCount'
+        from kuaishou_item_info t1
+                 left join kuaishou_item_bind_user t2
+                           on t1.item_id = t2.item_id
+        where 1 = 1
     </select>
     <select id="userItemTotal" resultType="com.alibaba.fastjson.JSONObject">
         SELECT count(t2.oid) AS 'orderNum',
@@ -989,7 +985,7 @@
         END
         ) AS 'invalidOrderNUm',
 
-       round( sum(
+        round( sum(
         CASE
         WHEN t2.order_status != 80 THEN t2.pay_amount
         ELSE 0
@@ -1035,8 +1031,126 @@
         order by t.orderNum desc
     </select>
     <select id="getCookie" resultType="java.lang.String">
-          select  cookie  from ruixuan.kuaishou_supply_chain_cookie limit 1
+        select cookie
+        from ruixuan.kuaishou_supply_chain_cookie limit 1
+    </select>
+
+    <select id="selectOrderInfo" resultType="com.alibaba.fastjson.JSONObject">
+        SELECT COUNT(oid) as 'allNumber', IFNULL(SUM(CASE WHEN order_status != 80 THEN 1 ELSE 0 END), 0) AS
+        'validOrderNUm', IFNULL(SUM(CASE WHEN order_status != 80 THEN order_amount ELSE 0 END), 0) AS 'orderAmount',
+        IFNULL(
+        SUM(CASE WHEN order_status != 80 THEN regimental_promotion_amount ELSE 0 END),
+        0) AS 'regimentalPromotionAmount', IFNULL(sum(base_amount), 0) as 'baseAmount'
+        FROM kuaishou_supply_chain
+        WHERE promoter_id in
+        <foreach collection="promoterIds" item="item" separator=","
+                 open="(" close=")">
+            #{item}
+        </foreach>
+        ANd stat_date = #{statDate}
+    </select>
+
+    <select id="selectOrderRate" resultType="com.alibaba.fastjson.JSONObject">
+        SELECT
+        IFNULL(CONCAT(ROUND((t1.allNumber-t2.allNumber)/t2.allNumber*100,2),'%'),'0%') as 'orderRate',
+        IFNULL(CONCAT(ROUND((t1.orderAmount-t2.orderAmount)/t2.orderAmount*100,2),'%'),'0%') as 'amountRate'
+        FROM
+        (
+        SELECT
+        count(oid) as 'allNumber',
+        sum(
+        CASE
+        WHEN order_status != 80 THEN order_amount
+        ELSE 0
+        END
+        ) AS 'orderAmount'
+        FROM kuaishou_supply_chain
+        WHERE promoter_id in
+        <foreach collection="promoterIds" item="item" separator=","
+                 open="(" close=")">
+            #{item}
+        </foreach>
+        ANd stat_date >= #{statDate}
+        AND stat_date &lt;= #{endDate}
+        ) t1
+        LEFT JOIN
+        (
+        SELECT
+        count(oid) as 'allNumber',
+        sum(
+        CASE
+        WHEN order_status != 80 THEN order_amount
+        ELSE 0
+        END
+        ) AS 'orderAmount'
+        FROM kuaishou_supply_chain
+        WHERE promoter_id in
+        <foreach collection="promoterIds" item="item" separator=","
+                 open="(" close=")">
+            #{item}
+        </foreach>
+        ANd stat_date >= #{statDate2}
+        AND stat_date &lt;= #{endDate2}
+        ) t2 ON 1=1
     </select>
 
 
+    <select id="getMonthOrderAmount" resultType="com.alibaba.fastjson.JSONObject">
+        SELECT
+        FROM_UNIXTIME(order_create_time / 1000, '%Y-%m-%d') as 'date',
+        IFNULL(SUM(order_amount),0) AS 'orderAmount',
+        IFNULL(SUM(total_regimental_settle_amount),0) AS 'totalRegimentalSettleAmount',
+        IFNULL(promoterCount,0) AS 'promoterCount'
+        FROM kuaishou_supply_chain t1
+        LEFT JOIN (
+        SELECT count(promoter_id) as 'promoterCount', DATE_FORMAT(create_time, '%Y-%m-%d') as 'date'
+        FROM kuaishou_promoter
+        WHERE user_id = #{userId}
+        AND DATE_FORMAT(create_time, '%Y-%m-%d') >= #{statDate}
+        AND DATE_FORMAT(create_time, '%Y-%m-%d') &lt;= #{endDate}
+        GROUP BY DATE_FORMAT(create_time, '%Y-%m-%d')
+        ) t2 ON t1.FROM_UNIXTIME(order_create_time / 1000, '%Y-%m-%d') = t2.date
+        WHERE promoter_id in
+        <foreach collection="promoterIds" item="item" separator="," open="(" close=")">
+            #{item}
+        </foreach>
+        AND order_status != 80
+        AND FROM_UNIXTIME(order_create_time / 1000, '%Y-%m-%d') >= #{statDate}
+        AND FROM_UNIXTIME(order_create_time / 1000, '%Y-%m-%d') &lt;= #{endDate}
+        GROUP BY FROM_UNIXTIME(order_create_time / 1000, '%Y-%m-%d')
+        ORDER BY FROM_UNIXTIME(order_create_time / 1000, '%Y-%m-%d')
+    </select>
+
+
+    <select id="getMonthOrderAmountTotal" resultType="com.alibaba.fastjson.JSONObject">
+        SELECT t1.orderAmount,t1.totalRegimentalSettleAmount,
+        CONCAT(ROUND(t2.orderAmount/t1.orderAmount*100,2),'%') as 'orderAmountRate',
+        CONCAT(ROUND(t2.totalRegimentalSettleAmount/t1.totalRegimentalSettleAmount*100,2),'%') as
+        'totalRegimentalSettleAmountRate'
+        FROM
+        (
+        SELECT
+        IFNULL(SUM(order_amount),0) AS 'orderAmount',
+        IFNULL(SUM(total_regimental_settle_amount),0) AS 'totalRegimentalSettleAmount'
+        FROM kuaishou_supply_chain t1
+        WHERE promoter_id in
+        <foreach collection="promoterIds" item="item" separator="," open="(" close=")">
+            #{item}
+        </foreach>
+        AND order_status != 80
+        AND FROM_UNIXTIME(order_create_time / 1000, '%Y-%m-%d') >= #{start}
+        AND FROM_UNIXTIME(order_create_time / 1000, '%Y-%m-%d') &lt;= #{end})t1
+        LEFT JOIN
+        (
+        SELECT
+        IFNULL(SUM(order_amount),0) AS 'orderAmount',
+        IFNULL(SUM(total_regimental_settle_amount),0) AS 'totalRegimentalSettleAmount'
+        FROM kuaishou_supply_chain t1
+        WHERE promoter_id in
+        <foreach collection="promoterIds" item="item" separator="," open="(" close=")">
+            #{item}
+        </foreach>
+        AND order_status != 80
+        AND FROM_UNIXTIME(order_create_time / 1000, '%Y-%m-%d') = #{end})t2 ON 1=1
+    </select>
 </mapper>