Sfoglia il codice sorgente

Merge branch 'master' into information-27

# Conflicts:
#	netflix-common/src/main/java/com/cyksj/common/constant/Constant.java
#	netflix-dao/src/main/java/com/cyksj/model/manage/request/ReqGoodsSkuSpec.java
#	netflix-service/src/main/java/com/cyksj/redis/RedisService.java
#	netflix-service/src/main/java/com/cyksj/service/mange/impl/CmsOrderDonServiceImpl.java
#	netflix-service/src/main/java/com/cyksj/service/order/impl/OrderDonServiceImpl.java
#	netflix-service/src/main/java/com/cyksj/service/template/impl/TemplateCommonServiceImpl.java
#	netflix-service/src/main/java/com/cyksj/service/user/impl/UserBenefitsServiceImpl.java
#	netflix-web/src/main/java/com/cyksj/web/controller/goods/GoodsDonController.java
zoujiajian 2 anni fa
parent
commit
2732c83f2e
100 ha cambiato i file con 1813 aggiunte e 129 eliminazioni
  1. 6 0
      netflix-common/pom.xml
  2. 14 0
      netflix-common/src/main/java/com/cyksj/common/constant/Constant.java
  3. 18 18
      netflix-common/src/main/java/com/cyksj/common/constant/RandomConstant.java
  4. 18 7
      netflix-common/src/main/java/com/cyksj/common/util/SmsUtil.java
  5. 33 0
      netflix-common/src/main/java/com/cyksj/common/util/StringUtil.java
  6. 2 0
      netflix-common/src/main/java/com/cyksj/dto/RedisKey.java
  7. 19 0
      netflix-common/src/main/java/com/cyksj/dto/UserSharedDto.java
  8. 1 1
      netflix-common/src/main/java/com/cyksj/xxljob/XxlJobUtil.java
  9. 17 0
      netflix-dao/src/main/java/com/cyksj/mapper/AccountBlockedReplaceRecordMapper.java
  10. 0 13
      netflix-dao/src/main/java/com/cyksj/mapper/ChatGptPwdViewRecordMapper.java
  11. 17 0
      netflix-dao/src/main/java/com/cyksj/mapper/EquipmentActivityReduceMapper.java
  12. 2 0
      netflix-dao/src/main/java/com/cyksj/mapper/GoodsDonSkuMapper.java
  13. 6 0
      netflix-dao/src/main/java/com/cyksj/mapper/GroupsRelationMapper.java
  14. 2 0
      netflix-dao/src/main/java/com/cyksj/mapper/OrderDonMapper.java
  15. 13 0
      netflix-dao/src/main/java/com/cyksj/mapper/TicketPwdViewRecordMapper.java
  16. 13 0
      netflix-dao/src/main/java/com/cyksj/mapper/UserCertRecordMapper.java
  17. 13 0
      netflix-dao/src/main/java/com/cyksj/mapper/UserDoubleVerifyCodeChangeRecordMapper.java
  18. 3 0
      netflix-dao/src/main/java/com/cyksj/mapper/UserMapper.java
  19. 7 0
      netflix-dao/src/main/java/com/cyksj/mapper/corp/CorpCustomerAcquisitionLinkMapper.java
  20. 5 0
      netflix-dao/src/main/java/com/cyksj/mapper/corp/CorpFollowActiveCodeMapper.java
  21. 11 0
      netflix-dao/src/main/java/com/cyksj/mapper/corp/CorpMsgFollowAssociationMapper.java
  22. 3 2
      netflix-dao/src/main/java/com/cyksj/mapper/corp/CorpUserFollowRelationMapper.java
  23. 5 0
      netflix-dao/src/main/java/com/cyksj/mapper/corp/CorpUserTagMapper.java
  24. 11 0
      netflix-dao/src/main/java/com/cyksj/mapper/corp/QyMsgContentMapper.java
  25. 13 0
      netflix-dao/src/main/java/com/cyksj/mapper/manage/distribute/UserDistributeSharedWhiteMapper.java
  26. 6 1
      netflix-dao/src/main/java/com/cyksj/mapper/manage/statistics/StatisticsExportMapper.java
  27. 6 1
      netflix-dao/src/main/java/com/cyksj/model/dto/CorpFollowActiveCodeDto.java
  28. 22 0
      netflix-dao/src/main/java/com/cyksj/model/dto/MonthlyUserOrderDetailDto.java
  29. 22 0
      netflix-dao/src/main/java/com/cyksj/model/dto/SysServiceChangeDto.java
  30. 20 0
      netflix-dao/src/main/java/com/cyksj/model/dto/UserWxIndentDto.java
  31. 55 0
      netflix-dao/src/main/java/com/cyksj/model/dto/YhServiceChangeDto.java
  32. 2 0
      netflix-dao/src/main/java/com/cyksj/model/dto/YhServiceDto.java
  33. 24 0
      netflix-dao/src/main/java/com/cyksj/model/dto/YhServiceNameDto.java
  34. 50 0
      netflix-dao/src/main/java/com/cyksj/model/entity/AccountBlockedReplaceRecord.java
  35. 6 0
      netflix-dao/src/main/java/com/cyksj/model/entity/ChannelPopularize.java
  36. 1 0
      netflix-dao/src/main/java/com/cyksj/model/entity/CorpFollow.java
  37. 1 1
      netflix-dao/src/main/java/com/cyksj/model/entity/CorpFollowActiveCode.java
  38. 13 0
      netflix-dao/src/main/java/com/cyksj/model/entity/CorpMsgBulkTask.java
  39. 23 0
      netflix-dao/src/main/java/com/cyksj/model/entity/CorpMsgFollowAssociation.java
  40. 6 0
      netflix-dao/src/main/java/com/cyksj/model/entity/CorpUserFollowRelation.java
  41. 47 0
      netflix-dao/src/main/java/com/cyksj/model/entity/EquipmentActivityReduce.java
  42. 5 0
      netflix-dao/src/main/java/com/cyksj/model/entity/GoodsDon.java
  43. 14 0
      netflix-dao/src/main/java/com/cyksj/model/entity/GoodsDonSku.java
  44. 125 0
      netflix-dao/src/main/java/com/cyksj/model/entity/QyMsgContent.java
  45. 2 0
      netflix-dao/src/main/java/com/cyksj/model/entity/RefundOrderDon.java
  46. 2 0
      netflix-dao/src/main/java/com/cyksj/model/entity/SysConfigChangeRecord.java
  47. 6 2
      netflix-dao/src/main/java/com/cyksj/model/entity/TicketPwdViewRecord.java
  48. 28 0
      netflix-dao/src/main/java/com/cyksj/model/entity/UserCertRecord.java
  49. 50 0
      netflix-dao/src/main/java/com/cyksj/model/entity/UserDistributeSharedWhite.java
  50. 22 0
      netflix-dao/src/main/java/com/cyksj/model/entity/UserDoubleVerifyCodeChangeRecord.java
  51. 3 0
      netflix-dao/src/main/java/com/cyksj/model/entity/WxCorpApp.java
  52. 14 0
      netflix-dao/src/main/java/com/cyksj/model/excel/ExcelMonthOrderData.java
  53. 6 0
      netflix-dao/src/main/java/com/cyksj/model/excel/ExcelMonthlyDistributeOrderData.java
  54. 14 45
      netflix-dao/src/main/java/com/cyksj/model/excel/ExcelRealGoodsOrderData.java
  55. 6 1
      netflix-dao/src/main/java/com/cyksj/model/manage/request/ReqGoodsSkuInsert.java
  56. 8 0
      netflix-dao/src/main/java/com/cyksj/model/manage/request/ReqGoodsSkuSpec.java
  57. 71 0
      netflix-dao/src/main/java/com/cyksj/model/manage/views/CorpFollowMsgView.java
  58. 74 0
      netflix-dao/src/main/java/com/cyksj/model/manage/views/CorpMsgAuditUserView.java
  59. 51 0
      netflix-dao/src/main/java/com/cyksj/model/manage/views/CorpMsgFollowAssociationView.java
  60. 55 0
      netflix-dao/src/main/java/com/cyksj/model/manage/views/CorpQyMsgAuditChatView.java
  61. 80 0
      netflix-dao/src/main/java/com/cyksj/model/manage/views/CorpUserView.java
  62. 3 0
      netflix-dao/src/main/java/com/cyksj/model/manage/views/GroupsRelationView.java
  63. 28 13
      netflix-dao/src/main/java/com/cyksj/model/manage/views/OrderDonBackView.java
  64. 1 1
      netflix-dao/src/main/java/com/cyksj/model/manage/views/UserView.java
  65. 5 0
      netflix-dao/src/main/java/com/cyksj/model/request/OrderPayRequest.java
  66. 4 0
      netflix-dao/src/main/java/com/cyksj/model/request/OrderRefundReq.java
  67. 20 0
      netflix-dao/src/main/java/com/cyksj/model/request/UserIndentCertReq.java
  68. 10 0
      netflix-dao/src/main/java/com/cyksj/model/response/GptStandbyResp.java
  69. 24 0
      netflix-dao/src/main/java/com/cyksj/model/response/WxCertAuthTokenResp.java
  70. 3 0
      netflix-dao/src/main/java/com/cyksj/model/views/ChannelPopularizeView.java
  71. 1 1
      netflix-dao/src/main/java/com/cyksj/model/views/CorpFollowActiveCodeView.java
  72. 3 2
      netflix-dao/src/main/java/com/cyksj/model/views/CorpMsgBulkTaskSendRecordView.java
  73. 37 0
      netflix-dao/src/main/java/com/cyksj/model/views/CorpTagUserOrderDataView.java
  74. 18 0
      netflix-dao/src/main/java/com/cyksj/model/views/DistributeGoodsGeneralRateView.java
  75. 2 2
      netflix-dao/src/main/java/com/cyksj/model/views/DistributeOrdersDetailView.java
  76. 1 2
      netflix-dao/src/main/java/com/cyksj/model/views/DistributePopularizeView.java
  77. 27 0
      netflix-dao/src/main/java/com/cyksj/model/views/DistributeSearchView.java
  78. 5 0
      netflix-dao/src/main/java/com/cyksj/model/views/GoodsDonSkuFrontView.java
  79. 4 0
      netflix-dao/src/main/java/com/cyksj/model/views/GoodsFrontListCategoryView.java
  80. 3 0
      netflix-dao/src/main/java/com/cyksj/model/views/GoodsFrontListView.java
  81. 20 0
      netflix-dao/src/main/java/com/cyksj/model/views/GroupsDataStatisticsView.java
  82. 6 5
      netflix-dao/src/main/java/com/cyksj/model/views/GroupsRelationIndependentView.java
  83. 3 0
      netflix-dao/src/main/java/com/cyksj/model/views/HomeManagementFrontView.java
  84. 30 0
      netflix-dao/src/main/java/com/cyksj/model/views/RefundOrderDonServiceDataView.java
  85. 7 2
      netflix-dao/src/main/java/com/cyksj/model/views/RegisterDistributeOrdersDetailView.java
  86. 51 0
      netflix-dao/src/main/java/com/cyksj/model/views/TicketPwdViewRecordView.java
  87. 65 0
      netflix-dao/src/main/java/com/cyksj/model/views/UserCommonDistributeView.java
  88. 1 1
      netflix-dao/src/main/java/com/cyksj/model/views/UserDistributeUnbindOrderMoneyView.java
  89. 10 0
      netflix-dao/src/main/java/com/cyksj/model/views/UserOrderDetailView.java
  90. 13 0
      netflix-dao/src/main/resources/mapper/AccountBlockedReplaceRecordMapper.xml
  91. 23 0
      netflix-dao/src/main/resources/mapper/CorpCustomerAcquisitionLinkMapper.xml
  92. 15 0
      netflix-dao/src/main/resources/mapper/CorpFollowActiveCodeMapper.xml
  93. 7 2
      netflix-dao/src/main/resources/mapper/CorpTagMapper.xml
  94. 12 0
      netflix-dao/src/main/resources/mapper/CorpUserFollowRelationMapper.xml
  95. 24 0
      netflix-dao/src/main/resources/mapper/CorpUserTagMapper.xml
  96. 16 0
      netflix-dao/src/main/resources/mapper/EquipmentActivityReduceMapper.xml
  97. 11 0
      netflix-dao/src/main/resources/mapper/GoodsDonSkuMapper.xml
  98. 20 1
      netflix-dao/src/main/resources/mapper/GroupRelationMapper.xml
  99. 39 1
      netflix-dao/src/main/resources/mapper/OrderDonMapper.xml
  100. 49 4
      netflix-dao/src/main/resources/mapper/StatisticsExportMapper.xml

+ 6 - 0
netflix-common/pom.xml

@@ -98,6 +98,12 @@
             <artifactId>tencentcloud-sdk-java-sms</artifactId>
             <version>3.1.694</version>
         </dependency>
+
+        <dependency>
+            <groupId>com.tencentcloudapi</groupId>
+            <artifactId>tencentcloud-sdk-java-faceid</artifactId>
+            <version>3.1.694</version>
+        </dependency>
     </dependencies>
 
 

+ 14 - 0
netflix-common/src/main/java/com/cyksj/common/constant/Constant.java

@@ -1,5 +1,6 @@
 package com.cyksj.common.constant;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 /*
@@ -254,4 +255,17 @@ public interface Constant {
 	String ACCOUNT_PWD_UPDATE_SYS_MSG_NOTIFY = "您购买的%s账号,密码已修改";
 
 	String ACCOUNT_SET_SYS_MSG_NOTIFY = "您购买的%s账号,账号已配置";
+
+	String DUTY_SERVICE_CHANGE_MSG = "%s值班人员不足三人【银河录像局】";
+
+	/**
+	 * 系统周末值班客服变更通知手机号
+	 */
+	String DUTY_SERVICE_CHANGE_NOTIFY_PHONE = "17681947535";
+
+	BigDecimal FIVE_HUNDRED = BigDecimal.valueOf(50000);
+
+	BigDecimal THOUSAND = BigDecimal.valueOf(100000);
+
+	BigDecimal TWO_THOUSAND = BigDecimal.valueOf(200000);
 }

+ 18 - 18
netflix-common/src/main/java/com/cyksj/common/constant/RandomConstant.java

@@ -35,24 +35,24 @@ public class RandomConstant {
 			"快乐飞行员",
 			"悠闲游戏者");
 
-	public final static List<String> imgs = List.of("https://cdn2.liuliangbang.vip/picture/3d31de8deaa69d860483dbf4b5bdf495-1682238950376.png",
-			"https://cdn2.liuliangbang.vip/picture/4d8782126a98b0f35f4313011b4c56f7-1682238950431.png",
-			"https://cdn2.liuliangbang.vip/picture/438892d60ec935e174e5c6c59ca02542-1682238950278.png",
-			"https://cdn2.liuliangbang.vip/picture/b01f30f75283585d613136e339781962-1682238950404.png",
-			"https://cdn2.liuliangbang.vip/picture/043dd1a9457c4feadb3c6627b3abd152-1682238950316.png",
-			"https://cdn2.liuliangbang.vip/picture/c08fc448e0b494b9ff2b62dc4e3660f6-1682238950349.png",
-			"https://cdn2.liuliangbang.vip/picture/47cb6ea39a5005f6fddb1413bdc81ea7-1682238950532.png",
-			"https://cdn2.liuliangbang.vip/picture/40794090747d848ca142473aa2e3ca6a-1682238950559.png",
-			"https://cdn2.liuliangbang.vip/picture/bb6f0ab1406d1fb9bbed32eef0168ba7-1682238950474.png",
-			"https://cdn2.liuliangbang.vip/picture/e904769134d846046e2d3d4c84090875-1682239434345.png",
-			"https://cdn2.liuliangbang.vip/picture/f2e65a63af190b592b3166698d54adaa-1682239434318.png",
-			"https://cdn2.liuliangbang.vip/picture/e79c30bd0740ee66a70ea26ba2c73d50-1682239434256.png",
-			"https://cdn2.liuliangbang.vip/picture/98902342b15406fe3d170d8d4aad6f49-1682239434286.png",
-			"https://cdn2.liuliangbang.vip/picture/d28416360ed022e8f27767c1fef6bd69-1682239434384.png",
-			"https://cdn2.liuliangbang.vip/picture/c7bc9ba763d3ec97e0aed906e974af9d-1682239434469.png",
-			"https://cdn2.liuliangbang.vip/picture/7c017d1910efd32f56f3ef1b10c574d5-1682239434116.png",
-			"https://cdn2.liuliangbang.vip/picture/aa5333d89cf1dafa11905c86ba10948e-1682239434416.png",
-			"https://cdn2.liuliangbang.vip/picture/2fdea3f9b383e594a0a3b3b908b2eac6-1682239434498.png");
+	public final static List<String> imgs = List.of("https://cdn2.yicanggongyi.com/picture/3d31de8deaa69d860483dbf4b5bdf495-1682238950376.png",
+			"https://cdn2.yicanggongyi.com/picture/4d8782126a98b0f35f4313011b4c56f7-1682238950431.png",
+			"https://cdn2.yicanggongyi.com/picture/438892d60ec935e174e5c6c59ca02542-1682238950278.png",
+			"https://cdn2.yicanggongyi.com/picture/b01f30f75283585d613136e339781962-1682238950404.png",
+			"https://cdn2.yicanggongyi.com/picture/043dd1a9457c4feadb3c6627b3abd152-1682238950316.png",
+			"https://cdn2.yicanggongyi.com/picture/c08fc448e0b494b9ff2b62dc4e3660f6-1682238950349.png",
+			"https://cdn2.yicanggongyi.com/picture/47cb6ea39a5005f6fddb1413bdc81ea7-1682238950532.png",
+			"https://cdn2.yicanggongyi.com/picture/40794090747d848ca142473aa2e3ca6a-1682238950559.png",
+			"https://cdn2.yicanggongyi.com/picture/bb6f0ab1406d1fb9bbed32eef0168ba7-1682238950474.png",
+			"https://cdn2.yicanggongyi.com/picture/e904769134d846046e2d3d4c84090875-1682239434345.png",
+			"https://cdn2.yicanggongyi.com/picture/f2e65a63af190b592b3166698d54adaa-1682239434318.png",
+			"https://cdn2.yicanggongyi.com/picture/e79c30bd0740ee66a70ea26ba2c73d50-1682239434256.png",
+			"https://cdn2.yicanggongyi.com/picture/98902342b15406fe3d170d8d4aad6f49-1682239434286.png",
+			"https://cdn2.yicanggongyi.com/picture/d28416360ed022e8f27767c1fef6bd69-1682239434384.png",
+			"https://cdn2.yicanggongyi.com/picture/c7bc9ba763d3ec97e0aed906e974af9d-1682239434469.png",
+			"https://cdn2.yicanggongyi.com/picture/7c017d1910efd32f56f3ef1b10c574d5-1682239434116.png",
+			"https://cdn2.yicanggongyi.com/picture/aa5333d89cf1dafa11905c86ba10948e-1682239434416.png",
+			"https://cdn2.yicanggongyi.com/picture/2fdea3f9b383e594a0a3b3b908b2eac6-1682239434498.png");
 
 	public static String getName() {
 		int i = RandomUtil.randomInt(names.size());

+ 18 - 7
netflix-common/src/main/java/com/cyksj/common/util/SmsUtil.java

@@ -45,6 +45,9 @@ public class SmsUtil {
     //国际腾讯云短信
     private static final String TENCENT_SMS_INTERNATIONAL_TEMPLATE_ID = "1705927";
 
+    //账号修改密码国际短信通知
+    private static final String TENCENT_SMS_ACCOUNT_INTERNATIONAL_TEMPLATE_ID = "2040574";
+
     private static final Logger log = LoggerFactory.getLogger(SmsUtil.class);
 
     public static void main(String[] args) {
@@ -94,6 +97,19 @@ public class SmsUtil {
     }
 
     public static Boolean sendTencent(Integer cid, String mobile, String msg) {
+        String templateId = TENCENT_SMS_TEMPLATE_ID;
+        if (cid != 86) {
+            templateId = TENCENT_SMS_INTERNATIONAL_TEMPLATE_ID;
+        }
+        return commonSendTencentSmsMsg(templateId, cid, mobile, msg);
+    }
+
+    public static Boolean sendAccountInternalSmsMsg(Integer cid, String mobile, String msg) {
+        String templateId = TENCENT_SMS_ACCOUNT_INTERNATIONAL_TEMPLATE_ID;
+        return commonSendTencentSmsMsg(templateId, cid, mobile, msg);
+    }
+
+    public static Boolean commonSendTencentSmsMsg(String templateId, Integer cid, String mobile, String msg) {
         try {
             /* 必要步骤:
              * 实例化一个认证对象,入参需要传入腾讯云账户密钥对secretId,secretKey。
@@ -108,8 +124,8 @@ public class SmsUtil {
              * 如有需要请在代码中查阅以获取最新的默认值 */
             httpProfile.setConnTimeout(60);
             /* 指定接入地域域名,默认就近地域接入域名为 sms.tencentcloudapi.com ,也支持指定地域域名访问,例如广州地域的域名为 sms.ap-guangzhou.tencentcloudapi.com
-            * 南京地域
-            * */
+             * 南京地域
+             * */
             httpProfile.setEndpoint("sms.ap-nanjing.tencentcloudapi.com");
 
             /* 非必要步骤:
@@ -138,10 +154,6 @@ public class SmsUtil {
             req.setSignName(TENCENT_SMS_SIGN_NAME);
 
             /* 模板 ID: 必须填写已审核通过的模板 ID */
-            String templateId = TENCENT_SMS_TEMPLATE_ID;
-            if (cid != 86) {
-                templateId = TENCENT_SMS_INTERNATIONAL_TEMPLATE_ID;
-            }
             req.setTemplateId(templateId);
 
             /* 模板参数: 模板参数的个数需要与 TemplateId 对应模板的变量个数保持一致,若无模板参数,则设置为空 */
@@ -164,7 +176,6 @@ public class SmsUtil {
             if ("Ok".equalsIgnoreCase(sendStatus.getCode())) {
                 return true;
             }
-            return false;
 
             // 也可以取出单个值,你可以通过官网接口文档或跳转到response对象的定义处查看返回字段的定义
             // System.out.println(res.getRequestId());

+ 33 - 0
netflix-common/src/main/java/com/cyksj/common/util/StringUtil.java

@@ -499,4 +499,37 @@ public final class StringUtil {
 
 		return "unknown";
 	}
+
+	public static String getInternalAddressByIP(String ip) {
+		if (StrUtil.isBlank(ip)) {
+			return "unknown";
+		}
+		try {
+			String url = String.format("http://whois.pconline.com.cn/ipJson.jsp?ip=%s" + "&json=true", ip);
+			HttpResponse<String> send = J11HttpC
+					.custom().ofGet().url(url)
+					.send(HttpResponse.BodyHandlers.ofString());
+			String rspStr = send.body();
+			if (StrUtil.isEmpty(rspStr)) {
+				return "unknown";
+			}
+			JSONObject obj = JSONUtil.parseObj(rspStr);
+			String addr = obj.getStr("addr");
+			return addr;
+		} catch (Exception e) {
+		}
+
+		return "unknown";
+	}
+
+	/**
+	 * 身份证号返回
+	 */
+	public static String deIndent(String ident) {
+		String front = ident.substring(0, 4);
+		String back = ident.substring(ident.length() - 4);
+		StringBuilder sb = new StringBuilder();
+		sb.append(front).append("****").append(back);
+		return sb.toString();
+	}
 }

+ 2 - 0
netflix-common/src/main/java/com/cyksj/dto/RedisKey.java

@@ -22,6 +22,8 @@ public class RedisKey {
      */
     public static String CORP_ACCESS_TOKEN_KEY = "corp:access_token:";
 
+    public static String CORP_MSG_ACCESS_TOKEN_KEY = "corp::msg:access_token:";
+
     /**
      * corp_js_ticket
      */

+ 19 - 0
netflix-common/src/main/java/com/cyksj/dto/UserSharedDto.java

@@ -0,0 +1,19 @@
+package com.cyksj.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 项目名: yhlxj2
+ * 文件名: UserSharedDto
+ * 创建者: JavaZou
+ * 创建时间:2024/1/2 15:41
+ */
+@Getter
+@Setter
+public class UserSharedDto {
+
+	private Long sharedId;
+
+	private Long dsPopularizeId;
+}

+ 1 - 1
netflix-common/src/main/java/com/cyksj/xxljob/XxlJobUtil.java

@@ -26,7 +26,7 @@ import java.util.List;
  */
 public class XxlJobUtil {
 
-	private final static String BASE_URL = "http://app7.liuliangbang.vip:9099/xxl-job-admin";
+	private final static String BASE_URL = "http://app7.yicanggongyi.com:9099/xxl-job-admin";
 
 	private static String cookie = "";
 

+ 17 - 0
netflix-dao/src/main/java/com/cyksj/mapper/AccountBlockedReplaceRecordMapper.java

@@ -0,0 +1,17 @@
+package com.cyksj.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.cyksj.model.entity.AccountBlockedReplaceRecord;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 项目名: netflix-job
+ * 文件名: AccountBlockedReplaceRecordMapper
+ * 创建者: JavaZou
+ * 创建时间:2024/1/16 16:39
+ */
+public interface AccountBlockedReplaceRecordMapper extends BaseMapper<AccountBlockedReplaceRecord> {
+	void batchInsert(@Param("list") List<AccountBlockedReplaceRecord> list);
+}

+ 0 - 13
netflix-dao/src/main/java/com/cyksj/mapper/ChatGptPwdViewRecordMapper.java

@@ -1,13 +0,0 @@
-package com.cyksj.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.cyksj.model.entity.ChatGptPwdViewRecord;
-
-/*
- *项目名: netflix
- *文件名: ChatGptPwdViewRecordMapper
- *创建者: JavaZou
- *创建时间:2023/5/17 16:15
- */
-public interface ChatGptPwdViewRecordMapper extends BaseMapper<ChatGptPwdViewRecord> {
-}

+ 17 - 0
netflix-dao/src/main/java/com/cyksj/mapper/EquipmentActivityReduceMapper.java

@@ -0,0 +1,17 @@
+package com.cyksj.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.cyksj.model.entity.EquipmentActivityReduce;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+
+/**
+ * 项目名: yhlxj2
+ * 文件名: EquipmentActivityReduceMapper
+ * 创建者: JavaZou
+ * 创建时间:2024/1/30 11:00
+ */
+public interface EquipmentActivityReduceMapper extends BaseMapper<EquipmentActivityReduce> {
+	Integer checkRepeatTimeDuration(@Param("id") Long id, @Param("st") Date st, @Param("et") Date et);
+}

+ 2 - 0
netflix-dao/src/main/java/com/cyksj/mapper/GoodsDonSkuMapper.java

@@ -22,4 +22,6 @@ public interface GoodsDonSkuMapper  extends BaseMapper<GoodsDonSku> {
 	List<YhShopGoodsSku> selectSkuShops(@Param("list") List<Long> goodsIds);
 
 	List<Long> selectSingleSkuIdsByGoodsId(Long goodsId);
+
+	GoodsDonSku checkAndReturnMinPriceUserOwnsSku(@Param("goodsId") Long goodsId, @Param("dsUserId") Long dsUserId);
 }

+ 6 - 0
netflix-dao/src/main/java/com/cyksj/mapper/GroupsRelationMapper.java

@@ -4,6 +4,8 @@ import cn.hutool.core.date.DateTime;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.cyksj.model.entity.GroupsRelation;
+import com.cyksj.model.entity.PhoneCode;
+import com.cyksj.model.manage.views.GroupsRelationBackView;
 import com.cyksj.model.manage.views.GroupsRelationView;
 import com.cyksj.model.views.GroupsRelationUserView;
 import com.cyksj.model.views.UserRecommendGoodsFrontView;
@@ -61,4 +63,8 @@ public interface GroupsRelationMapper extends BaseMapper<GroupsRelation> {
 	Integer selectNumWaitingGroups(Long skuId);
 
 	Integer selectLimitAvailableNum(@Param("skuId") Long skuId, @Param("maxNum") Integer maxNum);
+
+	GroupsRelationBackView getGroupRelationAccountView(Long relationId);
+
+	PhoneCode getAreaPhoneByUserId(Long userId);
 }

+ 2 - 0
netflix-dao/src/main/java/com/cyksj/mapper/OrderDonMapper.java

@@ -68,4 +68,6 @@ public interface OrderDonMapper extends BaseMapper<OrderDon> {
 	UserOrderDetailView getTagUserData(@Param("tagIdStr") String tagIdStr, @Param("startTime") String startTime, @Param("endTime") String endTime);
 
 	Page<UserOrderDetailView> getTagUserDataPage(@Param("page") Page<UserOrderDetailView> page, @Param("tagIdStr") String tagIdStr, @Param("startTime") String startTime, @Param("endTime") String endTime);
+
+	Page<CorpTagUserOrderDataView> getTagUserTimeOrderData(@Param("page") Page<Object> objectPage, @Param("tagIdStr") String tagIdStr, @Param("toDate") String toDate, @Param("startTime") String startTime, @Param("endTime") String endTime);
 }

+ 13 - 0
netflix-dao/src/main/java/com/cyksj/mapper/TicketPwdViewRecordMapper.java

@@ -0,0 +1,13 @@
+package com.cyksj.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.cyksj.model.entity.TicketPwdViewRecord;
+
+/*
+ *项目名: netflix
+ *文件名: TicketPwdViewRecordMapper
+ *创建者: JavaZou
+ *创建时间:2023/5/17 16:15
+ */
+public interface TicketPwdViewRecordMapper extends BaseMapper<TicketPwdViewRecord> {
+}

+ 13 - 0
netflix-dao/src/main/java/com/cyksj/mapper/UserCertRecordMapper.java

@@ -0,0 +1,13 @@
+package com.cyksj.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.cyksj.model.entity.UserCertRecord;
+
+/**
+ * 项目名: yhlxj2
+ * 文件名: UserCertRecordMapper
+ * 创建者: JavaZou
+ * 创建时间:2024/2/21 10:11
+ */
+public interface UserCertRecordMapper extends BaseMapper<UserCertRecord> {
+}

+ 13 - 0
netflix-dao/src/main/java/com/cyksj/mapper/UserDoubleVerifyCodeChangeRecordMapper.java

@@ -0,0 +1,13 @@
+package com.cyksj.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.cyksj.model.entity.UserDoubleVerifyCodeChangeRecord;
+
+/**
+ * 项目名: yhlxj2
+ * 文件名: UserDoubleVerifyCodeChangeRecordMapper
+ * 创建者: JavaZou
+ * 创建时间:2024/1/8 16:48
+ */
+public interface UserDoubleVerifyCodeChangeRecordMapper extends BaseMapper<UserDoubleVerifyCodeChangeRecord> {
+}

+ 3 - 0
netflix-dao/src/main/java/com/cyksj/mapper/UserMapper.java

@@ -1,5 +1,6 @@
 package com.cyksj.mapper;
 
+import cn.hutool.core.date.DateTime;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.cyksj.model.entity.User;
 import org.apache.ibatis.annotations.Param;
@@ -64,4 +65,6 @@ public interface UserMapper extends BaseMapper<User> {
     Integer subYhsMoney(@Param("shopUserId") Long shopUserId, @Param("subMoney") BigDecimal subMoney);
 
 	Integer selectUnBindUserNum();
+
+    Integer getLargeNewConsumer(@Param("beginOfDay") DateTime beginOfDay, @Param("largeLimit") String largeLimit);
 }

+ 7 - 0
netflix-dao/src/main/java/com/cyksj/mapper/corp/CorpCustomerAcquisitionLinkMapper.java

@@ -2,8 +2,11 @@ package com.cyksj.mapper.corp;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.cyksj.model.entity.CorpCustomerAcquisitionLink;
+import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 
+import java.util.List;
+
 /**
  * @author chan
  * @date 2023/11/28 14:21
@@ -12,4 +15,8 @@ public interface CorpCustomerAcquisitionLinkMapper extends BaseMapper<CorpCustom
 
     @Select("select cl.* from corp_customer_acquisition_link cl, corp_customer_acquisition_link_popularize clp where cl.id = clp.customer_acquistion_link_id and clp.id = #{linkId}")
     CorpCustomerAcquisitionLink getByLinkPopularizeId(Long linkId);
+
+	List<CorpCustomerAcquisitionLink> selectActiveCodeByFollowIndx(@Param("list") List<Integer> updateFollowIndx);
+
+	List<Long> selectAcLinkCorpTemplateCouponIdsByTagIds(@Param("tagIds") List<Long> tagIds);
 }

+ 5 - 0
netflix-dao/src/main/java/com/cyksj/mapper/corp/CorpFollowActiveCodeMapper.java

@@ -2,6 +2,9 @@ package com.cyksj.mapper.corp;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.cyksj.model.entity.CorpFollowActiveCode;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * 项目名: yhlxj
@@ -10,4 +13,6 @@ import com.cyksj.model.entity.CorpFollowActiveCode;
  * 创建时间:2023/10/9 16:27
  */
 public interface CorpFollowActiveCodeMapper extends BaseMapper<CorpFollowActiveCode> {
+
+	List<CorpFollowActiveCode> selectActiveCodeByFollowIndx(@Param("list") List<Integer> indx);
 }

+ 11 - 0
netflix-dao/src/main/java/com/cyksj/mapper/corp/CorpMsgFollowAssociationMapper.java

@@ -0,0 +1,11 @@
+package com.cyksj.mapper.corp;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.cyksj.model.entity.CorpMsgFollowAssociation;
+
+/**
+ * @author chan
+ * @date 2024/1/18 14:22
+ */
+public interface CorpMsgFollowAssociationMapper extends BaseMapper<CorpMsgFollowAssociation> {
+}

+ 3 - 2
netflix-dao/src/main/java/com/cyksj/mapper/corp/CorpUserFollowRelationMapper.java

@@ -5,6 +5,7 @@ import com.cyksj.model.dto.CorpUserFollowRelationDto;
 import com.cyksj.model.entity.CorpUserFollowRelation;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -15,9 +16,9 @@ public interface CorpUserFollowRelationMapper extends BaseMapper<CorpUserFollowR
 
 	String selectCorpCustomers(@Param("unionid") String unionid, @Param("wxCorpId") Long wxCorpId);
 
-	List<CorpUserFollowRelationDto> selectCorpUserFollowRelationByTagIds(@Param("list") List<String> tagIds, @Param("wxCorpId") Long wxCorpId, @Param("followIds") List<String> followIds, @Param("userScope") Integer userScope, @Param("consumerScope") Integer consumerScope);
+	List<CorpUserFollowRelationDto> selectCorpUserFollowRelationByTagIds(@Param("list") List<String> tagIds, @Param("wxCorpId") Long wxCorpId, @Param("followIds") List<String> followIds, @Param("userScope") Integer userScope, @Param("consumerScope") Integer consumerScope, @Param("joinStartTime") Date joinStartTime, @Param("joinEndTime") Date joinEndTime);
 
 	List<CorpUserFollowRelationDto> selectCorpUserFollowRelation(@Param("wxCorpId") Long wxCorpId, @Param("followIds") List<String> service_follow_ids);
 
-	List<CorpUserFollowRelationDto> selectCorpUserNotUnderTagIds(@Param("list") List<String> tagIds, @Param("wxCorpId") Long wxCorpId, @Param("followIds") List<String> followIds, @Param("userScope") Integer userScope, @Param("consumerScope") Integer consumerScope);
+	List<CorpUserFollowRelationDto> selectCorpUserNotUnderTagIds(@Param("list") List<String> tagIds, @Param("wxCorpId") Long wxCorpId, @Param("followIds") List<String> followIds, @Param("userScope") Integer userScope, @Param("consumerScope") Integer consumerScope, @Param("joinStartTime") Date joinStartTime, @Param("joinEndTime") Date joinEndTime);
 }

+ 5 - 0
netflix-dao/src/main/java/com/cyksj/mapper/corp/CorpUserTagMapper.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.cyksj.model.entity.CorpUserTag;
 import com.cyksj.model.excel.CorpUserTagExcelData;
 import com.cyksj.model.views.CorpUserView;
+import com.cyksj.model.views.UserOrderDetailView;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -18,4 +19,8 @@ public interface CorpUserTagMapper extends BaseMapper<CorpUserTag> {
 	Page<CorpUserView> selectCorpUserDetailByCondition(@Param("page") Page<CorpUserView> page, @Param("groupId") String groupId, @Param("tagId") String tagId, @Param("wxCorpId") Long wxCorpId);
 
 	List<CorpUserTagExcelData> exportUserTagDetail(@Param("tagIds") String[] tagIds, @Param("groupIds") String[] groupIds, @Param("wxCorpId") Long wxCorpId);
+
+	UserOrderDetailView countTagUser(@Param("tagIdStr") String tagIdStr, @Param("startTime") String startTime, @Param("endTime") String endTime);
+
+	List<Long> getTagIdByCorpUserId(Long corpUserId);
 }

+ 11 - 0
netflix-dao/src/main/java/com/cyksj/mapper/corp/QyMsgContentMapper.java

@@ -0,0 +1,11 @@
+package com.cyksj.mapper.corp;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.cyksj.model.entity.QyMsgContent;
+
+/**
+ * @author chan
+ * @date 2024/1/22 15:07
+ */
+public interface QyMsgContentMapper extends BaseMapper<QyMsgContent> {
+}

+ 13 - 0
netflix-dao/src/main/java/com/cyksj/mapper/manage/distribute/UserDistributeSharedWhiteMapper.java

@@ -0,0 +1,13 @@
+package com.cyksj.mapper.manage.distribute;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.cyksj.model.entity.UserDistributeSharedWhite;
+
+/**
+ * 项目名: yhlxj2
+ * 文件名: UserDistributeSharedWhiteMapper
+ * 创建者: JavaZou
+ * 创建时间:2024/1/8 10:29
+ */
+public interface UserDistributeSharedWhiteMapper extends BaseMapper<UserDistributeSharedWhite> {
+}

+ 6 - 1
netflix-dao/src/main/java/com/cyksj/mapper/manage/statistics/StatisticsExportMapper.java

@@ -1,6 +1,7 @@
 package com.cyksj.mapper.manage.statistics;
 
 import cn.hutool.core.date.DateTime;
+import com.cyksj.model.dto.MonthlyUserOrderDetailDto;
 import com.cyksj.model.dto.NatureOrderDataDto;
 import com.cyksj.model.excel.statistics.ExcelAppleOneData;
 import org.apache.ibatis.annotations.Param;
@@ -60,7 +61,7 @@ public interface StatisticsExportMapper{
 
 	BigDecimal getMonthAmountOfOrderByType(@Param("type") Integer type, @Param("startDate") String startDate, @Param("endDate") String endDate);
 
-	BigDecimal getMonthGoodsTypeAmountOfOrderByType(@Param("type") Integer type, @Param("goodsType") Integer goodsType, @Param("category") Long category, @Param("startDate") String startDate, @Param("endDate") String endDate);
+	BigDecimal getMonthGoodsTypeAmountOfOrderByType(@Param("type") Integer type, @Param("goodsType") Integer goodsType, @Param("category") Long category, @Param("startDate") String startDate, @Param("endDate") String endDate, @Param("isBind") Boolean isBind);
 
 	Integer getMonthUserSourceNumOrderByType(@Param("type") Integer type, @Param("startDate") String startDate, @Param("endDate") String endDate);
 
@@ -71,4 +72,8 @@ public interface StatisticsExportMapper{
 	Map<String, BigDecimal> getTransferData(@Param("startDate") String startDate, @Param("endDate") String endDate);
 
 	List<NatureOrderDataDto> getGroupsOrderData(@Param("startDate") String startDate, @Param("endDate") String endDate);
+
+	List<MonthlyUserOrderDetailDto> getMonthlyUserOrderDetail(@Param("thisMonth") DateTime thisMonth, @Param("nextMonth") DateTime nextMonth);
+
+	Map<String, Long> getEpOrderNumsGroupSource(@Param("startDate") String startDate, @Param("endDate") String endDate);
 }

+ 6 - 1
netflix-dao/src/main/java/com/cyksj/model/dto/CorpFollowActiveCodeDto.java

@@ -15,10 +15,15 @@ import lombok.Setter;
 public class CorpFollowActiveCodeDto {
 
 	/**
-	 * 企业微信的客服id 数组
+	 * 客服id 数组
 	 */
 	private String followIds;
 
+	/**
+	 * 最新 值班客服id
+	 */
+	private String userIndxList;
+
 	/**
 	 * 对应系统配置的客服
 	 */

+ 22 - 0
netflix-dao/src/main/java/com/cyksj/model/dto/MonthlyUserOrderDetailDto.java

@@ -0,0 +1,22 @@
+package com.cyksj.model.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+
+/**
+ * 项目名: yhlxj2
+ * 文件名: MonthlyUserOrderDetailDto
+ * 创建者: JavaZou
+ * 创建时间:2024/1/3 16:38
+ */
+@Getter
+@Setter
+public class MonthlyUserOrderDetailDto {
+	private Integer type;
+
+	private Integer orders;
+
+	private BigDecimal money;
+}

+ 22 - 0
netflix-dao/src/main/java/com/cyksj/model/dto/SysServiceChangeDto.java

@@ -0,0 +1,22 @@
+package com.cyksj.model.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * 项目名: yhlxj2
+ * 文件名: SysServiceChangeDto
+ * 创建者: JavaZou
+ * 创建时间:2024/1/11 16:47
+ */
+@Getter
+@Setter
+public class SysServiceChangeDto {
+	private Boolean changeCsImg = false;
+
+	private Boolean changeCsName = false;
+
+	private List<Integer> updateFollowIndxs;
+}

+ 20 - 0
netflix-dao/src/main/java/com/cyksj/model/dto/UserWxIndentDto.java

@@ -0,0 +1,20 @@
+package com.cyksj.model.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 项目名: yhlxj2
+ * 文件名: UserWxIndentDto
+ * 创建者: JavaZou
+ * 创建时间:2024/2/21 16:00
+ */
+@Getter
+@Setter
+public class UserWxIndentDto {
+	private Long userId;
+
+	private String redirectUrl;
+
+	private String bizToken;
+}

+ 55 - 0
netflix-dao/src/main/java/com/cyksj/model/dto/YhServiceChangeDto.java

@@ -0,0 +1,55 @@
+package com.cyksj.model.dto;
+
+import cn.hutool.core.util.StrUtil;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 项目名: yhlxj2
+ * 文件名: YhServiceChangeDto
+ * 创建者: JavaZou
+ * 创建时间:2024/1/8 17:52
+ */
+@Getter
+@Setter
+public class YhServiceChangeDto {
+	private List<String> beforeSelect;
+
+	private List<String> afterSelect;
+
+	private String sign;
+
+	private Integer index;
+
+	private String date;
+
+	private String workType;
+
+	public String toChangeString() {
+		StringBuilder sb = new StringBuilder();
+		if (StrUtil.equals(sign, "workday")) {
+			sb.append("工作日").append(index == 1 ? "早班" : "晚班");
+		} else if (StrUtil.equals(sign, "Saturday")) {
+			sb.append("周六").append(index == 3 ? "早班" : "晚班");
+		} else if (StrUtil.equals(sign, "Sunday")) {
+			sb.append("周日").append(index == 5 ? "早班" : "晚班");
+		} else {
+			sb.append("节假日").append(date).append(workType);
+		}
+		if (beforeSelect.size() > 0) {
+			sb.append(" - 移除 - ");
+			String beforeCollect = beforeSelect.stream().collect(Collectors.joining("、"));
+			sb.append(beforeCollect);
+		}
+
+		if (afterSelect.size() > 0) {
+			sb.append(" - 增加 - ");
+			String afterCollect = afterSelect.stream().collect(Collectors.joining("、"));
+			sb.append(afterCollect);
+		}
+		return sb.toString();
+	}
+}

+ 2 - 0
netflix-dao/src/main/java/com/cyksj/model/dto/YhServiceDto.java

@@ -39,6 +39,8 @@ public class YhServiceDto {
 
 	private String date;
 
+	private String workType;
+
 
 	@Getter
 	@Setter

+ 24 - 0
netflix-dao/src/main/java/com/cyksj/model/dto/YhServiceNameDto.java

@@ -0,0 +1,24 @@
+package com.cyksj.model.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 项目名: yhlxj2
+ * 文件名: YhServiceNameDto
+ * 创建者: JavaZou
+ * 创建时间:2024/1/11 15:45
+ */
+@Getter
+@Setter
+public class YhServiceNameDto {
+	private String name;
+
+	private String img;
+
+	private Integer indx;
+
+	private String url;
+
+	private String followId;
+}

+ 50 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/AccountBlockedReplaceRecord.java

@@ -0,0 +1,50 @@
+package com.cyksj.model.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.SearchBean;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/**
+ * 项目名: netflix-job
+ * 文件名: AccountBlockedReplaceRecord
+ * 创建者: JavaZou
+ * 创建时间:2024/1/16 16:37
+ */
+@Getter
+@Setter
+@SearchBean(tables = "account_blocked_replace_record ar left join goods_don g on g.id = ar.goods_id")
+public class AccountBlockedReplaceRecord {
+
+
+	@DbField("ar.id")
+	private Long id;
+
+	@DbField("ar.account")
+	private String account;
+
+	@DbField("ar.goods_id")
+	private Long goodsId;
+
+	@DbField("a.title")
+	@TableField(exist = false)
+	private String title;
+
+	/**
+	 * 创建时间
+	 */
+	@TableField(fill = FieldFill.INSERT)
+	@DbField("ar.created_time")
+	private Date createdTime;
+
+	/**
+	 * 修改时间
+	 */
+	@TableField(fill = FieldFill.INSERT_UPDATE)
+	@DbField("ar.update_time")
+	private Date updateTime;
+}

+ 6 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/ChannelPopularize.java

@@ -60,6 +60,12 @@ public class ChannelPopularize extends BaseEntity{
     @JsonIgnore
     private String couponIds;
 
+    /**
+     * 回传过滤平台
+     */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
+    private String filterGoodsIds;
+
     @DbIgnore
     @TableField(exist = false)
     private List<CouponTfPopularizeView> coupons;

+ 1 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/CorpFollow.java

@@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonInclude;
 import lombok.Data;
 
 import java.io.Serializable;
+import java.util.List;
 
 /**
  * @author chan

+ 1 - 1
netflix-dao/src/main/java/com/cyksj/model/entity/CorpFollowActiveCode.java

@@ -27,7 +27,7 @@ public class CorpFollowActiveCode extends BaseEntity{
 	@TableField(exist = false)
 	@DbIgnore
 	@NotNull(message = "请选择对应客服")
-	private List<String> followIds;
+	private List<Integer> userIndxList;
 
 	/**
 	 * 客服

+ 13 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/CorpMsgBulkTask.java

@@ -148,6 +148,19 @@ public class CorpMsgBulkTask implements Serializable {
 	 */
 	private Integer consumerScope;
 
+
+	/**
+	 * 用户添加客服起始时间
+	 */
+	@TableField(updateStrategy = FieldStrategy.IGNORED)
+	private Date joinStartTime;
+
+	/**
+	 * 用户添加客服结束时间
+	 */
+	@TableField(updateStrategy = FieldStrategy.IGNORED)
+	private Date joinEndTime;
+
 	private Boolean deleted;
 
 	/**

+ 23 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/CorpMsgFollowAssociation.java

@@ -0,0 +1,23 @@
+package com.cyksj.model.entity;
+
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.SearchBean;
+import lombok.Data;
+
+/**
+ * @author chan
+ * @date 2024/1/18 14:00
+ */
+@Data
+@SearchBean(tables = " corp_follow cf,corp_msg_follow_association ca ", where = "cf.userid = ca.follow_id")
+public class CorpMsgFollowAssociation extends BaseEntity{
+
+    @DbField("cf.userid")
+    private String followId;
+
+    @DbField("ca.association_follow_id")
+    private String associationFollowId;
+
+    @DbField("cf.name")
+    private String nickname;
+}

+ 6 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/CorpUserFollowRelation.java

@@ -1,5 +1,6 @@
 package com.cyksj.model.entity;
 
+import com.ejlchina.searcher.bean.DbField;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.Getter;
@@ -74,6 +75,11 @@ public class CorpUserFollowRelation extends BaseEntity implements Serializable {
 	 */
 	private String delUserid;
 
+	/**
+	 * 会话存档同意情况 同意:"Agree",不同意:"Disagree"
+	 */
+	private String agreeStatus;
+
 	@AllArgsConstructor
 	@Getter
 	public enum Way {

+ 47 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/EquipmentActivityReduce.java

@@ -0,0 +1,47 @@
+package com.cyksj.model.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 项目名: yhlxj2
+ * 文件名: EquipmentActivityReduce
+ * 创建者: JavaZou
+ * 创建时间:2024/1/30 10:57
+ */
+@Getter
+@Setter
+public class EquipmentActivityReduce extends BaseEntity{
+
+	private String name;
+
+	/**
+	 * 满500满减多少
+	 */
+	private BigDecimal f;
+
+	/**
+	 * 满1000满减多少
+	 */
+	private BigDecimal q;
+
+	/**
+	 * 满2000满减多少
+	 */
+	private BigDecimal tq;
+
+	/**
+	 * 活动开始时间
+	 */
+	private Date st;
+
+	/**
+	 * 活动结束时间
+	 */
+	private Date et;
+
+	private Boolean deleted;
+}

+ 5 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/GoodsDon.java

@@ -209,6 +209,11 @@ public class GoodsDon extends BaseEntity {
      */
     private Boolean isSp;
 
+    /**
+     * 是否有专属用户规格属性
+     */
+    private Boolean isOwns;
+
     /**
      * 是否参与分销 默认参与
      */

+ 14 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/GoodsDonSku.java

@@ -2,6 +2,7 @@ package com.cyksj.model.entity;
 
 import com.baomidou.mybatisplus.annotation.FieldStrategy;
 import com.baomidou.mybatisplus.annotation.TableField;
+import com.cyksj.model.views.DistributeSearchView;
 import com.cyksj.model.views.GoodsDiscountPlusPurchaseRelationFrontView;
 import com.ejlchina.searcher.bean.DbField;
 import com.ejlchina.searcher.bean.DbIgnore;
@@ -107,6 +108,19 @@ public class GoodsDonSku extends BaseEntity {
      */
     private BigDecimal price;
 
+    /**
+     * 专属用户规格
+     */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
+    private String userOwns;
+
+    /**
+     * 专属用户列表
+     */
+    @DbIgnore
+    @TableField(exist = false)
+    private List<DistributeSearchView> userOwnsList;
+
     /**
      * 是否开启实物车票时长权益
      */

+ 125 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/QyMsgContent.java

@@ -0,0 +1,125 @@
+package com.cyksj.model.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.SearchBean;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+@SearchBean(tables = "qy_msg_content")
+public class QyMsgContent {
+
+	@TableId(value = "id",type = IdType.AUTO)
+	private Long id;
+	/**
+	 * 消息id,消息的唯一标识,企业可以使用此字段进行消息去重
+	 */
+	private String msgid;
+	/**
+	 * 消息动作,目前有send(发送消息)/recall(撤回消息)/switch(切换企业日志)三种类型
+	 */
+	private String action;
+
+	/**
+	 * 成员id
+	 */
+	@DbField("follow_id")
+	private String followId;
+
+	/**
+	 * 客户id
+	 */
+	@DbField("external_userid")
+	private String externalUserid;
+
+	/**
+	 * 消息发送方id。同一企业内容为userid,非相同企业为external_userid。消息如果是机器人发出,也为external_userid
+	 */
+	@TableField("`from`")
+	@DbField("`from`")
+	private String from;
+
+	private String fromView;
+	/**
+	 * 消息接收方列表,可能是多个,同一个企业内容为userid,非相同企业为external_userid。数组
+	 */
+	private String tolist;
+
+	private String tolistView;
+	/**
+	 * 群聊消息的群id
+	 */
+	private String roomid;
+
+	private String roomidView;
+	/**
+	 * 消息发送时间戳,utc时间,ms单位
+	 */
+	private String msgtime;
+	/**
+	 * 消息类型
+	 */
+	private String msgtype;
+	/**
+	 * 文字
+	 */
+	private String text;
+	/**
+	 * 图片
+	 */
+	private String image;
+	/**
+	 * 小程序
+	 */
+	private String weapp;
+	/**
+	 * 红包消息
+	 */
+	private String redpacket;
+	/**
+	 * 文件
+	 */
+	private String file;
+	/**
+	 * 视频
+	 */
+	private String video;
+	/**
+	 * 语音
+	 */
+	private String voice;
+	/**
+	 * 多条聊天记录
+	 */
+	private String chatrecord;
+	/**
+	 * 文件名称
+	 */
+	private String filename;
+	/**
+	 * 撤回
+	 */
+	@TableField("`revoke`")
+	@DbField("`revoke`")
+	private String revoke;
+	/**
+	 * 表情包
+	 */
+	private String emotion;
+	/**
+	 * 卡片消息
+	 */
+	private String card;
+	/**
+	 * 文件URL
+	 */
+	private String url;
+
+}

+ 2 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/RefundOrderDon.java

@@ -58,4 +58,6 @@ public class RefundOrderDon extends BaseEntity{
 	 * 默认false
 	 */
 	private Boolean isClearBalance;
+
+	private String operator;
 }

+ 2 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/SysConfigChangeRecord.java

@@ -19,4 +19,6 @@ public class SysConfigChangeRecord extends BaseEntity{
 	private String backValue;
 
 	private String operator;
+
+	private String changeStr;
 }

+ 6 - 2
netflix-dao/src/main/java/com/cyksj/model/entity/ChatGptPwdViewRecord.java → netflix-dao/src/main/java/com/cyksj/model/entity/TicketPwdViewRecord.java

@@ -5,17 +5,21 @@ import lombok.Setter;
 
 /*
  *项目名: netflix
- *文件名: ChatGptPwdViewRecord
+ *文件名: TicketPwdViewRecord
  *创建者: JavaZou
  *创建时间:2023/5/17 16:07
  */
 @Getter
 @Setter
-public class ChatGptPwdViewRecord extends BaseEntity{
+public class TicketPwdViewRecord extends BaseEntity{
 	private Long userId;
 
 	private Long relationId;
 
+	private String account;
+
+	private String password;
+
 	private Long skuId;
 
 	private String operateLocation;

+ 28 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/UserCertRecord.java

@@ -0,0 +1,28 @@
+package com.cyksj.model.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 项目名: yhlxj2
+ * 文件名: UserCert
+ * 创建者: JavaZou
+ * 创建时间:2024/2/21 10:00
+ */
+@Getter
+@Setter
+public class UserCertRecord extends BaseEntity{
+	private Long userId;
+
+	private String name;
+
+	private String sex;
+
+	private String ident;
+
+	private String front;
+
+	private String reverse;
+
+	private String addr;
+}

+ 50 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/UserDistributeSharedWhite.java

@@ -0,0 +1,50 @@
+package com.cyksj.model.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.SearchBean;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/**
+ * 项目名: yhlxj2
+ * 文件名: UserDistributeSharedWhite
+ * 创建者: JavaZou
+ * 创建时间:2024/1/8 10:28
+ */
+@Getter
+@Setter
+@SearchBean(tables = "user_distribute_shared_white uw left join user u on u.id = uw.user_id")
+public class UserDistributeSharedWhite {
+
+	@TableId(value = "id",type = IdType.AUTO)
+	@DbField("uw.id")
+	private Long id;
+
+	@DbField("uw.user_id")
+	private Long userId;
+
+	@DbField("u.nickname")
+	@TableField(exist = false)
+	private String nickname;
+
+	/**
+	 * 创建时间
+	 */
+
+	@TableField(fill = FieldFill.INSERT)
+	@DbField("uw.created_time")
+	private Date createdTime;
+
+	/**
+	 * 修改时间
+	 */
+	@TableField(fill = FieldFill.INSERT_UPDATE)
+	@DbField("uw.update_time")
+	private Date updateTime;
+}

+ 22 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/UserDoubleVerifyCodeChangeRecord.java

@@ -0,0 +1,22 @@
+package com.cyksj.model.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 项目名: yhlxj2
+ * 文件名: UserDoubleVerifyCodeChangeRecord
+ * 创建者: JavaZou
+ * 创建时间:2024/1/8 16:46
+ */
+@Getter
+@Setter
+public class UserDoubleVerifyCodeChangeRecord extends BaseEntity{
+	private Long userId;
+
+	private Integer oldVerifyCheckNum;
+
+	private Integer verifyCheckNum;
+
+	private String operator;
+}

+ 3 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/WxCorpApp.java

@@ -30,6 +30,9 @@ public class WxCorpApp {
     @TableField(value = "corpSecret")
     private String corpSecret;
 
+    @TableField(value = "msgSecret")
+    private String msgSecret;
+
     private String token;
 
     @TableField(value = "encodingAESKey")

+ 14 - 0
netflix-dao/src/main/java/com/cyksj/model/excel/ExcelMonthOrderData.java

@@ -5,6 +5,8 @@ import lombok.Getter;
 import lombok.Setter;
 import lombok.experimental.Accessors;
 
+import java.math.BigDecimal;
+
 /*
  *项目名: netflix
  *文件名: ExcelMonthOrderData
@@ -69,6 +71,18 @@ public class ExcelMonthOrderData {
 	@ExcelProperty({"品类数据类", "AI类复购数据", "C.A用户中购买第二单流媒体产品的用户数"})
 	private Integer monthAiNewPayStreamingNumOfUser;
 
+	@ExcelProperty({"用户维度", "当月新用户", "订单量"})
+	private Integer monthlyNewUserOrders;
+
+	@ExcelProperty({"用户维度", "当月新用户", "金额"})
+	private BigDecimal monthlyNewUserOrdersMoney;
+
+	@ExcelProperty({"用户维度", "当月之前老用户", "订单量"})
+	private Integer monthlyBeforeUserOrders;
+
+	@ExcelProperty({"用户维度", "当月之前老用户", "金额"})
+	private BigDecimal monthlyBeforeUserOrdersMoney;
+
 //	@ExcelProperty({"历史复购","有奈飞车票的人数"})
 //	private Integer nfTicketNumOfUser;
 //

+ 6 - 0
netflix-dao/src/main/java/com/cyksj/model/excel/ExcelMonthlyDistributeOrderData.java

@@ -63,6 +63,9 @@ public class ExcelMonthlyDistributeOrderData {
 	@ExcelProperty({"下单率","自然流量渠道","自然渠道下单人数"})
 	private Integer natureUserSourceOrderNum;
 
+	@ExcelProperty({"下单率","自然流量渠道","自然渠道设备下单数"})
+	private Integer natureUserSourceEpOrderNum;
+
 	@ExcelProperty({"下单率","自然流量渠道","下单率"})
 	private String natureUserSourceOrderRate;
 
@@ -72,6 +75,9 @@ public class ExcelMonthlyDistributeOrderData {
 	@ExcelProperty({"下单率","分销渠道","分销渠道下单人数"})
 	private Integer channelUserSourceOrderNum;
 
+	@ExcelProperty({"下单率","分销渠道","分销渠道设备下单数"})
+	private Integer channelUserSourceEpOrderNum;
+
 	@ExcelProperty({"下单率","分销渠道","下单率"})
 	private String channelUserSourceOrderRate;
 }

+ 14 - 45
netflix-dao/src/main/java/com/cyksj/model/excel/ExcelRealGoodsOrderData.java

@@ -4,11 +4,11 @@ import com.alibaba.excel.annotation.ExcelIgnore;
 import com.alibaba.excel.annotation.ExcelProperty;
 import com.cyksj.model.entity.OrderDon;
 import com.ejlchina.searcher.bean.DbField;
-import com.ejlchina.searcher.bean.DbIgnore;
 import com.ejlchina.searcher.bean.SearchBean;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.math.BigDecimal;
 import java.util.Date;
 
 /*
@@ -99,57 +99,32 @@ public class ExcelRealGoodsOrderData {
 	/**
 	 * 收货人
 	 */
-	@ExcelProperty("序号")
-	@DbIgnore
-	private Integer index;
-
-	/**
-	 * 收货人
-	 */
-	@ExcelProperty("姓名")
+	@ExcelProperty("*收件人姓名")
 	@DbField("odt.receiver")
 	private String receiver;
 
 	/**
 	 * 手机号
 	 */
-	@ExcelProperty("手机号码")
+	@ExcelProperty("*收件人电话")
 	@DbField("odt.phone")
 	private String phone;
 
-	@ExcelProperty("座机号")
-	private String landLine;
-
-	@ExcelProperty("公司名称")
-	private String company;
-
 	/**
 	 * 省份
 	 */
-	@ExcelProperty("")
-	@DbField("odt.province")
-	private String province;
+	@ExcelProperty("*收件人地址")
+	@DbField("concat(odt.province,odt.city,odt.district,odt.address)")
+	private String address;
 
-	/**
-	 * 城市
-	 */
-	@ExcelProperty("市")
-	@DbField("odt.city")
-	private String city;
+	@ExcelProperty("公司名称")
+	private String company;
 
-	/**
-	 * 区/县
-	 */
-	@ExcelProperty("区")
-	@DbField("odt.district")
-	private String district;
+	@ExcelProperty("物品名称")
+	private String realGoodName;
 
-	/**
-	 * 详细地址
-	 */
-	@ExcelProperty("详细地址")
-	@DbField("odt.address")
-	private String address;
+	@ExcelProperty("重量(kg)")
+	private BigDecimal weight;
 
 	@ExcelProperty("付款方式")
 	private String payType;
@@ -157,18 +132,12 @@ public class ExcelRealGoodsOrderData {
 	@ExcelProperty("月结卡号")
 	private String monthCardNo;
 
-	@ExcelProperty("托寄物名称")
-	private String realGoodName;
-
-	@ExcelProperty("代收卡号(可选增加服务)")
+	@ExcelProperty("代收卡号")
 	private String toMoneyCardNumber;
 
-	@ExcelProperty("代收金额(可选增值服务)")
+	@ExcelProperty("代收金额")
 	private String toMoney;
 
-	@ExcelProperty("收件统编")
-	private String deliveryNumber;
-
 	@ExcelProperty("备注")
 	private String remark;
 }

+ 6 - 1
netflix-dao/src/main/java/com/cyksj/model/manage/request/ReqGoodsSkuInsert.java

@@ -66,6 +66,11 @@ public class ReqGoodsSkuInsert {
 
         private BigDecimal price;
 
+        /**
+         * 专属用户规格
+         */
+        private String userOwns;
+
         /**
          * 数量
          */
@@ -104,7 +109,7 @@ public class ReqGoodsSkuInsert {
         /**
          * 特定价格
          */
-        private String specificPrice;
+        private BigDecimal specificPrice;
 
         /**
          * 特定平台购买用户人群

+ 8 - 0
netflix-dao/src/main/java/com/cyksj/model/manage/request/ReqGoodsSkuSpec.java

@@ -30,8 +30,16 @@ public class ReqGoodsSkuSpec {
 
         private BigDecimal price;
 
+        /**
+         * 预览图
+         */
+        private String previewImgs;
+
         private String benefitsList;
 
+        /**
+         * 原价
+         */
         private BigDecimal benefitsPrice;
     }
 }

+ 71 - 0
netflix-dao/src/main/java/com/cyksj/model/manage/views/CorpFollowMsgView.java

@@ -0,0 +1,71 @@
+package com.cyksj.model.manage.views;
+
+import com.ejlchina.searcher.SearchResult;
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.DbIgnore;
+import com.ejlchina.searcher.bean.SearchBean;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 会话聊天框列表
+ * @author chan
+ * @date 2024/1/22 17:16
+ */
+@Data
+@SearchBean(tables = "(SELECT external_userid userid, q.follow_id follow_id, MAX(id) msgId " +
+        "FROM qy_msg_content q " +
+        " :keyword: " +
+        "GROUP BY q.external_userid , q.follow_id " +
+        "ORDER BY MAX(q.id) desc limit 1) t " +
+        "LEFT JOIN qy_msg_content qm on qm.id = t.msgId " +
+        "LEFT JOIN corp_user_auth cu on cu.external_userid = t.userid " +
+        "LEFT JOIN corp_user c on c.id = cu.corp_user_id "
+)
+public class CorpFollowMsgView {
+
+    /**
+     * 用户名称
+     */
+    @DbField("c.name")
+    private String name;
+
+    /**
+     * 用户头像
+     */
+    @DbField("c.avatar")
+    private String avatar;
+
+    /**
+     * 成员id
+     */
+    @DbField("t.follow_id")
+    private String followId;
+
+    /**
+     * 用户id
+     */
+    @DbField("t.userid")
+    private String userid;
+
+    /**
+     * 最近消息文本内容
+     */
+    @DbField("qm.text")
+    private String msgText;
+
+    /**
+     * 最近消息类型
+     */
+    @DbField("qm.msgtype")
+    private String msgType;
+
+    /**
+     * 最近消息时间
+     */
+    @DbField("qm.msgtime")
+    private String msgtime;
+
+
+}

+ 74 - 0
netflix-dao/src/main/java/com/cyksj/model/manage/views/CorpMsgAuditUserView.java

@@ -0,0 +1,74 @@
+package com.cyksj.model.manage.views;
+
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.SearchBean;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author chan
+ * @date 2024/1/22 14:41
+ */
+
+@Data
+@SearchBean(tables = " corp_user c,corp_user_auth cu, corp_follow f, corp_user_follow_relation cr :tagTable:",
+        where = " c.id = cu.corp_user_id " +
+                "and cu.external_userid = cr.corp_user_id " +
+                "and f.userid = cr.follow_id " +
+                ":tag:",
+        groupBy = "c.name,cu.external_userid,c.avatar,c.type,c.gender,f.name,f.userid,cr.agree_status,cr.add_created_time"
+)
+public class CorpMsgAuditUserView {
+
+    /**
+     * 外部联系人的名称
+     */
+    @DbField("c.name")
+    private String name;
+
+    @DbField("cu.external_userid")
+    private String externalUserid;
+
+    /**
+     * 外部联系人头像,代开发自建应用需要管理员授权才可以获取,第三方不可获取,上游企业不可获取下游企业客户该字段
+     */
+    @DbField("c.avatar")
+    private String avatar;
+
+    /**
+     * 外部联系人的类型,1表示该外部联系人是微信用户,2表示该外部联系人是企业微信用户
+     */
+    @DbField("c.type")
+    private Integer type;
+
+    /**
+     * 外部联系人性别 0-未知 1-男性 2-女性。第三方不可获取,上游企业不可获取下游企业客户该字段,返回值为0,表示未定义
+     */
+    @DbField("c.gender")
+    private Integer gender;
+
+    /**
+     * 成员名称
+     */
+    @DbField("f.name")
+    private String followName;
+
+    /**
+     * 成员userid
+     */
+    @DbField("f.userid")
+    private String followId;
+
+    /**
+     * 会话存档同意情况 同意:"Agree",不同意:"Disagree"
+     */
+    @DbField("cr.agree_status")
+    private String agreeStatus;
+
+    /**
+     * 添加时间
+     */
+    @DbField("cr.add_created_time")
+    private Date addCreatedTime;
+}

+ 51 - 0
netflix-dao/src/main/java/com/cyksj/model/manage/views/CorpMsgFollowAssociationView.java

@@ -0,0 +1,51 @@
+package com.cyksj.model.manage.views;
+
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.DbIgnore;
+import com.ejlchina.searcher.bean.SearchBean;
+import lombok.Data;
+import org.aspectj.weaver.ast.Or;
+
+import java.util.List;
+
+/**
+ * @author chan
+ * @date 2024/1/18 14:50
+ */
+@Data
+@SearchBean(tables = " corp_follow c")
+public class CorpMsgFollowAssociationView {
+
+    @DbField("c.wx_corp_id")
+    private Long wxCorpId;
+
+    /**
+     * 成员UserID
+     */
+    @DbField("c.userid")
+    private String userid;
+
+    /**
+     * 成员名称
+     */
+    @DbField("c.name")
+    private String name;
+
+    /**
+     * 头像地址
+     */
+    @DbField("c.avatar")
+    private String avatar;
+
+    /**
+     * 头像缩略图
+     */
+    @DbField("c.thumb_avatar")
+    private String thumbAvatar;
+
+    /**
+     * 关联关系
+     */
+    @DbIgnore
+    private List<CorpMsgFollowAssociationView> associationList;
+}

+ 55 - 0
netflix-dao/src/main/java/com/cyksj/model/manage/views/CorpQyMsgAuditChatView.java

@@ -0,0 +1,55 @@
+package com.cyksj.model.manage.views;
+
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.SearchBean;
+import lombok.Data;
+
+/**
+ * 企微工具会话列表
+ * @author chan
+ * @date 2024/1/24 13:43
+ */
+@SearchBean(tables = " qy_msg_content q, " +
+        " corp_user c, " +
+        " corp_user_auth cu, " +
+        " corp_follow cf ",
+        where = "q.external_userid = cu.external_userid " +
+                " AND cu.corp_user_id = c.id  " +
+                " AND q.follow_id = cf.userid ",
+        groupBy = "c.name,c.avatar,cu.external_userid ,cf.name,cf.userid,cf.avatar "
+)
+@Data
+public class CorpQyMsgAuditChatView {
+    /**
+     * 外部联系人的名称
+     */
+    @DbField("c.name")
+    private String name;
+
+    /**
+     * 外部联系人头像,代开发自建应用需要管理员授权才可以获取,第三方不可获取,上游企业不可获取下游企业客户该字段
+     */
+    @DbField("c.avatar")
+    private String avatar;
+
+    @DbField("cu.external_userid")
+    private String externalUserid;
+
+    /**
+     * 成员名称
+     */
+    @DbField("cf.name")
+    private String followName;
+
+    /**
+     * 成员userid
+     */
+    @DbField("cf.userid")
+    private String followId;
+
+    /**
+     * 成员头像
+     */
+    @DbField("cf.avatar")
+    private String followAvatar;
+}

+ 80 - 0
netflix-dao/src/main/java/com/cyksj/model/manage/views/CorpUserView.java

@@ -0,0 +1,80 @@
+package com.cyksj.model.manage.views;
+
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.SearchBean;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author chan
+ * @date 2024/1/19 10:43
+ */
+@Data
+@SearchBean(tables = " corp_user c, corp_user_auth cu ,corp_user_follow_relation cr, corp_user_tag t ",
+        where = "cu.corp_user_id = c.id " +
+                "and cu.external_userid = cr.corp_user_id " +
+                "and cr.id = t.relation_id ",
+        groupBy = "c.name, c.avatar, c.type, c.gender, c.unionid, c.user_id, c.state, c.mark_info, c.created_time"
+)
+public class CorpUserView {
+
+    /**
+     * 外部联系人的名称
+     */
+    @DbField("c.name")
+    private String name;
+
+    /**
+     * 外部联系人头像,代开发自建应用需要管理员授权才可以获取,第三方不可获取,上游企业不可获取下游企业客户该字段
+     */
+    @DbField("c.name")
+    private String avatar;
+
+    /**
+     * 外部联系人的类型,1表示该外部联系人是微信用户,2表示该外部联系人是企业微信用户
+     */
+    @DbField("c.type")
+    private Integer type;
+
+    /**
+     * 外部联系人性别 0-未知 1-男性 2-女性。第三方不可获取,上游企业不可获取下游企业客户该字段,返回值为0,表示未定义
+     */
+    @DbField("c.gender")
+    private Integer gender;
+
+    /**
+     * 外部联系人在微信开放平台的唯一身份标识(微信unionid),通过此字段企业可将外部联系人与公众号/小程序用户关联起来。仅当联系人类型是微信用户,且企业绑定了微信开发者ID有此字段。
+     */
+    @DbField("c.unionid")
+    private String unionid;
+
+    /**
+     * user表 关联用户id
+     */
+    @DbField("c.user_id")
+    private Long userId;
+
+    /**
+     * 添加渠道来源
+     */
+    @DbField("c.state")
+    private String state;
+
+    /**
+     * 客服标记内容
+     */
+    @DbField("c.mark_info")
+    private String markInfo;
+
+    @DbField("c.created_time")
+    private Date createdTime;
+
+
+    /**
+     * 标签组
+     */
+    @DbField("group_concat(t.tag_name)")
+    private List<String> tags;
+}

+ 3 - 0
netflix-dao/src/main/java/com/cyksj/model/manage/views/GroupsRelationView.java

@@ -50,6 +50,9 @@ public class GroupsRelationView {
     @DbField("if(a.api_secret='',false,true)")
     private Boolean isVerify;
 
+    @DbField("gr.verify_code")
+    private String verifyCode;
+
     @DbField("g.id")
     private Long goodsId;
 

+ 28 - 13
netflix-dao/src/main/java/com/cyksj/model/manage/views/OrderDonBackView.java

@@ -23,9 +23,9 @@ import java.util.List;
  */
 @Getter
 @Setter
-@SearchBean(tables = "order_don o left join goods_don g on g.id = o.goods_id " +
-		"left join user u on o.user_id = u.id " +
-		"left join order_don_transport odt on odt.order_id = o.id ",
+@SearchBean(tables = "order_don o left join goods_don g on g.id = o.goods_id" +
+		" left join order_don_transport odt on odt.order_id = o.id" +
+		" left join goods_don_sku sku on sku.id = o.sku_id",
 		where = ":condition:"
 )
 public class OrderDonBackView {
@@ -86,33 +86,33 @@ public class OrderDonBackView {
 	@DbField("o.goods_id")
 	private Long goodsId;
 
-	@DbIgnore
+	@DbField("sku.spec_val")
 	private String specVal;
 
+	@DbField("sku.is_benefits")
+	private Boolean isBenefits;
+
 	@DbField("o.user_id")
 	private Long userId;
 
-	@DbField("u.nickname")
+	@DbIgnore
 	private String nickname;
 
-	@DbField("case when u.login_phone != '' then 'phone' when u.email != '' then 'email' when u.open_id != '' then 'wechat' else 'wechat' end")
+	@DbIgnore
 	private String register;
 
 	/**
 	 * 登录注册手机号
 	 */
-	@DbField("u.login_phone")
+	@DbIgnore
 	private String loginPhone;
 
 	/**
 	 * 登录注册邮箱
 	 */
-	@DbField("u.email")
+	@DbIgnore
 	private String email;
 
-	@DbField("u.is_google")
-	private Boolean isGoogle;
-
 	@DbField("o.money")
 	private BigDecimal money;
 
@@ -146,10 +146,10 @@ public class OrderDonBackView {
 	@DbField("o.tv_type")
 	private Integer tvType;
 
-	@DbIgnore
+	@DbField("sku.months")
 	private Integer months;
 
-	@DbIgnore
+	@DbField("sku.days")
 	private Integer days;
 
 	@DbField("o.num")
@@ -227,6 +227,21 @@ public class OrderDonBackView {
 	@DbField("o.phone")
 	private String orderPhone;
 
+	@DbField("o.yhs_id")
+	private Long yhsId;
+
+	/**
+	 * 店铺自定义id
+	 */
+	@DbIgnore
+	private String customId;
+
+	/**
+	 * 店铺名
+	 */
+	@DbIgnore
+	private String shopName;
+
 	@DbIgnore
 	private OrderDonWaybill waybill;
 

+ 1 - 1
netflix-dao/src/main/java/com/cyksj/model/manage/views/UserView.java

@@ -15,7 +15,7 @@ import java.util.Date;
  */
 @Getter
 @Setter
-@SearchBean(tables = "user u left join user_distribute_shared us on us.user_id = u.id"
+@SearchBean(tables = " :fu: user u :fu_on: left join user_distribute_shared us on us.user_id = u.id"
 		, where = ":otherConditionSql:")
 public class UserView {
 

+ 5 - 0
netflix-dao/src/main/java/com/cyksj/model/request/OrderPayRequest.java

@@ -155,4 +155,9 @@ public class OrderPayRequest {
     private String ip;
 
     private String location;
+
+    /**
+     * 是否设备满减活动优惠
+     */
+    private Boolean isAcReduce;
 }

+ 4 - 0
netflix-dao/src/main/java/com/cyksj/model/request/OrderRefundReq.java

@@ -39,4 +39,8 @@ public class OrderRefundReq {
 	 * 补差价余额
 	 */
 	private BigDecimal refundBalance;
+
+	private Boolean isOnly;
+
+	private String operator;
 }

+ 20 - 0
netflix-dao/src/main/java/com/cyksj/model/request/UserIndentCertReq.java

@@ -0,0 +1,20 @@
+package com.cyksj.model.request;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 项目名: yhlxj2
+ * 文件名: UserIndentCertReq
+ * 创建者: JavaZou
+ * 创建时间:2024/2/21 11:17
+ */
+@Getter
+@Setter
+public class UserIndentCertReq {
+	private Long userId;
+
+	private String bindState;
+
+	private String redirectUrl;
+}

+ 10 - 0
netflix-dao/src/main/java/com/cyksj/model/response/GptStandbyResp.java

@@ -1,9 +1,12 @@
 package com.cyksj.model.response;
 
 
+import com.cyksj.model.views.RenewalView;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.List;
+
 @Getter
 @Setter
 public class GptStandbyResp {
@@ -13,6 +16,13 @@ public class GptStandbyResp {
      */
     private Boolean isHasAccount;
 
+    /**
+     * 候补车票账号
+     */
+    private List<RenewalView> overTen;
+
+    private List<RenewalView> underTen;
+
     /**
      * 是否申请候补
      */

+ 24 - 0
netflix-dao/src/main/java/com/cyksj/model/response/WxCertAuthTokenResp.java

@@ -0,0 +1,24 @@
+package com.cyksj.model.response;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 项目名: yhlxj2
+ * 文件名: UserCertAuthTokenResp
+ * 创建者: JavaZou
+ * 创建时间:2024/2/21 10:16
+ */
+@Getter
+@Setter
+public class WxCertAuthTokenResp {
+	/**
+	 * 用于发起核身流程的URL,仅微信H5场景使用
+	 */
+	private String Url;
+
+	/**
+	 * 一次核身流程的标识
+	 */
+	private String BizToken;
+}

+ 3 - 0
netflix-dao/src/main/java/com/cyksj/model/views/ChannelPopularizeView.java

@@ -66,6 +66,9 @@ public class ChannelPopularizeView {
     @DbField("cp.is_show_logo")
     private Boolean isShowLogo;
 
+    @DbField("cp.filter_goods_ids")
+    private String filterGoodsIds;
+
     /**
      * 浏览数
      */

+ 1 - 1
netflix-dao/src/main/java/com/cyksj/model/views/CorpFollowActiveCodeView.java

@@ -36,7 +36,7 @@ public class CorpFollowActiveCodeView {
 	private String followStr;
 
 	@DbIgnore
-	private List<String> followIds;
+	private List<Integer> userIndxList;
 
 	/**
 	 * 欢迎语内容 文本、附件

+ 3 - 2
netflix-dao/src/main/java/com/cyksj/model/views/CorpMsgBulkTaskSendRecordView.java

@@ -1,6 +1,7 @@
 package com.cyksj.model.views;
 
 import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.DbIgnore;
 import com.ejlchina.searcher.bean.SearchBean;
 import lombok.Getter;
 import lombok.Setter;
@@ -25,7 +26,7 @@ public class CorpMsgBulkTaskSendRecordView {
 	/**
 	 * 总数
 	 */
-	@DbField("count(cr.id)")
+	@DbIgnore
 	private Integer total;
 
 	/**
@@ -37,7 +38,7 @@ public class CorpMsgBulkTaskSendRecordView {
 	/**
 	 * 未送达
 	 */
-	@DbField("count(if(cr.status != 1,cr.id,null))")
+	@DbIgnore
 	private Integer notSend;
 
 	@DbField("any_value(cmr.created_time)")

+ 37 - 0
netflix-dao/src/main/java/com/cyksj/model/views/CorpTagUserOrderDataView.java

@@ -0,0 +1,37 @@
+package com.cyksj.model.views;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 项目名: yhlxj2
+ * 文件名: CorpTagUserOrderDataView
+ * 创建者: JavaZou
+ * 创建时间:2024/1/11 14:57
+ */
+@Getter
+@Setter
+public class CorpTagUserOrderDataView {
+	private Long orderId;
+
+	private Long userId;
+
+	private String nickname;
+
+	private String orderNo;
+
+	private Long goodsId;
+
+	private String title;
+
+	private Long skuId;
+
+	private String specVal;
+
+	private BigDecimal money;
+
+	private Date createdTime;
+}

+ 18 - 0
netflix-dao/src/main/java/com/cyksj/model/views/DistributeGoodsGeneralRateView.java

@@ -0,0 +1,18 @@
+package com.cyksj.model.views;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 项目名: yhlxj2
+ * 文件名: DistributeGoodsGeneralRateView
+ * 创建者: JavaZou
+ * 创建时间:2024/1/11 14:26
+ */
+@Getter
+@Setter
+public class DistributeGoodsGeneralRateView {
+	private Integer rate;
+
+	private String goodsInfo;
+}

+ 2 - 2
netflix-dao/src/main/java/com/cyksj/model/views/DistributeOrdersDetailView.java

@@ -18,8 +18,8 @@ import java.util.Date;
  */
 @Getter
 @Setter
-@SearchBean(tables = "distribute_waiting_send_points dp left join order_don od on od.id = dp.order_id" +
-		" left join user u on u.id = dp.user_id" +
+@SearchBean(tables = "distribute_waiting_send_points dp inner join order_don od on od.id = dp.order_id" +
+		" inner join user u on u.id = dp.user_id" +
 		" left join goods_don gd on gd.id = od.goods_id")
 public class DistributeOrdersDetailView {
 	@DbField("u.nickname")

+ 1 - 2
netflix-dao/src/main/java/com/cyksj/model/views/DistributePopularizeView.java

@@ -1,6 +1,5 @@
 package com.cyksj.model.views;
 
-import com.cyksj.model.entity.GoodsDon;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -68,5 +67,5 @@ public class DistributePopularizeView {
 	/**
 	 * 普通低分销比例
 	 */
-	private List<GoodsDon> generalDistributes;
+	private List<DistributeGoodsGeneralRateView> generalDistributes;
 }

+ 27 - 0
netflix-dao/src/main/java/com/cyksj/model/views/DistributeSearchView.java

@@ -0,0 +1,27 @@
+package com.cyksj.model.views;
+
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.SearchBean;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 项目名: yhlxj2
+ * 文件名: DistributeSearchView
+ * 创建者: JavaZou
+ * 创建时间:2024/1/2 15:34
+ */
+@Getter
+@Setter
+@SearchBean(tables = "user_distribute ud inner join user u on u.id = ud.user_id and ud.deleted is true")
+public class DistributeSearchView {
+
+	@DbField("ud.id")
+	private Long distributeId;
+
+	@DbField("u.nickname")
+	private String nickname;
+
+	@DbField("ud.user_id")
+	private Long userId;
+}

+ 5 - 0
netflix-dao/src/main/java/com/cyksj/model/views/GoodsDonSkuFrontView.java

@@ -90,6 +90,11 @@ public class GoodsDonSkuFrontView {
 	 */
 	private BigDecimal price;
 
+	/**
+	 * 专属用户规格
+	 */
+	private String userOwns;
+
 	/**
 	 * 月数
 	 */

+ 4 - 0
netflix-dao/src/main/java/com/cyksj/model/views/GoodsFrontListCategoryView.java

@@ -109,6 +109,10 @@ public class GoodsFrontListCategoryView {
 	@DbField("g.is_sp")
 	private Boolean isSp;
 
+
+	@DbField("g.is_owns")
+	private Boolean isOwns;
+
 	@DbField("g.video")
 	private String video;
 

+ 3 - 0
netflix-dao/src/main/java/com/cyksj/model/views/GoodsFrontListView.java

@@ -134,6 +134,9 @@ public class GoodsFrontListView {
 	@DbField("g.is_sp")
 	private Boolean isSp;
 
+	@DbField("g.is_owns")
+	private Boolean isOwns;
+
 	@DbField("g.detail")
 	private String detail;
 

+ 20 - 0
netflix-dao/src/main/java/com/cyksj/model/views/GroupsDataStatisticsView.java

@@ -25,6 +25,11 @@ public class GroupsDataStatisticsView {
 
 	private BigDecimal channelMoney;
 
+	/**
+	 * 解绑渠道销售金额
+	 */
+	private BigDecimal unBindChannelMoney;
+
 	/**
 	 * 个人销售金额
 	 */
@@ -71,4 +76,19 @@ public class GroupsDataStatisticsView {
 	 * 非续费金额
 	 */
 	private BigDecimal newBuyOrderMoney;
+
+	/**
+	 * 解绑渠道流媒体销售金额
+	 */
+	private BigDecimal unBIndGroupsStreamingMoney;
+
+	/**
+	 * 解绑渠道 Ai销售金额
+	 */
+	private BigDecimal unBIndGroupsAiOrderMoney;
+
+	/**
+	 * 解绑渠道 设备销售金额
+	 */
+	private BigDecimal unBIndGroupsEpOrderMoney;
 }

+ 6 - 5
netflix-dao/src/main/java/com/cyksj/model/views/GroupsRelationIndependentView.java

@@ -1,7 +1,6 @@
 package com.cyksj.model.views;
 
 import com.ejlchina.searcher.bean.DbField;
-import com.ejlchina.searcher.bean.DbIgnore;
 import com.ejlchina.searcher.bean.SearchBean;
 import lombok.Getter;
 import lombok.Setter;
@@ -21,7 +20,9 @@ import java.util.Date;
 		" left join groups_relation_independent_renew gnr on gnr.order_id = o.id" +
 		" inner join user u on u.id = gr.user_id" +
 		" left join goods_don_sku sku on sku.id = o.sku_id" +
-		" left join goods_don g on g.id = o.goods_id",
+		" left join goods_don g on g.id = o.goods_id" +
+		" left join groups_trips gt on gt.id = gr.groups_id" +
+		" left join account a on a.id = gt.account_id",
 		where = ":condition:")
 public class GroupsRelationIndependentView {
 	@DbField("gr.id")
@@ -33,10 +34,10 @@ public class GroupsRelationIndependentView {
 	@DbField("o.id")
 	private Long orderId;
 
-	@DbIgnore
+	@DbField("a.account")
 	private String account;
 
-	@DbIgnore
+	@DbField("a.password")
 	private String password;
 
 	@DbField("gr.user_id")
@@ -51,7 +52,7 @@ public class GroupsRelationIndependentView {
 	@DbField("gr.expiry_time")
 	private Date expiryTime;
 
-	@DbIgnore
+	@DbField("a.expiry_time")
 	private Date accountExpiryTime;
 
 	@DbField("ifnull(gnr.is_renew,false)")

+ 3 - 0
netflix-dao/src/main/java/com/cyksj/model/views/HomeManagementFrontView.java

@@ -43,6 +43,9 @@ public class HomeManagementFrontView {
 	@DbField("g.logo")
 	private String logo;
 
+	@DbField("g.is_owns")
+	private Boolean isOwns;
+
 	@DbField("hc.url")
 	private String url;
 

+ 30 - 0
netflix-dao/src/main/java/com/cyksj/model/views/RefundOrderDonServiceDataView.java

@@ -0,0 +1,30 @@
+package com.cyksj.model.views;
+
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.SearchBean;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+
+/**
+ * 项目名: yhlxj2
+ * 文件名: RefundOrderDonServiceDataView
+ * 创建者: JavaZou
+ * 创建时间:2024/1/8 17:03
+ */
+@Getter
+@Setter
+@SearchBean(tables = "refund_order_don rd inner join order_don o on o.id = rd.order_id :time:",
+		where = "rd.refund_method not in ('EX_CODE','balance')",
+		groupBy = "rd.operator")
+public class RefundOrderDonServiceDataView {
+	@DbField("rd.operator")
+	private String operator;
+
+	@DbField("count(distinct rd.order_id)")
+	private Integer orders;
+
+	@DbField("sum(rd.refund_fee)/100")
+	private BigDecimal refundMoney;
+}

+ 7 - 2
netflix-dao/src/main/java/com/cyksj/model/views/RegisterDistributeOrdersDetailView.java

@@ -18,8 +18,7 @@ import java.util.Date;
  */
 @Getter
 @Setter
-@SearchBean(tables = "order_don od left join goods_don gd on gd.id = od.goods_id",
-		where = "od.is_fixed_distribute is true")
+@SearchBean(tables = "order_don od left join goods_don gd on gd.id = od.goods_id")
 public class RegisterDistributeOrdersDetailView {
 
 	@DbField("od.created_time")
@@ -48,4 +47,10 @@ public class RegisterDistributeOrdersDetailView {
 
 	@DbIgnore
 	private String specVal;
+
+	@DbField("od.is_distribute")
+	private Boolean isDistribute;
+
+	@DbField("od.is_fixed_distribute")
+	private Boolean isFixedDistribute;
 }

+ 51 - 0
netflix-dao/src/main/java/com/cyksj/model/views/TicketPwdViewRecordView.java

@@ -0,0 +1,51 @@
+package com.cyksj.model.views;
+
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.SearchBean;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/**
+ * 项目名: yhlxj
+ * 文件名: TicketPwdViewRecordView
+ * 创建者: JavaZou
+ * 创建时间:2024/1/23 13:54
+ */
+@Getter
+@Setter
+@SearchBean(tables = "(select * from ticket_pwd_view_record where account is not null) tpr left join goods_don_sku sku on sku.id = tpr.sku_id" +
+		" left join goods_don g on g.id = sku.goods_id" +
+		" left join user u on u.id = tpr.user_id")
+public class TicketPwdViewRecordView {
+	@DbField("tpr.id")
+	private Long id;
+
+	@DbField("u.id")
+	private Long userId;
+
+	@DbField("u.nickname")
+	private String nickname;
+
+	@DbField("tpr.account")
+	private String account;
+
+	@DbField("tpr.password")
+	private String password;
+
+	@DbField("g.id")
+	private Long goodsId;
+
+	@DbField("g.title")
+	private String title;
+
+	@DbField("sku.id")
+	private Long skuId;
+
+	@DbField("sku.spec_val")
+	private String specVal;
+
+	@DbField("tpr.created_time")
+	private Date createdTime;
+}

+ 65 - 0
netflix-dao/src/main/java/com/cyksj/model/views/UserCommonDistributeView.java

@@ -0,0 +1,65 @@
+package com.cyksj.model.views;
+
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.DbIgnore;
+import com.ejlchina.searcher.bean.SearchBean;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+
+/**
+ * 项目名: yhlxj2
+ * 文件名: UserCommonDistributeView
+ * 创建者: JavaZou
+ * 创建时间:2024/1/31 17:35
+ */
+@Getter
+@Setter
+@SearchBean(tables = "(select id,nickname from user where 1 = 1 :condition:) u left join user_distribute_shared us on u.id = us.shared_id" +
+		" left join user_distribute ud on ud.user_id = u.id and ud.deleted is true" +
+		" left join order_don od on od.user_id = us.user_id and od.is_distribute = 1 and od.status not in ('noPayment', 'close') :time:"
+		, where = "ud.id is null",
+		groupBy = "u.id,u.nickname")
+public class UserCommonDistributeView {
+
+	@DbField("u.id")
+	private Long userId;
+
+	@DbField("u.nickname")
+	private String nickname;
+
+	@DbField("count(od.id)")
+	private Integer orders;
+
+	/**
+	 * 分销人数
+	 * 其中拉新用户购买一单又退款,且无后续下单动作的不算分销用户,不统计在此字段内
+	 */
+	@DbField("count(DISTINCT CASE WHEN od.status != 'refund' THEN us.user_id ELSE null END)")
+	private Integer distributeUserNum;
+
+	/**
+	 * 邀请人数
+	 */
+	@DbField("count(DISTINCT us.user_id)")
+	private Integer inviteNum;
+
+	/**
+	 * 分销订单金额(无需产生积分)
+	 */
+	@DbField("(ifnull(sum(if(od.is_dp and od.ori_money != 0,od.ori_money,od.money)),0) - ifnull(sum(od.refund_money),0))")
+	private BigDecimal distributeOrdersMoney;
+
+	/**
+	 * 分销消费占比
+	 */
+	@DbField("ifnull(cast(count(DISTINCT CASE WHEN od.status != 'refund' THEN us.user_id ELSE null END)/count(DISTINCT us.user_id) as decimal(10,2)),0)")
+	private BigDecimal distributeConsumerRate;
+
+	/**
+	 * 销量最高的产品
+	 */
+	@DbIgnore
+	private String goodsTitle;
+}

+ 1 - 1
netflix-dao/src/main/java/com/cyksj/model/views/UserDistributeUnbindOrderMoneyView.java

@@ -18,7 +18,7 @@ import java.math.BigDecimal;
 @SearchBean(tables = "user_distribute_shared_relate_unbind unb inner join order_don o on o.user_id = unb.user_id and o.created_time > unb.update_time" +
 		" inner join user_distribute_shared us on us.user_id = unb.user_id" +
 		" inner join user_distribute ud on ud.user_id = us.shared_id and ud.deleted = 1",
-		where = "o.status not in ('close','noPayment','refund') and o.is_distribute = 0")
+		where = "o.status not in ('close','noPayment','refund') and o.is_distribute = 0 :time:")
 public class UserDistributeUnbindOrderMoneyView {
 
 

+ 10 - 0
netflix-dao/src/main/java/com/cyksj/model/views/UserOrderDetailView.java

@@ -15,6 +15,16 @@ import java.math.BigDecimal;
 @Getter
 @Setter
 public class UserOrderDetailView {
+	private Integer numOfUser;
+
+	private Integer delNumOfUser;
+
+	private Integer numOfEpOrder;
+
+	private Integer epOrderMoney;
+
+	private BigDecimal orderRate;
+
 	private Integer numOfOrder;
 
 	private BigDecimal orderMoney;

+ 13 - 0
netflix-dao/src/main/resources/mapper/AccountBlockedReplaceRecordMapper.xml

@@ -0,0 +1,13 @@
+<?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.cyksj.mapper.AccountBlockedReplaceRecordMapper">
+
+    <insert id="batchInsert">
+        insert ignore into
+        account_blocked_replace_record(`account`,`goods_id`,`created_time`,`update_time`)
+        values
+        <foreach collection="list" item="item" separator=",">
+            (#{item.account},#{item.goodsId},now(),now())
+        </foreach>
+    </insert>
+</mapper>

+ 23 - 0
netflix-dao/src/main/resources/mapper/CorpCustomerAcquisitionLinkMapper.xml

@@ -0,0 +1,23 @@
+<?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.cyksj.mapper.corp.CorpCustomerAcquisitionLinkMapper">
+
+    <select id="selectActiveCodeByFollowIndx" resultType="com.cyksj.model.entity.CorpCustomerAcquisitionLink">
+        select *
+        from corp_customer_acquisition_link
+        where user_list != '[]' and
+        <foreach collection="list" item="item" open="(" separator="OR" close=")">
+            JSON_CONTAINS(user_list, '${item}')
+        </foreach>
+    </select>
+
+    <select id="selectAcLinkCorpTemplateCouponIdsByTagIds" resultType="java.lang.Long">
+        select distinct ct.coupon_id from (select msg_id from corp_customer_acquisition_link
+        where msg_id != 0 and tags != '[]' and
+        <foreach collection="tagIds" item="item" open="(" separator="OR" close=")">
+            JSON_CONTAINS(tags, '"${item}"')
+        </foreach>)s inner join corp_welcome_template ct on ct.id = s.msg_id
+        where ct.coupon_id is not null
+    </select>
+</mapper>

+ 15 - 0
netflix-dao/src/main/resources/mapper/CorpFollowActiveCodeMapper.xml

@@ -0,0 +1,15 @@
+<?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.cyksj.mapper.corp.CorpFollowActiveCodeMapper">
+
+    <select id="selectActiveCodeByFollowIndx" resultType="com.cyksj.model.entity.CorpFollowActiveCode">
+        select *
+        from corp_follow_active_code
+        where deleted is true
+        and follow_str != '' and
+        <foreach collection="list" item="item" open="(" separator="OR" close=")">
+            JSON_CONTAINS(follow_str, '${item}')
+        </foreach>
+    </select>
+</mapper>

+ 7 - 2
netflix-dao/src/main/resources/mapper/CorpTagMapper.xml

@@ -55,7 +55,12 @@
     </select>
 
     <select id="selectCountOfCustomer" resultType="java.lang.Integer">
-        select count(distinct cufr.corp_user_id) from corp_user_tag cut left join corp_user_follow_relation cufr on cufr.id = cut.relation_id
-        where cufr.wx_corp_id = #{wxCorpId} and cut.tag_id = #{tagId}
+        select count(distinct ca.corp_user_id)
+        from corp_user_tag cut
+                 left join corp_user_follow_relation cufr
+                           on cufr.id = cut.relation_id
+                 left join corp_user_auth ca on ca.external_userid = cufr.corp_user_id
+        where cufr.wx_corp_id = #{wxCorpId}
+          and cut.tag_id = #{tagId}
     </select>
 </mapper>

+ 12 - 0
netflix-dao/src/main/resources/mapper/CorpUserFollowRelationMapper.xml

@@ -26,6 +26,12 @@
         left join `corp_user_auth` ca on ca.external_userid = cufr.corp_user_id
         left join `corp_user` cu on cu.id = ca.corp_user_id
         where cufr.wx_corp_id = #{wxCorpId}
+        <if test="joinStartTime != null">
+            and cu.created_time >= #{joinStartTime}
+        </if>
+        <if test="joinEndTime != null">
+            and cu.created_time &lt; #{joinEndTime}
+        </if>
         <choose>
             <when test="userScope == 2">
                 and cu.user_id != 0
@@ -78,6 +84,12 @@
         any_value(cu.user_id) as user_id
         from corp_user cu inner join corp_user_auth ca on ca.corp_user_id = cu.id
         and ca.wx_corp_id = #{wxCorpId}
+        <if test="joinStartTime != null">
+            and cu.created_time >= #{joinStartTime}
+        </if>
+        <if test="joinEndTime != null">
+            and cu.created_time &lt; #{joinEndTime}
+        </if>
         <choose>
             <when test="userScope == 2">
                 and cu.user_id != 0

+ 24 - 0
netflix-dao/src/main/resources/mapper/CorpUserTagMapper.xml

@@ -60,4 +60,28 @@
         inner join user u on u.id = cu.user_id
         group by cu.id, cu.unionid)s order by s.tagTime desc, s.userId asc
     </select>
+
+    <select id="countTagUser" resultType="com.cyksj.model.views.UserOrderDetailView">
+        select count(distinct ca.corp_user_id) as numOfUser,
+        count(distinct if(cufr.status = 0,ca.corp_user_id,NULL)) as delNumOfUser
+        from (select relation_id
+        from `corp_user_tag` ct
+        where tag_id = #{tagIdStr}
+        <if test="startTime != null">
+            and ct.created_time >= #{startTime}
+        </if>
+        <if test="endTime != null">
+            and ct.created_time &lt; #{endTime}
+        </if>) s
+        left join corp_user_follow_relation cufr on cufr.id = s.relation_id
+        left join corp_user_auth ca on ca.external_userid = cufr.corp_user_id
+    </select>
+
+    <select id="getTagIdByCorpUserId" resultType="java.lang.Long">
+        select distinct ct.id
+        from (select external_userid from corp_user_auth where corp_user_id = #{corpUserId} limit 1) ca
+                 inner join corp_user_follow_relation cufr on cufr.corp_user_id = ca.external_userid
+                 inner join corp_user_tag cut on cut.relation_id = cufr.id
+                 inner join corp_tag ct on ct.tag_id = cut.tag_id
+    </select>
 </mapper>

+ 16 - 0
netflix-dao/src/main/resources/mapper/EquipmentActivityReduceMapper.xml

@@ -0,0 +1,16 @@
+<?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.cyksj.mapper.EquipmentActivityReduceMapper">
+
+    <select id="checkRepeatTimeDuration" resultType="java.lang.Integer">
+        select count(*) from equipment_activity_reduce where
+        <if test="id != null">
+            id != #{id} and
+        </if>
+        deleted is true and ((st >= #{st} and st &lt; #{et} or et
+        >= #{st} and et &lt; #{et}) or (#{st} >= st and #{st} &lt; et or
+        #{et} >= st and #{et} &lt; et))
+        limit 1
+    </select>
+</mapper>

+ 11 - 0
netflix-dao/src/main/resources/mapper/GoodsDonSkuMapper.xml

@@ -37,4 +37,15 @@
     <select id="selectSingleSkuIdsByGoodsId" resultType="java.lang.Long">
         select id from goods_don_sku where goods_id = #{goodsId} and num = 1
     </select>
+
+    <select id="checkAndReturnMinPriceUserOwnsSku" resultType="com.cyksj.model.entity.GoodsDonSku">
+        select id,price,months,days
+        from goods_don_sku
+        where goods_id = #{goodsId}
+        and status is true
+        and (user_owns is null
+        <if test="dsUserId != 0">
+            or JSON_CONTAINS(user_owns, '${dsUserId}')
+        </if>) order by price limit 1
+    </select>
 </mapper>

+ 20 - 1
netflix-dao/src/main/resources/mapper/GroupRelationMapper.xml

@@ -99,7 +99,7 @@
     <select id="selectViewPwdCount" resultType="java.lang.Integer">
         select count(distinct relation_id)
         from (select id, user_id from `groups_relation` where groups_id = #{groupsId} and `status` = 'validity') s
-                 inner join chat_gpt_pwd_view_record cr on cr.relation_id = s.id and s.user_id = cr.user_id
+                 inner join ticket_pwd_view_record cr on cr.relation_id = s.id and s.user_id = cr.user_id
     </select>
 
     <select id="selectRandomOneRelationByGroupsId" resultType="com.cyksj.model.entity.GroupsRelation">
@@ -302,4 +302,23 @@
                 and gt.available_parking_num != 0) t
         where t.s1 >= s2
     </select>
+
+    <select id="getGroupRelationAccountView" resultType="com.cyksj.model.manage.views.GroupsRelationBackView">
+        select s.account, a.account as tripsAccount
+        from (select groups_id, account from groups_relation where id = #{relationId} limit 1) s
+                 inner join groups_trips gt on gt.id = s.groups_id
+                 left join account a on a.id = gt.account_id
+    </select>
+
+    <select id="getAreaPhoneByUserId" resultType="com.cyksj.model.entity.PhoneCode">
+        select s.phone, pc.cid
+        from (select if(login_phone != '', login_phone,
+                        (select phone
+                         from user_bind_detail
+                         where user_id = u.id
+                            or email_user_id = u.id limit 1)) as phone
+              from user u
+              where id = #{userId} limit 1) s
+                 left join phone_code pc on pc.phone = s.phone
+    </select>
 </mapper>

+ 39 - 1
netflix-dao/src/main/resources/mapper/OrderDonMapper.xml

@@ -315,7 +315,9 @@
 
     <select id="getTagUserData" resultType="com.cyksj.model.views.UserOrderDetailView">
         select count(if(status != 'refund', 1, NULL)) as numOfOrder, (sum(money) - sum(ifnull(refund_money, 0))) / 100
-        as orderMoney
+        as orderMoney,
+        count(if(status != 'refund' and o.goods_id = 15,1,NULL)) as numOfEpOrder,
+        (sum(if(o.goods_id = 15,money,0)) - sum(ifnull(if(o.goods_id = 15,refund_money,0), 0))) / 100 as epOrderMoney
         from (select cu.user_id
         from (select relation_id
         from `corp_user_tag` ct
@@ -333,6 +335,9 @@
         and o.status not in ('close', 'noPayment')
         and o.money > 0
         and o.money > ifnull(o.refund_money,0)
+        <if test="startTime != null">
+            and o.created_time >= #{startTime}
+        </if>
     </select>
 
     <select id="getTagUserDataPage" resultType="com.cyksj.model.views.UserOrderDetailView">
@@ -354,7 +359,40 @@
         and o.status not in ('close', 'noPayment')
         and o.money > 0
         and o.money > ifnull(o.refund_money,0)
+        <if test="startTime != null">
+            and o.created_time >= #{startTime}
+        </if>
         group by date_format(o.created_time,'%Y-%m-%d')
         order by date_format(o.created_time,'%Y-%m-%d') desc
     </select>
+
+    <select id="getTagUserTimeOrderData" resultType="com.cyksj.model.views.CorpTagUserOrderDataView">
+        select o.id as order_id,o.user_id,
+        (select nickname from user u where u.id = o.user_id limit 1),
+        o.order_no,o.goods_id,g.title,o.sku_id,sku.spec_val,
+        o.money/100 as money,o.created_time
+        from (select
+        cu.user_id
+        from (select relation_id
+        from `corp_user_tag` ct
+        where tag_id = #{tagIdStr}
+        <if test="startTime != null">
+            and ct.created_time >= #{startTime}
+        </if>
+        <if test="endTime != null">
+            and ct.created_time &lt; #{endTime}
+        </if>) s
+        left join corp_user_follow_relation cufr on cufr.id = s.relation_id
+        left join corp_user_auth ca on ca.external_userid = cufr.corp_user_id
+        left join corp_user cu on cu.id = ca.corp_user_id where cu.user_id != 0) s inner join order_don o on o.user_id =
+        s.user_id
+        and o.status not in ('close', 'noPayment','refund')
+        and o.money > 0
+        <if test="toDate != null and toDate != ''">
+            and date_format(o.created_time,'%Y-%m-%d') = #{toDate}
+        </if>
+        left join goods_don g on g.id = o.goods_id
+        left join goods_don_sku sku on sku.id = o.sku_id
+        order by o.created_time desc
+    </select>
 </mapper>

+ 49 - 4
netflix-dao/src/main/resources/mapper/StatisticsExportMapper.xml

@@ -348,7 +348,7 @@
     <select id="getMonthAmountOfOrderByType" resultType="java.math.BigDecimal">
         select ifnull((sum(o.money) - ifnull(sum(o.refund_money),0))/100,0) from `order_don` o left join `user_distribute_shared`
         us on us.user_id = o.user_Id
-        left join `user_distribute` ud on ud.user_id = us.shared_id
+        left join `user_distribute` ud on ud.user_id = us.shared_id and ud.deleted is true
         where
         <choose>
             <when test="type == 1">
@@ -368,14 +368,23 @@
     <select id="getMonthGoodsTypeAmountOfOrderByType" resultType="java.math.BigDecimal">
         select ifnull((sum(o.money) - ifnull(sum(o.refund_money),0))/100,0) from `order_don` o left join `user_distribute_shared`
         us on us.user_id = o.user_Id
-        left join `user_distribute` ud on ud.user_id = us.shared_id
+        left join `user_distribute` ud on ud.user_id = us.shared_id and ud.deleted is true
         where
         <choose>
             <when test="type == 1">
                 us.id is null
             </when>
+            <when test="type == 4">
+                us.id is not null
+                <if test="isBind != null">
+                    and us.is_bind = 0
+                </if>
+            </when>
             <otherwise>
                 us.id is not null
+                <if test="isBind != null">
+                    and us.is_bind = 1
+                </if>
             </otherwise>
         </choose>
         <if test="startDate != null">
@@ -466,12 +475,13 @@
         (case
         when us.id is null then 1
         when us.id is not null and ud.id is null then 2
-        when ud.id is not null then 3
+        when ud.id is not null and us.is_bind = 1 then 3
+        when ud.id is not null and us.is_bind = 0 then 4
         else 1
         end) as `type`
         from `order_don` o
         left join `user_distribute_shared` us on us.user_id = o.user_Id
-        left join `user_distribute` ud on ud.user_id = us.shared_id
+        left join `user_distribute` ud on ud.user_id = us.shared_id and ud.deleted is true
         where status not in ('close', 'noPayment')
         <if test="startDate != null">
             and o.created_time >= #{startDate}
@@ -480,4 +490,39 @@
             and o.created_time &lt; #{endDate}
         </if>) s group by `type`
     </select>
+
+    <select id="getMonthlyUserOrderDetail" resultType="com.cyksj.model.dto.MonthlyUserOrderDetailDto">
+        select cast(((sum(money) - sum(ifnull(refund_money, 0))) / 100) as decimal(10,2)) as money,
+               count(if(`status` != 'refund', 1, NUll))          as orders,
+               1                                                    type
+        from `order_don` o
+                 left join user u on u.id = o.user_id
+
+        where o.status not in ('close', 'noPayment')
+          and o.created_time BETWEEN #{thisMonth} and #{nextMonth}
+          and u.created_time &lt; #{thisMonth}
+        union all
+        select cast(((sum(money) - sum(ifnull(refund_money, 0))) / 100) as decimal(10,2)) as money,
+               count(if(`status` != 'refund', 1, NUll))          as orders,
+               2                                                    type
+        from `order_don` o
+                 left join user u on u.id = o.user_id
+        where o.status not in ('close', 'noPayment')
+          and o.created_time BETWEEN #{thisMonth} and #{nextMonth}
+          and u.created_time BETWEEN #{thisMonth} and #{nextMonth}
+    </select>
+
+    <select id="getEpOrderNumsGroupSource" resultType="java.util.Map">
+        select count(if(is_distribute = 0,1,NULL)) naturalEpOrders,count(if(is_distribute = 1,1,NULL)) distributeOrders
+        from order_don
+        where status not in ('close', 'noPayment', 'refund')
+        and goods_id = 15
+        <if test="startDate != null">
+            and created_time >= #{startDate}
+        </if>
+        <if test="endDate != null">
+            and created_time &lt; #{endDate}
+        </if>
+        group by DATE_FORMAT(created_time, '%Y-%m')
+    </select>
 </mapper>

Some files were not shown because too many files changed in this diff