yangdamao 2 éve
szülő
commit
2b06b5ca9c

+ 9 - 0
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/order/TopSharedCustomerController.java

@@ -76,4 +76,13 @@ public class TopSharedCustomerController extends BaseController {
     public AjaxResult<TopConversionRateVo> getConversionRateData(TopOrderStatisticsBo bo) {
         return AjaxResult.success(iTopOldOrderService.getConversionRateData(bo));
     }
+
+    /**
+     * 公海客户详情数据
+     */
+    @ApiOperation("公海客户详情数据")
+    @GetMapping("/customer/detail")
+    public AjaxResult<TopConversionRateVo> getCustomerDetailData(TopOrderStatisticsBo bo) {
+        return AjaxResult.success(iTopOldOrderService.getCustomerDetailData(bo));
+    }
 }

+ 2 - 1
zhongzheng-admin-saas/src/main/resources/application-dev.yml

@@ -192,4 +192,5 @@ shared:
     customer: http://gdxypx.xy.com/WitSystem/BussinessApi/CustomerStatsData
     cert: http://gdxypx.xy.com/WitSystem/BussinessApi/CertStatsData
     orderArea: http://gdxypx.xy.com/WitSystem/BussinessApi/OrderAreaData
-    rateData: http://gdxypx.xy.com//WitSystem/BussinessApi/CustomerConversionRateData
+    rateData: http://gdxypx.xy.com/WitSystem/BussinessApi/CustomerConversionRateData
+    orderData: http://gdxypx.xy.com/WitSystem/BussinessApi/CustomerOrderData

+ 1 - 0
zhongzheng-admin/src/main/resources/application-dev.yml

@@ -194,3 +194,4 @@ shared:
     cert: http://gdxypx.xy.com/WitSystem/BussinessApi/CertStatsData
     orderArea: http://gdxypx.xy.com/WitSystem/BussinessApi/OrderAreaData
     rateData: http://gdxypx.xy.com//WitSystem/BussinessApi/CustomerConversionRateData
+    rateTrend: http://gdxypx.xy.com/WitSystem/BussinessApi/CustomerConversionRateTrendData

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseBusinessServiceImpl.java

@@ -215,7 +215,7 @@ public class CourseBusinessServiceImpl extends ServiceImpl<CourseBusinessMapper,
     }
 
     @Override
-    public boolean editPeriodUserIds(CourseBusinessEditBo bo) {
+    public boolean  editPeriodUserIds(CourseBusinessEditBo bo) {
         LambdaUpdateWrapper<CourseBusiness> objectLambdaUpdateWrapper = Wrappers.lambdaUpdate();
         objectLambdaUpdateWrapper.eq(CourseBusiness::getId, bo.getId());
         objectLambdaUpdateWrapper.set(CourseBusiness::getPeriodUserIds, bo.getPeriodUserIds());

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/bo/UserGoodsListBo.java

@@ -23,6 +23,9 @@ public class UserGoodsListBo implements Serializable {
     @ApiModelProperty("密码")
     private String password;
 
+    @ApiModelProperty("密码检测标签:1检测 2不检测")
+    private Integer passwordSign;
+
     @ApiModelProperty("当前时间戳")
     @NotBlank(message = "当前时间戳不能为空")
     private Long stamp;

+ 10 - 5
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/impl/GoodsServiceImpl.java

@@ -1856,6 +1856,7 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
 
             redisCache.deleteObject(key);
         } catch (Exception e) {
+            e.printStackTrace();
             //释放
             redisCache.deleteObject(key);
             log.error("商品增量报错:" + e.getMessage());
@@ -5152,12 +5153,16 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
         if (CollectionUtils.isEmpty(users)) {
             return null;
         }
-        User user = users.stream().filter(x ->
-                SecurityUtils.matchesPassword(bo.getPassword(), x.getPassword())
-        ).findFirst().orElse(null);
-        if (ObjectUtils.isNull(user)) {
-            return null;
+        User user = null;
+        if (ObjectUtils.isNotNull(bo.getPasswordSign()) && bo.getPasswordSign() == 1){
+             user = users.stream().filter(x ->
+                    SecurityUtils.matchesPassword(bo.getPassword(), x.getPassword())
+            ).findFirst().orElse(null);
+            if (ObjectUtils.isNull(user)) {
+                return null;
+            }
         }
+
         //新系统有账号
         Long tenantId = user.getTenantId();
         //缓存用户信息key

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/ITopOldOrderService.java

@@ -177,4 +177,6 @@ public interface ITopOldOrderService extends IService<TopOldOrder> {
 	List<TopOrderStatisticsDetailVo> getTenantDetailList(TopOrderStatisticsBo bo);
 
 	List<TopOrderStatisticsDetailVo> getBusinessDetailList(TopOrderStatisticsBo bo);
+
+	TopConversionRateVo getCustomerDetailData(TopOrderStatisticsBo bo);
 }

+ 90 - 25
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/impl/TopOldOrderServiceImpl.java

@@ -276,6 +276,9 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
     @Value("${shared.rateData}")
     private String SHARED_RATE_DATA;
 
+    @Value("${shared.rateTrend}")
+    private String SHARED_RATE_TREND;
+
 
     @Override
     public TopOldOrderVo queryById(String orderSn) {
@@ -2924,26 +2927,6 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
             Long dayBefore = DateUtils.getDayBefore(nowTime, 30);
             bo.setStartTime(dayBefore);
             bo.setEndTime(nowTime);
-        }else if (ObjectUtils.isNotNull(bo.getTimeSign())){
-            switch (bo.getTimeSign()){
-                case 1://本周
-                    Map<String, Long> timeInterval = DateUtils.getTimeInterval(new Date());
-                    bo.setStartTime(timeInterval.get("start"));
-                    bo.setEndTime(timeInterval.get("end"));
-                    break;
-                case 2://本月
-                    Long toMonthZeroTime = DateUtils.getToMonthZeroTime();
-                    bo.setStartTime(toMonthZeroTime);
-                    bo.setEndTime(DateUtils.getNowTime());
-                    break;
-                case 3://本年
-                    Long toYearZeroTime = DateUtils.getToYearZeroTime();
-                    bo.setStartTime(toYearZeroTime);
-                    bo.setEndTime(DateUtils.getNowTime());
-                    break;
-                default :
-                    break;
-            }
         }
         Map<String, String> params = new HashMap<>();
         Long nowTime = DateUtils.getNowTime();
@@ -2955,8 +2938,12 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         }else {
             params.put("orgid", "1");
         }
-        params.put("begintime", DateUtils.timestampToDateFormat(bo.getStartTime(),"yyyy/MM/dd"));
-        params.put("endtime", DateUtils.timestampToDateFormat(bo.getEndTime(),"yyyy/MM/dd"));
+        if (ObjectUtils.isNotNull(bo.getStartTime())){
+            params.put("begintime", DateUtils.timestampToDateFormat(bo.getStartTime(),"yyyy/MM/dd"));
+        }
+        if (ObjectUtils.isNotNull(bo.getEndTime())){
+            params.put("endtime", DateUtils.timestampToDateFormat(bo.getEndTime(),"yyyy/MM/dd"));
+        }
         params.put("saleid", "0");
         String respone = "";
         try {
@@ -3012,9 +2999,13 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         params.put("sign", sign);
         if (ObjectUtils.isNotNull(bo.getTenantId())){
             params.put("orgid", bo.getTenantId().toString());
+        }else {
+            params.put("orgid", "1");
         }
         if (ObjectUtils.isNotNull(bo.getCustomerId())){
             params.put("saleId", bo.getCustomerId().toString());
+        }else {
+            params.put("saleId", "0");
         }
         String respone = "";
         try {
@@ -3036,6 +3027,14 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
 
     @Override
     public TopOrderAreaVo getOrderAreaData(TopOrderStatisticsBo bo) {
+        //筛选时间处理
+        if (ObjectUtils.isNull(bo.getTimeSign()) && ObjectUtils.isNull(bo.getStartTime()) && ObjectUtils.isNull(bo.getEndTime())){
+            //没有选择时间范围,默认为当前时间向前推30天
+            Long nowTime = DateUtils.getNowTime();
+            Long dayBefore = DateUtils.getDayBefore(nowTime, 30);
+            bo.setStartTime(dayBefore);
+            bo.setEndTime(nowTime);
+        }
         TopOrderAreaVo areaVo = new TopOrderAreaVo();
         Map<String, String> params = new HashMap<>();
         Long nowTime = DateUtils.getNowTime();
@@ -3044,17 +3043,27 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         params.put("sign", sign);
         params.put("page", bo.getPageNum().toString());
         params.put("pagesize", bo.getPageSize().toString());
+        if (ObjectUtils.isNotNull(bo.getStartTime())){
+            params.put("begintime", DateUtils.timestampToDateFormat(bo.getStartTime(),"yyyy/MM/dd"));
+        }
+        if (ObjectUtils.isNotNull(bo.getEndTime())){
+            params.put("endtime", DateUtils.timestampToDateFormat(bo.getEndTime(),"yyyy/MM/dd"));
+        }
         if (ObjectUtils.isNotNull(bo.getTenantId())){
             params.put("orgid", bo.getTenantId().toString());
+        }else {
+            params.put("orgid", "1");
         }
         if (ObjectUtils.isNotNull(bo.getCustomerId())){
             params.put("saleid", bo.getCustomerId().toString());
+        }else {
+            params.put("saleid", "0");
         }
         String respone = "";
         try {
             respone = HttpUtils.postFormBody(SHARED_ORDER_AREA, params);
             if (!respone.contains("\"Status\":true")) {
-                throw new CustomException("公海过期预警接口错误");
+                throw new CustomException("公海城市转化排行接口错误");
             }
             JSONObject jsonObject = JSONObject.parseObject(respone);
             Object data = jsonObject.get("Data");
@@ -3063,13 +3072,21 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
             }
         }catch (Exception e){
             e.printStackTrace();
-            throw new CustomException("公海过期预警接口错误");
+            throw new CustomException("公海城市转化排行接口错误");
         }
         return areaVo;
     }
 
     @Override
     public TopConversionRateVo getConversionRateData(TopOrderStatisticsBo bo) {
+        //筛选时间处理
+        if (ObjectUtils.isNull(bo.getStartTime()) && ObjectUtils.isNull(bo.getEndTime())){
+            //没有选择时间范围,默认为当前时间向前推30天
+            Long nowTime = DateUtils.getNowTime();
+            Long dayBefore = DateUtils.getDayBefore(nowTime, 30);
+            bo.setStartTime(dayBefore);
+            bo.setEndTime(nowTime);
+        }
         TopConversionRateVo rateVo = new TopConversionRateVo();
         Map<String, String> params = new HashMap<>();
         Long nowTime = DateUtils.getNowTime();
@@ -3079,15 +3096,28 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         params.put("type", bo.getType().toString());
         params.put("page", bo.getPageNum().toString());
         params.put("pagesize", bo.getPageSize().toString());
+        if (ObjectUtils.isNotNull(bo.getStartTime())){
+            params.put("begintime", DateUtils.timestampToDateFormat(bo.getStartTime(),"yyyy/MM/dd"));
+        }
+        if (ObjectUtils.isNotNull(bo.getSort())){
+            params.put("sort", bo.getSort().toString());
+        }
+        if (ObjectUtils.isNotNull(bo.getEndTime())){
+            params.put("endtime", DateUtils.timestampToDateFormat(bo.getEndTime(),"yyyy/MM/dd"));
+        }
         if (ObjectUtils.isNotNull(bo.getTenantId())){
             params.put("orgid", bo.getTenantId().toString());
+        }else {
+            params.put("orgid", "1");
         }
         if (ObjectUtils.isNotNull(bo.getCustomerId())){
             params.put("saleid", bo.getCustomerId().toString());
+        }else {
+            params.put("saleid", "0");
         }
         String respone = "";
         try {
-            respone = HttpUtils.postFormBody(SHARED_ORDER_AREA, params);
+            respone = HttpUtils.postFormBody(SHARED_RATE_DATA, params);
             if (!respone.contains("\"Status\":true")) {
                 throw new CustomException("公海客户转化排行接口错误");
             }
@@ -3412,6 +3442,41 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         return detailVos;
     }
 
+    @Override
+    public TopConversionRateVo getCustomerDetailData(TopOrderStatisticsBo bo) {
+        TopConversionRateVo rateVo = new TopConversionRateVo();
+        Map<String, String> params = new HashMap<>();
+        Long nowTime = DateUtils.getNowTime();
+        String sign = ToolsUtils.EncoderByMd5(nowTime.toString() + "pubilc2022");
+        params.put("stamp", nowTime.toString());
+        params.put("sign", sign);
+        params.put("type", bo.getType().toString());
+        params.put("page", bo.getPageNum().toString());
+        params.put("pagesize", bo.getPageSize().toString());
+        if (ObjectUtils.isNotNull(bo.getTenantId())){
+            params.put("orgid", bo.getTenantId().toString());
+        }
+        if (ObjectUtils.isNotNull(bo.getCustomerId())){
+            params.put("saleid", bo.getCustomerId().toString());
+        }
+        String respone = "";
+        try {
+            respone = HttpUtils.postFormBody(SHARED_RATE_TREND, params);
+            if (!respone.contains("\"Status\":true")) {
+                throw new CustomException("公海客户转化排行接口错误");
+            }
+            JSONObject jsonObject = JSONObject.parseObject(respone);
+            Object data = jsonObject.get("Data");
+            if (ObjectUtils.isNotNull(data)){
+                rateVo = JSONObject.parseObject(JSONObject.toJSONString(data), TopConversionRateVo.class);
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+            throw new CustomException("公海客户转化排行接口错误");
+        }
+        return rateVo;
+    }
+
     private List<Long> getDayTime(Long startTime,Long endTime){
         List<Long> tiemList = new ArrayList<>();
         Long zeroTime = DateUtils.getScheduleTimeZeroTime(startTime);

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/bo/TopOrderStatisticsBo.java

@@ -43,4 +43,6 @@ public class TopOrderStatisticsBo implements Serializable {
 
     @ApiModelProperty("类型:0数量 1金额")
     private Integer type;
+
+    private Integer sort;
 }

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/vo/TopConversionRateDataVo.java

@@ -48,4 +48,7 @@ public class TopConversionRateDataVo implements Serializable {
 
     @ApiModelProperty("业务员名称")
     private String saleMan;
+
+    @ApiModelProperty("公司名称")
+    private String CompanyName;
 }

+ 30 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/vo/TopConversionRateTrendVo.java

@@ -0,0 +1,30 @@
+package com.zhongzheng.modules.top.order.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author yangdamao
+ * @date 2023年10月31日 14:50
+ */
+@Data
+public class TopConversionRateTrendVo implements Serializable {
+
+    @ApiModelProperty("")
+    private Long dealCount;
+
+    @ApiModelProperty("")
+    private String date;
+
+    @ApiModelProperty("")
+    private String saleName;
+
+    @ApiModelProperty("")
+    private Long dealAmount;
+
+    @ApiModelProperty("")
+    private String orgName;
+
+}

+ 2 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/vo/TopConversionRateVo.java

@@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
+import java.util.List;
 
 /**
  * @author yangdamao
@@ -13,7 +14,7 @@ import java.io.Serializable;
 public class TopConversionRateVo implements Serializable {
 
     @ApiModelProperty("数据")
-    private TopConversionRateDataVo _Data;
+    private List<TopConversionRateDataVo> _Data;
 
     private Long CurrentPageIndex;
 

+ 2 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/vo/TopOrderAreaVo.java

@@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
+import java.util.List;
 
 /**
  * @author yangdamao
@@ -13,7 +14,7 @@ import java.io.Serializable;
 public class TopOrderAreaVo implements Serializable {
 
     @ApiModelProperty("数据")
-    private TopOrderAreaDataVo _Data;
+    private List<TopOrderAreaDataVo> _Data;
 
     private Long CurrentPageIndex;