From 2eb469b228ea810b43864f1596b2a92f410d061e Mon Sep 17 00:00:00 2001 From: paulGao Date: Tue, 19 Jul 2022 15:24:39 +0800 Subject: [PATCH 1/6] improve code --- .../cn/lili/modules/search/mapper/CustomWordsMapper.java | 2 +- .../cn/lili/modules/search/service/CustomWordsService.java | 6 ++++++ .../mybatis/mybatisplus/{ => external}/SpiceBaseMapper.java | 2 +- .../mybatisplus/{ => external}/SpiceSqlInjector.java | 2 +- 4 files changed, 9 insertions(+), 3 deletions(-) rename framework/src/main/java/cn/lili/mybatis/mybatisplus/{ => external}/SpiceBaseMapper.java (89%) rename framework/src/main/java/cn/lili/mybatis/mybatisplus/{ => external}/SpiceSqlInjector.java (96%) diff --git a/framework/src/main/java/cn/lili/modules/search/mapper/CustomWordsMapper.java b/framework/src/main/java/cn/lili/modules/search/mapper/CustomWordsMapper.java index 858eda75..6f3d99ec 100644 --- a/framework/src/main/java/cn/lili/modules/search/mapper/CustomWordsMapper.java +++ b/framework/src/main/java/cn/lili/modules/search/mapper/CustomWordsMapper.java @@ -1,7 +1,7 @@ package cn.lili.modules.search.mapper; import cn.lili.modules.search.entity.dos.CustomWords; -import cn.lili.mybatis.mybatisplus.SpiceBaseMapper; +import cn.lili.mybatis.mybatisplus.external.SpiceBaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** diff --git a/framework/src/main/java/cn/lili/modules/search/service/CustomWordsService.java b/framework/src/main/java/cn/lili/modules/search/service/CustomWordsService.java index 72621949..90d775bc 100644 --- a/framework/src/main/java/cn/lili/modules/search/service/CustomWordsService.java +++ b/framework/src/main/java/cn/lili/modules/search/service/CustomWordsService.java @@ -62,6 +62,12 @@ public interface CustomWordsService extends IService { */ boolean deleteBathByName(List names); + /** + * 批量插入自定义分词 + * + * @param customWordsList 自定义分词列表 + * @return 受影响行数 + */ long insertBatchCustomWords(List customWordsList); /** diff --git a/framework/src/main/java/cn/lili/mybatis/mybatisplus/SpiceBaseMapper.java b/framework/src/main/java/cn/lili/mybatis/mybatisplus/external/SpiceBaseMapper.java similarity index 89% rename from framework/src/main/java/cn/lili/mybatis/mybatisplus/SpiceBaseMapper.java rename to framework/src/main/java/cn/lili/mybatis/mybatisplus/external/SpiceBaseMapper.java index c72055b9..8d56ccec 100644 --- a/framework/src/main/java/cn/lili/mybatis/mybatisplus/SpiceBaseMapper.java +++ b/framework/src/main/java/cn/lili/mybatis/mybatisplus/external/SpiceBaseMapper.java @@ -1,4 +1,4 @@ -package cn.lili.mybatis.mybatisplus; +package cn.lili.mybatis.mybatisplus.external; import java.util.List; diff --git a/framework/src/main/java/cn/lili/mybatis/mybatisplus/SpiceSqlInjector.java b/framework/src/main/java/cn/lili/mybatis/mybatisplus/external/SpiceSqlInjector.java similarity index 96% rename from framework/src/main/java/cn/lili/mybatis/mybatisplus/SpiceSqlInjector.java rename to framework/src/main/java/cn/lili/mybatis/mybatisplus/external/SpiceSqlInjector.java index a7d86ae8..5481579a 100644 --- a/framework/src/main/java/cn/lili/mybatis/mybatisplus/SpiceSqlInjector.java +++ b/framework/src/main/java/cn/lili/mybatis/mybatisplus/external/SpiceSqlInjector.java @@ -1,4 +1,4 @@ -package cn.lili.mybatis.mybatisplus; +package cn.lili.mybatis.mybatisplus.external; import com.baomidou.mybatisplus.core.injector.AbstractMethod; import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector; From d6edb9340383524a7fa28f48323ed39fc47249d9 Mon Sep 17 00:00:00 2001 From: paulGao Date: Thu, 21 Jul 2022 11:52:12 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=EF=BC=8C=E4=BF=AE=E5=A4=8D=E8=87=AA=E5=8A=A8=E7=94=9F=E6=88=90?= =?UTF-8?q?=E7=9A=84es=E5=88=86=E8=AF=8D=E6=97=A0=E6=95=88=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deploy-api.yml | 651 ++++++++++++++++++ .../permission/entity/vo/SystemLogVO.java | 2 +- .../search/entity/dos/CustomWords.java | 2 +- .../serviceimpl/EsGoodsIndexServiceImpl.java | 4 +- 4 files changed, 655 insertions(+), 4 deletions(-) create mode 100644 deploy-api.yml 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/modules/permission/entity/vo/SystemLogVO.java b/framework/src/main/java/cn/lili/modules/permission/entity/vo/SystemLogVO.java index 8718de48..b3a9ec9c 100644 --- a/framework/src/main/java/cn/lili/modules/permission/entity/vo/SystemLogVO.java +++ b/framework/src/main/java/cn/lili/modules/permission/entity/vo/SystemLogVO.java @@ -42,7 +42,7 @@ public class SystemLogVO implements Serializable { @ApiModelProperty(value = "日志记录时间") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") - @Field(type = FieldType.Date, format = DateFormat.basic_date_time) + @Field(type = FieldType.Date, format = DateFormat.basic_date_time, fielddata = true) private Date createTime = new Date(); @ApiModelProperty(value = "请求用户") diff --git a/framework/src/main/java/cn/lili/modules/search/entity/dos/CustomWords.java b/framework/src/main/java/cn/lili/modules/search/entity/dos/CustomWords.java index 4b53e75f..6cc49e54 100644 --- a/framework/src/main/java/cn/lili/modules/search/entity/dos/CustomWords.java +++ b/framework/src/main/java/cn/lili/modules/search/entity/dos/CustomWords.java @@ -37,7 +37,7 @@ public class CustomWords extends BaseEntity { private String name; - @ApiModelProperty(value = "是否禁用") + @ApiModelProperty(value = "是否禁用: 0,禁用;1,不禁用") private Integer disabled; diff --git a/framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsIndexServiceImpl.java b/framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsIndexServiceImpl.java index 4695102d..27f89f79 100644 --- a/framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsIndexServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsIndexServiceImpl.java @@ -294,7 +294,7 @@ public class EsGoodsIndexServiceImpl extends BaseElasticsearchService implements for (EsGoodsAttribute esGoodsAttribute : goods.getAttrList()) { if (keywordsList.stream().noneMatch(i -> i.toLowerCase(Locale.ROOT).equals(esGoodsAttribute.getValue().toLowerCase(Locale.ROOT)))) { keywordsList.add(esGoodsAttribute.getValue()); - customWordsList.add(new CustomWords(esGoodsAttribute.getValue(), 0)); + customWordsList.add(new CustomWords(esGoodsAttribute.getValue(), 1)); } } } @@ -302,7 +302,7 @@ public class EsGoodsIndexServiceImpl extends BaseElasticsearchService implements for (AnalyzeResponse.AnalyzeToken token : tokens) { if (keywordsList.stream().noneMatch(i -> i.toLowerCase(Locale.ROOT).equals(token.getTerm().toLowerCase(Locale.ROOT)))) { keywordsList.add(token.getTerm()); - customWordsList.add(new CustomWords(token.getTerm(), 0)); + customWordsList.add(new CustomWords(token.getTerm(), 1)); } //保存词条进入数据库 } From 0eebc544a6fb4c96eebfc7032b86df73efbe0316 Mon Sep 17 00:00:00 2001 From: paulGao Date: Mon, 25 Jul 2022 20:52:03 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=A7=AF=E5=88=86?= =?UTF-8?q?=E5=95=86=E5=93=81=E8=B4=AD=E4=B9=B0=E6=97=B6=EF=BC=8C=E4=BB=B7?= =?UTF-8?q?=E6=A0=BC=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/lili/modules/order/cart/render/impl/CheckDataRender.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/src/main/java/cn/lili/modules/order/cart/render/impl/CheckDataRender.java b/framework/src/main/java/cn/lili/modules/order/cart/render/impl/CheckDataRender.java index 2d59abc5..c85cfbbd 100644 --- a/framework/src/main/java/cn/lili/modules/order/cart/render/impl/CheckDataRender.java +++ b/framework/src/main/java/cn/lili/modules/order/cart/render/impl/CheckDataRender.java @@ -134,7 +134,7 @@ public class CheckDataRender implements CartRenderStep { cartSkuVO.setErrorMessage("商品库存不足,现有库存数量[" + dataSku.getQuantity() + "]"); } //如果存在商品促销活动,则判定商品促销状态 - if (CollUtil.isNotEmpty(cartSkuVO.getNotFilterPromotionMap()) || Boolean.TRUE.equals(cartSkuVO.getGoodsSku().getPromotionFlag())) { + if (!cartSkuVO.getCartType().equals(CartTypeEnum.POINTS) && (CollUtil.isNotEmpty(cartSkuVO.getNotFilterPromotionMap()) || Boolean.TRUE.equals(cartSkuVO.getGoodsSku().getPromotionFlag()))) { //获取当前最新的促销信息 cartSkuVO.setPromotionMap(this.promotionGoodsService.getCurrentGoodsPromotion(cartSkuVO.getGoodsSku(), tradeDTO.getCartTypeEnum().name())); //设定商品价格 From 99479e722a548734c818c27d79ddd3094edaf59e Mon Sep 17 00:00:00 2001 From: paulGao Date: Tue, 26 Jul 2022 19:18:01 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=B0=8F=E7=A8=8B?= =?UTF-8?q?=E5=BA=8F=E6=B3=A8=E5=86=8C=E7=94=A8=E6=88=B7=E6=B2=A1=E6=9C=89?= =?UTF-8?q?=E5=8F=91=E9=80=81=E4=BC=9A=E5=91=98=E6=B3=A8=E5=86=8C=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../event/TransactionCommitSendMQEvent.java | 4 +-- .../serviceimpl/ConnectServiceImpl.java | 20 +++++++++++--- .../member/serviceimpl/MemberServiceImpl.java | 26 +++++++------------ 3 files changed, 29 insertions(+), 21 deletions(-) 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 impl private MemberTokenGenerate memberTokenGenerate; @Autowired private Cache cache; + /** + * RocketMQ 配置 + */ + @Autowired + private RocketmqCustomProperties rocketmqCustomProperties; + + @Autowired + private ApplicationEventPublisher applicationEventPublisher; @Override @Transactional(rollbackFor = Exception.class) @@ -235,6 +247,8 @@ public class ConnectServiceImpl extends ServiceImpl impl memberService.save(newMember); newMember = memberService.findByUsername(newMember.getUsername()); bindMpMember(openId, unionId, newMember); + // 发送会员注册信息 + applicationEventPublisher.publishEvent(new TransactionCommitSendMQEvent("new member register", rocketmqCustomProperties.getMemberTopic(), MemberTagsEnum.MEMBER_REGISTER.name(), newMember)); return memberTokenGenerate.createToken(newMember, true); } @@ -262,9 +276,9 @@ public class ConnectServiceImpl extends ServiceImpl impl * 这样,微信小程序注册之后,其他app 公众号页面,都可以实现绑定自动登录功能 *

* - * @param openId 微信openid - * @param unionId 微信unionid - * @param member 会员 + * @param openId 微信openid + * @param unionId 微信unionid + * @param member 会员 */ private void bindMpMember(String openId, String unionId, Member member) { diff --git a/framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberServiceImpl.java b/framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberServiceImpl.java index c7eb0a70..71397bbf 100644 --- a/framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberServiceImpl.java @@ -8,6 +8,7 @@ import cn.lili.cache.CachePrefix; import cn.lili.common.context.ThreadContextHolder; import cn.lili.common.enums.ResultCode; import cn.lili.common.enums.SwitchEnum; +import cn.lili.common.event.TransactionCommitSendMQEvent; import cn.lili.common.exception.ServiceException; import cn.lili.common.properties.RocketmqCustomProperties; import cn.lili.common.security.AuthUser; @@ -35,7 +36,6 @@ import cn.lili.modules.store.entity.dos.Store; import cn.lili.modules.store.entity.enums.StoreStatusEnum; import cn.lili.modules.store.service.StoreService; import cn.lili.mybatis.util.PageUtil; -import cn.lili.rocketmq.RocketmqSendCallbackBuilder; import cn.lili.rocketmq.tags.MemberTagsEnum; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; @@ -43,8 +43,8 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import org.apache.rocketmq.spring.core.RocketMQTemplate; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationEventPublisher; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -88,11 +88,9 @@ public class MemberServiceImpl extends ServiceImpl impleme */ @Autowired private RocketmqCustomProperties rocketmqCustomProperties; - /** - * RocketMQ - */ + @Autowired - private RocketMQTemplate rocketMQTemplate; + private ApplicationEventPublisher applicationEventPublisher; /** * 缓存 */ @@ -247,8 +245,8 @@ public class MemberServiceImpl extends ServiceImpl impleme member.setId(SnowFlake.getIdStr()); //保存会员 this.save(member); - String destination = rocketmqCustomProperties.getMemberTopic() + ":" + MemberTagsEnum.MEMBER_REGISTER.name(); - rocketMQTemplate.asyncSend(destination, member, RocketmqSendCallbackBuilder.commonCallback()); + // 发送会员注册信息 + applicationEventPublisher.publishEvent(new TransactionCommitSendMQEvent("new member register", rocketmqCustomProperties.getMemberTopic(), MemberTagsEnum.MEMBER_REGISTER.name(), member)); } @Override @@ -288,10 +286,7 @@ public class MemberServiceImpl extends ServiceImpl impleme throw new ServiceException(ResultCode.USER_NOT_LOGIN); } Member member = this.getById(tokenUser.getId()); - if (member.getPassword().equals(DEFAULT_PASSWORD)) { - return true; - } - return false; + return member.getPassword().equals(DEFAULT_PASSWORD); } @@ -350,8 +345,7 @@ public class MemberServiceImpl extends ServiceImpl impleme Member member = new Member(userName, new BCryptPasswordEncoder().encode(password), mobilePhone); //注册成功后用户自动登录 registerHandler(member); - Token token = memberTokenGenerate.createToken(member, false); - return token; + return memberTokenGenerate.createToken(member, false); } @Override @@ -463,8 +457,8 @@ public class MemberServiceImpl extends ServiceImpl impleme memberPointMessage.setPoint(point); memberPointMessage.setType(type); memberPointMessage.setMemberId(memberId); - String destination = rocketmqCustomProperties.getMemberTopic() + ":" + MemberTagsEnum.MEMBER_POINT_CHANGE.name(); - rocketMQTemplate.asyncSend(destination, memberPointMessage, RocketmqSendCallbackBuilder.commonCallback()); + // 发送会员注册信息 + applicationEventPublisher.publishEvent(new TransactionCommitSendMQEvent("new member register", rocketmqCustomProperties.getMemberTopic(), MemberTagsEnum.MEMBER_REGISTER.name(), member)); return true; } return false; From a2a923809e89feec9e075f30ada226a210909003 Mon Sep 17 00:00:00 2001 From: paulGao Date: Wed, 27 Jul 2022 12:06:47 +0800 Subject: [PATCH 5/6] add transactional --- .../modules/member/serviceimpl/MemberServiceImpl.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberServiceImpl.java b/framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberServiceImpl.java index 71397bbf..a26632cf 100644 --- a/framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberServiceImpl.java @@ -180,6 +180,7 @@ public class MemberServiceImpl extends ServiceImpl impleme } @Override + @Transactional public Token autoRegister(ConnectAuthUser authUser) { if (CharSequenceUtil.isEmpty(authUser.getNickname())) { @@ -223,6 +224,7 @@ public class MemberServiceImpl extends ServiceImpl impleme } @Override + @Transactional public Token mobilePhoneLogin(String mobilePhone) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("mobile", mobilePhone); @@ -241,7 +243,8 @@ public class MemberServiceImpl extends ServiceImpl impleme * * @param member */ - private void registerHandler(Member member) { + @Transactional + public void registerHandler(Member member) { member.setId(SnowFlake.getIdStr()); //保存会员 this.save(member); @@ -338,6 +341,7 @@ public class MemberServiceImpl extends ServiceImpl impleme } @Override + @Transactional public Token register(String userName, String password, String mobilePhone) { //检测会员信息 checkMember(userName, mobilePhone); @@ -382,6 +386,7 @@ public class MemberServiceImpl extends ServiceImpl impleme } @Override + @Transactional public Member addMember(MemberAddDTO memberAddDTO) { //检测会员信息 @@ -458,7 +463,7 @@ public class MemberServiceImpl extends ServiceImpl impleme memberPointMessage.setType(type); memberPointMessage.setMemberId(memberId); // 发送会员注册信息 - applicationEventPublisher.publishEvent(new TransactionCommitSendMQEvent("new member register", rocketmqCustomProperties.getMemberTopic(), MemberTagsEnum.MEMBER_REGISTER.name(), member)); + applicationEventPublisher.publishEvent(new TransactionCommitSendMQEvent("update member point", rocketmqCustomProperties.getMemberTopic(), MemberTagsEnum.MEMBER_POINT_CHANGE.name(), memberPointMessage)); return true; } return false; From ed976e90dcaedd55321a6f01aaa0c8ac4aaaeba9 Mon Sep 17 00:00:00 2001 From: paulGao Date: Wed, 27 Jul 2022 17:21:48 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BF=83=E9=94=80?= =?UTF-8?q?=E9=AA=8C=E8=AF=81=E5=95=86=E5=93=81=EF=BC=8C=E6=A3=80=E6=9F=A5?= =?UTF-8?q?=E5=95=86=E5=93=81=E6=98=AF=E5=90=A6=E5=8F=AF=E4=BB=A5=E5=8F=82?= =?UTF-8?q?=E4=B8=8E=E4=BF=83=E9=94=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../goods/service/GoodsSkuService.java | 10 ++++- .../serviceimpl/GoodsSkuServiceImpl.java | 10 +++++ .../member/serviceimpl/MemberServiceImpl.java | 1 - .../serviceimpl/CouponServiceImpl.java | 2 +- .../KanjiaActivityGoodsServiceImpl.java | 6 +-- .../KanjiaActivityServiceImpl.java | 2 +- .../serviceimpl/PintuanServiceImpl.java | 2 +- .../serviceimpl/PointsGoodsServiceImpl.java | 2 +- .../PromotionGoodsServiceImpl.java | 39 +------------------ .../serviceimpl/SeckillApplyServiceImpl.java | 6 +-- 10 files changed, 30 insertions(+), 50 deletions(-) diff --git a/framework/src/main/java/cn/lili/modules/goods/service/GoodsSkuService.java b/framework/src/main/java/cn/lili/modules/goods/service/GoodsSkuService.java index 8a322a79..a78f9bb0 100644 --- a/framework/src/main/java/cn/lili/modules/goods/service/GoodsSkuService.java +++ b/framework/src/main/java/cn/lili/modules/goods/service/GoodsSkuService.java @@ -82,6 +82,14 @@ public interface GoodsSkuService extends IService { */ GoodsSku getGoodsSkuByIdFromCache(String id); + /** + * 从缓存中获取可参与促销商品 + * + * @param skuId skuid + * @return 商品详情 + */ + GoodsSku getCanPromotionGoodsSkuByIdFromCache(String skuId); + /** * 获取商品sku详情 * @@ -143,7 +151,7 @@ public interface GoodsSkuService extends IService { /** * 分页查询商品sku信息 * - * @param page 分页参数 + * @param page 分页参数 * @param queryWrapper 查询参数 * @return 商品sku信息 */ diff --git a/framework/src/main/java/cn/lili/modules/goods/serviceimpl/GoodsSkuServiceImpl.java b/framework/src/main/java/cn/lili/modules/goods/serviceimpl/GoodsSkuServiceImpl.java index 5ab87344..5438ae95 100644 --- a/framework/src/main/java/cn/lili/modules/goods/serviceimpl/GoodsSkuServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/goods/serviceimpl/GoodsSkuServiceImpl.java @@ -22,6 +22,7 @@ import cn.lili.modules.goods.entity.dto.GoodsSearchParams; import cn.lili.modules.goods.entity.dto.GoodsSkuDTO; import cn.lili.modules.goods.entity.dto.GoodsSkuStockDTO; import cn.lili.modules.goods.entity.enums.GoodsAuthEnum; +import cn.lili.modules.goods.entity.enums.GoodsSalesModeEnum; import cn.lili.modules.goods.entity.enums.GoodsStatusEnum; import cn.lili.modules.goods.entity.vos.GoodsSkuSpecVO; import cn.lili.modules.goods.entity.vos.GoodsSkuVO; @@ -237,6 +238,15 @@ public class GoodsSkuServiceImpl extends ServiceImpl i return goodsSku; } + @Override + public GoodsSku getCanPromotionGoodsSkuByIdFromCache(String skuId) { + GoodsSku goodsSku = this.getGoodsSkuByIdFromCache(skuId); + if (goodsSku != null && GoodsSalesModeEnum.WHOLESALE.name().equals(goodsSku.getSalesModel())) { + throw new ServiceException(ResultCode.PROMOTION_GOODS_DO_NOT_JOIN_WHOLESALE, goodsSku.getGoodsName()); + } + return goodsSku; + } + @Override public Map getGoodsSkuDetail(String goodsId, String skuId) { Map map = new HashMap<>(16); diff --git a/framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberServiceImpl.java b/framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberServiceImpl.java index a26632cf..86031a0c 100644 --- a/framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberServiceImpl.java @@ -462,7 +462,6 @@ public class MemberServiceImpl extends ServiceImpl impleme memberPointMessage.setPoint(point); memberPointMessage.setType(type); memberPointMessage.setMemberId(memberId); - // 发送会员注册信息 applicationEventPublisher.publishEvent(new TransactionCommitSendMQEvent("update member point", rocketmqCustomProperties.getMemberTopic(), MemberTagsEnum.MEMBER_POINT_CHANGE.name(), memberPointMessage)); return true; } diff --git a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/CouponServiceImpl.java b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/CouponServiceImpl.java index 4f08616f..167fd2eb 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/CouponServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/CouponServiceImpl.java @@ -291,7 +291,7 @@ public class CouponServiceImpl extends AbstractPromotionsServiceImpl promotionGoods = PromotionTools.promotionGoodsInit(pintuan.getPromotionGoodsList(), pintuan, PromotionTypeEnum.PINTUAN); for (PromotionGoods promotionGood : promotionGoods) { - if (goodsSkuService.getGoodsSkuByIdFromCache(promotionGood.getSkuId()) == null) { + if (goodsSkuService.getCanPromotionGoodsSkuByIdFromCache(promotionGood.getSkuId()) == null) { log.error("商品[" + promotionGood.getGoodsName() + "]不存在或处于不可售卖状态!"); throw new ServiceException("商品[" + promotionGood.getGoodsName() + "]不存在或处于不可售卖状态!"); } diff --git a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/PointsGoodsServiceImpl.java b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/PointsGoodsServiceImpl.java index 95f37f19..2be950f4 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/PointsGoodsServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/PointsGoodsServiceImpl.java @@ -278,7 +278,7 @@ public class PointsGoodsServiceImpl extends AbstractPromotionsServiceImpl findSkuValidPromotion(String skuId, String storeIds) { - GoodsSku sku = goodsSkuService.getGoodsSkuByIdFromCache(skuId); + GoodsSku sku = goodsSkuService.getCanPromotionGoodsSkuByIdFromCache(skuId); if (sku == null) { return new ArrayList<>(); } @@ -316,40 +313,6 @@ public class PromotionGoodsServiceImpl extends ServiceImpl entityList) { - for (PromotionGoods promotionGoods : entityList) { - this.checkGoodsSku(promotionGoods.getSkuId()); - } - return super.saveBatch(entityList); - } - - @Override - public boolean saveOrUpdateBatch(Collection entityList) { - for (PromotionGoods promotionGoods : entityList) { - this.checkGoodsSku(promotionGoods.getSkuId()); - } - return super.saveOrUpdateBatch(entityList); - } - - /** - * 检查是否为不能参加促销活动的商品 - * - * @param skuId 商品skuId - */ - private void checkGoodsSku(String skuId) { - GoodsSku goodsSku = goodsSkuService.getGoodsSkuByIdFromCache(skuId); - if (goodsSku != null && GoodsSalesModeEnum.WHOLESALE.name().equals(goodsSku.getSalesModel())) { - throw new ServiceException(ResultCode.PROMOTION_GOODS_DO_NOT_JOIN_WHOLESALE, goodsSku.getGoodsName()); - } - } - private void setGoodsPromotionInfo(GoodsSku dataSku, Map.Entry promotionInfo) { JSONObject promotionsObj = JSONUtil.parseObj(promotionInfo.getValue()); PromotionGoodsSearchParams searchParams = new PromotionGoodsSearchParams(); diff --git a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/SeckillApplyServiceImpl.java b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/SeckillApplyServiceImpl.java index 07572e9c..6d5eaec9 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/SeckillApplyServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/SeckillApplyServiceImpl.java @@ -161,7 +161,7 @@ public class SeckillApplyServiceImpl extends ServiceImpl promotionGoodsList = new ArrayList<>(); for (SeckillApplyVO seckillApply : seckillApplyList) { //获取参与活动的商品信息 - GoodsSku goodsSku = goodsSkuService.getGoodsSkuByIdFromCache(seckillApply.getSkuId()); + GoodsSku goodsSku = goodsSkuService.getCanPromotionGoodsSkuByIdFromCache(seckillApply.getSkuId()); if (!goodsSku.getStoreId().equals(storeId)) { continue; } @@ -262,7 +262,7 @@ public class SeckillApplyServiceImpl extends ServiceImpl list = this.list(queryWrapper).stream().filter(i -> i.getTimeLine() != null && seckill.getHours().contains(i.getTimeLine().toString())).collect(Collectors.toList()); for (SeckillApply seckillApply : list) { //获取参与活动的商品信息 - GoodsSku goodsSku = goodsSkuService.getGoodsSkuByIdFromCache(seckillApply.getSkuId()); + GoodsSku goodsSku = goodsSkuService.getCanPromotionGoodsSkuByIdFromCache(seckillApply.getSkuId()); //获取促销商品 PromotionGoods promotionGoods = this.setSeckillGoods(goodsSku, seckillApply, seckill); promotionGoodsList.add(promotionGoods); @@ -373,7 +373,7 @@ public class SeckillApplyServiceImpl extends ServiceImpl collect = seckillApplyList.stream().filter(i -> i.getTimeLine().equals(startTimeline) && i.getPromotionApplyStatus().equals(PromotionsApplyStatusEnum.PASS.name())).collect(Collectors.toList()); for (SeckillApply seckillApply : collect) { - GoodsSku goodsSku = goodsSkuService.getGoodsSkuByIdFromCache(seckillApply.getSkuId()); + GoodsSku goodsSku = goodsSkuService.getCanPromotionGoodsSkuByIdFromCache(seckillApply.getSkuId()); if (goodsSku != null) { SeckillGoodsVO goodsVO = new SeckillGoodsVO(); BeanUtil.copyProperties(seckillApply, goodsVO);