diff --git a/deploy-api.yml b/deploy-api.yml
new file mode 100644
index 00000000..baecfc31
--- /dev/null
+++ b/deploy-api.yml
@@ -0,0 +1,651 @@
+apiVersion: v1
+kind: Namespace
+metadata:
+ name: lilishop-service
+
+---
+apiVersion: v1
+kind: Service
+metadata:
+ name: buyer-api-service
+ namespace: lilishop-service
+ labels:
+ app.kubernetes.io/name: buyer-api-service
+ app.kubernetes.io/instance: api
+ app.kubernetes.io/version: "4.2.4.1"
+ app.kubernetes.io/component: api
+ app.kubernetes.io/part-of: lilishop
+ tier: "api-service"
+spec:
+ type: NodePort
+ ports:
+ - name: "8888"
+ nodePort: 30888
+ port: 8888
+ targetPort: buyer8888
+ selector:
+ lilishop.service: buyer-api
+
+---
+apiVersion: v1
+kind: Service
+metadata:
+ name: common-api-service
+ namespace: lilishop-service
+ labels:
+ app.kubernetes.io/name: common-api-service
+ app.kubernetes.io/instance: api
+ app.kubernetes.io/version: "4.2.4.1"
+ app.kubernetes.io/component: api
+ app.kubernetes.io/part-of: lilishop
+ tier: "api-service"
+spec:
+ type: NodePort
+ ports:
+ - name: "8890"
+ nodePort: 30890
+ port: 8890
+ targetPort: common8890
+ selector:
+ lilishop.service: common-api
+
+---
+apiVersion: v1
+kind: Service
+metadata:
+ name: seller-api-service
+ namespace: lilishop-service
+ labels:
+ app.kubernetes.io/name: seller-api-service
+ app.kubernetes.io/instance: api
+ app.kubernetes.io/version: "4.2.4.1"
+ app.kubernetes.io/component: api
+ app.kubernetes.io/part-of: lilishop
+ tier: "api-service"
+spec:
+ type: NodePort
+ ports:
+ - name: "8889"
+ nodePort: 30889
+ port: 8889
+ targetPort: seller8889
+ selector:
+ lilishop.service: seller-api
+
+---
+apiVersion: v1
+kind: Service
+metadata:
+ name: manager-api-service
+ namespace: lilishop-service
+ labels:
+ app.kubernetes.io/name: manager-api-service
+ app.kubernetes.io/instance: api
+ app.kubernetes.io/version: "4.2.4.1"
+ app.kubernetes.io/component: api
+ app.kubernetes.io/part-of: lilishop
+ tier: "api-service"
+spec:
+ type: NodePort
+ ports:
+ - name: "8887"
+ nodePort: 30887
+ port: 8887
+ targetPort: manager8887
+ selector:
+ lilishop.service: manager-api
+
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: api-config
+ namespace: lilishop-service
+ labels:
+ app.kubernetes.io/name: mysql-db-config
+ app.kubernetes.io/instance: mysql-single
+ app.kubernetes.io/version: "8.0.28"
+ app.kubernetes.io/component: database
+ app.kubernetes.io/part-of: lilishop
+data:
+ application.yml: |
+ server:
+ servlet:
+ context-path: /
+
+ tomcat:
+ uri-encoding: UTF-8
+ threads:
+ min-spare: 50
+ max: 1000
+
+ # 与Spring Boot 2一样,默认情况下,大多数端点都不通过http公开,我们公开了所有端点。对于生产,您应该仔细选择要公开的端点。
+ management:
+ # health:
+ # elasticsearch:
+ # enabled: false
+ # datasource:
+ # enabled: false
+ endpoints:
+ web:
+ exposure:
+ include: '*'
+ spring:
+ # 要在其中注册的Spring Boot Admin Server的URL。
+ boot:
+ admin:
+ client:
+ url: http://192.168.0.116:8000
+ cache:
+ type: redis
+ # Redis
+ redis:
+ host: redis-service.lilishop-middleware
+ port: 6379
+ password: lilishop
+ lettuce:
+ pool:
+ # 连接池最大连接数(使用负值表示没有限制) 默认 8
+ max-active: 200
+ # 连接池最大阻塞等待时间(使用负值表示没有限制) 默认 -1
+ max-wait: 20
+ # 连接池中的最大空闲连接 默认 8
+ max-idle: 10
+ # 连接池中的最小空闲连接 默认 8
+ min-idle: 8
+ # 文件大小上传配置
+ servlet:
+ multipart:
+ max-file-size: 20MB
+ max-request-size: 20MB
+ jackson:
+ time-zone: GMT+8
+ serialization:
+ #关闭jackson 对json做解析
+ fail-on-empty-beans: false
+
+ shardingsphere:
+ datasource:
+ # 数据库名称,可自定义,可以为多个,以逗号隔开,每个在这里定义的库,都要在下面定义连接属性
+ names: default-datasource
+ default-datasource:
+ type: com.alibaba.druid.pool.DruidDataSource
+ driverClassName: com.mysql.cj.jdbc.Driver
+ url: jdbc:mysql://mysql.lilishop-middleware:3306/lilishop?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
+ username: root
+ password: lilishop
+ maxActive: 50
+ initialSize: 20
+ maxWait: 60000
+ minIdle: 5
+ timeBetweenEvictionRunsMillis: 60000
+ minEvictableIdleTimeMillis: 300000
+ validationQuery: SELECT 1 FROM DUAL
+ testWhileIdle: true
+ testOnBorrow: false
+ testOnReturn: false
+ #是否缓存preparedStatement,也就是PSCache。在mysql下建议关闭。 PSCache对支持游标的数据库性能提升巨大,比如说oracle。
+ poolPreparedStatements: false
+ #要启用PSCache,-1为关闭 必须配置大于0,当大于0时,poolPreparedStatements自动触发修改为true 可以把这个数值配置大一些,比如说100
+ maxOpenPreparedStatements: -1
+ #配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
+ filters: stat,wall,log4j2
+ #通过connectProperties属性来打开mergeSql功能;慢SQL记录
+ connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
+ #合并多个DruidDataSource的监控数据
+ useGlobalDataSourceStat: true
+ loginUsername: druid
+ loginPassword: druid
+ # sharding:
+ # default-data-source-name: default-datasource
+ # #需要拆分的表,可以设置多个 在 li_order 级别即可
+ # tables:
+ # #需要进行分表的逻辑表名
+ # li_order:
+ # #实际的表结点,下面代表的是li_order_为开头的所有表,如果能确定表的范围例如按月份分表,这里的写法是data2020.li_order_$->{2020..2021}_$->{01..12} 表示例如 li_order_2020_01 li_order_2020_03 li_order_2021_01
+ # actual-data-nodes: data2020.li_order_$->{2019..2021}_$->{01..12}
+ # table-strategy:
+ # # 分表策略,根据创建日期
+ # standard:
+ # sharding-column: create_time
+ # #分表策略
+ # precise-algorithm-class-name: cn.lili.mybatis.sharding.CreateTimeShardingTableAlgorithm
+ # #范围查询实现
+ # range-algorithm-class-name: cn.lili.mybatis.sharding.CreateTimeShardingTableAlgorithm
+ props:
+ #是否打印逻辑SQL语句和实际SQL语句,建议调试时打印,在生产环境关闭
+ sql:
+ show: true
+
+ # 忽略鉴权url
+ ignored:
+ urls:
+ - /editor-app/**
+ - /actuator**
+ - /actuator/**
+ - /MP_verify_qSyvBPhDsPdxvOhC.txt
+ - /weixin/**
+ - /source/**
+ - /store/passport/login/**
+ - /store/passport/login/refresh/**
+ - /common/common/slider/**
+ - /common/common/sms/**
+ - /buyer/payment/cashier/**
+ - /buyer/other/pageData/**
+ - /buyer/other/article/**
+ - /buyer/goods/**
+ - /buyer/store/**
+ - /buyer/passport/connect/**
+ - /buyer/members/**
+ - /buyer/passport/member/**
+ - /buyer/passport/member/refresh/**
+ - /buyer/promotion/pintuan/**
+ - /buyer/promotion/seckill/**
+ - /buyer/promotion/pointsGoods/**
+ - /buyer/promotion/coupon
+ - /buyer/member/evaluation/**/goodsEvaluation
+ - /buyer/member/evaluation/**/evaluationNumber
+ - /buyer/other/appVersion/**
+ - /buyer/broadcast/studio/**
+ - /manager/passport/user/login
+ - /manager/passport/user/refresh/**
+ - /manager/other/elasticsearch
+ - /manager/other/customWords
+ - /druid/**
+ - /swagger-ui.html
+ - /doc.html
+ - /swagger-resources/**
+ - /swagger/**
+ - /webjars/**
+ - /v2/api-docs**
+ - /configuration/ui
+ - /boot-admin
+ - /manager/promotion/seckill/init
+ - /**/*.js
+ - /**/*.css
+ - /**/*.png
+ - /**/*.ico
+
+ # Swagger界面内容配置
+ swagger:
+ title: lilishop API接口文档
+ description: lilishop Api Documentation
+ version: 4.2.2
+ termsOfServiceUrl: https://pickmall.cn
+ contact:
+ name: lili
+ url: https://pickmall.cn
+ email: admin@pickmall.com
+
+ # Mybatis-plus
+ mybatis-plus:
+ mapper-locations: classpath*:mapper/*.xml
+ configuration:
+ #缓存开启
+ cache-enabled: true
+ #日志
+ # log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+
+ # 日志
+ logging:
+ # 输出级别
+ level:
+ cn.lili: info
+ # org.hibernate: debug
+ # org.springframework: debug
+ file:
+ # 指定路径
+ path: logs
+ logback:
+ rollingpolicy:
+ # 最大保存天数
+ max-history: 7
+ # 每个文件最大大小
+ max-file-size: 5MB
+ #加密参数
+ jasypt:
+ encryptor:
+ password: lili
+
+
+ lili:
+ #验证码设置
+ verification-code:
+ #图形验证码有效时间 秒 包含滑块验证码有效时间, 以及验证通过之后,缓存中存储的验证结果有效时间
+ effectiveTime: 300
+ #水印
+ watermark: LILI-SHOP
+ #干扰项数量 最大2 默认0
+ interfereNum: 1
+ #允许误差像素
+ faultTolerant: 3
+ #短信模版配置
+ sms:
+ #登录
+ LOGIN: SMS_205755300
+ #注册
+ REGISTER: SMS_205755298
+ #找回密码
+ FIND_USER: SMS_205755301
+ #设置密码
+ UPDATE_PASSWORD: SMS_205755297
+ #支付密码
+ WALLET_PASSWORD: SMS_205755301
+ system:
+ isDemoSite: false
+ isTestModel: true
+ # 脱敏级别:
+ # 0:不做脱敏处理
+ # 1:管理端用户手机号等信息脱敏
+ # 2:商家端信息脱敏(为2时,表示管理端,商家端同时脱敏)
+ sensitiveLevel: 1
+
+ statistics:
+ # 在线人数统计 X 小时。这里设置48,即统计过去48小时每小时在线人数
+ onlineMember: 48
+ # 当前在线人数刷新时间间隔,单位秒,设置为600,则每10分钟刷新一次
+ currentOnlineUpdate: 600
+ #qq lbs 申请
+ lbs:
+ key: 4BYBZ-7MT6S-PUAOA-6BNWL-FJUD7-UUFXT
+ sk: zhNKVrJK6UPOhqIjn8AQvG37b9sz6
+ #域名
+ domain:
+ pc: http://192.168.0.116:8888
+ wap: http://192.168.0.116:8888
+ seller: http://192.168.0.116:8888
+ admin: http://192.168.0.116:8888
+ #api地址
+ api:
+ buyer: http://192.168.0.116:8888
+ base: http://192.168.0.116:8888
+ manager: http://192.168.0.116:8888
+ seller: http://192.168.0.116:8888
+
+ # jwt 细节设定
+ jwt-setting:
+ # token过期时间(分钟)
+ tokenExpireTime: 30
+
+ # 使用Spring @Cacheable注解失效时间
+ cache:
+ # 过期时间 单位秒 永久不过期设为-1
+ timeout: 1500
+ #多线程配置
+ thread:
+ corePoolSize: 5
+ maxPoolSize: 50
+ queueCapacity: 50
+ data:
+ elasticsearch:
+ cluster-name: elasticsearch
+ cluster-nodes: elasticsearch.lilishop-middleware:9200
+ index:
+ number-of-replicas: 0
+ number-of-shards: 3
+ index-prefix: lili
+ schema: http
+ # account:
+ # username: elastic
+ # password: LiLiShopES
+
+ logstash:
+ server: logstash-service.lilishop-middleware:4560
+ rocketmq:
+ promotion-topic: lili_promotion_topic
+ promotion-group: lili_promotion_group
+ msg-ext-topic: lili_msg_topic
+ msg-ext-group: lili_msg_group
+ goods-topic: lili_goods_topic
+ goods-group: lili_goods_group
+ order-topic: lili_order_topic
+ order-group: lili_order_group
+ member-topic: lili_member_topic
+ member-group: lili_member_group
+ other-topic: lili_other_topic
+ other-group: lili_other_group
+ notice-topic: lili_notice_topic
+ notice-group: lili_notice_group
+ notice-send-topic: lili_send_notice_topic
+ notice-send-group: lili_send_notice_group
+ after-sale-topic: lili_after_sale_topic
+ after-sale-group: lili_after_sale_group
+ rocketmq:
+ name-server: rocketmq.lilishop-middleware:9876
+ isVIPChannel: false
+ producer:
+ group: lili_group
+ send-message-timeout: 30000
+
+ xxl:
+ job:
+ admin:
+ addresses: http://xxl-job-service.lilishop-middleware:9001/xxl-job-admin
+ executor:
+ appname: xxl-job-executor-lilishop
+ address:
+ ip:
+ port: 8891
+ logpath: ./xxl-job/executor
+ logretentiondays: 7
+
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: buyer-api
+ namespace: lilishop-service
+ labels:
+ app.kubernetes.io/name: buyer-api-service
+ app.kubernetes.io/instance: buyer-api
+ app.kubernetes.io/version: "4.2.4.1"
+ app.kubernetes.io/component: api
+ app.kubernetes.io/part-of: lilishop
+ tier: "api-service"
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ lilishop.service: buyer-api
+ template:
+ metadata:
+ labels:
+ lilishop.service: buyer-api
+ spec:
+ containers:
+ - image: 192.168.0.108:31320/buyer-api:4.2.4.1
+ name: buyer-api
+ env:
+ - name: TZ
+ value: Asia/Shanghai
+ - name: JAVA_OPTS
+ value: -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=128m -Xms128m -Xmx256m -Xmn128m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC
+ ports:
+ - name: buyer8888
+ containerPort: 8888
+ volumeMounts:
+ - mountPath: /application.yml
+ name: application-yml
+ subPath: application.yml
+ restartPolicy: Always
+ volumes:
+ - configMap:
+ name: api-config
+ name: application-yml
+
+
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: common-api
+ namespace: lilishop-service
+ labels:
+ app.kubernetes.io/name: common-api-service
+ app.kubernetes.io/instance: common-api
+ app.kubernetes.io/version: "4.2.4.1"
+ app.kubernetes.io/component: api
+ app.kubernetes.io/part-of: lilishop
+ tier: "api-service"
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ lilishop.service: common-api
+ template:
+ metadata:
+ labels:
+ lilishop.service: common-api
+ spec:
+ containers:
+ - image: 192.168.0.108:31320/common-api:4.2.4.1
+ name: common-api
+ env:
+ - name: TZ
+ value: Asia/Shanghai
+ - name: JAVA_OPTS
+ value: -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=128m -Xms128m -Xmx256m -Xmn128m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC
+ ports:
+ - name: common8890
+ containerPort: 8890
+ volumeMounts:
+ - mountPath: /application.yml
+ name: application-yml
+ subPath: application.yml
+ restartPolicy: Always
+ volumes:
+ - configMap:
+ name: api-config
+ name: application-yml
+
+
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: seller-api
+ namespace: lilishop-service
+ labels:
+ app.kubernetes.io/name: seller-api-service
+ app.kubernetes.io/instance: seller-api
+ app.kubernetes.io/version: "4.2.4.1"
+ app.kubernetes.io/component: api
+ app.kubernetes.io/part-of: lilishop
+ tier: "api-service"
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ lilishop.service: seller-api
+ template:
+ metadata:
+ labels:
+ lilishop.service: seller-api
+ spec:
+ containers:
+ - image: 192.168.0.108:31320/seller-api:4.2.4.1
+ name: seller-api
+ env:
+ - name: TZ
+ value: Asia/Shanghai
+ - name: JAVA_OPTS
+ value: -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=128m -Xms128m -Xmx256m -Xmn128m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC
+ ports:
+ - name: seller8889
+ containerPort: 8889
+ volumeMounts:
+ - mountPath: /application.yml
+ name: application-yml
+ subPath: application.yml
+ restartPolicy: Always
+ volumes:
+ - configMap:
+ name: api-config
+ name: application-yml
+
+
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: manager-api
+ namespace: lilishop-service
+ labels:
+ app.kubernetes.io/name: manager-api-service
+ app.kubernetes.io/instance: manager-api
+ app.kubernetes.io/version: "4.2.4.1"
+ app.kubernetes.io/component: api
+ app.kubernetes.io/part-of: lilishop
+ tier: "api-service"
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ lilishop.service: manager-api
+ template:
+ metadata:
+ labels:
+ lilishop.service: manager-api
+ spec:
+ containers:
+ - image: 192.168.0.108:31320/manager-api:4.2.4.1
+ name: manager-api
+ env:
+ - name: TZ
+ value: Asia/Shanghai
+ - name: JAVA_OPTS
+ value: -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=128m -Xms128m -Xmx256m -Xmn128m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC
+ ports:
+ - name: manager8887
+ containerPort: 8887
+ volumeMounts:
+ - mountPath: /application.yml
+ name: application-yml
+ subPath: application.yml
+ restartPolicy: Always
+ volumes:
+ - configMap:
+ name: api-config
+ name: application-yml
+
+
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: consumer
+ namespace: lilishop-service
+ labels:
+ app.kubernetes.io/name: consumer-service
+ app.kubernetes.io/instance: buyer-api
+ app.kubernetes.io/version: "4.2.4.1"
+ app.kubernetes.io/component: api
+ app.kubernetes.io/part-of: lilishop
+ tier: "api-service"
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ lilishop.service: consumer
+ template:
+ metadata:
+ labels:
+ lilishop.service: consumer
+ spec:
+ containers:
+ - image: 192.168.0.108:31320/consumer:4.2.4.1
+ name: consumer
+ env:
+ - name: TZ
+ value: Asia/Shanghai
+ - name: JAVA_OPTS
+ value: -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=128m -Xms128m -Xmx256m -Xmn128m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC
+ volumeMounts:
+ - mountPath: /application.yml
+ name: application-yml
+ subPath: application.yml
+ restartPolicy: Always
+ volumes:
+ - configMap:
+ name: api-config
+ name: application-yml
\ No newline at end of file
diff --git a/framework/src/main/java/cn/lili/common/event/TransactionCommitSendMQEvent.java b/framework/src/main/java/cn/lili/common/event/TransactionCommitSendMQEvent.java
index 9f16c1e4..7b3d2e73 100644
--- a/framework/src/main/java/cn/lili/common/event/TransactionCommitSendMQEvent.java
+++ b/framework/src/main/java/cn/lili/common/event/TransactionCommitSendMQEvent.java
@@ -21,9 +21,9 @@ public class TransactionCommitSendMQEvent extends ApplicationEvent {
private final String tag;
@Getter
- private final String message;
+ private final Object message;
- public TransactionCommitSendMQEvent(Object source, String topic, String tag, String message) {
+ public TransactionCommitSendMQEvent(Object source, String topic, String tag, Object message) {
super(source);
this.topic = topic;
this.tag = tag;
diff --git a/framework/src/main/java/cn/lili/modules/connect/serviceimpl/ConnectServiceImpl.java b/framework/src/main/java/cn/lili/modules/connect/serviceimpl/ConnectServiceImpl.java
index e910a6c7..942bf897 100644
--- a/framework/src/main/java/cn/lili/modules/connect/serviceimpl/ConnectServiceImpl.java
+++ b/framework/src/main/java/cn/lili/modules/connect/serviceimpl/ConnectServiceImpl.java
@@ -8,7 +8,9 @@ import cn.lili.cache.CachePrefix;
import cn.lili.common.context.ThreadContextHolder;
import cn.lili.common.enums.ClientTypeEnum;
import cn.lili.common.enums.ResultCode;
+import cn.lili.common.event.TransactionCommitSendMQEvent;
import cn.lili.common.exception.ServiceException;
+import cn.lili.common.properties.RocketmqCustomProperties;
import cn.lili.common.security.AuthUser;
import cn.lili.common.security.context.UserContext;
import cn.lili.common.security.token.Token;
@@ -29,11 +31,13 @@ import cn.lili.modules.system.entity.dto.connect.WechatConnectSetting;
import cn.lili.modules.system.entity.dto.connect.dto.WechatConnectSettingItem;
import cn.lili.modules.system.entity.enums.SettingEnum;
import cn.lili.modules.system.service.SettingService;
+import cn.lili.rocketmq.tags.MemberTagsEnum;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.ApplicationEventPublisher;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -66,6 +70,14 @@ public class ConnectServiceImpl extends ServiceImpl