823 Commits

Author SHA1 Message Date
chc
e8e2e8e315 v4.2.5 2022-10-21 11:27:28 +08:00
chc
5a1c6b9e7f v4.2.5 2022-10-21 11:26:55 +08:00
chc
1d98d8eecb 店员 2022-10-20 17:28:37 +08:00
OceansDeep
fa2806e3aa !245 fix: 修复商品模版/商品草稿时,增加检查sku列表和配送规则列表不为空
Merge pull request !245 from OceansDeep/feature/pg
2022-10-18 02:35:59 +00:00
paulGao
761d9f45da fix: 修复商品模版/商品草稿时,增加检查sku列表和配送规则列表不为空 2022-10-18 10:34:33 +08:00
OceansDeep
07d9cfe5bc !244 fix: 修复商品模版/商品草稿,保存批发规则无效问题
Merge pull request !244 from OceansDeep/feature/pg
2022-10-14 07:47:57 +00:00
paulGao
b9d7e0787c fix: 修复商品模版/商品草稿,保存批发规则无效问题 2022-10-14 10:31:47 +08:00
paulGao
4ea6660402 fix: 修复售后订单完成后没有返还优惠券问题 2022-10-14 10:30:27 +08:00
Chopper
8391596e2a Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop 2022-10-13 14:32:46 +08:00
Chopper
0f1cfc129c keys判定优化为精准判定 2022-10-13 14:32:40 +08:00
OceansDeep
3e33f9b363 !242 修复bug,优化代码
Merge pull request !242 from OceansDeep/feature/pg
2022-10-13 04:04:40 +00:00
paulGao
a76cc4693f fix: 修复首页获取秒杀活动时,有时会报错问题 2022-10-13 12:03:01 +08:00
paulGao
d75bb7b7cf pref:
优化商品草稿/商品模版,sku和批发规则保存规则。

BREAKING CHANGE: li_wholesale 表 增加 template_id(商品模版id)字段
2022-10-13 12:02:02 +08:00
paulGao
6c87de7a97 pref: 优化售后日志,状态显示 2022-10-13 11:56:16 +08:00
paulGao
0ba493d71d fix: 修复店铺商品标签排序不正确问题 2022-10-13 11:55:25 +08:00
paulGao
bd0f1f0b23 fix: 修复退还优惠券时,不能同时退还商家和平台 2022-10-13 11:54:36 +08:00
Chopper
d45a96a919 购物车渲染注释修正 2022-10-13 11:06:53 +08:00
Chopper
55e02dde5e token无法验证问题处理 2022-10-12 10:36:38 +08:00
chc
cb7814cbd6 买家端专题 2022-10-11 17:13:12 +08:00
Chopper
2b1abc8aeb Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop 2022-10-10 15:22:55 +08:00
OceansDeep
3376ce54cc !241 fix: 更新商品状态时,更新es索引信息
Merge pull request !241 from OceansDeep/feature/pg
2022-10-08 03:54:30 +00:00
paulGao
d35b4d1ad6 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop into feature/pg 2022-10-08 11:52:00 +08:00
paulGao
7a2c45ddb5 fix: 更新商品状态时,更新es索引信息 2022-10-08 11:51:36 +08:00
Chopper
d3648a7e89 无关紧要的地方减少keys使用,改为精准匹配 2022-09-29 09:26:48 +08:00
Chopper
c794bb6a26 redis keys命令可能导致阻塞问题解决以及单元测试 2022-09-29 09:26:18 +08:00
Chopper711
3f8b2f7a30 !233 导出待发货订单bug修复 商品价格显示成订单价格 from lqc520
Merge pull request !233 from lqc520/master

感谢反馈
2022-09-28 07:46:31 +00:00
Chopper711
2bc6d1bc9a !240 🐛 修复在部分linux服务器上由此导致接口中中文参数乱码问题 from 聆听
Merge pull request !240 from 聆听/N/A
感谢反馈
2022-09-28 07:45:46 +00:00
聆听
ee53ddd097 🐛 修复在部分linux服务器上由此导致接口中中文参数乱码问题
Signed-off-by: 聆听 <sunlisten.gzm@foxmail.com>
2022-09-23 09:29:30 +00:00
OceansDeep
1705817128 !239 fix: 更新商品状态时,更新es索引信息
Merge pull request !239 from OceansDeep/feature/pg
2022-09-22 10:40:13 +00:00
paulGao
0f8936e9a9 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop into feature/pg 2022-09-22 18:36:50 +08:00
paulGao
e3792cde12 fix: 更新商品状态时,更新es索引信息 2022-09-22 18:36:26 +08:00
Chopper
4792d83119 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop 2022-09-22 17:51:26 +08:00
Chopper
27888f503a 去除无效的控制器,规范站点基础设置控制器的规范 2022-09-22 17:51:18 +08:00
OceansDeep
8b0823f504 !238 fix: 优化统一接口返回值
Merge pull request !238 from OceansDeep/feature/pg
2022-09-21 08:34:52 +00:00
paulGao
12476fc173 fix: 优化统一接口返回值 2022-09-21 16:28:46 +08:00
OceansDeep
56cc0a92f6 !237 fix: 修复查询系统日志报错问题,修复添加直播商品报错问题
Merge pull request !237 from OceansDeep/feature/pg
2022-09-20 11:07:12 +00:00
paulGao
88db57c64b fix: 修复查询系统日志报错问题,修复添加直播商品报错问题 2022-09-20 19:06:21 +08:00
OceansDeep
cd1f465a81 !236 fix: 优化库存扣减后清除商品缓存信息
Merge pull request !236 from OceansDeep/feature/pg
2022-09-20 02:17:47 +00:00
paulGao
a80b5ed961 fix: 优化库存扣减后清除商品缓存信息 2022-09-20 09:52:22 +08:00
OceansDeep
7f54cb0de8 !235 fix: 优化扫描登录相关代码
Merge pull request !235 from OceansDeep/feature/pg
2022-09-19 01:30:54 +00:00
paulGao
3549b216b0 fix: 优化扫描登录相关代码 2022-09-19 09:23:56 +08:00
OceansDeep
3786c53cad !219 app端扫码登录
Merge pull request !219 from @xiaochangbai/feature/code_scanning_login
2022-09-16 02:14:49 +00:00
OceansDeep
178e0d18cd !234 修复查询满减活动和优惠券活动报错问题
Merge pull request !234 from OceansDeep/feature/pg
2022-09-14 09:13:56 +00:00
paulGao
cbdcb6f1ce fix: 修复查询满减活动和优惠券活动报错问题 2022-09-14 17:11:26 +08:00
Chopper
74cc5af5c9 被批量请求报错信息导致磁盘沾满问题处理 2022-09-14 01:32:36 +08:00
lqc520
392d90db57 导出待发货订单bug 商品价格显示成订单价格 2022-09-13 17:23:24 +08:00
Chopper
c87081f673 活动商品在商品下架或者删除时数据未能同步处理的问题 2022-09-13 15:17:53 +08:00
paulGao
f375432e7d fix: 为部分异常捕捉添加错误日志展示 2022-09-13 11:33:39 +08:00
OceansDeep
3011645c44 !232 fix: 修复编辑规格值顺序错误问题
Merge pull request !232 from OceansDeep/feature/pg
2022-09-09 11:41:28 +00:00
paulGao
322256cc5a fix: 修复编辑规格值顺序错误问题 2022-09-09 19:08:24 +08:00
OceansDeep
02d017eb9e !231 fix: 修复保存草稿商品规格顺序问题
Merge pull request !231 from OceansDeep/feature/pg
2022-09-09 07:40:59 +00:00
paulGao
2f13bce20d fix: 修复保存草稿商品规格顺序问题 2022-09-09 15:32:49 +08:00
Chopper
e2bf90e340 编译问题处理 2022-09-06 19:36:11 +08:00
Chopper
9bc1247544 促销活动清洗,先处理砍价,其他的后续处理 2022-09-06 19:34:43 +08:00
Chopper
90a2ec9719 商品删除则删除相关促销商品 2022-09-06 19:22:34 +08:00
Chopper
b61cfe8b6b 虚拟商品设置物流模版问题兼容处理 2022-09-06 19:16:26 +08:00
Chopper711
28d57dff72 update README.md.
Signed-off-by: Chopper711 <1814994716@qq.com>
2022-09-06 02:39:07 +00:00
chc
55270548c7 SQL,福禄清除 2022-09-05 14:43:37 +08:00
Chopper
a45f9e7843 特喵的 mybatis bug方法名重复会出现问题,唉服了 2022-09-02 20:43:18 +08:00
Chopper
37cfcde476 参数无法识别问题处理 2022-09-02 20:02:39 +08:00
Chopper
9517f0eedf 统计占位符问题处理 2022-09-02 19:45:52 +08:00
Chopper
a9da0cdcc8 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop 2022-09-02 19:09:22 +08:00
Chopper
b3c537d034 订单统计付款人数bug处理 2022-09-02 19:09:17 +08:00
chc
2d4cf29da8 导出功能,福禄清除 2022-09-02 10:31:35 +08:00
chc
eea47aea55 导出 2022-09-02 09:52:11 +08:00
chc
2648a0b57e 店员,商品导入,sql 2022-09-01 18:53:12 +08:00
OceansDeep
46dfe4650e !230 优化规格信息存储顺序,HashMap 替换为 LinkedHashMap
Merge pull request !230 from OceansDeep/feature/pg
2022-09-01 09:37:12 +00:00
paulGao
7eca11d51b 优化规格信息存储顺序,HashMap 替换为 LinkedHashMap 2022-09-01 17:27:13 +08:00
Chopper711
43022a9838 !229 bug 优惠券领取数量错误 from @Fxz
Merge pull request !229 from Fxz/N/A
2022-09-01 01:59:23 +00:00
chc
b873ec2095 电子面单接口完善,商家导入商品功能 2022-08-31 17:37:07 +08:00
Fxz
18f8718de2 bug 优惠券领取数量错误
对于每一张优惠券扣减数量应该是会员数量 * 每张优惠券发放的数量 
即memberList.size()*couponActivityItem.getNum() 也就是memberCouponList.size()

![](https://minio.pigx.vip/oss/2022/08/nb5p9Y.png)
![](https://minio.pigx.vip/oss/2022/08/eMZZnl.png)

如演示环境,3人没人领取3张,应该是9张

Signed-off-by: Fxz <2235602974@qq.com>
2022-08-31 09:11:06 +00:00
OceansDeep
c6c0801d14 !228 优惠券折扣条件判断不可能同时成立
Merge pull request !228 from Fxz/N/A
2022-08-30 09:18:23 +00:00
Chopper
196d27b7c5 店铺入驻问题处理 2022-08-29 15:48:39 +08:00
Fxz
daed961a99 优惠券折扣条件判断不可能同时成立
Signed-off-by: Fxz <2235602974@qq.com>
2022-08-27 06:07:44 +00:00
OceansDeep
8387e03254 !227 修复consumer每日任务更新会员评价异常问题;优化生成每日秒杀活动
Merge pull request !227 from OceansDeep/feature/pg
2022-08-25 02:48:55 +00:00
paulGao
b6d43a069f a 2022-08-25 10:47:31 +08:00
paulGao
558eea94e2 修复consumer每日任务更新会员评价异常问题;优化生成每日秒杀活动 2022-08-25 10:43:56 +08:00
OceansDeep
f5f99efff6 !226 增加商品sku参数空值判断
Merge pull request !226 from OceansDeep/feature/pg
2022-08-19 09:47:26 +00:00
paulGao
cc95fa92e7 增加商品sku参数空值判断 2022-08-19 17:46:12 +08:00
OceansDeep
9eba3287b2 !225 增加订单取消返还优惠券
Merge pull request !225 from OceansDeep/feature/pg
2022-08-16 00:36:58 +00:00
paulGao
46845dd4b9 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop into feature/pg 2022-08-15 09:42:52 +08:00
paulGao
c3be2cdfe5 增加订单取消返还优惠券 2022-08-12 17:35:42 +08:00
OceansDeep
443cf1829e !224 修复秒杀活动商品时间不正确问题
Merge pull request !224 from OceansDeep/feature/pg
2022-08-12 03:02:33 +00:00
paulGao
ae833b245e 修复秒杀活动商品时间不正确问题 2022-08-12 11:00:33 +08:00
OceansDeep
88338877b0 !223 优化秒杀活动获取时,当前时间大于活动最后一个时间时,显示最后一个时间
Merge pull request !223 from OceansDeep/feature/pg
2022-08-11 12:25:57 +00:00
paulGao
0d74a4aecc 优化秒杀活动获取时,当前时间大于活动最后一个时间时,显示最后一个时间。优化订单促销类型显示 2022-08-11 20:17:58 +08:00
OceansDeep
1cf0496cd1 !222 优化清除无效促销活动任务,改为批量清除
Merge pull request !222 from OceansDeep/feature/pg
2022-08-11 04:01:38 +00:00
paulGao
050b026166 优化清除无效促销活动任务,改为批量清除 2022-08-11 11:57:58 +08:00
Chopper
8d95319e39 每日任务日志前缀修复 2022-08-11 10:16:53 +08:00
OceansDeep
fe12b0a665 !221 修复新增编辑商品时,生成商品索引时,参数没有传递问题。优化商品新增编辑代码
Merge pull request !221 from OceansDeep/feature/pg
2022-08-10 12:37:17 +00:00
paulGao
93dd2e06d8 修复新增编辑商品时,生成商品索引时,参数没有传递问题。优化商品新增编辑代码 2022-08-10 20:27:38 +08:00
fengtianyangyang
05f29a264e 启动报错 2022-08-09 20:26:40 +08:00
fengtianyangyang
26dd8ed13a Merge branch 'master' of https://gitee.com/beijing_hongye_huicheng/lilishop into fengtianyangyang_clerk
 Conflicts:
	DB/version4.2.3toMASTER.sql
	common-api/src/main/java/cn/lili/controller/common/SiteController.java
	common-api/src/main/java/cn/lili/controller/common/UploadController.java
	config/application.yml
	framework/src/main/java/cn/lili/modules/goods/entity/dos/Goods.java
	framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberServiceImpl.java
	framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java
	framework/src/main/java/cn/lili/modules/page/serviceimpl/PageDataServiceImpl.java
2022-08-09 18:54:19 +08:00
Chopper
72c58059bd 优惠券活动创建限制 2022-08-09 16:08:54 +08:00
xiaochangbai
7e596d47a6 fix: 修复相关bug 2022-08-08 11:11:28 +08:00
Chopper
c38a8c0475 地址重复存在的问题处理 2022-08-08 09:14:15 +08:00
xiaochangbai
15adbf489e feat: app扫码登录 2022-08-07 21:35:27 +08:00
Chopper
98b863be6f 后台操作店铺验证存在问题处理 2022-08-05 17:14:20 +08:00
Chopper
ecd40523d4 演示站点限制修改密码 2022-08-04 11:17:14 +08:00
OceansDeep
7f6de6e64e !218 修复商品索引生成报错问题
Merge pull request !218 from OceansDeep/feature/pg
2022-08-02 07:22:56 +00:00
paulGao
002163fbdc 修复商品索引生成报错问题 2022-08-02 15:21:00 +08:00
paulGao
da9ea504fb Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop into feature/pg 2022-08-02 15:15:43 +08:00
Chopper
bb171f6e23 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop
# Conflicts:
#	framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsIndexServiceImpl.java
2022-08-02 10:57:31 +08:00
Chopper
b860c2eed0 优化结构 2022-08-02 10:52:47 +08:00
Chopper
fdf81d1b39 分词问题优化 2022-08-02 10:51:10 +08:00
paulGao
40bf6d3010 优化获取秒杀活动 2022-07-27 22:13:56 +08:00
OceansDeep
2d63d36f51 !217 优化促销验证商品,检查商品是否可以参与促销
Merge pull request !217 from OceansDeep/feature/pg
2022-07-27 09:22:37 +00:00
paulGao
ed976e90dc 优化促销验证商品,检查商品是否可以参与促销 2022-07-27 17:21:48 +08:00
OceansDeep
6f4994b5da !216 add transactional
Merge pull request !216 from OceansDeep/feature/pg
2022-07-27 04:07:29 +00:00
paulGao
a2a923809e add transactional 2022-07-27 12:06:47 +08:00
OceansDeep
8d06ccace9 !215 修复小程序注册用户没有发送会员注册信息问题
Merge pull request !215 from OceansDeep/feature/pg
2022-07-26 11:30:20 +00:00
paulGao
99479e722a 修复小程序注册用户没有发送会员注册信息问题 2022-07-26 19:18:01 +08:00
OceansDeep
70890cdc19 !214 修复积分商品购买时,价格问题
Merge pull request !214 from OceansDeep/feature/pg
2022-07-25 13:00:47 +00:00
paulGao
0eebc544a6 修复积分商品购买时,价格问题 2022-07-25 20:52:03 +08:00
OceansDeep
12280e5769 !213 优化代码,修复自动生成的es分词无效问题
Merge pull request !213 from OceansDeep/feature/pg
2022-07-21 03:53:36 +00:00
paulGao
4ec2c1b943 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop into feature/pg 2022-07-21 11:52:17 +08:00
paulGao
d6edb93403 优化代码,修复自动生成的es分词无效问题 2022-07-21 11:52:12 +08:00
Chopper
3236a05ae9 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop 2022-07-19 18:45:42 +08:00
Chopper
5576ae7305 解决 lilishop4.2.4中存在序列化购物车,促销信息会在序列化后丢失,无法反序列化。 2022-07-19 18:45:08 +08:00
Chopper
d5aadf6926 店铺入驻分批保存可能存在无法入住问题解决 2022-07-19 18:38:38 +08:00
paulGao
2eb469b228 improve code 2022-07-19 15:24:39 +08:00
Chopper
088c6faae1 店铺保存问题处理,解决可能存在多次入驻店铺无法申请失败问题 2022-07-19 15:15:59 +08:00
OceansDeep
04f7d22e3f !212 优化商品索引的促销信息生成。优化批量生成分词
Merge pull request !212 from OceansDeep/feature/pg
2022-07-18 11:12:12 +00:00
paulGao
950274f6be 优化商品索引的促销信息生成。优化批量生成分词 2022-07-18 19:06:17 +08:00
OceansDeep
c6596fff1a !211 更新部分es日志
Merge pull request !211 from OceansDeep/feature/pg
2022-07-18 04:11:55 +00:00
paulGao
7cbbc57514 更新部分es日志 2022-07-18 12:11:16 +08:00
fengtianyangyang
8041a4a4fc 店铺退款流水金额计算错误 2022-07-15 14:27:10 +08:00
OceansDeep
1fa247aa35 !210 优化保存楼层装修。优化管理端优惠券搜索
Merge pull request !210 from OceansDeep/feature/pg
2022-07-13 13:05:15 +00:00
paulGao
7de49dcfb8 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop into feature/pg 2022-07-13 20:03:12 +08:00
paulGao
b21e307640 优化保存楼层装修。优化管理端优惠券搜索 2022-07-13 20:03:05 +08:00
Chopper
aae7eedd49 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop 2022-07-13 19:06:06 +08:00
Chopper
bce60310c5 minio增加字段,可配置前端访问地址。endpoint可以继续走局域网ip 2022-07-13 19:05:59 +08:00
OceansDeep
d17cb4ce96 !209 修复批发商品订单下单时,订单单项价格错误问题
Merge pull request !209 from OceansDeep/feature/pg
2022-07-12 09:16:09 +00:00
paulGao
4b25a03b1d Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop into feature/pg 2022-07-12 17:13:35 +08:00
paulGao
682433efe4 修复批发商品订单下单时,订单单项价格错误问题 2022-07-12 17:13:17 +08:00
Chopper
a6f28d67eb 代码格式化一下 2022-07-12 10:17:34 +08:00
Chopper
c663aa2799 minio上传失败前端无感知问题处理 2022-07-11 18:53:07 +08:00
Chopper
2c02b816b5 一个分销时间展示以及一个字段没有正确的存储值问题处理 2022-07-11 18:52:31 +08:00
Chopper711
d14b87729a !208 解决短信发送失败 时,前端无感知问题。from zypy333/N/A
Merge pull request !208 from zypy333/N/A
2022-07-11 03:51:16 +00:00
fengtianyangyang
70b41ab8a8 sql修改 2022-07-08 15:17:59 +08:00
zypy333
d185b548f7 update framework/src/main/java/cn/lili/modules/sms/impl/SmsUtilAliImplService.java.
抛出返回码错误
2022-07-08 03:57:53 +00:00
OceansDeep
4b5dcec08b !207 优化取消订单生成店铺流水
Merge pull request !207 from OceansDeep/feature/pg
2022-07-07 10:11:04 +00:00
paulGao
13a7a875a4 优化取消订单生成店铺流水 2022-07-07 18:10:31 +08:00
OceansDeep
8743bf4b93 !206 增加取消订单生成店铺流水,优化代码
Merge pull request !206 from OceansDeep/feature/pg
2022-07-07 09:26:32 +00:00
paulGao
d8792e9e27 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop into feature/pg 2022-07-07 17:25:36 +08:00
paulGao
82a0cd0336 增加取消订单生成店铺流水,优化代码 2022-07-07 17:25:15 +08:00
Chopper
60ae5b8965 后台用户编辑问题处理 2022-07-06 17:30:01 +08:00
Chopper
4d4b54ec36 分销订单0元佣金记录订单问题处理 2022-07-06 16:41:40 +08:00
Chopper
53f6910a34 积分商品不允许使用优惠券 2022-07-06 15:57:49 +08:00
OceansDeep
826c3a8f8f !205 代码优化,修复订单投诉问题
Merge pull request !205 from OceansDeep/feature/pg
2022-07-04 10:32:34 +00:00
paulGao
727ddd3198 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop into feature/pg 2022-07-04 18:31:49 +08:00
paulGao
7b535434ae 代码优化,修复订单投诉问题 2022-07-04 18:31:36 +08:00
Chopper711
da8ed53c60 !204 修正方法命名
Merge pull request !204 from zypy333/N/A 感谢支持
2022-07-04 09:14:40 +00:00
Chopper
40e9d6f392 时间不归零导致无法展示订单统计历史数据 2022-07-01 15:36:07 +08:00
zypy333
d189f55de1 修正方法命名 2022-07-01 03:18:20 +00:00
Chopper711
893f4a0388 !202 update framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberServiceImpl.java.
Merge pull request !202 from zypy333/N/A
2022-06-30 07:21:35 +00:00
zypy333
a28547c581 update framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberServiceImpl.java.
修正错别字
2022-06-29 03:10:05 +00:00
OceansDeep
a8079e0d35 !201 优化生成索引时,自动将分词信息添加到分词表
Merge pull request !201 from OceansDeep/feature/pg
2022-06-29 01:42:36 +00:00
paulGao
60a210a45f 优化生成索引时,自动将分词信息添加到分词表 2022-06-29 09:33:02 +08:00
Chopper
170aa01946 变更购物车会导致优惠券金额错误问题处理 2022-06-27 17:57:48 +08:00
OceansDeep
f4c8e5d493 !200 优化商品索引,如数据库中无当前商品则删除商品索引
Merge pull request !200 from OceansDeep/feature/pg
2022-06-23 01:58:22 +00:00
paulGao
b3a0a402d7 优化监听事务提交发送mq事件,为订单变更发送mq增加事务提交监听 2022-06-23 09:55:52 +08:00
Chopper711
b6c70d1530 update README.md. 2022-06-23 01:46:05 +00:00
Chopper
8fbc7b9f5c Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop 2022-06-23 09:11:37 +08:00
Chopper
3c2e73b5f5 调整es日志级别 2022-06-23 09:11:33 +08:00
paulGao
1a221eefe3 优化商品索引,如数据库中无当前商品则删除商品索引 2022-06-22 18:42:04 +08:00
OceansDeep
5912428c00 !199 优化监听事务提交发送mq事件,为订单变更发送mq增加事务提交监听
Merge pull request !199 from OceansDeep/feature/pg
2022-06-22 09:46:45 +00:00
paulGao
f01236cc96 优化监听事务提交发送mq事件,为订单变更发送mq增加事务提交监听 2022-06-22 17:44:40 +08:00
paulGao
ad1f5a297e 修复获取会员钱包可能发生的异常 2022-06-22 17:32:19 +08:00
paulGao
96697e11fd 优化监听事务提交发送mq事件,为订单变更发送mq增加事务提交监听 2022-06-22 17:31:26 +08:00
OceansDeep
25e8b9b578 !198 修复编辑有参加商品的促销活动的时间时,原参与活动的商品的时间没有更新问题
Merge pull request !198 from OceansDeep/feature/pg
2022-06-22 07:06:39 +00:00
paulGao
49603e29bd 修复编辑有参加商品的促销活动的时间时,原参与活动的商品的时间没有更新问题 2022-06-22 15:05:25 +08:00
OceansDeep
6a18489c15 !197 代码结构优化。默认拼团结束时间修改为24小时
Merge pull request !197 from OceansDeep/feature/pg
2022-06-22 06:53:21 +00:00
paulGao
cb52fca2a4 代码结构优化。默认拼团结束时间修改为24小时 2022-06-22 14:44:58 +08:00
paulGao
00964e6bbf Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop into feature/pg 2022-06-20 15:29:10 +08:00
Chopper
ea1b91af2a 日志内容意义不明确优化,补充备注。去除一行无效的代码。 2022-06-20 12:01:32 +08:00
Chopper
8894e5482f minio删除文件错误bug修复 2022-06-20 11:06:20 +08:00
paulGao
e17e3474ca 优化商品索引搜索 2022-06-17 19:08:08 +08:00
paulGao
6d09bd4987 优化商品索引搜索 2022-06-17 15:40:52 +08:00
OceansDeep
84f3907140 !194 修复生成索引时no such index问题
Merge pull request !194 from OceansDeep/feature/pg
2022-06-17 03:21:07 +00:00
paulGao
d704e2eb55 修复生成索引时no such index问题 2022-06-17 11:20:22 +08:00
OceansDeep
2e4c6f4284 !193 增加批发商品不能参加促销活动的限制 修复批发商品购买数量限制
Merge pull request !193 from OceansDeep/feature/pg
2022-06-16 08:47:21 +00:00
paulGao
61c77e0047 修复批发商品购买数量限制 2022-06-16 16:46:09 +08:00
paulGao
cf1e6fc283 增加批发商品不能参加促销活动的限制 2022-06-16 16:40:28 +08:00
OceansDeep
b361e46fb7 !192 优化代码,修复bug
Merge pull request !192 from OceansDeep/feature/pg
2022-06-16 02:22:47 +00:00
paulGao
7bb06e7fdc 优化代码,修复bug 2022-06-16 10:21:41 +08:00
caihongcheng
9f83b40be4 错误提交 2022-06-15 18:21:06 +08:00
caihongcheng
1edd3441bc 电子面单 2022-06-15 18:09:55 +08:00
OceansDeep
079a4a2cf6 !191 优化编辑店铺信息后,清除缓存
Merge pull request !191 from OceansDeep/feature/pg
2022-06-14 07:38:31 +00:00
paulGao
049a759cda 优化编辑店铺信息后,清除缓存 2022-06-14 15:36:29 +08:00
OceansDeep
a6ff38159f !190 优化索引生成,商品索引查询
Merge pull request !190 from OceansDeep/feature/pg
2022-06-13 10:51:16 +00:00
paulGao
056f040317 优化索引生成,商品索引查询 2022-06-13 18:50:09 +08:00
chopper711
c161206832 update README.md. 2022-06-13 06:54:12 +00:00
chopper711
e9a0c293f8 update README.md. 2022-06-13 06:53:48 +00:00
OceansDeep
24de62f5f4 !189 优化代码结构
Merge pull request !189 from OceansDeep/feature/pg
2022-06-10 10:43:28 +00:00
paulGao
b7b278f296 优化代码结构 2022-06-10 18:42:56 +08:00
OceansDeep
712941038b !188 优化初始化商品索引,增加编辑商品时,保留原商品的销量、好评率和评价量
Merge pull request !188 from OceansDeep/feature/pg
2022-06-09 08:46:56 +00:00
paulGao
4316fa8953 优化初始化商品索引,增加编辑商品时,保留原商品的销量、好评率和评价量 2022-06-09 16:43:16 +08:00
paulGao
d14763d52c 优化代码,增加buyer启动时检测es索引存在,如不存在则自动创建 2022-06-09 15:32:24 +08:00
OceansDeep
79e1f34890 !187 优化代码,修复bug
Merge pull request !187 from OceansDeep/feature/pg
2022-06-09 01:19:19 +00:00
paulGao
3cb8e066b3 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop into feature/pg 2022-06-09 09:16:18 +08:00
paulGao
5e6a56e193 优化代码,修改一个可能出现的获取商品分类的错误 2022-06-09 09:15:57 +08:00
paulGao
478ba2048a 修改商品有效性判定中,根据商品更新时间比较改为商品创建时间比较(因修改了商品更新逻辑,每次都是删除后新增,所以无商品更新时间) 2022-06-09 09:13:13 +08:00
paulGao
8426294a0f 修复判断会员存在条件参数传递顺序错误问题 2022-06-08 16:35:44 +08:00
OceansDeep
178954c8b2 !186 适配优化的sql,将平台id改为0
Merge pull request !186 from OceansDeep/feature/pg
2022-06-08 08:16:05 +00:00
paulGao
6ce2b65d89 适配优化的sql,将平台id改为0 2022-06-08 16:15:14 +08:00
fengtianyangyang
fb45fee426 提现申请时,预存款金额为0无法审核通过错误 2022-06-07 18:41:31 +08:00
Chopper
ffca49f469 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop 2022-06-07 18:30:24 +08:00
Chopper
f32c7a7253 运费计算模式调整 同一运费模版的商品,采用累加计算,起送费/虚件(重)费用。 2022-06-07 18:30:21 +08:00
OceansDeep
a64ccdba78 !185 修复一个可能出现的获取促销信息的bug
Merge pull request !185 from OceansDeep/feature/pg
2022-06-07 07:24:58 +00:00
paulGao
5f6bae6fa9 修复一个可能出现的获取促销信息的bug 2022-06-07 15:18:07 +08:00
OceansDeep
fd503b4071 !184 过滤无效促销信息异常增加日志
Merge pull request !184 from OceansDeep/feature/pg
2022-06-07 07:07:54 +00:00
paulGao
9ece357e39 过滤无效促销信息异常增加日志 2022-06-07 15:07:14 +08:00
OceansDeep
d53c8362a2 !183 修复一个可能出现的获取促销信息的bug
Merge pull request !183 from OceansDeep/feature/pg
2022-06-07 04:31:08 +00:00
paulGao
8f3ca8c28d 修复一个可能出现的获取促销信息的bug 2022-06-07 12:30:29 +08:00
OceansDeep
7f5675ae3c !182 修复一个可能出现的获取促销信息的bug
Merge pull request !182 from OceansDeep/feature/pg
2022-06-07 04:16:37 +00:00
paulGao
7b9f4be98c 修复一个可能出现的获取促销信息的bug 2022-06-07 12:16:08 +08:00
Chopper
ca352ca341 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop 2022-06-07 09:37:25 +08:00
Chopper
a22ccbdda5 兼容MINIO 2022-06-07 09:35:58 +08:00
OceansDeep
e6b50248de !181 修复券活动获取的优惠券某些情况不能使用问题
Merge pull request !181 from OceansDeep/feature/pg
2022-06-06 07:26:12 +00:00
paulGao
ee3f8a9261 修复券活动获取的优惠券某些情况不能使用问题 2022-06-06 15:24:52 +08:00
OceansDeep
922d7222cd !180 修复一个可能发生的获取订单信息时发生的错误
Merge pull request !180 from OceansDeep/feature/pg
2022-06-06 02:13:39 +00:00
paulGao
4a8900105b Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop into feature/pg 2022-06-06 10:12:17 +08:00
paulGao
65a4bb7778 修复一个可能发生的获取订单信息时发生的错误 2022-06-06 10:12:09 +08:00
OceansDeep
3944551c06 !179 修复取消订单商品时库存更新问题
Merge pull request !179 from OceansDeep/feature/pg
2022-06-02 09:13:07 +00:00
paulGao
66d7ffbb17 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop into feature/pg 2022-06-02 16:58:42 +08:00
paulGao
c4d879a0ad 修复取消订单商品时库存更新问题 2022-06-02 16:50:26 +08:00
OceansDeep
b97f77c740 !176 智能商品推荐
Merge pull request !176 from viper/Intelligent_recommendation
2022-06-02 07:17:40 +00:00
OceansDeep
27ad9b0599 !177 增加结算时当前商品促销最新状态的查询
Merge pull request !177 from OceansDeep/feature/pg
2022-06-02 02:32:37 +00:00
paulGao
234b8ab31c 增加结算时当前商品促销最新状态的查询(修复手动删除或下架促销活动时,购物车商品还是促销价格问题) 2022-06-02 10:31:24 +08:00
Chopper
519a608316 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop 2022-06-02 09:16:46 +08:00
Chopper
d4a13c8a82 店铺商品数量,店铺缓存数据2小时。优化 2022-06-02 09:16:30 +08:00
xiaochangbai
ccb57411a2 refactor:优化代码 2022-06-01 21:27:51 +08:00
xiaochangbai
486bebe6d2 feat:智能商品推荐 2022-06-01 18:03:30 +08:00
OceansDeep
5b3129bf01 !174 优化商品信息变更时,删除商品缓存流程
Merge pull request !174 from OceansDeep/feature/pg
2022-06-01 07:24:22 +00:00
paulGao
23c742c4c6 优化商品信息变更时,删除商品缓存流程 2022-06-01 15:23:21 +08:00
OceansDeep
90d3bbd79e !173 修复新增商品时,批发商品规则没有保存问题
Merge pull request !173 from OceansDeep/feature/pg
2022-05-31 09:27:36 +00:00
paulGao
400a06d2ac 修复新增商品时,批发商品规则没有保存问题 2022-05-31 17:23:21 +08:00
OceansDeep
594d2f620c !172 修复编辑商品时默认读取缓存中的数据
Merge pull request !172 from OceansDeep/feature/pg
2022-05-31 09:01:34 +00:00
paulGao
1a6ec578de 修复编辑商品时默认读取缓存中的数据 2022-05-31 17:01:01 +08:00
OceansDeep
e009604595 !171 修复无法新建批发商品
Merge pull request !171 from OceansDeep/feature/pg
2022-05-31 08:34:24 +00:00
paulGao
8b23c623d1 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop into feature/pg 2022-05-31 16:34:01 +08:00
paulGao
a3c4e72902 修复无法新建批发商品 2022-05-31 16:33:10 +08:00
chopper711
7e54412fc3 !167 修复直播延迟消息状态错误
Merge pull request !167 from viper/fix_broadcast-status-msg
2022-05-31 08:09:02 +00:00
OceansDeep
564970a324 !170 分类编辑时,清除缓存;优化代码
Merge pull request !170 from OceansDeep/feature/pg
2022-05-31 06:38:52 +00:00
paulGao
1ecd32027e 分类编辑时,清除缓存;优化代码 2022-05-31 14:37:18 +08:00
OceansDeep
ceb5727337 !169 修复新增编辑商品无商品图片问题
Merge pull request !169 from OceansDeep/feature/pg
2022-05-30 02:42:56 +00:00
paulGao
17c7552f7f 增加商品批发销售模式的处理。优化生成商品sku的结构。 2022-05-30 10:39:12 +08:00
OceansDeep
8fbcad8856 !168 增加商品批发销售模式的处理。优化生成商品sku的结构。
Merge pull request !168 from OceansDeep/feature/pg
2022-05-27 10:28:46 +00:00
paulGao
a61fd454b4 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop into feature/pg 2022-05-27 16:32:56 +08:00
paulGao
c0337afbaa 优化代码。升级hutool和lombok依赖 2022-05-27 16:32:39 +08:00
paulGao
acb9e78a36 增加商品批发销售模式的处理。优化生成商品sku的结构。 2022-05-27 16:32:00 +08:00
xiaochangbai
431ff04644 fix: 修复直播延迟消息状态错误 2022-05-26 16:24:39 +08:00
Chopper
201fb0a136 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop 2022-05-25 17:41:36 +08:00
Chopper
90671729ea 上一周期数据问题处理 2022-05-25 17:41:31 +08:00
OceansDeep
8596175f8e !166 修复商品编辑规格时,删除规格后。es中没有删除问题。
Merge pull request !166 from OceansDeep/feature/pg
2022-05-25 03:25:34 +00:00
paulGao
e9fdec6bb0 修复商品编辑规格时,删除规格后。es中没有删除问题。 2022-05-25 11:22:53 +08:00
OceansDeep
026b6aca07 !165 优化更新商品sku的方式
Merge pull request !165 from OceansDeep/feature/pg
2022-05-19 09:41:30 +00:00
paulGao
fafe3c0c55 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop into feature/pg 2022-05-19 17:35:23 +08:00
paulGao
f2b327c811 添加一种更新商品sku的方式。mysql replace into(先查找,如存在则删除,新增。如不存在新增) 2022-05-19 17:34:55 +08:00
caihongcheng
7fccbc2aa2 根据类型查看文章接口缺失 2022-05-19 15:23:44 +08:00
Chopper
7c40f5988b Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop 2022-05-18 22:38:18 +08:00
Chopper
b19e4043cd 字符串长度处理 2022-05-18 22:38:13 +08:00
OceansDeep
db75aa1cab !159 优化修改sku时,如存在sku则不新增
Merge pull request !159 from OceansDeep/feature/pg
2022-05-18 14:02:16 +00:00
paulGao
f5718b4062 优化修改sku时,如存在sku则不新增 2022-05-18 22:00:42 +08:00
Chopper
d25f17782b 规范长度限制 2022-05-18 21:35:17 +08:00
Chopper
e3626a094d 支付参数长度进行限制 2022-05-18 16:48:03 +08:00
Chopper
fc7b17fe40 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop 2022-05-18 15:15:31 +08:00
Chopper
87e13b3677 支付问题处理 2022-05-18 15:15:22 +08:00
caihongcheng
a540e42460 siteController 2022-05-18 14:35:34 +08:00
OceansDeep
c4e24fb0a3 !158 优化生成商品索引,分批生成
Merge pull request !158 from OceansDeep/feature/pg
2022-05-13 10:19:42 +00:00
paulGao
31fb55635e 优化生成商品索引,分批生成 2022-05-13 18:18:46 +08:00
Chopper
3dcff0b682 在线人数流量展示少一个小时问题处理 2022-05-13 17:42:36 +08:00
Chopper
81f48d9c92 对上一周期的参数赋值做处理 2022-05-13 11:45:30 +08:00
Chopper
6331b0d587 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop 2022-05-13 11:19:11 +08:00
Chopper
57cf3b94e0 足迹分页相关问题处理 2022-05-13 11:19:02 +08:00
OceansDeep
b683eac996 !157 优化修改sku时,如存在sku则不新增
Merge pull request !157 from OceansDeep/feature/pg
2022-05-13 03:09:18 +00:00
paulGao
ccdcb1d0f6 优化修改sku时,如存在sku则不新增 2022-05-13 11:03:26 +08:00
Chopper
4f5f02f030 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop 2022-05-13 09:19:24 +08:00
Chopper
0629ce51af 默认值给予0 2022-05-13 09:19:21 +08:00
paulGao
46f1fcc269 优化修改sku时,如存在sku则不新增 2022-05-13 09:01:06 +08:00
fengtianyangyang
b49b0290f8 还原多合并代码 2022-05-12 15:30:53 +08:00
fengtianyangyang
7ca351f7cd 结算单-平台优惠券补贴金额错误修改 2022-05-11 19:20:35 +08:00
Chopper
850b124da3 流量统计增加对上一周期的数据填充 2022-05-11 17:49:44 +08:00
OceansDeep
49a2d3cab3 !156 更新阿里云maven地址。更新部分依赖到最新
Merge pull request !156 from OceansDeep/feature/pg
2022-05-10 06:47:19 +00:00
paulGao
038eda1562 更新阿里云maven地址。更新部分依赖到最新 2022-05-10 14:38:57 +08:00
caihongcheng
b91c8e34c2 电子面单 2022-05-09 09:27:30 +08:00
caihongcheng
0a631a7c93 requestData多了个引号 2022-05-07 21:24:51 +08:00
caihongcheng
4705c2595a 追踪物流信息增加手机号后四位参数 2022-05-06 16:16:34 +08:00
Chopper
0ff6809d63 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop 2022-05-06 15:51:19 +08:00
Chopper
a375feabfc 售后流水问题,售后代码被多个地方调用的方式优化,以后只有一个入口 2022-05-06 15:51:13 +08:00
OceansDeep
5b9fd139a3 !155 修复结算时,清空购物车问题
Merge pull request !155 from OceansDeep/feature/pg
2022-05-06 07:51:04 +00:00
paulGao
fd92d93289 修复结算时,清空购物车问题 2022-05-06 15:50:20 +08:00
paulGao
840637c0d0 优化编辑商品状态时,商品缓存的删除 2022-05-05 17:58:13 +08:00
OceansDeep
f41f5386cc !154 修复防重复提交bug
Merge pull request !154 from OceansDeep/feature/pg
2022-05-05 04:01:58 +00:00
paulGao
f4a7d8ea92 修复防重复提交bug 2022-05-05 11:57:05 +08:00
OceansDeep
26c9160c75 !152 优化默认生成的es商品索引结构。解决初次启动时,搜索商品报错
Merge pull request !152 from OceansDeep/feature/pg
2022-04-27 10:17:58 +00:00
paulGao
4c1955da75 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop into feature/pg 2022-04-27 18:15:30 +08:00
paulGao
66e6272571 优化默认生成的es商品索引结构。解决初次启动时,搜索商品报错 2022-04-27 18:15:11 +08:00
Chopper
e9d5e705ed Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop 2022-04-26 14:16:44 +08:00
Chopper
16fdb28141 多修改的代码还原 2022-04-26 14:16:39 +08:00
OceansDeep
e289cf29fe !151 优化合并
Merge pull request !151 from OceansDeep/feature/pg
2022-04-26 03:40:22 +00:00
paulGao
1cd74cc26a Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop into feature/pg 2022-04-26 11:37:53 +08:00
paulGao
27112e35b3 优化搜索关键字不能为空格。优化管理端商品上下架时没有清空goods缓存问题 2022-04-26 11:37:48 +08:00
paulGao
b2a8578f43 增加异常重试机制。(目前作用于es批量更新删除时,有时会出现的内容版本冲突问题) 2022-04-26 11:36:28 +08:00
Chopper
0e0a8b039d 管理员用户权限不再放在永久缓存,而是放在临时缓存(5分钟),由于访问频率较低,在加上涉及的业务太复杂,所以去除了之前对权限的永久缓存以及模糊删除用户权限缓存相关代码 2022-04-26 09:33:54 +08:00
Chopper
cbd201c43b 还原配置 2022-04-25 18:58:01 +08:00
Chopper
a6d734bacf Merge branch 'hotwords'
热词功能,管理端权限存在的问题处理
# Conflicts:
#	framework/src/main/java/cn/lili/modules/order/order/serviceimpl/StoreFlowServiceImpl.java
#	framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsSearchServiceImpl.java
#	manager-api/src/main/java/cn/lili/controller/hotwords/HotWordsManagerController.java
2022-04-25 18:32:46 +08:00
Chopper
8dc86e0482 热词功能完善 2022-04-25 18:08:06 +08:00
paulGao
d0226611d7 增加初始化生成索引日志 2022-04-25 17:34:24 +08:00
OceansDeep
2b21c3cd09 !150 优化生成索引mapping日志
Merge pull request !150 from OceansDeep/feature/pg
2022-04-25 09:23:34 +00:00
paulGao
b1bdd9b8a5 优化生成索引mapping日志 2022-04-25 17:22:52 +08:00
Chopper
bb50510ecb 解决管理员权限相关问题 2022-04-25 10:31:39 +08:00
paulGao
aa185c8bd2 优化consumer生成商品索引。改为批量生成 2022-04-25 10:26:51 +08:00
fengtianyangyang
99e3b234c9 Merge branch 'master' of https://gitee.com/beijing_hongye_huicheng/lilishop 2022-04-22 18:47:10 +08:00
fengtianyangyang
5168d8d08d 配置文件还原 2022-04-22 18:45:43 +08:00
fengtianyangyang
230a8810ef 积分商品,砍价商品结算单错误问题 2022-04-22 18:44:32 +08:00
OceansDeep
e8e8c1abcc !149 修复结算时,无有效商品,造成空订单问题
Merge pull request !149 from OceansDeep/feature/pg
2022-04-22 08:50:52 +00:00
paulGao
0354d6dc3e 修复结算时,无有效商品,造成空订单问题 2022-04-22 16:27:13 +08:00
fengtianyangyang
47ad388f7d 售后申请数量错误 2022-04-22 11:10:42 +08:00
fengtianyangyang
2d57483805 结算单优惠券退款异常 2022-04-22 11:02:23 +08:00
OceansDeep
363dbd3a7f !148 修复项目启动时可能会造成es client must not be null的问题
Merge pull request !148 from OceansDeep/feature/pg
2022-04-22 01:13:07 +00:00
paulGao
5b5863c899 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop into feature/pg 2022-04-22 09:12:11 +08:00
paulGao
4c1ae8c3cc 修复一个项目启动时可能会造成es client must not be null的问题 2022-04-22 09:11:51 +08:00
OceansDeep
29ed211519 !147 优化
Merge pull request !147 from OceansDeep/feature/pg
2022-04-21 08:28:26 +00:00
paulGao
9f965c4e56 修复主订单取消后赠品订单不会取消问题。优化热词 2022-04-21 16:25:43 +08:00
Chopper
0148868129 分类递归错误的参数传递问题解决 2022-04-21 15:49:53 +08:00
paulGao
d46863b5b5 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop into feature/pg 2022-04-21 15:12:27 +08:00
fengtianyangyang
1917aa13d5 店铺结算空指针问题 2022-04-21 10:51:12 +08:00
Chopper
2994131048 当结算周期只有一天时,无法结算问题处理 2022-04-21 10:11:21 +08:00
paulGao
f0d6938127 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop into feature/pg 2022-04-20 17:54:21 +08:00
paulGao
0203630d6a 增加店铺商品索引操作 2022-04-20 09:39:03 +08:00
Chopper
89c5c2dd83 评价数量展示异常问题处理 2022-04-19 10:18:25 +08:00
Chopper
ce1954e7d3 消费者一个错误处理 2022-04-19 09:39:33 +08:00
Chopper
947a82eac5 热词统计,热词功能改版 2022-04-19 09:28:26 +08:00
fengtianyangyang
9dc01f6057 店铺结算单结算问题 2022-04-18 19:09:05 +08:00
paulGao
37c5ce541b 优化楼层装修 2022-04-17 21:46:34 +08:00
paulGao
726eb06714 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop into feature/pg 2022-04-17 21:45:49 +08:00
fengtianyangyang
df505e0e17 店铺结算单金额问题 2022-04-15 19:05:27 +08:00
paulGao
06fffac835 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop into feature/pg 2022-04-14 09:09:25 +08:00
paulGao
264a423444 remove invalid class 2022-04-14 09:09:22 +08:00
Chopper
6ae9692358 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop 2022-04-13 16:58:23 +08:00
Chopper
7270564b10 由于代码调用顺序错误,导致总是输出一段错误的日志内容。 2022-04-13 16:58:19 +08:00
paulGao
a485a29868 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop into feature/pg 2022-04-13 14:30:40 +08:00
fengtianyangyang
ec04c3221f 移除文章类型删除 2022-04-13 12:00:40 +08:00
Chopper
761982474c Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop 2022-04-13 11:49:32 +08:00
Chopper
d13b0404fb 增加一下短信验证码在info级别的日志打印 2022-04-13 11:49:23 +08:00
fengtianyangyang
6966376f91 文章增加文章类型修改及文章类型删除 2022-04-13 11:06:51 +08:00
Chopper
2720f5c0bb Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop 2022-04-11 14:18:42 +08:00
paulGao
881f039e44 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop into feature/pg 2022-04-11 14:18:39 +08:00
Chopper
81c7a72b9c 解决优惠券在购物车中缓存会出现的一些极端bug 2022-04-11 14:18:37 +08:00
fengtianyangyang
c0391e3fc1 微信同步消息时删除模板问题 2022-04-11 11:23:02 +08:00
paulGao
7e542750f6 增加每次获取优惠券信息时,检查优惠券是否过期 2022-04-08 16:59:12 +08:00
fengtianyangyang
7cbf638822 配置文件修改 2022-04-07 17:37:59 +08:00
fengtianyangyang
4cdb461c22 配置文件修改及sql 2022-04-07 17:35:22 +08:00
fengtianyangyang
ba57f19ee7 Merge branch 'master' of https://gitee.com/beijing_hongye_huicheng/shengxing into clerk 2022-04-07 17:13:04 +08:00
fengtianyangyang
9ba2693698 店员错误 2022-04-07 17:09:25 +08:00
OceansDeep
3439b7aee5 !146 修复秒杀活动相同商品参与时,删除其他活动商品信息问题
Merge pull request !146 from OceansDeep/feature/pg
2022-04-07 08:31:23 +00:00
paulGao
63b23fbe76 修复秒杀活动相同商品参与时,删除其他活动商品信息问题 2022-04-07 16:06:23 +08:00
paulGao
63fff2398e Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop into feature/pg 2022-04-07 14:32:12 +08:00
chopper711
db8796df99 update README.md. 2022-04-07 04:07:23 +00:00
Chopper
4095481411 会员促销运算时,优惠券会被缓存,可能导致无效数据返回。 2022-04-07 10:19:19 +08:00
paulGao
8e30defa0e 优化es商品搜索,全分词匹配改为2分词匹配 2022-04-06 10:39:51 +08:00
paulGao
06ee6d6359 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop into feature/pg 2022-04-06 09:29:38 +08:00
paulGao
a988dedfbf 增加根据名称获取地址信息 2022-04-02 18:42:03 +08:00
fengtianyangyang
f90c6fb27d 注释 2022-04-01 21:59:44 +08:00
OceansDeep
5292d6ef90 !145 fix bugs and improve code
Merge pull request !145 from OceansDeep/feature/pg
2022-04-01 07:25:20 +00:00
paulGao
e760af7216 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop into feature/pg 2022-04-01 15:21:55 +08:00
paulGao
e4889d82f2 替换弃用的hutool的SSLSocketFactoryBuilder 2022-04-01 15:21:28 +08:00
paulGao
9d170ecc30 修复获取店铺分类缓存key错误问题 2022-04-01 15:18:35 +08:00
Chopper
cf01011504 注销功能接口提供完善 2022-03-31 16:49:12 +08:00
Chopper
b1291d3c43 文件内容错误,恢复内容 2022-03-31 14:04:56 +08:00
Chopper
82546eed06 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop 2022-03-31 09:21:23 +08:00
Chopper
bf667e2aa6 签到问题处理 2022-03-31 09:21:18 +08:00
OceansDeep
5b6f208f53 !144 修复更新商品索引促销时,更新的促销信息不正确问题
Merge pull request !144 from OceansDeep/feature/pg
2022-03-30 09:24:23 +00:00
paulGao
210d56447c 优化更新全部商品索引时的性能 2022-03-30 17:21:57 +08:00
paulGao
c093261369 修复更新商品索引促销时,更新的促销信息不正确问题 2022-03-30 17:17:09 +08:00
paulGao
ee4f87d12d Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop into feature/pg 2022-03-30 14:27:29 +08:00
paulGao
74b0a5b081 修复一个搜索es商品时可能会发生的date格式转换问题 2022-03-30 14:27:12 +08:00
Chopper
f51774c077 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop 2022-03-30 11:54:58 +08:00
Chopper
bd9f7b8b9f 收款单创建时间字段问题处理 2022-03-30 11:54:56 +08:00
chopper711
dc55bd63f5 !141 ResultCode虚拟商品无需配送模板提示更正 from @Assure
Merge pull request !141 from Assure/master
2022-03-29 09:05:26 +00:00
chopper711
07ce947f78 !142 优化CommonUtil.getRandomNum() 提升随机数性能。 from @原批王
Merge pull request !142 from 原批王/master
2022-03-29 09:02:36 +00:00
OceansDeep
0f6cc70f66 !143 修复秒杀活动时间段为一个时。不显示问题。修复可能会出现的es代码编译问题。improve code
Merge pull request !143 from OceansDeep/feature/pg
2022-03-29 06:16:14 +00:00
paulGao
6d014a01bc 修复秒杀活动时间段为一个时。不显示问题。修复可能会出现的es代码编译问题。improve code 2022-03-29 10:04:36 +08:00
***
de5e97ac3a 优化cn.lili.common.utils.CommonUtil.getRandomNum方法逻辑 2022-03-27 07:41:34 +08:00
胡程
40e866aadd fix:修复配虚拟商品送模板提示 2022-03-25 18:12:40 +08:00
Chopper
36ce7593a9 由于铭感信息过滤手机号,导致管理端无法修改会员问题处理 2022-03-18 17:41:05 +08:00
Chopper
a2a28af41d 微信消息删除调用时,微信返回参数无法解析,尝试解决此问题。 2022-03-15 17:16:24 +08:00
Chopper
203a30a236 商品评价问题处理 2022-03-14 15:50:55 +08:00
Chopper
b7d418b5b7 修复虚拟订单核销校验问题 2022-03-14 10:44:06 +08:00
Chopper
1625f7ca76 自动关闭售后字段读取错误,修正 2022-03-10 15:52:12 +08:00
Chopper
8a67b905fc Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop 2022-03-10 15:31:39 +08:00
Chopper
9ee76b5328 取消一个无实际作用的限流注解
订单买家端可以查询到别人的订单问题处理
2022-03-10 15:31:23 +08:00
paulGao
df9dd7f435 merge conflict origin/master 2022-03-09 18:39:48 +08:00
paulGao
9d0d318d66 优化更新es商品促销流程 2022-03-09 18:39:04 +08:00
Chopper
ee1723a76b Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop 2022-03-08 20:37:17 +08:00
Chopper
c715422814 会员签到接口限制问题 2022-03-08 20:37:12 +08:00
fengtianyangyang
72e7941230 '权限修改' 2022-03-08 14:19:22 +08:00
paulGao
ac475ca456 增加促销活动更新日志 2022-03-08 12:08:12 +08:00
Chopper
ee5355668d 创建时间字段自动插入问题处理,签到增加访问限制 2022-03-08 11:57:48 +08:00
paulGao
1b30f0ad31 优化代码,修复编辑秒杀活动时执行顺序问题 2022-03-07 14:54:15 +08:00
paulGao
348f362b30 优化代码,修复编辑秒杀活动时执行顺序问题 2022-03-07 14:43:17 +08:00
fengtianyangyang
6bef12b91b '合并' 2022-03-03 18:36:42 +08:00
fengtianyangyang
5b4113be4d Merge branch 'clerk' of https://gitee.com/beijing_hongye_huicheng/lilishop
 Conflicts:
	config/application.yml
2022-03-03 18:05:32 +08:00
fengtianyangyang
a82d3fe57c '店员权限bug处理合并' 2022-03-03 18:03:04 +08:00
fengtianyangyang
4d551366ed Merge branches 'clerk' and 'master' of https://gitee.com/beijing_hongye_huicheng/lilishop into clerk 2022-03-03 17:44:53 +08:00
fengtianyangyang
441cb6ddcb '代码合并' 2022-03-03 17:22:13 +08:00
itheinjury@163.com
f14efa2612 BUG修改 2022-03-03 16:11:08 +08:00
OceansDeep
f4d7c07f57 !137 修复更新秒杀活动时间,秒杀活动商品更新数据问题
Merge pull request !137 from OceansDeep/feature/pg
2022-03-03 03:27:08 +00:00
paulGao
66b2f1f55d 修复更新秒杀活动时间,秒杀活动商品更新数据问题 2022-03-03 11:22:20 +08:00
OceansDeep
b9b2c10ca0 !136 增加检测促销商品库存
Merge pull request !136 from OceansDeep/feature/pg
2022-03-02 12:41:01 +00:00
paulGao
0d5f871da7 增加检测促销商品库存 2022-03-02 20:39:17 +08:00
paulGao
1688a7ba15 修复秒杀活动 2022-03-02 20:33:45 +08:00
paulGao
3506e1c738 增加检测促销商品库存 2022-03-02 20:26:50 +08:00
lifenlong
ae0c4aea12 展示店铺设置 2022-03-02 18:42:56 +08:00
itheinjury@163.com
a52b672e9b 更新,BUG修改 2022-03-02 15:17:06 +08:00
paulGao
c4307aa821 修复秒杀商品下单时,不会更新秒杀商品的出售数量问题 2022-03-02 11:49:41 +08:00
OceansDeep
a2c32009f5 !135 修复未开始的秒杀活动修改时,先添加秒杀商品后修改时间时,秒杀活动商品时间没有改变问题
Merge pull request !135 from OceansDeep/feature/pg
2022-03-01 03:50:15 +00:00
paulGao
e27185d424 修复未开始的秒杀活动修改时,先添加秒杀商品后修改时间时,秒杀活动商品时间没有改变问题 2022-03-01 11:49:35 +08:00
paulGao
0714480e01 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop into feature/pg 2022-03-01 09:12:02 +08:00
lifenlong
504ee766f8 店铺楼层装修 2022-02-28 09:08:43 +08:00
paulGao
7358fd0c23 增加搜索商品时,无商品索引时初始化索引 2022-02-25 16:23:35 +08:00
OceansDeep
25be7094a2 !134 优化代码
Merge pull request !134 from OceansDeep/feature/pg
2022-02-24 02:17:05 +00:00
paulGao
627a1d7d5a 优化代码 2022-02-24 09:33:36 +08:00
Chopper
63b84ee69d 敏感词为空极端情况处理 2022-02-23 16:23:00 +08:00
Chopper
5eb76176ab Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop 2022-02-23 14:38:29 +08:00
Chopper
6115ecf673 秒杀活动自动新增bug处理 2022-02-23 14:38:23 +08:00
OceansDeep
d1a112d3a3 !133 修复秒杀活动
Merge pull request !133 from OceansDeep/feature/pg
2022-02-22 14:46:15 +00:00
paulGao
7d67e6a007 修复秒杀活动 2022-02-22 22:37:51 +08:00
Chopper
b824ee625e Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop 2022-02-21 22:59:59 +08:00
Chopper
961ac20213 更新IM相关 2022-02-21 22:59:55 +08:00
OceansDeep
f213b6f53f !132 优化rocketmq日志到logback
Merge pull request !132 from OceansDeep/feature/pg
2022-02-21 04:04:15 +00:00
paulGao
631600ab3f 优化rocketmq日志到logback 2022-02-21 12:03:07 +08:00
Chopper
d95fce2efb 注解日志异常问题处理 2022-02-21 10:57:57 +08:00
OceansDeep
1c6c009f14 !131 优化自动生成秒杀活动
Merge pull request !131 from OceansDeep/feature/pg
2022-02-18 12:27:53 +00:00
paulGao
f555f6423a 优化自动生成秒杀活动 2022-02-18 20:26:35 +08:00
paulGao
cd374f2d98 关闭consumer spring security身份验证页面 2022-02-18 15:38:58 +08:00
itheinjury@163.com
c62f31c387 更新 2022-02-18 11:14:01 +08:00
itheinjury@163.com
87ccad6ec7 更新 2022-02-18 11:04:56 +08:00
itheinjury@163.com
1600f7cdab 更新 2022-02-18 10:52:03 +08:00
itheinjury@163.com
dc3256566b 更新 2022-02-18 00:09:09 +08:00
itheinjury@163.com
b0858429fb 更新 2022-02-17 13:58:46 +08:00
itheinjury@163.com
2f3e2a5ae8 更新 2022-02-17 13:58:16 +08:00
itheinjury@163.com
f280ab88ec 更新 2022-02-17 13:57:43 +08:00
Chopper
9616c27efa Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop 2022-02-16 17:54:46 +08:00
Chopper
0b5f830d7c 删除模版缓存注解问题处理 2022-02-16 17:54:40 +08:00
OceansDeep
d0f952bd68 !130 修复秒杀每日清除无效活动错误
Merge pull request !130 from OceansDeep/feature/pg
2022-02-16 09:49:38 +00:00
paulGao
2876a39ff5 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop into feature/pg 2022-02-16 17:48:46 +08:00
paulGao
6bcf6da165 修复秒杀每日清除无效活动错误 2022-02-16 17:48:29 +08:00
Chopper
9fe633d228 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop 2022-02-16 17:42:18 +08:00
Chopper
b32bf41443 消费者执行异常问题处理:包含系统自动评价问题,和自动新增秒杀活动问题 2022-02-16 17:42:12 +08:00
paulGao
e4e073b6f0 修复满优惠活动搜索名称问题 2022-02-15 16:51:40 +08:00
paulGao
e960ee2f40 Merge branch 'master' of github.com:lilishop/lilishop 2022-02-15 15:30:38 +08:00
itheinjury@163.com
5b1b75cbbe 更新 2022-02-15 15:30:33 +08:00
paulGao
a689bb83ee Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop 2022-02-15 15:29:59 +08:00
paulGao
0940d9aec8 增加刷新token白名单 2022-02-15 15:29:32 +08:00
itheinjury@163.com
b5e709f5e5 更新 2022-02-15 15:29:09 +08:00
Chopper
c5da640432 昵称和用户名如果用手机号,也进行脱敏 2022-02-15 14:51:15 +08:00
Chopper
a5f924841a 会员用户名脱敏 2022-02-15 11:38:41 +08:00
Chopper
fda3b5b1cc 会员脱敏处理,之前有人恶意联系注册用户。
管理平台用户返回VO格式化一下
2022-02-15 11:24:52 +08:00
Hacker_Lei
10b8f83737 Merge pull request #38
feature/pg
2022-02-15 11:05:41 +08:00
OceansDeep
ea5da365c7 !129 更新配置文件
Merge pull request !129 from OceansDeep/feature/pg
2022-02-15 03:01:01 +00:00
paulGao
f6eb72332b 更新配置文件 2022-02-15 11:00:15 +08:00
OceansDeep
fcb401c89b !128 更新版本号
Merge pull request !128 from OceansDeep/feature/pg
2022-02-15 02:52:36 +00:00
Hacker_Lei
2b0dc1d0a3 Merge pull request #37
feature/pg
2022-02-15 10:41:05 +08:00
paulGao
a0139b84e1 更新版本号 2022-02-15 10:39:38 +08:00
itheinjury@163.com
65bd2ff35f 删除更新后文件 2022-02-14 20:01:44 +08:00
itheinjury@163.com
4468657030 删除更新后文件 2022-02-14 20:00:35 +08:00
itheinjury@163.com
4ad95a65cf 删除更新后文件 2022-02-14 19:57:32 +08:00
itheinjury@163.com
31f6c19e87 删除更新后文件 2022-02-14 19:55:43 +08:00
itheinjury@163.com
612d1d1646 删除更新后文件 2022-02-14 19:32:47 +08:00
itheinjury@163.com
eddf3ecdeb 删除更新后文件 2022-02-14 19:27:45 +08:00
Hacker_Lei
6cb511ba10 Merge pull request #36
feature/pg
2022-02-14 18:33:46 +08:00
OceansDeep
7483f19fc6 !127 适配修改的api
Merge pull request !127 from OceansDeep/feature/pg
2022-02-14 10:33:07 +00:00
paulGao
f8d2ab5e17 适配修改的api 2022-02-14 18:32:28 +08:00
chopper711
9cd591efe3 update README.md. 2022-02-14 10:09:37 +00:00
OceansDeep
e655fdf67f !126 适配优化的api地址,补充缺失的事务处理
Merge pull request !126 from OceansDeep/feature/pg
2022-02-14 06:19:45 +00:00
paulGao
9aa253b56f 补充缺失的事务处理 2022-02-14 14:17:19 +08:00
paulGao
1d5a2008e1 适配优化的api地址 2022-02-12 17:17:52 +08:00
paulGao
1f1b534b13 适配优化的api地址 2022-02-12 15:05:42 +08:00
itheinjury@163.com
bf8f8d9382 初始化代码 2022-02-11前 最新版本 2022-02-11 19:30:50 +08:00
paulGao
5c78711d8e merge conflict origin/master 2022-02-11 15:33:28 +08:00
OceansDeep
191709e983 !125 优化redisson配置
Merge pull request !125 from OceansDeep/feature/pg
2022-02-11 06:57:37 +00:00
paulGao
da6a17cd61 优化代码 2022-02-11 14:56:25 +08:00
paulGao
acb88a6b2a 优化redisson配置 2022-02-11 14:54:56 +08:00
zhenghao
d5091bf659 店员 2022-02-10 20:29:53 +08:00
zhenghao
fd003eff8b 店员 2022-02-10 20:18:05 +08:00
zhenghao
4d1dfebacd 店员 2022-02-10 20:05:00 +08:00
OceansDeep
96b5b50ee0 !124 优化代码,增加redisson配置
Merge pull request !124 from OceansDeep/feature/pg
2022-02-10 03:28:39 +00:00
paulGao
6639ec8971 优化代码,增加redisson配置 2022-02-10 11:27:20 +08:00
paulGao
9aa7a6dcf3 优化代码,增加redisson配置 2022-02-10 11:26:10 +08:00
paulGao
4dc183cdf5 merge conflict origin/master 2022-02-09 16:52:28 +08:00
paulGao
bbe3399c90 升级项目依赖,解决安全问题 2022-02-09 16:50:37 +08:00
paulGao
29e43d299a 修复系统日志查询问题 2022-02-09 16:49:14 +08:00
zhenghao
a4ee4df71b 解决预存款事务问题 2022-02-09 12:56:38 +08:00
Chopper
64dbe6708a 短信模版演示站点操作限制 2022-02-08 16:11:27 +08:00
Chopper
f375a9f9db 库存扣减前,库存判定存在问题,进行处理 2022-01-28 16:13:56 +08:00
OceansDeep
15a8800b15 !123 修复微信支付配置报错
Merge pull request !123 from OceansDeep/feature/pg
2022-01-27 03:27:43 +00:00
paulGao
77e526c22f 修复微信支付配置报错 2022-01-27 11:26:17 +08:00
paulGao
f235f66c19 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop into feature/pg 2022-01-27 11:23:05 +08:00
paulGao
1b44bedf42 merge conflict origin/master 2022-01-27 11:22:59 +08:00
Chopper
40e16c4d1b 类名问题处理 2022-01-27 11:22:22 +08:00
paulGao
0c383ac7e9 优化自动生成限时抢购活动 2022-01-27 11:20:25 +08:00
Chopper
0ec2688f17 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop 2022-01-27 11:12:29 +08:00
Chopper
346550182f 位置支付配置相关还原,之前的修改会导致支付无法配置 2022-01-27 11:12:24 +08:00
paulGao
24568e0f00 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop into feature/pg 2022-01-26 17:54:15 +08:00
paulGao
64f2f4668b 优化代码 2022-01-26 17:54:09 +08:00
chopper711
f4e1d891a7 !122 api端防重复提交
Merge pull request !122 from chopper711/liushuai
2022-01-25 02:24:25 +00:00
Chopper
3972e0231c api端防重复提交 2022-01-25 10:22:45 +08:00
OceansDeep
039e85d5e5 update config/application.yml. 2022-01-24 11:30:35 +00:00
Chopper
936397c59f 自动好评存在一个全线判定问题处理 2022-01-24 18:11:10 +08:00
Chopper
23ddca6f82 签到存在事务问题处理。优化这块逻辑相关 2022-01-24 17:30:52 +08:00
Chopper
286214d9c3 微信APP支付提示签名问题的情况,提供一个解决方案,验证无误 2022-01-24 16:50:42 +08:00
Hacker_Lei
6d0dd09b5b Merge pull request #35
feature/pg
2022-01-21 19:05:22 +08:00
OceansDeep
38469d42ef !120 修复促销优惠券获取时,活动优惠券查询问题;修复手机登录后,手机号为脱敏后问题
Merge pull request !120 from OceansDeep/feature/pg
2022-01-21 11:05:03 +00:00
paulGao
696bfe0a2c 增加默认不脱敏 2022-01-21 19:03:43 +08:00
paulGao
3de2b9834d Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop into feature/pg 2022-01-21 19:01:10 +08:00
paulGao
d5fdc47936 修复促销优惠券获取时,活动优惠券查询问题 2022-01-21 19:01:02 +08:00
paulGao
27e82423f0 修复手机登录后,手机号为脱敏后问题 2022-01-21 19:00:20 +08:00
Chopper
576b5b213e 调整图片地址 2022-01-21 17:00:10 +08:00
Chopper
145406be32 对商品名称包含逗号可能导致的问题处理 2022-01-21 16:31:06 +08:00
Chopper
a65f0ad384 积分设置相关优化 2022-01-21 16:18:16 +08:00
Chopper
5051fc7b0b 赠品订单无法核销问题处理 2022-01-21 15:39:18 +08:00
Chopper
7164036d4c 修改订单价格时,订单update price字段问题处理 2022-01-21 14:34:05 +08:00
Chopper
cb0a9121e5 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop 2022-01-21 12:08:40 +08:00
Chopper
96e779eb28 对交易状态的判定问题处理 2022-01-21 12:07:16 +08:00
OceansDeep
27397f1602 !119 优化consumer延时任务执行器(修复一个高版本的redis可能导致redis连接不上问题)
Merge pull request !119 from OceansDeep/feature/pg
2022-01-20 08:22:33 +00:00
paulGao
2d1cfde76b 优化consumer延时任务执行器(修复一个高版本的redis可能导致redis连接不上问题) 2022-01-20 16:19:52 +08:00
Chopper
007d69a887 支付完成判定 2022-01-20 15:59:26 +08:00
Chopper
f3965cecd5 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop 2022-01-20 11:04:57 +08:00
Chopper
4fb170e5c7 支付宝支付结果校验 2022-01-20 11:01:24 +08:00
Chopper
8e1ade5423 支付参数判定重复代码处理 2022-01-20 09:27:07 +08:00
OceansDeep
0b081c2d85 !118 优化编辑商品时的生成索引和操作促销活动时更新索引促销信息,增加事务监听在事务提交后发
Merge pull request !118 from OceansDeep/feature/pg
2022-01-19 06:17:35 +00:00
paulGao
ab1e9f806f 优化编辑商品时的生成索引和操作促销活动时更新索引促销信息,增加事务监听在事务提交后发送mq信息 2022-01-19 14:16:02 +08:00
paulGao
e961711dcb Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop into feature/pg 2022-01-19 10:21:19 +08:00
paulGao
90185d8c32 优化编辑商品时的生成索引和操作促销活动时更新索引促销信息,增加事务监听在事务提交后发送mq信息 2022-01-19 10:18:33 +08:00
paulGao
68ef46195c 升级依赖包版本,解决安全问题 2022-01-19 10:16:15 +08:00
chopper711
0c234e78af !117 压测期间对代码进行性能优化,以及部分代码优化
Merge pull request !117 from chopper711/test
2022-01-19 02:03:47 +00:00
Chopper
ca1851570b 还原下单接口代码,这里存在规范问题日后与前端一起协调修改 2022-01-19 10:02:22 +08:00
Chopper
cf0d1378c8 压测相关还原 2022-01-18 11:03:15 +08:00
Chopper
b13a5d5f2a Merge branch 'master' into test 2022-01-18 09:51:09 +08:00
Chopper
575458afb3 1、去除非必要事务
2、对分布式多节点并发时可能存在生成相同的雪花算法id问题进行处理
3、其他问题优化
2022-01-18 09:50:26 +08:00
OceansDeep
b2d4b7bb23 !116 优化管理端登录和xss
Merge pull request !116 from OceansDeep/feature/pg
2022-01-17 10:01:58 +00:00
paulGao
def6247e9f 优化管理端登录和xss 2022-01-17 17:42:42 +08:00
fengtianyangyang
6409d0dc2d '更新' 2022-01-14 11:47:56 +08:00
OceansDeep
f253ae9c31 !115 修复店铺优惠券为部分商品分类。部分商品分类使用优惠券无效
Merge pull request !115 from OceansDeep/feature/pg
2022-01-13 09:39:10 +00:00
paulGao
b93d10eeea 修复店铺优惠券为部分商品分类。部分商品分类使用优惠券无效 2022-01-13 17:38:36 +08:00
OceansDeep
801f1cbd4c !114 修复店铺优惠券为部分商品。部分商品使用优惠券无效
Merge pull request !114 from OceansDeep/feature/pg
2022-01-13 09:12:00 +00:00
paulGao
f8260c3b29 修复店铺优惠券为部分商品。部分商品使用优惠券无效 2022-01-13 17:04:01 +08:00
paulGao
9e74c15413 代码优化 2022-01-12 19:46:07 +08:00
Chopper
65e7f9750a 增加获取uuid的方法,为压测环境的同一token购物车重复问题处理 2022-01-12 11:20:27 +08:00
Chopper
62804941c2 Merge remote-tracking branch 'origin/feature/pg' into test
# Conflicts:
#	framework/src/main/java/cn/lili/modules/order/order/serviceimpl/TradeServiceImpl.java
2022-01-11 17:39:46 +08:00
Chopper
05818baf7a 优化一些配置项,优化部分路基 2022-01-11 17:34:48 +08:00
paulGao
1c28e0bd5f 优化结算时获取用户优惠券信息(增加redis存储) 2022-01-11 17:34:00 +08:00
Chopper
0460e219f9 购物车创建时减少一次redis的读写 2022-01-11 16:34:18 +08:00
Chopper
eec3611218 优化sql 2022-01-11 15:16:02 +08:00
fengtianyangyang
87f637099c '合并master' 2022-01-11 14:50:06 +08:00
Chopper
5f0241768d 去除事务注解 2022-01-11 14:48:11 +08:00
fengtianyangyang
60b4ab5c5b '路径问题' 2022-01-11 14:32:01 +08:00
OceansDeep
bbed7afdcb !113 修复商品审核和编辑商品缺失对es操作问题
Merge pull request !113 from OceansDeep/feature/pg
2022-01-11 04:11:31 +00:00
paulGao
459a736ebc 修复商品审核和编辑商品缺失对es操作问题 2022-01-11 12:10:54 +08:00
OceansDeep
bdbc620515 !112 优化es商品索引的mapping的促销存储结构
Merge pull request !112 from OceansDeep/feature/pg
2022-01-11 03:39:13 +00:00
paulGao
3c905ffd8b 优化es商品索引的mapping的促销存储结构(解决促销过多时,mapping explosion问题) 2022-01-11 11:38:30 +08:00
OceansDeep
20d32b1f8f !111 优化es商品索引的mapping的促销存储结构,增加自定义xss过滤策略
Merge pull request !111 from OceansDeep/feature/pg
2022-01-11 03:27:44 +00:00
paulGao
f57a373d47 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop into feature/pg 2022-01-11 11:26:28 +08:00
paulGao
77a714e64c 优化es商品索引的mapping的促销存储结构(解决促销过多时,mapping explosion问题) 2022-01-11 11:25:56 +08:00
Chopper
4a3c978e07 用户校验问题处理 2022-01-11 11:23:38 +08:00
paulGao
a4d458bace 增加自定义xss过滤策略(可保存iframe) 2022-01-11 11:20:54 +08:00
Chopper
b0843aa744 token相关类使用泛型,优化代码 2022-01-11 11:16:17 +08:00
Chopper
eddcbc2ecb 增加会员登录事件,对token处理优化 2022-01-11 11:12:19 +08:00
OceansDeep
62fd1f3012 !110 优化编辑商品时的生成索引,修复店铺结算单结算金额对于积分商品和砍价商品重复计算问题
Merge pull request !110 from OceansDeep/feature/pg
2022-01-10 11:46:18 +00:00
paulGao
23264d5d9b merge conflict origin/master 2022-01-10 19:10:42 +08:00
Chopper
cc7d2c0c82 地址问题处理 2022-01-10 18:55:37 +08:00
Chopper
9bed8e57df 代码处理 2022-01-10 18:34:23 +08:00
paulGao
ad35168876 优化编辑商品时的生成索引,增加事务监听在提交后发送mq信息 2022-01-10 18:05:53 +08:00
paulGao
ec8d511e9e 修复店铺结算单结算金额对于积分商品和砍价商品重复计算问题 2022-01-10 18:04:38 +08:00
paulGao
d2cab9f4a1 修复店铺结算单结算金额对于积分商品和砍价商品重复计算问题 2022-01-10 18:04:21 +08:00
Chopper
c1ca4764f0 短信验证码验证暂时关闭 2022-01-10 17:15:53 +08:00
Chopper
366d1b8846 对限流暂时关闭 2022-01-10 17:10:19 +08:00
Chopper
7a8dd54e5c 给予测试环境默认收货地址 2022-01-10 17:01:28 +08:00
Chopper
37393bb7f8 修改api下单时的提交参数类型 2022-01-10 16:55:06 +08:00
Chopper
3904bfd91d 自动登录成功 2022-01-10 15:53:17 +08:00
Chopper
f720e00132 验证码验证默认通过 2022-01-10 15:42:32 +08:00
Chopper
f723c11a84 测试 2022-01-10 14:48:05 +08:00
Chopper
643e8c8157 连续加减方法运用 2022-01-10 09:48:44 +08:00
Chopper
11f9ddaeb6 更优雅的实现价格加减法运算 2022-01-10 09:41:07 +08:00
OceansDeep
5d96d434d6 !109 优化生成索引
Merge pull request !109 from OceansDeep/feature/pg
2022-01-07 10:24:02 +00:00
paulGao
ad1f086e4d 优化生成索引 2022-01-07 18:23:14 +08:00
OceansDeep
3fa3991cfa !108 优化xss过滤,使用owasp的预设规则过滤。优化代码
Merge pull request !108 from OceansDeep/feature/pg
2022-01-07 09:48:07 +00:00
paulGao
9a6102e887 优化xss过滤,使用owasp的预设规则过滤。优化代码 2022-01-07 17:46:42 +08:00
OceansDeep
e23d3a48cc !107 优化代码修复bug
Merge pull request !107 from OceansDeep/feature/pg
2022-01-04 11:56:40 +00:00
paulGao
ddd7c336cf 优化代码修复bug 2022-01-04 19:55:51 +08:00
OceansDeep
ee79b19d20 !106 修复部分查询,时间查询问题
Merge pull request !106 from OceansDeep/feature/pg
2022-01-04 01:13:18 +00:00
paulGao
383cbc0b53 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop into feature/pg 2022-01-04 09:06:32 +08:00
paulGao
e8d9556a4b 修复部分查询,时间查询问题 2022-01-04 09:06:23 +08:00
OceansDeep
5958f06986 !105 修复拼团商品使用优惠券无效问题,修复拼团活动延时任务无效问题
Merge pull request !105 from OceansDeep/feature/pg
2021-12-31 07:20:54 +00:00
paulGao
0c4aef307a 修复拼团商品使用优惠券无效问题,修复拼团活动延时任务无效问题 2021-12-31 15:19:17 +08:00
OceansDeep
20436653af !104 优化代码,修复bug
Merge pull request !104 from OceansDeep/feature/pg
2021-12-30 09:02:56 +00:00
paulGao
814533a2c2 修复分销商品佣金提现参数校验无效问题 2021-12-30 17:01:32 +08:00
paulGao
d4ca3d5817 修复秒杀库存前后端显示不一致问题 2021-12-30 17:00:32 +08:00
paulGao
194d0b6ac2 优化es索引更新,把单次更新优化为批量更新 2021-12-30 16:59:45 +08:00
Chopper
832b065a46 密码重置可以被多次调用问题处理 2021-12-30 16:49:55 +08:00
Chopper
fa443a091f 短信验证码验证结果未生效问题处理 2021-12-30 16:44:50 +08:00
OceansDeep
31c2f555fc !103 修复扣减商品库存问题
Merge pull request !103 from OceansDeep/feature/pg
2021-12-30 02:32:54 +00:00
paulGao
74e5e86eff 修复扣减商品库存问题 2021-12-30 10:31:56 +08:00
OceansDeep
a318eb82c7 !102 适配优化更新索引促销方式的结算
Merge pull request !102 from OceansDeep/feature/pg
2021-12-30 01:53:48 +00:00
paulGao
6465dc2b73 适配优化更新索引促销方式的结算。 2021-12-30 09:52:54 +08:00
OceansDeep
082d241c8f !101 适配优化更新索引促销方式的结算。
Merge pull request !101 from OceansDeep/feature/pg
2021-12-29 18:30:22 +00:00
paulGao
5a6012530e 适配优化更新索引促销方式的结算。 2021-12-30 02:28:27 +08:00
OceansDeep
35e4538160 !100 增加索引时间格式化格式
Merge pull request !100 from OceansDeep/feature/pg
2021-12-29 12:16:06 +00:00
paulGao
125bb372ed 增加索引时间格式化格式 2021-12-29 20:15:36 +08:00
OceansDeep
92e56d7153 !99 优化更新索引失败异常信息
Merge pull request !99 from OceansDeep/feature/pg
2021-12-29 12:07:16 +00:00
paulGao
c8272ec90d 优化更新索引失败异常信息 2021-12-29 20:06:20 +08:00
OceansDeep
b6d01cb850 !98 优化更新索引促销方式,以更新部分字段的方式更新。不在以刷新索引的方式更新。
Merge pull request !98 from OceansDeep/feature/pg
2021-12-29 11:48:56 +00:00
paulGao
5e1eb3e03b 优化更新索引促销方式,以更新部分字段的方式更新。不在以刷新索引的方式更新。 2021-12-29 19:48:09 +08:00
chopper711
f4c94bd8d6 !92 修复店铺列表永远查询到禁用店铺的bug Merge pull request !92 from ray/master
Merge pull request !92 from ray/master
2021-12-29 10:18:46 +00:00
OceansDeep
8484d3f810 !97 修改异步更新日志显示级别
Merge pull request !97 from OceansDeep/feature/pg
2021-12-29 10:16:22 +00:00
paulGao
07f5fbca47 修改异步更新日志显示级别 2021-12-29 18:11:28 +08:00
OceansDeep
68d03196af !96 优化更新索引促销方式,以更新部分字段的方式更新。不在以刷新索引的方式更新。
Merge pull request !96 from OceansDeep/feature/pg
2021-12-29 09:55:05 +00:00
paulGao
a9ef62dfb0 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop into feature/pg 2021-12-29 17:54:23 +08:00
paulGao
9f6d33f6e8 优化更新索引促销方式,以更新部分字段的方式更新。不在以刷新索引的方式更新。 2021-12-29 17:53:40 +08:00
Chopper
ff158fd0e4 token中增加头像 2021-12-29 17:45:31 +08:00
OceansDeep
4de5e616e5 !95 优化促销更新
Merge pull request !95 from OceansDeep/feature/pg
2021-12-29 04:22:43 +00:00
paulGao
b6db829b04 优化促销更新 2021-12-29 12:19:17 +08:00
OceansDeep
821aa74669 !94 优化代码结构
Merge pull request !94 from OceansDeep/feature/pg
2021-12-29 03:54:59 +00:00
paulGao
c3221a6fff 优化代码结构。优化促销更新。 2021-12-29 11:53:46 +08:00
OceansDeep
cbbfbae772 !93 fix bugs
Merge pull request !93 from OceansDeep/feature/pg
2021-12-28 12:02:05 +00:00
paulGao
c65fd99b15 优化更新商品索引促销信息时为异步执行。 2021-12-28 19:59:52 +08:00
paulGao
4d49d3c77a 修复订单收货时,更新订单完成时间。 2021-12-28 19:59:00 +08:00
paulGao
aad32a4a1f 修复满额活动赠品订单错误问题 2021-12-28 19:58:20 +08:00
zhanglei829
ec912efa01 fix bug 2021-12-28 15:18:13 +08:00
OceansDeep
bf2fdc2761 !91 修复下架商品没有删除商品索引问题。修复下单使用优惠券使金额变为0元时消费服务获取数据不正确。
Merge pull request !91 from OceansDeep/feature/pg
2021-12-27 10:03:12 +00:00
paulGao
168c630a13 修复下架商品没有删除商品索引问题。修复下单使用优惠券使金额变为0元时消费服务获取数据不正确导致没有及时更新订单状态问题。 2021-12-27 18:01:58 +08:00
paulGao
e7563203fe Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop into feature/pg 2021-12-27 14:39:19 +08:00
paulGao
9bf1dbe030 修复清除无效索引时的异常。某些情况下新建用户会创建两条member_wallet数据。优化代码。 2021-12-27 14:38:45 +08:00
OceansDeep
dbcee40b93 !90 修复优化促销
Merge pull request !90 from OceansDeep/feature/pg
2021-12-25 11:08:54 +00:00
paulGao
2af334d793 merge branch "master" 2021-12-25 19:08:18 +08:00
paulGao
f9a8675942 修复优化促销 2021-12-25 18:35:44 +08:00
fengtianyangyang
521a6174fe '修改路径' 2021-12-25 15:38:02 +08:00
Chopper
c85bc7b8ea Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop 2021-12-25 09:32:00 +08:00
OceansDeep
825e44b353 !89 修复首次发布商品不会生成商品索引问题
Merge pull request !89 from OceansDeep/feature/pg
2021-12-24 08:21:02 +00:00
paulGao
ed840a95a1 优化搜索热词管理,增加搜索热词删除 2021-12-24 16:11:53 +08:00
Chopper
ef31d6af83 砍价商品获取错误问题处理 2021-12-24 15:56:41 +08:00
Chopper
b1e70ebf12 促销金额大于商品金额的极端情况显示问题处理 2021-12-24 15:46:25 +08:00
Chopper
3af0031214 注册赠券功能bug修复 2021-12-24 15:45:48 +08:00
paulGao
b648aa94b3 修复首次发布商品不会生成商品索引问题;代码优化;修复bug; 2021-12-24 14:59:38 +08:00
Chopper
0e864043a6 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop 2021-12-24 11:13:42 +08:00
OceansDeep
eb25827937 !88 修复文章内容编辑无格式问题
Merge pull request !88 from OceansDeep/feature/pg
2021-12-23 11:23:18 +00:00
paulGao
f4a07b2911 修复文章内容编辑无格式问题 2021-12-23 19:22:00 +08:00
paulGao
cdfeb5dbdc 修复更新订单的售后商品数量时,传递goodsId改成goodsSkuId 2021-12-23 17:17:31 +08:00
Chopper
40bc890870 空品牌问题处理 2021-12-23 15:27:06 +08:00
paulGao
18874e3755 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop into feature/pg 2021-12-23 13:59:56 +08:00
Chopper
a3d2b84ecb Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop 2021-12-23 11:58:53 +08:00
Chopper
5f16a5c791 各个应用微信支付配置分开 2021-12-23 11:58:47 +08:00
paulGao
f086a58096 添加xss过滤sell关键字 2021-12-23 10:58:19 +08:00
paulGao
dfcf71aec7 移除mongo,将系统日志存储在es。修复拼团商品的正常购买价格为拼团价格问题 2021-12-23 10:55:43 +08:00
OceansDeep
f2e8d03f80 !87 修复管理员上下架商品报错问题
Merge pull request !87 from OceansDeep/feature/pg
2021-12-23 00:37:38 +00:00
paulGao
0736f1c550 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop into feature/pg 2021-12-23 08:17:50 +08:00
paulGao
bdd1195d20 修复管理员上下架商品报错问题 2021-12-23 08:17:45 +08:00
Chopper
e5511d5c09 订单联合查询将innerjoin 修改为 left join 2021-12-22 17:57:49 +08:00
Chopper
7634801f7c Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop
# Conflicts:
#	framework/src/main/java/cn/lili/modules/order/cart/render/impl/SkuPromotionRender.java
2021-12-22 17:04:12 +08:00
Chopper
1db86f2865 es中商品索引信息,以及虚拟商品会携带大量优惠券信息下单问题处理 2021-12-22 17:00:30 +08:00
OceansDeep
626e58b515 !86 修复结算时促销为空的问题
Merge pull request !86 from OceansDeep/feature/pg
2021-12-22 08:51:27 +00:00
paulGao
787617f504 修复结算时促销为空的问题 2021-12-22 16:50:50 +08:00
OceansDeep
3fb4e488bb !85 修复结算时无促销报错问题
Merge pull request !85 from OceansDeep/feature/pg
2021-12-22 07:40:24 +00:00
paulGao
c5187a63b9 修复结算时无促销报错问题 2021-12-22 15:34:20 +08:00
Chopper
e5f725cf16 索引初始化对商品删除与否增加判定 2021-12-22 12:51:33 +08:00
Chopper
3d56c9cc81 商品非空判定处理 2021-12-22 12:42:04 +08:00
Chopper
0ae1ae5df4 如果无法获取到消息,则不记录足迹,不再抛出异常 2021-12-22 12:27:46 +08:00
Chopper
c0c530adad 增加对商品为空的判定 2021-12-22 12:22:52 +08:00
Chopper
e962a594ba 商品信息获取逻辑调整 2021-12-22 12:13:43 +08:00
Chopper
0ac7900948 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop 2021-12-21 19:29:59 +08:00
Chopper
6748b2911a 去除一个无效的类 2021-12-21 19:29:54 +08:00
OceansDeep
3e4152fd9b !84 优化促销。移除结算时促销的依赖。规范部分isxxx字段命名
Merge pull request !84 from OceansDeep/feature/pg
2021-12-21 10:58:54 +00:00
paulGao
7dfffd60b8 merge master 2021-12-21 18:56:39 +08:00
paulGao
3ba4d24041 优化促销。移除结算时促销的依赖。规范部分isxxx字段命名 2021-12-21 18:54:11 +08:00
Chopper
e99d0f45fd 修改一个错误的非空判断 2021-12-21 16:59:57 +08:00
Chopper
351745d31f 促销类型错误的写入一个促销状态字段问题处理 2021-12-21 16:08:24 +08:00
Chopper
bfa960d803 管理端商品上下架问题处理 2021-12-21 14:47:39 +08:00
Chopper
7572e8d56f 解决如果商品sku参数为空等异常情况导致无法发布的问题 2021-12-21 11:33:55 +08:00
Chopper
82e773243f 增加readme描述 2021-12-21 10:38:02 +08:00
Chopper
795440850b 更名 2021-12-21 10:27:22 +08:00
Chopper
6adcb46f29 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop 2021-12-21 10:25:45 +08:00
Chopper
6cd31e630c 更新升级sql 2021-12-21 10:25:38 +08:00
fengtianyangyang
23b3e72579 '商品es初始化索引问题' 2021-12-20 14:56:17 +08:00
fengtianyangyang
bda7a12c2a '商品es索引初始化问题' 2021-12-20 14:38:41 +08:00
Chopper
e8f44ef6f2 短信验证码缓存key未包含uuid问题处理 2021-12-20 09:37:34 +08:00
paulGao
e4047fbd30 merge branch "master" 2021-12-16 15:02:54 +08:00
paulGao
7dcdb43acf 优化促销相关代码,修复bug 2021-12-16 15:02:06 +08:00
Chopper
9f75e1fae8 sql描述文字优化 2021-12-16 09:33:37 +08:00
Chopper
78c0de664c 优化数据库提示语 2021-12-16 09:30:26 +08:00
fengtianyangyang
efc4b37782 'RequestMapping请求路径统一处理' 2021-12-15 18:32:59 +08:00
OceansDeep
6253590326 !82 修复查询积分商品参数问题
Merge pull request !82 from OceansDeep/feature/pg
2021-12-15 09:59:54 +00:00
paulGao
f0b43ddd32 修复查询积分商品参数问题 2021-12-15 17:58:55 +08:00
OceansDeep
51e7b4f15d !81 修复查询积分商品sql语句错误问题
Merge pull request !81 from OceansDeep/feature/pg
2021-12-15 09:43:22 +00:00
paulGao
0ef244b373 移除mongo,将系统日志存储在es。修复拼团商品的正常购买价格为拼团价格问题 2021-12-15 17:42:03 +08:00
OceansDeep
97a1502eb2 !80 修复查询积分商品参数问题
Merge pull request !80 from OceansDeep/feature/pg
2021-12-15 09:32:39 +00:00
paulGao
2536e3b9f6 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop into feature/pg 2021-12-15 17:32:02 +08:00
paulGao
7aed7254a0 修复查询积分商品参数问题 2021-12-15 17:31:39 +08:00
OceansDeep
44e061f321 !79 修复商品审核关闭后,修改商品不生成索引问题。升级mybatis-plus和hutool版本
Merge pull request !79 from OceansDeep/feature/pg
2021-12-15 03:37:52 +00:00
paulGao
a9ddcfeb95 修复商品审核关闭后,修改商品不生成索引问题。升级mybatis-plus版本至 3.4.3.4 和hutool版本至 5.7.16。适配新版本mybatis-plus 2021-12-15 11:35:41 +08:00
OceansDeep
822e332aaa !78 移除mongo,将系统日志存储在es。修复拼团商品的正常购买价格为拼团价格问题
Merge pull request !78 from OceansDeep/feature/pg
2021-12-13 10:18:58 +00:00
paulGao
c3fbad7dbf 移除mongo,将系统日志存储在es。修复拼团商品的正常购买价格为拼团价格问题 2021-12-13 18:15:37 +08:00
Chopper
07348357d0 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop 2021-12-13 16:22:27 +08:00
Chopper
947fc457f2 修改im平台id字段类型为string 2021-12-13 16:21:59 +08:00
OceansDeep
b719e96838 !77 修复获取拼团订单时,搜索条件默认锁定了当前会员id问题
Merge pull request !77 from OceansDeep/feature/pg
2021-12-13 06:50:50 +00:00
paulGao
cafeb1f20f 修复获取拼团订单时,搜索条件默认锁定了当前会员id问题 2021-12-13 14:49:57 +08:00
OceansDeep
9ae798a11a !76 修复无登录用户时,查询报错
Merge pull request !76 from OceansDeep/feature/pg
2021-12-13 04:28:37 +00:00
paulGao
d188068b10 修复无登录用户时,查询报错 2021-12-13 12:27:13 +08:00
Chopper
abb4b8cb66 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop 2021-12-13 09:32:14 +08:00
Chopper
ef8615cfe5 支付时间为空问题处理 2021-12-13 09:32:10 +08:00
OceansDeep
ee0cb6d225 !75 修复秒杀统计根据状态查询bug
Merge pull request !75 from OceansDeep/feature/pg
2021-12-13 01:15:16 +00:00
paulGao
0da8f7f8f6 修复秒杀统计根据状态查询bug 2021-12-13 09:13:45 +08:00
chopper711
f8b44d9f9b !73 【轻量级 PR】:避免redis缓存二次读取
Merge pull request !73 from yk_ang/master
2021-12-13 01:08:48 +00:00
OceansDeep
b55f5ab6ae !74 重构优化促销模块。移除促销相关的mongo
Merge pull request !74 from OceansDeep/feature/pg
2021-12-12 17:09:36 +00:00
paulGao
90e550934d merge branch "master" 2021-12-11 17:45:25 +08:00
yangkang
ff757d2151 避免redis缓存二次读取。 2021-12-11 16:07:41 +08:00
yangkang
a3f838d8e6 Merge remote-tracking branch 'origin/master' 2021-12-11 15:58:36 +08:00
paulGao
d9d19f8cbd 重构优化促销模块。移除促销相关的mongo 2021-12-10 20:15:03 +08:00
Chopper
036ad6defb 店铺udesk设置支持 2021-12-09 19:52:40 +08:00
Chopper
520c09b801 当用户一个权限都没有时,会导致用户无法进入管理端页面,问题修复 2021-12-08 20:21:51 +08:00
Chopper
f850e4adaa 日志打印更完善 2021-12-08 19:53:29 +08:00
Chopper
450041bb02 权限非空判定问题处理 2021-12-08 19:35:18 +08:00
Chopper
2e99c26654 权限为空时问题处理 2021-12-08 19:26:37 +08:00
Chopper
2e5f383db4 店铺流水查询交互参数从querywrapper调整为DTO 2021-12-08 14:36:14 +08:00
Chopper
357b214192 店铺流水业务模块参数解耦 2021-12-08 11:39:09 +08:00
Chopper
c301c55905 去除无效引用 2021-12-08 10:42:15 +08:00
Chopper
1764e6956b 售后与子订单模块参数解耦 2021-12-08 10:40:45 +08:00
Chopper
a7509e1125 微信服务与端链接传递参数为querywrapper调整 2021-12-08 10:03:34 +08:00
Chopper
9ec3322574 商品模块与店铺模块交接处以query wrapper衔接存在问题,改用普通参数 2021-12-08 09:50:19 +08:00
yangkang
3658f027bb Merge remote-tracking branch 'origin/master' 2021-12-07 19:45:41 +08:00
Chopper
9a04bb2d71 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop 2021-12-07 18:15:25 +08:00
Chopper
343e5e332c 店铺首页统计bug代码修复 2021-12-07 18:15:18 +08:00
yangkang
28a6cf1cb1 Merge remote-tracking branch 'origin/master' 2021-12-07 17:43:42 +08:00
chopper711
e2777b2f0a !72 模块继续分离,包含一个错误读取两次库存的问题修改,会员消息模块/微信模块/消息模块独立,分销模块拆离
Merge pull request !72 from chopper711/liushuai
2021-12-07 08:37:22 +00:00
Chopper
d8da258898 分销模块拆离 2021-12-07 09:00:59 +08:00
Chopper
8616854e00 消息模块,会员模块,微信模块独立 2021-12-07 05:47:17 +08:00
Chopper
7b98d1d9d0 几个代码编译问题处理 2021-12-07 04:33:51 +08:00
Chopper
b8b14df39b message模块拆离优化 2021-12-07 04:12:51 +08:00
Chopper
8ddf622d0f Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop 2021-12-06 17:45:31 +08:00
Chopper
00ffd246a9 业务代码模块trade统一更名为order 2021-12-06 17:45:16 +08:00
yangkang
ac86715062 Merge remote-tracking branch 'origin/master' 2021-12-06 16:58:14 +08:00
yangkang
2c8df21671 Merge remote-tracking branch 'origin/master' 2021-12-06 16:55:48 +08:00
Chopper
d16cf44f4a 获取两次商品库存代码优化 2021-12-06 15:59:13 +08:00
chopper711
6d3fbd7cf0 !71 业务代码拆分优化
Merge pull request !71 from chopper711/liushuai
2021-12-06 07:40:54 +00:00
chopper711
f9f723c47a !70 修复store/promotion/pintuan这个接口中,获取拼团列表查询bug。
Merge pull request !70 from yk_ang/master
2021-12-06 07:40:19 +00:00
yangkang
3ac28ac218 修复store/promotion/pintuan这个接口中,获取拼团列表查询bug。 2021-12-06 15:18:39 +08:00
yangkang
ece66ba16a 修复store/promotion/pintuan这个接口中,获取拼团列表查询bug。 2021-12-06 15:18:03 +08:00
Chopper
f24019d306 订单流水与订单业务重叠代码优化 2021-12-06 15:07:28 +08:00
Chopper
ea80777ef6 优化代码结构 2021-12-06 14:57:29 +08:00
Chopper
f7ab6dc6ae 统计模块继续独立,拆分业务 2021-12-06 11:37:21 +08:00
Chopper
a8698fbd1a 迁移会员统计业务至统计模块 2021-12-06 11:12:00 +08:00
Chopper
62b5162c7e 去除无效引用 2021-12-06 11:02:42 +08:00
Chopper
aa9466b8d1 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop 2021-12-03 18:31:30 +08:00
Chopper
70b12dfd3e 统计模块隔离业务,重构统计模块 2021-12-03 18:31:14 +08:00
chopper711
0912872de2 !69 去除多余的对象和引用。
Merge pull request !69 from yk_ang/master
2021-12-03 06:12:41 +00:00
yangkang
9016090c67 去掉无用的对象和引用。 2021-12-03 12:40:37 +08:00
chopper711
79e4386d1e !68 去除无效类,优化无效引用
Merge pull request !68 from chopper711/liushuai
2021-12-03 02:34:25 +00:00
Chopper
5e4973fae5 去除无效的工具类 2021-12-03 10:25:08 +08:00
Chopper
4228ac4570 es无效引用 2021-12-02 19:49:26 +08:00
chopper711
152dbac29d !67 mq订阅标签规范代码 店铺流水调用售后模块直接船渡wrapper调整 去除无效的注解
Merge pull request !67 from chopper711/liushuai
2021-12-02 09:07:01 +00:00
Chopper
2241e90798 去除无效的注解 2021-12-02 17:05:58 +08:00
Chopper
613a808cec 店铺流水调用售后模块直接船渡wrapper调整 2021-12-02 14:42:46 +08:00
Chopper
af52a68abc mq订阅标签规范代码 2021-12-01 15:49:28 +08:00
chopper711
9c2738399e !66 店铺流水相关代码优化,流水与结算单业务隔离。联合登陆信息查询代码优化,更优雅的实现,优化规范余额相关模型传递问题
Merge pull request !66 from chopper711/liushuai
2021-12-01 07:22:55 +00:00
Chopper
385a4ae618 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop 2021-12-01 15:21:57 +08:00
Chopper
b0d39324ef 联合登陆信息查询代码优化,更优雅的实现 2021-12-01 15:21:43 +08:00
Chopper
c224ad568e 优化规范余额相关模型传递问题 2021-12-01 09:58:21 +08:00
Chopper
6184ba9b82 店铺流水相关代码优化,流水与结算单业务隔离。
相关方法进行优化,迁移。
2021-11-30 16:57:19 +08:00
Chopper
bea807c7b4 demosite相关补充提交 2021-11-30 16:55:58 +08:00
Chopper
323bc6b775 将限制项提高到框架common模块 2021-11-30 16:53:37 +08:00
fengtianyangyang
7c87d13ba2 '去除4.24订单处理功能' 2021-11-30 15:28:12 +08:00
fengtianyangyang
3e10c891ab '去除处理4.24版本之前订单功能' 2021-11-30 15:19:42 +08:00
fengtianyangyang
643d966740 Merge remote-tracking branch 'origin/master' 2021-11-30 15:07:14 +08:00
fengtianyangyang
94968799c3 '合并订单多售后功能' 2021-11-30 15:03:49 +08:00
Chopper
30d53fa41e 去除无效的引用 2021-11-30 15:03:17 +08:00
chopper711
00805d6a49 !65 规范代码,收藏功能完善优化
Merge pull request !65 from chopper711/liushuai
2021-11-30 07:02:31 +00:00
Chopper
0e7665f59d 店铺收藏/商品收藏问题处理优化 2021-11-30 15:00:30 +08:00
fengtianyangyang
96cc2bd37f '代码规范' 2021-11-30 14:54:05 +08:00
Chopper
71e51b3b6f 规范店铺模块调用商品模块方法 2021-11-30 10:00:46 +08:00
fengtianyangyang
5f90e422e6 '代码格式优化及去除orderItem多余字段' 2021-11-29 17:43:17 +08:00
chopper711
b65cdfc1fb !64 规范service调用,简化readme
Merge pull request !64 from chopper711/liushuai
2021-11-29 08:47:57 +00:00
Chopper
a3c597b3c5 简化readme 2021-11-29 16:47:22 +08:00
Chopper
db587fda30 规范service调用 2021-11-29 16:38:53 +08:00
chopper711
7170e3a16a !63 敏感词加载继续优化一下,初始化放在consumer中执行
Merge pull request !63 from chopper711/liushuai
2021-11-29 03:48:17 +00:00
Chopper
61aa3ca3d2 敏感词加载继续优化一下,初始化放在consumer中执行 2021-11-29 11:47:54 +08:00
chopper711
96f57b7df8 !62 功能模块优化,敏感词模块优化
Merge pull request !62 from chopper711/liushuai
2021-11-29 03:47:20 +00:00
Chopper
d16df738d3 Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop 2021-11-29 11:17:20 +08:00
lifenlong
9ae0921f69 同步在阿里云修改的短信签名 2021-11-26 08:39:01 +08:00
lifenlong
5dd1c95294 短信签名缺失ID 2021-11-25 11:09:55 +08:00
Chopper
404fecd83c Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop 2021-11-25 09:50:22 +08:00
Chopper
a4fb3db3cd 结算业务代码优化调整 2021-11-24 16:23:27 +08:00
Chopper
92d64db0b7 去除创建店铺自动创建店铺楼层装修 2021-11-24 15:44:21 +08:00
chopper711
033ec0fd61 !61 CurrencyUtil 修正 来自@BigBender 同学的pr
Merge pull request !61 from BigBender/master
2021-11-24 06:48:34 +00:00
yc_l_zZ_admin
dc36274212 替换 BigDecimal.ROUND_HALF_UP 为 RoundingMode.HALF_UP, 减少冗余代码 2021-11-24 14:08:38 +08:00
Chopper
817587522b 去除一个无效控制器 2021-11-24 10:30:34 +08:00
Chopper
58648c3ece 模块隔离优化 2021-11-24 10:30:21 +08:00
Chopper
16f314bd80 敏感词更新策略问题调整,敏感词迁移至公共工具类 2021-11-23 16:56:03 +08:00
Chopper
f8408030a9 敏感词更新策略问题调整,敏感词迁移至公共工具类 2021-11-23 16:53:53 +08:00
Chopper
c276b1595c 微信参数小写处理 2021-11-22 18:30:11 +08:00
Chopper
71cc57959b Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop 2021-11-22 18:20:41 +08:00
Chopper
dbd35c18b5 微信支付签名被xss过滤问题处理忽略 2021-11-22 18:20:06 +08:00
OceansDeep
1e868c2335 修复未登录用户,浏览积分商品报错 2021-11-22 10:18:39 +00:00
Chopper
59461175d9 修复支付宝配置私钥后无法支付问题 2021-11-22 16:45:54 +08:00
fengtianyangyang
aee5d4be2e '修改DBsql错误版本文件名称' 2021-11-22 15:35:40 +08:00
fengtianyangyang
e9c18935c5 '修改DBsql文件错误字段' 2021-11-22 15:29:27 +08:00
fengtianyangyang
b80aa48735 '项目启动处理4.24版本之前订单问题' 2021-11-22 15:24:23 +08:00
Chopper
c32999aa03 缩略图相关方法调整 2021-11-22 14:55:16 +08:00
Chopper
56d486e010 将http工具类整合在一起 2021-11-22 10:53:27 +08:00
fengtianyangyang
d83f82a340 '增加项目启动时对4.2.4之前版本orderItem订单处理' 2021-11-19 18:42:47 +08:00
chopper711
2f49292672 update README.md. 2021-11-19 04:05:17 +00:00
chopper711
c09b6061fc update README.md. 2021-11-19 04:03:23 +00:00
fengtianyangyang
1d14a0adb5 '修改注释规范' 2021-11-19 11:41:31 +08:00
fengtianyangyang
840a2eabdb '买家端取消售后及管理端终止售后,买家端重新发起售后问题' 2021-11-19 11:24:50 +08:00
fengtianyangyang
f2be8e6abd 'DB-新增字段' 2021-11-19 09:26:14 +08:00
fengtianyangyang
71fb4b2b2b '多数量商品售后功能' 2021-11-18 19:26:47 +08:00
Chopper
3cabf0a32c Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop 2021-11-18 17:23:52 +08:00
Chopper
8416fd49ae 优化代码结构,分包更清晰。
去除无效逻辑。
2021-11-18 17:23:18 +08:00
chopper711
3a15c2eaa7 !59 优惠券过期处理bug修复
Merge pull request !59 from CodeNose/fixbug_20211117_couponRemoveBug
2021-11-18 03:36:45 +00:00
OceansDeep
e0eb76e120 !60 升级版本号
Merge pull request !60 from OceansDeep/feature/pg
2021-11-17 10:31:56 +00:00
paulGao
8a29ce048d 升级版本号 2021-11-17 18:30:08 +08:00
hhf
d43b679f8d 优惠券过期删除bug修复 2021-11-17 17:48:45 +08:00
882 changed files with 215403 additions and 12295 deletions

1
.gitignore vendored
View File

@@ -10,6 +10,7 @@ target
.factorypath .factorypath
log/ log/
logs/
*.factorypath *.factorypath
lili-shop/src/main/java/cn/lili/generator/CodeGenerator.java lili-shop/src/main/java/cn/lili/generator/CodeGenerator.java
lili-logs lili-logs

View File

@@ -1,3 +1,6 @@
## PS:数据库位置 ## PS:数据库位置
点击跳转 https://gitee.com/beijing_hongye_huicheng/docker/tree/master/init/mysql 这里有与tag版本一致的sql根据tag获取sql如果使用master代码则需要在lilishop项目根目录的update-sql目录中获取对应的升级sql。 点击跳转 https://gitee.com/beijing_hongye_huicheng/docker/tree/master/init/mysql 这里有与tag版本一致的sql根据tag获取sql如果使用master代码则需要在lilishop项目根目录的update-sql目录中获取对应的升级sql。
使用master分支代码时可能会无法运行执行完初始化sql之后需要执行当前目录下'versiontXXXXtoMASTER.sql'。

View File

@@ -7,6 +7,7 @@
Source Host : 192.168.0.116:3306 Source Host : 192.168.0.116:3306
Source Schema : lilishop Source Schema : lilishop
Target Server Type : MySQL Target Server Type : MySQL
Target Server Version : 80023 Target Server Version : 80023
File Encoding : 65001 File Encoding : 65001

189783
DB/lilishop.sql Normal file

File diff suppressed because one or more lines are too long

2
DB/update.sql Normal file
View File

@@ -0,0 +1,2 @@
/** 店铺--默认页面是否开启**/
ALTER TABLE li_store ADD page_show bit(1) DEFAULT NULL COMMENT '默认页面是否开启';

View File

@@ -6,7 +6,7 @@ ALTER TABLE li_distribution ADD settlement_bank_branch_name varchar ( 200 );
/** 文章分类添加默认值**/ /** 文章分类添加默认值**/
ALTER TABLE li_article_category alter column sort set default 0; ALTER TABLE li_article_category alter column sort set default 0;
/** 添加分销提现菜单**/ /** 添加分销提现菜单**/
INSERT INTO `lilishop`.`li_menu`(`id`, `create_by`, `create_time`, `delete_flag`, `update_by`, `update_time`, `description`, `front_route`, `icon`, `level`, `name`, `parent_id`, `path`, `sort_order`, `title`, `front_component`) VALUES (1410862675914764290, 'admin', '2021-07-02 15:27:29', b'0', 'admin', '2021-07-02 15:27:45', 'null', 'distribution/distributionCash', '', 2, 'distributionCash', '1374173575405109248', 'distributionCash', 5.00, '分销提现', 'null'); INSERT INTO `rxshop`.`li_menu`(`id`, `create_by`, `create_time`, `delete_flag`, `update_by`, `update_time`, `description`, `front_route`, `icon`, `level`, `name`, `parent_id`, `path`, `sort_order`, `title`, `front_component`) VALUES (1410862675914764290, 'admin', '2021-07-02 15:27:29', b'0', 'admin', '2021-07-02 15:27:45', 'null', 'distribution/distributionCash', '', 2, 'distributionCash', '1374173575405109248', 'distributionCash', 5.00, '分销提现', 'null');
/** 促销商品添加商品类型**/ /** 促销商品添加商品类型**/
ALTER TABLE li_promotion_goods ADD goods_type varchar (200); ALTER TABLE li_promotion_goods ADD goods_type varchar (200);
@@ -16,7 +16,7 @@ update li_member_points_history set point_type = 'INCREASE' where point_type=1;
update li_member_points_history set point_type = 'REDUCE' where point_type=0; update li_member_points_history set point_type = 'REDUCE' where point_type=0;
/** 添加分词管理菜单*/ /** 添加分词管理菜单*/
INSERT INTO `lilishop`.`li_menu` (`id`, `create_by`, `create_time`, `delete_flag`, `update_by`, `update_time`, `description`, `front_route`, `icon`, `level`, `name`, `parent_id`, `path`, `sort_order`, `title`, `front_component`) VALUES (1349247640584085511, 'admin', '2021-01-13 14:51:20', b'0', 'admin', '2021-02-25 09:02:59', 'null', 'customWords/index', 'ios-american-football', 2, 'customWords', '1349237129847005184', 'customWords', 8.00, '分词管理', 'null'); INSERT INTO `rxshop`.`li_menu` (`id`, `create_by`, `create_time`, `delete_flag`, `update_by`, `update_time`, `description`, `front_route`, `icon`, `level`, `name`, `parent_id`, `path`, `sort_order`, `title`, `front_component`) VALUES (1349247640584085511, 'admin', '2021-01-13 14:51:20', b'0', 'admin', '2021-02-25 09:02:59', 'null', 'customWords/index', 'ios-american-football', 2, 'customWords', '1349237129847005184', 'customWords', 8.00, '分词管理', 'null');
/** 修改会员评价店铺图片字段类型 **/ /** 修改会员评价店铺图片字段类型 **/
alter table li_member_evaluation modify column reply_image text; alter table li_member_evaluation modify column reply_image text;
@@ -25,4 +25,4 @@ alter table li_member_evaluation modify column reply_image text;
alter table li_after_sale modify column after_sale_image text; alter table li_after_sale modify column after_sale_image text;
/** 提现申请审核sql **/ /** 提现申请审核sql **/
INSERT INTO `lilishop`.`li_menu`(`id`, `create_by`, `create_time`, `delete_flag`, `update_by`, `update_time`, `description`, `front_route`, `icon`, `level`, `name`, `parent_id`, `path`, `sort_order`, `title`, `front_component`) VALUES (1367042804944994305, 'admin', '2021-03-03 09:22:58', b'0', NULL, NULL, NULL, 'member/advance/withdrawApply', 'ios-alert', 2, 'withdrawApply', '1367042490443497472', 'withdrawApply', 1.00, '提现申请', NULL); INSERT INTO `rxshop`.`li_menu`(`id`, `create_by`, `create_time`, `delete_flag`, `update_by`, `update_time`, `description`, `front_route`, `icon`, `level`, `name`, `parent_id`, `path`, `sort_order`, `title`, `front_component`) VALUES (1367042804944994305, 'admin', '2021-03-03 09:22:58', b'0', NULL, NULL, NULL, 'member/advance/withdrawApply', 'ios-alert', 2, 'withdrawApply', '1367042490443497472', 'withdrawApply', 1.00, '提现申请', NULL);

View File

@@ -0,0 +1,64 @@
/** 新增已退货数量 **/
ALTER TABLE li_order_item ADD return_goods_number int DEFAULT 0 COMMENT '退货数量 ';
-- 促销重构sql
ALTER TABLE li_coupon DROP COLUMN promotion_status;
ALTER TABLE li_coupon_activity DROP COLUMN promotion_status;
ALTER TABLE li_coupon_activity ADD `scope_id` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '范围关联的ID';
ALTER TABLE li_coupon_activity ADD `scope_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT 'PORTION_GOODS' COMMENT '关联范围类型';
ALTER TABLE li_full_discount DROP COLUMN promotion_status;
ALTER TABLE li_full_discount ADD `scope_id` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT '范围关联的ID';
ALTER TABLE li_full_discount ADD `scope_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT 'PORTION_GOODS' COMMENT '关联范围类型';
ALTER TABLE li_kanjia_activity_goods DROP COLUMN promotion_status;
ALTER TABLE li_kanjia_activity_goods ADD `scope_id` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT '范围关联的ID';
ALTER TABLE li_kanjia_activity_goods ADD `scope_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT 'PORTION_GOODS' COMMENT '关联范围类型';
ALTER TABLE li_kanjia_activity_goods ADD `goods_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL;
ALTER TABLE li_pintuan DROP COLUMN promotion_status;
ALTER TABLE li_pintuan ADD `scope_id` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT '范围关联的ID';
ALTER TABLE li_pintuan ADD `scope_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT 'PORTION_GOODS' COMMENT '关联范围类型';
ALTER TABLE li_points_goods DROP COLUMN promotion_status;
ALTER TABLE li_points_goods ADD `scope_id` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT '范围关联的ID';
ALTER TABLE li_points_goods ADD `scope_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT 'PORTION_GOODS' COMMENT '关联范围类型';
ALTER TABLE li_points_goods ADD `original_price` double(10,2) DEFAULT NULL COMMENT '原价';
ALTER TABLE li_points_goods ADD `thumbnail` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '缩略图';
ALTER TABLE li_points_goods ADD `goods_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '商品编号';
ALTER TABLE li_points_goods ADD `goods_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '货品名称';
ALTER TABLE li_promotion_goods DROP COLUMN promotion_status;
ALTER TABLE li_promotion_goods ADD `scope_id` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT '范围关联的ID';
ALTER TABLE li_promotion_goods ADD `scope_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT 'PORTION_GOODS' COMMENT '关联范围类型';
ALTER TABLE li_promotion_goods ADD `original_price` double(10,2) DEFAULT NULL COMMENT '原价';
ALTER TABLE li_promotion_goods ADD `points` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '兑换积分';
ALTER TABLE li_promotion_goods ADD `goods_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '商品编号';
ALTER TABLE li_seckill DROP COLUMN promotion_status;
ALTER TABLE li_seckill ADD `scope_id` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT '范围关联的ID';
ALTER TABLE li_seckill ADD `scope_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT 'PORTION_GOODS' COMMENT '关联范围类型';
ALTER TABLE li_full_discount RENAME COLUMN is_coupon TO coupon_flag;
ALTER TABLE li_full_discount RENAME COLUMN is_free_freight TO free_freight_flag;
ALTER TABLE li_full_discount RENAME COLUMN is_full_minus TO full_minus_flag;
ALTER TABLE li_full_discount RENAME COLUMN is_full_rate TO full_rate_flag;
ALTER TABLE li_full_discount RENAME COLUMN is_gift TO gift_flag;
ALTER TABLE li_full_discount RENAME COLUMN is_point TO point_flag;
ALTER TABLE li_member_coupon RENAME COLUMN is_platform TO platform_flag;
ALTER TABLE li_goods RENAME COLUMN is_auth TO auth_flag;
ALTER TABLE li_goods_sku RENAME COLUMN is_promotion TO promotion_flag;
ALTER TABLE li_goods_sku RENAME COLUMN is_auth TO auth_flag;
-- 增加会员表索引
ALTER TABLE li_member ADD INDEX query_mobile (`mobile`) COMMENT 'query_member';
-- 会员签到唯一索引 惠券查询索引
ALTER TABLE li_member_sign ADD INDEX query_create_time (`create_time`) COMMENT 'query_create_time';
ALTER TABLE li_member_sign ADD INDEX query_member_id (`member_id`) COMMENT 'query_member_id';
ALTER TABLE li_member_sign add unique uk_member_day (member_id, create_time) COMMENT 'uk_member_day';

521
DB/version4.2.4to4.2.5.sql Normal file
View File

@@ -0,0 +1,521 @@
/**增加店铺发货信息**/
ALTER TABLE li_store_detail ADD `sales_consignor_address_id` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '发货地址id';
ALTER TABLE li_store_detail ADD `sales_consignor_address_path` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '发货地址名称';
ALTER TABLE li_store_detail ADD `sales_consignor_detail` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '发货详细地址';
ALTER TABLE li_store_detail ADD `sales_consignor_mobile` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '发货人手机';
ALTER TABLE li_store_detail ADD `sales_consignor_name` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '发货人姓名';
/**增加电子面单店铺信息**/
ALTER TABLE `li_store_logistics` ADD `customer_name` varchar(255) DEFAULT NULL COMMENT '客户代码';
ALTER TABLE `li_store_logistics` ADD `customer_pwd` varchar(255) DEFAULT NULL COMMENT '客户密码';
ALTER TABLE `li_store_logistics` ADD `month_code` varchar(255) DEFAULT NULL COMMENT '月结号/密钥';
ALTER TABLE `li_store_logistics` ADD `send_site` varchar(255) DEFAULT NULL COMMENT '归属网点';
ALTER TABLE `li_store_logistics` ADD `send_staff` varchar(255) DEFAULT NULL COMMENT '收件快递员';
ALTER TABLE `li_store_logistics` ADD `face_sheet_flag` bit(1) DEFAULT NULL COMMENT '是否使用电子面单';
ALTER TABLE `li_store_logistics` ADD `pay_type` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '支付方式';
ALTER TABLE `li_store_logistics` ADD `exp_type` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '快递类型';
/** 店铺--默认页面是否开启**/
ALTER TABLE li_store ADD page_show bit(1) DEFAULT NULL COMMENT '默认页面是否开启';
/** 创建店员表 **/
/*
Navicat Premium Data Transfer
Source Server : lilishop
Source Server Type : MySQL
Source Server Version : 80025
Source Host : 192.168.0.116:3306
Source Schema : zhimai1
Target Server Type : MySQL
Target Server Version : 80025
File Encoding : 65001
Date: 03/03/2022 19:30:20
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for li_clerk
-- ----------------------------
DROP TABLE IF EXISTS `li_clerk`;
CREATE TABLE `li_clerk` (
`id` bigint NOT NULL COMMENT 'ID',
`create_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '创建者',
`create_time` datetime(6) NULL DEFAULT NULL COMMENT '创建时间',
`delete_flag` bit(1) NULL DEFAULT NULL COMMENT '删除标志 true/false 删除/未删除',
`update_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '更新者',
`update_time` datetime(6) NULL DEFAULT NULL COMMENT '更新时间',
`clerk_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '店员名称',
`member_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '会员id',
`store_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '店铺id',
`department_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '部门id',
`role_ids` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '角色',
`shopkeeper` bit(1) NULL DEFAULT NULL COMMENT '是否是店主',
`is_super` bit(1) NULL DEFAULT NULL COMMENT '是否是超级管理员 超级管理员/普通管理员',
`status` bit(1) NULL DEFAULT NULL COMMENT '状态',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;
/** 店员角色**/
/*
Navicat Premium Data Transfer
Source Server : lilishop
Source Server Type : MySQL
Source Server Version : 80025
Source Host : 192.168.0.116:3306
Source Schema : zhimai1
Target Server Type : MySQL
Target Server Version : 80025
File Encoding : 65001
Date: 03/03/2022 19:30:39
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for li_clerk_role
-- ----------------------------
DROP TABLE IF EXISTS `li_clerk_role`;
CREATE TABLE `li_clerk_role` (
`id` bigint NOT NULL COMMENT 'ID',
`clerk_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '店员唯一id',
`role_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '角色唯一id',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;
/** 店铺部门 **/
/*
Navicat Premium Data Transfer
Source Server : lilishop
Source Server Type : MySQL
Source Server Version : 80025
Source Host : 192.168.0.116:3306
Source Schema : zhimai1
Target Server Type : MySQL
Target Server Version : 80025
File Encoding : 65001
Date: 03/03/2022 19:31:39
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for li_store_department
-- ----------------------------
DROP TABLE IF EXISTS `li_store_department`;
CREATE TABLE `li_store_department` (
`id` bigint NOT NULL COMMENT 'ID',
`create_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '创建者',
`create_time` datetime(6) NULL DEFAULT NULL COMMENT '创建时间',
`delete_flag` bit(1) NULL DEFAULT NULL COMMENT '删除标志 true/false 删除/未删除',
`update_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '更新者',
`update_time` datetime(6) NULL DEFAULT NULL COMMENT '更新时间',
`title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '部门名称',
`store_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '店铺id',
`parent_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '父id',
`sort_order` decimal(20, 2) NULL DEFAULT NULL COMMENT '排序值',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;
/** 部门角色关联 **/
/*
Navicat Premium Data Transfer
Source Server : lilishop
Source Server Type : MySQL
Source Server Version : 80025
Source Host : 192.168.0.116:3306
Source Schema : zhimai1
Target Server Type : MySQL
Target Server Version : 80025
File Encoding : 65001
Date: 03/03/2022 19:32:01
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for li_store_department_role
-- ----------------------------
DROP TABLE IF EXISTS `li_store_department_role`;
CREATE TABLE `li_store_department_role` (
`id` bigint NOT NULL COMMENT 'ID',
`create_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '创建者',
`create_time` datetime(6) NULL DEFAULT NULL COMMENT '创建时间',
`delete_flag` bit(1) NULL DEFAULT NULL COMMENT '删除标志 true/false 删除/未删除',
`update_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '更新者',
`update_time` datetime(6) NULL DEFAULT NULL COMMENT '更新时间',
`role_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '角色id',
`department_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '部门id',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;
/**店铺角色菜单**/
/*
Navicat Premium Data Transfer
Source Server : lilishop
Source Server Type : MySQL
Source Server Version : 80025
Source Host : 192.168.0.116:3306
Source Schema : zhimai1
Target Server Type : MySQL
Target Server Version : 80025
File Encoding : 65001
Date: 03/03/2022 19:34:42
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for li_store_menu_role
-- ----------------------------
DROP TABLE IF EXISTS `li_store_menu_role`;
CREATE TABLE `li_store_menu_role` (
`id` bigint NOT NULL COMMENT 'ID',
`create_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '创建者',
`create_time` datetime(6) NULL DEFAULT NULL COMMENT '创建时间',
`delete_flag` bit(1) NULL DEFAULT NULL COMMENT '删除标志 true/false 删除/未删除',
`update_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '更新者',
`update_time` datetime(6) NULL DEFAULT NULL COMMENT '更新时间',
`role_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '角色id',
`menu_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '菜单',
`store_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '店铺id',
`is_super` bit(1) NULL DEFAULT NULL COMMENT '是否拥有操作数据权限,为否则只有查看权限',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;
/**店铺角色**/
/*
Navicat Premium Data Transfer
Source Server : lilishop
Source Server Type : MySQL
Source Server Version : 80025
Source Host : 192.168.0.116:3306
Source Schema : zhimai1
Target Server Type : MySQL
Target Server Version : 80025
File Encoding : 65001
Date: 03/03/2022 19:32:59
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for li_store_role
-- ----------------------------
DROP TABLE IF EXISTS `li_store_role`;
CREATE TABLE `li_store_role` (
`id` bigint NOT NULL COMMENT 'ID',
`create_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '创建者',
`create_time` datetime(6) NULL DEFAULT NULL COMMENT '创建时间',
`delete_flag` bit(1) NULL DEFAULT NULL COMMENT '删除标志 true/false 删除/未删除',
`update_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '更新者',
`update_time` datetime(6) NULL DEFAULT NULL COMMENT '更新时间',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '角色名称',
`store_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '店铺id',
`default_role` bit(1) NULL DEFAULT NULL COMMENT '是否为注册默认角色',
`description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = DYNAMIC;
SET FOREIGN_KEY_CHECKS = 1;
/*
Navicat Premium Data Transfer
Source Server : lilishop
Source Server Type : MySQL
Source Server Version : 80025
Source Host : 192.168.0.116:3306
Source Schema : zhimai1
Target Server Type : MySQL
Target Server Version : 80025
File Encoding : 65001
Date: 02/03/2022 09:57:49
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for li_menu
-- ----------------------------
DROP TABLE IF EXISTS `li_menu`;
CREATE TABLE `li_menu` (
`id` bigint NOT NULL COMMENT 'ID',
`create_by` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建者',
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
`delete_flag` bit(1) NULL DEFAULT NULL COMMENT '删除标志 true/false 删除/未删除',
`update_by` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '更新者',
`update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
`description` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '说明备注',
`front_route` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '前端路由',
`icon` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '图标',
`level` int NULL DEFAULT NULL COMMENT '层级',
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '菜单/权限名称',
`parent_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '父id',
`path` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '赋权API地址,正则表达式',
`sort_order` decimal(10, 2) NULL DEFAULT NULL COMMENT '排序值',
`title` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '菜单标题',
`front_component` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '文件地址',
`permission` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '权限url',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of li_menu
-- ----------------------------
INSERT INTO `li_menu` VALUES (1348810750596767744, 'admin', '2021-01-12 09:55:17', b'0', 'admin', '2021-01-15 09:42:50', 'null', '1', 'ios-american-football', 0, 'settings', '0', '1', 2.00, '设置', 'null', NULL);
INSERT INTO `li_menu` VALUES (1348810864748945408, 'admin', '2021-01-12 09:55:45', b'0', 'admin', '2021-03-15 20:57:12', 'null', 'null', 'ios-american-football', 0, 'log', '0', 'null', 3.00, '日志', 'null', '/manager/setting/log*');
INSERT INTO `li_menu` VALUES (1349237129847005184, 'admin', '2021-01-13 14:09:34', b'0', 'admin', '2021-01-15 09:43:16', 'null', 'Main', 'ios-american-football', 1, 'sys', '1348810750596767744', '/sys', 1.00, '系统设置', 'null', NULL);
INSERT INTO `li_menu` VALUES (1349237207378714624, 'admin', '2021-01-13 14:09:53', b'0', 'admin', '2021-07-27 16:07:49', 'null', 'Main', 'ios-american-football', 1, 'member', '1348810750596767744', '/member', 0.00, '用户管理', 'null', '/manager/permission/department*,/manager/passport/user*,/manager/permission/role*,/manager/permission/menu*,/manager/passport/user/admin/edit*');
INSERT INTO `li_menu` VALUES (1349237928434098176, 'admin', '2021-01-13 14:13:03', b'0', 'admin', '2021-07-27 16:09:11', 'null', 'Main', 'ios-american-football', 1, 'log', '1348810864748945408', '/log', 1.00, '系统监控', 'null', '/manager/log*');
INSERT INTO `li_menu` VALUES (1349246048900243456, 'admin', '2021-01-13 14:45:00', b'0', 'admin', '2021-07-27 16:07:57', 'null', 'sys/setting-manage/settingManage', 'ios-american-football', 2, 'setting', '1349237129847005184', 'setting', 1.00, '系统设置', 'null', '/manager/system/setting/get*,/manager/system/setting/put*,/manager/setting/setting*');
INSERT INTO `li_menu` VALUES (1349246347597602816, 'admin', '2021-01-13 14:46:12', b'0', 'admin', '2021-07-27 16:08:03', 'null', 'sys/oss-manage/ossManage', 'ios-american-football', 2, 'oss-manage', '1349237129847005184', 'oss-manage', 3.00, 'OSS资源', '', '/manager/common/file*');
INSERT INTO `li_menu` VALUES (1349246468775239680, 'admin', '2021-01-13 14:46:41', b'0', 'admin', '2021-07-27 16:08:14', 'null', 'region/index', 'ios-american-football', 2, 'region', '1349237129847005184', 'region', 4.00, '行政地区', 'null', '/manager/region*');
INSERT INTO `li_menu` VALUES (1349246671158796288, 'admin', '2021-01-13 14:47:29', b'0', 'admin', '2021-07-27 16:08:09', 'null', 'logistics/index', 'ios-american-football', 2, 'logistics', '1349237129847005184', 'logistics', 5.00, '物流公司', 'null', '/manager/other/logistics*');
INSERT INTO `li_menu` VALUES (1349246896661356544, 'admin', '2021-01-13 14:48:23', b'0', 'admin', '2021-07-27 16:08:23', 'null', 'sys/setting-manage/settingManage', 'ios-american-football', 2, 'authLogin', '1349237129847005184', 'authLogin', 6.00, '信任登录', 'null', '/manager/system/setting/get*,/manager/system/setting/put*,/manager/setting/setting*\r\n');
INSERT INTO `li_menu` VALUES (1349247081504333824, 'admin', '2021-01-13 14:49:07', b'0', 'admin', '2021-07-27 16:08:45', 'null', 'sys/setting-manage/settingManage', 'ios-american-football', 2, 'pay', '1349237129847005184', 'pay', 7.00, '支付设置', 'null', '/manager/system/setting/get*,/manager/system/setting/put*,/manager/system/setting*');
INSERT INTO `li_menu` VALUES (1349247640584085504, 'admin', '2021-01-13 14:51:20', b'0', 'admin', '2021-07-27 16:08:56', 'null', 'sensitiveWords/index', 'ios-american-football', 2, 'sensitiveWords', '1349237129847005184', 'sensitiveWords', 8.00, '敏感词', 'null', '/manager/other/sensitiveWords*');
INSERT INTO `li_menu` VALUES (1349254815809298432, 'admin', '2021-01-13 15:19:51', b'0', 'admin', '2021-01-15 11:15:40', 'null', 'sys/user-manage/userManage', 'ios-american-football', 2, 'user-manage', '1349237207378714624', 'user-manage', 1.00, '用户管理', 'null', NULL);
INSERT INTO `li_menu` VALUES (1349255214977015808, 'admin', '2021-01-13 15:21:26', b'0', 'admin', '2021-01-15 11:16:21', 'null', 'sys/department-manage/departmentManage', 'ios-american-football', 2, 'department-manage', '1349237207378714624', 'department-manage', 3.00, '部门管理', 'null', '/manager/permission/department*,/manager/permission/departmentRole*,');
INSERT INTO `li_menu` VALUES (1349255404425338880, 'admin', '2021-01-13 15:22:11', b'0', 'admin', '2021-02-24 09:22:21', 'null', 'sys/role-manage/roleManage', 'ios-american-football', 2, 'role-manage', '1349237207378714624', 'role-manage', 4.00, '角色权限', 'null', '/manager/permission/role*,/manager/permission/roleMenu*');
INSERT INTO `li_menu` VALUES (1349256082979840000, 'admin', '2021-01-13 15:24:53', b'0', 'admin', '2021-01-15 11:18:14', 'null', 'sys/log-manage/logManage', 'ios-american-football', 2, 'log-manage', '1349237928434098176', 'log-manage', 2.00, '日志管理', 'null', NULL);
INSERT INTO `li_menu` VALUES (1357584224760102912, 'admin', '2021-02-05 06:57:57', b'0', 'admin', '2021-07-27 16:09:02', 'null', 'sys/app-version/appVersion', 'ios-american-football', 2, 'appVersion', '1349237129847005184', 'appVersion', 9.00, 'APP版本', 'null', '/manager/other/appVersion*');
INSERT INTO `li_menu` VALUES (1357873097859923969, 'admin', '2021-02-24 09:53:02', b'0', 'admin', '2021-02-24 09:53:12', NULL, 'sys/menu-manage/menuManage', 'ios-american-football', 2, 'menuManage', '1349237207378714624', 'menu-manage', 2.00, '菜单管理', NULL, NULL);
INSERT INTO `li_menu` VALUES (1367038467288072192, 'admin', '2021-03-03 09:05:44', b'0', 'admin', '2021-03-03 09:09:27', 'null', 'null', 'ios-person-add', 0, 'member', '0', 'null', 0.00, '会员', 'null', NULL);
INSERT INTO `li_menu` VALUES (1367039534616805376, 'admin', '2021-03-03 09:09:58', b'0', 'admin', '2021-05-18 10:51:12', 'null', 'null', 'md-reorder', 0, 'order', '0', 'null', 0.00, '订单', 'null', NULL);
INSERT INTO `li_menu` VALUES (1367039950368800768, 'admin', '2021-03-03 09:11:37', b'0', NULL, NULL, NULL, NULL, 'ios-share', 0, 'goods', '0', NULL, 0.20, '商品', NULL, NULL);
INSERT INTO `li_menu` VALUES (1367040067201138688, 'admin', '2021-03-03 09:12:05', b'0', 'admin', '2021-12-02 19:45:22', NULL, 'null', 'ios-hammer', 0, 'promotions', '0', 'null', 0.30, '促销', NULL, 'null');
INSERT INTO `li_menu` VALUES (1367040599596728320, 'admin', '2021-03-03 09:14:12', b'0', 'admin', '2021-03-03 09:52:13', 'null', 'null', 'ios-color-palette', 0, 'operate', '0', 'null', 0.50, '运营', 'null', NULL);
INSERT INTO `li_menu` VALUES (1367040819248234496, 'admin', '2021-03-03 09:15:04', b'0', 'lili_ftyy', '2022-03-01 15:13:04', NULL, 'null', 'ios-stats', 0, 'statistics', '0', 'null', 0.70, '统计', NULL, 'null');
INSERT INTO `li_menu` VALUES (1367041332861730816, 'admin', '2021-03-03 09:17:07', b'0', NULL, NULL, NULL, 'Main', 'ios-aperture', 1, '/', '1367038467288072192', '/', 0.00, '会员管理', NULL, NULL);
INSERT INTO `li_menu` VALUES (1367041461194850304, 'admin', '2021-03-03 09:17:37', b'0', 'admin', '2021-07-27 16:02:17', NULL, 'member/list/index', 'ios-aperture', 2, 'memberList', '1367041332861730816', 'memberList', 0.00, '会员列表', NULL, '/manager/common/file*,/manager/passport/member*');
INSERT INTO `li_menu` VALUES (1367041575619657728, 'admin', '2021-03-03 09:18:05', b'0', 'admin', '2021-07-27 15:59:50', NULL, 'member/list/memberRecycle', 'ios-aperture', 2, 'memberRecycle', '1367041332861730816', 'memberRecycle', 1.00, '回收站', NULL, '/manager/member*');
INSERT INTO `li_menu` VALUES (1367042490443497472, 'admin', '2021-03-03 09:21:43', b'0', NULL, NULL, NULL, 'Main', 'ios-aperture', 1, '/', '1367038467288072192', '/', 1.00, '预存款', NULL, NULL);
INSERT INTO `li_menu` VALUES (1367042664410644480, 'admin', '2021-03-03 09:22:24', b'0', 'admin', '2021-07-27 16:02:44', 'null', 'member/advance/walletLog', 'ios-aperture', 2, 'walletLog', '1367042490443497472', 'walletLog', 0.00, '会员资金', 'null', '/manager/wallet/log*');
INSERT INTO `li_menu` VALUES (1367042804944994304, 'admin', '2021-03-03 09:22:58', b'0', 'admin', '2021-07-27 16:02:48', NULL, 'member/advance/recharge', 'ios-alert', 2, 'recharge', '1367042490443497472', 'recharge', 1.00, '充值记录', NULL, '/manager/wallet/recharge*');
INSERT INTO `li_menu` VALUES (1367042804944994305, 'admin', '2021-03-03 09:22:58', b'0', 'admin', '2021-07-27 16:02:52', NULL, 'member/advance/withdrawApply', 'ios-alert', 2, 'withdrawApply', '1367042490443497472', 'withdrawApply', 1.00, '提现申请', NULL, '/manager/wallet/withdrawApply*');
INSERT INTO `li_menu` VALUES (1367042917113266176, 'admin', '2021-03-03 09:23:25', b'0', NULL, NULL, NULL, 'Main', 'ios-aperture', 1, 'commont', '1367038467288072192', '/', 0.00, '评价', NULL, NULL);
INSERT INTO `li_menu` VALUES (1367043020976816128, 'admin', '2021-03-03 09:23:49', b'0', 'admin', '2021-07-27 16:02:35', NULL, 'goods/goods-review/index', 'md-aperture', 2, 'goodsReview', '1367042917113266176', 'goodsReview', 0.00, '会员评价', NULL, '/manager/memberEvaluation*');
INSERT INTO `li_menu` VALUES (1367043443917848576, 'admin', '2021-03-03 09:25:30', b'0', 'admin', '2021-07-27 16:03:00', NULL, 'Main', 'md-aperture', 1, 'order', '1367039534616805376', '/', 0.00, '订单', NULL, '/manager/orders*');
INSERT INTO `li_menu` VALUES (1367043505771249664, 'admin', '2021-03-03 09:25:45', b'0', NULL, NULL, NULL, 'Main', 'md-aperture', 1, 'aftersale', '1367039534616805376', '/', 0.00, '售后', NULL, NULL);
INSERT INTO `li_menu` VALUES (1367043642379730944, 'admin', '2021-03-03 09:26:17', b'0', NULL, NULL, NULL, 'order/order/orderList', 'ios-aperture', 2, 'orderList', '1367043443917848576', 'orderList', 0.00, '商品订单', NULL, '/manager/order/order*');
INSERT INTO `li_menu` VALUES (1367043791105556480, 'admin', '2021-03-03 09:26:53', b'0', NULL, NULL, NULL, 'order/order/fictitiousOrderList', 'ios-aperture', 2, 'fictitiousOrderList', '1367043443917848576', 'fictitiousOrderList', 1.00, '虚拟订单', NULL, '/manager/order/order*');
INSERT INTO `li_menu` VALUES (1367043980407078912, 'admin', '2021-03-03 09:27:38', b'0', 'admin', '2021-07-27 16:03:43', NULL, 'order/after-order/afterSaleOrder', 'md-alert', 2, 'afterSaleOrder', '1367043505771249664', 'afterSaleOrder', 0.00, '售后管理', NULL, '/manager/order/afterSale*');
INSERT INTO `li_menu` VALUES (1367044121163726848, 'admin', '2021-03-03 09:28:12', b'0', 'admin', '2021-07-27 16:03:48', NULL, 'order/after-order/orderComplaint', 'md-alert', 2, 'orderComplaint', '1367043505771249664', 'orderComplaint', 2.00, '交易投诉', NULL, '/manager/order/complain*');
INSERT INTO `li_menu` VALUES (1367044247978508288, 'admin', '2021-03-03 09:28:42', b'0', 'admin', '2021-07-27 16:03:52', NULL, 'order/after-order/afterSale', 'md-aperture', 2, 'afterSaleReason', '1367043505771249664', 'afterSaleReason', 3.00, '售后原因', NULL, '/manager/order/afterSaleReason*');
INSERT INTO `li_menu` VALUES (1367044376391319552, 'admin', '2021-03-03 09:29:12', b'0', 'admin', '2021-07-27 16:04:08', NULL, 'Main', 'md-aperture', 1, 'goodsManager', '1367039950368800768', '/', 0.00, '商品管理', NULL, '/manager/goods*');
INSERT INTO `li_menu` VALUES (1367044657296441344, 'admin', '2021-03-03 09:30:19', b'0', NULL, NULL, NULL, 'Main', 'ios-aperture', 1, 'association', '1367039950368800768', '/', 1.00, '关联管理', NULL, NULL);
INSERT INTO `li_menu` VALUES (1367045529720061952, 'admin', '2021-03-03 09:33:47', b'0', 'admin', '2021-07-27 15:38:46', NULL, 'goods/goods-info/goods', 'md-aperture', 2, 'managerGoods', '1367044376391319552', 'managerGoods', 0.00, '平台商品', NULL, 'null');
INSERT INTO `li_menu` VALUES (1367045630710513664, 'admin', '2021-03-03 09:34:11', b'0', 'admin', '2021-07-27 15:38:56', NULL, 'goods/goods-info/goodsApply', 'ios-alert', 2, 'applyGoods', '1367044376391319552', 'applyGoods', 1.00, '商品审核', NULL, 'null');
INSERT INTO `li_menu` VALUES (1367045794284175360, 'admin', '2021-03-03 09:34:50', b'0', 'admin', '2021-07-27 16:04:18', NULL, 'goods/goods-manage/category', 'md-alert', 2, 'goodsCategory', '1367044657296441344', 'goodsCategory', 0.00, '商品分类', NULL, '/manager/goods/category*,/manager/goods/brand*,/manager/goods/spec*,/manager/goods/parameters*');
INSERT INTO `li_menu` VALUES (1367045921434501120, 'admin', '2021-03-03 09:35:21', b'0', 'admin', '2021-07-27 16:04:23', NULL, 'goods/goods-manage/brand', 'md-alert', 2, 'goodsBrand', '1367044657296441344', 'goodsBrand', 1.00, '品牌列表', NULL, '/manager/goods/brand*');
INSERT INTO `li_menu` VALUES (1367046068369358848, 'admin', '2021-03-03 09:35:56', b'0', 'admin', '2021-07-27 16:04:27', NULL, 'goods/goods-manage/spec', 'md-aperture', 2, 'goodsSpec', '1367044657296441344', 'goodsSpec', 2.00, '规格列表', NULL, '/manager/goods/spec*');
INSERT INTO `li_menu` VALUES (1367046266214678528, 'admin', '2021-03-03 09:36:43', b'0', 'admin', '2021-07-27 16:04:32', NULL, 'goods-unit/index', 'md-alert', 2, 'goodsUnit', '1367044657296441344', 'goodsUnit', 4.00, '计量单位', NULL, '/manager/goods/goodsUnit*');
INSERT INTO `li_menu` VALUES (1367048084701315072, 'admin', '2021-03-03 09:43:57', b'0', 'admin', '2021-03-03 09:52:17', 'null', 'null', 'ios-pricetags', 0, 'shop', '0', 'null', 0.40, '店铺', 'null', NULL);
INSERT INTO `li_menu` VALUES (1367048684339986432, 'admin', '2021-03-03 09:46:20', b'0', NULL, NULL, NULL, 'Main', 'md-aperture', 1, 'shopManager', '1367048084701315072', '/', 0.00, '店铺管理', NULL, NULL);
INSERT INTO `li_menu` VALUES (1367048754229673984, 'admin', '2021-03-03 09:46:36', b'0', NULL, NULL, NULL, 'Main', 'md-aperture', 1, 'bill', '1367048084701315072', '/', 0.00, ' 店铺结算', NULL, NULL);
INSERT INTO `li_menu` VALUES (1367048832210173952, 'admin', '2021-03-03 09:46:55', b'0', 'admin', '2021-07-27 16:05:30', NULL, 'seller/shop/shopList', 'md-aperture', 2, 'shopList', '1367048684339986432', 'shopList', 0.00, '店铺列表', NULL, '/manager/order/order*,/manager/store*');
INSERT INTO `li_menu` VALUES (1367048967635861504, 'admin', '2021-03-03 09:47:27', b'0', 'admin', '2021-07-27 16:05:32', NULL, 'seller/shop/shopAuditList', 'md-alert', 2, 'shopAuth', '1367048684339986432', 'shopAuth', 1.00, '店铺审核', NULL, '/manager/store*');
INSERT INTO `li_menu` VALUES (1367049068122996736, 'admin', '2021-03-03 09:47:51', b'0', 'admin', '2021-07-27 16:05:36', NULL, 'seller/bill/bill', 'md-alert', 2, 'billList', '1367048754229673984', 'billList', 0.00, '店铺结算', NULL, '/manager/order/bill*');
INSERT INTO `li_menu` VALUES (1367049214198022144, 'admin', '2021-03-03 09:48:26', b'0', 'admin', '2021-12-02 19:45:28', NULL, 'Main', 'md-aperture', 1, 'promotionsManager', '1367040067201138688', '/', 0.00, '促销管理', NULL, 'null');
INSERT INTO `li_menu` VALUES (1367049384792948736, 'admin', '2021-03-03 09:49:07', b'0', 'admin', '2021-12-02 19:54:12', NULL, 'promotions/coupon/coupon', 'md-alert', 2, 'promotions/coupon', '1367049214198022144', 'promotions/coupon', 0.00, '优惠券', NULL, '/manager/promotion/coupon*');
INSERT INTO `li_menu` VALUES (1367049500782231552, 'admin', '2021-03-03 09:49:34', b'0', 'admin', '2021-12-02 19:41:37', 'null', 'promotions/full-discount/full-discount', 'md-alert', 2, 'promotions/full-discount', '1367049214198022144', 'promotions/full-discount', 1.00, '满额活动', 'null', '/manager/promotion/fullDiscount*');
INSERT INTO `li_menu` VALUES (1367049611578966016, 'admin', '2021-03-03 09:50:01', b'0', 'admin', '2021-12-02 20:16:10', 'null', 'promotions/seckill/seckill', 'md-alert', 2, 'promotions/seckill', '1367049214198022144', 'promotions/seckill', 2.00, '秒杀活动', 'null', '/manager/promotion/seckill*');
INSERT INTO `li_menu` VALUES (1367049712657498112, 'admin', '2021-03-03 09:50:25', b'0', 'admin', '2021-12-02 20:22:04', 'null', 'promotions/pintuan/pintuan', 'md-alert', 2, 'promotions/pintuan', '1367049214198022144', 'promotions/pintuan', 3.00, '拼团活动', 'null', '/manager/promotion/pintuan*');
INSERT INTO `li_menu` VALUES (1367050250249830400, 'admin', '2021-03-03 09:52:33', b'0', 'admin', '2021-03-22 20:38:14', 'null', 'Main', 'md-aperture', 1, 'document', '1367040599596728320', '/', 2.00, '文章管理', 'null', NULL);
INSERT INTO `li_menu` VALUES (1367050320584114176, 'admin', '2021-03-03 09:52:50', b'0', 'admin', '2021-07-27 16:05:49', NULL, 'Main', 'md-aperture', 1, 'floor', '1367040599596728320', '/', 0.00, '楼层装修', NULL, '/manager/pageData*,/manager/file*,/manager/article-category*,/manager/article*,/manager/promotion*,/manager/goods*,/manager/store*');
INSERT INTO `li_menu` VALUES (1367050530030878720, 'admin', '2021-03-03 09:53:40', b'0', 'admin', '2021-03-04 01:05:57', 'null', 'lili-floor-renovation/floorList', 'md-alert', 2, 'pcFloor', '1367050320584114176', 'pcFloor', 0.00, 'PC端', 'null', '/manager/other/pageData*');
INSERT INTO `li_menu` VALUES (1367050673312497664, 'admin', '2021-03-03 09:54:14', b'0', 'admin', '2021-03-04 01:06:04', 'null', 'lili-floor-renovation/wap/wapList', 'md-aperture', 2, 'wapList', '1367050320584114176', 'wapList', 1.00, '移动端', 'null', '/manager/other/pageData*');
INSERT INTO `li_menu` VALUES (1367050829697122304, 'admin', '2021-03-03 09:54:51', b'0', 'admin', '2021-07-27 16:06:32', 'null', 'page/article-manage/hotWords', 'md-aperture', 2, 'hotKeyWord', '1367050250249830400', 'hotKeyWord', 0.00, '搜索热词', 'null', '/manager/hotwords*');
INSERT INTO `li_menu` VALUES (1367050939084570624, 'admin', '2021-03-03 09:55:17', b'0', 'admin', '2021-07-27 16:06:38', NULL, 'page/article-manage/ArticleCategory', 'md-aperture', 2, 'article-category', '1367050250249830400', 'article-category', 1.00, '文章分类', NULL, '/manager/other/articleCategory*');
INSERT INTO `li_menu` VALUES (1367051048232943616, 'admin', '2021-03-03 09:55:43', b'0', 'admin', '2021-07-27 16:06:42', NULL, 'page/article-manage/articleList', 'md-alert', 2, 'articleList', '1367050250249830400', 'articleList', 3.00, '文章管理', NULL, '/manager/other/article*,/manager/other/articleCategory*');
INSERT INTO `li_menu` VALUES (1367052616634204160, 'admin', '2021-03-03 10:01:57', b'0', 'admin', '2021-07-27 16:07:38', NULL, 'Main', 'md-aperture', 1, 'statistics', '1367040819248234496', '/', 0.00, '统计', NULL, '/manager/store*,/manager/member*');
INSERT INTO `li_menu` VALUES (1367052705725415424, 'admin', '2021-03-03 10:02:18', b'0', 'admin', '2021-03-11 22:11:05', 'null', 'statistics/member', 'md-alert', 2, 'memberStatistics', '1367052616634204160', 'memberStatistics', 0.00, '会员统计', 'null', NULL);
INSERT INTO `li_menu` VALUES (1367052805503713280, 'admin', '2021-03-03 10:02:42', b'0', 'admin', '2021-03-11 22:11:14', 'null', 'statistics/order', 'md-alert', 2, 'orderStatistics', '1367052616634204160', 'orderStatistics', 1.00, '订单统计', 'null', NULL);
INSERT INTO `li_menu` VALUES (1367052915314786304, 'admin', '2021-03-03 10:03:08', b'0', 'admin', '2021-03-11 22:11:23', 'null', 'statistics/goods', 'md-alert', 2, 'goodsStatistics', '1367052616634204160', 'goodsStatistics', 2.00, '商品统计', 'null', NULL);
INSERT INTO `li_menu` VALUES (1367053087121866752, 'admin', '2021-03-03 10:03:49', b'0', 'admin', '2021-03-11 22:11:34', 'null', 'statistics/traffic', 'md-alert', 2, 'trafficStatistics', '1367052616634204160', 'trafficStatistics', 4.00, '流量统计', 'null', NULL);
INSERT INTO `li_menu` VALUES (1372807928452481024, 'admin', '2021-03-19 02:11:30', b'0', NULL, NULL, NULL, 'Main', 'ios-aperture', 1, 'flow', '1367039534616805376', '/', 3.00, '流水', NULL, NULL);
INSERT INTO `li_menu` VALUES (1372808148565360640, 'admin', '2021-03-19 02:12:23', b'0', 'admin', '2021-07-27 16:03:57', NULL, 'order/flow/paymentLog', 'md-alert', 2, 'paymentLog', '1372807928452481024', 'paymentLog', 1.00, '收款记录', NULL, '/manager/order/paymentLog*');
INSERT INTO `li_menu` VALUES (1372808352295288832, 'admin', '2021-03-19 02:13:11', b'0', 'admin', '2021-07-27 16:04:01', NULL, 'order/flow/refundLog', 'ios-aperture', 2, 'refundLog', '1372807928452481024', 'refundLog', 2.00, '退款流水', NULL, '/manager/order/refundLog*');
INSERT INTO `li_menu` VALUES (1373166892465782784, 'admin', '2021-03-20 01:57:54', b'0', 'admin', '2021-03-22 20:13:48', 'null', 'Main', 'ios-aperture', 1, '/', '1367038467288072192', '/', 0.00, '积分', 'null', NULL);
INSERT INTO `li_menu` VALUES (1373167227385151488, 'admin', '2021-03-20 01:59:14', b'0', 'admin', '2021-07-27 16:02:40', 'null', 'member/point/point', 'ios-aperture', 2, 'point', '1373166892465782784', 'point', 0.00, '积分历史', 'null', '/manager/member/memberPointsHistory*');
INSERT INTO `li_menu` VALUES (1373791578371391488, 'admin', '2021-03-21 19:20:11', b'0', 'admin', '2021-07-27 16:05:38', NULL, 'seller/bill/accountStatementBill', 'md-alert', 2, 'accountStatementBill', '1367048754229673984', 'accountStatementBill', 0.00, '商家对账', NULL, '/manager/order/bill*');
INSERT INTO `li_menu` VALUES (1374154349697040384, 'admin', '2021-03-22 19:21:42', b'0', 'admin', '2021-07-27 16:06:55', 'null', 'Main', 'md-aperture', 1, 'feedback', '1367040599596728320', '/', 3.00, '意见反馈', 'null', '/manager/other/feedback*');
INSERT INTO `li_menu` VALUES (1374155741123837952, 'admin', '2021-03-22 19:27:14', b'0', 'admin', '2021-07-27 15:41:40', 'null', 'page/feedback/feedback', 'md-aperture', 2, 'feedback', '1374154349697040384', 'feedback', 0.00, '意见反馈', 'null', 'null');
INSERT INTO `li_menu` VALUES (1374173575405109248, 'admin', '2021-03-22 20:38:06', b'0', 'admin', '2021-03-22 20:52:58', 'null', 'Main', 'ios-analytics', 1, 'distributionManager', '1367040599596728320', '/', 1.00, '分销管理', 'null', NULL);
INSERT INTO `li_menu` VALUES (1374177618072436736, 'admin', '2021-03-22 20:54:10', b'0', 'admin', '2021-07-27 16:05:58', 'null', 'distribution/distributionSetting', 'ios-basketball', 2, 'distributionSetting', '1374173575405109248', 'distributionSetting', 0.00, '分销设置', 'null', '/manager/system/setting/put/DISTRIBUTION_SETTING*,/manager/system/setting/get/DISTRIBUTION_SETTING*');
INSERT INTO `li_menu` VALUES (1374177789581721600, 'admin', '2021-03-22 20:54:51', b'0', 'admin', '2021-07-27 16:06:15', 'null', 'distribution/distributionGoods', 'ios-chatbubbles', 2, 'distributionGoods', '1374173575405109248', 'distributionGoods', 3.00, '分销商品', 'null', '/manager/distribution/goods*');
INSERT INTO `li_menu` VALUES (1374177910411231232, 'admin', '2021-03-22 20:55:19', b'0', 'admin', '2021-07-27 16:06:20', 'null', 'distribution/distributionOrder', 'ios-cloudy', 2, 'distributionOrder', '1374173575405109248', 'distributionOrder', 4.00, '分销订单', 'null', '/manager/distribution/order*,/manager/store*');
INSERT INTO `li_menu` VALUES (1374178079181635584, 'admin', '2021-03-22 20:56:00', b'0', 'admin', '2021-07-27 16:06:05', 'null', 'distribution/distributionApply', 'md-egg', 2, 'distributionApply', '1374173575405109248', 'distributionApply', 1.00, '分销申请', 'null', '/manager/distribution*');
INSERT INTO `li_menu` VALUES (1374178303975358464, 'admin', '2021-03-22 20:56:53', b'0', 'admin', '2021-07-27 16:06:08', 'null', 'distribution/distribution', 'md-person', 2, 'distribution', '1374173575405109248', 'distribution', 2.00, '分销员', 'null', '/manager/distribution*');
INSERT INTO `li_menu` VALUES (1374916594269945856, 'admin', '2021-03-24 21:50:35', b'0', 'admin', '2021-07-27 16:08:51', NULL, 'sys/slider/slider', 'ios-aperture', 2, 'slider', '1349237129847005184', 'slider', 7.00, '验证码', NULL, '/manager/other/verificationSource*');
INSERT INTO `li_menu` VALUES (1376450531517530112, 'admin', '2021-03-29 03:25:55', b'0', NULL, NULL, NULL, 'Main', 'md-basketball', 1, 'notice', '1367040599596728320', '/', 5.00, '站内信', NULL, NULL);
INSERT INTO `li_menu` VALUES (1376450662098796544, 'admin', '2021-03-29 03:26:26', b'0', 'admin', '2021-07-27 16:07:23', NULL, 'sys/message/noticeMessageTemplate', 'ios-american-football', 2, 'noticeMessageTemplate', '1376450531517530112', 'noticeMessageTemplate', 1.00, '站内信', NULL, '/manager/other/message*');
INSERT INTO `li_menu` VALUES (1376450766817984512, 'admin', '2021-03-29 03:26:51', b'0', 'admin', '2021-03-29 03:27:25', 'null', 'Main', 'md-checkmark', 1, 'sms', '1367040599596728320', '/', 6.00, '短信管理', 'null', NULL);
INSERT INTO `li_menu` VALUES (1376450876423536640, 'admin', '2021-03-29 03:27:17', b'0', 'admin', '2021-07-27 16:07:29', NULL, 'sys/message/sms', 'ios-timer', 2, 'sms', '1376450766817984512', 'sms', 1.00, '短信', NULL, '/manager/sms/sms*,/manager/passport/member*');
INSERT INTO `li_menu` VALUES (1384035281702748160, 'admin', '2021-04-19 14:45:00', b'0', 'admin', '2021-07-27 16:08:18', 'null', 'member/message-manage/weChatMessageManager', 'md-aperture', 2, 'message-manage', '1349237129847005184', 'message-manage', 5.00, '微信消息', 'null', '/manager/wechat/wechatMessage*');
INSERT INTO `li_menu` VALUES (1403988156444962818, 'admin', '2021-06-13 16:10:36', b'0', 'admin', '2021-12-02 19:54:37', 'null', 'promotions/coupon-activity/coupon', '', 2, 'promotions/coupon-activity', '1367049214198022144', 'promotions/coupon-activity', 0.00, '券活动', 'null', '/manager/promotion/couponActivity*');
INSERT INTO `li_menu` VALUES (1407601962899230721, 'admin', '2021-06-23 15:30:35', b'0', 'admin', '2021-07-27 16:05:08', NULL, 'Main', '', 1, 'liveManage', '1367040067201138688', '/', 2.00, '直播管理', NULL, '/manager/broadcast*');
INSERT INTO `li_menu` VALUES (1407602049759072258, 'admin', '2021-06-23 15:30:55', b'0', 'admin', '2021-12-07 10:54:54', NULL, 'promotions/live/live', '', 2, 'promotions/live', '1407601962899230721', 'promotions/live', 1.00, '直播管理', NULL, 'null');
INSERT INTO `li_menu` VALUES (1407602441964244994, 'admin', '2021-06-23 15:32:29', b'0', NULL, NULL, NULL, 'Main', '', 1, 'pointManage', '1367040067201138688', '/', 3.00, '积分活动', NULL, NULL);
INSERT INTO `li_menu` VALUES (1407602516912263170, 'admin', '2021-06-23 15:32:47', b'0', 'admin', '2021-12-03 19:18:30', NULL, 'promotions/points-goods/points-goods', '', 2, 'promotions/points-goods', '1407602441964244994', 'promotions/points-goods', 1.00, '积分商品', NULL, '/manager/promotion/pointsGoods*,/manager/goods*');
INSERT INTO `li_menu` VALUES (1407602673334636546, 'admin', '2021-06-23 15:33:24', b'0', 'admin', '2021-12-03 19:19:23', NULL, 'promotions/points-goods-category/points-goods-category', '', 2, 'promotions/points-goods-category', '1407602441964244994', 'promotions/points-goods-category', 2.00, '积分分类', NULL, '/manager/promotion/pointsGoodsCategory*');
INSERT INTO `li_menu` VALUES (1410862675914764290, 'admin', '2021-07-02 15:27:29', b'0', 'admin', '2021-07-27 16:06:26', 'null', 'distribution/distributionCash', '', 2, 'distributionCash', '1374173575405109248', 'distributionCash', 5.00, '分销提现', 'null', '/manager/distribution/cash*');
INSERT INTO `li_menu` VALUES (1419926569920536578, 'admin', '2021-07-27 15:44:10', b'0', 'admin', '2021-07-27 16:07:10', NULL, 'customWords/index', NULL, 2, 'customWords', '1367050250249830400', 'customWords', 4.00, 'ES分词', NULL, '/manager/other/customWords*');
INSERT INTO `li_menu` VALUES (1430799171593535490, 'admin', '2021-08-26 15:48:00', b'0', 'admin', '2021-12-02 20:21:34', NULL, 'promotions/kanjia/kanjia-activity-goods', NULL, 2, 'promotions/kanjia', '1367049214198022144', 'promotions/kanjia', 6.00, '砍价活动', NULL, '/manager/promotion/kanJiaGoods*');
INSERT INTO `li_menu` VALUES (1495665663207432193, 'admin', '2022-02-21 15:44:17', b'0', 'admin', '2022-02-21 15:45:44', NULL, 'distribution/distrbutionGrade', NULL, 2, 'distrbutionGrade', '1374173575405109248', 'distrbutionGrade', 0.00, '分销等级', NULL, '/manager/distrbutionGrade*');
SET FOREIGN_KEY_CHECKS = 1;
/*
Navicat Premium Data Transfer
Source Server : lilishop
Source Server Type : MySQL
Source Server Version : 80025
Source Host : 192.168.0.116:3306
Source Schema : zhimai1
Target Server Type : MySQL
Target Server Version : 80025
File Encoding : 65001
Date: 01/03/2022 15:36:03
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for li_store_menu
-- ----------------------------
DROP TABLE IF EXISTS `li_store_menu`;
CREATE TABLE `li_store_menu` (
`id` bigint NOT NULL COMMENT 'ID',
`create_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '创建者',
`create_time` datetime(6) NULL DEFAULT NULL COMMENT '创建时间',
`delete_flag` bit(1) NULL DEFAULT NULL COMMENT '删除标志 true/false 删除/未删除',
`update_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '更新者',
`update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
`description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '说明备注',
`front_route` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '前端路由',
`icon` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '图标',
`level` int NULL DEFAULT NULL COMMENT '层级',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '菜单/权限名称',
`parent_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '父id',
`path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '赋权API地址,正则表达式',
`sort_order` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '排序值',
`title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '菜单标题',
`permission` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '权限url',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of li_store_menu
-- ----------------------------
INSERT INTO `li_store_menu` VALUES (1348810750596767744, NULL, '2022-01-11 22:35:33.000000', b'0', NULL, '2022-01-11 22:36:52', NULL, 'Main', 'ios-american-football', 0, 'goods', '0', '/', '1', '商品', NULL);
INSERT INTO `li_store_menu` VALUES (1348810864748945408, NULL, '2022-01-11 22:35:37.000000', b'0', NULL, '2022-01-11 22:36:55', NULL, 'Main', 'ios-american-football', 1, 'Main', '1348810750596767744', '/', '1.1', '商品管理', '');
INSERT INTO `li_store_menu` VALUES (1349237129847005184, NULL, '2022-01-11 22:35:40.000000', b'0', NULL, '2022-01-11 22:36:59', NULL, 'goods-operation', 'ios-american-football', 2, 'goods-operation', '1348810864748945408', '/goods-operation', '1.11', '商品发布', '/store/goods/category*,/store/goods/categorySpec*,/store/goods/categoryParameters*,/store/goods/draftGoods*,/store/goods/label*,/store/goods/goods*,/store/goods/goodsUnit*,/store/goods/spec*');
INSERT INTO `li_store_menu` VALUES (1349237207378714624, NULL, '2022-01-11 22:35:42.000000', b'0', NULL, '2022-01-11 22:37:02', NULL, 'goods/goods-seller/goods', 'ios-american-football', 2, 'goods', '1348810864748945408', 'goods', '1.12', '商品列表', NULL);
INSERT INTO `li_store_menu` VALUES (1349237928434098176, NULL, '2022-01-11 22:35:45.000000', b'0', NULL, '2022-01-11 22:37:05', NULL, 'goods/goods-seller/draftGoods', 'ios-american-football', 2, 'template-goods', '1348810864748945408', 'template-goods', '1.13', '商品模板', NULL);
INSERT INTO `li_store_menu` VALUES (1349246048900243456, NULL, '2022-01-11 22:35:48.000000', b'0', NULL, '2022-01-11 22:37:08', NULL, 'goods/goods-manage/category', 'ios-american-football', 2, 'category', '1348810864748945408', 'category', '1.14', '店铺分类', NULL);
INSERT INTO `li_store_menu` VALUES (1349246347597602816, NULL, '2022-01-11 22:35:51.000000', b'0', NULL, '2022-01-11 22:37:11', NULL, 'Main', 'ios-american-football', 0, 'order', '0', '/', '2', '订单', NULL);
INSERT INTO `li_store_menu` VALUES (1349246468775239680, NULL, '2022-01-11 22:38:28.000000', b'0', NULL, '2022-01-11 22:38:31', NULL, 'Main', 'ios-american-football', 1, 'Main', '1349246347597602816', '/', '2.1', '订单管理', NULL);
INSERT INTO `li_store_menu` VALUES (1349246671158796288, NULL, '2022-01-11 22:38:42.000000', b'0', NULL, '2022-01-11 22:38:35', NULL, 'order/order/orderList', 'ios-american-football', 2, 'orderList', '1349246468775239680', 'orderList', '2.11', '商品订单', '/store/order/order*');
INSERT INTO `li_store_menu` VALUES (1349246896661356544, NULL, '2022-01-11 22:40:27.000000', b'0', NULL, '2022-01-11 22:40:34', NULL, 'order/order/virtualOrderList', 'ios-american-football', 2, 'virtualOrderList', '1349246468775239680', 'virtualOrderList', '2.12', '虚拟订单', '/store/order/order*');
INSERT INTO `li_store_menu` VALUES (1349247081504333824, NULL, '2022-01-11 22:41:47.000000', b'0', NULL, '2022-01-11 22:41:50', NULL, 'Main', 'ios-american-football', 1, 'Main', '1349246347597602816', '/', '2.2', '评价管理', NULL);
INSERT INTO `li_store_menu` VALUES (1349247640584085504, NULL, '2022-01-11 22:43:29.000000', b'0', NULL, '2022-01-11 22:45:47', NULL, 'member/memberComment', 'ios-american-football', 2, 'memberComment', '1349247081504333824', 'memberComment', '2.21', '评价管理', '/store/member/evaluation*');
INSERT INTO `li_store_menu` VALUES (1349254815809298432, NULL, '2022-01-11 22:45:35.000000', b'0', NULL, '2022-01-11 22:45:50', NULL, 'Main', 'ios-american-football', 1, 'Main', '1349246347597602816', '/', '2.3', '售后管理', NULL);
INSERT INTO `li_store_menu` VALUES (1349255214977015808, NULL, '2022-01-11 22:49:22.000000', b'0', NULL, '2022-01-11 22:49:27', NULL, 'order/after-order/returnGoodsOrder', 'ios-american-football', 2, 'returnGoodsOrder', '1349254815809298432', 'returnGoodsOrder', '2.31', '退货管理', '/store/order/afterSale*');
INSERT INTO `li_store_menu` VALUES (1349255404425338880, NULL, '2022-01-11 22:51:20.000000', b'0', NULL, '2022-01-11 22:51:22', NULL, 'order/after-order/returnMoneyOrder', 'ios-american-football', 2, 'returnMoneyOrder', '1349254815809298432', 'returnMoneyOrder', '2.32', '退款管理', '/store/order/afterSale*');
INSERT INTO `li_store_menu` VALUES (1349256082979840000, NULL, '2022-01-11 22:52:50.000000', b'0', NULL, '2022-01-11 22:52:55', NULL, 'order/after-order/orderComplaint', 'ios-american-football', 2, 'orderComplaint', '1349254815809298432', 'orderComplaint', '2.33', '投诉管理', '/store/order/complain*');
INSERT INTO `li_store_menu` VALUES (1357584224760102912, NULL, '2022-01-11 23:02:20.000000', b'0', NULL, '2022-01-11 23:02:25', NULL, 'Main', 'ios-american-football', 0, 'bill', '0', '/', '3', '财务', NULL);
INSERT INTO `li_store_menu` VALUES (1357873097859923969, NULL, '2022-01-11 23:04:13.000000', b'0', NULL, '2022-01-11 23:04:17', NULL, 'Main', 'ios-american-football', 1, 'Main', '1357584224760102912', '/', '3.1', '财务管理', '');
INSERT INTO `li_store_menu` VALUES (1367038467288072192, NULL, '2022-01-11 23:06:11.000000', b'0', NULL, '2022-01-11 23:06:16', NULL, 'shop/bill/accountStatementBill', 'ios-american-football', 2, 'accountStatementBill', '1357873097859923969', 'accountStatementBill', '3.11', '财务对账', '/store/order/bill*');
INSERT INTO `li_store_menu` VALUES (1367039534616805376, NULL, '2022-01-11 23:07:54.000000', b'0', NULL, '2022-01-11 23:07:57', NULL, 'shop/bill/storeBill', 'ios-american-football', 2, 'storeBill', '1357873097859923969', 'storeBill', '3.12', '店铺结算', '/store/order/bill*');
INSERT INTO `li_store_menu` VALUES (1367039950368800768, NULL, '2022-01-11 23:09:26.000000', b'0', NULL, '2022-01-11 23:09:29', NULL, 'Main', 'ios-american-football', 1, 'Main', '1357584224760102912', '/', '3.2', '发票管理', NULL);
INSERT INTO `li_store_menu` VALUES (1367040067201138688, NULL, '2022-01-11 23:11:14.000000', b'0', NULL, '2022-01-11 23:11:18', NULL, 'order/receiptManager/receipt', 'ios-american-football', 2, 'receipt', '1367039950368800768', 'receipt', '3.21', '发票管理', '/store/trade/receipt*');
INSERT INTO `li_store_menu` VALUES (1367040599596728320, NULL, '2022-01-11 23:12:49.000000', b'0', NULL, '2022-01-11 23:12:52', NULL, 'Main', 'ios-american-football', 0, 'promotion', '0', '/', '4', '营销', NULL);
INSERT INTO `li_store_menu` VALUES (1367040819248234496, NULL, '2022-01-11 23:14:35.000000', b'0', NULL, '2022-01-11 23:14:38', NULL, 'Main', 'ios-american-football', 1, 'Main', '1367040599596728320', '/', '4.1', '平台活动', NULL);
INSERT INTO `li_store_menu` VALUES (1367041332861730816, NULL, '2022-01-11 23:15:42.000000', b'0', NULL, '2022-01-11 23:15:48', NULL, 'promotion/pintuan/pintuan', 'ios-american-football', 2, 'pintuan', '1367040819248234496', 'pintuan', '4.11', '拼团活动', '/store/promotion/pintuan*');
INSERT INTO `li_store_menu` VALUES (1367041461194850304, NULL, '2022-01-11 23:17:32.000000', b'0', NULL, '2022-01-11 23:17:44', NULL, 'promotion/seckill/seckill', 'ios-american-football', 2, 'seckill', '1367040819248234496', 'seckill', '4.12', '秒杀活动', '/store/promotion/seckill*');
INSERT INTO `li_store_menu` VALUES (1367041575619657728, NULL, '2022-01-11 23:20:19.000000', b'0', NULL, '2022-01-11 23:20:24', NULL, 'Main', 'ios-american-football', 1, 'Main', '1367040599596728320', '/', '4.2', '直播活动', '');
INSERT INTO `li_store_menu` VALUES (1367042490443497472, NULL, '2022-01-11 23:21:13.000000', b'0', NULL, '2022-01-11 23:21:22', NULL, 'promotion/live/live', 'ios-american-football', 2, 'live', '1367041575619657728', 'live', '4.21', '直播管理', '/store/broadcast/studio*');
INSERT INTO `li_store_menu` VALUES (1367042664410644480, NULL, '2022-01-11 23:22:42.000000', b'0', NULL, '2022-01-11 23:22:59', NULL, 'promotion/live/liveGoods', 'ios-american-football', 2, 'liveGoods', '1367041575619657728', 'liveGoods', '4.22', '直播商品', '/store/broadcast/commodity*');
INSERT INTO `li_store_menu` VALUES (1367042804944994304, NULL, '2022-01-11 23:24:24.000000', b'0', NULL, '2022-01-11 23:24:38', NULL, 'Main', 'ios-american-football', 1, 'Main', '1367040599596728320', '/', '4.3', '商家活动', NULL);
INSERT INTO `li_store_menu` VALUES (1367042804944994305, NULL, '2022-01-11 23:24:29.000000', b'0', NULL, '2022-01-11 23:24:42', NULL, 'promotion/full-discount/full-discount', 'ios-american-football', 2, 'full-cut', '1367042804944994304', 'full-discount', '4.31', '满额活动', '/store/promotion/fullDiscount*');
INSERT INTO `li_store_menu` VALUES (1367042917113266176, NULL, '2022-01-11 23:26:45.000000', b'0', NULL, '2022-01-11 23:26:50', NULL, 'promotion/coupon/coupon', 'ios-american-football', 2, 'coupon', '1367042804944994304', 'coupon', '4.32', '优惠券', '/store/promotion/coupon*');
INSERT INTO `li_store_menu` VALUES (1367043020976816128, NULL, '2022-01-11 23:28:50.000000', b'0', NULL, '2022-01-11 23:29:02', NULL, 'Main', 'ios-american-football', 1, 'Main', '1367040599596728320', '/', '4.4', '分销管理', NULL);
INSERT INTO `li_store_menu` VALUES (1367043443917848576, NULL, '2022-01-11 23:28:53.000000', b'0', NULL, '2022-01-11 23:29:04', NULL, 'distribution/distributionGoods', 'ios-american-football', 2, 'distributionGoods', '1367043020976816128', 'distributionGoods', '4.41', '分销商品', '/store/distribution/goods*');
INSERT INTO `li_store_menu` VALUES (1367043505771249664, NULL, '2022-01-11 23:28:56.000000', b'0', NULL, '2022-01-11 23:29:07', NULL, 'distribution/distributionOrder', 'ios-american-football', 2, 'distributionOrder', '1367043020976816128', 'distributionOrderdistributionOrder', '4.42', '分销订单', '/store/distribution/order*');
INSERT INTO `li_store_menu` VALUES (1367044121163726848, NULL, '2022-01-12 21:47:03.000000', b'0', NULL, '2022-01-12 21:47:25', NULL, 'Main', 'ios-american-football', 0, 'statistics', '0', '/', '5', '统计', NULL);
INSERT INTO `li_store_menu` VALUES (1367044247978508288, NULL, '2022-01-12 21:47:19.000000', b'0', NULL, '2022-01-12 21:47:28', NULL, 'Main', 'ios-american-football', 1, 'Main', '1367044121163726848', '/', '5.1', '统计管理', NULL);
INSERT INTO `li_store_menu` VALUES (1367044376391319552, NULL, '2022-01-12 21:49:45.000000', b'0', NULL, '2022-01-12 21:50:01', NULL, 'statistics/goods', 'ios-american-football', 2, 'goodsStatistics', '1367044247978508288', 'goodsStatistics', '5.11', '商品统计', '/store/statistics/goods*');
INSERT INTO `li_store_menu` VALUES (1367044657296441344, NULL, '2022-01-12 21:49:48.000000', b'0', NULL, '2022-01-12 21:49:58', NULL, 'statistics/order', 'ios-american-football', 2, 'orderStatistics', '1367044247978508288', 'orderStatistics', '5.12', '订单统计', '/store/statistics/order*,/store/statistics/order*,/store/statistics/order*,/store/statistics/order*');
INSERT INTO `li_store_menu` VALUES (1367045529720061952, NULL, '2022-01-12 21:49:51.000000', b'0', NULL, '2022-01-12 21:50:03', NULL, 'statistics/traffic', 'ios-american-football', 2, 'trafficStatistics', '1367044247978508288', 'trafficStatistics', '5.13', '流量统计', '/store/statistics/view*');
INSERT INTO `li_store_menu` VALUES (1367045630710513664, NULL, '2022-01-12 21:52:59.000000', b'0', NULL, '2022-01-12 21:53:09', NULL, 'Main', 'ios-american-football', 0, 'settings', '0', '/', '6', '设置', NULL);
INSERT INTO `li_store_menu` VALUES (1367045794284175360, NULL, '2022-01-12 21:53:03.000000', b'0', NULL, '2022-01-12 21:53:12', NULL, 'Main', 'ios-american-football', 1, 'Main', '1367045630710513664', '/', '6.1', '配送设置', NULL);
INSERT INTO `li_store_menu` VALUES (1367045921434501120, NULL, '2022-01-12 21:55:49.000000', b'0', NULL, '2022-01-12 21:55:52', NULL, 'shop/ship/shipTemplate', 'ios-american-football', 2, 'shipTemplate', '1367045794284175360', 'shipTemplate', '6.11', '配送模板', '/store/setting/freightTemplate*');
INSERT INTO `li_store_menu` VALUES (1367046068369358848, NULL, '2022-01-12 21:58:05.000000', b'0', NULL, '2022-01-12 21:58:13', NULL, 'shop/ship/logistics', 'ios-american-football', 2, 'logistics', '1367045794284175360', 'logistics', '6.12', '物流公司', '/store/other/logistics*');
INSERT INTO `li_store_menu` VALUES (1367046266214678528, NULL, '2022-01-12 21:59:07.000000', b'0', NULL, '2022-01-12 21:59:43', NULL, 'Main', 'ios-american-football', 1, 'Main', '1367045630710513664', '/', '6.2', '店铺管理', NULL);
INSERT INTO `li_store_menu` VALUES (1367048084701315072, NULL, '2022-01-12 21:59:32.000000', b'0', NULL, '2022-01-12 21:59:48', NULL, 'shop/shopSetting', 'ios-american-football', 2, 'shopSetting', '1367046266214678528', 'shopSetting', '6.21', '店铺设置', NULL);
INSERT INTO `li_store_menu` VALUES (1367048684339986432, NULL, '2022-01-12 21:59:36.000000', b'0', NULL, '2022-01-12 21:59:51', NULL, 'shop/shopAddress', 'ios-american-football', 2, 'shopAddress', '1367046266214678528', 'shopAddress', '6.22', '自提管理', '/store/member/storeAddress*');
INSERT INTO `li_store_menu` VALUES (1367048754229673984, NULL, '2022-01-12 22:02:11.000000', b'0', NULL, '2022-01-12 22:04:36', NULL, 'Main', 'ios-american-football', 0, 'Main', '0', '/', '7', '消息', NULL);
INSERT INTO `li_store_menu` VALUES (1367048832210173952, NULL, '2022-01-12 22:02:49.000000', b'0', NULL, '2022-01-12 22:04:39', NULL, 'Main', 'ios-american-football', 1, 'Main', '1367048754229673984', '/', '7.1', '系统消息', NULL);
INSERT INTO `li_store_menu` VALUES (1367048967635861503, NULL, '2022-02-18 16:08:30.000000', b'0', NULL, '2022-02-18 16:08:36', NULL, 'Main', 'ios-american-football', 1, 'Main', '1367045630710513664', '/', '6.3', '店员设置', '');
INSERT INTO `li_store_menu` VALUES (1367048967635861504, NULL, '2022-01-12 22:02:51.000000', b'0', NULL, '2022-01-12 22:04:45', NULL, 'message', 'ios-american-football', 2, 'message_index', '1367048832210173952', 'message', '7.11', '系统消息', '/store/message/storeMessage*');
INSERT INTO `li_store_menu` VALUES (1367048967635861505, NULL, '2022-02-18 16:12:18.000000', b'0', NULL, '2022-02-18 16:12:21', NULL, 'shop/system/clerk/clerkManage', 'ios-american-football', 2, '\nclerkManage', '1367048967635861503', '\nclerkManage', '6.31', '店员管理', '/store/department*,/store/clerk*,/store/role*,/store/department*');
INSERT INTO `li_store_menu` VALUES (1367048967635861506, NULL, '2022-02-18 16:25:27.000000', NULL, NULL, '2022-02-18 16:25:31', NULL, 'shop/system/department/storeDepartmentManage', 'ios-american-football', 2, 'storeDepartmentManage', '1367048967635861503', 'storeDepartmentManage', '6.32', '部门管理', '/store/department*');
INSERT INTO `li_store_menu` VALUES (1367048967635861507, NULL, '2022-02-18 16:27:28.000000', NULL, NULL, '2022-02-18 16:27:30', NULL, 'shop/system/role/storeRoleManage', 'ios-american-football', 2, 'storeRoleManage', '1367048967635861503', 'storeRoleManage', '6.33', '角色权限', '/store/role*');
INSERT INTO `li_store_menu` VALUES (1367048967635861510, NULL, '2022-03-07 14:45:10.000000', b'0', NULL, '2022-03-07 14:45:13', NULL, 'shop/floorList', 'ios-american-football', 2, 'floorList', '1367046266214678528', 'floorList', '6.23', 'PC端', '/store/other/pageData*');
INSERT INTO `li_store_menu` VALUES (1367048967635861511, NULL, '2022-03-07 15:13:52.000000', b'0', NULL, '2022-03-07 15:13:55', NULL, 'shop/wap/wapList', 'ios-american-football', 2, 'wapList', '1367046266214678528', 'wapList', '6.24', '移动端', '/store/other/pageData*');
SET FOREIGN_KEY_CHECKS = 1;
insert li_clerk(id,create_by,create_time,store_id,clerk_name,member_id,shopkeeper,is_super,`status`) select id,member_name,current_date(),id,member_name,member_id ,TRUE,TRUE,TRUE from li_store

View File

@@ -0,0 +1,48 @@
/** 增加签到日期 **/
ALTER TABLE li_member_sign
ADD day int DEFAULT NULL COMMENT '签到日 ';
ALTER TABLE li_member_sign
DROP INDEX uk_member_day;
ALTER TABLE li_member_sign
add unique uk_member_day (member_id, day) COMMENT 'uk_member_day';
-- ----------------------------
-- Table structure for li_hot_words_history
-- ----------------------------
DROP TABLE IF EXISTS `li_hot_words_history`;
CREATE TABLE `li_hot_words_history`
(
`id` bigint NOT NULL COMMENT 'ID',
`create_time` datetime(6) DEFAULT NULL COMMENT '创建时间',
`keywords` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '热词',
`score` int DEFAULT NULL COMMENT '热词分数',
PRIMARY KEY (`id`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb3 COLLATE = utf8_bin COMMENT '热词历史表';
-- ----------------------------
-- Records of li_hot_words_history
-- ----------------------------
-- ----------------------------
-- Table structure for li_wholesale
-- ----------------------------
DROP TABLE IF EXISTS `li_wholesale`;
CREATE TABLE `li_wholesale`
(
`id` bigint NOT NULL,
`create_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
`create_time` datetime(6) DEFAULT NULL,
`delete_flag` bit(1) DEFAULT NULL,
`update_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
`update_time` datetime(6) DEFAULT NULL,
`price` decimal(10, 2) DEFAULT NULL COMMENT '价格',
`goods_id` bigint DEFAULT NULL COMMENT '商品id',
`sku_id` bigint DEFAULT NULL COMMENT '商品skuId',
`num` int DEFAULT NULL COMMENT '起购量',
PRIMARY KEY (`id`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_bin COMMENT '批发规则表';
ALTER TABLE li_wholesale
ADD template_id bigint DEFAULT NULL COMMENT '商品模版id';

677
LICENSE
View File

@@ -1,3 +1,4 @@
<<<<<<< HEAD
GNU GENERAL PUBLIC LICENSE GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007 Version 3, 29 June 2007
@@ -672,3 +673,679 @@ may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read Public License instead of this License. But first, please read
<http://www.gnu.org/philosophy/why-not-lgpl.html>. <http://www.gnu.org/philosophy/why-not-lgpl.html>.
=======
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
<program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<http://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
>>>>>>> ae0c4aea12996d3d72eca7c6ccdc97922373e4d7

149
README.md
View File

@@ -1,15 +1,21 @@
## 🔥 Lilishop B2B2C商城系统 ## Lilishop B2B2C商城系统
##### 🌹 开源不易如有帮助请点Star #### 欢迎交流需求,交流业务,交流技术(基础问题自行解决,其他问题先看文档后提问)
#### 不用削尖脑袋往老群里加,老群活跃度较低,很多潜水党,新群相对而言活跃一些 :tw-1f606: :tw-1f606: :tw-1f606: :tw-1f606: :tw-1f606: :tw-1f606:
#### 欢迎交流需求,交流业务,交流技术(基础问题自行解决,进群先看文档后提问)
##### 交流 qq 1群 961316482已满 ##### 交流 qq 1群 961316482已满
<a target="_blank" href="https://qm.qq.com/cgi-bin/qm/qr?k=BAhURE3DG2YWhQk6kRxVapbLykqMoPS8&jump_from=webapi"><img border="0" src="https://pub.idqqimg.com/wpa/images/group.png" alt="Lilishop交流群" title="Lilishop交流群">点击快捷加群</a>
##### 交流 qq 2群 875294241 ##### 交流 qq 2群 875294241(已满)
<a target="_blank" href="https://qm.qq.com/cgi-bin/qm/qr?k=_lrekOvr5k2p5uTn5GRidI-chKEmpCX3&jump_from=webapi"><img border="0" src="https://pub.idqqimg.com/wpa/images/group.png" alt="Lilishop交流群2群" title="Lilishop交流群2群">点击快捷加群</a>
##### 交流 qq 3群 263785057
<a target="_blank" href="https://qm.qq.com/cgi-bin/qm/qr?k=VUogkDvaso4zLTFH8nxFPDRKq0EthUn1&jump_from=webapi"><img border="0" src="//pub.idqqimg.com/wpa/images/group.png" alt="Lilishop交流群3群" title="Lilishop交流群3群">点击快捷加群</a>
##### 体验 公众号/小程序/APP 体验,扫描二维码 ##### 体验 公众号/小程序/APP 体验,扫描二维码
@@ -20,51 +26,33 @@
&nbsp;&nbsp;![github](https://img.shields.io/github/stars/hongyehuicheng/lilishop.svg?style=social&logo=#181717) &nbsp;&nbsp;![github](https://img.shields.io/github/stars/hongyehuicheng/lilishop.svg?style=social&logo=#181717)
### 🔥 商城介绍 ### 商城介绍
**官网**https://pickmall.cn **官网**https://pickmall.cn
Lilishop商城系统支持商家入驻后端基于SpringBoot 研发,前端使用 Vue、uniapp开发 **系统全端全部代码开源** Lilishop商城系统支持商家入驻后端基于SpringBoot 研发,前端使用 Vue、uniapp开发 **系统全端全部代码开源**
商城前后端分离支持分布式部署各个API独立并且有独立的消费者。 前后端分离,支持分布式部署,支持Docker各个API独立并且有独立的消费者。
商城包含 会员模块、**第三方登录模块**、**第三方支付模块**、**楼层装修模块**、订单模块、商品模块、促销模块、分销模块、文章模块、系统设置模块、流量分析模块和平台运营模块
商城包含各种中间件、搜索引擎、多级缓存、分布式事务、分布式任务调度等支持Docker支持k8s。是一款高性能、支持分布式、支持扩展的商城系统。
### 商城 API/消费者 聚合版 ### 商城 API/消费者 聚合版
api不需要单独部署只需启动一个jar包就可以正常运转 如有需要,可以点击跳转 api不需要单独部署只需启动一个jar包就可以正常运转 如有需要,可以点击跳转
https://gitee.com/beijing_hongye_huicheng/lilishop-simplify https://gitee.com/beijing_hongye_huicheng/lilishop-simplify
### ☃️ 商城 开发/使用/常见问题 帮助文档 ### 开发/使用/常见问题 帮助文档
https://docs.pickmall.cn https://docs.pickmall.cn
### 💧 开源商城项目地址(gitee) ### 项目地址
**API商城所有API**https://gitee.com/beijing_hongye_huicheng/lilishop.git gitee : https://gitee.com/beijing_hongye_huicheng
**UI平台管理端/商家端/买家PC端** https://gitee.com/beijing_hongye_huicheng/lilishop-ui.git github 镜像: https://github.com/lilishop?tab=repositories
**uniapp商城移动端支持小程序/APP/H5**https://gitee.com/beijing_hongye_huicheng/lilishop-uniapp.git 商城UI 项目下3个文件夹
buyer买家PC端seller商家端manager后台管理端
**docker一键部署商城部署脚本**https://gitee.com/beijing_hongye_huicheng/docker.git
### 💧 开源商城项目地址(github)
**API商城所有API**https://github.com/hongyehuicheng/lilishop.git
**UI平台管理端/商家端/买家PC端** https://github.com/hongyehuicheng/lilishop-ui.git
**uniapp商城移动端支持小程序/APP/H5**https://github.com/hongyehuicheng/lilishop-uniapp.git
**docker一键部署商城部署脚本**https://github.com/hongyehuicheng/docker.git
### 演示地址
☃️ UI 项目下3个文件夹 buyer买家PC端seller商家端manager后台管理端 PS手机验证码为 111111
### 💧 演示地址(手机验证码为 111111)
**平台管理端**https://admin-b2b2c.pickmall.cn 账号admin/123456 **平台管理端**https://admin-b2b2c.pickmall.cn 账号admin/123456
@@ -72,88 +60,54 @@ https://docs.pickmall.cn
**商城PC页面**https://pc-b2b2c.pickmall.cn **商城PC页面**https://pc-b2b2c.pickmall.cn
**商城移动端(请使浏览器手机模式,或者用手机浏览器打开)**https://m-b2b2c.pickmall.cn **商城 小程序/公众号/APP**:扫描二维码
**商城 小程序/公众号/APP支持ios、android**:扫描二维码
![image-20210511171611793](https://pickmall.cn/assets/imgs/h5-qrcode.png) ![image-20210511171611793](https://pickmall.cn/assets/imgs/h5-qrcode.png)
### 🚙 3行命令搭建本地商城只能本机访问前端镜像固定访问 127.0.0.1,如果是非本机体验,请自行下载源码操作镜像) ### 快速本地部署
温馨提示由于服务中间件较多如果笔记本环境启动内存没有32g可能无法启动成功macbookpro 2020 16g内存启动无法成功台式机在16g内存、AMD 3700x 的ubuntu系统成功运行。 [点击跳转](https://docs.pickmall.cn/deploy/%E8%BF%90%E8%A1%8C%E7%8E%AF%E5%A2%83%E5%87%86%E5%A4%87.html)
##### docker环境安装 [点击跳转](https://docs.pickmall.cn/deploy/%E8%BF%90%E8%A1%8C%E7%8E%AF%E5%A2%83%E5%87%86%E5%A4%87.html) **商城数据库**
使用docker-compose部署数据库自动初始化数据库不需要手动下载等操作
##### 下载docker-compose脚本 如果手动部署才需要获取sql [点击跳转](https://gitee.com/beijing_hongye_huicheng/docker/tree/master/init/mysql) PS这里有与tag版本一致的sql如果是历史版本则docker项目也切换至历史版本获取sql即可历史版本升级则根据java相聚的根目录DB目录下的升级sql按需执行
`git clone https://gitee.com/beijing_hongye_huicheng/docker.git `
##### 部署商城所需中间件
`docker-compose up -d`
##### 部署商城应用
`docker-compose -f docker-compose-application.yml up -d`
PS:商城数据库非docker部署
https://gitee.com/beijing_hongye_huicheng/docker/tree/master/init/mysql
这里有与tag版本一致的sql根据tag获取sql如果使用master代码
##### 商城 API/UI 地址
| API | 地址 |
| -------------- | --------------- |
| 买家API | http://127.0.0.1:8888 |
| 商家API | http://127.0.0.1:8889 |
| 管理端API | http://127.0.0.1:8887 |
| 通用API | http://127.0.0.1:8890 |
| 前端演示 | 地址 |
| -------------- | --------------- |
| 商城PC端 | http://127.0.0.1:10000 |
| 商城H5端 | http://127.0.0.1:10001 |
| 卖家端 | http://127.0.0.1:10002 |
| 平台管理端 | http://127.0.0.1:10003 |
其他小程序/app等需自行打包。
### ⚾️ 功能列表 ### 功能列表
#### 🥎 平台管理端功能 #### 平台管理端功能
![平台管理端功能](https://pickmall.cn/assets/imgs/other/managerList.jpg) ![平台管理端功能](https://pickmall.cn/assets/imgs/other/managerList1.jpg)
#### 🥎 卖家功能 #### 卖家功能
![商家端功能](https://pickmall.cn/assets/imgs/other/storeList.jpg) ![商家端功能](https://pickmall.cn/assets/imgs/other/storeList.jpg)
### 商城前端功能展示
#### 商城移动端
### 🧩 商城前端功能展示
#### ⚽️ 商城移动端
<img src="https://pickmall.cn/assets/imgs/other/app.gif" alt="移动端功能展示" style="zoom:50%;" /> <img src="https://pickmall.cn/assets/imgs/other/app.gif" alt="移动端功能展示" style="zoom:50%;" />
#### ⚽️ 平台管理端 #### 平台管理端
![管理端功能展示](https://pickmall.cn/assets/imgs/other/manager.gif) ![管理端功能展示](https://pickmall.cn/assets/imgs/other/manager.gif)
### 技术选型 ### 技术选型
#### 🥅 架构图 #### 架构图
![技术选型](https://lili-system.oss-cn-beijing.aliyuncs.com/docs/%E6%9E%B6%E6%9E%84.png) ![技术选型](https://lili-system.oss-cn-beijing.aliyuncs.com/docs/%E6%9E%B6%E6%9E%84.png)
##### 🕹 后台技术选型 ##### 后台技术选型
| 说明 | 框架 | 说明 | | | 说明 | 框架 | 说明 | |
| -------------- | --------------- | -------------- | ------------- | | -------------- | --------------- | -------------- | ------------- |
@@ -167,7 +121,7 @@ https://gitee.com/beijing_hongye_huicheng/docker/tree/master/init/mysql
| 短信 | 阿里云短信 | 认证 | JWT | | 短信 | 阿里云短信 | 认证 | JWT |
| 日志处理 | Log4j | 接口规范 | RESTful | | 日志处理 | Log4j | 接口规范 | RESTful |
##### 🖥 前端-运营后台、店铺后台 ##### 前端-运营后台、店铺后台
| 说明 | 框架 | 说明 | 框架 | | 说明 | 框架 | 说明 | 框架 |
| ---------- | ---------- | ---------- | ------- | | ---------- | ---------- | ---------- | ------- |
@@ -177,34 +131,43 @@ https://gitee.com/beijing_hongye_huicheng/docker/tree/master/init/mysql
| 基础UI库 | iView | UI界面基于 | iView | | 基础UI库 | iView | UI界面基于 | iView |
| 网络请求 | axios | | | | 网络请求 | axios | | |
##### 📱前端-移动端 ##### 前端-移动端
| 说明 | 架构 | 说明 | 架构 | | 说明 | 架构 | 说明 | 架构 |
| --------- | ------- | -------- | ------- | | --------- | ------- | -------- | ------- |
| 基础UI库 | uViewui | 基础框架 | uni-app | | 基础UI库 | uViewui | 基础框架 | uni-app |
| CSS预处理 | scss | 地图引擎 | amap | | CSS预处理 | scss | 地图引擎 | amap |
### 🌟 版本升级 ### 版本升级
``` ```
商城后续会持续版本升级修复bug完善功能覆盖更多业务场景 o2o/b2b/s2b2b2c/跨境电商 系统后续会提供多场景解决方案。
更多架构微服务、Saas、中台等都会支持。 支持差价升级商业授权
后续会考虑推出微服务商城系统/商城中台等
``` ```
### 商业授权
商业版本与开源版本代码一致,没有区分
### ⚠️ 开源须知 商业使用需要授权授权方式可选择联系官网客服或者qq群联系群主。
商业授权模式为永久授权,支持永久升级。
商业案例由于涉及部分多层二开关系,如需了解可以咨询销售。
### 开源须知
1.仅允许用于个人学习研究使用. 1.仅允许用于个人学习研究使用.
2.禁止将本开源的代码和资源进行任何形式任何名义的出售. 2.禁止将本开源的代码和资源进行任何形式任何名义的出售.
3.软件受国家计算机软件著作权保护登记号2021SR0805085 3.软件受国家计算机软件著作权保护登记号2021SR0805085
4.限制商用如果需要商业使用请联系我们。QQ3409056806. 4.限制商用如果需要商业使用请联系我们。QQ3409056806.或者加入qq群联系群主。
### 🐧 交流群
### 交流群
##### 官方qq 1群 961316482已满 ##### 官方qq 1群 961316482已满
##### 官方qq 2群 875294241 ##### 官方qq 2群 875294241(已满)
##### 官网qq 3群 263785057

View File

@@ -32,10 +32,10 @@
<artifactId>logstash-logback-encoder</artifactId> <artifactId>logstash-logback-encoder</artifactId>
<version>${logstash-logback-encoder}</version> <version>${logstash-logback-encoder}</version>
</dependency> </dependency>
<!-- <dependency>--> <!-- <dependency>-->
<!-- <groupId>org.springframework.boot</groupId>--> <!-- <groupId>org.springframework.boot</groupId>-->
<!-- <artifactId>spring-boot-starter-mail</artifactId>--> <!-- <artifactId>spring-boot-starter-mail</artifactId>-->
<!-- </dependency> --> <!-- </dependency> -->
</dependencies> </dependencies>
<build> <build>

View File

@@ -16,5 +16,6 @@ spring.mail.username=1814994716@qq.com
spring.mail.password=abcdefg123456!@#$%^ spring.mail.password=abcdefg123456!@#$%^
# 日志文件路径 # 日志文件路径
logging.file.path=lili-logs/admin logging.file.path=lili-logs/admin
lili.data.logstash.server=106.124.130.167:4560
# 文件格式 # 文件格式
logging.pattern.file=%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%5p) %clr(${PID}){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n%wEx logging.pattern.file=%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%5p) %clr(${PID}){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n%wEx

View File

@@ -29,6 +29,7 @@ public class BuyerApiApplication {
public static void main(String[] args) { public static void main(String[] args) {
System.setProperty("es.set.netty.runtime.available.processors", "false"); System.setProperty("es.set.netty.runtime.available.processors", "false");
System.setProperty("rocketmq.client.logUseSlf4j","true");
SpringApplication.run(BuyerApiApplication.class, args); SpringApplication.run(BuyerApiApplication.class, args);
} }
} }

View File

@@ -1,4 +1,4 @@
package cn.lili.controller.other.distribution; package cn.lili.controller.distribution;
import cn.lili.common.enums.ResultUtil; import cn.lili.common.enums.ResultUtil;
import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.ResultMessage;
@@ -24,7 +24,7 @@ import org.springframework.web.bind.annotation.*;
*/ */
@RestController @RestController
@Api(tags = "买家端,分销员接口") @Api(tags = "买家端,分销员接口")
@RequestMapping("/buyer/distribution") @RequestMapping("/buyer/distribution/distribution")
public class DistributionBuyerController { public class DistributionBuyerController {
/** /**

View File

@@ -1,5 +1,6 @@
package cn.lili.controller.other.distribution; package cn.lili.controller.distribution;
import cn.lili.common.aop.annotation.PreventDuplicateSubmissions;
import cn.lili.common.enums.ResultCode; import cn.lili.common.enums.ResultCode;
import cn.lili.common.enums.ResultUtil; import cn.lili.common.enums.ResultUtil;
import cn.lili.common.exception.ServiceException; import cn.lili.common.exception.ServiceException;
@@ -13,6 +14,7 @@ import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
@@ -33,6 +35,7 @@ import javax.validation.constraints.NotNull;
@RestController @RestController
@Api(tags = "买家端,分销商品佣金提现接口") @Api(tags = "买家端,分销商品佣金提现接口")
@RequestMapping("/buyer/distribution/cash") @RequestMapping("/buyer/distribution/cash")
@Validated
public class DistributionCashBuyerController { public class DistributionCashBuyerController {
/** /**
@@ -47,15 +50,16 @@ public class DistributionCashBuyerController {
private DistributionCashService distributorCashService; private DistributionCashService distributorCashService;
@PreventDuplicateSubmissions
@ApiOperation(value = "分销员提现") @ApiOperation(value = "分销员提现")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = "price", value = "申请金额", required = true, paramType = "query", dataType = "double") @ApiImplicitParam(name = "price", value = "申请金额", required = true, paramType = "query", dataType = "double")
}) })
@PostMapping @PostMapping
public ResultMessage<Object> cash(@Max(value = 1000, message = "提现金额单次最多允许提现1000") public ResultMessage<Object> cash(@Validated @Max(value = 9999, message = "提现金额单次最多允许提现9999")
@Min(value = 1, message = "提现金额单次最少提现金额为1元") @Min(value = 1, message = "提现金额单次最少提现金额为1元")
@NotNull @ApiIgnore Double price) { @NotNull @ApiIgnore Double price) {
if (distributionCashService.cash(price)) { if (Boolean.TRUE.equals(distributionCashService.cash(price))) {
return ResultUtil.success(); return ResultUtil.success();
} }
throw new ServiceException(ResultCode.ERROR); throw new ServiceException(ResultCode.ERROR);

View File

@@ -1,5 +1,6 @@
package cn.lili.controller.other.distribution; package cn.lili.controller.distribution;
import cn.lili.common.aop.annotation.PreventDuplicateSubmissions;
import cn.lili.common.enums.ResultCode; import cn.lili.common.enums.ResultCode;
import cn.lili.common.enums.ResultUtil; import cn.lili.common.enums.ResultUtil;
import cn.lili.common.exception.ServiceException; import cn.lili.common.exception.ServiceException;
@@ -29,7 +30,7 @@ import javax.validation.constraints.NotNull;
*/ */
@RestController @RestController
@Api(tags = "买家端,分销商品接口") @Api(tags = "买家端,分销商品接口")
@RequestMapping("/buyer/distributionGoods") @RequestMapping("/buyer/distribution/goods")
public class DistributionGoodsBuyerController { public class DistributionGoodsBuyerController {
/** /**
@@ -50,6 +51,7 @@ public class DistributionGoodsBuyerController {
return ResultUtil.data(distributionGoodsService.goodsPage(distributionGoodsSearchParams)); return ResultUtil.data(distributionGoodsService.goodsPage(distributionGoodsSearchParams));
} }
@PreventDuplicateSubmissions
@ApiOperation(value = "选择分销商品") @ApiOperation(value = "选择分销商品")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = "distributionGoodsId", value = "分销ID", required = true, dataType = "String", paramType = "path"), @ApiImplicitParam(name = "distributionGoodsId", value = "分销ID", required = true, dataType = "String", paramType = "path"),

View File

@@ -1,4 +1,4 @@
package cn.lili.controller.other.distribution; package cn.lili.controller.distribution;
import cn.lili.common.enums.ResultUtil; import cn.lili.common.enums.ResultUtil;
import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.ResultMessage;

View File

@@ -25,7 +25,7 @@ import java.util.List;
*/ */
@RestController @RestController
@Api(tags = "买家端,商品分类接口") @Api(tags = "买家端,商品分类接口")
@RequestMapping("/buyer/category") @RequestMapping("/buyer/goods/category")
public class CategoryBuyerController { public class CategoryBuyerController {
/** /**
* 商品分类 * 商品分类

View File

@@ -14,6 +14,7 @@ import cn.lili.modules.search.entity.dos.EsGoodsIndex;
import cn.lili.modules.search.entity.dos.EsGoodsRelatedInfo; import cn.lili.modules.search.entity.dos.EsGoodsRelatedInfo;
import cn.lili.modules.search.entity.dto.EsGoodsSearchDTO; import cn.lili.modules.search.entity.dto.EsGoodsSearchDTO;
import cn.lili.modules.search.service.EsGoodsSearchService; import cn.lili.modules.search.service.EsGoodsSearchService;
import cn.lili.modules.search.service.HotWordsService;
import cn.lili.modules.statistics.aop.PageViewPoint; import cn.lili.modules.statistics.aop.PageViewPoint;
import cn.lili.modules.statistics.aop.enums.PageViewEnum; import cn.lili.modules.statistics.aop.enums.PageViewEnum;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -43,7 +44,7 @@ import java.util.Map;
@Slf4j @Slf4j
@Api(tags = "买家端,商品接口") @Api(tags = "买家端,商品接口")
@RestController @RestController
@RequestMapping("/buyer/goods") @RequestMapping("/buyer/goods/goods")
public class GoodsBuyerController { public class GoodsBuyerController {
/** /**
@@ -62,6 +63,9 @@ public class GoodsBuyerController {
@Autowired @Autowired
private EsGoodsSearchService goodsSearchService; private EsGoodsSearchService goodsSearchService;
@Autowired
private HotWordsService hotWordsService;
@ApiOperation(value = "通过id获取商品信息") @ApiOperation(value = "通过id获取商品信息")
@ApiImplicitParam(name = "goodsId", value = "商品ID", required = true, paramType = "path", dataType = "Long") @ApiImplicitParam(name = "goodsId", value = "商品ID", required = true, paramType = "path", dataType = "Long")
@GetMapping(value = "/get/{goodsId}") @GetMapping(value = "/get/{goodsId}")
@@ -117,7 +121,7 @@ public class GoodsBuyerController {
@ApiOperation(value = "获取搜索热词") @ApiOperation(value = "获取搜索热词")
@GetMapping("/hot-words") @GetMapping("/hot-words")
public ResultMessage<List<String>> getGoodsHotWords(Integer count) { public ResultMessage<List<String>> getGoodsHotWords(Integer count) {
List<String> hotWords = goodsSearchService.getHotWords(count); List<String> hotWords = hotWordsService.getHotWords(count);
return ResultUtil.data(hotWords); return ResultUtil.data(hotWords);
} }

View File

@@ -5,6 +5,7 @@ import cn.lili.common.vo.PageVO;
import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.member.service.FootprintService; import cn.lili.modules.member.service.FootprintService;
import cn.lili.modules.search.entity.dos.EsGoodsIndex; import cn.lili.modules.search.entity.dos.EsGoodsIndex;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@@ -23,7 +24,7 @@ import java.util.List;
*/ */
@RestController @RestController
@Api(tags = "买家端,浏览历史接口") @Api(tags = "买家端,浏览历史接口")
@RequestMapping("/buyer/footprint") @RequestMapping("/buyer/member/footprint")
public class FootprintController { public class FootprintController {
/** /**
@@ -34,7 +35,7 @@ public class FootprintController {
@ApiOperation(value = "分页获取") @ApiOperation(value = "分页获取")
@GetMapping @GetMapping
public ResultMessage<List<EsGoodsIndex>> getByPage(PageVO page) { public ResultMessage<IPage<EsGoodsIndex>> getByPage(PageVO page) {
return ResultUtil.data(footprintService.footPrintPage(page)); return ResultUtil.data(footprintService.footPrintPage(page));
} }

View File

@@ -1,12 +1,12 @@
package cn.lili.controller.member; package cn.lili.controller.member;
import cn.lili.common.enums.ResultUtil; import cn.lili.common.enums.ResultUtil;
import cn.lili.common.security.OperationalJudgment;
import cn.lili.common.security.context.UserContext; import cn.lili.common.security.context.UserContext;
import cn.lili.common.vo.PageVO; import cn.lili.common.vo.PageVO;
import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.member.entity.dos.MemberAddress; import cn.lili.modules.member.entity.dos.MemberAddress;
import cn.lili.modules.member.service.MemberAddressService; import cn.lili.modules.member.service.MemberAddressService;
import cn.lili.modules.system.utils.OperationalJudgment;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
@@ -26,7 +26,7 @@ import java.util.Objects;
*/ */
@RestController @RestController
@Api(tags = "买家端,会员地址接口") @Api(tags = "买家端,会员地址接口")
@RequestMapping("/buyer/memberAddress") @RequestMapping("/buyer/member/address")
public class MemberAddressBuyerController { public class MemberAddressBuyerController {
/** /**

View File

@@ -1,5 +1,6 @@
package cn.lili.controller.member; package cn.lili.controller.member;
import cn.lili.common.aop.annotation.PreventDuplicateSubmissions;
import cn.lili.common.enums.ResultUtil; import cn.lili.common.enums.ResultUtil;
import cn.lili.common.enums.SwitchEnum; import cn.lili.common.enums.SwitchEnum;
import cn.lili.common.security.context.UserContext; import cn.lili.common.security.context.UserContext;
@@ -28,7 +29,7 @@ import javax.validation.constraints.NotNull;
*/ */
@RestController @RestController
@Api(tags = "买家端,会员商品评价接口") @Api(tags = "买家端,会员商品评价接口")
@RequestMapping("/buyer/memberEvaluation") @RequestMapping("/buyer/member/evaluation")
public class MemberEvaluationBuyerController { public class MemberEvaluationBuyerController {
/** /**
@@ -37,16 +38,17 @@ public class MemberEvaluationBuyerController {
@Autowired @Autowired
private MemberEvaluationService memberEvaluationService; private MemberEvaluationService memberEvaluationService;
@PreventDuplicateSubmissions
@ApiOperation(value = "添加会员评价") @ApiOperation(value = "添加会员评价")
@PostMapping @PostMapping
public ResultMessage<MemberEvaluationDTO> save(@Valid MemberEvaluationDTO memberEvaluationDTO) { public ResultMessage<MemberEvaluationDTO> save(@Valid MemberEvaluationDTO memberEvaluationDTO) {
return ResultUtil.data(memberEvaluationService.addMemberEvaluation(memberEvaluationDTO)); return ResultUtil.data(memberEvaluationService.addMemberEvaluation(memberEvaluationDTO, true));
} }
@ApiOperation(value = "查看会员评价详情") @ApiOperation(value = "查看会员评价详情")
@ApiImplicitParam(name = "id", value = "评价ID", required = true, paramType = "path") @ApiImplicitParam(name = "id", value = "评价ID", required = true, paramType = "path")
@GetMapping(value = "/get/{id}") @GetMapping(value = "/get/{id}")
public ResultMessage<MemberEvaluationVO> save(@NotNull(message = "评价ID不能为空") @PathVariable("id") String id) { public ResultMessage<MemberEvaluationVO> get(@NotNull(message = "评价ID不能为空") @PathVariable("id") String id) {
return ResultUtil.data(memberEvaluationService.queryById(id)); return ResultUtil.data(memberEvaluationService.queryById(id));
} }

View File

@@ -1,5 +1,7 @@
package cn.lili.controller.member; package cn.lili.controller.member;
import cn.lili.cache.limit.annotation.LimitPoint;
import cn.lili.common.aop.annotation.PreventDuplicateSubmissions;
import cn.lili.common.enums.ResultUtil; import cn.lili.common.enums.ResultUtil;
import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.member.entity.dos.MemberSign; import cn.lili.modules.member.entity.dos.MemberSign;
@@ -27,6 +29,8 @@ public class MemberSignBuyerController {
@Autowired @Autowired
private MemberSignService memberSignService; private MemberSignService memberSignService;
@PreventDuplicateSubmissions
@PostMapping @PostMapping
@ApiOperation(value = "会员签到") @ApiOperation(value = "会员签到")
public ResultMessage<Boolean> memberSign() { public ResultMessage<Boolean> memberSign() {

View File

@@ -1,57 +0,0 @@
package cn.lili.controller.member;
import cn.lili.common.enums.ResultUtil;
import cn.lili.common.vo.PageVO;
import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.system.entity.dos.ServiceNotice;
import cn.lili.modules.system.service.ServiceNoticeService;
import cn.lili.mybatis.util.PageUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 买家端,会员站服务消息接口
*
* @author Chopper
* @since 2020/11/17 2:31 下午
*/
@RestController
@RequestMapping("/service/notice")
@Api(tags = "买家端,会员站服务消息接口")
public class ServiceNoticeBuyerController {
/**
* 服务消息
*/
@Autowired
private ServiceNoticeService serviceNoticeService;
@ApiOperation(value = "获取消息详情")
@ApiImplicitParam(name = "id", value = "商品ID", required = true, dataType = "Long", paramType = "path")
@GetMapping(value = "/{id}")
public ResultMessage<ServiceNotice> get(@PathVariable String id) {
ServiceNotice serviceNotice = serviceNoticeService.getById(id);
return ResultUtil.data(serviceNotice);
}
@ApiOperation(value = "分页获取服务消息")
@GetMapping
@ApiImplicitParam(name = "storeId", value = "商家id默认为-1代表平台消息如果查询某商家发布的消息传递商家id即可", dataType = "int", paramType = "query")
public ResultMessage<IPage<ServiceNotice>> getByPage(PageVO page, String storeId) {
ServiceNotice serviceNotice = new ServiceNotice();
if (storeId == null) {
storeId = "-1";
}
serviceNotice.setStoreId(storeId);
IPage<ServiceNotice> data = serviceNoticeService.page(PageUtil.initPage(page));
return ResultUtil.data(data);
}
}

View File

@@ -1,4 +1,4 @@
package cn.lili.controller.member; package cn.lili.controller.message;
import cn.lili.common.enums.ResultUtil; import cn.lili.common.enums.ResultUtil;
import cn.lili.common.security.context.UserContext; import cn.lili.common.security.context.UserContext;
@@ -23,7 +23,7 @@ import org.springframework.web.bind.annotation.*;
*/ */
@RestController @RestController
@Api(tags = "买家端,会员站内消息接口") @Api(tags = "买家端,会员站内消息接口")
@RequestMapping("/buyer/member/message") @RequestMapping("/buyer/message/member")
public class MemberMessageBuyerController { public class MemberMessageBuyerController {
/** /**

View File

@@ -1,19 +1,20 @@
package cn.lili.controller.trade; package cn.lili.controller.order;
import cn.lili.common.aop.annotation.PreventDuplicateSubmissions;
import cn.lili.common.enums.ResultUtil; import cn.lili.common.enums.ResultUtil;
import cn.lili.common.security.OperationalJudgment;
import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.order.order.entity.dos.AfterSale; import cn.lili.modules.order.aftersale.entity.dos.AfterSale;
import cn.lili.modules.order.order.entity.dos.AfterSaleReason; import cn.lili.modules.order.aftersale.entity.dos.AfterSaleLog;
import cn.lili.modules.order.order.entity.dto.AfterSaleDTO; import cn.lili.modules.order.aftersale.entity.dos.AfterSaleReason;
import cn.lili.modules.order.order.entity.vo.AfterSaleApplyVO; import cn.lili.modules.order.aftersale.entity.dto.AfterSaleDTO;
import cn.lili.modules.order.order.entity.vo.AfterSaleSearchParams; import cn.lili.modules.order.aftersale.entity.vo.AfterSaleApplyVO;
import cn.lili.modules.order.order.entity.vo.AfterSaleVO; import cn.lili.modules.order.aftersale.entity.vo.AfterSaleSearchParams;
import cn.lili.modules.order.order.service.AfterSaleLogService; import cn.lili.modules.order.aftersale.entity.vo.AfterSaleVO;
import cn.lili.modules.order.order.service.AfterSaleReasonService; import cn.lili.modules.order.aftersale.service.AfterSaleLogService;
import cn.lili.modules.order.order.service.AfterSaleService; import cn.lili.modules.order.aftersale.service.AfterSaleReasonService;
import cn.lili.modules.order.trade.entity.dos.AfterSaleLog; import cn.lili.modules.order.aftersale.service.AfterSaleService;
import cn.lili.modules.store.entity.dto.StoreAfterSaleAddressDTO; import cn.lili.modules.store.entity.dto.StoreAfterSaleAddressDTO;
import cn.lili.modules.system.utils.OperationalJudgment;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
@@ -35,7 +36,7 @@ import java.util.List;
*/ */
@RestController @RestController
@Api(tags = "买家端,售后管理接口") @Api(tags = "买家端,售后管理接口")
@RequestMapping("/buyer/afterSale") @RequestMapping("/buyer/order/afterSale")
public class AfterSaleBuyerController { public class AfterSaleBuyerController {
/** /**
@@ -77,6 +78,7 @@ public class AfterSaleBuyerController {
return ResultUtil.data(afterSaleService.getAfterSaleVO(sn)); return ResultUtil.data(afterSaleService.getAfterSaleVO(sn));
} }
@PreventDuplicateSubmissions
@PostMapping(value = "/save/{orderItemSn}") @PostMapping(value = "/save/{orderItemSn}")
@ApiImplicitParam(name = "orderItemSn", value = "订单货物编号", required = true, paramType = "query") @ApiImplicitParam(name = "orderItemSn", value = "订单货物编号", required = true, paramType = "query")
@ApiOperation(value = "申请售后") @ApiOperation(value = "申请售后")
@@ -101,6 +103,7 @@ public class AfterSaleBuyerController {
return ResultUtil.data(afterSaleService.buyerDelivery(afterSaleSn, logisticsNo, logisticsId, mDeliverTime)); return ResultUtil.data(afterSaleService.buyerDelivery(afterSaleSn, logisticsNo, logisticsId, mDeliverTime));
} }
@PreventDuplicateSubmissions
@ApiOperation(value = "售后,取消售后") @ApiOperation(value = "售后,取消售后")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = "afterSaleSn", value = "售后sn", required = true, dataType = "String", paramType = "path") @ApiImplicitParam(name = "afterSaleSn", value = "售后sn", required = true, dataType = "String", paramType = "path")

View File

@@ -1,8 +1,9 @@
package cn.lili.controller.trade; package cn.lili.controller.order;
import cn.lili.common.aop.annotation.PreventDuplicateSubmissions;
import cn.lili.common.enums.ResultCode; import cn.lili.common.enums.ResultCode;
import cn.lili.common.exception.ServiceException;
import cn.lili.common.enums.ResultUtil; import cn.lili.common.enums.ResultUtil;
import cn.lili.common.exception.ServiceException;
import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.order.cart.entity.dto.TradeDTO; import cn.lili.modules.order.cart.entity.dto.TradeDTO;
import cn.lili.modules.order.cart.entity.enums.CartTypeEnum; import cn.lili.modules.order.cart.entity.enums.CartTypeEnum;
@@ -235,6 +236,7 @@ public class CartController {
} }
@PreventDuplicateSubmissions
@ApiOperation(value = "创建交易") @ApiOperation(value = "创建交易")
@PostMapping(value = "/create/trade", consumes = "application/json", produces = "application/json") @PostMapping(value = "/create/trade", consumes = "application/json", produces = "application/json")
public ResultMessage<Object> crateTrade(@RequestBody TradeParams tradeParams) { public ResultMessage<Object> crateTrade(@RequestBody TradeParams tradeParams) {
@@ -246,7 +248,7 @@ public class CartController {
throw se; throw se;
} catch (Exception e) { } catch (Exception e) {
log.error(ResultCode.ORDER_ERROR.message(), e); log.error(ResultCode.ORDER_ERROR.message(), e);
throw new ServiceException(ResultCode.ORDER_ERROR); throw e;
} }
} }
} }

View File

@@ -1,9 +1,11 @@
package cn.lili.controller.trade; package cn.lili.controller.order;
import cn.lili.common.aop.annotation.PreventDuplicateSubmissions;
import cn.lili.common.enums.ResultCode; import cn.lili.common.enums.ResultCode;
import cn.lili.common.enums.ResultUtil; import cn.lili.common.enums.ResultUtil;
import cn.lili.common.exception.ServiceException; import cn.lili.common.exception.ServiceException;
import cn.lili.common.security.AuthUser; import cn.lili.common.security.AuthUser;
import cn.lili.common.security.OperationalJudgment;
import cn.lili.common.security.context.UserContext; import cn.lili.common.security.context.UserContext;
import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.order.order.entity.dos.Order; import cn.lili.modules.order.order.entity.dos.Order;
@@ -12,7 +14,6 @@ import cn.lili.modules.order.order.entity.enums.OrderStatusEnum;
import cn.lili.modules.order.order.entity.vo.OrderDetailVO; import cn.lili.modules.order.order.entity.vo.OrderDetailVO;
import cn.lili.modules.order.order.entity.vo.OrderSimpleVO; import cn.lili.modules.order.order.entity.vo.OrderSimpleVO;
import cn.lili.modules.order.order.service.OrderService; import cn.lili.modules.order.order.service.OrderService;
import cn.lili.modules.system.utils.OperationalJudgment;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
@@ -34,7 +35,7 @@ import java.util.Objects;
*/ */
@RestController @RestController
@Api(tags = "买家端,订单接口") @Api(tags = "买家端,订单接口")
@RequestMapping("/buyer/orders") @RequestMapping("/buyer/order/order")
public class OrderBuyerController { public class OrderBuyerController {
/** /**
@@ -62,6 +63,7 @@ public class OrderBuyerController {
return ResultUtil.data(orderDetailVO); return ResultUtil.data(orderDetailVO);
} }
@PreventDuplicateSubmissions
@ApiOperation(value = "确认收货") @ApiOperation(value = "确认收货")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = "orderSn", value = "订单编号", required = true, paramType = "path") @ApiImplicitParam(name = "orderSn", value = "订单编号", required = true, paramType = "path")
@@ -80,6 +82,7 @@ public class OrderBuyerController {
return ResultUtil.success(); return ResultUtil.success();
} }
@PreventDuplicateSubmissions
@ApiOperation(value = "取消订单") @ApiOperation(value = "取消订单")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = "orderSn", value = "订单编号", required = true, dataType = "String", paramType = "path"), @ApiImplicitParam(name = "orderSn", value = "订单编号", required = true, dataType = "String", paramType = "path"),
@@ -91,6 +94,7 @@ public class OrderBuyerController {
return ResultUtil.success(); return ResultUtil.success();
} }
@PreventDuplicateSubmissions
@ApiOperation(value = "删除订单") @ApiOperation(value = "删除订单")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = "orderSn", value = "订单编号", required = true, dataType = "String", paramType = "path") @ApiImplicitParam(name = "orderSn", value = "订单编号", required = true, dataType = "String", paramType = "path")
@@ -113,6 +117,7 @@ public class OrderBuyerController {
} }
@PreventDuplicateSubmissions
@ApiOperation(value = "开票") @ApiOperation(value = "开票")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = "orderSn", value = "订单编号", required = true, dataType = "String", paramType = "path") @ApiImplicitParam(name = "orderSn", value = "订单编号", required = true, dataType = "String", paramType = "path")

View File

@@ -1,7 +1,9 @@
package cn.lili.controller.trade; package cn.lili.controller.order;
import cn.lili.common.aop.annotation.PreventDuplicateSubmissions;
import cn.lili.common.enums.ResultUtil; import cn.lili.common.enums.ResultUtil;
import cn.lili.common.security.AuthUser; import cn.lili.common.security.AuthUser;
import cn.lili.common.security.OperationalJudgment;
import cn.lili.common.security.context.UserContext; import cn.lili.common.security.context.UserContext;
import cn.lili.common.vo.PageVO; import cn.lili.common.vo.PageVO;
import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.ResultMessage;
@@ -13,7 +15,6 @@ import cn.lili.modules.order.order.entity.vo.OrderComplaintSearchParams;
import cn.lili.modules.order.order.entity.vo.OrderComplaintVO; import cn.lili.modules.order.order.entity.vo.OrderComplaintVO;
import cn.lili.modules.order.order.service.OrderComplaintCommunicationService; import cn.lili.modules.order.order.service.OrderComplaintCommunicationService;
import cn.lili.modules.order.order.service.OrderComplaintService; import cn.lili.modules.order.order.service.OrderComplaintService;
import cn.lili.modules.system.utils.OperationalJudgment;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
@@ -33,7 +34,7 @@ import java.util.Objects;
**/ **/
@RestController @RestController
@Api(tags = "买家端,交易投诉接口") @Api(tags = "买家端,交易投诉接口")
@RequestMapping("/buyer/complain") @RequestMapping("/buyer/order/complain")
public class OrderComplaintBuyerController { public class OrderComplaintBuyerController {
/** /**
@@ -66,6 +67,7 @@ public class OrderComplaintBuyerController {
} }
@PreventDuplicateSubmissions
@ApiOperation(value = "添加交易投诉") @ApiOperation(value = "添加交易投诉")
@PostMapping @PostMapping
public ResultMessage<OrderComplaint> add(@Valid OrderComplaintDTO orderComplaintDTO) { public ResultMessage<OrderComplaint> add(@Valid OrderComplaintDTO orderComplaintDTO) {
@@ -80,11 +82,12 @@ public class OrderComplaintBuyerController {
@PostMapping("/communication") @PostMapping("/communication")
public ResultMessage<OrderComplaintCommunicationVO> addCommunication(@RequestParam String complainId, @RequestParam String content) { public ResultMessage<OrderComplaintCommunicationVO> addCommunication(@RequestParam String complainId, @RequestParam String content) {
AuthUser currentUser = Objects.requireNonNull(UserContext.getCurrentUser()); AuthUser currentUser = Objects.requireNonNull(UserContext.getCurrentUser());
OrderComplaintCommunicationVO communicationVO = new OrderComplaintCommunicationVO(complainId, content, CommunicationOwnerEnum.BUYER.name(), currentUser.getId(), currentUser.getNickName()); OrderComplaintCommunicationVO communicationVO = new OrderComplaintCommunicationVO(complainId, content, CommunicationOwnerEnum.BUYER.name(), currentUser.getNickName(), currentUser.getId());
orderComplaintCommunicationService.addCommunication(communicationVO); orderComplaintCommunicationService.addCommunication(communicationVO);
return ResultUtil.data(communicationVO); return ResultUtil.data(communicationVO);
} }
@PreventDuplicateSubmissions
@ApiOperation(value = "取消售后") @ApiOperation(value = "取消售后")
@ApiImplicitParam(name = "id", value = "投诉单ID", required = true, paramType = "path") @ApiImplicitParam(name = "id", value = "投诉单ID", required = true, paramType = "path")
@PutMapping(value = "/status/{id}") @PutMapping(value = "/status/{id}")

View File

@@ -1,5 +1,6 @@
package cn.lili.controller.trade; package cn.lili.controller.order;
import cn.lili.common.aop.annotation.PreventDuplicateSubmissions;
import cn.lili.common.enums.ResultUtil; import cn.lili.common.enums.ResultUtil;
import cn.lili.common.vo.PageVO; import cn.lili.common.vo.PageVO;
import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.ResultMessage;
@@ -41,6 +42,7 @@ public class ReceiptBuyerController {
return ResultUtil.data(this.receiptService.getReceiptData(searchParams, pageVO)); return ResultUtil.data(this.receiptService.getReceiptData(searchParams, pageVO));
} }
@PreventDuplicateSubmissions
@ApiOperation(value = "保存发票信息") @ApiOperation(value = "保存发票信息")
@PostMapping @PostMapping
public ResultMessage<Receipt> save(@Valid Receipt receipt) { public ResultMessage<Receipt> save(@Valid Receipt receipt) {

View File

@@ -1,15 +1,15 @@
package cn.lili.controller.trade; package cn.lili.controller.order;
import cn.lili.common.aop.annotation.PreventDuplicateSubmissions;
import cn.lili.common.enums.ResultUtil; import cn.lili.common.enums.ResultUtil;
import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.order.trade.entity.dos.Recharge; import cn.lili.modules.wallet.entity.dos.Recharge;
import cn.lili.modules.order.trade.service.RechargeService; import cn.lili.modules.wallet.service.RechargeService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@@ -26,12 +26,12 @@ import javax.validation.constraints.Min;
@RestController @RestController
@Api(tags = "买家端,预存款充值记录接口") @Api(tags = "买家端,预存款充值记录接口")
@RequestMapping("/buyer/trade/recharge") @RequestMapping("/buyer/trade/recharge")
@Transactional(rollbackFor = Exception.class)
public class RechargeTradeBuyerController { public class RechargeTradeBuyerController {
@Autowired @Autowired
private RechargeService rechargeService; private RechargeService rechargeService;
@PreventDuplicateSubmissions
@PostMapping @PostMapping
@ApiOperation(value = "创建余额充值订单") @ApiOperation(value = "创建余额充值订单")
@ApiImplicitParams({ @ApiImplicitParams({

View File

@@ -25,7 +25,7 @@ import org.springframework.web.bind.annotation.RestController;
*/ */
@RestController @RestController
@Api(tags = "买家端,APP版本") @Api(tags = "买家端,APP版本")
@RequestMapping("/buyer/appVersion") @RequestMapping("/buyer/other/appVersion")
public class AppVersionBuyerController { public class AppVersionBuyerController {
@Autowired @Autowired

View File

@@ -29,7 +29,7 @@ import java.util.List;
*/ */
@RestController @RestController
@Api(tags = "买家端,文章接口") @Api(tags = "买家端,文章接口")
@RequestMapping("/buyer/article") @RequestMapping("/buyer/other/article")
public class ArticleBuyerController { public class ArticleBuyerController {
/** /**

View File

@@ -1,5 +1,6 @@
package cn.lili.controller.other; package cn.lili.controller.other;
import cn.lili.common.aop.annotation.PreventDuplicateSubmissions;
import cn.lili.common.enums.ResultUtil; import cn.lili.common.enums.ResultUtil;
import cn.lili.common.security.context.UserContext; import cn.lili.common.security.context.UserContext;
import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.ResultMessage;
@@ -22,7 +23,7 @@ import javax.validation.Valid;
*/ */
@RestController @RestController
@Api(tags = "买家端,意见反馈接口") @Api(tags = "买家端,意见反馈接口")
@RequestMapping("/buyer/feedback") @RequestMapping("/buyer/other/feedback")
public class FeedbackBuyerController { public class FeedbackBuyerController {
/** /**
@@ -31,6 +32,7 @@ public class FeedbackBuyerController {
@Autowired @Autowired
private FeedbackService feedbackService; private FeedbackService feedbackService;
@PreventDuplicateSubmissions
@ApiOperation(value = "添加意见反馈") @ApiOperation(value = "添加意见反馈")
@PostMapping() @PostMapping()
public ResultMessage<Object> save(@Valid Feedback feedback) { public ResultMessage<Object> save(@Valid Feedback feedback) {

View File

@@ -21,7 +21,7 @@ import java.util.List;
*/ */
@RestController @RestController
@Api(tags = "买家端,物流公司接口") @Api(tags = "买家端,物流公司接口")
@RequestMapping("/buyer/logistics") @RequestMapping("/buyer/other/logistics")
public class LogisticsBuyerController { public class LogisticsBuyerController {
@Autowired @Autowired

View File

@@ -2,17 +2,17 @@ package cn.lili.controller.other;
import cn.lili.common.enums.ResultUtil; import cn.lili.common.enums.ResultUtil;
import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.page.entity.dos.PageData;
import cn.lili.modules.page.entity.dto.PageDataDTO; import cn.lili.modules.page.entity.dto.PageDataDTO;
import cn.lili.modules.page.entity.enums.PageEnum; import cn.lili.modules.page.entity.enums.PageEnum;
import cn.lili.modules.page.entity.vos.PageDataVO; import cn.lili.modules.page.entity.vos.PageDataVO;
import cn.lili.modules.page.service.PageDataService; import cn.lili.modules.page.service.PageDataService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/** /**
* 买家端,页面接口 * 买家端,页面接口
@@ -22,7 +22,7 @@ import org.springframework.web.bind.annotation.RestController;
*/ */
@RestController @RestController
@Api(tags = "买家端,页面接口") @Api(tags = "买家端,页面接口")
@RequestMapping("/buyer/pageData") @RequestMapping("/buyer/other/pageData")
public class PageBuyerController { public class PageBuyerController {
/** /**
@@ -36,12 +36,53 @@ public class PageBuyerController {
public ResultMessage<PageDataVO> getIndex(@RequestParam String clientType) { public ResultMessage<PageDataVO> getIndex(@RequestParam String clientType) {
PageDataDTO pageDataDTO = new PageDataDTO(PageEnum.INDEX.name()); PageDataDTO pageDataDTO = new PageDataDTO(PageEnum.INDEX.name());
pageDataDTO.setPageClientType(clientType); pageDataDTO.setPageClientType(clientType);
return ResultUtil.data(pageService.getPageData(pageDataDTO)); PageDataVO pageDataVO=pageService.getPageData(pageDataDTO);
return ResultUtil.data(pageDataVO);
} }
@ApiOperation(value = "获取页面数据") @ApiOperation(value = "获取页面数据")
@GetMapping @GetMapping
public ResultMessage<PageDataVO> get(PageDataDTO pageDataDTO) { public ResultMessage<PageDataVO> get(PageDataDTO pageDataDTO) {
return ResultUtil.data(pageService.getPageData(pageDataDTO)); PageDataVO pageDataVO=pageService.getPageData(pageDataDTO);
return ResultUtil.data(pageDataVO);
}
@ApiOperation(value = "获取页面数据")
@ApiImplicitParam(name = "id", value = "id", required = true, dataType = "String", paramType = "path")
@GetMapping("/get/{id}")
public ResultMessage<PageData> getPage(@PathVariable("id") String id) {
return ResultUtil.data(pageService.getSpecial(id));
}
@ApiOperation(value = "获取专题页面数据(根据消息内容得知)")
@GetMapping("/getSpecial")
public ResultMessage<PageData> getSpecial(@RequestParam String body) {
String name = "";
if (body.indexOf("") >= 0 && body.indexOf("") >= 0) {
name = body.substring(body.indexOf("") + 1, body.lastIndexOf(""));
} else if (body.indexOf("") >= 0 && body.indexOf("") >= 0) {
name = body.substring(body.indexOf("") + 1, body.lastIndexOf(""));
} else if (body.indexOf("") >= 0 && body.indexOf("") >= 0) {
name = body.substring(body.indexOf("") + 1, body.lastIndexOf(""));
} else if (body.indexOf("") >= 0 && body.indexOf("") >= 0) {
name = body.substring(body.indexOf("") + 1, body.lastIndexOf(""));
} else if (body.indexOf("") >= 0 && body.indexOf("") >= 0) {
name = body.substring(body.indexOf("") + 1, body.lastIndexOf(""));
} else if (body.indexOf("") >= 0 && body.indexOf("") >= 0) {
name = body.substring(body.indexOf("") + 1, body.lastIndexOf(""));
} else if (body.indexOf("") >= 0 && body.indexOf("") >= 0) {
name = body.substring(body.indexOf("") + 1, body.lastIndexOf(""));
} else if (body.indexOf("") >= 0) {
name = body.substring(body.indexOf("") + 1, body.lastIndexOf(""));
} else if (body.indexOf("") >= 0) {
name = body.substring(body.indexOf("") + 1, body.lastIndexOf(""));
}
PageData pageData = pageService.getOne(
new LambdaQueryWrapper<PageData>()
.eq(PageData::getPageType, PageEnum.SPECIAL.name())
.eq(PageData::getName, name));
return ResultUtil.data(pageData);
} }
} }

View File

@@ -3,7 +3,7 @@ package cn.lili.controller.other.broadcast;
import cn.lili.common.enums.ResultUtil; import cn.lili.common.enums.ResultUtil;
import cn.lili.common.vo.PageVO; import cn.lili.common.vo.PageVO;
import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.goods.entity.dos.Studio; import cn.lili.modules.goods.entity.vos.StudioVO;
import cn.lili.modules.goods.service.StudioService; import cn.lili.modules.goods.service.StudioService;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@@ -35,7 +35,7 @@ public class StudioController {
@ApiImplicitParam(name = "status", value = "直播间状态", paramType = "query", dataType = "String") @ApiImplicitParam(name = "status", value = "直播间状态", paramType = "query", dataType = "String")
}) })
@GetMapping @GetMapping
public ResultMessage<IPage<Studio>> page(PageVO pageVO, Integer recommend, String status) { public ResultMessage<IPage<StudioVO>> page(PageVO pageVO, Integer recommend, String status) {
return ResultUtil.data(studioService.studioList(pageVO, recommend, status)); return ResultUtil.data(studioService.studioList(pageVO, recommend, status));
} }

View File

@@ -1,5 +1,6 @@
package cn.lili.controller.other.purchase; package cn.lili.controller.other.purchase;
import cn.lili.common.aop.annotation.PreventDuplicateSubmissions;
import cn.lili.common.enums.ResultCode; import cn.lili.common.enums.ResultCode;
import cn.lili.common.enums.ResultUtil; import cn.lili.common.enums.ResultUtil;
import cn.lili.common.security.context.UserContext; import cn.lili.common.security.context.UserContext;
@@ -29,7 +30,7 @@ import javax.validation.constraints.NotNull;
*/ */
@Api(tags = "买家端,采购接口") @Api(tags = "买家端,采购接口")
@RestController @RestController
@RequestMapping("/buyer/purchase") @RequestMapping("/buyer/other/purchase/purchase")
public class PurchaseBuyerController { public class PurchaseBuyerController {
/** /**
@@ -48,6 +49,8 @@ public class PurchaseBuyerController {
return ResultUtil.data(goodsUnitService.page(PageUtil.initPage(pageVO))); return ResultUtil.data(goodsUnitService.page(PageUtil.initPage(pageVO)));
} }
@PreventDuplicateSubmissions
@ApiOperation(value = "添加采购单") @ApiOperation(value = "添加采购单")
@PostMapping @PostMapping
public ResultMessage<PurchaseOrderVO> addPurchaseOrderVO(@RequestBody PurchaseOrderVO purchaseOrderVO) { public ResultMessage<PurchaseOrderVO> addPurchaseOrderVO(@RequestBody PurchaseOrderVO purchaseOrderVO) {
@@ -74,6 +77,7 @@ public class PurchaseBuyerController {
return ResultUtil.data(purchaseOrderService.page(purchaseOrderSearchParams)); return ResultUtil.data(purchaseOrderService.page(purchaseOrderSearchParams));
} }
@PreventDuplicateSubmissions
@ApiOperation(value = "关闭采购单") @ApiOperation(value = "关闭采购单")
@ApiImplicitParam(name = "id", value = "采购单ID", required = true, dataType = "Long", paramType = "path") @ApiImplicitParam(name = "id", value = "采购单ID", required = true, dataType = "Long", paramType = "path")
@PutMapping("/{id}") @PutMapping("/{id}")

View File

@@ -27,7 +27,7 @@ import java.util.List;
*/ */
@Api(tags = "买家端,采购报价接口") @Api(tags = "买家端,采购报价接口")
@RestController @RestController
@RequestMapping("/buyer/purchaseQuoted") @RequestMapping("/buyer/other/purchase/purchaseQuoted")
public class PurchaseQuotedController { public class PurchaseQuotedController {
/** /**

View File

@@ -1,22 +1,34 @@
package cn.lili.controller.passport; package cn.lili.controller.passport;
import cn.lili.common.enums.ResultCode;
import cn.lili.common.enums.ResultUtil; import cn.lili.common.enums.ResultUtil;
import cn.lili.common.exception.ServiceException;
import cn.lili.common.security.enums.UserEnums; import cn.lili.common.security.enums.UserEnums;
import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.member.entity.dos.Member; import cn.lili.modules.member.entity.dos.Member;
import cn.lili.modules.member.entity.dto.MemberEditDTO; import cn.lili.modules.member.entity.dto.MemberEditDTO;
import cn.lili.modules.member.entity.enums.QRCodeLoginSessionStatusEnum;
import cn.lili.modules.member.entity.vo.QRLoginResultVo;
import cn.lili.modules.member.service.MemberService; import cn.lili.modules.member.service.MemberService;
import cn.lili.modules.system.sms.SmsUtil; import cn.lili.modules.sms.SmsUtil;
import cn.lili.modules.verification.enums.VerificationEnums; import cn.lili.modules.verification.entity.enums.VerificationEnums;
import cn.lili.modules.verification.service.VerificationService; import cn.lili.modules.verification.service.VerificationService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.context.request.async.DeferredResult;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
/** /**
* 买家端,会员接口 * 买家端,会员接口
@@ -24,9 +36,10 @@ import javax.validation.constraints.NotNull;
* @author Chopper * @author Chopper
* @since 2020/11/16 10:07 下午 * @since 2020/11/16 10:07 下午
*/ */
@Slf4j
@RestController @RestController
@Api(tags = "买家端,会员接口") @Api(tags = "买家端,会员接口")
@RequestMapping("/buyer/members") @RequestMapping("/buyer/passport/member")
public class MemberBuyerController { public class MemberBuyerController {
@Autowired @Autowired
@@ -37,6 +50,73 @@ public class MemberBuyerController {
private VerificationService verificationService; private VerificationService verificationService;
@ApiOperation(value = "web-获取登录二维码")
@PostMapping(value = "/pc_session", produces = "application/json;charset=UTF-8")
public ResultMessage<Object> createPcSession() {
return ResultUtil.data(memberService.createPcSession());
}
/**
* 长轮询参考nacos
*
* @param token
* @param beforeSessionStatus 上次记录的session状态
* @return
*/
@ApiOperation(value = "web-二维码登录")
@PostMapping(value = "/session_login/{token}", produces = "application/json;charset=UTF-8")
public Object loginWithSession(@PathVariable("token") String token, Integer beforeSessionStatus) {
log.info("receive login with session key {}", token);
ResponseEntity<ResultMessage<Object>> timeoutResponseEntity =
new ResponseEntity<>(ResultUtil.error(ResultCode.ERROR), HttpStatus.OK);
int timeoutSecond = 20;
DeferredResult<ResponseEntity<Object>> deferredResult = new DeferredResult<>(timeoutSecond * 1000L, timeoutResponseEntity);
CompletableFuture.runAsync(() -> {
try {
int i = 0;
while (i < timeoutSecond) {
QRLoginResultVo queryResult = memberService.loginWithSession(token);
int status = queryResult.getStatus();
if (status == beforeSessionStatus
&& (QRCodeLoginSessionStatusEnum.WAIT_SCANNING.getCode() == status
|| QRCodeLoginSessionStatusEnum.SCANNING.getCode() == status)) {
//睡眠一秒种,继续等待结果
TimeUnit.SECONDS.sleep(1);
} else {
deferredResult.setResult(new ResponseEntity<>(ResultUtil.data(queryResult), HttpStatus.OK));
break;
}
i++;
}
} catch (Exception e) {
log.error("获取登录状态异常,", e);
deferredResult.setResult(new ResponseEntity<>(ResultUtil.error(ResultCode.ERROR), HttpStatus.OK));
Thread.currentThread().interrupt();
}
}, Executors.newCachedThreadPool());
return deferredResult;
}
@ApiOperation(value = "app扫码")
@PostMapping(value = "/app_scanner", produces = "application/json;charset=UTF-8")
public ResultMessage<Object> appScanner(String token) {
return ResultUtil.data(memberService.appScanner(token));
}
@ApiOperation(value = "app扫码-登录确认:同意/拒绝")
@ApiImplicitParams({
@ApiImplicitParam(name = "token", value = "sessionToken", required = true, paramType = "query"),
@ApiImplicitParam(name = "code", value = "操作0拒绝登录1同意登录", required = true, paramType = "query")
})
@PostMapping(value = "/app_confirm", produces = "application/json;charset=UTF-8")
public ResultMessage<Object> appSConfirm(String token, Integer code) {
boolean flag = memberService.appSConfirm(token, code);
return flag ? ResultUtil.success() : ResultUtil.error(ResultCode.ERROR);
}
@ApiOperation(value = "登录接口") @ApiOperation(value = "登录接口")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = "username", value = "用户名", required = true, paramType = "query"), @ApiImplicitParam(name = "username", value = "用户名", required = true, paramType = "query"),
@@ -66,8 +146,11 @@ public class MemberBuyerController {
public ResultMessage<Object> smsLogin(@NotNull(message = "手机号为空") @RequestParam String mobile, public ResultMessage<Object> smsLogin(@NotNull(message = "手机号为空") @RequestParam String mobile,
@NotNull(message = "验证码为空") @RequestParam String code, @NotNull(message = "验证码为空") @RequestParam String code,
@RequestHeader String uuid) { @RequestHeader String uuid) {
smsUtil.verifyCode(mobile, VerificationEnums.LOGIN, uuid, code); if (smsUtil.verifyCode(mobile, VerificationEnums.LOGIN, uuid, code)) {
return ResultUtil.data(memberService.mobilePhoneLogin(mobile)); return ResultUtil.data(memberService.mobilePhoneLogin(mobile));
} else {
throw new ServiceException(ResultCode.VERIFICATION_SMS_CHECKED_ERROR);
}
} }
@ApiOperation(value = "注册用户") @ApiOperation(value = "注册用户")
@@ -84,8 +167,11 @@ public class MemberBuyerController {
@RequestHeader String uuid, @RequestHeader String uuid,
@NotNull(message = "验证码不能为空") @RequestParam String code) { @NotNull(message = "验证码不能为空") @RequestParam String code) {
smsUtil.verifyCode(mobilePhone, VerificationEnums.REGISTER, uuid, code); if (smsUtil.verifyCode(mobilePhone, VerificationEnums.REGISTER, uuid, code)) {
return ResultUtil.data(memberService.register(username, password, mobilePhone)); return ResultUtil.data(memberService.register(username, password, mobilePhone));
} else {
throw new ServiceException(ResultCode.VERIFICATION_SMS_CHECKED_ERROR);
}
} }
@@ -106,16 +192,17 @@ public class MemberBuyerController {
@NotNull(message = "验证码为空") @RequestParam String code, @NotNull(message = "验证码为空") @RequestParam String code,
@RequestHeader String uuid) { @RequestHeader String uuid) {
//校验短信验证码是否正确 //校验短信验证码是否正确
smsUtil.verifyCode(mobile, VerificationEnums.FIND_USER, uuid, code); if (smsUtil.verifyCode(mobile, VerificationEnums.FIND_USER, uuid, code)) {
//校验是否通过手机号可获取会员,存在则将会员信息存入缓存有效时间3分钟 //校验是否通过手机号可获取会员,存在则将会员信息存入缓存有效时间3分钟
memberService.findByMobile(uuid, mobile); memberService.findByMobile(uuid, mobile);
return ResultUtil.success();
return ResultUtil.success(); } else {
throw new ServiceException(ResultCode.VERIFICATION_SMS_CHECKED_ERROR);
}
} }
@ApiOperation(value = "修改密码") @ApiOperation(value = "修改密码")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = "mobile", value = "手机号", required = true, paramType = "query"),
@ApiImplicitParam(name = "password", value = "是否保存登录", required = true, paramType = "query") @ApiImplicitParam(name = "password", value = "是否保存登录", required = true, paramType = "query")
}) })
@PostMapping("/resetPassword") @PostMapping("/resetPassword")
@@ -142,6 +229,34 @@ public class MemberBuyerController {
return ResultUtil.data(memberService.modifyPass(password, newPassword)); return ResultUtil.data(memberService.modifyPass(password, newPassword));
} }
@ApiOperation(value = "初始设置密码")
@ApiImplicitParams({
@ApiImplicitParam(name = "newPassword", value = "新密码", required = true, paramType = "query")
})
@PutMapping("/canInitPassword")
public ResultMessage<Object> canInitPassword() {
return ResultUtil.data(memberService.canInitPass());
}
@ApiOperation(value = "初始设置密码")
@ApiImplicitParams({
@ApiImplicitParam(name = "newPassword", value = "新密码", required = true, paramType = "query")
})
@PutMapping("/initPassword")
public ResultMessage<Object> initPassword(@NotNull(message = "密码不能为空") @RequestParam String password) {
memberService.initPass(password);
return ResultUtil.success();
}
@ApiOperation(value = "注销账号")
@ApiImplicitParams({
@ApiImplicitParam(name = "password", value = "密码", required = true, paramType = "query")
})
@PutMapping("/cancellation")
public ResultMessage<Member> cancellation(@NotNull(message = "密码不能为空") @RequestParam String password) {
memberService.cancellation(password);
return ResultUtil.success();
}
@ApiOperation(value = "刷新token") @ApiOperation(value = "刷新token")
@GetMapping("/refresh/{refreshToken}") @GetMapping("/refresh/{refreshToken}")

View File

@@ -21,7 +21,7 @@ import java.util.List;
*/ */
@RestController @RestController
@Api(tags = "买家端,app/小程序 联合登录") @Api(tags = "买家端,app/小程序 联合登录")
@RequestMapping("/buyer/connect/bind") @RequestMapping("/buyer/passport/connect/bind")
public class ConnectBuyerBindController { public class ConnectBuyerBindController {
@Autowired @Autowired

View File

@@ -2,16 +2,16 @@ package cn.lili.controller.passport.connect;
import cn.lili.common.enums.ResultCode; import cn.lili.common.enums.ResultCode;
import cn.lili.common.enums.ResultUtil;
import cn.lili.common.exception.ServiceException; import cn.lili.common.exception.ServiceException;
import cn.lili.common.security.token.Token; import cn.lili.common.security.token.Token;
import cn.lili.common.enums.ResultUtil; import cn.lili.common.utils.UuidUtils;
import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.connect.entity.dto.AuthCallback; import cn.lili.modules.connect.entity.dto.AuthCallback;
import cn.lili.modules.connect.entity.dto.ConnectAuthUser; import cn.lili.modules.connect.entity.dto.ConnectAuthUser;
import cn.lili.modules.connect.request.AuthRequest; import cn.lili.modules.connect.request.AuthRequest;
import cn.lili.modules.connect.service.ConnectService; import cn.lili.modules.connect.service.ConnectService;
import cn.lili.modules.connect.util.ConnectUtil; import cn.lili.modules.connect.util.ConnectUtil;
import cn.lili.modules.connect.util.UuidUtils;
import cn.lili.modules.member.service.MemberService; import cn.lili.modules.member.service.MemberService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
@@ -33,7 +33,7 @@ import java.io.IOException;
@Slf4j @Slf4j
@RestController @RestController
@Api(tags = "买家端,web联合登录") @Api(tags = "买家端,web联合登录")
@RequestMapping("/buyer/connect") @RequestMapping("/buyer/passport/connect/connect")
public class ConnectBuyerWebController { public class ConnectBuyerWebController {
@Autowired @Autowired

View File

@@ -1,14 +1,14 @@
package cn.lili.controller.passport.connect; package cn.lili.controller.passport.connect;
import cn.lili.common.security.token.Token;
import cn.lili.common.enums.ResultUtil; import cn.lili.common.enums.ResultUtil;
import cn.lili.common.security.token.Token;
import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.connect.entity.dto.WechatMPLoginParams; import cn.lili.modules.connect.entity.dto.WechatMPLoginParams;
import cn.lili.modules.connect.service.ConnectService; import cn.lili.modules.connect.service.ConnectService;
import cn.lili.modules.message.entity.dos.WechatMPMessage;
import cn.lili.modules.message.service.ShortLinkService; import cn.lili.modules.message.service.ShortLinkService;
import cn.lili.modules.message.service.WechatMPMessageService; import cn.lili.modules.wechat.entity.dos.WechatMPMessage;
import cn.lili.modules.message.util.WechatMpCodeUtil; import cn.lili.modules.wechat.service.WechatMPMessageService;
import cn.lili.modules.wechat.util.WechatMpCodeUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -26,7 +26,7 @@ import java.util.List;
* @since 2021/2/19 09:28 * @since 2021/2/19 09:28
*/ */
@RestController @RestController
@RequestMapping("/buyer/mini-program") @RequestMapping("/buyer/passport/connect/miniProgram")
@Api(tags = "买家端,小程序登录接口") @Api(tags = "买家端,小程序登录接口")
public class MiniProgramBuyerController { public class MiniProgramBuyerController {

View File

@@ -30,7 +30,7 @@ import javax.servlet.http.HttpServletResponse;
@Slf4j @Slf4j
@RestController @RestController
@Api(tags = "买家端,收银台接口") @Api(tags = "买家端,收银台接口")
@RequestMapping("/buyer/cashier") @RequestMapping("/buyer/payment/cashier")
public class CashierController { public class CashierController {
@Autowired @Autowired

View File

@@ -20,7 +20,7 @@ import javax.servlet.http.HttpServletRequest;
*/ */
@Api(tags = "买家端,退款回调") @Api(tags = "买家端,退款回调")
@RestController @RestController
@RequestMapping("/buyer/cashier/refund") @RequestMapping("/buyer/payment/cashierRefund")
public class CashierRefundController { public class CashierRefundController {
@Autowired @Autowired

View File

@@ -1,16 +1,19 @@
package cn.lili.controller.member; package cn.lili.controller.promotion;
import cn.lili.common.enums.ResultUtil; import cn.lili.common.enums.ResultUtil;
import cn.lili.common.security.AuthUser; import cn.lili.common.security.AuthUser;
import cn.lili.common.security.OperationalJudgment;
import cn.lili.common.security.context.UserContext; import cn.lili.common.security.context.UserContext;
import cn.lili.common.vo.PageVO; import cn.lili.common.vo.PageVO;
import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.promotion.entity.dos.MemberCoupon; import cn.lili.modules.promotion.entity.dos.MemberCoupon;
import cn.lili.modules.promotion.entity.vos.CouponSearchParams; import cn.lili.modules.promotion.entity.dto.search.CouponSearchParams;
import cn.lili.modules.promotion.entity.dto.search.MemberCouponSearchParams;
import cn.lili.modules.promotion.entity.enums.CouponGetEnum;
import cn.lili.modules.promotion.entity.enums.PromotionsStatusEnum;
import cn.lili.modules.promotion.entity.vos.CouponVO; import cn.lili.modules.promotion.entity.vos.CouponVO;
import cn.lili.modules.promotion.service.CouponService; import cn.lili.modules.promotion.service.CouponService;
import cn.lili.modules.promotion.service.MemberCouponService; import cn.lili.modules.promotion.service.MemberCouponService;
import cn.lili.modules.system.utils.OperationalJudgment;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
@@ -51,13 +54,15 @@ public class CouponBuyerController {
@GetMapping @GetMapping
@ApiOperation(value = "获取可领取优惠券列表") @ApiOperation(value = "获取可领取优惠券列表")
public ResultMessage<IPage<CouponVO>> getCouponList(CouponSearchParams queryParam, PageVO page) { public ResultMessage<IPage<CouponVO>> getCouponList(CouponSearchParams queryParam, PageVO page) {
IPage<CouponVO> canUseCoupons = couponService.getCanReceiveCoupons(queryParam, page); queryParam.setPromotionStatus(PromotionsStatusEnum.START.name());
queryParam.setGetType(CouponGetEnum.FREE.name());
IPage<CouponVO> canUseCoupons = couponService.pageVOFindAll(queryParam, page);
return ResultUtil.data(canUseCoupons); return ResultUtil.data(canUseCoupons);
} }
@ApiOperation(value = "获取当前会员的优惠券列表") @ApiOperation(value = "获取当前会员的优惠券列表")
@GetMapping("/getCoupons") @GetMapping("/getCoupons")
public ResultMessage<IPage<MemberCoupon>> getCoupons(CouponSearchParams param, PageVO pageVo) { public ResultMessage<IPage<MemberCoupon>> getCoupons(MemberCouponSearchParams param, PageVO pageVo) {
AuthUser currentUser = Objects.requireNonNull(UserContext.getCurrentUser()); AuthUser currentUser = Objects.requireNonNull(UserContext.getCurrentUser());
param.setMemberId(currentUser.getId()); param.setMemberId(currentUser.getId());
return ResultUtil.data(memberCouponService.getMemberCoupons(param, pageVo)); return ResultUtil.data(memberCouponService.getMemberCoupons(param, pageVo));
@@ -65,7 +70,7 @@ public class CouponBuyerController {
@ApiOperation(value = "获取当前会员的对于当前商品可使用的优惠券列表") @ApiOperation(value = "获取当前会员的对于当前商品可使用的优惠券列表")
@GetMapping("/canUse") @GetMapping("/canUse")
public ResultMessage<IPage<MemberCoupon>> getCouponsByCanUse(CouponSearchParams param, Double totalPrice, PageVO pageVo) { public ResultMessage<IPage<MemberCoupon>> getCouponsByCanUse(MemberCouponSearchParams param, Double totalPrice, PageVO pageVo) {
AuthUser currentUser = Objects.requireNonNull(UserContext.getCurrentUser()); AuthUser currentUser = Objects.requireNonNull(UserContext.getCurrentUser());
param.setMemberId(currentUser.getId()); param.setMemberId(currentUser.getId());
return ResultUtil.data(memberCouponService.getMemberCouponsByCanUse(param, totalPrice, pageVo)); return ResultUtil.data(memberCouponService.getMemberCouponsByCanUse(param, totalPrice, pageVo));
@@ -84,8 +89,7 @@ public class CouponBuyerController {
@GetMapping("/receive/{couponId}") @GetMapping("/receive/{couponId}")
public ResultMessage<Object> receiveCoupon(@NotNull(message = "优惠券ID不能为空") @PathVariable("couponId") String couponId) { public ResultMessage<Object> receiveCoupon(@NotNull(message = "优惠券ID不能为空") @PathVariable("couponId") String couponId) {
AuthUser currentUser = Objects.requireNonNull(UserContext.getCurrentUser()); AuthUser currentUser = Objects.requireNonNull(UserContext.getCurrentUser());
memberCouponService.checkCouponLimit(couponId, currentUser.getId()); memberCouponService.receiveBuyerCoupon(couponId, currentUser.getId(), currentUser.getNickName());
memberCouponService.receiveCoupon(couponId, currentUser.getId(), currentUser.getNickName());
return ResultUtil.success(); return ResultUtil.success();
} }

View File

@@ -1,16 +1,20 @@
package cn.lili.controller.promotion; package cn.lili.controller.promotion;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.text.CharSequenceUtil;
import cn.lili.common.enums.ResultUtil; import cn.lili.common.enums.ResultUtil;
import cn.lili.common.security.context.UserContext; import cn.lili.common.security.context.UserContext;
import cn.lili.common.vo.PageVO; import cn.lili.common.vo.PageVO;
import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.promotion.entity.dos.KanjiaActivity; import cn.lili.modules.promotion.entity.dos.KanjiaActivity;
import cn.lili.modules.promotion.entity.dos.KanjiaActivityLog; import cn.lili.modules.promotion.entity.dos.KanjiaActivityLog;
import cn.lili.modules.promotion.entity.dto.KanJiaActivityLogQuery; import cn.lili.modules.promotion.entity.dto.search.KanJiaActivityLogQuery;
import cn.lili.modules.promotion.entity.dto.KanjiaActivityQuery; import cn.lili.modules.promotion.entity.dto.search.KanjiaActivityGoodsParams;
import cn.lili.modules.promotion.entity.enums.PromotionStatusEnum; import cn.lili.modules.promotion.entity.dto.search.KanjiaActivityQuery;
import cn.lili.modules.promotion.entity.vos.kanjia.*; import cn.lili.modules.promotion.entity.dto.search.KanjiaActivitySearchParams;
import cn.lili.modules.promotion.entity.enums.PromotionsStatusEnum;
import cn.lili.modules.promotion.entity.vos.kanjia.KanjiaActivityGoodsListVO;
import cn.lili.modules.promotion.entity.vos.kanjia.KanjiaActivityGoodsVO;
import cn.lili.modules.promotion.entity.vos.kanjia.KanjiaActivityVO;
import cn.lili.modules.promotion.service.KanjiaActivityGoodsService; import cn.lili.modules.promotion.service.KanjiaActivityGoodsService;
import cn.lili.modules.promotion.service.KanjiaActivityLogService; import cn.lili.modules.promotion.service.KanjiaActivityLogService;
import cn.lili.modules.promotion.service.KanjiaActivityService; import cn.lili.modules.promotion.service.KanjiaActivityService;
@@ -52,9 +56,9 @@ public class KanjiaGoodsActivityBuyerController {
@ApiOperation(value = "分页获取砍价商品") @ApiOperation(value = "分页获取砍价商品")
public ResultMessage<IPage<KanjiaActivityGoodsListVO>> kanjiaActivityGoodsPage(KanjiaActivityGoodsParams kanjiaActivityGoodsParams, PageVO page) { public ResultMessage<IPage<KanjiaActivityGoodsListVO>> kanjiaActivityGoodsPage(KanjiaActivityGoodsParams kanjiaActivityGoodsParams, PageVO page) {
// 会员端查询到的肯定是已经开始的活动商品 // 会员端查询到的肯定是已经开始的活动商品
kanjiaActivityGoodsParams.setPromotionStatus(PromotionStatusEnum.START.name()); kanjiaActivityGoodsParams.setPromotionStatus(PromotionsStatusEnum.START.name());
kanjiaActivityGoodsParams.setStartTime(System.currentTimeMillis()); // kanjiaActivityGoodsParams.setStartTime(System.currentTimeMillis());
kanjiaActivityGoodsParams.setEndTime(System.currentTimeMillis()); // kanjiaActivityGoodsParams.setEndTime(System.currentTimeMillis());
return ResultUtil.data(kanJiaActivityGoodsService.kanjiaGoodsVOPage(kanjiaActivityGoodsParams, page)); return ResultUtil.data(kanJiaActivityGoodsService.kanjiaGoodsVOPage(kanjiaActivityGoodsParams, page));
} }
@@ -75,7 +79,7 @@ public class KanjiaGoodsActivityBuyerController {
@ApiOperation(value = "获取砍价活动") @ApiOperation(value = "获取砍价活动")
public ResultMessage<KanjiaActivityVO> getKanJiaActivity(KanjiaActivitySearchParams kanjiaActivitySearchParams) { public ResultMessage<KanjiaActivityVO> getKanJiaActivity(KanjiaActivitySearchParams kanjiaActivitySearchParams) {
//如果是非被邀请关系则填写会员ID //如果是非被邀请关系则填写会员ID
if (StrUtil.isEmpty(kanjiaActivitySearchParams.getKanjiaActivityId())) { if (CharSequenceUtil.isEmpty(kanjiaActivitySearchParams.getKanjiaActivityId())) {
kanjiaActivitySearchParams.setMemberId(UserContext.getCurrentUser().getId()); kanjiaActivitySearchParams.setMemberId(UserContext.getCurrentUser().getId());
} }
return ResultUtil.data(kanJiaActivityService.getKanjiaActivityVO(kanjiaActivitySearchParams)); return ResultUtil.data(kanJiaActivityService.getKanjiaActivityVO(kanjiaActivitySearchParams));

View File

@@ -1,15 +1,14 @@
package cn.lili.controller.promotion; package cn.lili.controller.promotion;
import cn.hutool.core.date.DateUtil; import cn.lili.common.enums.PromotionTypeEnum;
import cn.lili.common.enums.ResultUtil; import cn.lili.common.enums.ResultUtil;
import cn.lili.common.vo.PageVO; import cn.lili.common.vo.PageVO;
import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.promotion.entity.dto.PromotionGoodsDTO; import cn.lili.modules.promotion.entity.dos.PromotionGoods;
import cn.lili.modules.promotion.entity.enums.PromotionStatusEnum; import cn.lili.modules.promotion.entity.dto.search.PromotionGoodsSearchParams;
import cn.lili.common.enums.PromotionTypeEnum; import cn.lili.modules.promotion.entity.enums.PromotionsStatusEnum;
import cn.lili.modules.promotion.entity.vos.PintuanMemberVO; import cn.lili.modules.promotion.entity.vos.PintuanMemberVO;
import cn.lili.modules.promotion.entity.vos.PintuanShareVO; import cn.lili.modules.promotion.entity.vos.PintuanShareVO;
import cn.lili.modules.promotion.entity.vos.PromotionGoodsSearchParams;
import cn.lili.modules.promotion.service.PintuanService; import cn.lili.modules.promotion.service.PintuanService;
import cn.lili.modules.promotion.service.PromotionGoodsService; import cn.lili.modules.promotion.service.PromotionGoodsService;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -40,14 +39,13 @@ public class PintuanBuyerController {
@ApiOperation(value = "获取拼团商品") @ApiOperation(value = "获取拼团商品")
@GetMapping @GetMapping
public ResultMessage<IPage<PromotionGoodsDTO>> getPintuanCategory(String goodsName, String categoryPath, PageVO pageVo) { public ResultMessage<IPage<PromotionGoods>> getPintuanCategory(String goodsName, String categoryPath, PageVO pageVo) {
PromotionGoodsSearchParams searchParams = new PromotionGoodsSearchParams(); PromotionGoodsSearchParams searchParams = new PromotionGoodsSearchParams();
searchParams.setGoodsName(goodsName); searchParams.setGoodsName(goodsName);
searchParams.setPromotionType(PromotionTypeEnum.PINTUAN.name()); searchParams.setPromotionType(PromotionTypeEnum.PINTUAN.name());
searchParams.setPromotionStatus(PromotionStatusEnum.START.name()); searchParams.setPromotionStatus(PromotionsStatusEnum.START.name());
searchParams.setCategoryPath(categoryPath); searchParams.setCategoryPath(categoryPath);
searchParams.setEndTime(DateUtil.date().getTime()); return ResultUtil.data(promotionGoodsService.pageFindAll(searchParams, pageVo));
return ResultUtil.data(promotionGoodsService.getPromotionGoods(searchParams, pageVo));
} }

View File

@@ -3,8 +3,10 @@ package cn.lili.controller.promotion;
import cn.lili.common.enums.ResultUtil; import cn.lili.common.enums.ResultUtil;
import cn.lili.common.vo.PageVO; import cn.lili.common.vo.PageVO;
import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.promotion.entity.dos.PointsGoods;
import cn.lili.modules.promotion.entity.dos.PointsGoodsCategory; import cn.lili.modules.promotion.entity.dos.PointsGoodsCategory;
import cn.lili.modules.promotion.entity.vos.PointsGoodsSearchParams; import cn.lili.modules.promotion.entity.dto.search.PointsGoodsSearchParams;
import cn.lili.modules.promotion.entity.enums.PromotionsStatusEnum;
import cn.lili.modules.promotion.entity.vos.PointsGoodsVO; import cn.lili.modules.promotion.entity.vos.PointsGoodsVO;
import cn.lili.modules.promotion.service.PointsGoodsCategoryService; import cn.lili.modules.promotion.service.PointsGoodsCategoryService;
import cn.lili.modules.promotion.service.PointsGoodsService; import cn.lili.modules.promotion.service.PointsGoodsService;
@@ -35,8 +37,9 @@ public class PointsGoodsBuyerController {
@GetMapping @GetMapping
@ApiOperation(value = "分页获取积分商品") @ApiOperation(value = "分页获取积分商品")
public ResultMessage<IPage<PointsGoodsVO>> getPointsGoodsPage(PointsGoodsSearchParams searchParams, PageVO page) { public ResultMessage<IPage<PointsGoods>> getPointsGoodsPage(PointsGoodsSearchParams searchParams, PageVO page) {
IPage<PointsGoodsVO> pointsGoodsByPage = pointsGoodsService.getPointsGoodsByPage(searchParams, page); searchParams.setPromotionStatus(PromotionsStatusEnum.START.name());
IPage<PointsGoods> pointsGoodsByPage = pointsGoodsService.pageFindAll(searchParams, page);
return ResultUtil.data(pointsGoodsByPage); return ResultUtil.data(pointsGoodsByPage);
} }

View File

@@ -4,12 +4,13 @@ import cn.lili.common.enums.ResultUtil;
import cn.lili.common.security.context.UserContext; import cn.lili.common.security.context.UserContext;
import cn.lili.common.vo.PageVO; import cn.lili.common.vo.PageVO;
import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.goods.entity.vos.StoreGoodsLabelVO;
import cn.lili.modules.goods.service.StoreGoodsLabelService;
import cn.lili.modules.store.entity.dto.StoreBankDTO; import cn.lili.modules.store.entity.dto.StoreBankDTO;
import cn.lili.modules.store.entity.dto.StoreCompanyDTO; import cn.lili.modules.store.entity.dto.StoreCompanyDTO;
import cn.lili.modules.store.entity.dto.StoreOtherInfoDTO; import cn.lili.modules.store.entity.dto.StoreOtherInfoDTO;
import cn.lili.modules.store.entity.vos.*; import cn.lili.modules.store.entity.vos.*;
import cn.lili.modules.store.service.StoreDetailService; import cn.lili.modules.store.service.StoreDetailService;
import cn.lili.modules.store.service.StoreGoodsLabelService;
import cn.lili.modules.store.service.StoreService; import cn.lili.modules.store.service.StoreService;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@@ -30,7 +31,7 @@ import java.util.List;
* @since 2020/11/17 2:32 下午 * @since 2020/11/17 2:32 下午
*/ */
@RestController @RestController
@RequestMapping("/buyer/store") @RequestMapping("/buyer/store/store")
@Api(tags = "买家端,店铺接口") @Api(tags = "买家端,店铺接口")
public class StoreBuyerController { public class StoreBuyerController {

View File

@@ -1,6 +1,7 @@
package cn.lili.controller.member; package cn.lili.controller.wallet;
import cn.lili.common.aop.annotation.PreventDuplicateSubmissions;
import cn.lili.common.enums.ResultUtil; import cn.lili.common.enums.ResultUtil;
import cn.lili.common.security.context.UserContext; import cn.lili.common.security.context.UserContext;
import cn.lili.common.vo.PageVO; import cn.lili.common.vo.PageVO;
@@ -23,7 +24,7 @@ import org.springframework.web.bind.annotation.*;
*/ */
@RestController @RestController
@Api(tags = "买家端,会员发票接口") @Api(tags = "买家端,会员发票接口")
@RequestMapping("/buyer/member/receipt") @RequestMapping("/buyer/wallet/receipt")
public class MemberReceiptController { public class MemberReceiptController {
@Autowired @Autowired
@@ -35,6 +36,7 @@ public class MemberReceiptController {
return ResultUtil.data(memberReceiptService.getPage(memberReceiptVO, page)); return ResultUtil.data(memberReceiptService.getPage(memberReceiptVO, page));
} }
@PreventDuplicateSubmissions
@ApiOperation(value = "新增会员发票") @ApiOperation(value = "新增会员发票")
@PostMapping @PostMapping
public ResultMessage<Object> add(MemberReceiptAddVO memberReceiptAddVO) { public ResultMessage<Object> add(MemberReceiptAddVO memberReceiptAddVO) {

View File

@@ -1,5 +1,6 @@
package cn.lili.controller.member; package cn.lili.controller.wallet;
import cn.lili.common.aop.annotation.PreventDuplicateSubmissions;
import cn.lili.common.enums.ResultCode; import cn.lili.common.enums.ResultCode;
import cn.lili.common.enums.ResultUtil; import cn.lili.common.enums.ResultUtil;
import cn.lili.common.exception.ServiceException; import cn.lili.common.exception.ServiceException;
@@ -7,12 +8,12 @@ import cn.lili.common.security.AuthUser;
import cn.lili.common.security.context.UserContext; import cn.lili.common.security.context.UserContext;
import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.member.entity.dos.Member; import cn.lili.modules.member.entity.dos.Member;
import cn.lili.modules.member.entity.dos.MemberWallet;
import cn.lili.modules.member.entity.vo.MemberWalletVO;
import cn.lili.modules.member.service.MemberService; import cn.lili.modules.member.service.MemberService;
import cn.lili.modules.member.service.MemberWalletService; import cn.lili.modules.verification.entity.enums.VerificationEnums;
import cn.lili.modules.verification.enums.VerificationEnums;
import cn.lili.modules.verification.service.VerificationService; import cn.lili.modules.verification.service.VerificationService;
import cn.lili.modules.wallet.entity.dos.MemberWallet;
import cn.lili.modules.wallet.entity.vo.MemberWalletVO;
import cn.lili.modules.wallet.service.MemberWalletService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
@@ -34,7 +35,7 @@ import javax.validation.constraints.Pattern;
*/ */
@RestController @RestController
@Api(tags = "买家端,会员余额接口") @Api(tags = "买家端,会员余额接口")
@RequestMapping("/buyer/members/wallet") @RequestMapping("/buyer/wallet/wallet")
public class MemberWalletBuyerController { public class MemberWalletBuyerController {
/** /**
@@ -120,12 +121,13 @@ public class MemberWalletBuyerController {
} }
@PreventDuplicateSubmissions
@PostMapping(value = "/withdrawal") @PostMapping(value = "/withdrawal")
@ApiOperation(value = "会员中心余额提现") @ApiOperation(value = "会员中心余额提现")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = "price", value = "提现金额", required = true, dataType = "double", paramType = "query") @ApiImplicitParam(name = "price", value = "提现金额", required = true, dataType = "double", paramType = "query")
}) })
public ResultMessage<Boolean> withdrawal(@Max(value = 1000, message = "充值金额单次最多允许提现1000") @Min(value = 1, message = "充值金额单次最少提现金额为1元") Double price) { public ResultMessage<Boolean> withdrawal(@Max(value = 9999, message = "充值金额单次最多允许提现9999") @Min(value = 1, message = "充值金额单次最少提现金额为1元") Double price) {
return ResultUtil.data(memberWalletService.applyWithdrawal(price)); return ResultUtil.data(memberWalletService.applyWithdrawal(price));
} }

View File

@@ -1,18 +1,17 @@
package cn.lili.controller.member; package cn.lili.controller.wallet;
import cn.lili.common.enums.ResultUtil; import cn.lili.common.enums.ResultUtil;
import cn.lili.common.security.context.UserContext; import cn.lili.common.security.context.UserContext;
import cn.lili.common.vo.PageVO; import cn.lili.common.vo.PageVO;
import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.member.entity.dos.MemberWithdrawApply; import cn.lili.modules.wallet.entity.dos.MemberWithdrawApply;
import cn.lili.modules.member.entity.vo.MemberWithdrawApplyQueryVO; import cn.lili.modules.wallet.entity.vo.MemberWithdrawApplyQueryVO;
import cn.lili.modules.member.service.MemberWithdrawApplyService; import cn.lili.modules.wallet.service.MemberWithdrawApplyService;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@@ -27,7 +26,6 @@ import org.springframework.web.bind.annotation.RestController;
@RestController @RestController
@Api(tags = "买家端,余额提现记录接口") @Api(tags = "买家端,余额提现记录接口")
@RequestMapping("/buyer/member/withdrawApply") @RequestMapping("/buyer/member/withdrawApply")
@Transactional(rollbackFor = Exception.class)
public class MemberWithdrawApplyBuyerController { public class MemberWithdrawApplyBuyerController {
@Autowired @Autowired
private MemberWithdrawApplyService memberWithdrawApplyService; private MemberWithdrawApplyService memberWithdrawApplyService;

View File

@@ -1,17 +1,16 @@
package cn.lili.controller.member; package cn.lili.controller.wallet;
import cn.lili.common.enums.ResultUtil; import cn.lili.common.enums.ResultUtil;
import cn.lili.common.security.context.UserContext; import cn.lili.common.security.context.UserContext;
import cn.lili.common.vo.PageVO; import cn.lili.common.vo.PageVO;
import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.order.trade.entity.dos.Recharge;
import cn.lili.modules.order.trade.entity.vo.RechargeQueryVO; import cn.lili.modules.order.trade.entity.vo.RechargeQueryVO;
import cn.lili.modules.order.trade.service.RechargeService; import cn.lili.modules.wallet.entity.dos.Recharge;
import cn.lili.modules.wallet.service.RechargeService;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@@ -24,8 +23,7 @@ import org.springframework.web.bind.annotation.RestController;
*/ */
@RestController @RestController
@Api(tags = "买家端,预存款充值记录接口") @Api(tags = "买家端,预存款充值记录接口")
@RequestMapping("/buyer/member/recharge") @RequestMapping("/buyer/wallet/recharge")
@Transactional(rollbackFor = Exception.class)
public class RechargeBuyerController { public class RechargeBuyerController {
@Autowired @Autowired

View File

@@ -1,12 +1,12 @@
package cn.lili.controller.trade; package cn.lili.controller.wallet;
import cn.lili.common.enums.ResultUtil; import cn.lili.common.enums.ResultUtil;
import cn.lili.common.security.AuthUser; import cn.lili.common.security.AuthUser;
import cn.lili.common.security.context.UserContext; import cn.lili.common.security.context.UserContext;
import cn.lili.common.vo.PageVO; import cn.lili.common.vo.PageVO;
import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.order.trade.entity.dos.WalletLog; import cn.lili.modules.wallet.entity.dos.WalletLog;
import cn.lili.modules.order.trade.service.WalletLogService; import cn.lili.modules.wallet.service.WalletLogService;
import cn.lili.mybatis.util.PageUtil; import cn.lili.mybatis.util.PageUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;

View File

@@ -0,0 +1,30 @@
package cn.lili.init;
import cn.lili.modules.search.service.EsGoodsIndexService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;
/**
* @author paulG
* @since 2022/6/9
**/
@Component
@Slf4j
public class EsGoodsIndexInitRunner implements ApplicationRunner {
@Autowired
private EsGoodsIndexService esGoodsIndexService;
@Override
public void run(ApplicationArguments args) {
try {
esGoodsIndexService.initIndex();
} catch (Exception e) {
log.error("检测ES商品索引失败", e);
}
}
}

View File

@@ -3,12 +3,19 @@ server:
servlet: servlet:
context-path: / context-path: /
#
tomcat: # tomcat:
uri-encoding: UTF-8 # #最大链接数默认不设置默认是10000
threads: # max-connections: 6500
min-spare: 50 # #最大等待队列长度允许HTTP请求缓存到请求队列的最大个数默认不限制
max: 1000 # accept-count: 1000
# threads:
# #最少闲置
# min-spare: 50
# #最大线程数 默认是200
# max: 800
netty:
connection-timeout:
# 与Spring Boot 2一样默认情况下大多数端点都不通过http公开我们公开了所有端点。对于生产您应该仔细选择要公开的端点。 # 与Spring Boot 2一样默认情况下大多数端点都不通过http公开我们公开了所有端点。对于生产您应该仔细选择要公开的端点。
management: management:
@@ -43,16 +50,6 @@ spring:
#关闭jackson 对json做解析 #关闭jackson 对json做解析
fail-on-empty-beans: false fail-on-empty-beans: false
# mongodb
data:
mongodb:
uri: 127.0.0.1:27017
database: lilishop
username: root
password: lilishop
authentication-database: admin
# replica-set-name: mongoreplset
# Redis # Redis
redis: redis:
host: 127.0.0.1 host: 127.0.0.1
@@ -79,10 +76,10 @@ spring:
url: jdbc:mysql://127.0.0.1:3306/lilishop?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai url: jdbc:mysql://127.0.0.1:3306/lilishop?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
username: root username: root
password: lilishop password: lilishop
maxActive: 20 maxActive: 50
initialSize: 5 initialSize: 10
maxWait: 60000 maxWait: 60000
minIdle: 5 minIdle: 10
timeBetweenEvictionRunsMillis: 60000 timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000 minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1 FROM DUAL validationQuery: SELECT 1 FROM DUAL
@@ -120,7 +117,7 @@ spring:
props: props:
#是否打印逻辑SQL语句和实际SQL语句建议调试时打印在生产环境关闭 #是否打印逻辑SQL语句和实际SQL语句建议调试时打印在生产环境关闭
sql: sql:
show: true show: false
# 忽略TOKEN 鉴权 的url # 忽略TOKEN 鉴权 的url
ignored: ignored:
@@ -131,21 +128,23 @@ ignored:
- /MP_verify_qSyvBPhDsPdxvOhC.txt - /MP_verify_qSyvBPhDsPdxvOhC.txt
- /weixin/** - /weixin/**
- /source/** - /source/**
- /buyer/mini-program/** - /buyer/payment/cashier/**
- /buyer/cashier/** - /buyer/payment/cashierRefund/**
- /buyer/pageData/** - /buyer/other/pageData/**
- /buyer/article/** - /buyer/other/article/**
- /buyer/goods/** - /buyer/goods/**
- /buyer/category/**
- /buyer/store/** - /buyer/store/**
- /buyer/connect/** - /buyer/passport/connect/**
- /buyer/members/** - /buyer/members/**
- /buyer/passport/member/**
- /buyer/passport/member/refresh/**
- /buyer/promotion/pintuan/** - /buyer/promotion/pintuan/**
- /buyer/promotion/seckill/** - /buyer/promotion/seckill/**
- /buyer/promotion/pointsGoods/** - /buyer/promotion/pointsGoods/**
- /buyer/memberEvaluation/**/goodsEvaluation - /buyer/promotion/coupon
- /buyer/memberEvaluation/**/evaluationNumber - /buyer/member/evaluation/**/goodsEvaluation
- /buyer/appVersion/** - /buyer/member/evaluation/**/evaluationNumber
- /buyer/other/appVersion/**
- /buyer/broadcast/studio/** - /buyer/broadcast/studio/**
- /druid/** - /druid/**
- /swagger-ui.html - /swagger-ui.html
@@ -186,10 +185,8 @@ logging:
config: classpath:logback-spring.xml config: classpath:logback-spring.xml
# 输出级别 # 输出级别
level: level:
cn.lili: debug root: info
org.hibernate: debug
# org.springframework: debug # org.springframework: debug
# org.springframework.data.mongodb.core: debug
file: file:
# 指定路径 # 指定路径
path: lili-logs path: lili-logs

View File

@@ -20,6 +20,23 @@
</encoder> </encoder>
</appender> </appender>
<appender name="RocketmqClientAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_FILE_PATH}/rocketmq.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_FILE_PATH}/rocketmq/rocketmq-%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>30</maxHistory>
<totalSizeCap>30MB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>%d{yy-MM-dd.HH:mm:ss.SSS} [%-16t] %-5p %-22c{0} %X{ServiceId} - %m%n</pattern>
</encoder>
</appender>
<logger name="RocketmqClient" additivity="false">
<level value="info" />
<appender-ref ref="RocketmqClientAppender"/>
</logger>
<!--输出到elk的LOGSTASH--> <!--输出到elk的LOGSTASH-->
<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender"> <appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<!-- 配置elk日志收集 配饰的是 LOGSTASH 的地址--> <!-- 配置elk日志收集 配饰的是 LOGSTASH 的地址-->

View File

@@ -1,7 +1,7 @@
package cn.lili.buyer.test.cart; package cn.lili.buyer.test.cart;
import cn.lili.modules.file.plugin.FileManagerPlugin; import cn.lili.modules.file.plugin.FilePlugin;
import cn.lili.modules.goods.entity.dos.Brand; import cn.lili.modules.goods.entity.dos.Brand;
import cn.lili.modules.goods.service.BrandService; import cn.lili.modules.goods.service.BrandService;
import com.xkcoding.http.util.StringUtil; import com.xkcoding.http.util.StringUtil;
@@ -27,7 +27,7 @@ class FileTest {
@Autowired @Autowired
private FileManagerPlugin fileManagerPlugin; private FilePlugin fileManagerPlugin;
@Autowired @Autowired
private BrandService brandService; private BrandService brandService;

View File

@@ -25,16 +25,6 @@ spring:
admin: admin:
client: client:
url: http://192.168.0.116:8000 url: http://192.168.0.116:8000
# mongodb
data:
mongodb:
host: 192.168.0.116
port: 27017
database: lilishop
username: root
password: lilishop
authentication-database: admin
# replica-set-name: mongoreplset
cache: cache:
type: redis type: redis
#amqp #amqp
@@ -186,7 +176,6 @@ logging:
cn.lili: info cn.lili: info
# org.hibernate: debug # org.hibernate: debug
# org.springframework: debug # org.springframework: debug
# org.springframework.data.mongodb.core: debug
file: file:
# 指定路径 # 指定路径
path: lili-logs path: lili-logs

View File

@@ -15,6 +15,7 @@ import org.springframework.cache.annotation.EnableCaching;
public class CommonApiApplication { public class CommonApiApplication {
public static void main(String[] args) { public static void main(String[] args) {
System.setProperty("rocketmq.client.logUseSlf4j","true");
SpringApplication.run(CommonApiApplication.class, args); SpringApplication.run(CommonApiApplication.class, args);
} }

View File

@@ -2,11 +2,11 @@ package cn.lili.controller.common;
import cn.lili.cache.Cache; import cn.lili.cache.Cache;
import cn.lili.common.enums.ResultCode; import cn.lili.common.enums.ResultCode;
import cn.lili.common.enums.ResultUtil;
import cn.lili.common.exception.ServiceException; import cn.lili.common.exception.ServiceException;
import cn.lili.common.security.AuthUser; import cn.lili.common.security.AuthUser;
import cn.lili.common.security.context.UserContext; import cn.lili.common.security.context.UserContext;
import cn.lili.common.security.enums.UserEnums; import cn.lili.common.security.enums.UserEnums;
import cn.lili.common.enums.ResultUtil;
import cn.lili.common.vo.PageVO; import cn.lili.common.vo.PageVO;
import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.ResultMessage;
import cn.lili.common.vo.SearchVO; import cn.lili.common.vo.SearchVO;
@@ -30,8 +30,8 @@ import java.util.List;
* @since 2020/11/26 15:41 * @since 2020/11/26 15:41
*/ */
@RestController @RestController
@Api(tags = "文件管理管理接口") @Api(tags = "文件管理接口")
@RequestMapping("/common/file") @RequestMapping("/common/common/file")
public class FileController { public class FileController {
@Autowired @Autowired
@@ -78,9 +78,7 @@ public class FileController {
} }
throw new ServiceException(ResultCode.USER_AUTHORITY_ERROR); throw new ServiceException(ResultCode.USER_AUTHORITY_ERROR);
case MANAGER: case MANAGER:
if (file.getUserEnums().equals(authUser.getRole().name())) { break;
break;
}
default: default:
throw new ServiceException(ResultCode.USER_AUTHORITY_ERROR); throw new ServiceException(ResultCode.USER_AUTHORITY_ERROR);
} }

View File

@@ -25,7 +25,7 @@ import org.springframework.web.bind.annotation.RestController;
* 2021-09-16 15:32 * 2021-09-16 15:32
*/ */
@RestController @RestController
@RequestMapping("/common/IM") @RequestMapping("/common/common/IM")
@Api(tags = "IM 中心") @Api(tags = "IM 中心")
public class IMController { public class IMController {
@@ -39,7 +39,7 @@ public class IMController {
try { try {
Setting imSettingVal = settingService.get(SettingEnum.IM_SETTING.name()); Setting imSettingVal = settingService.get(SettingEnum.IM_SETTING.name());
ImSetting imSetting = JSONUtil.toBean(imSettingVal.getSettingValue(), ImSetting.class); ImSetting imSetting = JSONUtil.toBean(imSettingVal.getSettingValue(), ImSetting.class);
imUrl = imSetting.getHttpUrl() + "?tenant_id=" + imSetting.getTenantId()+"&merchant_euid="; imUrl = imSetting.getHttpUrl();
} catch (Exception e) { } catch (Exception e) {
throw new ServiceException(ResultCode.PLATFORM_NOT_SUPPORTED_IM); throw new ServiceException(ResultCode.PLATFORM_NOT_SUPPORTED_IM);
} }

View File

@@ -1,4 +1,4 @@
package cn.lili.controller.member; package cn.lili.controller.common;
import cn.lili.common.utils.IpHelper; import cn.lili.common.utils.IpHelper;
import cn.lili.common.enums.ResultUtil; import cn.lili.common.enums.ResultUtil;
@@ -19,8 +19,8 @@ import javax.servlet.http.HttpServletRequest;
* @since 2020-02-25 14:10:16 * @since 2020-02-25 14:10:16
*/ */
@RestController @RestController
@Api(tags = "管理端,IP接口") @Api(tags = "获取IP信息以及天气")
@RequestMapping("/manager/common/ip") @RequestMapping("/common/common/ip")
public class IpInfoManagerController { public class IpInfoManagerController {
@Autowired @Autowired
private IpHelper ipHelper; private IpHelper ipHelper;

View File

@@ -2,9 +2,9 @@ package cn.lili.controller.common;
import cn.lili.common.enums.ResultUtil; import cn.lili.common.enums.ResultUtil;
import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.system.service.RegionService;
import cn.lili.modules.system.entity.dos.Region; import cn.lili.modules.system.entity.dos.Region;
import cn.lili.modules.system.entity.vo.RegionVO; import cn.lili.modules.system.entity.vo.RegionVO;
import cn.lili.modules.system.service.RegionService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
@@ -22,7 +22,7 @@ import java.util.List;
*/ */
@RestController @RestController
@Api(tags = "地址信息接口") @Api(tags = "地址信息接口")
@RequestMapping("/common/region") @RequestMapping("/common/common/region")
public class RegionController { public class RegionController {
@Autowired @Autowired
@@ -38,6 +38,11 @@ public class RegionController {
return ResultUtil.data(regionService.getRegion(cityCode,townName)); return ResultUtil.data(regionService.getRegion(cityCode,townName));
} }
@GetMapping(value = "/name")
@ApiOperation(value = "根据名字获取地区地址id")
public ResultMessage<String> getItemByLastName(String lastName) {
return ResultUtil.data(regionService.getItemByLastName(lastName));
}
@GetMapping(value = "/item/{id}") @GetMapping(value = "/item/{id}")
@ApiImplicitParam(name = "id", value = "地区ID", required = true, dataType = "String", paramType = "path") @ApiImplicitParam(name = "id", value = "地区ID", required = true, dataType = "String", paramType = "path")

View File

@@ -6,31 +6,30 @@ import cn.lili.modules.system.entity.enums.SettingEnum;
import cn.lili.modules.system.service.SettingService; import cn.lili.modules.system.service.SettingService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/** /**
* 文件管理管理接口 * 站点基础配置获取
* *
* @author Chopper * @author liushuai(liushuai711 @ gmail.com)
* @since 2020/11/26 15:41 * @version v4.0
* @Description:
* @since 2022/9/22 17:49
*/ */
@Slf4j
@RestController @RestController
@Api(tags = "文件管理管理接口") @RequestMapping("/common/common/site")
@RequestMapping("/common/logo") @Api(tags = "站点基础接口")
public class LogoController { public class SiteController {
@Autowired @Autowired
private SettingService settingService; private SettingService settingService;
@ApiOperation(value = "获取logo") @ApiOperation(value = "获取站点基础信息")
@GetMapping @GetMapping
public ResultMessage<Object> getFileList() { public ResultMessage<Object> baseSetting() {
return ResultUtil.data(settingService.get(SettingEnum.BASE_SETTING.name())); return ResultUtil.data(settingService.get(SettingEnum.BASE_SETTING.name()));
} }
} }

View File

@@ -3,7 +3,7 @@ package cn.lili.controller.common;
import cn.lili.cache.limit.annotation.LimitPoint; import cn.lili.cache.limit.annotation.LimitPoint;
import cn.lili.common.enums.ResultUtil; import cn.lili.common.enums.ResultUtil;
import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.verification.enums.VerificationEnums; import cn.lili.modules.verification.entity.enums.VerificationEnums;
import cn.lili.modules.verification.service.VerificationService; import cn.lili.modules.verification.service.VerificationService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@@ -19,7 +19,7 @@ import org.springframework.web.bind.annotation.*;
*/ */
@Slf4j @Slf4j
@RestController @RestController
@RequestMapping("/common/slider") @RequestMapping("/common/common/slider")
@Api(tags = "滑块验证码接口") @Api(tags = "滑块验证码接口")
public class SliderImageController { public class SliderImageController {

View File

@@ -4,8 +4,8 @@ import cn.lili.cache.limit.annotation.LimitPoint;
import cn.lili.common.enums.ResultCode; import cn.lili.common.enums.ResultCode;
import cn.lili.common.enums.ResultUtil; import cn.lili.common.enums.ResultUtil;
import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.system.sms.SmsUtil; import cn.lili.modules.sms.SmsUtil;
import cn.lili.modules.verification.enums.VerificationEnums; import cn.lili.modules.verification.entity.enums.VerificationEnums;
import cn.lili.modules.verification.service.VerificationService; import cn.lili.modules.verification.service.VerificationService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
@@ -22,7 +22,7 @@ import org.springframework.web.bind.annotation.*;
*/ */
@RestController @RestController
@Api(tags = "短信验证码接口") @Api(tags = "短信验证码接口")
@RequestMapping("/common/sms") @RequestMapping("/common/common/sms")
public class SmsController { public class SmsController {
@Autowired @Autowired

View File

@@ -5,7 +5,6 @@ import cn.lili.cache.Cache;
import cn.lili.common.enums.ResultCode; import cn.lili.common.enums.ResultCode;
import cn.lili.common.enums.ResultUtil; import cn.lili.common.enums.ResultUtil;
import cn.lili.common.exception.ServiceException; import cn.lili.common.exception.ServiceException;
import cn.lili.common.properties.SystemSettingProperties;
import cn.lili.common.security.AuthUser; import cn.lili.common.security.AuthUser;
import cn.lili.common.security.context.UserContext; import cn.lili.common.security.context.UserContext;
import cn.lili.common.security.enums.UserEnums; import cn.lili.common.security.enums.UserEnums;
@@ -13,7 +12,8 @@ import cn.lili.common.utils.Base64DecodeMultipartFile;
import cn.lili.common.utils.CommonUtil; import cn.lili.common.utils.CommonUtil;
import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.file.entity.File; import cn.lili.modules.file.entity.File;
import cn.lili.modules.file.plugin.FileManagerPlugin; import cn.lili.modules.file.plugin.FilePlugin;
import cn.lili.modules.file.plugin.FilePluginFactory;
import cn.lili.modules.file.service.FileService; import cn.lili.modules.file.service.FileService;
import cn.lili.modules.system.entity.dos.Setting; import cn.lili.modules.system.entity.dos.Setting;
import cn.lili.modules.system.entity.enums.SettingEnum; import cn.lili.modules.system.entity.enums.SettingEnum;
@@ -40,7 +40,7 @@ import java.util.Objects;
@Slf4j @Slf4j
@RestController @RestController
@Api(tags = "文件上传接口") @Api(tags = "文件上传接口")
@RequestMapping("/common/upload") @RequestMapping("/common/common/upload")
public class UploadController { public class UploadController {
@Autowired @Autowired
@@ -48,13 +48,10 @@ public class UploadController {
@Autowired @Autowired
private SettingService settingService; private SettingService settingService;
@Autowired @Autowired
private FileManagerPlugin fileManagerPlugin; private FilePluginFactory filePluginFactory;
@Autowired @Autowired
private Cache cache; private Cache cache;
@Autowired
private SystemSettingProperties systemSettingProperties;
@ApiOperation(value = "文件上传") @ApiOperation(value = "文件上传")
@PostMapping(value = "/file") @PostMapping(value = "/file")
public ResultMessage<Object> upload(MultipartFile file, public ResultMessage<Object> upload(MultipartFile file,
@@ -90,7 +87,7 @@ public class UploadController {
try { try {
InputStream inputStream = file.getInputStream(); InputStream inputStream = file.getInputStream();
//上传至第三方云服务或服务器 //上传至第三方云服务或服务器
result = fileManagerPlugin.inputStreamUpload(inputStream, fileKey); result = filePluginFactory.filePlugin().inputStreamUpload(inputStream, fileKey);
//保存数据信息至数据库 //保存数据信息至数据库
newFile.setName(file.getOriginalFilename()); newFile.setName(file.getOriginalFilename());
newFile.setFileSize(file.getSize()); newFile.setFileSize(file.getSize());

View File

@@ -1,8 +1,5 @@
package cn.lili.controller.security; package cn.lili.controller.security;
import cn.lili.cache.Cache;
import cn.lili.common.security.CustomAccessDeniedHandler;
import cn.lili.common.properties.IgnoredUrlsProperties;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
@@ -25,19 +22,10 @@ import org.springframework.web.cors.CorsConfigurationSource;
public class CommonSecurityConfig extends WebSecurityConfigurerAdapter { public class CommonSecurityConfig extends WebSecurityConfigurerAdapter {
/**
* 忽略验权配置
*/
@Autowired
private IgnoredUrlsProperties ignoredUrlsProperties;
/** /**
* spring security -》 权限不足处理 * spring security -》 权限不足处理
*/ */
@Autowired @Autowired
private CustomAccessDeniedHandler accessDeniedHandler;
@Autowired
private Cache<String> cache;
@Autowired
private CorsConfigurationSource corsConfigurationSource; private CorsConfigurationSource corsConfigurationSource;
@Override @Override

View File

@@ -29,15 +29,6 @@ spring:
admin: admin:
client: client:
url: http://127.0.0.1:8000 url: http://127.0.0.1:8000
# mongodb
data:
mongodb:
uri: 127.0.0.1:27017
database: lilishop
username: root
password: lilishop
authentication-database: admin
# replica-set-name: mongoreplset
cache: cache:
type: redis type: redis
# Redis # Redis
@@ -117,7 +108,7 @@ spring:
props: props:
#是否打印逻辑SQL语句和实际SQL语句建议调试时打印在生产环境关闭 #是否打印逻辑SQL语句和实际SQL语句建议调试时打印在生产环境关闭
sql: sql:
show: true show: false
# 忽略鉴权url # 忽略鉴权url
ignored: ignored:
@@ -128,24 +119,10 @@ ignored:
- /MP_verify_qSyvBPhDsPdxvOhC.txt - /MP_verify_qSyvBPhDsPdxvOhC.txt
- /weixin/** - /weixin/**
- /source/** - /source/**
- /buyer/mini-program/** - /common/common/slider/**
- /buyer/cashier/** - /common/common/sms/**
- /buyer/pageData/** - /common/common/logo
- /buyer/article/** - /common/common/site
- /buyer/goods/**
- /buyer/category/**
- /buyer/shop/**
- /buyer/connect/**
- /buyer/members/smsLogin
- /buyer/members/refresh/*
- /buyer/members/refresh**
- /buyer/promotion/pintuan
- /buyer/promotion/seckill
- /buyer/memberEvaluation/**/goodsEvaluation
- /buyer/memberEvaluation/**/evaluationNumber
- /store/login/**
- /manager/user/login
- /manager/user/refresh/**
- /druid/** - /druid/**
- /swagger-ui.html - /swagger-ui.html
- /doc.html - /doc.html
@@ -185,10 +162,9 @@ logging:
config: classpath:logback-spring.xml config: classpath:logback-spring.xml
# 输出级别 # 输出级别
level: level:
cn.lili: info root: info
# org.hibernate: debug # org.hibernate: debug
# org.springframework: debug # org.springframework: debug
# org.springframework.data.mongodb.core: debug
file: file:
# 指定路径 # 指定路径
path: lili-logs path: lili-logs

View File

@@ -20,6 +20,22 @@
</encoder> </encoder>
</appender> </appender>
<appender name="RocketmqClientAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_FILE_PATH}/rocketmq.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_FILE_PATH}/rocketmq/rocketmq-%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>30</maxHistory>
<totalSizeCap>30MB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>%d{yy-MM-dd.HH:mm:ss.SSS} [%-16t] %-5p %-22c{0} %X{ServiceId} - %m%n</pattern>
</encoder>
</appender>
<logger name="RocketmqClient" additivity="false">
<level value="info" />
<appender-ref ref="RocketmqClientAppender"/>
</logger>
<!--输出到elk的LOGSTASH--> <!--输出到elk的LOGSTASH-->
<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender"> <appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<!-- 配置elk日志收集 配饰的是 LOGSTASH 的地址--> <!-- 配置elk日志收集 配饰的是 LOGSTASH 的地址-->

View File

@@ -25,20 +25,11 @@ spring:
admin: admin:
client: client:
url: http://192.168.0.116:8000 url: http://192.168.0.116:8000
# mongodb
data:
mongodb:
uri: 192.168.0.116:27017
database: lilishop
username: root
password: lilishop
authentication-database: admin
# replica-set-name: mongoreplset
cache: cache:
type: redis type: redis
# Redis # Redis
redis: redis:
host: 192.168.0.116 host: 127.0.0.1
port: 6379 port: 6379
password: lilishop password: lilishop
lettuce: lettuce:
@@ -69,11 +60,11 @@ spring:
default-datasource: default-datasource:
type: com.alibaba.druid.pool.DruidDataSource type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.cj.jdbc.Driver driverClassName: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://192.168.0.116:3306/lilishop?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai url: jdbc:mysql://127.0.0.1:3306/lilishop?useUnicode=true&characterEncoding=utf-8&useSSL=false&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
username: root username: root
password: lilishop password: lilishop
maxActive: 20 maxActive: 50
initialSize: 5 initialSize: 20
maxWait: 60000 maxWait: 60000
minIdle: 5 minIdle: 5
timeBetweenEvictionRunsMillis: 60000 timeBetweenEvictionRunsMillis: 60000
@@ -124,26 +115,32 @@ ignored:
- /MP_verify_qSyvBPhDsPdxvOhC.txt - /MP_verify_qSyvBPhDsPdxvOhC.txt
- /weixin/** - /weixin/**
- /source/** - /source/**
- /buyer/mini-program/** - /store/passport/login/**
- /buyer/cashier/** - /store/passport/login/refresh/**
- /buyer/pageData/** - /common/common/slider/**
- /buyer/article/** - /common/common/sms/**
- /common/common/site
- /buyer/payment/cashier/**
- /buyer/other/pageData/**
- /buyer/other/article/**
- /buyer/goods/** - /buyer/goods/**
- /buyer/category/**
- /buyer/store/** - /buyer/store/**
- /buyer/connect/** - /buyer/passport/connect/**
- /buyer/members/** - /buyer/members/**
- /buyer/passport/member/**
- /buyer/passport/member/refresh/**
- /buyer/promotion/pintuan/** - /buyer/promotion/pintuan/**
- /buyer/promotion/seckill/** - /buyer/promotion/seckill/**
- /buyer/promotion/pointsGoods/** - /buyer/promotion/pointsGoods/**
- /buyer/promotion/coupon - /buyer/promotion/coupon
- /buyer/memberEvaluation/**/goodsEvaluation - /buyer/member/evaluation/**/goodsEvaluation
- /buyer/memberEvaluation/**/evaluationNumber - /buyer/member/evaluation/**/evaluationNumber
- /buyer/appVersion/** - /buyer/other/appVersion/**
- /buyer/broadcast/studio/** - /buyer/broadcast/studio/**
- /store/login/** - /manager/passport/user/login
- /manager/user/login - /manager/passport/user/refresh/**
- /manager/user/refresh/** - /manager/other/elasticsearch
- /manager/other/customWords
- /druid/** - /druid/**
- /swagger-ui.html - /swagger-ui.html
- /doc.html - /doc.html
@@ -186,7 +183,6 @@ logging:
cn.lili: info cn.lili: info
# org.hibernate: debug # org.hibernate: debug
# org.springframework: debug # org.springframework: debug
# org.springframework.data.mongodb.core: debug
file: file:
# 指定路径 # 指定路径
path: logs path: logs
@@ -232,7 +228,7 @@ lili:
# 0不做脱敏处理 # 0不做脱敏处理
# 1管理端用户手机号等信息脱敏 # 1管理端用户手机号等信息脱敏
# 2商家端信息脱敏为2时表示管理端商家端同时脱敏 # 2商家端信息脱敏为2时表示管理端商家端同时脱敏
# sensitiveLevel: 2 sensitiveLevel: 1
statistics: statistics:
# 在线人数统计 X 小时。这里设置48即统计过去48小时每小时在线人数 # 在线人数统计 X 小时。这里设置48即统计过去48小时每小时在线人数
@@ -273,7 +269,7 @@ lili:
data: data:
elasticsearch: elasticsearch:
cluster-name: elasticsearch cluster-name: elasticsearch
cluster-nodes: 192.168.0.116:9200 cluster-nodes: 127.0.0.1:9200
index: index:
number-of-replicas: 0 number-of-replicas: 0
number-of-shards: 3 number-of-shards: 3
@@ -284,7 +280,7 @@ lili:
# password: LiLiShopES # password: LiLiShopES
logstash: logstash:
server: 192.168.0.116:4560 server: 127.0.0.1:4560
rocketmq: rocketmq:
promotion-topic: lili_promotion_topic promotion-topic: lili_promotion_topic
promotion-group: lili_promotion_group promotion-group: lili_promotion_group
@@ -302,9 +298,10 @@ lili:
notice-group: lili_notice_group notice-group: lili_notice_group
notice-send-topic: lili_send_notice_topic notice-send-topic: lili_send_notice_topic
notice-send-group: lili_send_notice_group notice-send-group: lili_send_notice_group
after-sale-topic: lili_after_sale_topic
after-sale-group: lili_after_sale_group
rocketmq: rocketmq:
name-server: 192.168.0.116:9876 name-server: 127.0.0.1:9876
namesrvAddr: 192.168.0.116:9876
isVIPChannel: false isVIPChannel: false
producer: producer:
group: lili_group group: lili_group
@@ -313,7 +310,7 @@ rocketmq:
xxl: xxl:
job: job:
admin: admin:
addresses: http://192.168.0.116:9001/xxl-job-admin addresses: http://127.0.0.1:9001/xxl-job-admin
executor: executor:
appname: xxl-job-executor-lilishop appname: xxl-job-executor-lilishop
address: address:

View File

@@ -14,6 +14,7 @@ public class ConsumerApplication {
public static void main(String[] args) { public static void main(String[] args) {
System.setProperty("es.set.netty.runtime.available.processors", "false"); System.setProperty("es.set.netty.runtime.available.processors", "false");
System.setProperty("rocketmq.client.logUseSlf4j","true");
SpringApplication.run(ConsumerApplication.class, args); SpringApplication.run(ConsumerApplication.class, args);
} }

View File

@@ -1,7 +1,7 @@
package cn.lili.event; package cn.lili.event;
import cn.lili.modules.order.order.entity.dos.AfterSale; import cn.lili.modules.order.aftersale.entity.dos.AfterSale;
/** /**
* 售后单改变状态 * 售后单改变状态

View File

@@ -0,0 +1,19 @@
package cn.lili.event;
import cn.lili.modules.member.entity.dos.Member;
/**
* 会员登录消息
*
* @author Chopper
* @since 2020/11/17 7:13 下午
*/
public interface MemberLoginEvent {
/**
* 会员登录
*
* @param member 会员
*/
void memberLogin(Member member);
}

View File

@@ -11,7 +11,7 @@ import cn.lili.modules.member.entity.dos.Member;
public interface MemberRegisterEvent { public interface MemberRegisterEvent {
/** /**
* 会员登录 * 会员注册
* *
* @param member 会员 * @param member 会员
*/ */

View File

@@ -1,6 +1,6 @@
package cn.lili.event; package cn.lili.event;
import cn.lili.modules.member.entity.dto.MemberWithdrawalMessage; import cn.lili.modules.wallet.entity.dto.MemberWithdrawalMessage;
/** /**
* 会员提现消息 * 会员提现消息

View File

@@ -7,7 +7,7 @@ import cn.lili.modules.distribution.entity.dos.DistributionOrder;
import cn.lili.modules.distribution.entity.enums.DistributionOrderStatusEnum; import cn.lili.modules.distribution.entity.enums.DistributionOrderStatusEnum;
import cn.lili.modules.distribution.mapper.DistributionOrderMapper; import cn.lili.modules.distribution.mapper.DistributionOrderMapper;
import cn.lili.modules.distribution.service.DistributionOrderService; import cn.lili.modules.distribution.service.DistributionOrderService;
import cn.lili.modules.order.order.entity.dos.AfterSale; import cn.lili.modules.order.aftersale.entity.dos.AfterSale;
import cn.lili.modules.order.order.entity.dto.OrderMessage; import cn.lili.modules.order.order.entity.dto.OrderMessage;
import cn.lili.modules.order.trade.entity.enums.AfterSaleStatusEnum; import cn.lili.modules.order.trade.entity.enums.AfterSaleStatusEnum;
import cn.lili.timetask.handler.EveryDayExecute; import cn.lili.timetask.handler.EveryDayExecute;

View File

@@ -10,6 +10,7 @@ import cn.lili.common.utils.SnowFlake;
import cn.lili.event.OrderStatusChangeEvent; import cn.lili.event.OrderStatusChangeEvent;
import cn.lili.event.TradeEvent; import cn.lili.event.TradeEvent;
import cn.lili.modules.goods.entity.dos.GoodsSku; import cn.lili.modules.goods.entity.dos.GoodsSku;
import cn.lili.modules.goods.entity.enums.GoodsTypeEnum;
import cn.lili.modules.goods.service.GoodsSkuService; import cn.lili.modules.goods.service.GoodsSkuService;
import cn.lili.modules.member.entity.enums.PointTypeEnum; import cn.lili.modules.member.entity.enums.PointTypeEnum;
import cn.lili.modules.member.service.MemberService; import cn.lili.modules.member.service.MemberService;
@@ -18,6 +19,7 @@ import cn.lili.modules.order.cart.entity.vo.CartVO;
import cn.lili.modules.order.order.entity.dos.Order; import cn.lili.modules.order.order.entity.dos.Order;
import cn.lili.modules.order.order.entity.dos.OrderItem; import cn.lili.modules.order.order.entity.dos.OrderItem;
import cn.lili.modules.order.order.entity.dto.OrderMessage; import cn.lili.modules.order.order.entity.dto.OrderMessage;
import cn.lili.modules.order.order.entity.dto.OrderSearchParams;
import cn.lili.modules.order.order.entity.dto.PriceDetailDTO; import cn.lili.modules.order.order.entity.dto.PriceDetailDTO;
import cn.lili.modules.order.order.entity.enums.*; import cn.lili.modules.order.order.entity.enums.*;
import cn.lili.modules.order.order.service.OrderItemService; import cn.lili.modules.order.order.service.OrderItemService;
@@ -26,7 +28,7 @@ import cn.lili.modules.order.trade.entity.dos.OrderLog;
import cn.lili.modules.order.trade.service.OrderLogService; import cn.lili.modules.order.trade.service.OrderLogService;
import cn.lili.modules.promotion.service.MemberCouponService; import cn.lili.modules.promotion.service.MemberCouponService;
import cn.lili.rocketmq.RocketmqSendCallbackBuilder; import cn.lili.rocketmq.RocketmqSendCallbackBuilder;
import cn.lili.rocketmq.tags.MqOrderTagsEnum; import cn.lili.rocketmq.tags.OrderTagsEnum;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.spring.core.RocketMQTemplate; import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -34,6 +36,7 @@ import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
/** /**
* 订单状态处理类 * 订单状态处理类
@@ -82,7 +85,7 @@ public class FullDiscountExecute implements TradeEvent, OrderStatusChangeEvent {
if ((cartVO.getGiftList() != null && !cartVO.getGiftList().isEmpty()) if ((cartVO.getGiftList() != null && !cartVO.getGiftList().isEmpty())
|| (cartVO.getGiftPoint() != null && cartVO.getGiftPoint() > 0) || (cartVO.getGiftPoint() != null && cartVO.getGiftPoint() > 0)
|| (cartVO.getGiftCouponList() != null && !cartVO.getGiftCouponList().isEmpty())) { || (cartVO.getGiftCouponList() != null && !cartVO.getGiftCouponList().isEmpty())) {
cache.put(CachePrefix.ORDER.getPrefix() + cartVO.getSn(), cartVO); cache.put(CachePrefix.ORDER.getPrefix() + cartVO.getSn(), JSONUtil.toJsonStr(cartVO));
} }
} }
); );
@@ -90,9 +93,19 @@ public class FullDiscountExecute implements TradeEvent, OrderStatusChangeEvent {
@Override @Override
public void orderChange(OrderMessage orderMessage) { public void orderChange(OrderMessage orderMessage) {
//如果订单已支付
if (orderMessage.getNewStatus().equals(OrderStatusEnum.PAID)) { if (orderMessage.getNewStatus().equals(OrderStatusEnum.PAID)) {
log.debug("满减活动,订单状态操作 {}", CachePrefix.ORDER.getPrefix() + orderMessage.getOrderSn()); log.debug("满减活动,订单状态操作 {}", CachePrefix.ORDER.getPrefix() + orderMessage.getOrderSn());
renderGift((CartVO) cache.get(CachePrefix.ORDER.getPrefix() + orderMessage.getOrderSn()), orderMessage); renderGift(JSONUtil.toBean(cache.getString(CachePrefix.ORDER.getPrefix() + orderMessage.getOrderSn()), CartVO.class), orderMessage);
} else if (orderMessage.getNewStatus().equals(OrderStatusEnum.CANCELLED)) {
log.debug("满减活动,取消订单状态操作 {}", CachePrefix.ORDER.getPrefix() + orderMessage.getOrderSn());
OrderSearchParams searchParams = new OrderSearchParams();
searchParams.setParentOrderSn(orderMessage.getOrderSn());
searchParams.setOrderPromotionType(OrderPromotionTypeEnum.GIFT.name());
List<Order> orders = orderService.queryListByParams(searchParams);
if (orders != null && !orders.isEmpty()) {
orderService.systemCancel(orders.get(0).getSn(),"主订单取消,赠送订单字段自动取消");
}
} }
} }
@@ -142,58 +155,97 @@ public class FullDiscountExecute implements TradeEvent, OrderStatusChangeEvent {
* @param originOrder 赠品原订单信息 * @param originOrder 赠品原订单信息
*/ */
private void generatorGiftOrder(List<String> skuIds, Order originOrder) { private void generatorGiftOrder(List<String> skuIds, Order originOrder) {
//获取赠品列表
List<GoodsSku> goodsSkus = goodsSkuService.getGoodsSkuByIdFromCache(skuIds);
//赠品判定
if (goodsSkus == null || goodsSkus.isEmpty()) {
log.error("赠品不存在:{}", skuIds);
return;
}
//赠品分类,分为实体商品/虚拟商品/电子卡券
List<GoodsSku> physicalSkus = goodsSkus.stream().filter(goodsSku -> goodsSku.getGoodsType().equals(GoodsTypeEnum.PHYSICAL_GOODS.name())).collect(Collectors.toList());
List<GoodsSku> virtualSkus = goodsSkus.stream().filter(goodsSku -> goodsSku.getGoodsType().equals(GoodsTypeEnum.VIRTUAL_GOODS.name())).collect(Collectors.toList());
List<GoodsSku> eCouponSkus = goodsSkus.stream().filter(goodsSku -> goodsSku.getGoodsType().equals(GoodsTypeEnum.E_COUPON.name())).collect(Collectors.toList());
//如果赠品不为空,则生成对应的赠品订单
if (!physicalSkus.isEmpty()) {
giftOrderHandler(physicalSkus, originOrder, OrderTypeEnum.NORMAL);
}
if (!virtualSkus.isEmpty()) {
giftOrderHandler(virtualSkus, originOrder, OrderTypeEnum.VIRTUAL);
}
if (!eCouponSkus.isEmpty()) {
giftOrderHandler(eCouponSkus, originOrder, OrderTypeEnum.E_COUPON);
}
}
/**
* 赠品订单处理
*
* @param skuList 赠品列表
* @param originOrder 原始订单
* @param orderTypeEnum 订单类型
*/
private void giftOrderHandler(List<GoodsSku> skuList, Order originOrder, OrderTypeEnum orderTypeEnum) {
//初始化订单对象/订单日志/自订单
Order order = new Order();
List<OrderItem> orderItems = new ArrayList<>(); List<OrderItem> orderItems = new ArrayList<>();
List<OrderLog> orderLogs = new ArrayList<>(); List<OrderLog> orderLogs = new ArrayList<>();
Order order = new Order(); //初始化价格详情
PriceDetailDTO priceDetailDTO = new PriceDetailDTO(); PriceDetailDTO priceDetailDTO = new PriceDetailDTO();
//复制通用属性
BeanUtil.copyProperties(originOrder, order, "id"); BeanUtil.copyProperties(originOrder, order, "id");
BeanUtil.copyProperties(priceDetailDTO, order, "id"); BeanUtil.copyProperties(priceDetailDTO, order, "id");
//生成订单参数
order.setSn(SnowFlake.createStr("G")); order.setSn(SnowFlake.createStr("G"));
order.setOrderType(OrderPromotionTypeEnum.GIFT.name()); order.setParentOrderSn(originOrder.getSn());
order.setOrderPromotionType(OrderPromotionTypeEnum.GIFT.name());
order.setOrderStatus(OrderStatusEnum.UNPAID.name()); order.setOrderStatus(OrderStatusEnum.UNPAID.name());
order.setPayStatus(PayStatusEnum.PAID.name()); order.setPayStatus(PayStatusEnum.PAID.name());
order.setDeliverStatus(DeliverStatusEnum.UNDELIVERED.name()); order.setOrderType(orderTypeEnum.name());
order.setNeedReceipt(false); order.setNeedReceipt(false);
order.setPriceDetailDTO(priceDetailDTO); order.setPriceDetailDTO(priceDetailDTO);
order.setClientType(originOrder.getClientType()); order.setClientType(originOrder.getClientType());
//订单日志
String message = "赠品订单[" + order.getSn() + "]创建"; String message = "赠品订单[" + order.getSn() + "]创建";
orderLogs.add(new OrderLog(order.getSn(), originOrder.getMemberId(), UserEnums.MEMBER.name(), originOrder.getMemberName(), message)); orderLogs.add(new OrderLog(order.getSn(), originOrder.getMemberId(), UserEnums.MEMBER.name(), originOrder.getMemberName(), message));
for (String skuId : skuIds) { //生成子订单
GoodsSku goodsSkuByIdFromCache = goodsSkuService.getGoodsSkuByIdFromCache(skuId); for (GoodsSku goodsSku : skuList) {
OrderItem orderItem = new OrderItem(); OrderItem orderItem = new OrderItem();
BeanUtil.copyProperties(goodsSkuByIdFromCache, orderItem, "id"); BeanUtil.copyProperties(goodsSku, orderItem, "id");
BeanUtil.copyProperties(priceDetailDTO, orderItem, "id"); BeanUtil.copyProperties(priceDetailDTO, orderItem, "id");
orderItem.setAfterSaleStatus(OrderItemAfterSaleStatusEnum.NEW.name()); orderItem.setAfterSaleStatus(OrderItemAfterSaleStatusEnum.NEW.name());
orderItem.setCommentStatus(CommentStatusEnum.NEW.name()); orderItem.setCommentStatus(CommentStatusEnum.NEW.name());
orderItem.setComplainStatus(OrderComplaintStatusEnum.NEW.name()); orderItem.setComplainStatus(OrderComplaintStatusEnum.NEW.name());
orderItem.setNum(1); orderItem.setNum(1);
orderItem.setOrderSn(order.getSn()); orderItem.setOrderSn(order.getSn());
orderItem.setImage(goodsSkuByIdFromCache.getThumbnail()); orderItem.setImage(goodsSku.getThumbnail());
orderItem.setGoodsName(goodsSkuByIdFromCache.getGoodsName()); orderItem.setGoodsName(goodsSku.getGoodsName());
orderItem.setSkuId(goodsSkuByIdFromCache.getId()); orderItem.setSkuId(goodsSku.getId());
orderItem.setCategoryId(goodsSkuByIdFromCache.getCategoryPath().substring( orderItem.setCategoryId(goodsSku.getCategoryPath().substring(
goodsSkuByIdFromCache.getCategoryPath().lastIndexOf(",") + 1 goodsSku.getCategoryPath().lastIndexOf(",") + 1
)); ));
orderItem.setGoodsPrice(goodsSkuByIdFromCache.getPrice()); orderItem.setGoodsPrice(goodsSku.getPrice());
orderItem.setPriceDetailDTO(priceDetailDTO); orderItem.setPriceDetailDTO(priceDetailDTO);
orderItems.add(orderItem); orderItems.add(orderItem);
} }
//保存订单
orderService.save(order); orderService.save(order);
orderItemService.saveBatch(orderItems); orderItemService.saveBatch(orderItems);
orderLogService.saveBatch(orderLogs); orderLogService.saveBatch(orderLogs);
//发送订单已付款消息 //发送订单已付款消息PS:不在这里处理逻辑是因为期望加交给消费者统一处理库存等等问题)
OrderMessage orderMessage = new OrderMessage(); OrderMessage orderMessage = new OrderMessage();
orderMessage.setOrderSn(order.getSn()); orderMessage.setOrderSn(order.getSn());
orderMessage.setPaymentMethod(order.getPaymentMethod()); orderMessage.setPaymentMethod(order.getPaymentMethod());
orderMessage.setNewStatus(OrderStatusEnum.PAID); orderMessage.setNewStatus(OrderStatusEnum.PAID);
String destination = rocketmqCustomProperties.getOrderTopic() + ":" + MqOrderTagsEnum.STATUS_CHANGE.name(); String destination = rocketmqCustomProperties.getOrderTopic() + ":" + OrderTagsEnum.STATUS_CHANGE.name();
//发送订单变更mq消息 //发送订单变更mq消息
rocketMQTemplate.asyncSend(destination, JSONUtil.toJsonStr(orderMessage), RocketmqSendCallbackBuilder.commonCallback()); rocketMQTemplate.asyncSend(destination, JSONUtil.toJsonStr(orderMessage), RocketmqSendCallbackBuilder.commonCallback());
} }
} }

View File

@@ -0,0 +1,65 @@
package cn.lili.event.impl;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.text.CharSequenceUtil;
import cn.lili.event.AfterSaleStatusChangeEvent;
import cn.lili.event.OrderStatusChangeEvent;
import cn.lili.modules.order.aftersale.entity.dos.AfterSale;
import cn.lili.modules.order.order.entity.dos.Order;
import cn.lili.modules.order.order.entity.dto.OrderMessage;
import cn.lili.modules.order.order.entity.enums.OrderStatusEnum;
import cn.lili.modules.order.order.service.OrderService;
import cn.lili.modules.order.trade.entity.enums.AfterSaleStatusEnum;
import cn.lili.modules.promotion.service.MemberCouponService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* 会员优惠券执行类
*
* @author paulG
* @since 2022/8/12
**/
@Service
public class MemberCouponExecute implements OrderStatusChangeEvent, AfterSaleStatusChangeEvent {
/**
* 订单
*/
@Autowired
private OrderService orderService;
@Autowired
private MemberCouponService memberCouponService;
@Override
public void orderChange(OrderMessage orderMessage) {
// 订单取消返还优惠券
if (orderMessage.getNewStatus() == OrderStatusEnum.CANCELLED) {
this.refundCoupon(orderMessage.getOrderSn());
}
}
@Override
public void afterSaleStatusChange(AfterSale afterSale) {
// 售后完成返还优惠券
if (afterSale.getServiceStatus().equals(AfterSaleStatusEnum.COMPLETE.name())) {
this.refundCoupon(afterSale.getOrderSn());
}
}
/**
* 退款返还优惠券
* @param orderSn 订单编号
*/
private void refundCoupon(String orderSn) {
Order order = orderService.getBySn(orderSn);
if (CharSequenceUtil.isNotEmpty(order.getUseStoreMemberCouponIds())) {
memberCouponService.recoveryMemberCoupon(ListUtil.toList(order.getUseStoreMemberCouponIds().split(",")));
}
if (CharSequenceUtil.isNotEmpty(order.getUsePlatformMemberCouponId())) {
memberCouponService.recoveryMemberCoupon(ListUtil.toList(order.getUsePlatformMemberCouponId().split(",")));
}
}
}

View File

@@ -0,0 +1,25 @@
package cn.lili.event.impl;
import cn.lili.event.MemberLoginEvent;
import cn.lili.modules.member.entity.dos.Member;
import cn.lili.modules.member.service.MemberService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* 会员自身业务
*
* @author Chopper
* @version v1.0
* 2022-01-11 11:08
*/
@Service
public class MemberExecute implements MemberLoginEvent {
@Autowired
private MemberService memberService;
@Override
public void memberLogin(Member member) {
memberService.updateMemberLoginTime(member.getId());
}
}

View File

@@ -1,9 +1,8 @@
package cn.lili.event.impl; package cn.lili.event.impl;
import cn.hutool.core.convert.Convert; import cn.hutool.core.text.CharSequenceUtil;
import cn.lili.common.utils.CurrencyUtil; import cn.lili.common.utils.CurrencyUtil;
import cn.lili.common.utils.StringUtils;
import cn.lili.event.AfterSaleStatusChangeEvent; import cn.lili.event.AfterSaleStatusChangeEvent;
import cn.lili.event.GoodsCommentCompleteEvent; import cn.lili.event.GoodsCommentCompleteEvent;
import cn.lili.event.MemberRegisterEvent; import cn.lili.event.MemberRegisterEvent;
@@ -12,11 +11,10 @@ import cn.lili.modules.member.entity.dos.Member;
import cn.lili.modules.member.entity.dos.MemberEvaluation; import cn.lili.modules.member.entity.dos.MemberEvaluation;
import cn.lili.modules.member.entity.enums.PointTypeEnum; import cn.lili.modules.member.entity.enums.PointTypeEnum;
import cn.lili.modules.member.service.MemberService; import cn.lili.modules.member.service.MemberService;
import cn.lili.modules.order.order.entity.dos.AfterSale; import cn.lili.modules.order.aftersale.entity.dos.AfterSale;
import cn.lili.modules.order.order.entity.dos.Order; import cn.lili.modules.order.order.entity.dos.Order;
import cn.lili.modules.order.order.entity.dto.OrderMessage; import cn.lili.modules.order.order.entity.dto.OrderMessage;
import cn.lili.modules.order.order.entity.enums.OrderPromotionTypeEnum; import cn.lili.modules.order.order.entity.enums.OrderPromotionTypeEnum;
import cn.lili.modules.order.order.entity.enums.OrderStatusEnum;
import cn.lili.modules.order.order.entity.enums.PayStatusEnum; import cn.lili.modules.order.order.entity.enums.PayStatusEnum;
import cn.lili.modules.order.order.service.OrderService; import cn.lili.modules.order.order.service.OrderService;
import cn.lili.modules.order.trade.entity.enums.AfterSaleStatusEnum; import cn.lili.modules.order.trade.entity.enums.AfterSaleStatusEnum;
@@ -105,14 +103,18 @@ public class MemberPointExecute implements MemberRegisterEvent, GoodsCommentComp
} }
case COMPLETED: { case COMPLETED: {
Order order = orderService.getBySn(orderMessage.getOrderSn()); Order order = orderService.getBySn(orderMessage.getOrderSn());
//根据订单编号获取订单数据,如果订单促销类型不为空,并且订单促销类型为积分订单 则直接返回 //如果是积分订单 则直接返回
if (StringUtils.isNotEmpty(order.getOrderPromotionType()) && order.getOrderPromotionType().equals(OrderPromotionTypeEnum.POINTS.name())) { if (CharSequenceUtil.isNotEmpty(order.getOrderPromotionType())
&& order.getOrderPromotionType().equals(OrderPromotionTypeEnum.POINTS.name())) {
return; return;
} }
//获取积分设置 //获取积分设置
PointSetting pointSetting = getPointSetting(); PointSetting pointSetting = getPointSetting();
if (pointSetting.getConsumer() == 0) {
return;
}
//计算赠送积分数量 //计算赠送积分数量
Double point = CurrencyUtil.mul(pointSetting.getMoney(), order.getFlowPrice(), 0); Double point = CurrencyUtil.mul(pointSetting.getConsumer(), order.getFlowPrice(), 0);
//赠送会员积分 //赠送会员积分
memberService.updateMemberPoint(point.longValue(), PointTypeEnum.INCREASE.name(), order.getMemberId(), "会员下单,赠送积分" + point + ""); memberService.updateMemberPoint(point.longValue(), PointTypeEnum.INCREASE.name(), order.getMemberId(), "会员下单,赠送积分" + point + "");
break; break;

View File

@@ -3,8 +3,7 @@ package cn.lili.event.impl;
import cn.lili.event.MemberRegisterEvent; import cn.lili.event.MemberRegisterEvent;
import cn.lili.modules.member.entity.dos.Member; import cn.lili.modules.member.entity.dos.Member;
import cn.lili.modules.member.service.MemberWalletService; import cn.lili.modules.wallet.service.MemberWalletService;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -22,6 +21,7 @@ public class MemberWalletExecute implements MemberRegisterEvent {
@Override @Override
public void memberRegister(Member member) { public void memberRegister(Member member) {
memberWalletService.save(member.getId(),member.getUsername()); // 有些情况下会同时创建一个member_id的两条数据
// memberWalletService.save(member.getId(),member.getUsername());
} }
} }

View File

@@ -2,22 +2,22 @@ package cn.lili.event.impl;
import cn.lili.event.*; import cn.lili.event.*;
import cn.lili.modules.member.entity.dto.MemberPointMessage; import cn.lili.modules.member.entity.dto.MemberPointMessage;
import cn.lili.modules.member.entity.dto.MemberWithdrawalMessage;
import cn.lili.modules.member.entity.enums.MemberWithdrawalDestinationEnum;
import cn.lili.modules.member.entity.enums.PointTypeEnum; import cn.lili.modules.member.entity.enums.PointTypeEnum;
import cn.lili.modules.member.entity.enums.WithdrawStatusEnum;
import cn.lili.modules.message.entity.dto.NoticeMessageDTO; import cn.lili.modules.message.entity.dto.NoticeMessageDTO;
import cn.lili.modules.message.entity.enums.NoticeMessageNodeEnum; import cn.lili.modules.message.entity.enums.NoticeMessageNodeEnum;
import cn.lili.modules.message.entity.enums.NoticeMessageParameterEnum; import cn.lili.modules.message.entity.enums.NoticeMessageParameterEnum;
import cn.lili.modules.message.service.NoticeMessageService; import cn.lili.modules.message.service.NoticeMessageService;
import cn.lili.modules.order.aftersale.entity.dos.AfterSale;
import cn.lili.modules.order.cart.entity.dto.TradeDTO; import cn.lili.modules.order.cart.entity.dto.TradeDTO;
import cn.lili.modules.order.order.entity.dos.AfterSale;
import cn.lili.modules.order.order.entity.dto.OrderMessage; import cn.lili.modules.order.order.entity.dto.OrderMessage;
import cn.lili.modules.order.order.entity.enums.OrderPromotionTypeEnum; import cn.lili.modules.order.order.entity.enums.OrderPromotionTypeEnum;
import cn.lili.modules.order.order.entity.vo.OrderDetailVO; import cn.lili.modules.order.order.entity.vo.OrderDetailVO;
import cn.lili.modules.order.order.service.OrderService; import cn.lili.modules.order.order.service.OrderService;
import cn.lili.modules.order.trade.entity.enums.AfterSaleStatusEnum; import cn.lili.modules.order.trade.entity.enums.AfterSaleStatusEnum;
import cn.lili.modules.order.trade.entity.enums.AfterSaleTypeEnum; import cn.lili.modules.order.trade.entity.enums.AfterSaleTypeEnum;
import cn.lili.modules.wallet.entity.dto.MemberWithdrawalMessage;
import cn.lili.modules.wallet.entity.enums.MemberWithdrawalDestinationEnum;
import cn.lili.modules.wallet.entity.enums.WithdrawStatusEnum;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;

View File

@@ -8,7 +8,6 @@ import cn.lili.modules.order.order.entity.dos.Receipt;
import cn.lili.modules.order.order.entity.vo.OrderVO; import cn.lili.modules.order.order.entity.vo.OrderVO;
import cn.lili.modules.order.order.entity.vo.ReceiptVO; import cn.lili.modules.order.order.entity.vo.ReceiptVO;
import cn.lili.modules.order.order.service.ReceiptService; import cn.lili.modules.order.order.service.ReceiptService;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -34,25 +33,23 @@ public class OrderCreateReceiptExecute implements TradeEvent {
//获取发票信息 //获取发票信息
ReceiptVO receiptVO = tradeDTO.getReceiptVO(); ReceiptVO receiptVO = tradeDTO.getReceiptVO();
//如果需要获取发票则保存发票信息 //如果需要获取发票则保存发票信息
if (tradeDTO.getNeedReceipt()) { if (Boolean.TRUE.equals(tradeDTO.getNeedReceipt()) && !orderList.isEmpty()) {
if (orderList.size() > 0) { List<Receipt> receipts = new ArrayList<>();
List<Receipt> receipts = new ArrayList<>(); for (OrderVO orderVO : orderList) {
for (OrderVO orderVO : orderList) { Receipt receipt = new Receipt();
Receipt receipt = new Receipt(); BeanUtil.copyProperties(receiptVO, receipt);
BeanUtil.copyProperties(receiptVO, receipt); receipt.setMemberId(orderVO.getMemberId());
receipt.setMemberId(orderVO.getMemberId()); receipt.setMemberName(orderVO.getMemberName());
receipt.setMemberName(orderVO.getMemberName()); receipt.setStoreId(orderVO.getStoreId());
receipt.setStoreId(orderVO.getStoreId()); receipt.setStoreName(orderVO.getStoreName());
receipt.setStoreName(orderVO.getStoreName()); receipt.setOrderSn(orderVO.getSn());
receipt.setOrderSn(orderVO.getSn()); receipt.setReceiptDetail(JSONUtil.toJsonStr(orderVO.getOrderItems()));
receipt.setReceiptDetail(JSONUtil.toJsonStr(orderVO.getOrderItems())); receipt.setReceiptPrice(orderVO.getFlowPrice());
receipt.setReceiptPrice(orderVO.getFlowPrice()); receipt.setReceiptStatus(0);
receipt.setReceiptStatus(0); receipts.add(receipt);
receipts.add(receipt);
}
//保存发票
receiptService.saveBatch(receipts);
} }
//保存发票
receiptService.saveBatch(receipts);
} }
} }
} }

View File

@@ -5,6 +5,7 @@ import cn.lili.common.utils.SpringContextUtil;
import cn.lili.event.OrderStatusChangeEvent; import cn.lili.event.OrderStatusChangeEvent;
import cn.lili.modules.order.order.entity.dos.Order; import cn.lili.modules.order.order.entity.dos.Order;
import cn.lili.modules.order.order.entity.dto.OrderMessage; import cn.lili.modules.order.order.entity.dto.OrderMessage;
import cn.lili.modules.order.order.entity.enums.OrderStatusEnum;
import cn.lili.modules.order.order.entity.enums.PayStatusEnum; import cn.lili.modules.order.order.entity.enums.PayStatusEnum;
import cn.lili.modules.order.order.service.OrderService; import cn.lili.modules.order.order.service.OrderService;
import cn.lili.modules.payment.entity.RefundLog; import cn.lili.modules.payment.entity.RefundLog;
@@ -33,52 +34,32 @@ public class PaymentExecute implements OrderStatusChangeEvent {
@Override @Override
public void orderChange(OrderMessage orderMessage) { public void orderChange(OrderMessage orderMessage) {
switch (orderMessage.getNewStatus()) { if (orderMessage.getNewStatus() == OrderStatusEnum.CANCELLED) {
case CANCELLED: Order order = orderService.getBySn(orderMessage.getOrderSn());
Order order = orderService.getBySn(orderMessage.getOrderSn());
//如果未付款,则不去要退回相关代码执行 //如果未付款,则不去要退回相关代码执行
if (order.getPayStatus().equals(PayStatusEnum.UNPAID.name())) { if (order.getPayStatus().equals(PayStatusEnum.UNPAID.name())) {
return; return;
} }
PaymentMethodEnum paymentMethodEnum = PaymentMethodEnum.valueOf(order.getPaymentMethod()); PaymentMethodEnum paymentMethodEnum = PaymentMethodEnum.valueOf(order.getPaymentMethod());
//进行退款操作
switch (paymentMethodEnum) {
case WALLET:
case ALIPAY:
case WECHAT:
//获取支付方式
Payment payment =
(Payment) SpringContextUtil.getBean(paymentMethodEnum.getPlugin());
RefundLog refundLog = RefundLog.builder() //获取支付方式
.isRefund(false) Payment payment =
.totalAmount(order.getFlowPrice()) (Payment) SpringContextUtil.getBean(paymentMethodEnum.getPlugin());
.payPrice(order.getFlowPrice())
.memberId(order.getMemberId()) RefundLog refundLog = RefundLog.builder()
.paymentName(order.getPaymentMethod()) .isRefund(false)
.afterSaleNo("订单取消") .totalAmount(order.getFlowPrice())
.orderSn(order.getSn()) .payPrice(order.getFlowPrice())
.paymentReceivableNo(order.getReceivableNo()) .memberId(order.getMemberId())
.outOrderNo("AF" + SnowFlake.getIdStr()) .paymentName(order.getPaymentMethod())
.outOrderNo("AF" + SnowFlake.getIdStr()) .afterSaleNo("订单取消")
.refundReason("订单取消") .orderSn(order.getSn())
.build(); .paymentReceivableNo(order.getReceivableNo())
payment.cancel(refundLog); .outOrderNo("AF" + SnowFlake.getIdStr())
break; .refundReason("订单取消")
case BANK_TRANSFER: .build();
break; payment.refund(refundLog);
default:
log.error("订单支付执行异常,订单编号:{}", orderMessage.getOrderSn());
break;
}
break;
default:
break;
} }
} }
} }

View File

@@ -4,9 +4,10 @@ import cn.lili.event.MemberRegisterEvent;
import cn.lili.modules.member.entity.dos.Member; import cn.lili.modules.member.entity.dos.Member;
import cn.lili.modules.promotion.entity.dos.CouponActivity; import cn.lili.modules.promotion.entity.dos.CouponActivity;
import cn.lili.modules.promotion.entity.enums.CouponActivityTypeEnum; import cn.lili.modules.promotion.entity.enums.CouponActivityTypeEnum;
import cn.lili.modules.promotion.entity.enums.PromotionStatusEnum; import cn.lili.modules.promotion.entity.enums.PromotionsStatusEnum;
import cn.lili.modules.promotion.service.CouponActivityService; import cn.lili.modules.promotion.service.CouponActivityService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import cn.lili.modules.promotion.tools.PromotionTools;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@@ -32,10 +33,9 @@ public class RegisteredCouponActivityExecute implements MemberRegisterEvent {
*/ */
@Override @Override
public void memberRegister(Member member) { public void memberRegister(Member member) {
List<CouponActivity> couponActivities = couponActivityService.list(new LambdaQueryWrapper<CouponActivity>() List<CouponActivity> couponActivities = couponActivityService.list(new QueryWrapper<CouponActivity>()
.eq(CouponActivity::getCouponActivityType, CouponActivityTypeEnum.REGISTERED.name()) .eq("coupon_activity_type", CouponActivityTypeEnum.REGISTERED.name())
.eq(CouponActivity::getPromotionStatus, PromotionStatusEnum.START.name())); .and(PromotionTools.queryPromotionStatus(PromotionsStatusEnum.START)));
couponActivityService.registered(couponActivities, member); couponActivityService.registered(couponActivities, member);
} }
} }

View File

@@ -14,17 +14,22 @@ import cn.lili.modules.order.order.service.OrderService;
import cn.lili.modules.promotion.entity.dos.KanjiaActivity; import cn.lili.modules.promotion.entity.dos.KanjiaActivity;
import cn.lili.modules.promotion.entity.dos.PromotionGoods; import cn.lili.modules.promotion.entity.dos.PromotionGoods;
import cn.lili.modules.promotion.entity.dto.KanjiaActivityGoodsDTO; import cn.lili.modules.promotion.entity.dto.KanjiaActivityGoodsDTO;
import cn.lili.modules.promotion.entity.dto.search.PromotionGoodsSearchParams;
import cn.lili.modules.promotion.entity.vos.PointsGoodsVO; import cn.lili.modules.promotion.entity.vos.PointsGoodsVO;
import cn.lili.modules.promotion.service.*; import cn.lili.modules.promotion.service.KanjiaActivityGoodsService;
import cn.lili.modules.promotion.service.KanjiaActivityService;
import cn.lili.modules.promotion.service.PointsGoodsService;
import cn.lili.modules.promotion.service.PromotionGoodsService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.core.script.DefaultRedisScript; import org.springframework.data.redis.core.script.DefaultRedisScript;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects;
/** /**
* 库存扣减,他表示了订单状态是否出库成功 * 库存扣减,他表示了订单状态是否出库成功
@@ -62,11 +67,6 @@ public class StockUpdateExecute implements OrderStatusChangeEvent {
*/ */
@Autowired @Autowired
private PromotionGoodsService promotionGoodsService; private PromotionGoodsService promotionGoodsService;
/**
* 促销商品
*/
@Autowired
private SeckillApplyService seckillApplyService;
/** /**
* 缓存 * 缓存
*/ */
@@ -79,10 +79,9 @@ public class StockUpdateExecute implements OrderStatusChangeEvent {
private KanjiaActivityGoodsService kanjiaActivityGoodsService; private KanjiaActivityGoodsService kanjiaActivityGoodsService;
@Autowired @Autowired
private PointsGoodsService pointsGoodsService; private PointsGoodsService pointsGoodsService;
@Autowired
private MongoTemplate mongoTemplate;
@Override @Override
@Transactional(rollbackFor = Exception.class)
public void orderChange(OrderMessage orderMessage) { public void orderChange(OrderMessage orderMessage) {
switch (orderMessage.getNewStatus()) { switch (orderMessage.getNewStatus()) {
@@ -158,14 +157,11 @@ public class StockUpdateExecute implements OrderStatusChangeEvent {
* @param stocks * @param stocks
*/ */
private void checkStocks(List<Integer> stocks, OrderDetailVO order) { private void checkStocks(List<Integer> stocks, OrderDetailVO order) {
for (int i = 0; i < stocks.size(); i++) { if (!stocks.isEmpty() && order.getOrderItems().size() == stocks.size() && stocks.stream().anyMatch(Objects::nonNull)) {
if (null == stocks.get(i)) { return;
initSkuCache(order.getOrderItems());
initPromotionCache(order.getOrderItems());
return;
}
} }
initSkuCache(order.getOrderItems());
initPromotionCache(order.getOrderItems());
} }
/** /**
@@ -202,10 +198,10 @@ public class StockUpdateExecute implements OrderStatusChangeEvent {
switch (promotionTypeEnum) { switch (promotionTypeEnum) {
case KANJIA: case KANJIA:
cache.put(cacheKey, kanjiaActivityGoodsService.getKanJiaGoodsBySku(orderItem.getSkuId()).getStock().intValue()); cache.put(cacheKey, kanjiaActivityGoodsService.getKanjiaGoodsBySkuId(orderItem.getSkuId()).getStock());
return; return;
case POINTS_GOODS: case POINTS_GOODS:
cache.put(cacheKey, pointsGoodsService.getPointsGoodsVOByMongo(orderItem.getSkuId()).getActiveStock().intValue()); cache.put(cacheKey, pointsGoodsService.getPointsGoodsDetailBySkuId(orderItem.getSkuId()).getActiveStock());
return; return;
case SECKILL: case SECKILL:
case PINTUAN: case PINTUAN:
@@ -294,23 +290,27 @@ public class StockUpdateExecute implements OrderStatusChangeEvent {
kanjiaActivityGoodsDTO.setStock(stock); kanjiaActivityGoodsDTO.setStock(stock);
kanjiaActivityGoodsService.updateById(kanjiaActivityGoodsDTO); kanjiaActivityGoodsService.updateById(kanjiaActivityGoodsDTO);
this.mongoTemplate.save(kanjiaActivityGoodsDTO);
//修改积分商品库存 //修改积分商品库存
} else if (promotionTypeEnum.equals(PromotionTypeEnum.POINTS_GOODS)) { } else if (promotionTypeEnum.equals(PromotionTypeEnum.POINTS_GOODS)) {
PointsGoodsVO pointsGoodsVO = pointsGoodsService.getPointsGoodsDetail(orderItem.getPromotionId()); PointsGoodsVO pointsGoodsVO = pointsGoodsService.getPointsGoodsDetail(orderItem.getPromotionId());
Integer stock = Integer.parseInt(cache.get(PromotionGoodsService.getPromotionGoodsStockCacheKey(promotionTypeEnum, orderItem.getPromotionId(), orderItem.getSkuId())).toString()); Integer stock = Integer.parseInt(cache.get(PromotionGoodsService.getPromotionGoodsStockCacheKey(promotionTypeEnum, orderItem.getPromotionId(), orderItem.getSkuId())).toString());
pointsGoodsVO.setActiveStock(stock); pointsGoodsVO.setActiveStock(stock);
pointsGoodsService.updateById(pointsGoodsVO); pointsGoodsService.updateById(pointsGoodsVO);
this.mongoTemplate.save(pointsGoodsVO);
} else { } else {
PromotionGoods pGoods = promotionGoodsService.getPromotionGoods(promotionTypeEnum, orderItem.getPromotionId(), orderItem.getSkuId()); PromotionGoodsSearchParams searchParams = new PromotionGoodsSearchParams();
searchParams.setPromotionType(promotionTypeEnum.name());
searchParams.setPromotionId(orderItem.getPromotionId());
searchParams.setSkuId(orderItem.getSkuId());
PromotionGoods pGoods = promotionGoodsService.getPromotionsGoods(searchParams);
//记录需要更新的促销库存信息 //记录需要更新的促销库存信息
promotionKey.add( promotionKey.add(
PromotionGoodsService.getPromotionGoodsStockCacheKey( PromotionGoodsService.getPromotionGoodsStockCacheKey(
promotionTypeEnum, promotionTypeEnum,
orderItem.getPromotionId(), orderItem.getSkuId()) orderItem.getPromotionId(), orderItem.getSkuId())
); );
promotionGoods.add(pGoods); if (pGoods != null) {
promotionGoods.add(pGoods);
}
} }
} }
goodsSkus.add(goodsSku); goodsSkus.add(goodsSku);
@@ -333,7 +333,7 @@ public class StockUpdateExecute implements OrderStatusChangeEvent {
Integer num = promotionGoods.get(i).getNum(); Integer num = promotionGoods.get(i).getNum();
promotionGoods.get(i).setNum((num != null ? num : 0) + order.getOrder().getGoodsNum()); promotionGoods.get(i).setNum((num != null ? num : 0) + order.getOrder().getGoodsNum());
} }
promotionGoodsService.updateBatchById(promotionGoods); promotionGoodsService.updatePromotionGoodsStock(promotionGoods);
} }
//商品库存包含sku库存集合批量更新商品库存相关 //商品库存包含sku库存集合批量更新商品库存相关
goodsSkuService.updateGoodsStuck(goodsSkus); goodsSkuService.updateGoodsStuck(goodsSkus);
@@ -358,6 +358,7 @@ public class StockUpdateExecute implements OrderStatusChangeEvent {
skuKeys.add(GoodsSkuService.getStockCacheKey(orderItem.getSkuId())); skuKeys.add(GoodsSkuService.getStockCacheKey(orderItem.getSkuId()));
GoodsSku goodsSku = new GoodsSku(); GoodsSku goodsSku = new GoodsSku();
goodsSku.setId(orderItem.getSkuId()); goodsSku.setId(orderItem.getSkuId());
goodsSku.setGoodsId(orderItem.getGoodsId());
goodsSkus.add(goodsSku); goodsSkus.add(goodsSku);
} }
//批量获取商品库存 //批量获取商品库存

View File

@@ -2,10 +2,10 @@ package cn.lili.event.impl;
import cn.lili.event.OrderStatusChangeEvent; import cn.lili.event.OrderStatusChangeEvent;
import cn.lili.event.TradeEvent; import cn.lili.event.TradeEvent;
import cn.lili.modules.message.util.WechatMessageUtil;
import cn.lili.modules.order.cart.entity.dto.TradeDTO; import cn.lili.modules.order.cart.entity.dto.TradeDTO;
import cn.lili.modules.order.order.entity.dto.OrderMessage; import cn.lili.modules.order.order.entity.dto.OrderMessage;
import cn.lili.modules.order.order.entity.vo.OrderVO; import cn.lili.modules.order.order.entity.vo.OrderVO;
import cn.lili.modules.wechat.util.WechatMessageUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;

View File

@@ -0,0 +1,34 @@
package cn.lili.init;
import cn.lili.modules.system.service.SensitiveWordsService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;
/**
* SensitiveWordsInit
*
* @author Chopper
* @version v1.0
* 2021-11-29 11:38
*/
@Slf4j
@Component
public class SensitiveWordsInit implements ApplicationRunner {
@Autowired
private SensitiveWordsService sensitiveWordsService;
/**
* consumer 启动时,实时更新一下过滤词
*
* @param args 启动参数
*/
@Override
public void run(ApplicationArguments args) {
sensitiveWordsService.resetCache();
}
}

View File

@@ -1,9 +1,9 @@
package cn.lili.listener; package cn.lili.listener;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import cn.lili.rocketmq.tags.AfterSaleTagsEnum;
import cn.lili.event.AfterSaleStatusChangeEvent; import cn.lili.event.AfterSaleStatusChangeEvent;
import cn.lili.modules.order.order.entity.dos.AfterSale; import cn.lili.modules.order.aftersale.entity.dos.AfterSale;
import cn.lili.rocketmq.tags.AfterSaleTagsEnum;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.common.message.MessageExt; import org.apache.rocketmq.common.message.MessageExt;
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener; import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
@@ -17,7 +17,6 @@ import java.util.List;
* 售后通知 * 售后通知
* *
* @author paulG * @author paulG
* @since 2020/12/9
*/ */
@Slf4j @Slf4j
@Component @Component

View File

@@ -3,52 +3,45 @@ package cn.lili.listener;
import cn.hutool.core.map.MapUtil; import cn.hutool.core.map.MapUtil;
import cn.hutool.core.text.CharSequenceUtil; import cn.hutool.core.text.CharSequenceUtil;
import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.ClassLoaderUtil;
import cn.hutool.json.JSONObject; import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import cn.lili.common.properties.RocketmqCustomProperties; import cn.lili.common.aop.annotation.RetryOperation;
import cn.lili.common.exception.RetryException;
import cn.lili.event.GoodsCommentCompleteEvent; import cn.lili.event.GoodsCommentCompleteEvent;
import cn.lili.modules.distribution.entity.dos.DistributionGoods; import cn.lili.modules.distribution.entity.dos.DistributionGoods;
import cn.lili.modules.distribution.entity.dos.DistributionSelectedGoods; import cn.lili.modules.distribution.entity.dto.DistributionGoodsSearchParams;
import cn.lili.modules.distribution.service.DistributionGoodsService; import cn.lili.modules.distribution.service.DistributionGoodsService;
import cn.lili.modules.distribution.service.DistributionSelectedGoodsService; import cn.lili.modules.distribution.service.DistributionSelectedGoodsService;
import cn.lili.modules.goods.entity.dos.Brand; import cn.lili.modules.goods.entity.dos.*;
import cn.lili.modules.goods.entity.dos.Category;
import cn.lili.modules.goods.entity.dos.Goods;
import cn.lili.modules.goods.entity.dos.GoodsSku;
import cn.lili.modules.goods.entity.dto.GoodsCompleteMessage; import cn.lili.modules.goods.entity.dto.GoodsCompleteMessage;
import cn.lili.modules.goods.entity.dto.GoodsParamsDTO; import cn.lili.modules.goods.entity.dto.GoodsParamsDTO;
import cn.lili.modules.goods.entity.dto.GoodsSearchParams;
import cn.lili.modules.goods.entity.enums.GoodsAuthEnum; import cn.lili.modules.goods.entity.enums.GoodsAuthEnum;
import cn.lili.modules.goods.entity.enums.GoodsStatusEnum; import cn.lili.modules.goods.entity.enums.GoodsStatusEnum;
import cn.lili.modules.goods.service.BrandService; import cn.lili.modules.goods.service.*;
import cn.lili.modules.goods.service.CategoryService;
import cn.lili.modules.goods.service.GoodsService;
import cn.lili.modules.goods.service.GoodsSkuService;
import cn.lili.modules.member.entity.dos.FootPrint; import cn.lili.modules.member.entity.dos.FootPrint;
import cn.lili.modules.member.entity.dos.MemberEvaluation; import cn.lili.modules.member.entity.dos.MemberEvaluation;
import cn.lili.modules.member.service.FootprintService; import cn.lili.modules.member.service.FootprintService;
import cn.lili.modules.member.service.GoodsCollectionService; import cn.lili.modules.member.service.GoodsCollectionService;
import cn.lili.modules.promotion.entity.dos.BasePromotions;
import cn.lili.modules.promotion.entity.dos.PromotionGoods;
import cn.lili.modules.promotion.entity.dto.search.PromotionGoodsSearchParams;
import cn.lili.modules.promotion.entity.enums.PromotionsScopeTypeEnum;
import cn.lili.modules.promotion.service.PromotionGoodsService;
import cn.lili.modules.promotion.service.PromotionService;
import cn.lili.modules.search.entity.dos.EsGoodsIndex; import cn.lili.modules.search.entity.dos.EsGoodsIndex;
import cn.lili.modules.search.service.EsGoodsIndexService; import cn.lili.modules.search.service.EsGoodsIndexService;
import cn.lili.modules.search.utils.EsIndexUtil;
import cn.lili.modules.store.entity.dos.StoreGoodsLabel;
import cn.lili.modules.store.service.StoreGoodsLabelService;
import cn.lili.modules.store.service.StoreService;
import cn.lili.rocketmq.RocketmqSendCallbackBuilder;
import cn.lili.rocketmq.tags.GoodsTagsEnum; import cn.lili.rocketmq.tags.GoodsTagsEnum;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.common.message.MessageExt; import org.apache.rocketmq.common.message.MessageExt;
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener; import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener; import org.apache.rocketmq.spring.core.RocketMQListener;
import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.ArrayList; import java.util.*;
import java.util.Arrays; import java.util.stream.Collectors;
import java.util.List;
import java.util.Map;
/** /**
* 商品消息 * 商品消息
@@ -66,11 +59,6 @@ public class GoodsMessageListener implements RocketMQListener<MessageExt> {
*/ */
@Autowired @Autowired
private EsGoodsIndexService goodsIndexService; private EsGoodsIndexService goodsIndexService;
/**
* 店铺
*/
@Autowired
private StoreService storeService;
/** /**
* 商品 * 商品
*/ */
@@ -122,18 +110,14 @@ public class GoodsMessageListener implements RocketMQListener<MessageExt> {
@Autowired @Autowired
private StoreGoodsLabelService storeGoodsLabelService; private StoreGoodsLabelService storeGoodsLabelService;
/**
* rocketMq
*/
@Autowired @Autowired
private RocketMQTemplate rocketMQTemplate; private PromotionService promotionService;
/**
* rocketMq配置
*/
@Autowired @Autowired
private RocketmqCustomProperties rocketmqCustomProperties; private PromotionGoodsService promotionGoodsService;
@Override @Override
@RetryOperation
public void onMessage(MessageExt messageExt) { public void onMessage(MessageExt messageExt) {
switch (GoodsTagsEnum.valueOf(messageExt.getTags())) { switch (GoodsTagsEnum.valueOf(messageExt.getTags())) {
@@ -145,20 +129,46 @@ public class GoodsMessageListener implements RocketMQListener<MessageExt> {
//生成索引 //生成索引
case GENERATOR_GOODS_INDEX: case GENERATOR_GOODS_INDEX:
try { try {
String goodsJsonStr = new String(messageExt.getBody()); String goodsId = new String(messageExt.getBody());
Goods goods = JSONUtil.toBean(goodsJsonStr, Goods.class); log.info("生成索引: {}", goodsId);
updateGoodsIndex(goods); Goods goods = this.goodsService.getById(goodsId);
this.updateGoodsIndex(goods);
} catch (Exception e) { } catch (Exception e) {
log.error("生成商品索引事件执行异常,商品信息 {}", new String(messageExt.getBody())); log.error("生成商品索引事件执行异常,商品信息: " + new String(messageExt.getBody()), e);
}
break;
case GENERATOR_STORE_GOODS_INDEX:
try {
String storeId = new String(messageExt.getBody());
this.updateGoodsIndex(storeId);
} catch (Exception e) {
log.error("生成店铺商品索引事件执行异常,商品信息: " + new String(messageExt.getBody()), e);
}
break;
case UPDATE_GOODS_INDEX_PROMOTIONS:
this.updateGoodsIndexPromotions(new String(messageExt.getBody()));
break;
case DELETE_GOODS_INDEX_PROMOTIONS:
JSONObject jsonObject = JSONUtil.parseObj(new String(messageExt.getBody()));
String promotionKey = jsonObject.getStr("promotionKey");
if (CharSequenceUtil.isEmpty(promotionKey)) {
break;
}
if (CharSequenceUtil.isNotEmpty(jsonObject.getStr("scopeId"))) {
this.goodsIndexService.deleteEsGoodsPromotionByPromotionKey(Arrays.asList(jsonObject.getStr("scopeId").split(",")), promotionKey);
} else {
this.goodsIndexService.deleteEsGoodsPromotionByPromotionKey(promotionKey);
} }
break; break;
case UPDATE_GOODS_INDEX: case UPDATE_GOODS_INDEX:
try { try {
String goodsIdsJsonStr = new String(messageExt.getBody()); String goodsIdsJsonStr = new String(messageExt.getBody());
List<Goods> goodsList = goodsService.list(new LambdaQueryWrapper<Goods>().in(Goods::getId, JSONUtil.toList(goodsIdsJsonStr, String.class))); GoodsSearchParams searchParams = new GoodsSearchParams();
searchParams.setId(ArrayUtil.join(JSONUtil.toList(goodsIdsJsonStr, String.class).toArray(), ","));
List<Goods> goodsList = goodsService.queryListByParams(searchParams);
this.updateGoodsIndex(goodsList); this.updateGoodsIndex(goodsList);
} catch (Exception e) { } catch (Exception e) {
log.error("更新商品索引事件执行异常,商品信息 {}", new String(messageExt.getBody())); log.error("更新商品索引事件执行异常,商品信息: " + new String(messageExt.getBody()), e);
} }
break; break;
case UPDATE_GOODS_INDEX_FIELD: case UPDATE_GOODS_INDEX_FIELD:
@@ -171,7 +181,7 @@ public class GoodsMessageListener implements RocketMQListener<MessageExt> {
Map<String, Object> updateFields = updateIndexFields.get("updateFields", Map.class); Map<String, Object> updateFields = updateIndexFields.get("updateFields", Map.class);
goodsIndexService.updateIndex(queryFields, updateFields); goodsIndexService.updateIndex(queryFields, updateFields);
} catch (Exception e) { } catch (Exception e) {
log.error("更新商品索引事件执行异常,商品信息 {}", new String(messageExt.getBody())); log.error("更新商品索引事件执行异常,商品信息: " + new String(messageExt.getBody()), e);
} }
break; break;
case RESET_GOODS_INDEX: case RESET_GOODS_INDEX:
@@ -180,17 +190,30 @@ public class GoodsMessageListener implements RocketMQListener<MessageExt> {
List<EsGoodsIndex> goodsIndices = JSONUtil.toList(goodsIdsJsonStr, EsGoodsIndex.class); List<EsGoodsIndex> goodsIndices = JSONUtil.toList(goodsIdsJsonStr, EsGoodsIndex.class);
goodsIndexService.updateBulkIndex(goodsIndices); goodsIndexService.updateBulkIndex(goodsIndices);
} catch (Exception e) { } catch (Exception e) {
log.error("重置商品索引事件执行异常,商品信息 {}", new String(messageExt.getBody())); log.error("重置商品索引事件执行异常,商品信息: " + new String(messageExt.getBody()), e);
} }
break; break;
//审核商品 //审核商品
case GOODS_AUDIT: case GOODS_AUDIT:
updateGoodsNum(messageExt); Goods goods = JSONUtil.toBean(new String(messageExt.getBody()), Goods.class);
updateGoodsIndex(goods);
break; break;
//删除商品 //删除商品
case GOODS_DELETE: case GOODS_DELETE:
deleteGoods(messageExt); try {
updateGoodsNum(messageExt); String goodsIdsJsonStr = new String(messageExt.getBody());
for (String goodsId : JSONUtil.toList(goodsIdsJsonStr, String.class)) {
goodsIndexService.deleteIndex(MapUtil.builder(new HashMap<String, Object>()).put("goodsId", goodsId).build());
}
promotionService.removeByGoodsIds(goodsIdsJsonStr);
} catch (Exception e) {
log.error("删除商品索引事件执行异常,商品信息: " + new String(messageExt.getBody()), e);
}
break;
case DOWN:
String goodsIdsJsonStr = new String(messageExt.getBody());
promotionService.removeByGoodsIds(goodsIdsJsonStr);
break; break;
//规格删除 //规格删除
case SKU_DELETE: case SKU_DELETE:
@@ -198,9 +221,15 @@ public class GoodsMessageListener implements RocketMQListener<MessageExt> {
List<String> skuIds = JSONUtil.toList(message, String.class); List<String> skuIds = JSONUtil.toList(message, String.class);
goodsCollectionService.deleteSkuCollection(skuIds); goodsCollectionService.deleteSkuCollection(skuIds);
break; break;
//收藏商品 case STORE_GOODS_DELETE:
case GOODS_COLLECTION: try {
storeService.updateStoreCollectionNum(new String(messageExt.getBody())); String storeId = new String(messageExt.getBody());
goodsIndexService.deleteIndex(MapUtil.builder(new HashMap<String, Object>()).put("storeId", storeId).build());
} catch (RetryException re) {
throw re;
} catch (Exception e) {
log.error("删除店铺商品索引事件执行异常,商品信息: " + new String(messageExt.getBody()), e);
}
break; break;
//商品评价 //商品评价
case GOODS_COMMENT_COMPLETE: case GOODS_COMMENT_COMPLETE:
@@ -226,35 +255,64 @@ public class GoodsMessageListener implements RocketMQListener<MessageExt> {
} }
} }
private void updateGoodsIndexPromotions(String promotionsJsonStr) {
try {
log.info("更新商品索引促销信息: {}", promotionsJsonStr);
JSONObject jsonObject = JSONUtil.parseObj(promotionsJsonStr);
// 转换为详细的促销信息(注:促销信息必须继承自 BasePromotions且必须保证派生类存在与sdk包下
BasePromotions promotions = (BasePromotions) jsonObject.get("promotions",
ClassLoaderUtil.loadClass(jsonObject.get("promotionsType").toString()));
// 获取促销唯一key,由 促销类型 + 促销id 组成
String esPromotionKey = jsonObject.get("esPromotionKey").toString();
if (PromotionsScopeTypeEnum.PORTION_GOODS.name().equals(promotions.getScopeType())) {
PromotionGoodsSearchParams searchParams = new PromotionGoodsSearchParams();
searchParams.setPromotionId(promotions.getId());
List<PromotionGoods> promotionGoodsList = this.promotionGoodsService.listFindAll(searchParams);
List<String> skuIds = promotionGoodsList.stream().map(PromotionGoods::getSkuId).collect(Collectors.toList());
// 更新商品索引促销信息(删除原索引中相关的促销信息,更新索引中促销信息)
this.goodsIndexService.deleteEsGoodsPromotionByPromotionKey(skuIds, esPromotionKey);
this.goodsIndexService.updateEsGoodsIndexByList(promotionGoodsList, promotions, esPromotionKey);
} else if (PromotionsScopeTypeEnum.PORTION_GOODS_CATEGORY.name().equals(promotions.getScopeType())) {
GoodsSearchParams searchParams = new GoodsSearchParams();
searchParams.setCategoryPath(promotions.getScopeId());
List<GoodsSku> goodsSkuByList = this.goodsSkuService.getGoodsSkuByList(searchParams);
List<String> skuIds = goodsSkuByList.stream().map(GoodsSku::getId).collect(Collectors.toList());
// 更新商品索引促销信息(删除原索引中相关的促销信息,更新索引中促销信息)
this.goodsIndexService.deleteEsGoodsPromotionByPromotionKey(skuIds, esPromotionKey);
this.goodsIndexService.updateEsGoodsIndexPromotions(skuIds, promotions, esPromotionKey);
} else if (PromotionsScopeTypeEnum.ALL.name().equals(promotions.getScopeType())) {
this.goodsIndexService.updateEsGoodsIndexAllByList(promotions, esPromotionKey);
}
} catch (Exception e) {
log.error("生成商品索引促销信息执行异常", e);
}
}
/** /**
* 更新商品索引 * 更新商品索引
* *
* @param goodsList 商品列表消息 * @param goodsList 商品列表消息
*/ */
private void updateGoodsIndex(List<Goods> goodsList) { private void updateGoodsIndex(List<Goods> goodsList) {
List<EsGoodsIndex> goodsIndices = new ArrayList<>();
for (Goods goods : goodsList) { for (Goods goods : goodsList) {
//如果商品通过审核&&并且已上架 this.updateGoodsIndex(goods);
List<GoodsSku> goodsSkuList = this.goodsSkuService.list(new LambdaQueryWrapper<GoodsSku>().eq(GoodsSku::getGoodsId, goods.getId()).gt(GoodsSku::getQuantity, 0));
if (goods.getIsAuth().equals(GoodsAuthEnum.PASS.name())
&& goods.getMarketEnable().equals(GoodsStatusEnum.UPPER.name())
&& Boolean.FALSE.equals(goods.getDeleteFlag())) {
goodsSkuList.forEach(goodsSku -> {
EsGoodsIndex goodsIndex = this.settingUpGoodsIndexData(goods, goodsSku);
goodsIndices.add(goodsIndex);
});
}
//如果商品状态值不支持es搜索那么将商品信息做下架处理
else {
for (GoodsSku goodsSku : goodsSkuList) {
EsGoodsIndex esGoodsOld = goodsIndexService.findById(goodsSku.getId());
if (esGoodsOld != null) {
goodsIndexService.deleteIndexById(goodsSku.getId());
}
}
}
} }
goodsIndexService.updateBulkIndex(goodsIndices); }
/**
* 更新商品索引根据店铺id
*
* @param storeId 店铺id
*/
private void updateGoodsIndex(String storeId) {
//如果商品通过审核&&并且已上架
GoodsSearchParams searchParams = new GoodsSearchParams();
searchParams.setStoreId(storeId);
for (Goods goods : this.goodsService.queryListByParams(searchParams)) {
this.updateGoodsIndex(goods);
}
} }
/** /**
@@ -264,8 +322,12 @@ public class GoodsMessageListener implements RocketMQListener<MessageExt> {
*/ */
private void updateGoodsIndex(Goods goods) { private void updateGoodsIndex(Goods goods) {
//如果商品通过审核&&并且已上架 //如果商品通过审核&&并且已上架
List<GoodsSku> goodsSkuList = this.goodsSkuService.list(new LambdaQueryWrapper<GoodsSku>().eq(GoodsSku::getGoodsId, goods.getId())); GoodsSearchParams searchParams = new GoodsSearchParams();
if (goods.getIsAuth().equals(GoodsAuthEnum.PASS.name()) searchParams.setGoodsId(goods.getId());
List<GoodsSku> goodsSkuList = this.goodsSkuService.getGoodsSkuByList(searchParams);
log.info("goods{}", goods);
log.info("goodsSkuList{}", goodsSkuList);
if (goods.getAuthFlag().equals(GoodsAuthEnum.PASS.name())
&& goods.getMarketEnable().equals(GoodsStatusEnum.UPPER.name()) && goods.getMarketEnable().equals(GoodsStatusEnum.UPPER.name())
&& Boolean.FALSE.equals(goods.getDeleteFlag())) { && Boolean.FALSE.equals(goods.getDeleteFlag())) {
this.generatorGoodsIndex(goods, goodsSkuList); this.generatorGoodsIndex(goods, goodsSkuList);
@@ -289,18 +351,19 @@ public class GoodsMessageListener implements RocketMQListener<MessageExt> {
*/ */
private void generatorGoodsIndex(Goods goods, List<GoodsSku> goodsSkuList) { private void generatorGoodsIndex(Goods goods, List<GoodsSku> goodsSkuList) {
int skuSource = 100; int skuSource = 100;
List<EsGoodsIndex> esGoodsIndices = new ArrayList<>();
for (GoodsSku goodsSku : goodsSkuList) { for (GoodsSku goodsSku : goodsSkuList) {
EsGoodsIndex esGoodsOld = goodsIndexService.findById(goodsSku.getId());
EsGoodsIndex goodsIndex = this.settingUpGoodsIndexData(goods, goodsSku); EsGoodsIndex goodsIndex = this.settingUpGoodsIndexData(goods, goodsSku);
goodsIndex.setSkuSource(skuSource--); goodsIndex.setSkuSource(skuSource--);
log.info("goodsSku{}", goodsSku);
//如果商品库存不为0并且es中有数据 //如果商品库存不为0并且es中有数据
if (goodsSku.getQuantity() > 0 && esGoodsOld == null) { if (goodsSku.getQuantity() > 0) {
log.info("生成商品索引 {}", goodsIndex); log.info("生成商品索引 {}", goodsIndex);
this.goodsIndexService.addIndex(goodsIndex); esGoodsIndices.add(goodsIndex);
} else if (goodsSku.getQuantity() > 0 && esGoodsOld != null) {
goodsIndexService.updateIndex(goodsIndex);
} }
} }
this.goodsIndexService.deleteIndex(MapUtil.builder(new HashMap<String, Object>()).put("goodsId", goods.getId()).build());
this.goodsIndexService.addIndex(esGoodsIndices);
} }
private EsGoodsIndex settingUpGoodsIndexData(Goods goods, GoodsSku goodsSku) { private EsGoodsIndex settingUpGoodsIndexData(Goods goods, GoodsSku goodsSku) {
@@ -309,7 +372,7 @@ public class GoodsMessageListener implements RocketMQListener<MessageExt> {
List<GoodsParamsDTO> goodsParamDTOS = JSONUtil.toList(goods.getParams(), GoodsParamsDTO.class); List<GoodsParamsDTO> goodsParamDTOS = JSONUtil.toList(goods.getParams(), GoodsParamsDTO.class);
goodsIndex = new EsGoodsIndex(goodsSku, goodsParamDTOS); goodsIndex = new EsGoodsIndex(goodsSku, goodsParamDTOS);
} }
goodsIndex.setIsAuth(goods.getIsAuth()); goodsIndex.setAuthFlag(goods.getAuthFlag());
goodsIndex.setMarketEnable(goods.getMarketEnable()); goodsIndex.setMarketEnable(goods.getMarketEnable());
this.settingUpGoodsIndexOtherParam(goodsIndex); this.settingUpGoodsIndexOtherParam(goodsIndex);
return goodsIndex; return goodsIndex;
@@ -336,6 +399,11 @@ public class GoodsMessageListener implements RocketMQListener<MessageExt> {
goodsIndex.setStoreCategoryNamePath(ArrayUtil.join(storeGoodsLabels.stream().map(StoreGoodsLabel::getLabelName).toArray(), ",")); goodsIndex.setStoreCategoryNamePath(ArrayUtil.join(storeGoodsLabels.stream().map(StoreGoodsLabel::getLabelName).toArray(), ","));
} }
} }
if (goodsIndex.getOriginPromotionMap() == null || goodsIndex.getOriginPromotionMap().isEmpty()) {
Map<String, Object> goodsCurrentPromotionMap = promotionService.getGoodsSkuPromotionMap(goodsIndex.getStoreId(), goodsIndex.getId());
goodsIndex.setPromotionMapJson(JSONUtil.toJsonStr(goodsCurrentPromotionMap));
}
} }
@@ -345,38 +413,22 @@ public class GoodsMessageListener implements RocketMQListener<MessageExt> {
* 2.删除分销员-分销商品绑定关系 * 2.删除分销员-分销商品绑定关系
* 3.删除分销商品 * 3.删除分销商品
* *
* @param messageExt 消息 * @param goods 消息
*/ */
private void deleteGoods(MessageExt messageExt) { private void deleteGoods(Goods goods) {
Goods goods = JSONUtil.toBean(new String(messageExt.getBody()), Goods.class);
DistributionGoodsSearchParams searchParams = new DistributionGoodsSearchParams();
searchParams.setGoodsId(goods.getId());
//删除获取分销商品 //删除获取分销商品
DistributionGoods distributionGoods = distributionGoodsService.getOne(new LambdaQueryWrapper<DistributionGoods>() DistributionGoods distributionGoods = distributionGoodsService.getDistributionGoods(searchParams);
.eq(DistributionGoods::getGoodsId, goods.getId()));
//删除分销商品绑定关系 if (distributionGoods != null) {
distributionSelectedGoodsService.remove(new LambdaQueryWrapper<DistributionSelectedGoods>()
.eq(DistributionSelectedGoods::getDistributionGoodsId, distributionGoods.getId()));
//删除分销商品 //删除分销商品绑定关系
distributionGoodsService.removeById(distributionGoods.getId()); distributionSelectedGoodsService.deleteByDistributionGoodsId(distributionGoods.getId());
}
/** //删除分销商品
* 修改商品数量 distributionGoodsService.removeById(distributionGoods.getId());
*
* @param messageExt 信息体
*/
private void updateGoodsNum(MessageExt messageExt) {
Goods goods;
try {
goods = JSONUtil.toBean(new String(messageExt.getBody()), Goods.class);
//更新店铺商品数量
assert goods != null;
storeService.updateStoreGoodsNum(goods.getStoreId());
} catch (Exception e) {
log.error("商品MQ信息错误{}", messageExt.toString());
} }
} }
@@ -399,9 +451,7 @@ public class GoodsMessageListener implements RocketMQListener<MessageExt> {
goods.setBuyCount(0); goods.setBuyCount(0);
} }
int buyCount = goods.getBuyCount() + goodsCompleteMessage.getBuyNum(); int buyCount = goods.getBuyCount() + goodsCompleteMessage.getBuyNum();
goodsService.update(new LambdaUpdateWrapper<Goods>() this.goodsService.updateGoodsBuyCount(goodsCompleteMessage.getGoodsId(), buyCount);
.eq(Goods::getId, goodsCompleteMessage.getGoodsId())
.set(Goods::getBuyCount, buyCount));
} else { } else {
log.error("商品Id为[" + goodsCompleteMessage.getGoodsId() + "的商品不存在,更新商品失败!"); log.error("商品Id为[" + goodsCompleteMessage.getGoodsId() + "的商品不存在,更新商品失败!");
} }
@@ -415,13 +465,10 @@ public class GoodsMessageListener implements RocketMQListener<MessageExt> {
goodsSku.setBuyCount(buyCount); goodsSku.setBuyCount(buyCount);
goodsSkuService.update(goodsSku); goodsSkuService.update(goodsSku);
//修改规格索引,发送mq消息 this.goodsIndexService.updateIndex(
Map<String, Object> updateIndexFieldsMap = EsIndexUtil.getUpdateIndexFieldsMap( MapUtil.builder(new HashMap<String, Object>()).put("id", goodsCompleteMessage.getSkuId()).build(),
MapUtil.builder().put("id", goodsCompleteMessage.getSkuId()).build(), MapUtil.builder(new HashMap<String, Object>()).put("buyCount", buyCount).build());
MapUtil.builder().put("buyCount", buyCount).build());
String destination = rocketmqCustomProperties.getGoodsTopic() + ":" + GoodsTagsEnum.UPDATE_GOODS_INDEX_FIELD.name();
rocketMQTemplate.asyncSend(destination, JSONUtil.toJsonStr(updateIndexFieldsMap), RocketmqSendCallbackBuilder.commonCallback());
goodsIndexService.updateIndex(goodsCompleteMessage.getSkuId(), new EsGoodsIndex().setBuyCount(buyCount));
} else { } else {
log.error("商品SkuId为[" + goodsCompleteMessage.getGoodsId() + "的商品不存在,更新商品失败!"); log.error("商品SkuId为[" + goodsCompleteMessage.getGoodsId() + "的商品不存在,更新商品失败!");
} }

View File

@@ -1,15 +1,16 @@
package cn.lili.listener; package cn.lili.listener;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import cn.lili.rocketmq.tags.MemberTagsEnum; import cn.lili.event.MemberLoginEvent;
import cn.lili.event.MemberPointChangeEvent; import cn.lili.event.MemberPointChangeEvent;
import cn.lili.event.MemberRegisterEvent; import cn.lili.event.MemberRegisterEvent;
import cn.lili.event.MemberWithdrawalEvent; import cn.lili.event.MemberWithdrawalEvent;
import cn.lili.modules.member.entity.dos.Member; import cn.lili.modules.member.entity.dos.Member;
import cn.lili.modules.member.entity.dos.MemberSign; import cn.lili.modules.member.entity.dos.MemberSign;
import cn.lili.modules.member.entity.dto.MemberPointMessage; import cn.lili.modules.member.entity.dto.MemberPointMessage;
import cn.lili.modules.member.entity.dto.MemberWithdrawalMessage;
import cn.lili.modules.member.service.MemberSignService; import cn.lili.modules.member.service.MemberSignService;
import cn.lili.modules.wallet.entity.dto.MemberWithdrawalMessage;
import cn.lili.rocketmq.tags.MemberTagsEnum;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.common.message.MessageExt; import org.apache.rocketmq.common.message.MessageExt;
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener; import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
@@ -51,6 +52,12 @@ public class MemberMessageListener implements RocketMQListener<MessageExt> {
@Autowired @Autowired
private List<MemberRegisterEvent> memberSignEvents; private List<MemberRegisterEvent> memberSignEvents;
/**
* 会员注册
*/
@Autowired
private List<MemberLoginEvent> memberLoginEvents;
@Override @Override
public void onMessage(MessageExt messageExt) { public void onMessage(MessageExt messageExt) {
@@ -69,6 +76,21 @@ public class MemberMessageListener implements RocketMQListener<MessageExt> {
} }
} }
break; break;
case MEMBER_LOGIN:
for (MemberLoginEvent memberLoginEvent : memberLoginEvents) {
try {
Member member = JSONUtil.toBean(new String(messageExt.getBody()), Member.class);
memberLoginEvent.memberLogin(member);
} catch (Exception e) {
log.error("会员{},在{}业务中,状态修改事件执行异常",
new String(messageExt.getBody()),
memberLoginEvent.getClass().getName(),
e);
}
}
break;
//会员签到 //会员签到
case MEMBER_SING: case MEMBER_SING:
MemberSign memberSign = JSONUtil.toBean(new String(messageExt.getBody()), MemberSign.class); MemberSign memberSign = JSONUtil.toBean(new String(messageExt.getBody()), MemberSign.class);

View File

@@ -5,20 +5,19 @@ import cn.lili.common.enums.SwitchEnum;
import cn.lili.common.vo.PageVO; import cn.lili.common.vo.PageVO;
import cn.lili.modules.member.entity.vo.MemberSearchVO; import cn.lili.modules.member.entity.vo.MemberSearchVO;
import cn.lili.modules.member.entity.vo.MemberVO; import cn.lili.modules.member.entity.vo.MemberVO;
import cn.lili.modules.member.mapper.MemberMapper;
import cn.lili.modules.member.service.MemberService; import cn.lili.modules.member.service.MemberService;
import cn.lili.modules.message.entity.dos.MemberMessage; import cn.lili.modules.message.entity.dos.MemberMessage;
import cn.lili.modules.message.entity.dos.Message; import cn.lili.modules.message.entity.dos.Message;
import cn.lili.modules.message.entity.dos.StoreMessage; import cn.lili.modules.message.entity.dos.StoreMessage;
import cn.lili.modules.message.entity.dto.SmsReachDTO;
import cn.lili.modules.message.entity.enums.MessageSendClient; import cn.lili.modules.message.entity.enums.MessageSendClient;
import cn.lili.modules.message.entity.enums.MessageStatusEnum; import cn.lili.modules.message.entity.enums.MessageStatusEnum;
import cn.lili.modules.message.entity.enums.RangeEnum; import cn.lili.modules.message.entity.enums.RangeEnum;
import cn.lili.modules.message.service.MemberMessageService; import cn.lili.modules.message.service.MemberMessageService;
import cn.lili.modules.message.service.StoreMessageService; import cn.lili.modules.message.service.StoreMessageService;
import cn.lili.modules.sms.SmsUtil;
import cn.lili.modules.sms.entity.dto.SmsReachDTO;
import cn.lili.modules.store.entity.dos.Store; import cn.lili.modules.store.entity.dos.Store;
import cn.lili.modules.store.service.StoreService; import cn.lili.modules.store.service.StoreService;
import cn.lili.modules.system.sms.SmsUtil;
import cn.lili.rocketmq.tags.OtherTagsEnum; import cn.lili.rocketmq.tags.OtherTagsEnum;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -28,7 +27,6 @@ import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@@ -42,11 +40,6 @@ import java.util.List;
@RocketMQMessageListener(topic = "${lili.data.rocketmq.notice-send-topic}", consumerGroup = "${lili.data.rocketmq.notice-send-group}") @RocketMQMessageListener(topic = "${lili.data.rocketmq.notice-send-topic}", consumerGroup = "${lili.data.rocketmq.notice-send-group}")
public class NoticeSendMessageListener implements RocketMQListener<MessageExt> { public class NoticeSendMessageListener implements RocketMQListener<MessageExt> {
/**
* 会员
*/
@Resource
private MemberMapper memberMapper;
/** /**
* 短信 * 短信
*/ */
@@ -82,7 +75,7 @@ public class NoticeSendMessageListener implements RocketMQListener<MessageExt> {
//发送全部会员 //发送全部会员
if (smsReachDTO.getSmsRange().equals(RangeEnum.ALL.name())) { if (smsReachDTO.getSmsRange().equals(RangeEnum.ALL.name())) {
//获取所有会员的手机号 //获取所有会员的手机号
List<String> list = memberMapper.getAllMemberMobile(); List<String> list = memberService.getAllMemberMobile();
smsUtil.sendBatchSms(smsReachDTO.getSignName(), list, smsReachDTO.getMessageCode()); smsUtil.sendBatchSms(smsReachDTO.getSignName(), list, smsReachDTO.getMessageCode());
//判断为发送部分用户 //判断为发送部分用户
} else { } else {
@@ -158,12 +151,12 @@ public class NoticeSendMessageListener implements RocketMQListener<MessageExt> {
//查询所有会员总数,因为会员总数比较大 如果一次性查出来会占用数据库资源,所以要分页查询 //查询所有会员总数,因为会员总数比较大 如果一次性查出来会占用数据库资源,所以要分页查询
MemberSearchVO memberSearchVO = new MemberSearchVO(); MemberSearchVO memberSearchVO = new MemberSearchVO();
memberSearchVO.setDisabled(SwitchEnum.OPEN.name()); memberSearchVO.setDisabled(SwitchEnum.OPEN.name());
Integer memberNum = memberService.getMemberNum(memberSearchVO); long memberNum = memberService.getMemberNum(memberSearchVO);
//构建分页查询参数 //构建分页查询参数
//100条查一次 //100条查一次
Integer pageSize = 100; int pageSize = 100;
Integer pageCount = 0; int pageCount;
pageCount = memberNum / pageSize; pageCount = (int) (memberNum / pageSize);
pageCount = memberNum % pageSize > 0 ? pageCount + 1 : pageCount; pageCount = memberNum % pageSize > 0 ? pageCount + 1 : pageCount;
for (int i = 1; i <= pageCount; i++) { for (int i = 1; i <= pageCount; i++) {
PageVO pageVO = new PageVO(); PageVO pageVO = new PageVO();

View File

@@ -2,11 +2,11 @@ package cn.lili.listener;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import cn.lili.cache.Cache; import cn.lili.cache.Cache;
import cn.lili.rocketmq.tags.MqOrderTagsEnum;
import cn.lili.event.OrderStatusChangeEvent; import cn.lili.event.OrderStatusChangeEvent;
import cn.lili.event.TradeEvent; import cn.lili.event.TradeEvent;
import cn.lili.modules.order.cart.entity.dto.TradeDTO; import cn.lili.modules.order.cart.entity.dto.TradeDTO;
import cn.lili.modules.order.order.entity.dto.OrderMessage; import cn.lili.modules.order.order.entity.dto.OrderMessage;
import cn.lili.rocketmq.tags.OrderTagsEnum;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.common.message.MessageExt; import org.apache.rocketmq.common.message.MessageExt;
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener; import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
@@ -58,11 +58,11 @@ public class OrderMessageListener implements RocketMQListener<MessageExt> {
*/ */
public void orderStatusEvent(MessageExt messageExt) { public void orderStatusEvent(MessageExt messageExt) {
switch (MqOrderTagsEnum.valueOf(messageExt.getTags())) { switch (OrderTagsEnum.valueOf(messageExt.getTags())) {
//订单创建 //订单创建
case ORDER_CREATE: case ORDER_CREATE:
String key = new String(messageExt.getBody()); String key = new String(messageExt.getBody());
TradeDTO tradeDTO = (TradeDTO) cache.get(key); TradeDTO tradeDTO = JSONUtil.toBean(cache.getString(key), TradeDTO.class);
boolean result = true; boolean result = true;
for (TradeEvent event : tradeEvent) { for (TradeEvent event : tradeEvent) {
try { try {

View File

@@ -1,22 +0,0 @@
package cn.lili.service;
import cn.lili.event.OrderStatusChangeEvent;
import cn.lili.modules.order.order.entity.dto.OrderMessage;
import org.springframework.stereotype.Component;
/**
* 消息发送
*
* @author paulG
* @since 2020/12/9
*/
@Component
public class NoticeSendMessageConsumer implements OrderStatusChangeEvent {
@Override
public void orderChange(OrderMessage orderMessage) {
}
}

View File

@@ -0,0 +1,18 @@
package cn.lili.sucurity;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.stereotype.Component;
/**
* @author paulG
* @since 2022/2/18
**/
@Component
public class ConsumerSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.formLogin().disable();
}
}

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