list;
+
+ /**
+ * list
+ */
+ @AllArgsConstructor
+ @NoArgsConstructor
+ @ToString
+ @Getter
+ @Setter
+ public static class FriendDTO {
+
+ private String dayStr;
+
+ private Integer newDayFriendsInitiativeNum = DefaultNumberConstants.ZERO_NUMBER;
+
+ private Integer newDayPassiveNum = DefaultNumberConstants.ZERO_NUMBER;
+ }
+}
diff --git a/admin/src/main/java/com/baiye/modules/distribute/vo/PayOrderVO.java b/admin/src/main/java/com/baiye/modules/distribute/vo/PayOrderVO.java
new file mode 100644
index 0000000..1bf9624
--- /dev/null
+++ b/admin/src/main/java/com/baiye/modules/distribute/vo/PayOrderVO.java
@@ -0,0 +1,45 @@
+package com.baiye.modules.distribute.vo;
+
+import cn.hutool.core.date.DatePattern;
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+import java.util.Date;
+
+@Data
+public class PayOrderVO {
+
+ @Schema(name = "pay_type")
+ private Integer payType;
+
+ @Schema(name = "order_number")
+ private String orderNumber;
+
+ @Schema(name = "status")
+ private Integer status;
+
+ @Schema(name = "purchaser")
+ private String purchaser;
+
+ @Schema(name = "pay_time")
+ @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DatePattern.NORM_DATETIME_PATTERN, timezone = "GMT+8")
+ private Date payTime;
+
+ @Schema(name = "amount")
+ private Double amount;
+
+ @Schema(name = "user_id")
+ private Long userId;
+
+
+ @Schema(title = "创建时间")
+ private LocalDateTime createTime;
+
+ @Schema(title = "修改时间")
+ private LocalDateTime updateTime;
+
+}
diff --git a/admin/src/main/java/com/baiye/modules/distribute/vo/WeChatAccountVO.java b/admin/src/main/java/com/baiye/modules/distribute/vo/WeChatAccountVO.java
new file mode 100644
index 0000000..00d1393
--- /dev/null
+++ b/admin/src/main/java/com/baiye/modules/distribute/vo/WeChatAccountVO.java
@@ -0,0 +1,79 @@
+package com.baiye.modules.distribute.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+import java.util.Date;
+
+/**
+ * @author Enzo
+ * @date : 2024/3/26
+ */
+@Data
+public class WeChatAccountVO {
+
+
+ @Schema(title = "用户id")
+ private Long userId;
+
+
+ @Schema(title = "设备信息")
+ private String deviceInformation;
+
+ @Schema(title = "用户名称")
+ private String username;
+
+ @Schema(title = "用户id")
+ private String nickname;
+
+ @Schema(title = "城市信息")
+ private String cityInfo;
+
+ @Schema(title = "登录类型")
+ private Integer loginType;
+
+ @Schema(name = "登录时间")
+ private Date loginDate;
+
+ @Schema(name = "头像")
+ private String headerUrl;
+
+ @Schema(name = "微信ID")
+ private String wxId;
+
+ @Schema(name = "性别")
+ private Integer sex;
+
+ @Schema(name = "拥有者")
+ private Long ownerId;
+
+
+
+ @Schema(title = "创建时间")
+ private LocalDateTime createTime;
+
+
+ @Schema(title = "修改时间")
+ private LocalDateTime updateTime;
+
+ @Schema(title = "在线状态")
+ private Integer status;
+
+
+ @Schema(title = "备注")
+ private String remark;
+
+ @Schema(title = "微信号")
+ private String weChatNo;
+
+ @Schema(title = "设备号")
+ private Integer robotId;
+
+ private String deviceNumber;
+
+ @Schema(title = "过期时间")
+ private LocalDateTime expirationTime;
+
+
+}
diff --git a/admin/src/main/java/com/baiye/modules/distribute/vo/WeChatAddFriendVo.java b/admin/src/main/java/com/baiye/modules/distribute/vo/WeChatAddFriendVo.java
new file mode 100644
index 0000000..10e7ec4
--- /dev/null
+++ b/admin/src/main/java/com/baiye/modules/distribute/vo/WeChatAddFriendVo.java
@@ -0,0 +1,18 @@
+package com.baiye.modules.distribute.vo;
+
+import lombok.Data;
+
+/**
+ * @author Enzo
+ * @date : 2024/4/3
+ */
+@Data
+public class WeChatAddFriendVo {
+
+ private String dayStr;
+
+ private Integer num;
+
+ private Integer addFriendType;
+
+}
diff --git a/admin/src/main/java/com/baiye/properties/PayConfig.java b/admin/src/main/java/com/baiye/properties/PayConfig.java
new file mode 100644
index 0000000..6e11e51
--- /dev/null
+++ b/admin/src/main/java/com/baiye/properties/PayConfig.java
@@ -0,0 +1,40 @@
+package com.baiye.properties;
+
+import com.alipay.easysdk.factory.Factory;
+import com.alipay.easysdk.kernel.Config;
+import com.baiye.system.properties.AliPayProperties;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author Enzo
+ */
+@Component
+@Configuration
+@EnableConfigurationProperties({AliPayProperties.class})
+public class PayConfig {
+
+ private final AliPayProperties aliPay;
+
+ public PayConfig(AliPayProperties aliPay) {
+ this.aliPay = aliPay;
+ Config config = new Config();
+ config.protocol = aliPay.getProtocol();
+ config.gatewayHost = aliPay.getGatewayHost();
+ config.signType = aliPay.getSignType();
+ config.appId = aliPay.getAppId();
+ /**
+ * 为避免私钥随源码泄露,推荐从文件中读取私钥字符串而不是写入源码中
+ */
+ config.merchantPrivateKey = aliPay.getMerchantPrivateKey();
+ config.alipayPublicKey = aliPay.getAliPayPublicKey();
+ config.notifyUrl = aliPay.getNotifyUrl();
+ config.encryptKey = aliPay.getEncryptKey();
+ Factory.setOptions(config);
+ }
+
+ public AliPayProperties getConfig(){
+ return aliPay;
+ }
+}
diff --git a/admin/src/main/resources/application-dev.yml b/admin/src/main/resources/application-dev.yml
index 0f66754..c97a0e9 100644
--- a/admin/src/main/resources/application-dev.yml
+++ b/admin/src/main/resources/application-dev.yml
@@ -1,6 +1,6 @@
spring:
datasource:
- url: jdbc:mysql://39.100.77.21:3306/ad_distribute?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowMultiQueries=true
+ url: jdbc:mysql://39.100.77.21:3306/marketing-platform?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowMultiQueries=true
username: root
password: y7z7noq2
redis:
@@ -11,6 +11,25 @@ spring:
database: 7
+alipay:
+ protocol: https
+ # 不需要加/gateway.do,这是新旧SDK的区别,切记
+ # gatewayHost: openapi.alipaydev.com
+ gatewayHost: openapi.alipay.com
+ signType: RSA2
+ # 填APPID
+ appId: 2021003125644167
+ # 填应用私钥,注意是应用私钥,不要填成公钥了_(:з」∠)_
+ merchantPrivateKey: MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCNIuelR5MHMY3vtl2KEgWUbhHMHuBwxHMVONuUYKlt4grOGJtaPKitgh9MxrvaxmAvH0LilQQKd5T07os9jC2XpNmH0BA6rNVNgBwjWNllqKo+jT8OiKvog9uBuZYfHdkLRhjObrTkSo97jO5Y32591GZHG+cQ/5bgMC0KXlQMOv5piLqUfKYDJ5pWBdS5gqcCkUABZsrW+C8nD7lvOuVglN1AGQiXQzj+Iu3K5xcUg+d3q0nWXhKPpotSolFGSakLEqUja/MnsILVHVw8MYMuq6LxzQ7DQ5fCzMPMIF5kYTynsAV5SoE90ilj1vmmI4aa7dc+9OmG/vXyFuoOEK1bAgMBAAECggEAH0K/9EfqNQmw2ouWJGLhgYLvxjqAk/mvU+AIItFWNdR/eC7TGiWdZvEPZb4PFeIio81Uz0MaZgceozHC/Zry7kfBNufK8HQfus7JbLrdTDsTmk9GzD1RdmreT9l/etztmiWokPDMeFRbe443rM+wdYZ6MP3pLEawcG+7SjSigSKrcpltAJ49NhHyfJxnnCye4mM8PevVGXe4nGv/vKJbAfzl5V8MsSY+SVktj6jOUTSa6nypISvQElyv8jeNH/bTDjg0DOHzL4tUHaVbTqHhtqbNo3n9VuKz4shVAp3I+9PpcTQTueTsM9L0Y+j84bV3VZlTIGGzDUD4qWDhUKPJ4QKBgQDQFNB2vLDJLeGfn+SnCncnr/wQo1xJez+deBqJXoDhDWDuZVcWNaEOWgfDronm8dIedWMYHD//WN0GtA5foAUdlaNq/jeKdJFgzJ/hoOtOveHY1OWqJHiJ/YMRBMuLn/E4Jit7q215JU6Jur1T+70HxrUFTQfY8GWdMvSDFHCKDwKBgQCto24hqgcEDKoR3/sm5sUKqYZTHLeQbniM0D5EcOkBNw7UXGYQSbz7mJ34XQKTfrOL71A+LkjxdMfs5q56yxeOQxR4EBO/Fpz8xPRlud5uIp4eTQVJ8I01meZyvojkF6mO5C4tbcXJOpnpU8ohoeTRu7th0oUYObGUYmn0qzuj9QKBgDCOOtsKSwKXF0hFanjkQ0vakCpdxIJNJVoclayqhc5+bbkTos/G8e9EaP1rtDhVA6Ah6l7M8M4oMWOIDraXw7nUmk60RcekTexVs5VWFLLKMnKDs5gRbKNeqgAFq23Ig+SDW7A/H4uefgY7skRvwPuYjdNP113zMvMM2evgkCZXAoGAP5przvz/EOaqrV2EG93QM3WhdHRCcS9mDP6CsINDdmR6lCM8Z577EJX4128KcIiqsAl7NSuzIG8MhKSDKQuXl07PAqOw+AAKhTSH6XNKHMGldaf01f69WvMCzOkqL5LTUzoWCCH7nxhOJH/CvMsWjBTeMJjyk8seVyIteaf3crkCgYEAmY8OC+Vdo/yop+ooedCnvBC7GVMfcqR6+rIQ+ZnKom7jhByIN6w7eEVAnmNa9dCv/pig7HaYbitWmCNf9tbqFfcdY6e5Svele3amgDM9iqtdJ9Rf1PpDPZw+gmjRIxGs6W8wnl1Sqvpk8pFUA/2xlT6sXpfxra9N09LS0ttU+cU=
+ # 填支付宝公钥,注意不是生成的应用公钥
+ aliPayPublicKey: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyvegkGCrz1i5/K7VzQxvoZm4G73pSPNu9R5ET8YonIuDVoHkHaYvQQizLdRkTyBsYIik8FXsSDmVsw5MLMQ7OAlZ97nQBkz5TxOX6Px766nUpSVoWXoAz6cpIlWnwgir4t1ph88Ph56l+qmqW3gUj/U6MIuzjxBJlijTMHl96its95Nd4cEFx4j+sFuRYob6D0kcemC7xEFuty7bdupda51Z56GYI1YjuUTryTlFOHZbOSThc2ZMzNC1gPG25bn2Lx6sDuPByk4KW4rQ2v7mSfeUuZZRdjtVSC0WV2M2Cv5L8eLFvZRgNYnXrUJYhnRpT+OBAvJZXaWU2nv/bNe/UQIDAQAB
+ # 回调地址
+ notifyUrl: http://39.100.77.21:8088/pay/aliPay/pay-notify
+ # 支付宝成功支付跳转页面
+ returnUrl: http://39.100.77.21:8001/dashboard
+ # 可设置AES密钥,调用AES加解密相关接口时需要(可选)
+ encryptKey:
+
springdoc:
swagger-ui:
diff --git a/admin/src/main/resources/application-prod.yml b/admin/src/main/resources/application-prod.yml
index 1bd82a9..7bafbad 100644
--- a/admin/src/main/resources/application-prod.yml
+++ b/admin/src/main/resources/application-prod.yml
@@ -1,6 +1,6 @@
spring:
datasource:
- url: jdbc:mysql://localhost:3306/ad_distribute?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowMultiQueries=true
+ url: jdbc:mysql://localhost:3306/marketing-platform?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowMultiQueries=true
username: root
password: 7f2vvawx
redis:
@@ -15,3 +15,21 @@ ballcat:
openapi:
enabled: false
+alipay:
+ protocol: https
+ # 不需要加/gateway.do,这是新旧SDK的区别,切记
+ # gatewayHost: openapi.alipaydev.com
+ gatewayHost: openapi.alipay.com
+ signType: RSA2
+ # 填APPID
+ appId: 2021003125644167
+ # 填应用私钥,注意是应用私钥,不要填成公钥了_(:з」∠)_
+ merchantPrivateKey: MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCNIuelR5MHMY3vtl2KEgWUbhHMHuBwxHMVONuUYKlt4grOGJtaPKitgh9MxrvaxmAvH0LilQQKd5T07os9jC2XpNmH0BA6rNVNgBwjWNllqKo+jT8OiKvog9uBuZYfHdkLRhjObrTkSo97jO5Y32591GZHG+cQ/5bgMC0KXlQMOv5piLqUfKYDJ5pWBdS5gqcCkUABZsrW+C8nD7lvOuVglN1AGQiXQzj+Iu3K5xcUg+d3q0nWXhKPpotSolFGSakLEqUja/MnsILVHVw8MYMuq6LxzQ7DQ5fCzMPMIF5kYTynsAV5SoE90ilj1vmmI4aa7dc+9OmG/vXyFuoOEK1bAgMBAAECggEAH0K/9EfqNQmw2ouWJGLhgYLvxjqAk/mvU+AIItFWNdR/eC7TGiWdZvEPZb4PFeIio81Uz0MaZgceozHC/Zry7kfBNufK8HQfus7JbLrdTDsTmk9GzD1RdmreT9l/etztmiWokPDMeFRbe443rM+wdYZ6MP3pLEawcG+7SjSigSKrcpltAJ49NhHyfJxnnCye4mM8PevVGXe4nGv/vKJbAfzl5V8MsSY+SVktj6jOUTSa6nypISvQElyv8jeNH/bTDjg0DOHzL4tUHaVbTqHhtqbNo3n9VuKz4shVAp3I+9PpcTQTueTsM9L0Y+j84bV3VZlTIGGzDUD4qWDhUKPJ4QKBgQDQFNB2vLDJLeGfn+SnCncnr/wQo1xJez+deBqJXoDhDWDuZVcWNaEOWgfDronm8dIedWMYHD//WN0GtA5foAUdlaNq/jeKdJFgzJ/hoOtOveHY1OWqJHiJ/YMRBMuLn/E4Jit7q215JU6Jur1T+70HxrUFTQfY8GWdMvSDFHCKDwKBgQCto24hqgcEDKoR3/sm5sUKqYZTHLeQbniM0D5EcOkBNw7UXGYQSbz7mJ34XQKTfrOL71A+LkjxdMfs5q56yxeOQxR4EBO/Fpz8xPRlud5uIp4eTQVJ8I01meZyvojkF6mO5C4tbcXJOpnpU8ohoeTRu7th0oUYObGUYmn0qzuj9QKBgDCOOtsKSwKXF0hFanjkQ0vakCpdxIJNJVoclayqhc5+bbkTos/G8e9EaP1rtDhVA6Ah6l7M8M4oMWOIDraXw7nUmk60RcekTexVs5VWFLLKMnKDs5gRbKNeqgAFq23Ig+SDW7A/H4uefgY7skRvwPuYjdNP113zMvMM2evgkCZXAoGAP5przvz/EOaqrV2EG93QM3WhdHRCcS9mDP6CsINDdmR6lCM8Z577EJX4128KcIiqsAl7NSuzIG8MhKSDKQuXl07PAqOw+AAKhTSH6XNKHMGldaf01f69WvMCzOkqL5LTUzoWCCH7nxhOJH/CvMsWjBTeMJjyk8seVyIteaf3crkCgYEAmY8OC+Vdo/yop+ooedCnvBC7GVMfcqR6+rIQ+ZnKom7jhByIN6w7eEVAnmNa9dCv/pig7HaYbitWmCNf9tbqFfcdY6e5Svele3amgDM9iqtdJ9Rf1PpDPZw+gmjRIxGs6W8wnl1Sqvpk8pFUA/2xlT6sXpfxra9N09LS0ttU+cU=
+ # 填支付宝公钥,注意不是生成的应用公钥
+ aliPayPublicKey: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyvegkGCrz1i5/K7VzQxvoZm4G73pSPNu9R5ET8YonIuDVoHkHaYvQQizLdRkTyBsYIik8FXsSDmVsw5MLMQ7OAlZ97nQBkz5TxOX6Px766nUpSVoWXoAz6cpIlWnwgir4t1ph88Ph56l+qmqW3gUj/U6MIuzjxBJlijTMHl96its95Nd4cEFx4j+sFuRYob6D0kcemC7xEFuty7bdupda51Z56GYI1YjuUTryTlFOHZbOSThc2ZMzNC1gPG25bn2Lx6sDuPByk4KW4rQ2v7mSfeUuZZRdjtVSC0WV2M2Cv5L8eLFvZRgNYnXrUJYhnRpT+OBAvJZXaWU2nv/bNe/UQIDAQAB
+ # 回调地址
+ notifyUrl: https://baiyee.vip/pay/aliPay/pay-notify
+ # 支付宝成功支付跳转页面
+ returnUrl: https://baiyee.vip/dashboard
+ # 可设置AES密钥,调用AES加解密相关接口时需要(可选)
+ encryptKey:
diff --git a/admin/src/main/resources/application.yml b/admin/src/main/resources/application.yml
index 303709d..26120d0 100644
--- a/admin/src/main/resources/application.yml
+++ b/admin/src/main/resources/application.yml
@@ -30,7 +30,7 @@ mybatis-plus:
ballcat:
security:
# 前端传输密码的 AES 加密密钥
- password-secret-key: '==marketing-platform='
+ password-secret-key: 'market-platform='
oauth2:
authorizationserver:
# 登陆验证码是否开启
@@ -52,6 +52,9 @@ ballcat:
- /favicon.ico
- /captcha/**
- /outside/**
+ - /wechat/global/setting
+ - /pay/aliPay/pay-notify
+ - /api/wechat/callback
# 项目 redis 缓存的 key 前缀
redis:
key-prefix: 'marketing:'
@@ -97,3 +100,7 @@ elasticjob:
snowflake:
workerId: 10
datacenterId: 10
+
+wechat:
+ gatewayHost: http://43.143.56.20:1620
+ appKey: Dn4emsLhVFaZ4aw2sQSmWoh2oz0n1taa
diff --git a/admin/src/main/resources/mapper/LoginEquipmentMapper.xml b/admin/src/main/resources/mapper/LoginEquipmentMapper.xml
new file mode 100644
index 0000000..eb795b9
--- /dev/null
+++ b/admin/src/main/resources/mapper/LoginEquipmentMapper.xml
@@ -0,0 +1,52 @@
+
+
+
+
+ wa.username,
+ wa.nickname,
+ wa.city_info,
+ wa.login_type,
+ wa.header_url,
+ wa.wx_id,
+ wa.sex,
+ wa.status,
+ wa.we_chat_no,
+ wa.remark,
+ wa.create_time,
+ wa.update_time,
+ le.robot_id,
+ le.device_number,
+ le.expiration_time
+
+
+
+
+
+
diff --git a/marketing-platform-common/common-core/src/main/java/com/baiye/constant/DefaultNumberConstants.java b/marketing-platform-common/common-core/src/main/java/com/baiye/constant/DefaultNumberConstants.java
index b0646f4..94d2c4b 100644
--- a/marketing-platform-common/common-core/src/main/java/com/baiye/constant/DefaultNumberConstants.java
+++ b/marketing-platform-common/common-core/src/main/java/com/baiye/constant/DefaultNumberConstants.java
@@ -17,6 +17,11 @@ public class DefaultNumberConstants {
*/
public static final int MINUS_THREE_NUMBER = -3;
+ /**
+ *
+ */
+ public static final int MINUS_FIFTEEN_NUMBER = -15;
+
/**
* -2
*/
diff --git a/marketing-platform-common/common-core/src/main/java/com/baiye/constant/WechatCallbackConstant.java b/marketing-platform-common/common-core/src/main/java/com/baiye/constant/WechatCallbackConstant.java
new file mode 100644
index 0000000..6948434
--- /dev/null
+++ b/marketing-platform-common/common-core/src/main/java/com/baiye/constant/WechatCallbackConstant.java
@@ -0,0 +1,46 @@
+package com.baiye.constant;
+
+import lombok.Getter;
+
+/**
+ * @author Enzo
+ * @date : 2024/4/1
+ */
+
+@Getter
+public class WechatCallbackConstant {
+ private WechatCallbackConstant() {
+
+ }
+
+ /**
+ * 扫码返回
+ */
+ public static final int SCAN_CODE = 222;
+
+
+ /**
+ * 登录成功
+ */
+ public static final int LOGIN_SUCCESS = 201;
+
+
+ /**
+ * 登录失败
+ */
+ public static final int LOGIN_FAIL = 212;
+
+
+ /**
+ * 退出登录
+ */
+ public static final int LOGIN_OUT = 210;
+
+
+ /**
+ * 通过好友
+ */
+ public static final int THROUGH_FRIENDS = 1003;
+
+
+}
diff --git a/marketing-platform-common/common-core/src/main/java/com/baiye/constant/enums/ResponseCode.java b/marketing-platform-common/common-core/src/main/java/com/baiye/constant/enums/ResponseCode.java
new file mode 100644
index 0000000..2cfa4a5
--- /dev/null
+++ b/marketing-platform-common/common-core/src/main/java/com/baiye/constant/enums/ResponseCode.java
@@ -0,0 +1,225 @@
+package com.baiye.constant.enums;
+
+import lombok.Getter;
+
+/**
+ * @author q
+ */
+@Getter
+public enum ResponseCode {
+
+ /**
+ * 成功
+ */
+ SUCCESS("1", "success"),
+
+ /**
+ * 失败
+ */
+ FAILURE("0", "failure "),
+
+ /**
+ * 充值成功
+ */
+ RECHARGE_SUCCESS("1020", "充值成功"),
+
+ /**
+ * 手机号码不正确
+ */
+ PHONE_NUMBER_IS_INCORRECT("1022", "手机号码不正确"),
+
+ /**
+ * 验证码错误
+ */
+ VERIFICATION_CODE_PARAMETER_ERROR("1023", "验证码错误"),
+
+ /**
+ * 验证码不存在或已过期
+ */
+ VERIFICATION_NOT_EXIST_HAS_EXPIRED("1024", "验证码不存在或已过期"),
+
+ /**
+ * 读取文件失败
+ */
+ READ_FILE_ERROR("1021", "读取文件失败"),
+ /**
+ * 参数错误
+ */
+ PARAMETER_ERROR("1001", "参数错误"),
+
+ /**
+ * 用户信息错误
+ */
+ USER_INFORMATION_ERROR("1002", "用户信息错误"),
+
+ /**
+ * 账户已被禁用
+ */
+ ACCOUNT_DISABLED("1025", "账户已被禁用"),
+
+ /**
+ * 套餐不存在或已过期
+ */
+ PACKAGE_ERROR("1026", "套餐不存在或已过期"),
+
+ /**
+ * 支付宝支付失败
+ */
+ ALI_PAY_ERROR("1016", "支付宝支付失败"),
+
+ /**
+ * 支付宝支付回调失败
+ */
+ CALLBACK_FAILED("1017", "支付宝支付回调失败"),
+
+ /**
+ * 账号已过期
+ */
+ ACCOUNT_EXPIRED("1020", "账号已过期,无法激活"),
+ /**
+ * 呼叫失败
+ */
+ CALL_ERROR("1014", "呼叫失败"),
+
+ /**
+ * axb参数配置
+ */
+ AXB_CONFIGURATION_ERROR("1015", "axb参数配置错误"),
+
+
+ /**
+ * 数据解析失败
+ */
+ DECRYPTION_FAILED("1012", "数据解析失败"),
+
+ /**
+ * 比率不足100%,无法分配
+ */
+ RATIO_FAILED("1013", "比率不足100%,无法分配"),
+
+
+ /**
+ * axb参数配置
+ */
+ WRONG_USER_NAME_PASSWORD("1016", "用户名或密码不正确"),
+
+ /**
+ * 账户余额不足
+ */
+ INSUFFICIENT_ACCOUNT_BALANCE("1019", "账户余额不足"),
+
+ /**
+ * 连接成功
+ */
+ CONNECTION_SUCCEEDED("1027", "连接成功"),
+
+ /**
+ * 获取二维码失败
+ */
+ FAILED_GET_QR_CODE("1028", "获取二维码失败"),
+
+ /**
+ * 获取模板失败
+ */
+ FAILED_GET_TEMPLATE("1029", "获取模板失败,请先配置发送模板"),
+
+ /**
+ * 发送消息至少配置一条
+ */
+ TEMPLATE_CHANGE_ERROR("1031", "发送消息至少配置一条!"),
+
+ /**
+ * 添加好友失败
+ */
+ FAILED_ADD_FRIEND("1032", "添加好友失败!"),
+
+ /**
+ * 当前账户未登录或不在线
+ */
+ ACCOUNT_NOT_LOGGED_OR_NOT_ONLINE("1030", "当前账户未登录或不在线"),
+
+ /**
+ * 修改套餐失败
+ */
+ UPDATE_COMBO_FRIEND("1033", "修改套餐失败!"),
+
+ /**
+ * 发送邮件失败
+ */
+ SEND_MAIL_FRIEND("1034", "发送邮件失败!"),
+
+ /**
+ * 发送邮件失败
+ */
+ SEND_MAIL_NUM_FRIEND("1035", "发送数量不足100!"),
+
+ /**
+ * 用户被禁11005用
+ */
+ USER_DISABLED("11004", "用户被禁用"),
+ /**
+ * 用户被锁定
+ */
+ USER_LOCKED("11005", "用户被锁定"),
+ /**
+ * 用户名或密码错误
+ */
+ USER_PASSWORD_ERROR("11006", "用户名或密码错误"),
+ /**
+ * 用户密码过期
+ */
+ USER_PASSWORD_EXPIRED("11007", "用户密码过期"),
+ /**
+ * 用户账号过期
+ */
+ USER_ACCOUNT_EXPIRED("11008", "用户账号已过期"),
+ /**
+ * 没有该用户
+ */
+ USER_NOT_EXIST("11009", "没有该用户"),
+ /**
+ * 用户登录失败
+ */
+ USER_LOGIN_FAIL("11010", "用户登录失败"),
+ /**
+ * 验证码错误
+ */
+ VERIFY_CODE_ERROR("11011", "验证码错误"),
+
+ /**
+ * 修改用户信息失败
+ */
+ UPDATE_USER_ERROR("11012", "修改用户信息失败"),
+
+ /**
+ * 兑换数据失败
+ */
+ DATA_CONVERSION_FAILURE("11013", "兑换数据失败,请再次重试"),
+
+ /**
+ * 发送邮件失败
+ */
+ SEND_MAIL_MAX_NUM_FRIEND("1036", "发送数量超出最大范围!"),
+
+ /**
+ * 该批次号已经存在
+ */
+ BATCH_NUMBER_ALREADY_EXISTS("1037", "该批次号已经存在!"),
+
+ /**
+ * 非超级管理员不能修改数据
+ */
+ NON_SUPER_ADMINISTRATORS_CANNOT_MODIFY_DATA("1018", "非管理员不能修改数据");
+
+
+ private final String code;
+
+ private final String desc;
+
+ ResponseCode(String code, String desc) {
+ this.code = code;
+ this.desc = desc;
+ }
+
+
+}
diff --git a/marketing-platform-common/common-core/src/main/java/com/baiye/enums/ChannelTypeEnum.java b/marketing-platform-common/common-core/src/main/java/com/baiye/enums/ChannelTypeEnum.java
index eb2c48d..bea881d 100644
--- a/marketing-platform-common/common-core/src/main/java/com/baiye/enums/ChannelTypeEnum.java
+++ b/marketing-platform-common/common-core/src/main/java/com/baiye/enums/ChannelTypeEnum.java
@@ -4,8 +4,8 @@ import lombok.AllArgsConstructor;
import lombok.Getter;
/**
- * @author wjt
- * @date 2023/12/7
+ * @author Enzo
+ * @date 2024-4-1
*/
@Getter
@AllArgsConstructor
diff --git a/marketing-platform-common/common-core/src/main/java/com/baiye/enums/ClueSourceEnum.java b/marketing-platform-common/common-core/src/main/java/com/baiye/enums/ClueSourceEnum.java
deleted file mode 100644
index d46e21f..0000000
--- a/marketing-platform-common/common-core/src/main/java/com/baiye/enums/ClueSourceEnum.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright 2019-2020 Zheng Jie
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.baiye.enums;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-/**
- *
- * 验证码业务场景对应的 Redis 中的 key
- *
- *
- * @author Zheng Jie
- * @date 2020-05-02
- */
-@Getter
-@AllArgsConstructor
-public enum ClueSourceEnum {
-
- /**
- * 表单上传
- */
- TABLE_UPLOAD("table upload", "表单上传"),
-
- /**
- * 门店分发
- */
- STORE_DISTRIBUTION("store distribution:", "门店分发");
-
-
- private final String key;
- private final String description;
-}
diff --git a/marketing-platform-common/common-core/src/main/java/com/baiye/enums/MailRequestEnum.java b/marketing-platform-common/common-core/src/main/java/com/baiye/enums/MailRequestEnum.java
deleted file mode 100644
index ad2b61b..0000000
--- a/marketing-platform-common/common-core/src/main/java/com/baiye/enums/MailRequestEnum.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package com.baiye.enums;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-/**
- * @author Enzo
- * @date : 2023/5/16
- */
-@Getter
-@AllArgsConstructor
-public enum MailRequestEnum {
-
- /**
- * 手动发送
- */
- MM("MM", "dmp::manual::"),
-
- /**
- * 性别
- */
- GG("GG", "mail::gender::"),
-
-
- /**
- * 定时
- */
- BY("BY", "dmp::request::");
-
-
- private final String type;
-
- private final String cacheName;
-
- public static MailRequestEnum find(String str) {
- for (MailRequestEnum dataScopeEnum : MailRequestEnum.values()) {
- if (dataScopeEnum.getCacheName().equalsIgnoreCase(str)) {
- return dataScopeEnum;
- }
- }
- return null;
- }
-
-
-}
diff --git a/marketing-platform-common/common-core/src/main/java/com/baiye/enums/PackageEnum.java b/marketing-platform-common/common-core/src/main/java/com/baiye/enums/PackageEnum.java
new file mode 100644
index 0000000..dc59632
--- /dev/null
+++ b/marketing-platform-common/common-core/src/main/java/com/baiye/enums/PackageEnum.java
@@ -0,0 +1,43 @@
+package com.baiye.enums;
+
+import com.baiye.constant.DefaultNumberConstants;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+import java.util.Objects;
+
+/**
+ * @author Enzo
+ * @date : 2024/4/1
+ */
+@Getter
+@AllArgsConstructor
+public enum PackageEnum {
+ /**
+ * 月度
+ */
+ MONTH(1, 30),
+
+ /**
+ * 季度
+ */
+ QUARTER(2, 90),
+
+ /**
+ * 年度
+ */
+ YEAR(3, 365);
+
+
+ private final Integer type;
+ private final Integer num;
+
+ public static Integer find(Integer val) {
+ for (PackageEnum packageEnum : PackageEnum.values()) {
+ if (Objects.equals(packageEnum.getType(), val)) {
+ return packageEnum.getNum();
+ }
+ }
+ return DefaultNumberConstants.MINUS_ONE_NUMBER;
+ }
+}
diff --git a/marketing-platform-common/common-core/src/main/java/com/baiye/util/RedisUtils.java b/marketing-platform-common/common-core/src/main/java/com/baiye/util/RedisUtils.java
index d8f1b64..d68d631 100644
--- a/marketing-platform-common/common-core/src/main/java/com/baiye/util/RedisUtils.java
+++ b/marketing-platform-common/common-core/src/main/java/com/baiye/util/RedisUtils.java
@@ -5,7 +5,6 @@ import cn.hutool.core.date.DateUtil;
import cn.hutool.core.text.StrPool;
import cn.hutool.core.util.ObjectUtil;
import com.baiye.constant.DefaultNumberConstants;
-import com.baiye.enums.MailRequestEnum;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
import lombok.extern.slf4j.Slf4j;
@@ -22,7 +21,6 @@ import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.*;
-import java.util.List;
import java.util.concurrent.TimeUnit;
@Component
@@ -698,24 +696,6 @@ public class RedisUtils {
log.debug("--------------------------------------------");
}
- /**
- * 批次获取
- *
- * @param prefix
- * @param ids
- */
- public String acquisitionBatch(String cacheType) {
- String format = DateUtil.format(DateUtil.date(), DatePattern.PURE_DATE_PATTERN);
- Integer num = (Integer) get(cacheType.concat(format));
- Integer batch = ObjectUtil.isNull(num) ?
- DefaultNumberConstants.ONE_NUMBER : num + DefaultNumberConstants.ONE_NUMBER;
- // 保存批次号
- set(cacheType.concat(format), batch, DefaultNumberConstants.ONE_NUMBER, TimeUnit.DAYS);
- String parameter = MailRequestEnum.find(cacheType).getType();
- return parameter.concat(StrPool.DASHED).
- concat(format).concat(StrPool.DASHED).concat(String.valueOf(batch));
-
- }
/**
* 存储经纬度
diff --git a/marketing-platform-common/common-model/src/main/java/com/baiye/result/WeChatResponse.java b/marketing-platform-common/common-model/src/main/java/com/baiye/result/WeChatResponse.java
new file mode 100644
index 0000000..9da46eb
--- /dev/null
+++ b/marketing-platform-common/common-model/src/main/java/com/baiye/result/WeChatResponse.java
@@ -0,0 +1,29 @@
+package com.baiye.result;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+import java.io.Serializable;
+
+/**
+ * @author Enzo
+ * @date : 2022/6/23
+ */
+@Getter
+@Setter
+@ToString
+public class WeChatResponse implements Serializable {
+
+ private static final long serialVersionUID = 6763956796736587193L;
+
+ private T data;
+
+ private String msg;
+
+ private Integer status;
+
+ private Boolean success;
+
+
+}
diff --git a/marketing-platform-notify/distribute-notify-biz/src/main/java/com/baiye/notify/handler/NotifyInfoDelegateHandler.java b/marketing-platform-notify/distribute-notify-biz/src/main/java/com/baiye/notify/handler/NotifyInfoDelegateHandler.java
index b9ace65..24267c4 100644
--- a/marketing-platform-notify/distribute-notify-biz/src/main/java/com/baiye/notify/handler/NotifyInfoDelegateHandler.java
+++ b/marketing-platform-notify/distribute-notify-biz/src/main/java/com/baiye/notify/handler/NotifyInfoDelegateHandler.java
@@ -14,39 +14,40 @@ import java.util.Map;
/**
* 消息处理代理
*
- * @author huyuanzhi
* @param 消息类型
+ * @author huyuanzhi
*/
@Slf4j
@Component
@AllArgsConstructor
public class NotifyInfoDelegateHandler {
- private final List> notifyInfoHandlers;
-
- private Map, NotifyInfoHandler> handlerMap;
-
- @PostConstruct
- public void init() {
- handlerMap = new HashMap<>(notifyInfoHandlers.size());
- for (NotifyInfoHandler handler : notifyInfoHandlers) {
- handlerMap.put(handler.getNotifyClass(), handler);
- }
- }
-
- /**
- * 代理方法
- * @param userIdList 发送用户列表
- * @param info 消息
- */
- public void handle(List userIdList, T info) {
- Assert.notNull(info, "event message cant be null!");
- NotifyInfoHandler notifyInfoHandler = handlerMap.get(info.getClass());
- if (notifyInfoHandler == null) {
- log.warn("no notifyHandler bean for class:{},please check!", info.getClass().getName());
- return;
- }
- notifyInfoHandler.handle(userIdList, info);
- }
+ private final List> notifyInfoHandlers;
+
+ private Map, NotifyInfoHandler> handlerMap;
+
+ @PostConstruct
+ public void init() {
+ handlerMap = new HashMap<>(notifyInfoHandlers.size());
+ for (NotifyInfoHandler handler : notifyInfoHandlers) {
+ handlerMap.put(handler.getNotifyClass(), handler);
+ }
+ }
+
+ /**
+ * 代理方法
+ *
+ * @param userIdList 发送用户列表
+ * @param info 消息
+ */
+ public void handle(List userIdList, T info) {
+ Assert.notNull(info, "event message cant be null!");
+ NotifyInfoHandler notifyInfoHandler = handlerMap.get(info.getClass());
+ if (notifyInfoHandler == null) {
+ log.warn("no notifyHandler bean for class:{},please check!", info.getClass().getName());
+ return;
+ }
+ notifyInfoHandler.handle(userIdList, info);
+ }
}
diff --git a/marketing-platform-notify/distribute-notify-biz/src/main/java/com/baiye/notify/handler/NotifyInfoHandler.java b/marketing-platform-notify/distribute-notify-biz/src/main/java/com/baiye/notify/handler/NotifyInfoHandler.java
index b496303..33b9ed0 100644
--- a/marketing-platform-notify/distribute-notify-biz/src/main/java/com/baiye/notify/handler/NotifyInfoHandler.java
+++ b/marketing-platform-notify/distribute-notify-biz/src/main/java/com/baiye/notify/handler/NotifyInfoHandler.java
@@ -2,7 +2,6 @@ package com.baiye.notify.handler;
import com.baiye.notify.model.domain.NotifyInfo;
-import com.baiye.system.model.entity.SysUser;
import java.util.List;
diff --git a/marketing-platform-system/system-biz/src/main/java/com/baiye/system/properties/AliPayProperties.java b/marketing-platform-system/system-biz/src/main/java/com/baiye/system/properties/AliPayProperties.java
new file mode 100644
index 0000000..e639b56
--- /dev/null
+++ b/marketing-platform-system/system-biz/src/main/java/com/baiye/system/properties/AliPayProperties.java
@@ -0,0 +1,30 @@
+package com.baiye.system.properties;
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * @author Enzo
+ */
+@Data
+@ConfigurationProperties(prefix = "alipay")
+public class AliPayProperties {
+
+ private String protocol;
+
+ private String gatewayHost;
+
+ private String signType;
+
+ private String appId;
+
+ private String merchantPrivateKey;
+
+ private String aliPayPublicKey;
+
+ private String notifyUrl;
+
+ private String encryptKey;
+
+ private String returnUrl;
+
+}
diff --git a/marketing-platform-system/system-biz/src/main/java/com/baiye/system/properties/WeChatProperties.java b/marketing-platform-system/system-biz/src/main/java/com/baiye/system/properties/WeChatProperties.java
new file mode 100644
index 0000000..f4d210b
--- /dev/null
+++ b/marketing-platform-system/system-biz/src/main/java/com/baiye/system/properties/WeChatProperties.java
@@ -0,0 +1,23 @@
+package com.baiye.system.properties;
+
+import lombok.Getter;
+import lombok.Setter;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author Enzo
+ * @date : 2022/6/24
+ */
+@Getter
+@Setter
+@Component
+@ConfigurationProperties(prefix = "wechat")
+public class WeChatProperties {
+
+ private String gatewayHost;
+
+
+ private String appKey;
+
+}
diff --git a/marketing-platform-system/system-model/src/main/java/com/baiye/system/model/dto/SysUserNameRoleDTO.java b/marketing-platform-system/system-model/src/main/java/com/baiye/system/model/dto/SysUserNameRoleDTO.java
index f16321c..87b461b 100644
--- a/marketing-platform-system/system-model/src/main/java/com/baiye/system/model/dto/SysUserNameRoleDTO.java
+++ b/marketing-platform-system/system-model/src/main/java/com/baiye/system/model/dto/SysUserNameRoleDTO.java
@@ -3,8 +3,8 @@ package com.baiye.system.model.dto;
import lombok.Data;
/**
- * @author wjt
- * @date 2023/9/15
+ * @author Enzo
+ * @date 2024-4-1
*/
@Data
public class SysUserNameRoleDTO {
diff --git a/pom.xml b/pom.xml
index 1a81836..2374d62 100644
--- a/pom.xml
+++ b/pom.xml
@@ -51,6 +51,7 @@
3.5.3.1
3.5.10
4.1.2
+ 2.2.0
1.3.2
2.2.0
2.20.70
@@ -403,6 +404,15 @@
${zip4j.version}
+
+
+
+ com.alipay.sdk
+ alipay-easysdk
+ ${alipay.version}
+
+
+