Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop
This commit is contained in:
commit
cddc6571f7
4
.gitignore
vendored
4
.gitignore
vendored
@ -10,8 +10,8 @@ target
|
|||||||
.factorypath
|
.factorypath
|
||||||
|
|
||||||
log/
|
log/
|
||||||
|
logs/
|
||||||
*.factorypath
|
*.factorypath
|
||||||
*.log
|
|
||||||
lili-shop/src/main/java/cn/lili/generator/CodeGenerator.java
|
lili-shop/src/main/java/cn/lili/generator/CodeGenerator.java
|
||||||
lili-logs
|
lili-logs
|
||||||
|
|
||||||
@ -19,7 +19,6 @@ lili-logs
|
|||||||
### STS ###
|
### STS ###
|
||||||
.apt_generated
|
.apt_generated
|
||||||
.classpath
|
.classpath
|
||||||
.factorypath
|
|
||||||
.project
|
.project
|
||||||
.settings
|
.settings
|
||||||
.springBeans
|
.springBeans
|
||||||
@ -28,7 +27,6 @@ lili-logs
|
|||||||
### IntelliJ IDEA ###
|
### IntelliJ IDEA ###
|
||||||
.idea
|
.idea
|
||||||
*.iws
|
*.iws
|
||||||
*.iml
|
|
||||||
*.ipr
|
*.ipr
|
||||||
|
|
||||||
### NetBeans ###
|
### NetBeans ###
|
||||||
|
|||||||
6
DB/README.md
Normal file
6
DB/README.md
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
## PS:数据库位置
|
||||||
|
|
||||||
|
点击跳转 https://gitee.com/beijing_hongye_huicheng/docker/tree/master/init/mysql 这里有与tag版本一致的sql,根据tag获取sql,如果使用master代码,则需要在lilishop项目根目录的update-sql目录中,获取对应的升级sql。
|
||||||
|
|
||||||
|
|
||||||
|
使用master分支代码时,可能会无法运行,执行完初始化sql之后需要执行当前目录下'versiontXXXXtoMASTER.sql'。
|
||||||
67
DB/li_notice_message.sql
Normal file
67
DB/li_notice_message.sql
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
/*
|
||||||
|
Navicat MySQL Data Transfer
|
||||||
|
|
||||||
|
Source Server : 192.168.0.116
|
||||||
|
Source Server Type : MySQL
|
||||||
|
Source Server Version : 80023
|
||||||
|
Source Host : 192.168.0.116:3306
|
||||||
|
Source Schema : lilishop
|
||||||
|
|
||||||
|
|
||||||
|
Target Server Type : MySQL
|
||||||
|
Target Server Version : 80023
|
||||||
|
File Encoding : 65001
|
||||||
|
|
||||||
|
Date: 27/07/2021 19:42:15
|
||||||
|
*/
|
||||||
|
|
||||||
|
SET NAMES utf8mb4;
|
||||||
|
SET FOREIGN_KEY_CHECKS = 0;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for li_notice_message
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `li_notice_message`;
|
||||||
|
CREATE TABLE `li_notice_message` (
|
||||||
|
`id` bigint NOT NULL,
|
||||||
|
`create_by` varchar(255) DEFAULT NULL,
|
||||||
|
`create_time` datetime(6) DEFAULT NULL,
|
||||||
|
`delete_flag` bit(1) DEFAULT NULL,
|
||||||
|
`update_by` varchar(255) DEFAULT NULL,
|
||||||
|
`update_time` datetime(6) DEFAULT NULL,
|
||||||
|
`notice_content` varchar(255) DEFAULT NULL,
|
||||||
|
`notice_node` varchar(255) DEFAULT NULL,
|
||||||
|
`notice_status` varchar(255) DEFAULT NULL,
|
||||||
|
`notice_title` varchar(255) DEFAULT NULL,
|
||||||
|
`variable` varchar(255) DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Records of li_notice_message
|
||||||
|
-- ----------------------------
|
||||||
|
BEGIN;
|
||||||
|
INSERT INTO `li_notice_message` VALUES (1, NULL, '2021-07-14 19:22:03.000000', NULL, NULL, '2021-07-14 19:22:09.000000', '订单 #{商品名称}已经提交成功,请及时付款哦~', '订单提交成功通知', 'OPEN', '订单提交成功通知', 'goods');
|
||||||
|
INSERT INTO `li_notice_message` VALUES (2, NULL, '2021-07-14 19:22:06.000000', NULL, NULL, '2021-07-14 19:22:11.000000', '订单#{商品名称}支付成功,我们将尽快为您安排发货哦~', '订单支付成功通知', 'OPEN', '订单支付成功通知', 'goods');
|
||||||
|
INSERT INTO `li_notice_message` VALUES (3, NULL, '2021-07-15 19:10:14.000000', NULL, NULL, '2021-07-15 19:10:17.000000', '订单#{商品名称}已发货,请注意物流进度哦~', '订单发货通知\n', 'OPEN', '订单发货通知', 'goods');
|
||||||
|
INSERT INTO `li_notice_message` VALUES (4, NULL, '2021-07-15 19:12:00.000000', NULL, NULL, '2021-07-15 19:12:02.000000', '订单#{商品名称}已完成,期待您分享商品评价与购物心得哦~', '订单完成通知', 'OPEN', '订单完成通知', 'goods');
|
||||||
|
INSERT INTO `li_notice_message` VALUES (5, NULL, '2021-07-15 19:14:01.000000', NULL, NULL, '2021-07-15 19:14:04.000000', '订单#{商品名称}已取消,取消原因为 #{取消原因},请及时关注您的订单状态哦~', '订单取消成功通知', 'OPEN', '订单取消通知', 'goods,cancel_reason');
|
||||||
|
INSERT INTO `li_notice_message` VALUES (6, NULL, '2021-07-15 19:26:27.000000', NULL, NULL, '2021-07-15 19:26:34.000000', '商品#{商品名称}还没有收到您的评价呢,期待您与我们分享哦~', '订单评价提醒', 'OPEN', '订单评价提醒', 'goods');
|
||||||
|
INSERT INTO `li_notice_message` VALUES (7, NULL, '2021-07-15 19:26:25.000000', NULL, NULL, '2021-07-15 19:26:37.000000', '恭喜,您的拼团#{商品名称}已成团,我们将尽快为您安排发货哦~', '拼团成功通知', 'OPEN', '拼团成功通知', 'goods');
|
||||||
|
INSERT INTO `li_notice_message` VALUES (8, NULL, '2021-07-15 19:31:45.000000', NULL, NULL, '2021-07-15 19:31:49.000000', '售后单 #{商品名称} 已经提交成功,需要商家审核,请耐心等待哦~', '售后提交成功通知', 'OPEN', '售后提交成功通知', 'goods');
|
||||||
|
INSERT INTO `li_notice_message` VALUES (9, NULL, '2021-07-15 19:32:44.000000', NULL, NULL, '2021-07-15 19:32:49.000000', '售后单 #{商品名称} 已通过退货审核,请尽快安排将货物退还至商家哦~', '退货审核通过通知', 'OPEN', '退货审核通过通知', 'goods');
|
||||||
|
INSERT INTO `li_notice_message` VALUES (10, NULL, '2021-07-15 19:32:46.000000', NULL, NULL, '2021-07-15 19:32:52.000000', '售后单 #{商品名称} 已通过退款审核,将在1-3个工作日内自动退款~', '退款审核通过通知', 'OPEN', '退款审核通过通知', 'goods');
|
||||||
|
INSERT INTO `li_notice_message` VALUES (11, NULL, '2021-07-15 19:36:48.000000', NULL, NULL, '2021-07-15 19:36:50.000000', '很抱歉,售后单#{商品名称}未通过商家退货审核,原因是:#{拒绝原因}', '退货审核未通过通知', 'OPEN', '退货审核未通过通知', 'goods,refuse');
|
||||||
|
INSERT INTO `li_notice_message` VALUES (12, NULL, '2021-07-15 19:36:46.000000', NULL, NULL, '2021-07-15 19:36:52.000000', '很抱歉,售后单#{商品名称}未通过商家退款审核,原因是:#{拒绝原因}', '退款审核未通过通知', 'OPEN', '退款审核未通过通知', 'goods,refuse');
|
||||||
|
INSERT INTO `li_notice_message` VALUES (13, NULL, '2021-07-15 19:39:31.000000', NULL, NULL, '2021-07-15 19:39:34.000000', '很抱歉,您的退货物品{退单第一行商品名称}被商家拒收,原因是:#{拒绝原因}', '退货物品拒收通知', 'OPEN', '退货物品拒收通知', 'goods,refuse');
|
||||||
|
INSERT INTO `li_notice_message` VALUES (14, NULL, '2021-07-15 19:39:39.000000', NULL, NULL, '2021-07-15 19:39:43.000000', '订单 #{商品名称} 商家已签收哦,请关注后续退款状态,将在1-3个工作日内自动退款~', '退货物品签收通知', 'OPEN', '退货物品签收通知', 'goods');
|
||||||
|
INSERT INTO `li_notice_message` VALUES (15, NULL, '2021-07-15 19:44:38.000000', NULL, NULL, '2021-07-15 19:44:40.000000', '售后单 #{商品名称} 已经完成,请关注及时关注售后单状态~', '售后完成通知', 'OPEN', '售后完成通知', 'goods');
|
||||||
|
INSERT INTO `li_notice_message` VALUES (16, NULL, '2021-07-15 19:47:27.000000', NULL, NULL, '2021-07-15 19:47:31.000000', '您当前到账{获得积分}积分,消费#{消费积分} 积分,积分可以抵现金哦,真的很棒棒呢~', '积分变更通知', 'OPEN', '积分变更通知', 'income_points,expenditure_points');
|
||||||
|
INSERT INTO `li_notice_message` VALUES (17, NULL, '2021-07-15 19:53:10.000000', NULL, NULL, '2021-07-15 19:53:13.000000', '您的余额账户今日收入¥#{收入金额},支出¥#{支出金额},如遇异常变动,请及时联系我们哦~', '余额账户变更通知', 'OPEN', '余额账户变更通知', 'income,expenditure');
|
||||||
|
INSERT INTO `li_notice_message` VALUES (18, NULL, '2021-07-15 19:57:01.000000', NULL, NULL, '2021-07-15 19:57:04.000000', '恭喜您,您的提处理成功,提现金额为¥#{收入金额},请及时关注余额变动哦~', '余额提现成功通知', 'OPEN', '余额提现成功通知', 'income');
|
||||||
|
INSERT INTO `li_notice_message` VALUES (19, NULL, '2021-07-21 18:58:10.000000', NULL, NULL, '2021-07-21 18:58:13.000000', '恭喜您,您的提现金额为¥#{金额}的申请已经提交审核,请及时关注审核动态哦~', '提现申请提交成功通知', 'OPEN', '提现申请提交成功通知', 'price');
|
||||||
|
INSERT INTO `li_notice_message` VALUES (20, NULL, '2021-07-21 19:16:58.000000', NULL, NULL, '2021-07-21 19:17:02.000000', '很抱歉,您的提现金额为¥#{金额}的申请已被拒绝,如有问题请及时联系管理员哦~', '提现申请驳回通知', 'OPEN', '提现申请驳回通知', 'price');
|
||||||
|
INSERT INTO `li_notice_message` VALUES (21, NULL, '2021-07-26 18:59:00.000000', NULL, NULL, '2021-07-26 18:59:03.000000', '恭喜您,您的提处理成功,提现金额为¥#{收入金额},将在1-3个工作日内到账~', '微信提现成功通知', 'OPEN', '微信提现成功通知', 'income');
|
||||||
|
COMMIT;
|
||||||
|
|
||||||
|
SET FOREIGN_KEY_CHECKS = 1;
|
||||||
124
DB/version4.0to4.1.sql
Normal file
124
DB/version4.0to4.1.sql
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
/** 修改文章表**/
|
||||||
|
ALTER TABLE li_article DROP COLUMN open_status;
|
||||||
|
ALTER TABLE li_article ADD open_status bit ( 1 );
|
||||||
|
UPDATE li_article SET open_status = 1;
|
||||||
|
/** 增加会员等级会员经验值**/
|
||||||
|
ALTER TABLE li_member ADD grade_id VARCHAR ( 32 );
|
||||||
|
ALTER TABLE li_member ADD experience BIGINT;
|
||||||
|
/**去除商品运费承担**/
|
||||||
|
ALTER TABLE li_goods DROP COLUMN freight_payer;
|
||||||
|
/**添加商品类型**/
|
||||||
|
ALTER TABLE li_goods ADD goods_type VARCHAR ( 32 );
|
||||||
|
ALTER TABLE li_goods_sku ADD goods_type VARCHAR ( 32 );
|
||||||
|
ALTER TABLE li_specification ADD spec_value text;
|
||||||
|
UPDATE li_goods SET goods_type = "PHYSICAL_GOODS";
|
||||||
|
UPDATE li_goods_sku SET goods_type = "PHYSICAL_GOODS";
|
||||||
|
/**增加优惠券有效期类型**/
|
||||||
|
ALTER TABLE li_coupon ADD range_day_type VARCHAR ( 32 );
|
||||||
|
ALTER TABLE li_coupon ADD effective_days INT;
|
||||||
|
/**秒杀增加显示商品数量**/
|
||||||
|
ALTER TABLE li_seckill ADD goods_num INT;
|
||||||
|
/**商品参数增加字段**/
|
||||||
|
ALTER TABLE li_goods_params ADD is_index INT;
|
||||||
|
/**添加优惠券活动、直播、积分商品菜单**/
|
||||||
|
DELETE FROM li_menu WHERE id = '1372391359398281216';
|
||||||
|
DELETE FROM li_menu WHERE id = '1372394573938032640';
|
||||||
|
INSERT INTO `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 (1403988156444962818, 'admin', '2021-06-13 16:10:36', b'0', 'admin', '2021-06-13 16:44:47', 'null', 'promotion/couponActivity/coupon', '', 2, 'coupon-activity', '1367049214198022144', 'coupon-activity', 0.00, '券活动', 'null');
|
||||||
|
INSERT INTO `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 (1407601962899230721, 'admin', '2021-06-23 15:30:35', b'0', NULL, NULL, NULL, 'Main', '', 1, 'liveManage', '1367040067201138688', '/', 2.00, '直播管理', NULL);
|
||||||
|
INSERT INTO `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 (1407602049759072258, 'admin', '2021-06-23 15:30:55', b'0', NULL, NULL, NULL, 'promotion/live/live', '', 2, 'live', '1407601962899230721', 'live', 1.00, '直播管理', NULL);
|
||||||
|
INSERT INTO `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 (1407602441964244994, 'admin', '2021-06-23 15:32:29', b'0', NULL, NULL, NULL, 'Main', '', 1, 'pointManage', '1367040067201138688', '/', 3.00, '积分活动', NULL);
|
||||||
|
INSERT INTO `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 (1407602516912263170, 'admin', '2021-06-23 15:32:47', b'0', NULL, NULL, NULL, 'promotion/pointsGoods/pointsGoods', '', 2, 'pointsGoods', '1407602441964244994', 'pointsGoods', 1.00, '积分商品', NULL);
|
||||||
|
INSERT INTO `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 (1407602673334636546, 'admin', '2021-06-23 15:33:24', b'0', NULL, NULL, NULL, 'promotion/pointsGoodsCategory/pointsGoodsCategory', '', 2, 'pointsGoodsCategory', '1407602441964244994', 'pointsGoodsCategory', 2.00, '积分分类', NULL);
|
||||||
|
/** 添加直播间**/
|
||||||
|
CREATE TABLE `li_studio` (
|
||||||
|
`id` bigint NOT NULL COMMENT 'ID',
|
||||||
|
`create_by` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '创建者',
|
||||||
|
`create_time` datetime(6) DEFAULT NULL COMMENT '创建时间',
|
||||||
|
`delete_flag` bit(1) DEFAULT NULL COMMENT '是否删除',
|
||||||
|
`update_by` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '修改者',
|
||||||
|
`update_time` datetime(6) DEFAULT NULL COMMENT '修改时间',
|
||||||
|
`anchor_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '主播昵称',
|
||||||
|
`anchor_wechat` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '主播微信号',
|
||||||
|
`cover_img` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '背景图',
|
||||||
|
`end_time` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '结束时间',
|
||||||
|
`feeds_img` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '封面图',
|
||||||
|
`media_url` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '回放视频链接',
|
||||||
|
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '直播间名字',
|
||||||
|
`qr_code_url` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '小程序直播码',
|
||||||
|
`recommend` bit(1) DEFAULT NULL COMMENT '推荐直播间',
|
||||||
|
`room_goods_list` text CHARACTER SET utf8 COLLATE utf8_bin COMMENT '直播间商品',
|
||||||
|
`room_goods_num` int DEFAULT NULL COMMENT '直播间商品数量',
|
||||||
|
`room_id` int DEFAULT NULL COMMENT '房间ID',
|
||||||
|
`share_img` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '分享图',
|
||||||
|
`start_time` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '开始时间',
|
||||||
|
`status` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '直播间状态',
|
||||||
|
`store_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '店铺ID',
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||||
|
/**添加直播间商品**/
|
||||||
|
CREATE TABLE `li_commodity` (
|
||||||
|
`id` bigint NOT NULL COMMENT 'ID',
|
||||||
|
`create_by` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '创建者',
|
||||||
|
`create_time` datetime(6) DEFAULT NULL COMMENT '创建时间',
|
||||||
|
`delete_flag` bit(1) DEFAULT NULL COMMENT '是否删除',
|
||||||
|
`update_by` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '修改者',
|
||||||
|
`update_time` datetime(6) DEFAULT NULL COMMENT '修改时间',
|
||||||
|
`audit_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '审核单ID',
|
||||||
|
`audit_status` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '审核状态',
|
||||||
|
`goods_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '商品ID',
|
||||||
|
`goods_image` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '图片',
|
||||||
|
`live_goods_id` int DEFAULT NULL COMMENT '微信程序直播商品ID',
|
||||||
|
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '商品名称',
|
||||||
|
`price` double DEFAULT NULL COMMENT '价格',
|
||||||
|
`price2` double DEFAULT NULL COMMENT '价格2',
|
||||||
|
`price_type` int DEFAULT NULL COMMENT '价格类型',
|
||||||
|
`sku_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '规格ID',
|
||||||
|
`store_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '店铺ID',
|
||||||
|
`url` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '商品详情页的小程序路径',
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||||
|
/**添加小程序直播-商品关联 **/
|
||||||
|
CREATE TABLE `li_studio_commodity` (
|
||||||
|
`id` bigint NOT NULL COMMENT 'ID',
|
||||||
|
`goods_id` int DEFAULT NULL COMMENT '商品ID',
|
||||||
|
`room_id` int DEFAULT NULL COMMENT '房间ID',
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||||
|
/**添加优惠券活动 **/
|
||||||
|
CREATE TABLE `li_coupon_activity` (
|
||||||
|
`id` bigint NOT NULL COMMENT 'ID',
|
||||||
|
`create_by` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '创建者',
|
||||||
|
`create_time` datetime(6) DEFAULT NULL COMMENT '创建时间',
|
||||||
|
`delete_flag` bit(1) DEFAULT NULL COMMENT '是否删除',
|
||||||
|
`update_by` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '修改者',
|
||||||
|
`update_time` datetime(6) DEFAULT NULL COMMENT '修改时间',
|
||||||
|
`end_time` datetime(6) DEFAULT NULL COMMENT '结束时间',
|
||||||
|
`promotion_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '活动名称',
|
||||||
|
`promotion_status` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT '活动状态',
|
||||||
|
`start_time` datetime(6) DEFAULT NULL COMMENT '开始时间',
|
||||||
|
`store_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '店铺ID',
|
||||||
|
`store_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '店铺名称',
|
||||||
|
`activity_scope` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '活动范围',
|
||||||
|
`activity_scope_info` text CHARACTER SET utf8 COLLATE utf8_bin COMMENT '活动范围详细',
|
||||||
|
`coupon_activity_type` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT '活动类型',
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||||
|
/**添加优惠券活动-优惠券关联 **/
|
||||||
|
CREATE TABLE `li_coupon_activity_item` (
|
||||||
|
`id` bigint NOT NULL COMMENT 'ID',
|
||||||
|
`create_by` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '创建者',
|
||||||
|
`create_time` datetime(6) DEFAULT NULL COMMENT '创建时间',
|
||||||
|
`delete_flag` bit(1) DEFAULT NULL COMMENT '是否删除',
|
||||||
|
`update_by` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '修改者',
|
||||||
|
`update_time` datetime(6) DEFAULT NULL COMMENT '修改时间',
|
||||||
|
`activity_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '活动ID',
|
||||||
|
`coupon_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '优惠券ID',
|
||||||
|
`num` int DEFAULT NULL COMMENT '优惠券数量',
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||||
|
/** 修改商品模板详情字段类型**/
|
||||||
|
ALTER TABLE `li_draft_goods` MODIFY COLUMN `intro` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL;
|
||||||
|
/** 添加秒杀设置**/
|
||||||
|
INSERT INTO `li_setting` ( `id`, `create_by`, `create_time`, `delete_flag`, `update_by`, `update_time`, `setting_value` ) VALUES ( 'SECKILL_SETTING', NULL, NULL, NULL, 'admin', '2021-06-04 09:58:39.384000', '{\"seckillRule\":\"秒杀规则\",\"hours\":\"9,10,11,12,13,14,15,21,22,23\"}' );
|
||||||
|
/** 添加直播间商品默认数量**/
|
||||||
|
alter table li_studio alter column room_goods_num set default 0;
|
||||||
28
DB/version4.1to4.2.sql
Normal file
28
DB/version4.1to4.2.sql
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
/** 添加分销员结算信息**/
|
||||||
|
ALTER TABLE li_distribution ADD settlement_bank_account_name varchar ( 200 );
|
||||||
|
ALTER TABLE li_distribution ADD settlement_bank_account_num varchar ( 200 );
|
||||||
|
ALTER TABLE li_distribution ADD settlement_bank_branch_name varchar ( 200 );
|
||||||
|
|
||||||
|
/** 文章分类添加默认值**/
|
||||||
|
ALTER TABLE li_article_category alter column sort set default 0;
|
||||||
|
/** 添加分销提现菜单**/
|
||||||
|
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_member_points_history modify column point_type varchar(50);
|
||||||
|
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;
|
||||||
|
|
||||||
|
/** 添加分词管理菜单*/
|
||||||
|
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_after_sale modify column after_sale_image text;
|
||||||
|
|
||||||
|
/** 提现申请审核sql **/
|
||||||
|
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);
|
||||||
2
DB/version4.2.2to4.2.3.sql
Normal file
2
DB/version4.2.2to4.2.3.sql
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
/** 新增店铺客服字段 **/
|
||||||
|
ALTER TABLE li_store ADD merchant_euid varchar(255) COMMENT '客服标识';
|
||||||
64
DB/version4.2.3to4.2.4.sql
Normal file
64
DB/version4.2.3to4.2.4.sql
Normal 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
521
DB/version4.2.4to4.2.5.sql
Normal 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', 'page-decoration/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', 'page-decoration/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
|
||||||
|
|
||||||
|
|
||||||
91
DB/version4.2.5toMASTER.sql
Normal file
91
DB/version4.2.5toMASTER.sql
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
|
||||||
|
/** 优惠券活动增加领取周期字段 **/
|
||||||
|
ALTER TABLE li_coupon_activity ADD coupon_frequency_enum varchar(255) COMMENT '领取周期';
|
||||||
|
-- 会员优惠券标识
|
||||||
|
CREATE TABLE `li_member_coupon_sign` (
|
||||||
|
`id` bigint NOT NULL,
|
||||||
|
`coupon_activity_Id` bigint NULL DEFAULT NULL COMMENT '优惠券活动id',
|
||||||
|
`member_id` bigint NULL DEFAULT NULL COMMENT '会员id',
|
||||||
|
`invalid_time` datetime NULL DEFAULT NULL COMMENT '过期时间',
|
||||||
|
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
|
||||||
|
PRIMARY KEY (`id`) USING BTREE
|
||||||
|
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = DYNAMIC;
|
||||||
|
|
||||||
|
/**
|
||||||
|
IM聊天
|
||||||
|
*/
|
||||||
|
CREATE TABLE `li_im_talk` (
|
||||||
|
`id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
`create_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '创建者',
|
||||||
|
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||||
|
`delete_flag` bit(1) DEFAULT NULL COMMENT '删除标志',
|
||||||
|
`update_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '修改者',
|
||||||
|
`update_time` datetime(6) DEFAULT NULL COMMENT '修改时间',
|
||||||
|
`user_id1` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '用户1Id',
|
||||||
|
`user_id2` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '用户2Id',
|
||||||
|
`name1` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '用户1名称',
|
||||||
|
`name2` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '用户2名称',
|
||||||
|
`face1` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '用户1头像',
|
||||||
|
`face2` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '用户2头像',
|
||||||
|
`top1` bit(1) DEFAULT NULL COMMENT '用户1置顶标识',
|
||||||
|
`top2` bit(1) DEFAULT NULL COMMENT '用户2置顶标识',
|
||||||
|
`disable1` bit(1) DEFAULT NULL COMMENT '用户1禁用标识',
|
||||||
|
`disable2` bit(1) DEFAULT NULL COMMENT '用户2禁用标识',
|
||||||
|
`store_flag1` bit(1) DEFAULT NULL COMMENT '用户1店铺标识',
|
||||||
|
`store_flag2` bit(1) DEFAULT NULL COMMENT '用户2店铺标识',
|
||||||
|
`last_talk_time` datetime DEFAULT NULL COMMENT '最后聊天时间',
|
||||||
|
`last_talk_message` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '最后的消息',
|
||||||
|
`last_message_type` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '最后消息类型',
|
||||||
|
`talk_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '聊天Id',
|
||||||
|
`tenant_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '坐席Id',
|
||||||
|
`tenant_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '坐席名称',
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
IM消息
|
||||||
|
*/
|
||||||
|
CREATE TABLE `li_im_message` (
|
||||||
|
`id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
`create_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '创建者',
|
||||||
|
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||||
|
`delete_flag` bit(1) DEFAULT NULL COMMENT '删除标识',
|
||||||
|
`update_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '修改者',
|
||||||
|
`update_time` datetime(6) DEFAULT NULL COMMENT '修改标识',
|
||||||
|
`from_user` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '发送用户Id',
|
||||||
|
`to_user` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '接收用户Id',
|
||||||
|
`is_read` bit(1) DEFAULT NULL COMMENT '已读标识',
|
||||||
|
`message_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '聊天类型',
|
||||||
|
`text` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '聊天内容',
|
||||||
|
`talk_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '聊天Id',
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
订单增加自提信息
|
||||||
|
*/
|
||||||
|
ALTER TABLE li_order ADD `store_address_path` varchar(255) DEFAULT NULL;
|
||||||
|
ALTER TABLE li_order ADD `store_address_center` varchar(255) DEFAULT NULL;
|
||||||
|
ALTER TABLE li_order ADD `store_address_mobile` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL;
|
||||||
|
|
||||||
|
/**
|
||||||
|
店铺是否开启自提
|
||||||
|
*/
|
||||||
|
ALTER TABLE li_store ADD `self_pick_flag` bit(1) DEFAULT NULL;
|
||||||
|
/**
|
||||||
|
历史足迹增加店铺Id
|
||||||
|
*/
|
||||||
|
ALTER TABLE li_foot_print ADD `store_id` varchar(255) DEFAULT NULL COMMENT '店铺ID';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
订单增加自提信息
|
||||||
|
*/
|
||||||
|
ALTER TABLE li_member_withdraw_apply ADD `real_name` varchar(255) DEFAULT NULL;
|
||||||
|
ALTER TABLE li_member_withdraw_apply ADD `connect_number` varchar(255) DEFAULT NULL;
|
||||||
|
ALTER TABLE li_member_withdraw_apply ADD `error_message` text DEFAULT NULL;
|
||||||
161
DB/version4.2to4.2.2.sql
Normal file
161
DB/version4.2to4.2.2.sql
Normal file
@ -0,0 +1,161 @@
|
|||||||
|
/*
|
||||||
|
Navicat Premium Data Transfer
|
||||||
|
|
||||||
|
Source Server : 192.168.0.116
|
||||||
|
Source Server Type : MySQL
|
||||||
|
Source Server Version : 80023
|
||||||
|
Source Host : 192.168.0.116:3306
|
||||||
|
Source Schema : lilishop
|
||||||
|
|
||||||
|
Target Server Type : MySQL
|
||||||
|
Target Server Version : 80023
|
||||||
|
File Encoding : 65001
|
||||||
|
|
||||||
|
Date: 27/07/2021 17:04:46
|
||||||
|
*/
|
||||||
|
|
||||||
|
SET NAMES utf8mb4;
|
||||||
|
SET FOREIGN_KEY_CHECKS = 0;
|
||||||
|
/** 添加结算单积分、砍价结算价信息**/
|
||||||
|
ALTER TABLE li_bill ADD point_settlement_price double DEFAULT 0.00 COMMENT '积分商品结算金额 ';
|
||||||
|
ALTER TABLE li_bill ADD kanjia_settlement_price double DEFAULT 0.00 COMMENT '砍价商品结算金额';
|
||||||
|
ALTER TABLE li_store_flow ADD point_settlement_price double DEFAULT 0.00 COMMENT '积分商品结算金额';
|
||||||
|
ALTER TABLE li_store_flow ADD kanjia_settlement_price double DEFAULT 0.00 COMMENT '砍价商品结算金额';
|
||||||
|
ALTER TABLE li_order ADD order_promotion_type varchar(255) DEFAULT null COMMENT '订单促销类型';
|
||||||
|
|
||||||
|
/** 热词管理*/
|
||||||
|
UPDATE `lilishop`.`li_menu` SET `create_by` = 'admin', `create_time` = '2021-03-03 09:54:51', `delete_flag` = b'0', `update_by` = 'admin', `update_time` = '2021-07-23 19:07:45', `description` = 'null', `front_route` = 'page/article-manage/hotWords', `icon` = 'md-aperture', `level` = 2, `name` = 'hotKeyWord', `parent_id` = '1367050250249830400', `path` = 'hotKeyWord', `sort_order` = 0.00, `title` = '搜索热词', `front_component` = 'null' WHERE `id` = 1367050829697122304;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 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 DEFAULT NULL COMMENT '创建者',
|
||||||
|
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||||
|
`delete_flag` bit(1) DEFAULT NULL COMMENT '删除标志 true/false 删除/未删除',
|
||||||
|
`update_by` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '更新者',
|
||||||
|
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
||||||
|
`description` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '说明备注',
|
||||||
|
`front_route` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '前端路由',
|
||||||
|
`icon` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '图标',
|
||||||
|
`level` int DEFAULT NULL COMMENT '层级',
|
||||||
|
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '菜单/权限名称',
|
||||||
|
`parent_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '父id',
|
||||||
|
`path` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '赋权API地址,正则表达式',
|
||||||
|
`sort_order` decimal(10,2) DEFAULT NULL COMMENT '排序值',
|
||||||
|
`title` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '菜单标题',
|
||||||
|
`front_component` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '文件地址',
|
||||||
|
`permission` varchar(255) DEFAULT NULL COMMENT '权限url',
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Records of li_menu
|
||||||
|
-- ----------------------------
|
||||||
|
BEGIN;
|
||||||
|
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', NULL);
|
||||||
|
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/user*,/manager/department*,/manager/role*,/manager/menu*');
|
||||||
|
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*');
|
||||||
|
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/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/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*');
|
||||||
|
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/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', NULL);
|
||||||
|
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', NULL);
|
||||||
|
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/systems/app*');
|
||||||
|
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', NULL, NULL, NULL, NULL, 'ios-hammer', 0, 'promotion', '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', NULL, NULL, 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/member*,/manager/orders*,/manager/wallet/log*,/manager/receipt*');
|
||||||
|
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/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/members/withdraw-apply*');
|
||||||
|
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, NULL);
|
||||||
|
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, NULL);
|
||||||
|
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/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/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/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/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/store/bill*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1367049214198022144, 'admin', '2021-03-03 09:48:26', b'0', NULL, NULL, NULL, 'Main', 'md-aperture', 1, 'promotionManager', '1367040067201138688', '/', 0.00, '促销管理', NULL, NULL);
|
||||||
|
INSERT INTO `li_menu` VALUES (1367049384792948736, 'admin', '2021-03-03 09:49:07', b'0', 'admin', '2021-07-27 16:04:42', NULL, 'promotion/coupon/coupon', 'md-alert', 2, 'coupon', '1367049214198022144', 'coupon', 0.00, '优惠券', NULL, '/manager/promotion/coupon*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1367049500782231552, 'admin', '2021-03-03 09:49:34', b'0', 'admin', '2021-07-27 16:04:53', 'null', 'promotion/fullCut/full-cut', 'md-alert', 2, 'fullCut', '1367049214198022144', 'fullCut', 1.00, '满额活动', 'null', '/manager/promotion/fullDiscount*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1367049611578966016, 'admin', '2021-03-03 09:50:01', b'0', 'admin', '2021-07-27 16:04:58', 'null', 'promotion/seckill/seckill', 'md-alert', 2, 'seckill', '1367049214198022144', 'seckill', 2.00, '秒杀活动', 'null', '/manager/promotion/seckill*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1367049712657498112, 'admin', '2021-03-03 09:50:25', b'0', 'admin', '2021-07-27 16:05:02', 'null', 'promotion/pintuan/pintuan', 'md-alert', 2, 'pintuan', '1367049214198022144', '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', NULL);
|
||||||
|
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', NULL);
|
||||||
|
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/article-category*');
|
||||||
|
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/article-category*,/manager/article*');
|
||||||
|
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/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/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/store/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/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/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/noticeMessage*,/manager/message*,/manager/store*,/manager/member*');
|
||||||
|
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*,/manager/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/message/wechat*,/manager/message/wechatMPMessage*');
|
||||||
|
INSERT INTO `li_menu` VALUES (1403988156444962818, 'admin', '2021-06-13 16:10:36', b'0', 'admin', '2021-07-27 16:04:48', 'null', 'promotion/couponActivity/coupon', '', 2, 'coupon-activity', '1367049214198022144', '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', NULL, NULL, NULL, 'promotion/live/live', '', 2, 'live', '1407601962899230721', '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-07-27 16:05:14', NULL, 'promotion/pointsGoods/pointsGoods', '', 2, 'pointsGoods', '1407602441964244994', 'pointsGoods', 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-07-27 16:05:18', NULL, 'promotion/pointsGoodsCategory/pointsGoodsCategory', '', 2, 'pointsGoodsCategory', '1407602441964244994', 'pointsGoodsCategory', 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/manager/custom-words*');
|
||||||
|
COMMIT;
|
||||||
|
SET FOREIGN_KEY_CHECKS = 1;
|
||||||
|
|
||||||
|
/** 新增会员获的总积分 **/
|
||||||
|
ALTER TABLE li_member ADD total_point bigint ( 20 ) DEFAULT 0 COMMENT '积分总数量';
|
||||||
661
LICENSE
Normal file
661
LICENSE
Normal file
@ -0,0 +1,661 @@
|
|||||||
|
GNU AFFERO GENERAL PUBLIC LICENSE
|
||||||
|
Version 3, 19 November 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 Affero General Public License is a free, copyleft license for
|
||||||
|
software and other kinds of works, specifically designed to ensure
|
||||||
|
cooperation with the community in the case of network server software.
|
||||||
|
|
||||||
|
The licenses for most software and other practical works are designed
|
||||||
|
to take away your freedom to share and change the works. By contrast,
|
||||||
|
our General Public Licenses are 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.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
Developers that use our General Public Licenses protect your rights
|
||||||
|
with two steps: (1) assert copyright on the software, and (2) offer
|
||||||
|
you this License which gives you legal permission to copy, distribute
|
||||||
|
and/or modify the software.
|
||||||
|
|
||||||
|
A secondary benefit of defending all users' freedom is that
|
||||||
|
improvements made in alternate versions of the program, if they
|
||||||
|
receive widespread use, become available for other developers to
|
||||||
|
incorporate. Many developers of free software are heartened and
|
||||||
|
encouraged by the resulting cooperation. However, in the case of
|
||||||
|
software used on network servers, this result may fail to come about.
|
||||||
|
The GNU General Public License permits making a modified version and
|
||||||
|
letting the public access it on a server without ever releasing its
|
||||||
|
source code to the public.
|
||||||
|
|
||||||
|
The GNU Affero General Public License is designed specifically to
|
||||||
|
ensure that, in such cases, the modified source code becomes available
|
||||||
|
to the community. It requires the operator of a network server to
|
||||||
|
provide the source code of the modified version running there to the
|
||||||
|
users of that server. Therefore, public use of a modified version, on
|
||||||
|
a publicly accessible server, gives the public access to the source
|
||||||
|
code of the modified version.
|
||||||
|
|
||||||
|
An older license, called the Affero General Public License and
|
||||||
|
published by Affero, was designed to accomplish similar goals. This is
|
||||||
|
a different license, not a version of the Affero GPL, but Affero has
|
||||||
|
released a new version of the Affero GPL which permits relicensing under
|
||||||
|
this license.
|
||||||
|
|
||||||
|
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 Affero 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. Remote Network Interaction; Use with the GNU General Public License.
|
||||||
|
|
||||||
|
Notwithstanding any other provision of this License, if you modify the
|
||||||
|
Program, your modified version must prominently offer all users
|
||||||
|
interacting with it remotely through a computer network (if your version
|
||||||
|
supports such interaction) an opportunity to receive the Corresponding
|
||||||
|
Source of your version by providing access to the Corresponding Source
|
||||||
|
from a network server at no charge, through some standard or customary
|
||||||
|
means of facilitating copying of software. This Corresponding Source
|
||||||
|
shall include the Corresponding Source for any work covered by version 3
|
||||||
|
of the GNU General Public License that is incorporated pursuant to the
|
||||||
|
following paragraph.
|
||||||
|
|
||||||
|
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 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 work with which it is combined will remain governed by version
|
||||||
|
3 of the GNU General Public License.
|
||||||
|
|
||||||
|
14. Revised Versions of this License.
|
||||||
|
|
||||||
|
The Free Software Foundation may publish revised and/or new versions of
|
||||||
|
the GNU Affero 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 Affero 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 Affero 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 Affero 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 Affero 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 Affero General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Affero 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 your software can interact with users remotely through a computer
|
||||||
|
network, you should also make sure that it provides a way for users to
|
||||||
|
get its source. For example, if your program is a web application, its
|
||||||
|
interface could display a "Source" link that leads users to an archive
|
||||||
|
of the code. There are many ways you could offer source, and different
|
||||||
|
solutions will be better for different programs; see section 13 for the
|
||||||
|
specific requirements.
|
||||||
|
|
||||||
|
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 AGPL, see
|
||||||
|
<http://www.gnu.org/licenses/>.
|
||||||
318
README.md
318
README.md
@ -1,204 +1,176 @@
|
|||||||
## Lilishop B2B2C商城系统
|
## Lilishop B2B2C商城系统
|
||||||
|
|
||||||
### 介绍
|
#### 欢迎交流需求,交流业务,交流技术(基础问题自行解决,其他问题先看文档后提问)
|
||||||
|
|
||||||
|
#### 不用削尖脑袋往老群里加,老群活跃度较低,很多潜水党,新群相对而言活跃一些 :tw-1f606: :tw-1f606: :tw-1f606: :tw-1f606: :tw-1f606: :tw-1f606:
|
||||||
|
|
||||||
|
#### PS: **演示站点所有环境均部署master分支。如果有演示站点问题,可以反馈,如果演示站点没问题本地运行有问题,需自行处理**
|
||||||
|
|
||||||
|
##### 交流 qq 1群 961316482(已满)
|
||||||
|
##### 交流 qq 2群 875294241(已满)
|
||||||
|
##### 交流 qq 3群 263785057(已满)
|
||||||
|
##### 交流 qq 4群 674617534 (已满)
|
||||||
|
##### 交流 qq 5群 594675235
|
||||||
|
|
||||||
|
##### 体验 公众号/小程序/APP 体验,扫描二维码
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
[](https://gitee.com/beijing_hongye_huicheng/lilishop/stargazers)
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
### 商城介绍
|
||||||
**官网**:https://pickmall.cn
|
**官网**:https://pickmall.cn
|
||||||
|
|
||||||
Lilishop 是一款Java开发,基于SpringBoot的B2B2C多用户商城,前端使用 Vue、uniapp-app开发 **系统全端全部代码开源**
|
Lilishop商城系统支持商家入驻,后端基于SpringBoot 研发,前端使用 Vue、uniapp开发, **系统全端全部代码开源**
|
||||||
|
|
||||||
商城展示端包含 PC、H5、小程序、APP。
|
前后端分离,支持分布式部署,支持Docker,各个API独立,并且有独立的消费者。
|
||||||
|
|
||||||
商城包含 会员模块、**第三方登录模块**、**第三方支付模块**、**楼层装修模块**、订单模块、分销模块、文章模块、系统设置模块、流量分析模块
|
### 商城 API/消费者 聚合版
|
||||||
|
api不需要单独部署,只需启动一个jar包就可以正常运转 如有需要,可以点击跳转
|
||||||
|
https://gitee.com/beijing_hongye_huicheng/lilishop-simplify
|
||||||
|
|
||||||
系统包含各种中间件、搜索引擎、多级缓存、分布式事务、分布式任务调度等,支持Docker,支持k8s。是一款高性能,支持高并发等商城系统。
|
### 开发/使用/常见问题 帮助文档
|
||||||
|
|
||||||
开箱即用,简单配置即可部署一套属于您的系统。
|
https://docs.pickmall.cn
|
||||||
|
|
||||||
完美支持二开、学生毕业设计答辩等各个场景
|
### 项目地址
|
||||||
|
|
||||||
### 文档
|
gitee : https://gitee.com/beijing_hongye_huicheng
|
||||||
|
|
||||||
**产品文档**(需求、架构、使用、部署、开发):https://docs.pickmall.cn
|
github 镜像: https://github.com/lilishop?tab=repositories
|
||||||
|
|
||||||
|
商城UI 项目下3个文件夹
|
||||||
|
buyer:买家PC端,seller:商家端,manager:后台管理端
|
||||||
|
|
||||||
### 项目链接
|
|
||||||
|
|
||||||
**Java后台**:https://gitee.com/beijing_hongye_huicheng/lili-shop.git
|
|
||||||
|
|
||||||
**Vue后台前端**: https://gitee.com/beijing_hongye_huicheng/lili-shop-ui.git
|
|
||||||
|
|
||||||
**Uni-app**:https://gitee.com/beijing_hongye_huicheng/lili-shop-uniapp.git
|
|
||||||
|
|
||||||
**docker一键部署**:https://gitee.com/beijing_hongye_huicheng/docker.git
|
|
||||||
|
|
||||||
### 演示地址
|
### 演示地址
|
||||||
|
PS:手机验证码为 ‘111111’
|
||||||
|
|
||||||
**运营后台**:https://admin-b2b2c.pickmall.cn 账号:admin/123456
|
**平台管理端**:https://admin-b2b2c.pickmall.cn 账号:admin/123456
|
||||||
|
|
||||||
**店铺后台**:https://store-b2b2c.pickmall.cn 账号:13011111111/111111
|
**店铺管理端**:https://store-b2b2c.pickmall.cn 账号:13011111111/111111
|
||||||
|
|
||||||
**用户前台**:https://pc-b2b2c.pickmall.cn
|
**商城PC页面**:https://pc-b2b2c.pickmall.cn
|
||||||
|
|
||||||
**移动端**:https://m-b2b2c.pickmall.cn
|
**商城 小程序/公众号/APP**:扫描二维码
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
### 3行命令搭建本地环境
|
### 快速本地部署
|
||||||
|
|
||||||
#### 下载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)
|
||||||
`git clone https://gitee.com/beijing_hongye_huicheng/docker.git `
|
|
||||||
##### 部署基础环境
|
|
||||||
`docker-compose up -d`
|
|
||||||
##### 部署应用
|
|
||||||
`docker-compose -f docker-compose-application.yml up -d`
|
|
||||||
|
|
||||||
### 交流群
|
**商城数据库**
|
||||||
|
使用docker-compose部署数据库,自动初始化数据库,不需要手动下载等操作
|
||||||
|
|
||||||
**QQ群**:961316482
|
如果手动部署,才需要获取sql [点击跳转](https://gitee.com/beijing_hongye_huicheng/docker/tree/master/init/mysql) (PS:这里有与tag版本一致的sql,如果是历史版本,则docker项目也切换至历史版本获取sql即可,历史版本升级则根据java相聚的根目录DB目录下的升级sql,按需执行)。
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### 技术选型
|
|
||||||
|
|
||||||
##### Java后台
|
|
||||||
|
|
||||||
| 说明 | 框架 |
|
|
||||||
| -------------- | --------------- |
|
|
||||||
| 基础框架 | Spring Boot |
|
|
||||||
| MVC框架 | Spring MVC |
|
|
||||||
| 持久框架 | Mybatis-Plus |
|
|
||||||
| 程序构建 | Maven |
|
|
||||||
| 关系型数据库 | MySQL |
|
|
||||||
| 消息中间件AMQP | RocketMQ |
|
|
||||||
| 缓存 | Redis +MongoDB |
|
|
||||||
| 搜索引擎 | Elasticsearch |
|
|
||||||
| 安全框架 | Spring Security |
|
|
||||||
| 数据库连接池 | Druid |
|
|
||||||
| 数据库分库分表 | sharding |
|
|
||||||
| 定时任务 | xxl-job |
|
|
||||||
| 负载均衡 | Nginx |
|
|
||||||
| 静态资源 | 阿里云OSS |
|
|
||||||
| 短信 | 阿里云短信 |
|
|
||||||
| 日志处理 | Log4j |
|
|
||||||
| 接口规范 | RESTful |
|
|
||||||
| 接口文档 | Swagger |
|
|
||||||
| 认证 | JWT |
|
|
||||||
|
|
||||||
##### 前端-运营后台、店铺后台
|
|
||||||
|
|
||||||
| 说明 | 框架 |
|
|
||||||
| ---------- | ---------- |
|
|
||||||
| 构建工具 | webpack |
|
|
||||||
| JS版本 | ES6 |
|
|
||||||
| 基础JS框架 | Vue.js |
|
|
||||||
| 视频播放器 | Dplayer |
|
|
||||||
| 路由管理 | Vue Router |
|
|
||||||
| 状态管理 | Vuex |
|
|
||||||
| 基础UI库 | iView |
|
|
||||||
| UI界面基于 | iView |
|
|
||||||
| 网络请求 | axios |
|
|
||||||
| CSS预处理 | scss |
|
|
||||||
| 代码检查 | ESLint |
|
|
||||||
| 数据可视化 | AntV g2 |
|
|
||||||
| 地图引擎 | amap |
|
|
||||||
|
|
||||||
##### 前端-移动端
|
|
||||||
|
|
||||||
| 说明 | 架构 |
|
|
||||||
| --------- | ------- |
|
|
||||||
| 基础UI库 | uViewui |
|
|
||||||
| 基础框架 | uni-app |
|
|
||||||
| CSS预处理 | scss |
|
|
||||||
| 地图引擎 | amap |
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### 功能列表
|
### 功能列表
|
||||||
|
|
||||||
<table>
|
|
||||||
<tr><td colspan="2">运营后台功能</td></tr>
|
|
||||||
<tr><td>首页</td><td>平台统计、待办事项、流量统计</td></tr>
|
|
||||||
<tr><td rowspan="5">会员</td><td>会员列表</td></tr>
|
|
||||||
<tr><td>评价列表</td></tr>
|
|
||||||
<tr><td>积分历史</td></tr>
|
|
||||||
<tr><td>会员资金</td></tr>
|
|
||||||
<tr><td>充值记录</td></tr>
|
|
||||||
<tr><td rowspan="6">订单</td><td>商品订单</td></tr>
|
|
||||||
<tr><td>订单售后</td></tr>
|
|
||||||
<tr><td>交易投诉</td></tr>
|
|
||||||
<tr><td>售后原因</td></tr>
|
|
||||||
<tr><td>收款流水</td></tr>
|
|
||||||
<tr><td>退款流水</td></tr>
|
|
||||||
<tr><td rowspan="6">商品</td><td>商品列表</td></tr>
|
|
||||||
<tr><td>商品审核</td></tr>
|
|
||||||
<tr><td>商品分类</td></tr>
|
|
||||||
<tr><td>商品品牌</td></tr>
|
|
||||||
<tr><td>商品规格</td></tr>
|
|
||||||
<tr><td>计量单位</td></tr>
|
|
||||||
<tr><td rowspan="5">促销</td><td>优惠券</td></tr>
|
|
||||||
<tr><td>秒杀活动</td></tr>
|
|
||||||
<tr><td>拼团活动</td></tr>
|
|
||||||
<tr><td>积分商品</td></tr>
|
|
||||||
<tr><td>积分分类</td></tr>
|
|
||||||
<tr><td rowspan="5">店铺</td><td>店铺管理</td></tr>
|
|
||||||
<tr><td>店铺结算</td></tr>
|
|
||||||
<tr><td>店铺结算</td></tr>
|
|
||||||
<tr><td>店铺结算</td></tr>
|
|
||||||
<tr><td>店铺对账</td></tr>
|
|
||||||
<tr><td rowspan="9">运营</td><td>店铺对账</td></tr>
|
|
||||||
<tr><td>PC端楼层装修</td></tr>
|
|
||||||
<tr><td>移动端楼层装修</td></tr>
|
|
||||||
<tr><td>分销管理</td></tr>
|
|
||||||
<tr><td>文章管理</td></tr>
|
|
||||||
<tr><td>意见反馈</td></tr>
|
|
||||||
<tr><td>站内信</td></tr>
|
|
||||||
<tr><td>短信管理</td></tr>
|
|
||||||
<tr><td>APP版本管理</td></tr>
|
|
||||||
<tr><td rowspan="4">统计</td><td>会员统计</td></tr>
|
|
||||||
<tr><td>订单统计</td></tr>
|
|
||||||
<tr><td>商品统计</td></tr>
|
|
||||||
<tr><td>流量统计</td></tr>
|
|
||||||
<tr><td rowspan="11">设置</td><td>用户管理</td></tr>
|
|
||||||
<tr><td>菜单管理</td></tr>
|
|
||||||
<tr><td>部门管理</td></tr>
|
|
||||||
<tr><td>系统设置</td></tr>
|
|
||||||
<tr><td>OSS资源</td></tr>
|
|
||||||
<tr><td>行政地区</td></tr>
|
|
||||||
<tr><td>物流公司</td></tr>
|
|
||||||
<tr><td>信任登录</td></tr>
|
|
||||||
<tr><td>支付设置</td></tr>
|
|
||||||
<tr><td>验证码管理</td></tr>
|
|
||||||
<tr><td>敏感词管理</td></tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<table>
|
|
||||||
<tr><td colspan="2">店铺后台功能列表</td></tr>
|
|
||||||
<tr><td rowspan="3">首页</td><td>店铺信息</td></tr>
|
|
||||||
<tr><td>待办事项</td></tr>
|
|
||||||
<tr><td>平台公告</td></tr>
|
|
||||||
<tr><td rowspan="3">商品</td><td>商品发布</td></tr>
|
|
||||||
<tr><td>商品列表</td></tr>
|
|
||||||
<tr><td>店铺商品分类</td></tr>
|
|
||||||
<tr><td rowspan="5">订单</td><td>商品订单</td></tr>
|
|
||||||
<tr><td>退货管理</td></tr>
|
|
||||||
<tr><td>退款管理</td></tr>
|
|
||||||
<tr><td>投诉管理</td></tr>
|
|
||||||
<tr><td>评价管理</td></tr>
|
|
||||||
<tr><td rowspan="3">财务</td><td>财务对账</td></tr>
|
|
||||||
<tr><td>店铺结算</td></tr>
|
|
||||||
<tr><td>发票管理</td></tr>
|
|
||||||
<tr><td rowspan="5">促销</td><td>拼团管理</td></tr>
|
|
||||||
<tr><td>秒杀活动</td></tr>
|
|
||||||
<tr><td>满额活动</td></tr>
|
|
||||||
<tr><td>优惠券</td></tr>
|
|
||||||
<tr><td>分销商品</td></tr>
|
|
||||||
<tr><td rowspan="2">统计</td><td>商品统计</td></tr>
|
|
||||||
<tr><td>订单统计</td></tr>
|
|
||||||
<tr><td rowspan="5">设置</td><td>配送模板</td></tr>
|
|
||||||
<tr><td>物流公司</td></tr>
|
|
||||||
<tr><td>店铺设置</td></tr>
|
|
||||||
<tr><td>自提点管理</td></tr>
|
|
||||||
<tr><td>系统消息</td></tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
### 授权
|
#### 平台管理端功能
|
||||||
Lilishop学习免费,限制商用,如果需要商业使用请联系我们。QQ3409056806
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#### 卖家功能
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
### 商城前端功能展示
|
||||||
|
|
||||||
|
#### 商城移动端
|
||||||
|
|
||||||
|
<img src="https://static.pickmall.cn/images/other/app.gif" alt="移动端功能展示" style="zoom:50%;" />
|
||||||
|
|
||||||
|
#### 平台管理端
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
### 技术选型
|
||||||
|
|
||||||
|
#### 架构图
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
##### 后台技术选型
|
||||||
|
|
||||||
|
| 说明 | 框架 | 说明 | |
|
||||||
|
| -------------- | --------------- | -------------- | ------------- |
|
||||||
|
| 基础框架 | Spring Boot | MVC框架 | Spring MVC |
|
||||||
|
| 持久框架 | Mybatis-Plus | 程序构建 | Maven |
|
||||||
|
| 关系型数据库 | MySQL | 消息中间件AMQP | RocketMQ |
|
||||||
|
| 缓存 | Redis +MongoDB | 搜索引擎 | Elasticsearch |
|
||||||
|
| 安全框架 | Spring Security | 数据库连接池 | Druid |
|
||||||
|
| 数据库分库分表 | sharding | 定时任务 | xxl-job |
|
||||||
|
| 负载均衡 | Nginx | 静态资源 | 阿里云OSS |
|
||||||
|
| 短信 | 阿里云短信 | 认证 | JWT |
|
||||||
|
| 日志处理 | Log4j | 接口规范 | RESTful |
|
||||||
|
|
||||||
|
##### 前端-运营后台、店铺后台
|
||||||
|
|
||||||
|
| 说明 | 框架 | 说明 | 框架 |
|
||||||
|
| ---------- | ---------- | ---------- | ------- |
|
||||||
|
| 构建工具 | webpack | JS版本 | ES6 |
|
||||||
|
| 基础JS框架 | Vue.js | 视频播放器 | Dplayer |
|
||||||
|
| 路由管理 | Vue Router | 状态管理 | Vuex |
|
||||||
|
| 基础UI库 | iView | UI界面基于 | iView |
|
||||||
|
| 网络请求 | axios | | |
|
||||||
|
|
||||||
|
##### 前端-移动端
|
||||||
|
|
||||||
|
| 说明 | 架构 | 说明 | 架构 |
|
||||||
|
| --------- | ------- | -------- | ------- |
|
||||||
|
| 基础UI库 | uViewui | 基础框架 | uni-app |
|
||||||
|
| CSS预处理 | scss | 地图引擎 | amap |
|
||||||
|
|
||||||
|
### 版本升级
|
||||||
|
|
||||||
|
```
|
||||||
|
系统后续会提供多场景解决方案。
|
||||||
|
更多架构:微服务、Saas、中台等,都会支持。 支持差价升级商业授权
|
||||||
|
```
|
||||||
|
|
||||||
|
### 商业授权
|
||||||
|
商业版本与开源版本代码一致,没有区分
|
||||||
|
|
||||||
|
商业使用需要授权,授权方式可选择联系官网客服,或者qq群联系群主。
|
||||||
|
|
||||||
|
商业授权模式为永久授权,支持永久升级。
|
||||||
|
|
||||||
|
商业案例由于涉及部分多层二开关系,如需了解可以咨询销售。
|
||||||
|
|
||||||
|
|
||||||
|
### 开源须知
|
||||||
|
1.仅允许用于个人学习研究使用.
|
||||||
|
|
||||||
|
2.禁止将本开源的代码和资源进行任何形式任何名义的出售.
|
||||||
|
|
||||||
|
3.软件受国家计算机软件著作权保护(登记号:2021SR0805085)。
|
||||||
|
|
||||||
|
4.限制商用,如果需要商业使用请联系我们。QQ3409056806.或者加入qq群联系群主。
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### 交流群
|
||||||
|
|
||||||
|
##### 交流 qq 1群 961316482(已满)
|
||||||
|
##### 交流 qq 2群 875294241(已满)
|
||||||
|
##### 交流 qq 3群 263785057(已满)
|
||||||
|
##### 交流 qq 4群 674617534(已满)
|
||||||
|
##### 交流 qq 5群 594675235
|
||||||
|
|
||||||
|
### 附录
|
||||||
|
有人有自己的学习视频、学习记录文档、希望宣传关联开源项目等均可以私聊仓库所有者。
|
||||||
|
|
||||||
|
类似:
|
||||||
|
|
||||||
|
清晨敲代码同学的分析: https://blog.csdn.net/vaevaevae233/category_12103567.html
|
||||||
@ -6,7 +6,8 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>cn.lili</groupId>
|
<groupId>cn.lili</groupId>
|
||||||
<artifactId>lili-shop-parent</artifactId>
|
<artifactId>lili-shop-parent</artifactId>
|
||||||
<version>1.0.1</version>
|
<version>${revision}</version>
|
||||||
|
<relativePath>../pom.xml</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>admin</artifactId>
|
<artifactId>admin</artifactId>
|
||||||
@ -15,7 +16,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>de.codecentric</groupId>
|
<groupId>de.codecentric</groupId>
|
||||||
<artifactId>spring-boot-admin-starter-server</artifactId>
|
<artifactId>spring-boot-admin-starter-server</artifactId>
|
||||||
<version>2.3.1</version>
|
<version>${spring-boot-admin}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
@ -26,10 +27,15 @@
|
|||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
<artifactId>spring-boot-starter-security</artifactId>
|
<artifactId>spring-boot-starter-security</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
<!-- <dependency>-->
|
<dependency>
|
||||||
<!-- <groupId>org.springframework.boot</groupId>-->
|
<groupId>net.logstash.logback</groupId>
|
||||||
<!-- <artifactId>spring-boot-starter-mail</artifactId>-->
|
<artifactId>logstash-logback-encoder</artifactId>
|
||||||
<!-- </dependency> -->
|
<version>${logstash-logback-encoder}</version>
|
||||||
|
</dependency>
|
||||||
|
<!-- <dependency>-->
|
||||||
|
<!-- <groupId>org.springframework.boot</groupId>-->
|
||||||
|
<!-- <artifactId>spring-boot-starter-mail</artifactId>-->
|
||||||
|
<!-- </dependency> -->
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
|||||||
@ -12,6 +12,12 @@ import org.springframework.security.web.authentication.SavedRequestAwareAuthenti
|
|||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Admin
|
||||||
|
*
|
||||||
|
* @author Chopper
|
||||||
|
* @since 2020/11/16 10:03 下午
|
||||||
|
*/
|
||||||
@Configuration
|
@Configuration
|
||||||
@EnableAutoConfiguration
|
@EnableAutoConfiguration
|
||||||
@EnableAdminServer
|
@EnableAdminServer
|
||||||
@ -37,11 +43,11 @@ public class AdminApplication {
|
|||||||
successHandler.setDefaultTargetUrl(this.adminServer.path("/"));
|
successHandler.setDefaultTargetUrl(this.adminServer.path("/"));
|
||||||
http.authorizeRequests().antMatchers("/instances**").permitAll();
|
http.authorizeRequests().antMatchers("/instances**").permitAll();
|
||||||
http.authorizeRequests(
|
http.authorizeRequests(
|
||||||
(authorizeRequests) -> authorizeRequests.antMatchers(this.adminServer.path("/assets/**")).permitAll() // 授予公众对所有静态资产和登录页面的访问权限。
|
(authorizeRequests) -> authorizeRequests.antMatchers(this.adminServer.path("/assets/**")).permitAll() //授予公众对所有静态资产和登录页面的访问权限。
|
||||||
.antMatchers(this.adminServer.path("/login")).permitAll().anyRequest().authenticated() //其他所有请求都必须经过验证。
|
.antMatchers(this.adminServer.path("/login")).permitAll().anyRequest().authenticated() //其他所有请求都必须经过验证。
|
||||||
).formLogin(
|
).formLogin(
|
||||||
(formLogin) -> formLogin.loginPage(this.adminServer.path("/login")).successHandler(successHandler).and() // 配置登录和注销。
|
(formLogin) -> formLogin.loginPage(this.adminServer.path("/login")).successHandler(successHandler).and() //配置登录和注销。
|
||||||
).logout((logout) -> logout.logoutUrl(this.adminServer.path("/logout"))).httpBasic(Customizer.withDefaults()) // 启用HTTP基本支持。这是Spring Boot Admin Client注册所必需的。
|
).logout((logout) -> logout.logoutUrl(this.adminServer.path("/logout"))).httpBasic(Customizer.withDefaults()) //启用HTTP基本支持。这是Spring Boot Admin Client注册所必需的。
|
||||||
.csrf().disable()
|
.csrf().disable()
|
||||||
.rememberMe((rememberMe) -> rememberMe.key(UUID.randomUUID().toString()).tokenValiditySeconds(1209600));
|
.rememberMe((rememberMe) -> rememberMe.key(UUID.randomUUID().toString()).tokenValiditySeconds(1209600));
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
42
admin/src/main/resources/logback-spring.xml
Normal file
42
admin/src/main/resources/logback-spring.xml
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE configuration>
|
||||||
|
<configuration>
|
||||||
|
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
|
||||||
|
<include resource="org/springframework/boot/logging/logback/console-appender.xml"/>
|
||||||
|
<!--应用名称-->
|
||||||
|
<springProperty scope="context" name="APP_NAME" source="spring.application.name"/>
|
||||||
|
<!--日志文件保存路径-->
|
||||||
|
<springProperty scope="context" name="LOG_FILE_PATH" source="logging.file.path"/>
|
||||||
|
<springProperty scope="context" name="LOGSTASH_SERVER" source="lili.data.logstash.server"/>
|
||||||
|
<contextName>${APP_NAME}</contextName>
|
||||||
|
|
||||||
|
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||||
|
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||||
|
<fileNamePattern>${LOG_FILE_PATH}/${APP_NAME}-%d{yyyy-MM-dd}.log</fileNamePattern>
|
||||||
|
<maxHistory>30</maxHistory>
|
||||||
|
</rollingPolicy>
|
||||||
|
<encoder>
|
||||||
|
<pattern>${FILE_LOG_PATTERN}</pattern>
|
||||||
|
</encoder>
|
||||||
|
</appender>
|
||||||
|
|
||||||
|
<!--输出到elk的LOGSTASH-->
|
||||||
|
<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
|
||||||
|
<!-- 配置elk日志收集 配饰的是 LOGSTASH 的地址-->
|
||||||
|
<destination>${LOGSTASH_SERVER}</destination>
|
||||||
|
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder">
|
||||||
|
<providers>
|
||||||
|
<timestamp>
|
||||||
|
<timeZone>UTC</timeZone>
|
||||||
|
</timestamp>
|
||||||
|
</providers>
|
||||||
|
<!--自定义字段 区分项目-->
|
||||||
|
<customFields>{"appName":"${APP_NAME}"}</customFields>
|
||||||
|
</encoder>
|
||||||
|
</appender>
|
||||||
|
<root level="INFO">
|
||||||
|
<appender-ref ref="CONSOLE"/>
|
||||||
|
<appender-ref ref="FILE"/>
|
||||||
|
<appender-ref ref="LOGSTASH"/>
|
||||||
|
</root>
|
||||||
|
</configuration>
|
||||||
@ -3,21 +3,19 @@
|
|||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<properties>
|
|
||||||
<enjoy.version>4.3</enjoy.version>
|
|
||||||
</properties>
|
|
||||||
<artifactId>buyer-api</artifactId>
|
<artifactId>buyer-api</artifactId>
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>cn.lili</groupId>
|
<groupId>cn.lili</groupId>
|
||||||
<artifactId>lili-shop-parent</artifactId>
|
<artifactId>lili-shop-parent</artifactId>
|
||||||
<version>1.0.1</version>
|
<version>${revision}</version>
|
||||||
|
<relativePath>../pom.xml</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>cn.lili</groupId>
|
<groupId>cn.lili</groupId>
|
||||||
<artifactId>framework</artifactId>
|
<artifactId>framework</artifactId>
|
||||||
<version>1.0.1</version>
|
<version>${revision}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|||||||
@ -6,7 +6,6 @@ import org.springframework.cache.annotation.EnableCaching;
|
|||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Primary;
|
import org.springframework.context.annotation.Primary;
|
||||||
import org.springframework.core.task.TaskExecutor;
|
import org.springframework.core.task.TaskExecutor;
|
||||||
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
|
|
||||||
import org.springframework.scheduling.annotation.EnableAsync;
|
import org.springframework.scheduling.annotation.EnableAsync;
|
||||||
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
||||||
|
|
||||||
@ -14,10 +13,9 @@ import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
|||||||
* 买家API
|
* 买家API
|
||||||
*
|
*
|
||||||
* @author Chopper
|
* @author Chopper
|
||||||
* @date 2020/11/16 10:03 下午
|
* @since 2020/11/16 10:03 下午
|
||||||
*/
|
*/
|
||||||
@SpringBootApplication
|
@SpringBootApplication
|
||||||
@EnableJpaAuditing
|
|
||||||
@EnableCaching
|
@EnableCaching
|
||||||
@EnableAsync
|
@EnableAsync
|
||||||
public class BuyerApiApplication {
|
public class BuyerApiApplication {
|
||||||
@ -31,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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,23 +0,0 @@
|
|||||||
package cn.lili.controller;
|
|
||||||
|
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
|
||||||
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
|
|
||||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
|
||||||
import springfox.documentation.spring.web.SpringfoxWebMvcConfiguration;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* SwaggerBootstrapUiDemoApplication
|
|
||||||
*
|
|
||||||
* @author Chopper
|
|
||||||
* @version v1.0
|
|
||||||
* 2020-12-09 20:09
|
|
||||||
*/
|
|
||||||
@ConditionalOnClass(SpringfoxWebMvcConfiguration.class)
|
|
||||||
public class SwaggerBootstrapUiDemoApplication implements WebMvcConfigurer {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void addResourceHandlers(ResourceHandlerRegistry registry) {
|
|
||||||
registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");
|
|
||||||
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,19 +1,17 @@
|
|||||||
package cn.lili.controller.distribution;
|
package cn.lili.controller.distribution;
|
||||||
|
|
||||||
import cn.lili.common.security.context.UserContext;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
import cn.lili.common.utils.ResultUtil;
|
|
||||||
import cn.lili.common.vo.ResultMessage;
|
import cn.lili.common.vo.ResultMessage;
|
||||||
import cn.lili.modules.distribution.entity.dos.Distribution;
|
import cn.lili.modules.distribution.entity.dos.Distribution;
|
||||||
import cn.lili.modules.distribution.entity.dos.DistributionOrder;
|
import cn.lili.modules.distribution.entity.dos.DistributionOrder;
|
||||||
|
import cn.lili.modules.distribution.entity.dto.DistributionApplyDTO;
|
||||||
import cn.lili.modules.distribution.entity.vos.DistributionOrderSearchParams;
|
import cn.lili.modules.distribution.entity.vos.DistributionOrderSearchParams;
|
||||||
import cn.lili.modules.distribution.service.DistributionOrderService;
|
import cn.lili.modules.distribution.service.DistributionOrderService;
|
||||||
import cn.lili.modules.distribution.service.DistributionService;
|
import cn.lili.modules.distribution.service.DistributionService;
|
||||||
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;
|
||||||
import io.swagger.annotations.ApiImplicitParams;
|
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
@ -22,38 +20,34 @@ import org.springframework.web.bind.annotation.*;
|
|||||||
* 买家端,分销员接口
|
* 买家端,分销员接口
|
||||||
*
|
*
|
||||||
* @author pikachu
|
* @author pikachu
|
||||||
* @date: 2020/11/16 10:03 下午
|
* @since 2020/11/16 10:03 下午
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,分销员接口")
|
@Api(tags = "买家端,分销员接口")
|
||||||
@RequestMapping("/buyer/distribution")
|
@RequestMapping("/buyer/distribution/distribution")
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
|
||||||
public class DistributionBuyerController {
|
public class DistributionBuyerController {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分销员
|
* 分销员
|
||||||
*/
|
*/
|
||||||
private final DistributionService distributionService;
|
@Autowired
|
||||||
|
private DistributionService distributionService;
|
||||||
/**
|
/**
|
||||||
* 分销员订单
|
* 分销员订单
|
||||||
*/
|
*/
|
||||||
private final DistributionOrderService distributionOrderService;
|
@Autowired
|
||||||
|
private DistributionOrderService distributionOrderService;
|
||||||
|
|
||||||
//申请分销员
|
|
||||||
@ApiOperation(value = "申请分销员")
|
@ApiOperation(value = "申请分销员")
|
||||||
@ApiImplicitParams({
|
|
||||||
@ApiImplicitParam(name = "name", value = "姓名", required = true, paramType = "query", dataType = "String"),
|
|
||||||
@ApiImplicitParam(name = "idNumber", value = "身份证号", required = true, paramType = "query", dataType = "String")
|
|
||||||
})
|
|
||||||
@PostMapping
|
@PostMapping
|
||||||
public ResultMessage<Object> applyDistribution(@RequestParam String name, @RequestParam String idNumber) {
|
public ResultMessage<Object> applyDistribution(DistributionApplyDTO distributionApplyDTO) {
|
||||||
return ResultUtil.data(distributionService.applyDistribution(name, idNumber));
|
return ResultUtil.data(distributionService.applyDistribution(distributionApplyDTO));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "获取分销员分页订单列表")
|
@ApiOperation(value = "获取分销员分页订单列表")
|
||||||
@GetMapping("/distributionOrder")
|
@GetMapping("/distributionOrder")
|
||||||
public ResultMessage<IPage<DistributionOrder>> distributionOrderPage(DistributionOrderSearchParams distributionOrderSearchParams) {
|
public ResultMessage<IPage<DistributionOrder>> distributionOrderPage(DistributionOrderSearchParams distributionOrderSearchParams) {
|
||||||
distributionOrderSearchParams.setDistributionId(UserContext.getCurrentUser().getId());
|
distributionOrderSearchParams.setDistributionId(distributionService.getDistribution().getId());
|
||||||
return ResultUtil.data(distributionOrderService.getDistributionOrderPage(distributionOrderSearchParams));
|
return ResultUtil.data(distributionOrderService.getDistributionOrderPage(distributionOrderSearchParams));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -65,4 +59,12 @@ public class DistributionBuyerController {
|
|||||||
|
|
||||||
return ResultUtil.data(distributionService.getDistribution());
|
return ResultUtil.data(distributionService.getDistribution());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "绑定分销员")
|
||||||
|
@ApiImplicitParam(name = "distributionId", value = "分销员ID", required = true, paramType = "path")
|
||||||
|
@GetMapping("/bindingDistribution/{distributionId}")
|
||||||
|
public ResultMessage<Object> bindingDistribution(@PathVariable String distributionId){
|
||||||
|
distributionService.bindingDistribution(distributionId);
|
||||||
|
return ResultUtil.success();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,9 @@
|
|||||||
package cn.lili.controller.distribution;
|
package cn.lili.controller.distribution;
|
||||||
|
|
||||||
import cn.lili.common.utils.ResultUtil;
|
import cn.lili.common.aop.annotation.PreventDuplicateSubmissions;
|
||||||
|
import cn.lili.common.enums.ResultCode;
|
||||||
|
import cn.lili.common.enums.ResultUtil;
|
||||||
|
import cn.lili.common.exception.ServiceException;
|
||||||
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.distribution.entity.dos.DistributionCash;
|
import cn.lili.modules.distribution.entity.dos.DistributionCash;
|
||||||
@ -10,14 +13,16 @@ 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.RequiredArgsConstructor;
|
|
||||||
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;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
import springfox.documentation.annotations.ApiIgnore;
|
import springfox.documentation.annotations.ApiIgnore;
|
||||||
|
|
||||||
|
import javax.validation.constraints.Max;
|
||||||
|
import javax.validation.constraints.Min;
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
|
|
||||||
|
|
||||||
@ -25,32 +30,39 @@ import javax.validation.constraints.NotNull;
|
|||||||
* 买家端,分销商品佣金提现接口
|
* 买家端,分销商品佣金提现接口
|
||||||
*
|
*
|
||||||
* @author pikachu
|
* @author pikachu
|
||||||
* @date: 2020/11/16 10:03 下午
|
* @since 2020/11/16 10:03 下午
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,分销商品佣金提现接口")
|
@Api(tags = "买家端,分销商品佣金提现接口")
|
||||||
@RequestMapping("/buyer/distribution/cash")
|
@RequestMapping("/buyer/distribution/cash")
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
@Validated
|
||||||
public class DistributionCashBuyerController {
|
public class DistributionCashBuyerController {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分销佣金
|
* 分销佣金
|
||||||
*/
|
*/
|
||||||
private final DistributionCashService distributionCashService;
|
@Autowired
|
||||||
|
private DistributionCashService distributionCashService;
|
||||||
/**
|
/**
|
||||||
* 分销员提现
|
* 分销员提现
|
||||||
*/
|
*/
|
||||||
private final DistributionCashService distributorCashService;
|
@Autowired
|
||||||
|
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<Boolean> cash(@NotNull @ApiIgnore Double price) {
|
public ResultMessage<Object> cash(@Validated @Max(value = 9999, message = "提现金额单次最多允许提现9999元")
|
||||||
Boolean result = distributionCashService.cash(price);
|
@Min(value = 1, message = "提现金额单次最少提现金额为1元")
|
||||||
return ResultUtil.data(result);
|
@NotNull @ApiIgnore Double price) {
|
||||||
|
if (Boolean.TRUE.equals(distributionCashService.cash(price))) {
|
||||||
|
return ResultUtil.success();
|
||||||
|
}
|
||||||
|
throw new ServiceException(ResultCode.ERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "分销员提现历史")
|
@ApiOperation(value = "分销员提现历史")
|
||||||
|
|||||||
@ -1,7 +1,9 @@
|
|||||||
package cn.lili.controller.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.utils.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.distribution.entity.dto.DistributionGoodsSearchParams;
|
import cn.lili.modules.distribution.entity.dto.DistributionGoodsSearchParams;
|
||||||
import cn.lili.modules.distribution.entity.vos.DistributionGoodsVO;
|
import cn.lili.modules.distribution.entity.vos.DistributionGoodsVO;
|
||||||
@ -10,8 +12,8 @@ import cn.lili.modules.distribution.service.DistributionSelectedGoodsService;
|
|||||||
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;
|
||||||
|
import io.swagger.annotations.ApiImplicitParams;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
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.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
@ -24,22 +26,23 @@ import javax.validation.constraints.NotNull;
|
|||||||
* 买家端,分销商品接口
|
* 买家端,分销商品接口
|
||||||
*
|
*
|
||||||
* @author Bulbasaur
|
* @author Bulbasaur
|
||||||
* @date: 2020/11/16 10:06 下午
|
* @since 2020/11/16 10:06 下午
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,分销商品接口")
|
@Api(tags = "买家端,分销商品接口")
|
||||||
@RequestMapping("/buyer/distributionGoods")
|
@RequestMapping("/buyer/distribution/goods")
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
|
||||||
public class DistributionGoodsBuyerController {
|
public class DistributionGoodsBuyerController {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分销商品
|
* 分销商品
|
||||||
*/
|
*/
|
||||||
private final DistributionGoodsService distributionGoodsService;
|
@Autowired
|
||||||
|
private DistributionGoodsService distributionGoodsService;
|
||||||
/**
|
/**
|
||||||
* 选择分销商品
|
* 选择分销商品
|
||||||
*/
|
*/
|
||||||
private final DistributionSelectedGoodsService distributionSelectedGoodsService;
|
@Autowired
|
||||||
|
private DistributionSelectedGoodsService distributionSelectedGoodsService;
|
||||||
|
|
||||||
|
|
||||||
@ApiOperation(value = "获取分销商商品列表")
|
@ApiOperation(value = "获取分销商商品列表")
|
||||||
@ -48,14 +51,27 @@ public class DistributionGoodsBuyerController {
|
|||||||
return ResultUtil.data(distributionGoodsService.goodsPage(distributionGoodsSearchParams));
|
return ResultUtil.data(distributionGoodsService.goodsPage(distributionGoodsSearchParams));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PreventDuplicateSubmissions
|
||||||
@ApiOperation(value = "选择分销商品")
|
@ApiOperation(value = "选择分销商品")
|
||||||
@ApiImplicitParam(name = "distributionGoodsId", value = "分销ID", required = true, dataType = "String", paramType = "path")
|
@ApiImplicitParams({
|
||||||
|
@ApiImplicitParam(name = "distributionGoodsId", value = "分销ID", required = true, dataType = "String", paramType = "path"),
|
||||||
|
@ApiImplicitParam(name = "checked", value = "是否选择", required = true, dataType = "boolean", paramType = "query")
|
||||||
|
})
|
||||||
@GetMapping(value = "/checked/{distributionGoodsId}")
|
@GetMapping(value = "/checked/{distributionGoodsId}")
|
||||||
public ResultMessage<IPage<DistributionGoodsVO>> distributionCheckGoods(
|
public ResultMessage<Object> distributionCheckGoods(
|
||||||
@NotNull(message = "分销商品不能为空") @PathVariable("distributionGoodsId") String distributionGoodsId) {
|
@NotNull(message = "分销商品不能为空") @PathVariable("distributionGoodsId") String distributionGoodsId, Boolean checked) {
|
||||||
if (distributionSelectedGoodsService.add(distributionGoodsId)) {
|
Boolean result = false;
|
||||||
return ResultUtil.success(ResultCode.SUCCESS);
|
if (checked) {
|
||||||
|
result = distributionSelectedGoodsService.add(distributionGoodsId);
|
||||||
|
} else {
|
||||||
|
result = distributionSelectedGoodsService.delete(distributionGoodsId);
|
||||||
}
|
}
|
||||||
return ResultUtil.error(ResultCode.ERROR);
|
//判断操作结果
|
||||||
|
if (result) {
|
||||||
|
return ResultUtil.success(ResultCode.SUCCESS);
|
||||||
|
} else {
|
||||||
|
throw new ServiceException(ResultCode.ERROR);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
package cn.lili.controller.distribution;
|
package cn.lili.controller.distribution;
|
||||||
|
|
||||||
import cn.lili.common.utils.ResultUtil;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
import cn.lili.common.vo.ResultMessage;
|
import cn.lili.common.vo.ResultMessage;
|
||||||
import cn.lili.modules.distribution.entity.dos.DistributionOrder;
|
import cn.lili.modules.distribution.entity.dos.DistributionOrder;
|
||||||
import cn.lili.modules.distribution.entity.vos.DistributionOrderSearchParams;
|
import cn.lili.modules.distribution.entity.vos.DistributionOrderSearchParams;
|
||||||
@ -9,7 +9,6 @@ import cn.lili.modules.distribution.service.DistributionService;
|
|||||||
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 lombok.RequiredArgsConstructor;
|
|
||||||
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.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
@ -20,22 +19,23 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
* 买家端,分销商品佣金提现接口
|
* 买家端,分销商品佣金提现接口
|
||||||
*
|
*
|
||||||
* @author pikachu
|
* @author pikachu
|
||||||
* @date: 2020/11/16 10:03 下午
|
* @since 2020/11/16 10:03 下午
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,分销订单接口")
|
@Api(tags = "买家端,分销订单接口")
|
||||||
@RequestMapping("/buyer/distribution/order")
|
@RequestMapping("/buyer/distribution/order")
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
|
||||||
public class DistributionOrderBuyerController {
|
public class DistributionOrderBuyerController {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分销订单
|
* 分销订单
|
||||||
*/
|
*/
|
||||||
private final DistributionOrderService distributionOrderService;
|
@Autowired
|
||||||
|
private DistributionOrderService distributionOrderService;
|
||||||
/**
|
/**
|
||||||
* 分销员
|
* 分销员
|
||||||
*/
|
*/
|
||||||
private final DistributionService distributionService;
|
@Autowired
|
||||||
|
private DistributionService distributionService;
|
||||||
|
|
||||||
|
|
||||||
@ApiOperation(value = "分销员订单")
|
@ApiOperation(value = "分销员订单")
|
||||||
|
|||||||
@ -1,13 +1,12 @@
|
|||||||
package cn.lili.controller.goods;
|
package cn.lili.controller.goods;
|
||||||
|
|
||||||
import cn.lili.common.utils.ResultUtil;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
import cn.lili.common.vo.ResultMessage;
|
import cn.lili.common.vo.ResultMessage;
|
||||||
import cn.lili.modules.goods.entity.vos.CategoryVO;
|
import cn.lili.modules.goods.entity.vos.CategoryVO;
|
||||||
import cn.lili.modules.goods.service.CategoryService;
|
import cn.lili.modules.goods.service.CategoryService;
|
||||||
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;
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
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.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
@ -22,17 +21,17 @@ import java.util.List;
|
|||||||
* 买家端,商品分类接口
|
* 买家端,商品分类接口
|
||||||
*
|
*
|
||||||
* @author Chopper
|
* @author Chopper
|
||||||
* @date: 2020/11/16 10:05 下午
|
* @since 2020/11/16 10:05 下午
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,商品分类接口")
|
@Api(tags = "买家端,商品分类接口")
|
||||||
@RequestMapping("/buyer/category")
|
@RequestMapping("/buyer/goods/category")
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
|
||||||
public class CategoryBuyerController {
|
public class CategoryBuyerController {
|
||||||
/**
|
/**
|
||||||
* 商品分类
|
* 商品分类
|
||||||
*/
|
*/
|
||||||
private final CategoryService categoryService;
|
@Autowired
|
||||||
|
private CategoryService categoryService;
|
||||||
|
|
||||||
@ApiOperation(value = "获取商品分类列表")
|
@ApiOperation(value = "获取商品分类列表")
|
||||||
@ApiImplicitParam(name = "parentId", value = "上级分类ID,全部分类为:0", required = true, dataType = "Long", paramType = "path")
|
@ApiImplicitParam(name = "parentId", value = "上级分类ID,全部分类为:0", required = true, dataType = "Long", paramType = "path")
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
package cn.lili.controller.goods;
|
package cn.lili.controller.goods;
|
||||||
|
|
||||||
import cn.hutool.core.text.CharSequenceUtil;
|
import cn.lili.common.enums.ResultCode;
|
||||||
import cn.lili.common.utils.ResultUtil;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
|
import cn.lili.common.exception.ServiceException;
|
||||||
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.distribution.service.DistributionService;
|
|
||||||
import cn.lili.modules.goods.entity.dos.Goods;
|
import cn.lili.modules.goods.entity.dos.Goods;
|
||||||
import cn.lili.modules.goods.entity.dto.GoodsSearchParams;
|
import cn.lili.modules.goods.entity.dto.GoodsSearchParams;
|
||||||
import cn.lili.modules.goods.entity.vos.GoodsVO;
|
import cn.lili.modules.goods.entity.vos.GoodsVO;
|
||||||
@ -14,16 +14,17 @@ 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;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
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.RequiredArgsConstructor;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.data.domain.Page;
|
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
@ -37,31 +38,32 @@ import java.util.Map;
|
|||||||
* 买家端,商品接口
|
* 买家端,商品接口
|
||||||
*
|
*
|
||||||
* @author Chopper
|
* @author Chopper
|
||||||
* @date 2020/11/16 10:06 下午
|
* @since 2020/11/16 10:06 下午
|
||||||
*/
|
*/
|
||||||
|
@Slf4j
|
||||||
@Api(tags = "买家端,商品接口")
|
@Api(tags = "买家端,商品接口")
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/buyer/goods")
|
@RequestMapping("/buyer/goods/goods")
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
|
||||||
public class GoodsBuyerController {
|
public class GoodsBuyerController {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 商品
|
* 商品
|
||||||
*/
|
*/
|
||||||
private final GoodsService goodsService;
|
@Autowired
|
||||||
|
private GoodsService goodsService;
|
||||||
/**
|
/**
|
||||||
* 商品SKU
|
* 商品SKU
|
||||||
*/
|
*/
|
||||||
private final GoodsSkuService goodsSkuService;
|
@Autowired
|
||||||
|
private GoodsSkuService goodsSkuService;
|
||||||
/**
|
/**
|
||||||
* ES商品搜索
|
* ES商品搜索
|
||||||
*/
|
*/
|
||||||
private final EsGoodsSearchService goodsSearchService;
|
@Autowired
|
||||||
/**
|
private EsGoodsSearchService goodsSearchService;
|
||||||
* 分销员
|
|
||||||
*/
|
|
||||||
private final DistributionService distributionService;
|
|
||||||
|
|
||||||
|
@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")
|
||||||
@ -73,23 +75,24 @@ public class GoodsBuyerController {
|
|||||||
@ApiOperation(value = "通过id获取商品信息")
|
@ApiOperation(value = "通过id获取商品信息")
|
||||||
@ApiImplicitParams({
|
@ApiImplicitParams({
|
||||||
@ApiImplicitParam(name = "goodsId", value = "商品ID", required = true, paramType = "path"),
|
@ApiImplicitParam(name = "goodsId", value = "商品ID", required = true, paramType = "path"),
|
||||||
@ApiImplicitParam(name = "skuId", value = "skuId", required = true, paramType = "path"),
|
@ApiImplicitParam(name = "skuId", value = "skuId", required = true, paramType = "path")
|
||||||
@ApiImplicitParam(name = "distributionId", value = "分销员ID", dataType = "String", paramType = "query")
|
|
||||||
})
|
})
|
||||||
@GetMapping(value = "/sku/{goodsId}/{skuId}")
|
@GetMapping(value = "/sku/{goodsId}/{skuId}")
|
||||||
@PageViewPoint(type = PageViewEnum.SKU, id = "#id")
|
@PageViewPoint(type = PageViewEnum.SKU, id = "#id")
|
||||||
public ResultMessage<Map<String, Object>> getSku(@NotNull(message = "商品ID不能为空") @PathVariable("goodsId") String goodsId,
|
public ResultMessage<Map<String, Object>> getSku(@NotNull(message = "商品ID不能为空") @PathVariable("goodsId") String goodsId,
|
||||||
@NotNull(message = "SKU ID不能为空") @PathVariable("skuId") String skuId,
|
@NotNull(message = "SKU ID不能为空") @PathVariable("skuId") String skuId) {
|
||||||
String distributionId) {
|
try {
|
||||||
|
// 读取选中的列表
|
||||||
Map<String, Object> map = goodsSkuService.getGoodsSkuDetail(goodsId, skuId);
|
Map<String, Object> map = goodsSkuService.getGoodsSkuDetail(goodsId, skuId);
|
||||||
|
return ResultUtil.data(map);
|
||||||
//判断如果传递分销员则进行记录
|
} catch (ServiceException se) {
|
||||||
if (CharSequenceUtil.isNotEmpty(distributionId)) {
|
log.info(se.getMsg(), se);
|
||||||
distributionService.bindingDistribution(distributionId);
|
throw se;
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error(ResultCode.GOODS_ERROR.message(), e);
|
||||||
|
return ResultUtil.error(ResultCode.GOODS_ERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
return ResultUtil.data(map);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "获取商品分页列表")
|
@ApiOperation(value = "获取商品分页列表")
|
||||||
@ -102,8 +105,7 @@ public class GoodsBuyerController {
|
|||||||
@GetMapping("/es")
|
@GetMapping("/es")
|
||||||
public ResultMessage<Page<EsGoodsIndex>> getGoodsByPageFromEs(EsGoodsSearchDTO goodsSearchParams, PageVO pageVO) {
|
public ResultMessage<Page<EsGoodsIndex>> getGoodsByPageFromEs(EsGoodsSearchDTO goodsSearchParams, PageVO pageVO) {
|
||||||
pageVO.setNotConvert(true);
|
pageVO.setNotConvert(true);
|
||||||
Page<EsGoodsIndex> esGoodsIndices = goodsSearchService.searchGoods(goodsSearchParams, pageVO);
|
return ResultUtil.data(goodsSearchService.searchGoodsByPage(goodsSearchParams, pageVO));
|
||||||
return ResultUtil.data(esGoodsIndices);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "从ES中获取相关商品品牌名称,分类名称及属性")
|
@ApiOperation(value = "从ES中获取相关商品品牌名称,分类名称及属性")
|
||||||
@ -116,8 +118,8 @@ public class GoodsBuyerController {
|
|||||||
|
|
||||||
@ApiOperation(value = "获取搜索热词")
|
@ApiOperation(value = "获取搜索热词")
|
||||||
@GetMapping("/hot-words")
|
@GetMapping("/hot-words")
|
||||||
public ResultMessage<List<String>> getGoodsHotWords(Integer start, Integer end) {
|
public ResultMessage<List<String>> getGoodsHotWords(Integer count) {
|
||||||
List<String> hotWords = goodsSearchService.getHotWords(start, end);
|
List<String> hotWords = hotWordsService.getHotWords(count);
|
||||||
return ResultUtil.data(hotWords);
|
return ResultUtil.data(hotWords);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,15 +1,17 @@
|
|||||||
package cn.lili.controller.member;
|
package cn.lili.controller.member;
|
||||||
|
|
||||||
import cn.lili.common.enums.ResultCode;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
import cn.lili.common.utils.ResultUtil;
|
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.dto.FootPrintQueryParams;
|
||||||
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;
|
||||||
import lombok.RequiredArgsConstructor;
|
import org.apache.catalina.User;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
@ -21,42 +23,40 @@ import java.util.List;
|
|||||||
* 买家端,浏览历史接口
|
* 买家端,浏览历史接口
|
||||||
*
|
*
|
||||||
* @author Chopper
|
* @author Chopper
|
||||||
* @date: 2020/11/16 10:06 下午
|
* @since 2020/11/16 10:06 下午
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,浏览历史接口")
|
@Api(tags = "买家端,浏览历史接口")
|
||||||
@RequestMapping("/buyer/footprint")
|
@RequestMapping("/buyer/member/footprint")
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
|
||||||
public class FootprintController {
|
public class FootprintController {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 会员足迹
|
* 会员足迹
|
||||||
*/
|
*/
|
||||||
private final FootprintService footprintService;
|
@Autowired
|
||||||
|
private FootprintService footprintService;
|
||||||
|
|
||||||
@ApiOperation(value = "分页获取")
|
@ApiOperation(value = "分页获取")
|
||||||
@GetMapping
|
@GetMapping
|
||||||
public ResultMessage<List<EsGoodsIndex>> getByPage(PageVO page) {
|
public ResultMessage<IPage<EsGoodsIndex>> getByPage(FootPrintQueryParams params) {
|
||||||
return ResultUtil.data(footprintService.footPrintPage(page));
|
params.setMemberId(UserContext.getCurrentUser().getId());
|
||||||
|
return ResultUtil.data(footprintService.footPrintPage(params));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "根据id删除")
|
@ApiOperation(value = "根据id删除")
|
||||||
@ApiImplicitParam(name = "ids", value = "商品ID", required = true, allowMultiple = true, dataType = "String", paramType = "path")
|
@ApiImplicitParam(name = "ids", value = "商品ID", required = true, allowMultiple = true, dataType = "String", paramType = "path")
|
||||||
@DeleteMapping(value = "/delByIds/{ids}")
|
@DeleteMapping(value = "/delByIds/{ids}")
|
||||||
public ResultMessage<Object> delAllByIds(@NotNull(message = "商品ID不能为空") @PathVariable("ids") List ids) {
|
public ResultMessage<Object> delAllByIds(@NotNull(message = "商品ID不能为空") @PathVariable("ids") List ids) {
|
||||||
if (footprintService.deleteByIds(ids)) {
|
footprintService.deleteByIds(ids);
|
||||||
return ResultUtil.success(ResultCode.SUCCESS);
|
return ResultUtil.success();
|
||||||
}
|
|
||||||
return ResultUtil.error(ResultCode.ERROR);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "清空足迹")
|
@ApiOperation(value = "清空足迹")
|
||||||
@DeleteMapping
|
@DeleteMapping
|
||||||
public ResultMessage<Object> deleteAll() {
|
public ResultMessage<Object> deleteAll() {
|
||||||
if (footprintService.clean()) {
|
footprintService.clean();
|
||||||
return ResultUtil.success(ResultCode.SUCCESS);
|
return ResultUtil.success();
|
||||||
}
|
|
||||||
return ResultUtil.error(ResultCode.ERROR);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "获取当前会员足迹数量")
|
@ApiOperation(value = "获取当前会员足迹数量")
|
||||||
@ -65,4 +65,10 @@ public class FootprintController {
|
|||||||
return ResultUtil.data(footprintService.getFootprintNum());
|
return ResultUtil.data(footprintService.getFootprintNum());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping("/history")
|
||||||
|
@ApiOperation(value = "获取会员的历史足迹")
|
||||||
|
public ResultMessage<IPage<EsGoodsIndex>> getMemberHistory(FootPrintQueryParams params) {
|
||||||
|
return ResultUtil.data(footprintService.footPrintPage(params));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,42 +1,39 @@
|
|||||||
package cn.lili.controller.member;
|
package cn.lili.controller.member;
|
||||||
|
|
||||||
import cn.lili.common.enums.ResultCode;
|
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.utils.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.base.service.RegionService;
|
|
||||||
import cn.lili.modules.member.entity.dos.MemberAddress;
|
import cn.lili.modules.member.entity.dos.MemberAddress;
|
||||||
import cn.lili.modules.promotion.service.MemberAddressService;
|
import cn.lili.modules.member.service.MemberAddressService;
|
||||||
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;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 买家端,会员地址接口
|
* 买家端,会员地址接口
|
||||||
*
|
*
|
||||||
* @author Bulbasaur
|
* @author Bulbasaur
|
||||||
* @date: 2020/11/16 10:07 下午
|
* @since 2020/11/16 10:07 下午
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,会员地址接口")
|
@Api(tags = "买家端,会员地址接口")
|
||||||
@RequestMapping("/buyer/memberAddress")
|
@RequestMapping("/buyer/member/address")
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
|
||||||
public class MemberAddressBuyerController {
|
public class MemberAddressBuyerController {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 会员收件地址
|
* 会员收件地址
|
||||||
*/
|
*/
|
||||||
private final MemberAddressService memberAddressService;
|
@Autowired
|
||||||
|
private MemberAddressService memberAddressService;
|
||||||
private final RegionService regionService;
|
|
||||||
|
|
||||||
@ApiOperation(value = "获取会员收件地址分页列表")
|
@ApiOperation(value = "获取会员收件地址分页列表")
|
||||||
@GetMapping
|
@GetMapping
|
||||||
@ -61,15 +58,18 @@ public class MemberAddressBuyerController {
|
|||||||
@PostMapping
|
@PostMapping
|
||||||
public ResultMessage<MemberAddress> addShippingAddress(@Valid MemberAddress shippingAddress) {
|
public ResultMessage<MemberAddress> addShippingAddress(@Valid MemberAddress shippingAddress) {
|
||||||
//添加会员地址
|
//添加会员地址
|
||||||
shippingAddress.setMemberId(UserContext.getCurrentUser().getId());
|
shippingAddress.setMemberId(Objects.requireNonNull(UserContext.getCurrentUser()).getId());
|
||||||
|
if(shippingAddress.getIsDefault()==null){
|
||||||
|
shippingAddress.setIsDefault(false);
|
||||||
|
}
|
||||||
return ResultUtil.data(memberAddressService.saveMemberAddress(shippingAddress));
|
return ResultUtil.data(memberAddressService.saveMemberAddress(shippingAddress));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "修改会员收件地址")
|
@ApiOperation(value = "修改会员收件地址")
|
||||||
@PutMapping
|
@PutMapping
|
||||||
public ResultMessage<MemberAddress> editShippingAddress(@Valid MemberAddress shippingAddress) {
|
public ResultMessage<MemberAddress> editShippingAddress(@Valid MemberAddress shippingAddress) {
|
||||||
//修改会员地址
|
OperationalJudgment.judgment(memberAddressService.getById(shippingAddress.getId()));
|
||||||
shippingAddress.setMemberId(UserContext.getCurrentUser().getId());
|
shippingAddress.setMemberId(Objects.requireNonNull(UserContext.getCurrentUser()).getId());
|
||||||
return ResultUtil.data(memberAddressService.updateMemberAddress(shippingAddress));
|
return ResultUtil.data(memberAddressService.updateMemberAddress(shippingAddress));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -77,10 +77,9 @@ public class MemberAddressBuyerController {
|
|||||||
@ApiImplicitParam(name = "id", value = "会员地址ID", dataType = "String", paramType = "path")
|
@ApiImplicitParam(name = "id", value = "会员地址ID", dataType = "String", paramType = "path")
|
||||||
@DeleteMapping(value = "/delById/{id}")
|
@DeleteMapping(value = "/delById/{id}")
|
||||||
public ResultMessage<Object> delShippingAddressById(@PathVariable String id) {
|
public ResultMessage<Object> delShippingAddressById(@PathVariable String id) {
|
||||||
if (memberAddressService.removeMemberAddress(id)) {
|
OperationalJudgment.judgment(memberAddressService.getById(id));
|
||||||
return ResultUtil.success(ResultCode.SUCCESS);
|
memberAddressService.removeMemberAddress(id);
|
||||||
}
|
return ResultUtil.success();
|
||||||
return ResultUtil.error(ResultCode.ERROR);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,91 +0,0 @@
|
|||||||
package cn.lili.controller.member;
|
|
||||||
|
|
||||||
import cn.lili.common.utils.ResultUtil;
|
|
||||||
import cn.lili.common.vo.PageVO;
|
|
||||||
import cn.lili.common.vo.ResultMessage;
|
|
||||||
import cn.lili.modules.member.service.GoodsCollectionService;
|
|
||||||
import cn.lili.modules.member.service.StoreCollectionService;
|
|
||||||
import io.swagger.annotations.Api;
|
|
||||||
import io.swagger.annotations.ApiImplicitParam;
|
|
||||||
import io.swagger.annotations.ApiImplicitParams;
|
|
||||||
import io.swagger.annotations.ApiOperation;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.web.bind.annotation.*;
|
|
||||||
|
|
||||||
import javax.validation.constraints.NotNull;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 买家端,会员收藏接口
|
|
||||||
*
|
|
||||||
* @author Chopper
|
|
||||||
* @date: 2020/11/17 2:32 下午
|
|
||||||
*/
|
|
||||||
@RestController
|
|
||||||
@Api(tags = "买家端,会员收藏接口")
|
|
||||||
@RequestMapping("/buyer/member/collection")
|
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
|
||||||
public class MemberCollectionController {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 会员商品收藏
|
|
||||||
*/
|
|
||||||
private final GoodsCollectionService goodsCollectionService;
|
|
||||||
/**
|
|
||||||
* 会员店铺
|
|
||||||
*/
|
|
||||||
private final StoreCollectionService storeCollectionService;
|
|
||||||
|
|
||||||
@ApiOperation(value = "查询会员收藏列表")
|
|
||||||
@ApiImplicitParam(name = "type", value = "类型", dataType = "String", paramType = "path", example = "GOODS:商品,STORE:店铺")
|
|
||||||
@GetMapping("/{type}")
|
|
||||||
public ResultMessage<Object> goodsList(@PathVariable String type, PageVO page) {
|
|
||||||
if (type.equals("GOODS")) {
|
|
||||||
return ResultUtil.data(goodsCollectionService.goodsCollection(page));
|
|
||||||
}
|
|
||||||
return ResultUtil.data(storeCollectionService.storeCollection(page));
|
|
||||||
}
|
|
||||||
|
|
||||||
@ApiOperation(value = "添加会员收藏")
|
|
||||||
@ApiImplicitParams({
|
|
||||||
@ApiImplicitParam(name = "type", value = "类型", dataType = "String", paramType = "path", example = "GOODS:商品,STORE:店铺"),
|
|
||||||
@ApiImplicitParam(name = "num", value = "值", dataType = "Long", paramType = "path")
|
|
||||||
})
|
|
||||||
@PostMapping("/add/{type}/{id}")
|
|
||||||
public ResultMessage<Object> addGoodsCollection(@PathVariable String type,
|
|
||||||
@NotNull(message = "值不能为空") @PathVariable String id) {
|
|
||||||
if (type.equals("GOODS")) {
|
|
||||||
return ResultUtil.data(goodsCollectionService.addGoodsCollection(id));
|
|
||||||
}
|
|
||||||
return ResultUtil.data(storeCollectionService.addStoreCollection(id));
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@ApiOperation(value = "删除会员收藏")
|
|
||||||
@ApiImplicitParams({
|
|
||||||
@ApiImplicitParam(name = "type", value = "类型", dataType = "String", paramType = "path", example = "GOODS:商品,STORE:店铺"),
|
|
||||||
@ApiImplicitParam(name = "num", value = "值", dataType = "Long", paramType = "path")
|
|
||||||
})
|
|
||||||
@DeleteMapping(value = "/delete/{type}/{id}")
|
|
||||||
public ResultMessage<Object> deleteGoodsCollection(@PathVariable String type,
|
|
||||||
@NotNull(message = "值不能为空") @PathVariable String id) {
|
|
||||||
if (type.equals("GOODS")) {
|
|
||||||
return ResultUtil.data(goodsCollectionService.deleteGoodsCollection(id));
|
|
||||||
}
|
|
||||||
return ResultUtil.data(storeCollectionService.deleteStoreCollection(id));
|
|
||||||
}
|
|
||||||
|
|
||||||
@ApiOperation(value = "查询会员是否收藏")
|
|
||||||
@ApiImplicitParams({
|
|
||||||
@ApiImplicitParam(name = "type", value = "类型", dataType = "String", paramType = "path", example = "GOODS:商品,STORE:店铺"),
|
|
||||||
@ApiImplicitParam(name = "id", value = "值", dataType = "String", paramType = "path")
|
|
||||||
})
|
|
||||||
@GetMapping(value = "/isCollection/{type}/{id}")
|
|
||||||
public ResultMessage<Boolean> isCollection(@PathVariable String type,
|
|
||||||
@NotNull(message = "值不能为空") @PathVariable String id) {
|
|
||||||
if (type.equals("GOODS")) {
|
|
||||||
return ResultUtil.data(this.goodsCollectionService.isCollection(id));
|
|
||||||
}
|
|
||||||
return ResultUtil.data(this.storeCollectionService.isCollection(id));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -0,0 +1,68 @@
|
|||||||
|
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.member.service.GoodsCollectionService;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
|
import io.swagger.annotations.ApiImplicitParams;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 买家端,会员收藏接口
|
||||||
|
*
|
||||||
|
* @author Chopper
|
||||||
|
* @since 2020/11/17 2:32 下午
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@Api(tags = "买家端,会员商品收藏接口")
|
||||||
|
@RequestMapping("/buyer/member/collection")
|
||||||
|
public class MemberCollectionGoodsController {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 会员商品收藏
|
||||||
|
*/
|
||||||
|
@Autowired
|
||||||
|
private GoodsCollectionService goodsCollectionService;
|
||||||
|
|
||||||
|
@ApiOperation(value = "查询会员收藏列表")
|
||||||
|
@GetMapping("/GOODS")
|
||||||
|
public ResultMessage<Object> goodsList(PageVO page) {
|
||||||
|
return ResultUtil.data(goodsCollectionService.goodsCollection(page));
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "添加会员收藏")
|
||||||
|
@ApiImplicitParams({
|
||||||
|
@ApiImplicitParam(name = "num", value = "值", dataType = "Long", paramType = "path")
|
||||||
|
})
|
||||||
|
@PostMapping("/add/GOODS/{id}")
|
||||||
|
public ResultMessage<Object> addGoodsCollection(@NotNull(message = "值不能为空") @PathVariable String id) {
|
||||||
|
return ResultUtil.data(goodsCollectionService.addGoodsCollection(id));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "删除会员收藏")
|
||||||
|
@ApiImplicitParams({
|
||||||
|
@ApiImplicitParam(name = "type", value = "类型", dataType = "String", paramType = "path", example = "GOODS:商品,STORE:店铺"),
|
||||||
|
@ApiImplicitParam(name = "num", value = "值", dataType = "Long", paramType = "path")
|
||||||
|
})
|
||||||
|
@DeleteMapping(value = "/delete/GOODS/{id}")
|
||||||
|
public ResultMessage<Object> deleteGoodsCollection(@NotNull(message = "值不能为空") @PathVariable String id) {
|
||||||
|
return ResultUtil.data(goodsCollectionService.deleteGoodsCollection(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "查询会员是否收藏")
|
||||||
|
@ApiImplicitParams({
|
||||||
|
@ApiImplicitParam(name = "type", value = "类型", dataType = "String", paramType = "path", example = "GOODS:商品,STORE:店铺"),
|
||||||
|
@ApiImplicitParam(name = "id", value = "值", dataType = "String", paramType = "path")
|
||||||
|
})
|
||||||
|
@GetMapping(value = "/isCollection/GOODS/{id}")
|
||||||
|
public ResultMessage<Boolean> isCollection(@NotNull(message = "值不能为空") @PathVariable String id) {
|
||||||
|
return ResultUtil.data(this.goodsCollectionService.isCollection(id));
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,66 @@
|
|||||||
|
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.member.service.StoreCollectionService;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
|
import io.swagger.annotations.ApiImplicitParams;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 买家端,会员收藏接口
|
||||||
|
*
|
||||||
|
* @author Chopper
|
||||||
|
* @since 2020/11/17 2:32 下午
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@Api(tags = "买家端,会员店铺收藏接口")
|
||||||
|
@RequestMapping("/buyer/member/storeCollection")
|
||||||
|
public class MemberCollectionStoreController {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 会员店铺
|
||||||
|
*/
|
||||||
|
@Autowired
|
||||||
|
private StoreCollectionService storeCollectionService;
|
||||||
|
|
||||||
|
@ApiOperation(value = "查询会员收藏列表")
|
||||||
|
@GetMapping("/STORE")
|
||||||
|
public ResultMessage<Object> goodsList(PageVO page) {
|
||||||
|
return ResultUtil.data(storeCollectionService.storeCollection(page));
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "添加会员收藏")
|
||||||
|
@ApiImplicitParams({
|
||||||
|
@ApiImplicitParam(name = "num", value = "值", dataType = "Long", paramType = "path")
|
||||||
|
})
|
||||||
|
@PostMapping("/add/STORE/{id}")
|
||||||
|
public ResultMessage<Object> addGoodsCollection(@NotNull(message = "值不能为空") @PathVariable String id) {
|
||||||
|
return ResultUtil.data(storeCollectionService.addStoreCollection(id));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "删除会员收藏")
|
||||||
|
@ApiImplicitParams({
|
||||||
|
@ApiImplicitParam(name = "num", value = "值", dataType = "Long", paramType = "path")
|
||||||
|
})
|
||||||
|
@DeleteMapping(value = "/delete/STORE/{id}")
|
||||||
|
public ResultMessage<Object> deleteGoodsCollection(@NotNull(message = "值不能为空") @PathVariable String id) {
|
||||||
|
return ResultUtil.data(storeCollectionService.deleteStoreCollection(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "查询会员是否收藏")
|
||||||
|
@ApiImplicitParams({
|
||||||
|
@ApiImplicitParam(name = "id", value = "值", dataType = "String", paramType = "path")
|
||||||
|
})
|
||||||
|
@GetMapping(value = "/isCollection/STORE/{id}")
|
||||||
|
public ResultMessage<Boolean> isCollection(@NotNull(message = "值不能为空") @PathVariable String id) {
|
||||||
|
return ResultUtil.data(this.storeCollectionService.isCollection(id));
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,7 +1,9 @@
|
|||||||
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.SwitchEnum;
|
||||||
import cn.lili.common.security.context.UserContext;
|
import cn.lili.common.security.context.UserContext;
|
||||||
import cn.lili.common.utils.ResultUtil;
|
|
||||||
import cn.lili.common.vo.ResultMessage;
|
import cn.lili.common.vo.ResultMessage;
|
||||||
import cn.lili.modules.member.entity.dos.MemberEvaluation;
|
import cn.lili.modules.member.entity.dos.MemberEvaluation;
|
||||||
import cn.lili.modules.member.entity.dto.EvaluationQueryParams;
|
import cn.lili.modules.member.entity.dto.EvaluationQueryParams;
|
||||||
@ -13,7 +15,6 @@ 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;
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
@ -24,29 +25,30 @@ import javax.validation.constraints.NotNull;
|
|||||||
* 买家端,会员商品评价接口
|
* 买家端,会员商品评价接口
|
||||||
*
|
*
|
||||||
* @author Bulbasaur
|
* @author Bulbasaur
|
||||||
* @date: 2020/11/16 10:08 下午
|
* @since 2020/11/16 10:08 下午
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,会员商品评价接口")
|
@Api(tags = "买家端,会员商品评价接口")
|
||||||
@RequestMapping("/buyer/memberEvaluation")
|
@RequestMapping("/buyer/member/evaluation")
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
|
||||||
public class MemberEvaluationBuyerController {
|
public class MemberEvaluationBuyerController {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 会员商品评价
|
* 会员商品评价
|
||||||
*/
|
*/
|
||||||
private final MemberEvaluationService memberEvaluationService;
|
@Autowired
|
||||||
|
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));
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -56,7 +58,7 @@ public class MemberEvaluationBuyerController {
|
|||||||
public ResultMessage<IPage<MemberEvaluation>> queryMineEvaluation(EvaluationQueryParams evaluationQueryParams) {
|
public ResultMessage<IPage<MemberEvaluation>> queryMineEvaluation(EvaluationQueryParams evaluationQueryParams) {
|
||||||
//设置当前登录会员
|
//设置当前登录会员
|
||||||
evaluationQueryParams.setMemberId(UserContext.getCurrentUser().getId());
|
evaluationQueryParams.setMemberId(UserContext.getCurrentUser().getId());
|
||||||
return ResultUtil.data(memberEvaluationService.queryByParams(evaluationQueryParams));
|
return ResultUtil.data(memberEvaluationService.managerQuery(evaluationQueryParams));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "查看某一个商品的评价列表")
|
@ApiOperation(value = "查看某一个商品的评价列表")
|
||||||
@ -66,7 +68,8 @@ public class MemberEvaluationBuyerController {
|
|||||||
@NotNull @PathVariable("goodsId") String goodsId) {
|
@NotNull @PathVariable("goodsId") String goodsId) {
|
||||||
//设置查询查询商品
|
//设置查询查询商品
|
||||||
evaluationQueryParams.setGoodsId(goodsId);
|
evaluationQueryParams.setGoodsId(goodsId);
|
||||||
return ResultUtil.data(memberEvaluationService.queryByParams(evaluationQueryParams));
|
evaluationQueryParams.setStatus(SwitchEnum.OPEN.name());
|
||||||
|
return ResultUtil.data(memberEvaluationService.managerQuery(evaluationQueryParams));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "查看某一个商品的评价数量")
|
@ApiOperation(value = "查看某一个商品的评价数量")
|
||||||
|
|||||||
@ -1,12 +1,13 @@
|
|||||||
package cn.lili.controller.member;
|
package cn.lili.controller.member;
|
||||||
|
|
||||||
import cn.lili.common.utils.ResultUtil;
|
import cn.lili.cache.limit.annotation.LimitPoint;
|
||||||
|
import cn.lili.common.aop.annotation.PreventDuplicateSubmissions;
|
||||||
|
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;
|
||||||
import cn.lili.modules.member.service.MemberSignService;
|
import cn.lili.modules.member.service.MemberSignService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
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.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
@ -19,16 +20,17 @@ import java.util.List;
|
|||||||
* 会员签到控制器
|
* 会员签到控制器
|
||||||
*
|
*
|
||||||
* @author pikachu
|
* @author pikachu
|
||||||
* @date: 2020/11/16 10:07 下午
|
* @since 2020/11/16 10:07 下午
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,会员签到API")
|
@Api(tags = "买家端,会员签到API")
|
||||||
@RequestMapping("/buyer/members/sign")
|
@RequestMapping("/buyer/members/sign")
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
|
||||||
public class MemberSignBuyerController {
|
public class MemberSignBuyerController {
|
||||||
|
@Autowired
|
||||||
|
private MemberSignService memberSignService;
|
||||||
|
|
||||||
private final MemberSignService memberSignService;
|
|
||||||
|
|
||||||
|
@PreventDuplicateSubmissions
|
||||||
@PostMapping
|
@PostMapping
|
||||||
@ApiOperation(value = "会员签到")
|
@ApiOperation(value = "会员签到")
|
||||||
public ResultMessage<Boolean> memberSign() {
|
public ResultMessage<Boolean> memberSign() {
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
package cn.lili.controller.member;
|
package cn.lili.controller.member;
|
||||||
|
|
||||||
import cn.lili.common.security.context.UserContext;
|
import cn.lili.common.security.context.UserContext;
|
||||||
import cn.lili.common.utils.PageUtil;
|
import cn.lili.mybatis.util.PageUtil;
|
||||||
import cn.lili.common.utils.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.member.entity.dos.MemberPointsHistory;
|
import cn.lili.modules.member.entity.dos.MemberPointsHistory;
|
||||||
@ -13,9 +13,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
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.GetMapping;
|
||||||
|
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;
|
||||||
|
|
||||||
@ -23,15 +23,14 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
* 买家端,会员积分历史接口
|
* 买家端,会员积分历史接口
|
||||||
*
|
*
|
||||||
* @author Bulbasaur
|
* @author Bulbasaur
|
||||||
* @date 2020-02-25 14:10:16
|
* @since 2020-02-25 14:10:16
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,会员积分历史接口")
|
@Api(tags = "买家端,会员积分历史接口")
|
||||||
@RequestMapping("/buyer/member/memberPointsHistory")
|
@RequestMapping("/buyer/member/memberPointsHistory")
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
|
||||||
public class PointsHistoryBuyerController {
|
public class PointsHistoryBuyerController {
|
||||||
|
@Autowired
|
||||||
private final MemberPointsHistoryService memberPointsHistoryService;
|
private MemberPointsHistoryService memberPointsHistoryService;
|
||||||
|
|
||||||
@ApiOperation(value = "分页获取")
|
@ApiOperation(value = "分页获取")
|
||||||
@GetMapping(value = "/getByPage")
|
@GetMapping(value = "/getByPage")
|
||||||
@ -39,7 +38,7 @@ public class PointsHistoryBuyerController {
|
|||||||
|
|
||||||
LambdaQueryWrapper<MemberPointsHistory> queryWrapper = Wrappers.lambdaQuery();
|
LambdaQueryWrapper<MemberPointsHistory> queryWrapper = Wrappers.lambdaQuery();
|
||||||
queryWrapper.eq(MemberPointsHistory::getMemberId, UserContext.getCurrentUser().getId());
|
queryWrapper.eq(MemberPointsHistory::getMemberId, UserContext.getCurrentUser().getId());
|
||||||
|
queryWrapper.orderByDesc(MemberPointsHistory::getCreateTime);
|
||||||
return ResultUtil.data(memberPointsHistoryService.page(PageUtil.initPage(page), queryWrapper));
|
return ResultUtil.data(memberPointsHistoryService.page(PageUtil.initPage(page), queryWrapper));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -48,4 +47,6 @@ public class PointsHistoryBuyerController {
|
|||||||
public ResultMessage<MemberPointsHistoryVO> getMemberPointsHistoryVO() {
|
public ResultMessage<MemberPointsHistoryVO> getMemberPointsHistoryVO() {
|
||||||
return ResultUtil.data(memberPointsHistoryService.getMemberPointsHistoryVO(UserContext.getCurrentUser().getId()));
|
return ResultUtil.data(memberPointsHistoryService.getMemberPointsHistoryVO(UserContext.getCurrentUser().getId()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,58 +0,0 @@
|
|||||||
package cn.lili.controller.member;
|
|
||||||
|
|
||||||
import cn.lili.common.utils.PageUtil;
|
|
||||||
import cn.lili.common.utils.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 com.baomidou.mybatisplus.core.metadata.IPage;
|
|
||||||
import io.swagger.annotations.Api;
|
|
||||||
import io.swagger.annotations.ApiImplicitParam;
|
|
||||||
import io.swagger.annotations.ApiOperation;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
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
|
|
||||||
* @date: 2020/11/17 2:31 下午
|
|
||||||
*/
|
|
||||||
@RestController
|
|
||||||
@RequestMapping("/service/notice")
|
|
||||||
@Api(tags = "买家端,会员站服务消息接口")
|
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
|
||||||
public class ServiceNoticeBuyerController {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 服务消息
|
|
||||||
*/
|
|
||||||
private final 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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,17 +1,17 @@
|
|||||||
package cn.lili.controller.member;
|
package cn.lili.controller.message;
|
||||||
|
|
||||||
import cn.lili.common.utils.ResultUtil;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
|
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.message.entity.dos.MemberMessage;
|
||||||
import cn.lili.modules.message.entity.enums.MessageStatusEnum;
|
import cn.lili.modules.message.entity.enums.MessageStatusEnum;
|
||||||
import cn.lili.modules.member.entity.dos.MemberMessage;
|
import cn.lili.modules.message.entity.vos.MemberMessageQueryVO;
|
||||||
import cn.lili.modules.member.entity.vo.MemberMessageQueryVO;
|
import cn.lili.modules.message.service.MemberMessageService;
|
||||||
import cn.lili.modules.member.service.MemberMessageService;
|
|
||||||
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;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
@ -19,37 +19,39 @@ import org.springframework.web.bind.annotation.*;
|
|||||||
* 买家端,会员站内消息接口
|
* 买家端,会员站内消息接口
|
||||||
*
|
*
|
||||||
* @author Bulbasaur
|
* @author Bulbasaur
|
||||||
* @date: 2020/11/16 10:07 下午
|
* @since 2020/11/16 10:07 下午
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,会员站内消息接口")
|
@Api(tags = "买家端,会员站内消息接口")
|
||||||
@RequestMapping("/buyer/member/message")
|
@RequestMapping("/buyer/message/member")
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
|
||||||
public class MemberMessageBuyerController {
|
public class MemberMessageBuyerController {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 会员站内消息
|
* 会员站内消息
|
||||||
*/
|
*/
|
||||||
private final MemberMessageService memberMessageService;
|
@Autowired
|
||||||
|
private MemberMessageService memberMessageService;
|
||||||
|
|
||||||
@ApiOperation(value = "分页获取会员站内消息")
|
@ApiOperation(value = "分页获取会员站内消息")
|
||||||
@GetMapping
|
@GetMapping
|
||||||
public ResultMessage<IPage<MemberMessage>> page(MemberMessageQueryVO memberMessageQueryVO, PageVO page) {
|
public ResultMessage<IPage<MemberMessage>> page(MemberMessageQueryVO memberMessageQueryVO, PageVO page) {
|
||||||
|
memberMessageQueryVO.setMemberId(UserContext.getCurrentUser().getId());
|
||||||
return ResultUtil.data(memberMessageService.getPage(memberMessageQueryVO, page));
|
return ResultUtil.data(memberMessageService.getPage(memberMessageQueryVO, page));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "消息已读")
|
@ApiOperation(value = "消息已读")
|
||||||
@ApiImplicitParam(name = "messageId", value = "会员消息id", required = true, paramType = "path")
|
@ApiImplicitParam(name = "messageId", value = "会员消息id", required = true, paramType = "path")
|
||||||
@PutMapping
|
@PutMapping("/{message_id}")
|
||||||
public ResultMessage<Boolean> read(@PathVariable String messageId) {
|
public ResultMessage<Boolean> read(@PathVariable("message_id") String messageId) {
|
||||||
return ResultUtil.data(memberMessageService.editStatus(MessageStatusEnum.ALREADY_READY.name(), messageId));
|
return ResultUtil.data(memberMessageService.editStatus(MessageStatusEnum.ALREADY_READY.name(), messageId));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "消息删除")
|
@ApiOperation(value = "消息放入回收站")
|
||||||
@ApiImplicitParam(name = "messageId", value = "会员消息id", required = true, paramType = "path")
|
@ApiImplicitParam(name = "messageId", value = "会员消息id", required = true, paramType = "path")
|
||||||
@DeleteMapping
|
@DeleteMapping("/{message_id}")
|
||||||
public ResultMessage<Boolean> deleteMessage(@PathVariable String messageId) {
|
public ResultMessage<Boolean> deleteMessage(@PathVariable("message_id") String messageId) {
|
||||||
return ResultUtil.data(memberMessageService.deleteMessage(messageId));
|
return ResultUtil.data(memberMessageService.editStatus(MessageStatusEnum.ALREADY_REMOVE.name(), messageId));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1,24 +1,25 @@
|
|||||||
package cn.lili.controller.trade;
|
package cn.lili.controller.order;
|
||||||
|
|
||||||
import cn.lili.common.utils.ResultUtil;
|
import cn.lili.common.aop.annotation.PreventDuplicateSubmissions;
|
||||||
|
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.AfterSaleReasonService;
|
import cn.lili.modules.order.aftersale.entity.vo.AfterSaleVO;
|
||||||
import cn.lili.modules.order.order.service.AfterSaleService;
|
import cn.lili.modules.order.aftersale.service.AfterSaleLogService;
|
||||||
|
import cn.lili.modules.order.aftersale.service.AfterSaleReasonService;
|
||||||
|
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.order.trade.entity.dos.AfterSaleLog;
|
|
||||||
import cn.lili.modules.order.order.service.AfterSaleLogService;
|
|
||||||
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;
|
||||||
import io.swagger.annotations.ApiImplicitParams;
|
import io.swagger.annotations.ApiImplicitParams;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.format.annotation.DateTimeFormat;
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
@ -31,34 +32,35 @@ import java.util.List;
|
|||||||
* 买家端,售后管理接口
|
* 买家端,售后管理接口
|
||||||
*
|
*
|
||||||
* @author Chopper
|
* @author Chopper
|
||||||
* @date 2020/11/16 10:02 下午
|
* @since 2020/11/16 10:02 下午
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,售后管理接口")
|
@Api(tags = "买家端,售后管理接口")
|
||||||
@RequestMapping("/buyer/afterSale")
|
@RequestMapping("/buyer/order/afterSale")
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
|
||||||
public class AfterSaleBuyerController {
|
public class AfterSaleBuyerController {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 售后
|
* 售后
|
||||||
*/
|
*/
|
||||||
private final AfterSaleService afterSaleService;
|
@Autowired
|
||||||
|
private AfterSaleService afterSaleService;
|
||||||
/**
|
/**
|
||||||
* 售后原因
|
* 售后原因
|
||||||
*/
|
*/
|
||||||
private final AfterSaleReasonService afterSaleReasonService;
|
@Autowired
|
||||||
|
private AfterSaleReasonService afterSaleReasonService;
|
||||||
/**
|
/**
|
||||||
* 售后日志
|
* 售后日志
|
||||||
*/
|
*/
|
||||||
private final AfterSaleLogService afterSaleLogService;
|
@Autowired
|
||||||
|
private AfterSaleLogService afterSaleLogService;
|
||||||
|
|
||||||
@ApiOperation(value = "查看售后服务详情")
|
@ApiOperation(value = "查看售后服务详情")
|
||||||
@ApiImplicitParam(name = "sn", value = "售后单号", required = true, paramType = "path")
|
@ApiImplicitParam(name = "sn", value = "售后单号", required = true, paramType = "path")
|
||||||
@GetMapping(value = "/get/{sn}")
|
@GetMapping(value = "/get/{sn}")
|
||||||
public ResultMessage<AfterSaleVO> get(@NotNull(message = "售后单号") @PathVariable("sn") String sn) {
|
public ResultMessage<AfterSaleVO> get(@NotNull(message = "售后单号") @PathVariable("sn") String sn) {
|
||||||
return ResultUtil.data(afterSaleService.getAfterSale(sn));
|
AfterSaleVO afterSale = OperationalJudgment.judgment(afterSaleService.getAfterSale(sn));
|
||||||
|
return ResultUtil.data(afterSale);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "分页获取售后服务")
|
@ApiOperation(value = "分页获取售后服务")
|
||||||
@ -73,9 +75,10 @@ public class AfterSaleBuyerController {
|
|||||||
})
|
})
|
||||||
@GetMapping(value = "/applyAfterSaleInfo/{sn}")
|
@GetMapping(value = "/applyAfterSaleInfo/{sn}")
|
||||||
public ResultMessage<AfterSaleApplyVO> applyAfterSaleInfo(@PathVariable String sn) {
|
public ResultMessage<AfterSaleApplyVO> applyAfterSaleInfo(@PathVariable String sn) {
|
||||||
return ResultUtil.data(afterSaleService.getAfterSaleDTO(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 = "申请售后")
|
||||||
@ -100,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")
|
||||||
@ -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.enums.ResultUtil;
|
||||||
import cn.lili.common.exception.ServiceException;
|
import cn.lili.common.exception.ServiceException;
|
||||||
import cn.lili.common.utils.ResultUtil;
|
|
||||||
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;
|
||||||
@ -13,7 +14,6 @@ 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.RequiredArgsConstructor;
|
|
||||||
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.http.MediaType;
|
import org.springframework.http.MediaType;
|
||||||
@ -26,19 +26,19 @@ import javax.validation.constraints.NotNull;
|
|||||||
* 买家端,购物车接口
|
* 买家端,购物车接口
|
||||||
*
|
*
|
||||||
* @author Chopper
|
* @author Chopper
|
||||||
* @date 2020/11/16 10:04 下午
|
* @since 2020/11/16 10:04 下午
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,购物车接口")
|
@Api(tags = "买家端,购物车接口")
|
||||||
@RequestMapping("/buyer/trade/carts")
|
@RequestMapping("/buyer/trade/carts")
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
|
||||||
public class CartController {
|
public class CartController {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 购物车
|
* 购物车
|
||||||
*/
|
*/
|
||||||
private final CartService cartService;
|
@Autowired
|
||||||
|
private CartService cartService;
|
||||||
|
|
||||||
|
|
||||||
@ApiOperation(value = "向购物车中添加一个产品")
|
@ApiOperation(value = "向购物车中添加一个产品")
|
||||||
@ -51,8 +51,17 @@ public class CartController {
|
|||||||
public ResultMessage<Object> add(@NotNull(message = "产品id不能为空") String skuId,
|
public ResultMessage<Object> add(@NotNull(message = "产品id不能为空") String skuId,
|
||||||
@NotNull(message = "购买数量不能为空") @Min(value = 1, message = "加入购物车数量必须大于0") Integer num,
|
@NotNull(message = "购买数量不能为空") @Min(value = 1, message = "加入购物车数量必须大于0") Integer num,
|
||||||
String cartType) {
|
String cartType) {
|
||||||
cartService.add(skuId, num, cartType);
|
try {
|
||||||
return ResultUtil.success(ResultCode.SUCCESS);
|
//读取选中的列表
|
||||||
|
cartService.add(skuId, num, cartType, false);
|
||||||
|
return ResultUtil.success();
|
||||||
|
} catch (ServiceException se) {
|
||||||
|
log.info(se.getMsg(), se);
|
||||||
|
throw se;
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error(ResultCode.CART_ERROR.message(), e);
|
||||||
|
throw new ServiceException(ResultCode.CART_ERROR);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -85,8 +94,8 @@ public class CartController {
|
|||||||
@PostMapping(value = "/sku/num/{skuId}")
|
@PostMapping(value = "/sku/num/{skuId}")
|
||||||
public ResultMessage<Object> update(@NotNull(message = "产品id不能为空") @PathVariable(name = "skuId") String skuId,
|
public ResultMessage<Object> update(@NotNull(message = "产品id不能为空") @PathVariable(name = "skuId") String skuId,
|
||||||
Integer num) {
|
Integer num) {
|
||||||
cartService.updateNum(skuId, num);
|
cartService.add(skuId, num, CartTypeEnum.CART.name(), true);
|
||||||
return ResultUtil.success(ResultCode.SUCCESS);
|
return ResultUtil.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -98,7 +107,7 @@ public class CartController {
|
|||||||
public ResultMessage<Object> updateChecked(@NotNull(message = "产品id不能为空") @PathVariable(name = "skuId") String skuId,
|
public ResultMessage<Object> updateChecked(@NotNull(message = "产品id不能为空") @PathVariable(name = "skuId") String skuId,
|
||||||
boolean checked) {
|
boolean checked) {
|
||||||
cartService.checked(skuId, checked);
|
cartService.checked(skuId, checked);
|
||||||
return ResultUtil.success(ResultCode.SUCCESS);
|
return ResultUtil.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -106,7 +115,7 @@ public class CartController {
|
|||||||
@PostMapping(value = "/sku/checked", produces = MediaType.APPLICATION_JSON_VALUE)
|
@PostMapping(value = "/sku/checked", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
public ResultMessage<Object> updateAll(boolean checked) {
|
public ResultMessage<Object> updateAll(boolean checked) {
|
||||||
cartService.checkedAll(checked);
|
cartService.checkedAll(checked);
|
||||||
return ResultUtil.success(ResultCode.SUCCESS);
|
return ResultUtil.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -119,7 +128,7 @@ public class CartController {
|
|||||||
@PostMapping(value = "/store/{storeId}", produces = MediaType.APPLICATION_JSON_VALUE)
|
@PostMapping(value = "/store/{storeId}", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
public ResultMessage<Object> updateStoreAll(@NotNull(message = "卖家id不能为空") @PathVariable(name = "storeId") String storeId, boolean checked) {
|
public ResultMessage<Object> updateStoreAll(@NotNull(message = "卖家id不能为空") @PathVariable(name = "storeId") String storeId, boolean checked) {
|
||||||
cartService.checkedStore(storeId, checked);
|
cartService.checkedStore(storeId, checked);
|
||||||
return ResultUtil.success(ResultCode.SUCCESS);
|
return ResultUtil.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -127,7 +136,7 @@ public class CartController {
|
|||||||
@DeleteMapping()
|
@DeleteMapping()
|
||||||
public ResultMessage<Object> clean() {
|
public ResultMessage<Object> clean() {
|
||||||
cartService.clean();
|
cartService.clean();
|
||||||
return ResultUtil.success(ResultCode.SUCCESS);
|
return ResultUtil.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -138,7 +147,7 @@ public class CartController {
|
|||||||
@DeleteMapping(value = "/sku/remove")
|
@DeleteMapping(value = "/sku/remove")
|
||||||
public ResultMessage<Object> delete(String[] skuIds) {
|
public ResultMessage<Object> delete(String[] skuIds) {
|
||||||
cartService.delete(skuIds);
|
cartService.delete(skuIds);
|
||||||
return ResultUtil.success(ResultCode.SUCCESS);
|
return ResultUtil.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -149,13 +158,14 @@ public class CartController {
|
|||||||
@GetMapping("/checked")
|
@GetMapping("/checked")
|
||||||
public ResultMessage<TradeDTO> cartChecked(@NotNull(message = "读取选中列表") String way) {
|
public ResultMessage<TradeDTO> cartChecked(@NotNull(message = "读取选中列表") String way) {
|
||||||
try {
|
try {
|
||||||
// 读取选中的列表
|
//读取选中的列表
|
||||||
return ResultUtil.data(this.cartService.getCheckedTradeDTO(CartTypeEnum.valueOf(way)));
|
return ResultUtil.data(this.cartService.getCheckedTradeDTO(CartTypeEnum.valueOf(way)));
|
||||||
} catch (ServiceException e) {
|
} catch (ServiceException se) {
|
||||||
throw e;
|
log.error(se.getMsg(), se);
|
||||||
|
throw se;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error(ResultCode.CART_ERROR.message(), e);
|
log.error(ResultCode.CART_ERROR.message(), e);
|
||||||
return ResultUtil.error(ResultCode.CART_ERROR);
|
throw new ServiceException(ResultCode.CART_ERROR);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -169,13 +179,33 @@ public class CartController {
|
|||||||
String way) {
|
String way) {
|
||||||
try {
|
try {
|
||||||
cartService.shippingAddress(shippingAddressId, way);
|
cartService.shippingAddress(shippingAddressId, way);
|
||||||
return ResultUtil.success(ResultCode.SUCCESS);
|
return ResultUtil.success();
|
||||||
} catch (ServiceException se) {
|
} catch (ServiceException se) {
|
||||||
log.error(ResultCode.SHIPPING_NOT_APPLY.message(), se);
|
log.error(ResultCode.SHIPPING_NOT_APPLY.message(), se);
|
||||||
return ResultUtil.error(ResultCode.SHIPPING_NOT_APPLY);
|
throw new ServiceException(ResultCode.SHIPPING_NOT_APPLY);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error(ResultCode.CART_ERROR.message(), e);
|
log.error(ResultCode.CART_ERROR.message(), e);
|
||||||
return ResultUtil.error(ResultCode.CART_ERROR);
|
throw new ServiceException(ResultCode.CART_ERROR);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "选择自提地址")
|
||||||
|
@ApiImplicitParams({
|
||||||
|
@ApiImplicitParam(name = "storeAddressId", value = "自提地址id ", required = true, paramType = "query"),
|
||||||
|
@ApiImplicitParam(name = "way", value = "购物车类型 ", paramType = "query")
|
||||||
|
})
|
||||||
|
@GetMapping("/storeAddress")
|
||||||
|
public ResultMessage<Object> shippingSelfPickAddress(@NotNull(message = "自提地址ID不能为空") String storeAddressId,
|
||||||
|
String way) {
|
||||||
|
try {
|
||||||
|
cartService.shippingSelfAddress(storeAddressId, way);
|
||||||
|
return ResultUtil.success();
|
||||||
|
} catch (ServiceException se) {
|
||||||
|
log.error(ResultCode.SHIPPING_NOT_APPLY.message(), se);
|
||||||
|
throw new ServiceException(ResultCode.SHIPPING_NOT_APPLY);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error(ResultCode.CART_ERROR.message(), e);
|
||||||
|
throw new ServiceException(ResultCode.CART_ERROR);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -184,19 +214,35 @@ public class CartController {
|
|||||||
@ApiImplicitParam(name = "shippingMethod", value = "配送方式:SELF_PICK_UP(自提)," +
|
@ApiImplicitParam(name = "shippingMethod", value = "配送方式:SELF_PICK_UP(自提)," +
|
||||||
"LOCAL_TOWN_DELIVERY(同城配送)," +
|
"LOCAL_TOWN_DELIVERY(同城配送)," +
|
||||||
"LOGISTICS(物流) ", required = true, paramType = "query"),
|
"LOGISTICS(物流) ", required = true, paramType = "query"),
|
||||||
@ApiImplicitParam(name = "selleId", value = "店铺id", paramType = "query"),
|
|
||||||
@ApiImplicitParam(name = "way", value = "购物车类型 ", paramType = "query")
|
@ApiImplicitParam(name = "way", value = "购物车类型 ", paramType = "query")
|
||||||
})
|
})
|
||||||
@GetMapping("/shippingMethod")
|
@PutMapping("/shippingMethod")
|
||||||
public ResultMessage<Object> shippingMethod(@NotNull(message = "配送方式不能为空") String shippingMethod,
|
public ResultMessage<Object> shippingMethod(@NotNull(message = "配送方式不能为空") String shippingMethod,
|
||||||
String selleId,
|
|
||||||
String way) {
|
String way) {
|
||||||
try {
|
try {
|
||||||
cartService.shippingMethod(selleId, shippingMethod, way);
|
cartService.shippingMethod( shippingMethod, way);
|
||||||
return ResultUtil.success(ResultCode.SUCCESS);
|
return ResultUtil.success();
|
||||||
|
} catch (ServiceException se) {
|
||||||
|
log.error(se.getMsg(), se);
|
||||||
|
throw se;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error(ResultCode.CART_ERROR.message(), e);
|
log.error(ResultCode.CART_ERROR.message(), e);
|
||||||
return ResultUtil.error(ResultCode.CART_ERROR);
|
throw new ServiceException(ResultCode.CART_ERROR);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "获取用户可选择的物流方式")
|
||||||
|
@ApiImplicitParams({
|
||||||
|
@ApiImplicitParam(name = "way", value = "购物车类型 ", paramType = "query")
|
||||||
|
})
|
||||||
|
@GetMapping("/shippingMethodList")
|
||||||
|
public ResultMessage<Object> shippingMethodList(String way) {
|
||||||
|
try {
|
||||||
|
return ResultUtil.data(cartService.shippingMethodList(way));
|
||||||
|
}
|
||||||
|
catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return ResultUtil.error(ResultCode.ERROR);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -207,7 +253,7 @@ public class CartController {
|
|||||||
@GetMapping("/select/receipt")
|
@GetMapping("/select/receipt")
|
||||||
public ResultMessage<Object> selectReceipt(String way, ReceiptVO receiptVO) {
|
public ResultMessage<Object> selectReceipt(String way, ReceiptVO receiptVO) {
|
||||||
this.cartService.shippingReceipt(receiptVO, way);
|
this.cartService.shippingReceipt(receiptVO, way);
|
||||||
return ResultUtil.success(ResultCode.SUCCESS);
|
return ResultUtil.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "选择优惠券")
|
@ApiOperation(value = "选择优惠券")
|
||||||
@ -219,22 +265,23 @@ public class CartController {
|
|||||||
@GetMapping("/select/coupon")
|
@GetMapping("/select/coupon")
|
||||||
public ResultMessage<Object> selectCoupon(String way, @NotNull(message = "优惠券id不能为空") String memberCouponId, boolean used) {
|
public ResultMessage<Object> selectCoupon(String way, @NotNull(message = "优惠券id不能为空") String memberCouponId, boolean used) {
|
||||||
this.cartService.selectCoupon(memberCouponId, way, used);
|
this.cartService.selectCoupon(memberCouponId, way, used);
|
||||||
return ResultUtil.success(ResultCode.SUCCESS);
|
return ResultUtil.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@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) {
|
||||||
try {
|
try {
|
||||||
// 读取选中的列表
|
//读取选中的列表
|
||||||
return ResultUtil.data(this.cartService.createTrade(tradeParams));
|
return ResultUtil.data(this.cartService.createTrade(tradeParams));
|
||||||
|
} catch (ServiceException se) {
|
||||||
|
log.info(se.getMsg(), se);
|
||||||
|
throw se;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error(ResultCode.ORDER_ERROR.message(), e);
|
log.error(ResultCode.ORDER_ERROR.message(), e);
|
||||||
if (e.getMessage().equals(ResultCode.SHIPPING_NOT_APPLY.message())) {
|
throw e;
|
||||||
return ResultUtil.error(ResultCode.SHIPPING_NOT_APPLY);
|
|
||||||
}
|
|
||||||
return ResultUtil.error(ResultCode.ORDER_ERROR);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1,9 +1,12 @@
|
|||||||
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.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.utils.ResultUtil;
|
|
||||||
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;
|
||||||
import cn.lili.modules.order.order.entity.dto.OrderSearchParams;
|
import cn.lili.modules.order.order.entity.dto.OrderSearchParams;
|
||||||
@ -16,35 +19,35 @@ 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.RequiredArgsConstructor;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import springfox.documentation.annotations.ApiIgnore;
|
import springfox.documentation.annotations.ApiIgnore;
|
||||||
|
|
||||||
import javax.validation.constraints.NotBlank;
|
import javax.validation.constraints.NotBlank;
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 买家端,订单接口
|
* 买家端,订单接口
|
||||||
*
|
*
|
||||||
* @author Chopper
|
* @author Chopper
|
||||||
* @date 2020/11/16 10:08 下午
|
* @since 2020/11/16 10:08 下午
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,订单接口")
|
@Api(tags = "买家端,订单接口")
|
||||||
@RequestMapping("/buyer/orders")
|
@RequestMapping("/buyer/order/order")
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
|
||||||
public class OrderBuyerController {
|
public class OrderBuyerController {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 订单
|
* 订单
|
||||||
*/
|
*/
|
||||||
private final OrderService orderService;
|
@Autowired
|
||||||
|
private OrderService orderService;
|
||||||
|
|
||||||
@ApiOperation(value = "查询会员订单列表")
|
@ApiOperation(value = "查询会员订单列表")
|
||||||
@GetMapping
|
@GetMapping
|
||||||
public ResultMessage<IPage<OrderSimpleVO>> queryMineOrder(OrderSearchParams orderSearchParams) {
|
public ResultMessage<IPage<OrderSimpleVO>> queryMineOrder(OrderSearchParams orderSearchParams) {
|
||||||
AuthUser currentUser = UserContext.getCurrentUser();
|
AuthUser currentUser = Objects.requireNonNull(UserContext.getCurrentUser());
|
||||||
orderSearchParams.setMemberId(currentUser.getId());
|
orderSearchParams.setMemberId(currentUser.getId());
|
||||||
return ResultUtil.data(orderService.queryByParams(orderSearchParams));
|
return ResultUtil.data(orderService.queryByParams(orderSearchParams));
|
||||||
}
|
}
|
||||||
@ -55,9 +58,12 @@ public class OrderBuyerController {
|
|||||||
})
|
})
|
||||||
@GetMapping(value = "/{orderSn}")
|
@GetMapping(value = "/{orderSn}")
|
||||||
public ResultMessage<OrderDetailVO> detail(@NotNull(message = "订单编号不能为空") @PathVariable("orderSn") String orderSn) {
|
public ResultMessage<OrderDetailVO> detail(@NotNull(message = "订单编号不能为空") @PathVariable("orderSn") String orderSn) {
|
||||||
return ResultUtil.data(orderService.queryDetail(orderSn));
|
OrderDetailVO orderDetailVO = orderService.queryDetail(orderSn);
|
||||||
|
OperationalJudgment.judgment(orderDetailVO.getOrder());
|
||||||
|
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")
|
||||||
@ -66,16 +72,17 @@ public class OrderBuyerController {
|
|||||||
public ResultMessage<Object> receiving(@NotNull(message = "订单编号不能为空") @PathVariable("orderSn") String orderSn) {
|
public ResultMessage<Object> receiving(@NotNull(message = "订单编号不能为空") @PathVariable("orderSn") String orderSn) {
|
||||||
Order order = orderService.getBySn(orderSn);
|
Order order = orderService.getBySn(orderSn);
|
||||||
if (order == null) {
|
if (order == null) {
|
||||||
return ResultUtil.error(ResultCode.ORDER_NOT_EXIST);
|
throw new ServiceException(ResultCode.ORDER_NOT_EXIST);
|
||||||
}
|
}
|
||||||
//判定是否是待收货状态
|
//判定是否是待收货状态
|
||||||
if (!order.getOrderStatus().equals(OrderStatusEnum.DELIVERED.name())) {
|
if (!order.getOrderStatus().equals(OrderStatusEnum.DELIVERED.name())) {
|
||||||
return ResultUtil.error(ResultCode.ORDER_DELIVERED_ERROR);
|
throw new ServiceException(ResultCode.ORDER_DELIVERED_ERROR);
|
||||||
}
|
}
|
||||||
orderService.complete(orderSn);
|
orderService.complete(orderSn);
|
||||||
return ResultUtil.success(ResultCode.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"),
|
||||||
@ -84,17 +91,19 @@ public class OrderBuyerController {
|
|||||||
@PostMapping(value = "/{orderSn}/cancel")
|
@PostMapping(value = "/{orderSn}/cancel")
|
||||||
public ResultMessage<Object> cancel(@ApiIgnore @PathVariable String orderSn, @RequestParam String reason) {
|
public ResultMessage<Object> cancel(@ApiIgnore @PathVariable String orderSn, @RequestParam String reason) {
|
||||||
orderService.cancel(orderSn, reason);
|
orderService.cancel(orderSn, reason);
|
||||||
return ResultUtil.success(ResultCode.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")
|
||||||
})
|
})
|
||||||
@DeleteMapping(value = "/{orderSn}")
|
@DeleteMapping(value = "/{orderSn}")
|
||||||
public ResultMessage<Object> deleteOrder(@PathVariable String orderSn) {
|
public ResultMessage<Object> deleteOrder(@PathVariable String orderSn) {
|
||||||
|
OperationalJudgment.judgment(orderService.getBySn(orderSn));
|
||||||
orderService.deleteOrder(orderSn);
|
orderService.deleteOrder(orderSn);
|
||||||
return ResultUtil.success(ResultCode.SUCCESS);
|
return ResultUtil.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "查询物流踪迹")
|
@ApiOperation(value = "查询物流踪迹")
|
||||||
@ -103,18 +112,30 @@ public class OrderBuyerController {
|
|||||||
})
|
})
|
||||||
@PostMapping(value = "/getTraces/{orderSn}")
|
@PostMapping(value = "/getTraces/{orderSn}")
|
||||||
public ResultMessage<Object> getTraces(@NotBlank(message = "订单编号不能为空") @PathVariable String orderSn) {
|
public ResultMessage<Object> getTraces(@NotBlank(message = "订单编号不能为空") @PathVariable String orderSn) {
|
||||||
|
OperationalJudgment.judgment(orderService.getBySn(orderSn));
|
||||||
return ResultUtil.data(orderService.getTraces(orderSn));
|
return ResultUtil.data(orderService.getTraces(orderSn));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "查询地图版物流踪迹")
|
||||||
|
@ApiImplicitParams({
|
||||||
|
@ApiImplicitParam(name = "orderSn", value = "订单编号", required = true, dataType = "String", paramType = "path")
|
||||||
|
})
|
||||||
|
@PostMapping(value = "/getMapTraces/{orderSn}")
|
||||||
|
public ResultMessage<Object> getMapTraces(@NotBlank(message = "订单编号不能为空") @PathVariable String orderSn) {
|
||||||
|
OperationalJudgment.judgment(orderService.getBySn(orderSn));
|
||||||
|
return ResultUtil.data(orderService.getMapTraces(orderSn));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@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")
|
||||||
})
|
})
|
||||||
@PostMapping(value = "/receipt/{orderSn}")
|
@PostMapping(value = "/receipt/{orderSn}")
|
||||||
public ResultMessage<Object> invoice(@NotBlank(message = "订单编号不能为空") @PathVariable String orderSn) {
|
public ResultMessage<Object> invoice(@NotBlank(message = "订单编号不能为空") @PathVariable String orderSn) {
|
||||||
|
OperationalJudgment.judgment(orderService.getBySn(orderSn));
|
||||||
return ResultUtil.data(orderService.invoice(orderSn));
|
return ResultUtil.data(orderService.invoice(orderSn));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -1,9 +1,10 @@
|
|||||||
package cn.lili.controller.trade;
|
package cn.lili.controller.order;
|
||||||
|
|
||||||
import cn.lili.common.enums.ResultCode;
|
import cn.lili.common.aop.annotation.PreventDuplicateSubmissions;
|
||||||
|
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.utils.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.order.order.entity.dos.OrderComplaint;
|
import cn.lili.modules.order.order.entity.dos.OrderComplaint;
|
||||||
@ -19,11 +20,11 @@ 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.RequiredArgsConstructor;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 买家端,交易投诉接口
|
* 买家端,交易投诉接口
|
||||||
@ -33,36 +34,40 @@ import javax.validation.Valid;
|
|||||||
**/
|
**/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,交易投诉接口")
|
@Api(tags = "买家端,交易投诉接口")
|
||||||
@RequestMapping("/buyer/complain")
|
@RequestMapping("/buyer/order/complain")
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
|
||||||
public class OrderComplaintBuyerController {
|
public class OrderComplaintBuyerController {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 交易投诉
|
* 交易投诉
|
||||||
*/
|
*/
|
||||||
private final OrderComplaintService orderComplaintService;
|
@Autowired
|
||||||
|
private OrderComplaintService orderComplaintService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 交易投诉沟通
|
* 交易投诉沟通
|
||||||
*/
|
*/
|
||||||
private final OrderComplaintCommunicationService orderComplaintCommunicationService;
|
@Autowired
|
||||||
|
private OrderComplaintCommunicationService orderComplaintCommunicationService;
|
||||||
|
|
||||||
|
|
||||||
@ApiOperation(value = "通过id获取")
|
@ApiOperation(value = "通过id获取")
|
||||||
@ApiImplicitParam(name = "id", value = "投诉单ID", required = true, paramType = "path")
|
@ApiImplicitParam(name = "id", value = "投诉单ID", required = true, paramType = "path")
|
||||||
@GetMapping(value = "/{id}")
|
@GetMapping(value = "/{id}")
|
||||||
public ResultMessage<OrderComplaintVO> get(@PathVariable String id) {
|
public ResultMessage<OrderComplaintVO> get(@PathVariable String id) {
|
||||||
return ResultUtil.data(orderComplaintService.getOrderComplainById(id));
|
OrderComplaintVO orderComplaintVO = OperationalJudgment.judgment(orderComplaintService.getOrderComplainById(id));
|
||||||
|
return ResultUtil.data(orderComplaintVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "分页获取")
|
@ApiOperation(value = "分页获取")
|
||||||
@GetMapping
|
@GetMapping
|
||||||
public ResultMessage<IPage<OrderComplaint>> get(OrderComplaintSearchParams searchParams, PageVO pageVO) {
|
public ResultMessage<IPage<OrderComplaint>> get(OrderComplaintSearchParams searchParams, PageVO pageVO) {
|
||||||
searchParams.setMemberId(UserContext.getCurrentUser().getId());
|
AuthUser currentUser = Objects.requireNonNull(UserContext.getCurrentUser());
|
||||||
|
searchParams.setMemberId(currentUser.getId());
|
||||||
return ResultUtil.data(orderComplaintService.getOrderComplainByPage(searchParams, pageVO));
|
return ResultUtil.data(orderComplaintService.getOrderComplainByPage(searchParams, pageVO));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PreventDuplicateSubmissions
|
||||||
@ApiOperation(value = "添加交易投诉")
|
@ApiOperation(value = "添加交易投诉")
|
||||||
@PostMapping
|
@PostMapping
|
||||||
public ResultMessage<OrderComplaint> add(@Valid OrderComplaintDTO orderComplaintDTO) {
|
public ResultMessage<OrderComplaint> add(@Valid OrderComplaintDTO orderComplaintDTO) {
|
||||||
@ -76,23 +81,19 @@ 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 = 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());
|
||||||
if (orderComplaintCommunicationService.addCommunication(communicationVO)) {
|
orderComplaintCommunicationService.addCommunication(communicationVO);
|
||||||
return ResultUtil.data(communicationVO);
|
return ResultUtil.data(communicationVO);
|
||||||
|
|
||||||
}
|
|
||||||
return ResultUtil.error(ResultCode.ERROR);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@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}")
|
||||||
public ResultMessage<Object> cancel(@PathVariable String id) {
|
public ResultMessage<Object> cancel(@PathVariable String id) {
|
||||||
if (orderComplaintService.cancel(id)) {
|
orderComplaintService.cancel(id);
|
||||||
return ResultUtil.success(ResultCode.SUCCESS);
|
return ResultUtil.success();
|
||||||
}
|
|
||||||
return ResultUtil.error(ResultCode.ERROR);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1,6 +1,7 @@
|
|||||||
package cn.lili.controller.trade;
|
package cn.lili.controller.order;
|
||||||
|
|
||||||
import cn.lili.common.utils.ResultUtil;
|
import cn.lili.common.aop.annotation.PreventDuplicateSubmissions;
|
||||||
|
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.order.order.entity.dos.Receipt;
|
import cn.lili.modules.order.order.entity.dos.Receipt;
|
||||||
@ -10,7 +11,6 @@ import cn.lili.modules.order.order.service.ReceiptService;
|
|||||||
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 lombok.RequiredArgsConstructor;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
@ -25,10 +25,10 @@ import javax.validation.Valid;
|
|||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,发票接口")
|
@Api(tags = "买家端,发票接口")
|
||||||
@RequestMapping("/buyer/trade/receipt")
|
@RequestMapping("/buyer/trade/receipt")
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
|
||||||
public class ReceiptBuyerController {
|
public class ReceiptBuyerController {
|
||||||
|
|
||||||
private final ReceiptService receiptService;
|
@Autowired
|
||||||
|
private ReceiptService receiptService;
|
||||||
|
|
||||||
@ApiOperation(value = "获取发票详情")
|
@ApiOperation(value = "获取发票详情")
|
||||||
@GetMapping("/{id}")
|
@GetMapping("/{id}")
|
||||||
@ -42,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) {
|
||||||
@ -1,16 +1,16 @@
|
|||||||
package cn.lili.controller.trade;
|
package cn.lili.controller.order;
|
||||||
|
|
||||||
import cn.lili.common.utils.ResultUtil;
|
import cn.lili.common.aop.annotation.PreventDuplicateSubmissions;
|
||||||
|
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 lombok.RequiredArgsConstructor;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.validation.annotation.Validated;
|
||||||
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;
|
||||||
@ -22,23 +22,27 @@ import javax.validation.constraints.Min;
|
|||||||
* 买家端,预存款充值记录接口
|
* 买家端,预存款充值记录接口
|
||||||
*
|
*
|
||||||
* @author paulG
|
* @author paulG
|
||||||
* @date: 2020/11/16 10:07 下午
|
* @since 2020/11/16 10:07 下午
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,预存款充值记录接口")
|
@Api(tags = "买家端,预存款充值记录接口")
|
||||||
@RequestMapping("/buyer/trade/recharge")
|
@RequestMapping("/buyer/trade/recharge")
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Validated
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
|
||||||
public class RechargeTradeBuyerController {
|
public class RechargeTradeBuyerController {
|
||||||
|
|
||||||
private final RechargeService rechargeService;
|
@Autowired
|
||||||
|
private RechargeService rechargeService;
|
||||||
|
|
||||||
|
@PreventDuplicateSubmissions
|
||||||
@PostMapping
|
@PostMapping
|
||||||
@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<Recharge> create(@Max(value = 10000, message = "充值金额单次最多允许充值10000元") @Min(value = 1, message = "充值金额单次最少充值金额为1元") Double price) {
|
public ResultMessage<Recharge> create(
|
||||||
|
@Max(value = 10000, message = "充值金额单次最多允许充值10000元")
|
||||||
|
@Min(value = 1, message = "充值金额单次最少充值金额为1元")
|
||||||
|
Double price) {
|
||||||
Recharge recharge = this.rechargeService.recharge(price);
|
Recharge recharge = this.rechargeService.recharge(price);
|
||||||
return ResultUtil.data(recharge);
|
return ResultUtil.data(recharge);
|
||||||
}
|
}
|
||||||
@ -0,0 +1,50 @@
|
|||||||
|
package cn.lili.controller.other;
|
||||||
|
|
||||||
|
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.AppVersion;
|
||||||
|
import cn.lili.modules.system.service.AppVersionService;
|
||||||
|
import cn.lili.mybatis.util.PageUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
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;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 买家端,APP版本
|
||||||
|
*
|
||||||
|
* @author Bulbasaur
|
||||||
|
* @since 2021/5/21 11:15 上午
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@Api(tags = "买家端,APP版本")
|
||||||
|
@RequestMapping("/buyer/other/appVersion")
|
||||||
|
public class AppVersionBuyerController {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private AppVersionService appVersionService;
|
||||||
|
|
||||||
|
|
||||||
|
@ApiOperation(value = "获取版本号")
|
||||||
|
@ApiImplicitParam(name = "appType", value = "app类型", required = true, paramType = "path")
|
||||||
|
@GetMapping("/{appType}")
|
||||||
|
public ResultMessage<Object> getAppVersion(@PathVariable String appType) {
|
||||||
|
return ResultUtil.data(appVersionService.getAppVersion(appType));
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "获取版本号列表")
|
||||||
|
@ApiImplicitParam(name = "appType", value = "app类型", required = true, paramType = "path")
|
||||||
|
@GetMapping("/appVersion/{appType}")
|
||||||
|
public ResultMessage<IPage<AppVersion>> appVersion(@PathVariable String appType, PageVO pageVO) {
|
||||||
|
|
||||||
|
IPage<AppVersion> page = appVersionService.page(PageUtil.initPage(pageVO), new LambdaQueryWrapper<AppVersion>().eq(AppVersion::getType, appType));
|
||||||
|
return ResultUtil.data(page);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,6 +1,6 @@
|
|||||||
package cn.lili.controller.other;
|
package cn.lili.controller.other;
|
||||||
|
|
||||||
import cn.lili.common.utils.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.Article;
|
import cn.lili.modules.page.entity.dos.Article;
|
||||||
import cn.lili.modules.page.entity.dto.ArticleSearchParams;
|
import cn.lili.modules.page.entity.dto.ArticleSearchParams;
|
||||||
@ -12,7 +12,6 @@ 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;
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
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.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
@ -26,23 +25,24 @@ import java.util.List;
|
|||||||
* 买家端,文章接口
|
* 买家端,文章接口
|
||||||
*
|
*
|
||||||
* @author Chopper
|
* @author Chopper
|
||||||
* @date: 2020/11/16 10:02 下午
|
* @since 2020/11/16 10:02 下午
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,文章接口")
|
@Api(tags = "买家端,文章接口")
|
||||||
@RequestMapping("/buyer/article")
|
@RequestMapping("/buyer/other/article")
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
|
||||||
public class ArticleBuyerController {
|
public class ArticleBuyerController {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 文章
|
* 文章
|
||||||
*/
|
*/
|
||||||
private final ArticleService articleService;
|
@Autowired
|
||||||
|
private ArticleService articleService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 文章分类
|
* 文章分类
|
||||||
*/
|
*/
|
||||||
private final ArticleCategoryService articleCategoryService;
|
@Autowired
|
||||||
|
private ArticleCategoryService articleCategoryService;
|
||||||
|
|
||||||
@ApiOperation(value = "获取文章分类列表")
|
@ApiOperation(value = "获取文章分类列表")
|
||||||
@GetMapping(value = "/articleCategory/list")
|
@GetMapping(value = "/articleCategory/list")
|
||||||
|
|||||||
@ -1,44 +1,44 @@
|
|||||||
package cn.lili.controller.other;
|
package cn.lili.controller.other;
|
||||||
|
|
||||||
import cn.lili.common.enums.ResultCode;
|
import cn.lili.common.aop.annotation.PreventDuplicateSubmissions;
|
||||||
|
import cn.lili.common.enums.ResultUtil;
|
||||||
import cn.lili.common.security.context.UserContext;
|
import cn.lili.common.security.context.UserContext;
|
||||||
import cn.lili.common.utils.ResultUtil;
|
|
||||||
import cn.lili.common.vo.ResultMessage;
|
import cn.lili.common.vo.ResultMessage;
|
||||||
import cn.lili.modules.page.entity.dos.Feedback;
|
import cn.lili.modules.page.entity.dos.Feedback;
|
||||||
import cn.lili.modules.page.service.FeedbackService;
|
import cn.lili.modules.page.service.FeedbackService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
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;
|
||||||
|
|
||||||
|
import javax.validation.Valid;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 买家端,意见反馈接口
|
* 买家端,意见反馈接口
|
||||||
*
|
*
|
||||||
* @author Bulbasaur
|
* @author Bulbasaur
|
||||||
* @date 2020-05-5 15:10:16
|
* @since 2020-05-5 15:10:16
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,意见反馈接口")
|
@Api(tags = "买家端,意见反馈接口")
|
||||||
@RequestMapping("/buyer/feedback")
|
@RequestMapping("/buyer/other/feedback")
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
|
||||||
public class FeedbackBuyerController {
|
public class FeedbackBuyerController {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 意见反馈
|
* 意见反馈
|
||||||
*/
|
*/
|
||||||
private final FeedbackService feedbackService;
|
@Autowired
|
||||||
|
private FeedbackService feedbackService;
|
||||||
|
|
||||||
|
@PreventDuplicateSubmissions
|
||||||
@ApiOperation(value = "添加意见反馈")
|
@ApiOperation(value = "添加意见反馈")
|
||||||
@PostMapping()
|
@PostMapping()
|
||||||
public ResultMessage<Object> save(Feedback feedback) {
|
public ResultMessage<Object> save(@Valid Feedback feedback) {
|
||||||
feedback.setUserName(UserContext.getCurrentUser().getNickName());
|
feedback.setUserName(UserContext.getCurrentUser().getNickName());
|
||||||
if (feedbackService.save(feedback)) {
|
feedbackService.save(feedback);
|
||||||
return ResultUtil.success(ResultCode.SUCCESS);
|
return ResultUtil.success();
|
||||||
}
|
|
||||||
return ResultUtil.error(ResultCode.ERROR);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,12 +1,11 @@
|
|||||||
package cn.lili.controller.other;
|
package cn.lili.controller.other;
|
||||||
|
|
||||||
import cn.lili.common.utils.ResultUtil;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
import cn.lili.common.vo.ResultMessage;
|
import cn.lili.common.vo.ResultMessage;
|
||||||
import cn.lili.modules.system.entity.dos.Logistics;
|
import cn.lili.modules.system.entity.dos.Logistics;
|
||||||
import cn.lili.modules.system.service.LogisticsService;
|
import cn.lili.modules.system.service.LogisticsService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
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.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
@ -18,15 +17,15 @@ import java.util.List;
|
|||||||
* 买家端,物流公司接口
|
* 买家端,物流公司接口
|
||||||
*
|
*
|
||||||
* @author Bulbasaur
|
* @author Bulbasaur
|
||||||
* @date 2020-05-5 15:10:16
|
* @since 2020-05-5 15:10:16
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,物流公司接口")
|
@Api(tags = "买家端,物流公司接口")
|
||||||
@RequestMapping("/buyer/logistics")
|
@RequestMapping("/buyer/other/logistics")
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
|
||||||
public class LogisticsBuyerController {
|
public class LogisticsBuyerController {
|
||||||
|
|
||||||
private final LogisticsService logisticsService;
|
@Autowired
|
||||||
|
private LogisticsService logisticsService;
|
||||||
|
|
||||||
|
|
||||||
@ApiOperation(value = "分页获取物流公司")
|
@ApiOperation(value = "分页获取物流公司")
|
||||||
|
|||||||
@ -1,48 +1,98 @@
|
|||||||
package cn.lili.controller.other;
|
package cn.lili.controller.other;
|
||||||
|
|
||||||
import cn.lili.common.utils.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 lombok.RequiredArgsConstructor;
|
|
||||||
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;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 买家端,页面接口
|
* 买家端,页面接口
|
||||||
*
|
*
|
||||||
* @author Chopper
|
* @author Chopper
|
||||||
* @date 2020/11/16 10:08 下午
|
* @since 2020/11/16 10:08 下午
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,页面接口")
|
@Api(tags = "买家端,页面接口")
|
||||||
@RequestMapping("/buyer/pageData")
|
@RequestMapping("/buyer/other/pageData")
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
|
||||||
public class PageBuyerController {
|
public class PageBuyerController {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 页面管理
|
* 页面管理
|
||||||
*/
|
*/
|
||||||
private final PageDataService pageService;
|
@Autowired
|
||||||
|
private PageDataService pageService;
|
||||||
|
|
||||||
@ApiOperation(value = "获取首页数据")
|
@ApiOperation(value = "获取首页数据")
|
||||||
@GetMapping("/getIndex")
|
@GetMapping("/getIndex")
|
||||||
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 = "获取店铺首页")
|
||||||
|
@GetMapping("/getStore")
|
||||||
|
public ResultMessage<PageDataVO> getShopPage(@RequestParam String clientType,String storeId) {
|
||||||
|
PageDataDTO pageDataDTO = new PageDataDTO(PageEnum.STORE.name());
|
||||||
|
pageDataDTO.setPageClientType(clientType);
|
||||||
|
pageDataDTO.setNum(storeId);
|
||||||
|
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);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,48 @@
|
|||||||
|
package cn.lili.controller.other.broadcast;
|
||||||
|
|
||||||
|
import cn.lili.common.enums.ResultUtil;
|
||||||
|
import cn.lili.common.vo.PageVO;
|
||||||
|
import cn.lili.common.vo.ResultMessage;
|
||||||
|
import cn.lili.modules.goods.entity.vos.StudioVO;
|
||||||
|
import cn.lili.modules.goods.service.StudioService;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
|
import io.swagger.annotations.ApiImplicitParams;
|
||||||
|
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.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 买家端,直播间接口
|
||||||
|
*
|
||||||
|
* @author Bulbasaur
|
||||||
|
* @since 2021/5/20 12:03 下午
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@Api(tags = "买家端,直播间接口")
|
||||||
|
@RequestMapping("/buyer/broadcast/studio")
|
||||||
|
public class StudioController {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private StudioService studioService;
|
||||||
|
|
||||||
|
@ApiOperation(value = "获取店铺直播间列表")
|
||||||
|
@ApiImplicitParams({
|
||||||
|
@ApiImplicitParam(name = "recommend", value = "是否推荐", paramType = "query", dataType = "int"),
|
||||||
|
@ApiImplicitParam(name = "status", value = "直播间状态", paramType = "query", dataType = "String")
|
||||||
|
})
|
||||||
|
@GetMapping
|
||||||
|
public ResultMessage<IPage<StudioVO>> page(PageVO pageVO, Integer recommend, String status) {
|
||||||
|
return ResultUtil.data(studioService.studioList(pageVO, recommend, status));
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "获取店铺直播间回放地址")
|
||||||
|
@GetMapping("/getLiveInfo/{roomId}")
|
||||||
|
public ResultMessage<Object> getLiveInfo(Integer roomId) {
|
||||||
|
return ResultUtil.data(studioService.getLiveInfo(roomId));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -1,18 +1,22 @@
|
|||||||
package cn.lili.controller.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.security.context.UserContext;
|
import cn.lili.common.security.context.UserContext;
|
||||||
import cn.lili.common.utils.ResultUtil;
|
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.GoodsUnit;
|
||||||
|
import cn.lili.modules.goods.service.GoodsUnitService;
|
||||||
import cn.lili.modules.purchase.entity.dos.PurchaseOrder;
|
import cn.lili.modules.purchase.entity.dos.PurchaseOrder;
|
||||||
import cn.lili.modules.purchase.entity.params.PurchaseOrderSearchParams;
|
import cn.lili.modules.purchase.entity.params.PurchaseOrderSearchParams;
|
||||||
import cn.lili.modules.purchase.entity.vos.PurchaseOrderVO;
|
import cn.lili.modules.purchase.entity.vos.PurchaseOrderVO;
|
||||||
import cn.lili.modules.purchase.service.PurchaseOrderService;
|
import cn.lili.modules.purchase.service.PurchaseOrderService;
|
||||||
|
import cn.lili.mybatis.util.PageUtil;
|
||||||
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;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
@ -22,22 +26,34 @@ import javax.validation.constraints.NotNull;
|
|||||||
* 买家端,采购接口
|
* 买家端,采购接口
|
||||||
*
|
*
|
||||||
* @author Chopper
|
* @author Chopper
|
||||||
* @date: 2020/11/16 10:06 下午
|
* @since 2020/11/16 10:06 下午
|
||||||
*/
|
*/
|
||||||
@Api(tags = "买家端,采购接口")
|
@Api(tags = "买家端,采购接口")
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/buyer/purchase")
|
@RequestMapping("/buyer/other/purchase/purchase")
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
|
||||||
public class PurchaseBuyerController {
|
public class PurchaseBuyerController {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 采购单
|
* 采购单
|
||||||
*/
|
*/
|
||||||
private final PurchaseOrderService purchaseOrderService;
|
@Autowired
|
||||||
|
private PurchaseOrderService purchaseOrderService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private GoodsUnitService goodsUnitService;
|
||||||
|
|
||||||
|
|
||||||
|
@ApiOperation(value = "分页获取商品计量单位")
|
||||||
|
@GetMapping("/goodsUnit")
|
||||||
|
public ResultMessage<IPage<GoodsUnit>> goodsUnitPage(PageVO pageVO) {
|
||||||
|
return ResultUtil.data(goodsUnitService.page(PageUtil.initPage(pageVO)));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@PreventDuplicateSubmissions
|
||||||
@ApiOperation(value = "添加采购单")
|
@ApiOperation(value = "添加采购单")
|
||||||
@PostMapping
|
@PostMapping
|
||||||
public ResultMessage<PurchaseOrderVO> addPurchaseOrderVO(PurchaseOrderVO purchaseOrderVO) {
|
public ResultMessage<PurchaseOrderVO> addPurchaseOrderVO(@RequestBody PurchaseOrderVO purchaseOrderVO) {
|
||||||
return ResultUtil.data(purchaseOrderService.addPurchaseOrder(purchaseOrderVO));
|
return ResultUtil.data(purchaseOrderService.addPurchaseOrder(purchaseOrderVO));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -61,15 +77,13 @@ 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}")
|
||||||
public ResultMessage<Object> close(@NotNull @PathVariable String id) {
|
public ResultMessage<Object> close(@NotNull @PathVariable String id) {
|
||||||
|
purchaseOrderService.close(id);
|
||||||
if (purchaseOrderService.close(id)) {
|
|
||||||
return ResultUtil.success(ResultCode.SUCCESS);
|
return ResultUtil.success(ResultCode.SUCCESS);
|
||||||
}
|
}
|
||||||
return ResultUtil.error(ResultCode.ERROR);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -1,14 +1,18 @@
|
|||||||
package cn.lili.controller.purchase;
|
package cn.lili.controller.other.purchase;
|
||||||
|
|
||||||
import cn.lili.common.utils.ResultUtil;
|
import cn.hutool.core.date.DateTime;
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.lili.common.enums.ResultCode;
|
||||||
|
import cn.lili.common.enums.ResultUtil;
|
||||||
import cn.lili.common.vo.ResultMessage;
|
import cn.lili.common.vo.ResultMessage;
|
||||||
|
import cn.lili.modules.purchase.entity.dos.PurchaseOrder;
|
||||||
import cn.lili.modules.purchase.entity.dos.PurchaseQuoted;
|
import cn.lili.modules.purchase.entity.dos.PurchaseQuoted;
|
||||||
import cn.lili.modules.purchase.entity.vos.PurchaseQuotedVO;
|
import cn.lili.modules.purchase.entity.vos.PurchaseQuotedVO;
|
||||||
|
import cn.lili.modules.purchase.service.PurchaseOrderService;
|
||||||
import cn.lili.modules.purchase.service.PurchaseQuotedService;
|
import cn.lili.modules.purchase.service.PurchaseQuotedService;
|
||||||
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;
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
@ -19,22 +23,31 @@ import java.util.List;
|
|||||||
* 买家端,采购报价接口
|
* 买家端,采购报价接口
|
||||||
*
|
*
|
||||||
* @author Bulbasaur
|
* @author Bulbasaur
|
||||||
* @date: 2020/11/16 10:06 下午
|
* @since 2020/11/16 10:06 下午
|
||||||
*/
|
*/
|
||||||
@Api(tags = "买家端,采购报价接口")
|
@Api(tags = "买家端,采购报价接口")
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/buyer/purchaseQuoted")
|
@RequestMapping("/buyer/other/purchase/purchaseQuoted")
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
|
||||||
public class PurchaseQuotedController {
|
public class PurchaseQuotedController {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 采购单报价
|
* 采购单报价
|
||||||
*/
|
*/
|
||||||
private final PurchaseQuotedService purchaseQuotedService;
|
@Autowired
|
||||||
|
private PurchaseQuotedService purchaseQuotedService;
|
||||||
|
/**
|
||||||
|
* 采购单
|
||||||
|
*/
|
||||||
|
@Autowired
|
||||||
|
private PurchaseOrderService purchaseOrderService;
|
||||||
|
|
||||||
@ApiOperation(value = "添加采购单报价")
|
@ApiOperation(value = "添加采购单报价")
|
||||||
@PostMapping
|
@PostMapping
|
||||||
public ResultMessage<PurchaseQuoted> addPurchaseOrderVO(PurchaseQuotedVO purchaseQuotedVO) {
|
public ResultMessage<PurchaseQuoted> addPurchaseOrderVO(@RequestBody PurchaseQuotedVO purchaseQuotedVO) {
|
||||||
|
PurchaseOrder purchaseOrder=purchaseOrderService.getById(purchaseQuotedVO.getPurchaseOrderId());
|
||||||
|
if(DateUtil.compare(purchaseOrder.getDeadline(),new DateTime())< 0){
|
||||||
|
ResultUtil.error(ResultCode.PURCHASE_ORDER_DEADLINE_ERROR);
|
||||||
|
}
|
||||||
return ResultUtil.data(purchaseQuotedService.addPurchaseQuoted(purchaseQuotedVO));
|
return ResultUtil.data(purchaseQuotedService.addPurchaseQuoted(purchaseQuotedVO));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1,44 +1,122 @@
|
|||||||
package cn.lili.controller.passport;
|
package cn.lili.controller.passport;
|
||||||
|
|
||||||
import cn.lili.common.enums.ResultCode;
|
import cn.lili.common.enums.ResultCode;
|
||||||
import cn.lili.common.sms.SmsUtil;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
import cn.lili.common.utils.ResultUtil;
|
import cn.lili.common.exception.ServiceException;
|
||||||
import cn.lili.common.verification.enums.VerificationEnums;
|
import cn.lili.common.security.AuthUser;
|
||||||
import cn.lili.common.verification.service.VerificationService;
|
import cn.lili.common.security.context.UserContext;
|
||||||
|
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.sms.SmsUtil;
|
||||||
|
import cn.lili.modules.verification.entity.enums.VerificationEnums;
|
||||||
|
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.RequiredArgsConstructor;
|
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;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 买家端,会员接口
|
* 买家端,会员接口
|
||||||
*
|
*
|
||||||
* @author Chopper
|
* @author Chopper
|
||||||
* @date: 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")
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
|
||||||
public class MemberBuyerController {
|
public class MemberBuyerController {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private MemberService memberService;
|
||||||
|
@Autowired
|
||||||
|
private SmsUtil smsUtil;
|
||||||
|
@Autowired
|
||||||
|
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
|
||||||
*/
|
*/
|
||||||
private final MemberService memberService;
|
@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;
|
||||||
|
}
|
||||||
|
|
||||||
private final SmsUtil smsUtil;
|
@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));
|
||||||
|
}
|
||||||
|
|
||||||
private final VerificationService verificationService;
|
|
||||||
|
@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 = "登录接口")
|
||||||
@ -50,11 +128,15 @@ public class MemberBuyerController {
|
|||||||
public ResultMessage<Object> userLogin(@NotNull(message = "用户名不能为空") @RequestParam String username,
|
public ResultMessage<Object> userLogin(@NotNull(message = "用户名不能为空") @RequestParam String username,
|
||||||
@NotNull(message = "密码不能为空") @RequestParam String password,
|
@NotNull(message = "密码不能为空") @RequestParam String password,
|
||||||
@RequestHeader String uuid) {
|
@RequestHeader String uuid) {
|
||||||
if (verificationService.check(uuid, VerificationEnums.LOGIN)) {
|
verificationService.check(uuid, VerificationEnums.LOGIN);
|
||||||
return ResultUtil.data(this.memberService.usernameLogin(username, password));
|
return ResultUtil.data(this.memberService.usernameLogin(username, password));
|
||||||
} else {
|
|
||||||
return ResultUtil.error(ResultCode.VERIFICATION_ERROR);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "注销接口")
|
||||||
|
@PostMapping("/logout")
|
||||||
|
public ResultMessage<Object> logout() {
|
||||||
|
this.memberService.logout(UserEnums.MEMBER);
|
||||||
|
return ResultUtil.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "短信登录接口")
|
@ApiOperation(value = "短信登录接口")
|
||||||
@ -66,11 +148,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) {
|
||||||
// if(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 {
|
} else {
|
||||||
// return ResultUtil.error("验证码错误");
|
throw new ServiceException(ResultCode.VERIFICATION_SMS_CHECKED_ERROR);
|
||||||
// }
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "注册用户")
|
@ApiOperation(value = "注册用户")
|
||||||
@ -87,12 +169,12 @@ public class MemberBuyerController {
|
|||||||
@RequestHeader String uuid,
|
@RequestHeader String uuid,
|
||||||
@NotNull(message = "验证码不能为空") @RequestParam String code) {
|
@NotNull(message = "验证码不能为空") @RequestParam String code) {
|
||||||
|
|
||||||
boolean result = smsUtil.verifyCode(mobilePhone, VerificationEnums.REGISTER, uuid, code);
|
if (smsUtil.verifyCode(mobilePhone, VerificationEnums.REGISTER, uuid, code)) {
|
||||||
if (result) {
|
|
||||||
return ResultUtil.data(memberService.register(username, password, mobilePhone));
|
return ResultUtil.data(memberService.register(username, password, mobilePhone));
|
||||||
} else {
|
} else {
|
||||||
return ResultUtil.error(ResultCode.VERIFICATION_SMS_ERROR);
|
throw new ServiceException(ResultCode.VERIFICATION_SMS_CHECKED_ERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "获取当前登录用户接口")
|
@ApiOperation(value = "获取当前登录用户接口")
|
||||||
@ -114,16 +196,15 @@ public class MemberBuyerController {
|
|||||||
//校验短信验证码是否正确
|
//校验短信验证码是否正确
|
||||||
if (smsUtil.verifyCode(mobile, VerificationEnums.FIND_USER, uuid, code)) {
|
if (smsUtil.verifyCode(mobile, VerificationEnums.FIND_USER, uuid, code)) {
|
||||||
//校验是否通过手机号可获取会员,存在则将会员信息存入缓存,有效时间3分钟
|
//校验是否通过手机号可获取会员,存在则将会员信息存入缓存,有效时间3分钟
|
||||||
if (memberService.findByMobile(uuid, mobile)) {
|
memberService.findByMobile(uuid, mobile);
|
||||||
return ResultUtil.success(ResultCode.SUCCESS);
|
return ResultUtil.success();
|
||||||
|
} else {
|
||||||
|
throw new ServiceException(ResultCode.VERIFICATION_SMS_CHECKED_ERROR);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ResultUtil.error(ResultCode.VERIFICATION_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")
|
||||||
@ -150,6 +231,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}")
|
||||||
@ -157,4 +266,18 @@ public class MemberBuyerController {
|
|||||||
return ResultUtil.data(this.memberService.refreshToken(refreshToken));
|
return ResultUtil.data(this.memberService.refreshToken(refreshToken));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/getImUser")
|
||||||
|
@ApiOperation(value = "获取用户信息")
|
||||||
|
public ResultMessage<Member> getImUser() {
|
||||||
|
AuthUser authUser = UserContext.getCurrentUser();
|
||||||
|
return ResultUtil.data(memberService.getById(authUser.getId()));
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/getImUserDetail/{memberId}")
|
||||||
|
@ApiImplicitParam(name = "memberId", value = "店铺Id", required = true, dataType = "String", paramType = "path")
|
||||||
|
@ApiOperation(value = "获取用户信息")
|
||||||
|
public ResultMessage<Member> getImUserDetail(@PathVariable String memberId) {
|
||||||
|
return ResultUtil.data(memberService.getById(memberId));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,14 +1,13 @@
|
|||||||
package cn.lili.controller.passport.connect;
|
package cn.lili.controller.passport.connect;
|
||||||
|
|
||||||
|
|
||||||
import cn.lili.common.utils.ResultUtil;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
import cn.lili.common.vo.ResultMessage;
|
import cn.lili.common.vo.ResultMessage;
|
||||||
import cn.lili.modules.connect.service.ConnectService;
|
import cn.lili.modules.connect.service.ConnectService;
|
||||||
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.RequiredArgsConstructor;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
@ -18,15 +17,15 @@ import java.util.List;
|
|||||||
* 买家端,app/小程序 联合登录
|
* 买家端,app/小程序 联合登录
|
||||||
*
|
*
|
||||||
* @author Chopper
|
* @author Chopper
|
||||||
* @date 2020-11-25 19:29
|
* @since 2020-11-25 19:29
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,app/小程序 联合登录")
|
@Api(tags = "买家端,app/小程序 联合登录")
|
||||||
@RequestMapping("/buyer/connect/bind")
|
@RequestMapping("/buyer/passport/connect/bind")
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
|
||||||
public class ConnectBuyerBindController {
|
public class ConnectBuyerBindController {
|
||||||
|
|
||||||
private final ConnectService connectService;
|
@Autowired
|
||||||
|
private ConnectService connectService;
|
||||||
|
|
||||||
@ApiOperation(value = "unionID 绑定")
|
@ApiOperation(value = "unionID 绑定")
|
||||||
@ApiImplicitParams({
|
@ApiImplicitParams({
|
||||||
|
|||||||
@ -2,24 +2,26 @@ package cn.lili.controller.passport.connect;
|
|||||||
|
|
||||||
|
|
||||||
import cn.lili.common.enums.ResultCode;
|
import cn.lili.common.enums.ResultCode;
|
||||||
import cn.lili.common.token.Token;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
import cn.lili.common.utils.ResultUtil;
|
import cn.lili.common.exception.ServiceException;
|
||||||
|
import cn.lili.common.security.token.Token;
|
||||||
|
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;
|
||||||
import io.swagger.annotations.ApiImplicitParams;
|
import io.swagger.annotations.ApiImplicitParams;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.RequiredArgsConstructor;
|
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.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
@ -27,23 +29,25 @@ import java.io.IOException;
|
|||||||
* 买家端,web联合登录
|
* 买家端,web联合登录
|
||||||
*
|
*
|
||||||
* @author Chopper
|
* @author Chopper
|
||||||
* @date 2020-11-25 19:29
|
|
||||||
*/
|
*/
|
||||||
|
@Slf4j
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,web联合登录")
|
@Api(tags = "买家端,web联合登录")
|
||||||
@RequestMapping("/buyer/connect")
|
@RequestMapping("/buyer/passport/connect/connect")
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
|
||||||
public class ConnectBuyerWebController {
|
public class ConnectBuyerWebController {
|
||||||
|
|
||||||
private final ConnectService connectService;
|
@Autowired
|
||||||
|
private ConnectService connectService;
|
||||||
|
|
||||||
private final MemberService memberService;
|
@Autowired
|
||||||
|
private MemberService memberService;
|
||||||
|
|
||||||
private final ConnectUtil connectUtil;
|
@Autowired
|
||||||
|
private ConnectUtil connectUtil;
|
||||||
|
|
||||||
|
|
||||||
@GetMapping("/login/web/{type}")
|
@GetMapping("/login/web/{type}")
|
||||||
@ApiOperation(value = "WEB信任登录授权")
|
@ApiOperation(value = "WEB信任登录授权,包含PC、WAP")
|
||||||
@ApiImplicitParams({
|
@ApiImplicitParams({
|
||||||
@ApiImplicitParam(name = "type", value = "登录方式:QQ,微信,微信_PC",
|
@ApiImplicitParam(name = "type", value = "登录方式:QQ,微信,微信_PC",
|
||||||
allowableValues = "QQ,WECHAT,WECHAT_PC", paramType = "path")
|
allowableValues = "QQ,WECHAT,WECHAT_PC", paramType = "path")
|
||||||
@ -58,39 +62,27 @@ public class ConnectBuyerWebController {
|
|||||||
|
|
||||||
@ApiOperation(value = "信任登录统一回调地址", hidden = true)
|
@ApiOperation(value = "信任登录统一回调地址", hidden = true)
|
||||||
@GetMapping("/callback/{type}")
|
@GetMapping("/callback/{type}")
|
||||||
public void callBack(@PathVariable String type, AuthCallback callback, HttpServletResponse httpServletResponse) throws IOException {
|
public void callBack(@PathVariable String type, AuthCallback callback, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws IOException {
|
||||||
connectUtil.callback(type, callback, httpServletResponse);
|
connectUtil.callback(type, callback, httpServletRequest, httpServletResponse);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "信任登录响应结果获取")
|
@ApiOperation(value = "信任登录响应结果获取")
|
||||||
@GetMapping("/result")
|
@GetMapping("/result")
|
||||||
public ResultMessage<Object> callBackResult(String state) {
|
public ResultMessage<Object> callBackResult(String state) {
|
||||||
if (state == null) {
|
if (state == null) {
|
||||||
return ResultUtil.error(ResultCode.USER_CONNECT_LOGIN_ERROR);
|
throw new ServiceException(ResultCode.USER_CONNECT_LOGIN_ERROR);
|
||||||
}
|
}
|
||||||
return connectUtil.getResult(state);
|
return connectUtil.getResult(state);
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/register/auto")
|
@ApiOperation(value = "APP-unionID登录")
|
||||||
@ApiOperation(value = "WEB信任登录授权")
|
|
||||||
public ResultMessage<Token> webAuthorize() {
|
|
||||||
Token token = memberService.autoRegister();
|
|
||||||
return ResultUtil.data(token);
|
|
||||||
}
|
|
||||||
|
|
||||||
@ApiOperation(value = "unionID登录")
|
|
||||||
@ApiImplicitParams({
|
|
||||||
@ApiImplicitParam(name = "openId", value = "openid", required = true, paramType = "query"),
|
|
||||||
@ApiImplicitParam(name = "type", value = "联合类型", required = true,
|
|
||||||
allowableValues = "WECHAT,QQ,ALIPAY,WEIBO,APPLE", paramType = "query"),
|
|
||||||
@ApiImplicitParam(name = "uniAccessToken", value = "联合登陆返回的accessToken", required = true, paramType = "query")
|
|
||||||
})
|
|
||||||
@GetMapping("/app/login")
|
@GetMapping("/app/login")
|
||||||
public ResultMessage<Token> unionIDLogin(ConnectAuthUser authUser, @RequestHeader("uuid") String uuid) {
|
public ResultMessage<Token> unionLogin(ConnectAuthUser authUser, @RequestHeader("uuid") String uuid) {
|
||||||
try {
|
try {
|
||||||
return ResultUtil.data(connectService.appLoginCallback(authUser, uuid));
|
return ResultUtil.data(connectService.unionLoginCallback(authUser, uuid));
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
log.error("unionID登录错误", e);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,17 +1,16 @@
|
|||||||
package cn.lili.controller.passport.connect;
|
package cn.lili.controller.passport.connect;
|
||||||
|
|
||||||
import cn.lili.common.token.Token;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
import cn.lili.common.utils.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 lombok.RequiredArgsConstructor;
|
|
||||||
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.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestHeader;
|
import org.springframework.web.bind.annotation.RequestHeader;
|
||||||
@ -24,19 +23,22 @@ import java.util.List;
|
|||||||
* 买家端,小程序登录接口
|
* 买家端,小程序登录接口
|
||||||
*
|
*
|
||||||
* @author Chopper
|
* @author Chopper
|
||||||
* @date 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 = "买家端,小程序登录接口")
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
|
||||||
public class MiniProgramBuyerController {
|
public class MiniProgramBuyerController {
|
||||||
|
|
||||||
public final ConnectService connectService;
|
@Autowired
|
||||||
public final WechatMpCodeUtil wechatMpCodeUtil;
|
public ConnectService connectService;
|
||||||
|
@Autowired
|
||||||
public final WechatMPMessageService wechatMPMessageService;
|
public WechatMpCodeUtil wechatMpCodeUtil;
|
||||||
public final ShortLinkService shortLinkService;
|
@SuppressWarnings("AlibabaLowerCamelCaseVariableNaming")
|
||||||
|
@Autowired
|
||||||
|
public WechatMPMessageService wechatMPMessageService;
|
||||||
|
@Autowired
|
||||||
|
public ShortLinkService shortLinkService;
|
||||||
|
|
||||||
@GetMapping("/auto-login")
|
@GetMapping("/auto-login")
|
||||||
@ApiOperation(value = "小程序自动登录")
|
@ApiOperation(value = "小程序自动登录")
|
||||||
|
|||||||
@ -1,19 +1,19 @@
|
|||||||
package cn.lili.controller.payment;
|
package cn.lili.controller.payment;
|
||||||
|
|
||||||
import cn.lili.common.enums.ResultCode;
|
import cn.lili.common.enums.ResultCode;
|
||||||
import cn.lili.common.utils.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.payment.kit.CashierSupport;
|
import cn.lili.modules.payment.kit.CashierSupport;
|
||||||
import cn.lili.modules.payment.kit.dto.PayParam;
|
import cn.lili.modules.payment.kit.dto.PayParam;
|
||||||
import cn.lili.modules.payment.kit.enums.PaymentClientEnum;
|
import cn.lili.modules.payment.entity.enums.PaymentClientEnum;
|
||||||
import cn.lili.modules.payment.kit.enums.PaymentMethodEnum;
|
import cn.lili.modules.payment.entity.enums.PaymentMethodEnum;
|
||||||
import cn.lili.modules.payment.kit.params.dto.CashierParam;
|
import cn.lili.modules.payment.kit.params.dto.CashierParam;
|
||||||
import cn.lili.modules.payment.service.PaymentService;
|
|
||||||
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.RequiredArgsConstructor;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
@ -25,18 +25,16 @@ import javax.servlet.http.HttpServletResponse;
|
|||||||
* 买家端,收银台接口
|
* 买家端,收银台接口
|
||||||
*
|
*
|
||||||
* @author Chopper
|
* @author Chopper
|
||||||
* @date 2020-12-18 16:59
|
* @since 2020-12-18 16:59
|
||||||
*/
|
*/
|
||||||
|
@Slf4j
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,收银台接口")
|
@Api(tags = "买家端,收银台接口")
|
||||||
@RequestMapping("/buyer/cashier")
|
@RequestMapping("/buyer/payment/cashier")
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
|
||||||
public class CashierController {
|
public class CashierController {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
private final CashierSupport cashierSupport;
|
private CashierSupport cashierSupport;
|
||||||
|
|
||||||
private final PaymentService paymentService;
|
|
||||||
|
|
||||||
|
|
||||||
@ApiImplicitParams({
|
@ApiImplicitParams({
|
||||||
@ -67,8 +65,11 @@ public class CashierController {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
return cashierSupport.payment(paymentMethodEnum, paymentClientEnum, request, response, payParam);
|
return cashierSupport.payment(paymentMethodEnum, paymentClientEnum, request, response, payParam);
|
||||||
|
} catch (ServiceException se) {
|
||||||
|
log.info("支付异常", se);
|
||||||
|
throw se;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
log.error("收银台支付错误", e);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
|
|||||||
@ -1,10 +1,9 @@
|
|||||||
package cn.lili.controller.payment;
|
package cn.lili.controller.payment;
|
||||||
|
|
||||||
import cn.lili.modules.payment.kit.RefundSupport;
|
import cn.lili.modules.payment.kit.RefundSupport;
|
||||||
import cn.lili.modules.payment.kit.enums.PaymentMethodEnum;
|
import cn.lili.modules.payment.entity.enums.PaymentMethodEnum;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
@ -17,16 +16,15 @@ import javax.servlet.http.HttpServletRequest;
|
|||||||
* 买家端,退款回调
|
* 买家端,退款回调
|
||||||
*
|
*
|
||||||
* @author Chopper
|
* @author Chopper
|
||||||
* @date 2020-12-18 16:59
|
* @since 2020-12-18 16:59
|
||||||
*/
|
*/
|
||||||
@Api(tags = "买家端,退款回调")
|
@Api(tags = "买家端,退款回调")
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/buyer/cashier/refund")
|
@RequestMapping("/buyer/payment/cashierRefund")
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
|
||||||
public class CashierRefundController {
|
public class CashierRefundController {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
private final RefundSupport refundSupport;
|
private RefundSupport refundSupport;
|
||||||
|
|
||||||
|
|
||||||
@ApiOperation(value = "退款通知")
|
@ApiOperation(value = "退款通知")
|
||||||
|
|||||||
@ -1,13 +1,20 @@
|
|||||||
package cn.lili.controller.member;
|
package cn.lili.controller.promotion;
|
||||||
|
|
||||||
import cn.lili.common.enums.ResultCode;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
|
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.utils.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.MemberCoupon;
|
import cn.lili.modules.promotion.entity.dos.MemberCoupon;
|
||||||
import cn.lili.modules.promotion.entity.vos.CouponSearchParams;
|
import cn.lili.modules.promotion.entity.dto.CouponActivityTrigger;
|
||||||
|
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.CouponActivityTypeEnum;
|
||||||
|
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.CouponActivityService;
|
||||||
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 com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
@ -15,7 +22,6 @@ 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.RequiredArgsConstructor;
|
|
||||||
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.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
@ -23,47 +29,72 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
|||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 买家端,买家优惠券接口
|
* 买家端,买家优惠券接口
|
||||||
*
|
*
|
||||||
* @author paulG
|
* @author paulG
|
||||||
* @date 2020/11/17 3:35 下午
|
* @since 2020/11/17 3:35 下午
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,买家优惠券接口")
|
@Api(tags = "买家端,买家优惠券接口")
|
||||||
@RequestMapping("/buyer/promotion/coupon")
|
@RequestMapping("/buyer/promotion/coupon")
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
|
||||||
public class CouponBuyerController {
|
public class CouponBuyerController {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 优惠券
|
* 优惠券
|
||||||
*/
|
*/
|
||||||
private final CouponService couponService;
|
@Autowired
|
||||||
|
private CouponService couponService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 优惠券活动
|
||||||
|
*/
|
||||||
|
@Autowired
|
||||||
|
private CouponActivityService couponActivityService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 会员优惠券
|
* 会员优惠券
|
||||||
*/
|
*/
|
||||||
private final MemberCouponService memberCouponService;
|
@Autowired
|
||||||
|
private MemberCouponService memberCouponService;
|
||||||
|
|
||||||
|
@GetMapping("/activity")
|
||||||
|
@ApiOperation(value = "自动领取优惠券")
|
||||||
|
public ResultMessage<List<MemberCoupon>> activity() {
|
||||||
|
return ResultUtil.data(couponActivityService.trigger(
|
||||||
|
CouponActivityTrigger.builder()
|
||||||
|
.couponActivityTypeEnum(CouponActivityTypeEnum.AUTO_COUPON)
|
||||||
|
.nickName(UserContext.getCurrentUser().getNickName())
|
||||||
|
.userId(UserContext.getCurrentUser().getId())
|
||||||
|
.build())
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
@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) {
|
||||||
param.setMemberId(UserContext.getCurrentUser().getId());
|
AuthUser currentUser = Objects.requireNonNull(UserContext.getCurrentUser());
|
||||||
|
param.setMemberId(currentUser.getId());
|
||||||
return ResultUtil.data(memberCouponService.getMemberCoupons(param, pageVo));
|
return ResultUtil.data(memberCouponService.getMemberCoupons(param, pageVo));
|
||||||
}
|
}
|
||||||
|
|
||||||
@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) {
|
||||||
param.setMemberId(UserContext.getCurrentUser().getId());
|
AuthUser currentUser = Objects.requireNonNull(UserContext.getCurrentUser());
|
||||||
|
param.setMemberId(currentUser.getId());
|
||||||
return ResultUtil.data(memberCouponService.getMemberCouponsByCanUse(param, totalPrice, pageVo));
|
return ResultUtil.data(memberCouponService.getMemberCouponsByCanUse(param, totalPrice, pageVo));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -79,9 +110,9 @@ 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) {
|
||||||
memberCouponService.checkCouponLimit(couponId, UserContext.getCurrentUser().getId());
|
AuthUser currentUser = Objects.requireNonNull(UserContext.getCurrentUser());
|
||||||
memberCouponService.receiveCoupon(couponId, UserContext.getCurrentUser().getId(), UserContext.getCurrentUser().getNickName());
|
memberCouponService.receiveBuyerCoupon(couponId, currentUser.getId(), currentUser.getNickName());
|
||||||
return ResultUtil.success(ResultCode.SUCCESS);
|
return ResultUtil.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "通过id获取")
|
@ApiOperation(value = "通过id获取")
|
||||||
@ -90,7 +121,7 @@ public class CouponBuyerController {
|
|||||||
})
|
})
|
||||||
@GetMapping(value = "/get/{id}")
|
@GetMapping(value = "/get/{id}")
|
||||||
public ResultMessage<MemberCoupon> get(@NotNull(message = "优惠券ID不能为空") @PathVariable("id") String id) {
|
public ResultMessage<MemberCoupon> get(@NotNull(message = "优惠券ID不能为空") @PathVariable("id") String id) {
|
||||||
MemberCoupon memberCoupon = memberCouponService.getById(id);
|
MemberCoupon memberCoupon = OperationalJudgment.judgment(memberCouponService.getById(id));
|
||||||
return ResultUtil.data(memberCoupon);
|
return ResultUtil.data(memberCoupon);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -0,0 +1,113 @@
|
|||||||
|
package cn.lili.controller.promotion;
|
||||||
|
|
||||||
|
import cn.hutool.core.text.CharSequenceUtil;
|
||||||
|
import cn.lili.common.enums.ResultUtil;
|
||||||
|
import cn.lili.common.security.context.UserContext;
|
||||||
|
import cn.lili.common.vo.PageVO;
|
||||||
|
import cn.lili.common.vo.ResultMessage;
|
||||||
|
import cn.lili.modules.promotion.entity.dos.KanjiaActivity;
|
||||||
|
import cn.lili.modules.promotion.entity.dos.KanjiaActivityLog;
|
||||||
|
import cn.lili.modules.promotion.entity.dto.search.KanJiaActivityLogQuery;
|
||||||
|
import cn.lili.modules.promotion.entity.dto.search.KanjiaActivityGoodsParams;
|
||||||
|
import cn.lili.modules.promotion.entity.dto.search.KanjiaActivityQuery;
|
||||||
|
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.KanjiaActivityLogService;
|
||||||
|
import cn.lili.modules.promotion.service.KanjiaActivityService;
|
||||||
|
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.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 买家端,砍价活动商品
|
||||||
|
*
|
||||||
|
* @author qiuqiu
|
||||||
|
* @date 2021/7/12
|
||||||
|
**/
|
||||||
|
@RestController
|
||||||
|
@Api(tags = "买家端,砍价商品接口")
|
||||||
|
@RequestMapping("/buyer/promotion/kanjiaGoods")
|
||||||
|
public class KanjiaGoodsActivityBuyerController {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 砍价活动商品
|
||||||
|
*/
|
||||||
|
@Autowired
|
||||||
|
private KanjiaActivityGoodsService kanJiaActivityGoodsService;
|
||||||
|
/**
|
||||||
|
* 帮砍记录
|
||||||
|
*/
|
||||||
|
@Autowired
|
||||||
|
private KanjiaActivityLogService kanJiaActivityLogService;
|
||||||
|
/**
|
||||||
|
* 砍价活动
|
||||||
|
*/
|
||||||
|
@Autowired
|
||||||
|
private KanjiaActivityService kanJiaActivityService;
|
||||||
|
|
||||||
|
@GetMapping
|
||||||
|
@ApiOperation(value = "分页获取砍价商品")
|
||||||
|
public ResultMessage<IPage<KanjiaActivityGoodsListVO>> kanjiaActivityGoodsPage(KanjiaActivityGoodsParams kanjiaActivityGoodsParams, PageVO page) {
|
||||||
|
// 会员端查询到的肯定是已经开始的活动商品
|
||||||
|
kanjiaActivityGoodsParams.setPromotionStatus(PromotionsStatusEnum.START.name());
|
||||||
|
// kanjiaActivityGoodsParams.setStartTime(System.currentTimeMillis());
|
||||||
|
// kanjiaActivityGoodsParams.setEndTime(System.currentTimeMillis());
|
||||||
|
return ResultUtil.data(kanJiaActivityGoodsService.kanjiaGoodsVOPage(kanjiaActivityGoodsParams, page));
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/{id}")
|
||||||
|
@ApiOperation(value = "获取砍价活动商品")
|
||||||
|
@ApiImplicitParam(name = "id", value = "砍价活动商品ID", required = true, paramType = "path")
|
||||||
|
public ResultMessage<KanjiaActivityGoodsVO> getKanjiaActivityGoods(@PathVariable String id) {
|
||||||
|
return ResultUtil.data(kanJiaActivityGoodsService.getKanJiaGoodsVO(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/getKanjiaActivity/logs")
|
||||||
|
@ApiOperation(value = "分页获取砍价活动-帮砍记录")
|
||||||
|
public ResultMessage<IPage<KanjiaActivityLog>> getKanjiaActivityLog(KanJiaActivityLogQuery kanJiaActivityLogQuery, PageVO page) {
|
||||||
|
return ResultUtil.data(kanJiaActivityLogService.getForPage(kanJiaActivityLogQuery, page));
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/getKanjiaActivity")
|
||||||
|
@ApiOperation(value = "获取砍价活动")
|
||||||
|
public ResultMessage<KanjiaActivityVO> getKanJiaActivity(KanjiaActivitySearchParams kanjiaActivitySearchParams) {
|
||||||
|
//如果是非被邀请关系则填写会员ID
|
||||||
|
if (CharSequenceUtil.isEmpty(kanjiaActivitySearchParams.getKanjiaActivityId())) {
|
||||||
|
kanjiaActivitySearchParams.setMemberId(UserContext.getCurrentUser().getId());
|
||||||
|
}
|
||||||
|
return ResultUtil.data(kanJiaActivityService.getKanjiaActivityVO(kanjiaActivitySearchParams));
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping
|
||||||
|
@ApiImplicitParam(name = "id", value = "砍价活动商品ID", required = true, paramType = "path")
|
||||||
|
@ApiOperation(value = "发起砍价活动")
|
||||||
|
public ResultMessage<KanjiaActivityLog> launchKanJiaActivity(String id) {
|
||||||
|
KanjiaActivityLog kanjiaActivityLog = kanJiaActivityService.add(id);
|
||||||
|
return ResultUtil.data(kanjiaActivityLog);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/help/{kanjiaActivityId}")
|
||||||
|
@ApiImplicitParam(name = "kanJiaActivityId", value = "砍价活动ID", required = true, paramType = "path")
|
||||||
|
@ApiOperation(value = "帮砍一刀")
|
||||||
|
public ResultMessage<KanjiaActivityLog> helpKanJia(@PathVariable String kanjiaActivityId) {
|
||||||
|
KanjiaActivityLog kanjiaActivityLog = kanJiaActivityService.helpKanJia(kanjiaActivityId);
|
||||||
|
return ResultUtil.data(kanjiaActivityLog);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/kanjiaActivity/mine/")
|
||||||
|
@ApiOperation(value = "分页获取已参与的砍价活动")
|
||||||
|
public ResultMessage<IPage<KanjiaActivity>> getPointsGoodsPage(KanjiaActivityQuery kanjiaActivityQuery, PageVO page) {
|
||||||
|
// 会员端查询到的肯定是已经开始的活动商品
|
||||||
|
kanjiaActivityQuery.setMemberId(UserContext.getCurrentUser().getId());
|
||||||
|
IPage<KanjiaActivity> kanjiaActivity = kanJiaActivityService.getForPage(kanjiaActivityQuery, page);
|
||||||
|
return ResultUtil.data(kanjiaActivity);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -1,21 +1,19 @@
|
|||||||
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.utils.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.modules.promotion.entity.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;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
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.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
@ -28,28 +26,26 @@ import java.util.List;
|
|||||||
* 买家端,拼团接口
|
* 买家端,拼团接口
|
||||||
*
|
*
|
||||||
* @author paulG
|
* @author paulG
|
||||||
* @date 2021/2/20
|
* @since 2021/2/20
|
||||||
**/
|
**/
|
||||||
@Api(tags = "买家端,拼团接口")
|
@Api(tags = "买家端,拼团接口")
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/buyer/promotion/pintuan")
|
@RequestMapping("/buyer/promotion/pintuan")
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
|
||||||
public class PintuanBuyerController {
|
public class PintuanBuyerController {
|
||||||
|
@Autowired
|
||||||
private final PromotionGoodsService promotionGoodsService;
|
private PromotionGoodsService promotionGoodsService;
|
||||||
|
@Autowired
|
||||||
private final PintuanService pintuanService;
|
private PintuanService pintuanService;
|
||||||
|
|
||||||
@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));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,19 +1,22 @@
|
|||||||
package cn.lili.controller.promotion;
|
package cn.lili.controller.promotion;
|
||||||
|
|
||||||
import cn.lili.common.utils.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;
|
||||||
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.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
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.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
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;
|
||||||
|
|
||||||
@ -21,22 +24,22 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
* 买家端,积分商品接口
|
* 买家端,积分商品接口
|
||||||
*
|
*
|
||||||
* @author paulG
|
* @author paulG
|
||||||
* @date 2021/1/19
|
* @since 2021/1/19
|
||||||
**/
|
**/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,积分商品接口")
|
@Api(tags = "买家端,积分商品接口")
|
||||||
@RequestMapping("/buyer/promotion/pointsGoods")
|
@RequestMapping("/buyer/promotion/pointsGoods")
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
|
||||||
public class PointsGoodsBuyerController {
|
public class PointsGoodsBuyerController {
|
||||||
|
@Autowired
|
||||||
private final PointsGoodsService pointsGoodsService;
|
private PointsGoodsService pointsGoodsService;
|
||||||
|
@Autowired
|
||||||
private final PointsGoodsCategoryService pointsGoodsCategoryService;
|
private PointsGoodsCategoryService pointsGoodsCategoryService;
|
||||||
|
|
||||||
@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);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -46,4 +49,11 @@ public class PointsGoodsBuyerController {
|
|||||||
return ResultUtil.data(pointsGoodsCategoryService.getCategoryByPage(name, page));
|
return ResultUtil.data(pointsGoodsCategoryService.getCategoryByPage(name, page));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/{id}")
|
||||||
|
@ApiOperation(value = "获取积分活动商品")
|
||||||
|
@ApiImplicitParam(name = "id", value = "积分商品ID", required = true, paramType = "path")
|
||||||
|
public ResultMessage<PointsGoodsVO> getPointsGoodsPage(@PathVariable String id) {
|
||||||
|
return ResultUtil.data(pointsGoodsService.getPointsGoodsDetail(id));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,13 +1,12 @@
|
|||||||
package cn.lili.controller.promotion;
|
package cn.lili.controller.promotion;
|
||||||
|
|
||||||
import cn.lili.common.utils.ResultUtil;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
import cn.lili.common.vo.ResultMessage;
|
import cn.lili.common.vo.ResultMessage;
|
||||||
import cn.lili.modules.promotion.entity.vos.SeckillGoodsVO;
|
import cn.lili.modules.promotion.entity.vos.SeckillGoodsVO;
|
||||||
import cn.lili.modules.promotion.entity.vos.SeckillTimelineVO;
|
import cn.lili.modules.promotion.entity.vos.SeckillTimelineVO;
|
||||||
import cn.lili.modules.promotion.service.SeckillApplyService;
|
import cn.lili.modules.promotion.service.SeckillApplyService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
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.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
@ -18,29 +17,29 @@ import java.util.List;
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 买家端,限时抢购接口
|
* 买家端,秒杀活动接口
|
||||||
*
|
*
|
||||||
* @author paulG
|
* @author paulG
|
||||||
* @date 2020/11/17 2:30 下午
|
* @since 2020/11/17 2:30 下午
|
||||||
*/
|
*/
|
||||||
@Api(tags = "买家端,限时抢购接口")
|
@Api(tags = "买家端,秒杀活动接口")
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/buyer/promotion/seckill")
|
@RequestMapping("/buyer/promotion/seckill")
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
|
||||||
public class SeckillBuyerController {
|
public class SeckillBuyerController {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 限时抢购
|
* 秒杀活动
|
||||||
*/
|
*/
|
||||||
private final SeckillApplyService seckillApplyService;
|
@Autowired
|
||||||
|
private SeckillApplyService seckillApplyService;
|
||||||
|
|
||||||
@ApiOperation(value = "获取当天限时抢购信息")
|
@ApiOperation(value = "获取当天秒杀活动信息")
|
||||||
@GetMapping
|
@GetMapping
|
||||||
public ResultMessage<List<SeckillTimelineVO>> getSeckillTime() {
|
public ResultMessage<List<SeckillTimelineVO>> getSeckillTime() {
|
||||||
return ResultUtil.data(seckillApplyService.getSeckillTimeline());
|
return ResultUtil.data(seckillApplyService.getSeckillTimeline());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "获取某个时刻的限时抢购商品信息")
|
@ApiOperation(value = "获取某个时刻的秒杀活动商品信息")
|
||||||
@GetMapping("/{timeline}")
|
@GetMapping("/{timeline}")
|
||||||
public ResultMessage<List<SeckillGoodsVO>> getSeckillGoods(@PathVariable Integer timeline) {
|
public ResultMessage<List<SeckillGoodsVO>> getSeckillGoods(@PathVariable Integer timeline) {
|
||||||
return ResultUtil.data(seckillApplyService.getSeckillGoods(timeline));
|
return ResultUtil.data(seckillApplyService.getSeckillGoods(timeline));
|
||||||
|
|||||||
@ -0,0 +1,53 @@
|
|||||||
|
package cn.lili.controller.store;
|
||||||
|
|
||||||
|
import cn.lili.common.enums.ResultUtil;
|
||||||
|
import cn.lili.common.security.OperationalJudgment;
|
||||||
|
import cn.lili.common.security.context.UserContext;
|
||||||
|
import cn.lili.common.vo.PageVO;
|
||||||
|
import cn.lili.common.vo.ResultMessage;
|
||||||
|
import cn.lili.modules.store.entity.dos.StoreAddress;
|
||||||
|
import cn.lili.modules.store.service.StoreAddressService;
|
||||||
|
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;
|
||||||
|
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 买家端,商家地址(自提点)接口
|
||||||
|
*
|
||||||
|
* @author chc
|
||||||
|
* @since 2022/6/2114:46
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@Api(tags = "买家端,商家地址(自提点)接口")
|
||||||
|
@RequestMapping("/buyer/store/address")
|
||||||
|
public class StoreAddressBuyerController {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 店铺自提点
|
||||||
|
*/
|
||||||
|
@Autowired
|
||||||
|
private StoreAddressService storeAddressService;
|
||||||
|
|
||||||
|
@ApiOperation(value = "获取商家自提点分页")
|
||||||
|
@ApiImplicitParam(name = "storeId", value = "店铺Id", required = true, dataType = "String", paramType = "path")
|
||||||
|
@GetMapping("/page/{storeId}")
|
||||||
|
public ResultMessage<IPage<StoreAddress>> get(PageVO pageVo,@PathVariable String storeId) {
|
||||||
|
return ResultUtil.data(storeAddressService.getStoreAddress(storeId, pageVo));
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "获取商家自提点信息")
|
||||||
|
@ApiImplicitParam(name = "id", value = "自提点ID", required = true, paramType = "path")
|
||||||
|
@GetMapping("/{id}")
|
||||||
|
public ResultMessage<StoreAddress> get(@PathVariable String id) {
|
||||||
|
StoreAddress address = OperationalJudgment.judgment(storeAddressService.getById(id));
|
||||||
|
return ResultUtil.data(address);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,25 +1,24 @@
|
|||||||
package cn.lili.controller.store;
|
package cn.lili.controller.store;
|
||||||
|
|
||||||
import cn.lili.common.enums.ResultCode;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
|
import cn.lili.common.security.AuthUser;
|
||||||
import cn.lili.common.security.context.UserContext;
|
import cn.lili.common.security.context.UserContext;
|
||||||
import cn.lili.common.utils.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.statistics.aop.PageViewPoint;
|
import cn.lili.modules.goods.entity.vos.StoreGoodsLabelVO;
|
||||||
import cn.lili.modules.statistics.aop.enums.PageViewEnum;
|
import cn.lili.modules.goods.service.StoreGoodsLabelService;
|
||||||
|
import cn.lili.modules.store.entity.dos.Store;
|
||||||
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;
|
||||||
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.RequiredArgsConstructor;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
@ -31,26 +30,28 @@ import java.util.List;
|
|||||||
* 买家端,店铺接口
|
* 买家端,店铺接口
|
||||||
*
|
*
|
||||||
* @author Bulbasaur
|
* @author Bulbasaur
|
||||||
* @date: 2020/11/17 2:32 下午
|
* @since 2020/11/17 2:32 下午
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/buyer/store")
|
@RequestMapping("/buyer/store/store")
|
||||||
@Api(tags = "买家端,店铺接口")
|
@Api(tags = "买家端,店铺接口")
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
|
||||||
public class StoreBuyerController {
|
public class StoreBuyerController {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 店铺
|
* 店铺
|
||||||
*/
|
*/
|
||||||
private final StoreService storeService;
|
@Autowired
|
||||||
|
private StoreService storeService;
|
||||||
/**
|
/**
|
||||||
* 店铺商品分类
|
* 店铺商品分类
|
||||||
*/
|
*/
|
||||||
private final StoreGoodsLabelService storeGoodsLabelService;
|
@Autowired
|
||||||
|
private StoreGoodsLabelService storeGoodsLabelService;
|
||||||
/**
|
/**
|
||||||
* 店铺详情
|
* 店铺详情
|
||||||
*/
|
*/
|
||||||
private final StoreDetailService storeDetailService;
|
@Autowired
|
||||||
|
private StoreDetailService storeDetailService;
|
||||||
|
|
||||||
@ApiOperation(value = "获取店铺列表分页")
|
@ApiOperation(value = "获取店铺列表分页")
|
||||||
@GetMapping
|
@GetMapping
|
||||||
@ -58,14 +59,34 @@ public class StoreBuyerController {
|
|||||||
return ResultUtil.data(storeService.findByConditionPage(entity, page));
|
return ResultUtil.data(storeService.findByConditionPage(entity, page));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/store")
|
||||||
|
@ApiOperation(value = "im-获取店铺信息")
|
||||||
|
public ResultMessage<Store> getStoreUser() {
|
||||||
|
AuthUser authUser = UserContext.getCurrentUser();
|
||||||
|
return ResultUtil.data(storeService.getById(authUser.getStoreId()));
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/store/{storeId}")
|
||||||
|
@ApiImplicitParam(name = "storeId", value = "店铺Id", required = true, dataType = "String", paramType = "path")
|
||||||
|
@ApiOperation(value = "im-店铺ID获取店铺信息")
|
||||||
|
public ResultMessage<Store> getStoreUserDetail(@PathVariable String storeId) {
|
||||||
|
return ResultUtil.data(storeService.getById(storeId));
|
||||||
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "通过id获取店铺信息")
|
@ApiOperation(value = "通过id获取店铺信息")
|
||||||
@ApiImplicitParam(name = "id", value = "店铺ID", required = true, paramType = "path")
|
@ApiImplicitParam(name = "id", value = "店铺ID", required = true, paramType = "path")
|
||||||
@GetMapping(value = "/get/detail/{id}")
|
@GetMapping(value = "/get/detail/{id}")
|
||||||
@PageViewPoint(type = PageViewEnum.STORE, id = "#id")
|
|
||||||
public ResultMessage<StoreBasicInfoVO> detail(@NotNull @PathVariable String id) {
|
public ResultMessage<StoreBasicInfoVO> detail(@NotNull @PathVariable String id) {
|
||||||
return ResultUtil.data(storeDetailService.getStoreBasicInfoDTO(id));
|
return ResultUtil.data(storeDetailService.getStoreBasicInfoDTO(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "通过id获取店铺详细信息-营业执照")
|
||||||
|
@ApiImplicitParam(name = "id", value = "店铺ID", required = true, paramType = "path")
|
||||||
|
@GetMapping(value = "/get/licencePhoto/{id}")
|
||||||
|
public ResultMessage<StoreOtherVO> licencePhoto(@NotNull @PathVariable String id) {
|
||||||
|
return ResultUtil.data(storeDetailService.getStoreOtherVO(id));
|
||||||
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "通过id获取店铺商品分类")
|
@ApiOperation(value = "通过id获取店铺商品分类")
|
||||||
@ApiImplicitParams({
|
@ApiImplicitParams({
|
||||||
@ApiImplicitParam(name = "id", value = "店铺ID", required = true, paramType = "path")
|
@ApiImplicitParam(name = "id", value = "店铺ID", required = true, paramType = "path")
|
||||||
@ -78,28 +99,22 @@ public class StoreBuyerController {
|
|||||||
@ApiOperation(value = "申请店铺第一步-填写企业信息")
|
@ApiOperation(value = "申请店铺第一步-填写企业信息")
|
||||||
@PutMapping(value = "/apply/first")
|
@PutMapping(value = "/apply/first")
|
||||||
public ResultMessage<Object> applyFirstStep(StoreCompanyDTO storeCompanyDTO) {
|
public ResultMessage<Object> applyFirstStep(StoreCompanyDTO storeCompanyDTO) {
|
||||||
if (storeService.applyFirstStep(storeCompanyDTO)) {
|
storeService.applyFirstStep(storeCompanyDTO);
|
||||||
return ResultUtil.success(ResultCode.SUCCESS);
|
return ResultUtil.success();
|
||||||
}
|
|
||||||
return ResultUtil.error(ResultCode.ERROR);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "申请店铺第二步-填写银行信息")
|
@ApiOperation(value = "申请店铺第二步-填写银行信息")
|
||||||
@PutMapping(value = "/apply/second")
|
@PutMapping(value = "/apply/second")
|
||||||
public ResultMessage<Object> applyFirstStep(StoreBankDTO storeBankDTO) {
|
public ResultMessage<Object> applyFirstStep(StoreBankDTO storeBankDTO) {
|
||||||
if (storeService.applySecondStep(storeBankDTO)) {
|
storeService.applySecondStep(storeBankDTO);
|
||||||
return ResultUtil.success(ResultCode.SUCCESS);
|
return ResultUtil.success();
|
||||||
}
|
|
||||||
return ResultUtil.error(ResultCode.ERROR);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "申请店铺第三步-填写其他信息")
|
@ApiOperation(value = "申请店铺第三步-填写其他信息")
|
||||||
@PutMapping(value = "/apply/third")
|
@PutMapping(value = "/apply/third")
|
||||||
public ResultMessage<Object> applyFirstStep(StoreOtherInfoDTO storeOtherInfoDTO) {
|
public ResultMessage<Object> applyFirstStep(StoreOtherInfoDTO storeOtherInfoDTO) {
|
||||||
if (storeService.applyThirdStep(storeOtherInfoDTO)) {
|
storeService.applyThirdStep(storeOtherInfoDTO);
|
||||||
return ResultUtil.success(ResultCode.SUCCESS);
|
return ResultUtil.success();
|
||||||
}
|
|
||||||
return ResultUtil.error(ResultCode.ERROR);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "获取当前登录会员的店铺信息-入驻店铺")
|
@ApiOperation(value = "获取当前登录会员的店铺信息-入驻店铺")
|
||||||
|
|||||||
@ -1,8 +1,9 @@
|
|||||||
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.security.context.UserContext;
|
import cn.lili.common.security.context.UserContext;
|
||||||
import cn.lili.common.utils.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.member.entity.vo.MemberReceiptAddVO;
|
import cn.lili.modules.member.entity.vo.MemberReceiptAddVO;
|
||||||
@ -11,7 +12,6 @@ import cn.lili.modules.member.service.MemberReceiptService;
|
|||||||
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;
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
@ -20,15 +20,15 @@ import org.springframework.web.bind.annotation.*;
|
|||||||
* 买家端,会员发票接口
|
* 买家端,会员发票接口
|
||||||
*
|
*
|
||||||
* @author paulG
|
* @author paulG
|
||||||
* @date: 2021-03-29 14:10:16
|
* @since 2021-03-29 14:10:16
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,会员发票接口")
|
@Api(tags = "买家端,会员发票接口")
|
||||||
@RequestMapping("/buyer/member/receipt")
|
@RequestMapping("/buyer/wallet/receipt")
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
|
||||||
public class MemberReceiptController {
|
public class MemberReceiptController {
|
||||||
|
|
||||||
private final MemberReceiptService memberReceiptService;
|
@Autowired
|
||||||
|
private MemberReceiptService memberReceiptService;
|
||||||
|
|
||||||
@ApiOperation(value = "查询会员发票列表")
|
@ApiOperation(value = "查询会员发票列表")
|
||||||
@GetMapping
|
@GetMapping
|
||||||
@ -36,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) {
|
||||||
@ -1,56 +1,68 @@
|
|||||||
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.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.utils.ResultUtil;
|
|
||||||
import cn.lili.common.verification.enums.VerificationEnums;
|
|
||||||
import cn.lili.common.verification.service.VerificationService;
|
|
||||||
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.system.entity.dos.Setting;
|
||||||
|
import cn.lili.modules.system.entity.dto.WithdrawalSetting;
|
||||||
|
import cn.lili.modules.system.entity.enums.SettingEnum;
|
||||||
|
import cn.lili.modules.system.entity.vo.WithdrawalSettingVO;
|
||||||
|
import cn.lili.modules.system.service.SettingService;
|
||||||
|
import cn.lili.modules.verification.entity.enums.VerificationEnums;
|
||||||
|
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 com.google.gson.Gson;
|
||||||
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.RequiredArgsConstructor;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import javax.validation.constraints.Max;
|
import javax.validation.constraints.Max;
|
||||||
import javax.validation.constraints.Min;
|
|
||||||
import javax.validation.constraints.Pattern;
|
import javax.validation.constraints.Pattern;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 买家端,会员余额接口
|
* 买家端,会员余额接口
|
||||||
*
|
*
|
||||||
* @author pikachu
|
* @author pikachu
|
||||||
* @date: 2020/11/16 10:07 下午
|
* @since 2020/11/16 10:07 下午
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,会员余额接口")
|
@Api(tags = "买家端,会员余额接口")
|
||||||
@RequestMapping("/buyer/members/wallet")
|
@RequestMapping("/buyer/wallet/wallet")
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
@Validated
|
||||||
public class MemberWalletBuyerController {
|
public class MemberWalletBuyerController {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 会员
|
* 会员
|
||||||
*/
|
*/
|
||||||
private final MemberService memberService;
|
@Autowired
|
||||||
|
private MemberService memberService;
|
||||||
/**
|
/**
|
||||||
* 会员余额
|
* 会员余额
|
||||||
*/
|
*/
|
||||||
private final MemberWalletService memberWalletService;
|
@Autowired
|
||||||
|
private MemberWalletService memberWalletService;
|
||||||
/**
|
/**
|
||||||
* 验证码
|
* 验证码
|
||||||
*/
|
*/
|
||||||
private final VerificationService verificationService;
|
@Autowired
|
||||||
|
private VerificationService verificationService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private SettingService settingService;
|
||||||
|
|
||||||
@GetMapping
|
@GetMapping
|
||||||
@ApiOperation(value = "查询会员预存款余额")
|
@ApiOperation(value = "查询会员预存款余额")
|
||||||
@ -62,6 +74,31 @@ public class MemberWalletBuyerController {
|
|||||||
throw new ServiceException(ResultCode.USER_NOT_LOGIN);
|
throw new ServiceException(ResultCode.USER_NOT_LOGIN);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping(value = "/withdrawalSettingVO")
|
||||||
|
@ApiOperation(value = "获取提现设置VO")
|
||||||
|
public ResultMessage<Object> minPrice() {
|
||||||
|
Setting setting = settingService.get(SettingEnum.WITHDRAWAL_SETTING.name());
|
||||||
|
WithdrawalSetting withdrawalSetting = new Gson().fromJson(setting.getSettingValue(), WithdrawalSetting.class);
|
||||||
|
|
||||||
|
WithdrawalSettingVO withdrawalSettingVO = new WithdrawalSettingVO();
|
||||||
|
withdrawalSettingVO.setMinPrice(withdrawalSetting.getMinPrice());
|
||||||
|
withdrawalSettingVO.setFee(withdrawalSetting.getFee());
|
||||||
|
withdrawalSettingVO.setType(withdrawalSetting.getType());
|
||||||
|
return ResultUtil.data(withdrawalSettingVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PreventDuplicateSubmissions
|
||||||
|
@PostMapping(value = "/withdrawal")
|
||||||
|
@ApiOperation(value = "会员中心余额提现")
|
||||||
|
@ApiImplicitParams({
|
||||||
|
@ApiImplicitParam(name = "price", value = "提现金额", required = true, dataType = "double", paramType = "query"),
|
||||||
|
@ApiImplicitParam(name = "realName", value = "真实姓名", required = true, dataType = "String", paramType = "query"),
|
||||||
|
@ApiImplicitParam(name = "connectNumber", value = "第三方登录账号", required = true, dataType = "String", paramType = "query")
|
||||||
|
})
|
||||||
|
public ResultMessage<Boolean> withdrawal(@Max(value = 9999, message = "充值金额单次最多允许提现9999元") Double price, @RequestParam String realName, @RequestParam String connectNumber) {
|
||||||
|
return ResultUtil.data(memberWalletService.applyWithdrawal(price, realName, connectNumber));
|
||||||
|
}
|
||||||
|
|
||||||
@PostMapping(value = "/set-password")
|
@PostMapping(value = "/set-password")
|
||||||
@ApiOperation(value = "设置支付密码")
|
@ApiOperation(value = "设置支付密码")
|
||||||
@ApiImplicitParams({
|
@ApiImplicitParams({
|
||||||
@ -77,9 +114,9 @@ public class MemberWalletBuyerController {
|
|||||||
//校验验证码
|
//校验验证码
|
||||||
if (verificationService.check(uuid, VerificationEnums.WALLET_PASSWORD)) {
|
if (verificationService.check(uuid, VerificationEnums.WALLET_PASSWORD)) {
|
||||||
memberWalletService.setMemberWalletPassword(member, password);
|
memberWalletService.setMemberWalletPassword(member, password);
|
||||||
return ResultUtil.error(ResultCode.SUCCESS);
|
throw new ServiceException(ResultCode.SUCCESS);
|
||||||
} else {
|
} else {
|
||||||
return ResultUtil.error(ResultCode.VERIFICATION_ERROR);
|
throw new ServiceException(ResultCode.VERIFICATION_ERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -106,8 +143,9 @@ public class MemberWalletBuyerController {
|
|||||||
}
|
}
|
||||||
this.memberWalletService.setMemberWalletPassword(member, newPassword);
|
this.memberWalletService.setMemberWalletPassword(member, newPassword);
|
||||||
return ResultUtil.data("修改成功");
|
return ResultUtil.data("修改成功");
|
||||||
|
} else {
|
||||||
|
throw new ServiceException(ResultCode.WALLET_NOT_EXIT_ERROR);
|
||||||
}
|
}
|
||||||
throw new ServiceException(ResultCode.ERROR);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -117,14 +155,4 @@ public class MemberWalletBuyerController {
|
|||||||
return memberWalletService.checkPassword();
|
return memberWalletService.checkPassword();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@PostMapping(value = "/withdrawal")
|
|
||||||
@ApiOperation(value = "会员中心余额提现")
|
|
||||||
@ApiImplicitParams({
|
|
||||||
@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) {
|
|
||||||
return ResultUtil.data(memberWalletService.applyWithdrawal(price));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -1,36 +1,34 @@
|
|||||||
package cn.lili.controller.member;
|
package cn.lili.controller.wallet;
|
||||||
|
|
||||||
|
|
||||||
|
import cn.lili.common.enums.ResultUtil;
|
||||||
import cn.lili.common.security.context.UserContext;
|
import cn.lili.common.security.context.UserContext;
|
||||||
import cn.lili.common.utils.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.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 lombok.RequiredArgsConstructor;
|
|
||||||
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.*;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 买家端,余额提现记录接口
|
* 买家端,余额提现记录接口
|
||||||
*
|
*
|
||||||
* @author pikachu
|
* @author pikachu
|
||||||
* @date: 2020/11/16 10:07 下午
|
* @since 2020/11/16 10:07 下午
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,余额提现记录接口")
|
@Api(tags = "买家端,余额提现记录接口")
|
||||||
@RequestMapping("/buyer/member/withdrawApply")
|
@RequestMapping("/buyer/member/withdrawApply")
|
||||||
@Transactional(rollbackFor = Exception.class)
|
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
|
||||||
public class MemberWithdrawApplyBuyerController {
|
public class MemberWithdrawApplyBuyerController {
|
||||||
|
@Autowired
|
||||||
private final MemberWithdrawApplyService memberWithdrawApplyService;
|
private MemberWithdrawApplyService memberWithdrawApplyService;
|
||||||
|
|
||||||
|
|
||||||
@ApiOperation(value = "分页获取提现记录")
|
@ApiOperation(value = "分页获取提现记录")
|
||||||
@ -38,8 +36,8 @@ public class MemberWithdrawApplyBuyerController {
|
|||||||
public ResultMessage<IPage<MemberWithdrawApply>> getByPage(PageVO page, MemberWithdrawApplyQueryVO memberWithdrawApplyQueryVO) {
|
public ResultMessage<IPage<MemberWithdrawApply>> getByPage(PageVO page, MemberWithdrawApplyQueryVO memberWithdrawApplyQueryVO) {
|
||||||
memberWithdrawApplyQueryVO.setMemberId(UserContext.getCurrentUser().getId());
|
memberWithdrawApplyQueryVO.setMemberId(UserContext.getCurrentUser().getId());
|
||||||
//构建查询 返回数据
|
//构建查询 返回数据
|
||||||
IPage<MemberWithdrawApply> memberWithdrawApplyIPage = memberWithdrawApplyService.getMemberWithdrawPage(page, memberWithdrawApplyQueryVO);
|
IPage<MemberWithdrawApply> memberWithdrawApplyPage = memberWithdrawApplyService.getMemberWithdrawPage(page, memberWithdrawApplyQueryVO);
|
||||||
return ResultUtil.data(memberWithdrawApplyIPage);
|
return ResultUtil.data(memberWithdrawApplyPage);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -1,18 +1,16 @@
|
|||||||
package cn.lili.controller.member;
|
package cn.lili.controller.wallet;
|
||||||
|
|
||||||
|
import cn.lili.common.enums.ResultUtil;
|
||||||
import cn.lili.common.security.context.UserContext;
|
import cn.lili.common.security.context.UserContext;
|
||||||
import cn.lili.common.utils.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.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 lombok.RequiredArgsConstructor;
|
|
||||||
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;
|
||||||
@ -21,13 +19,11 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
* 买家端,预存款充值记录接口
|
* 买家端,预存款充值记录接口
|
||||||
*
|
*
|
||||||
* @author pikachu
|
* @author pikachu
|
||||||
* @date: 2020/11/16 10:07 下午
|
* @since 2020/11/16 10:07 下午
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,预存款充值记录接口")
|
@Api(tags = "买家端,预存款充值记录接口")
|
||||||
@RequestMapping("/buyer/member/recharge")
|
@RequestMapping("/buyer/wallet/recharge")
|
||||||
@Transactional(rollbackFor = Exception.class)
|
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
|
||||||
public class RechargeBuyerController {
|
public class RechargeBuyerController {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
@ -1,18 +1,17 @@
|
|||||||
package cn.lili.controller.trade;
|
package cn.lili.controller.wallet;
|
||||||
|
|
||||||
|
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.utils.PageUtil;
|
|
||||||
import cn.lili.common.utils.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.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 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;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
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.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
@ -22,15 +21,15 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
* 买家端,预存款变动日志记录接口
|
* 买家端,预存款变动日志记录接口
|
||||||
*
|
*
|
||||||
* @author pikachu
|
* @author pikachu
|
||||||
* @date: 2020/11/16 10:07 下午
|
* @since 2020/11/16 10:07 下午
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "买家端,预存款变动日志记录接口")
|
@Api(tags = "买家端,预存款变动日志记录接口")
|
||||||
@RequestMapping("/buyer/wallet/log")
|
@RequestMapping("/buyer/wallet/log")
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
|
||||||
public class WalletLogBuyerController {
|
public class WalletLogBuyerController {
|
||||||
|
|
||||||
private final WalletLogService walletLogService;
|
@Autowired
|
||||||
|
private WalletLogService walletLogService;
|
||||||
|
|
||||||
@ApiOperation(value = "分页获取预存款变动日志")
|
@ApiOperation(value = "分页获取预存款变动日志")
|
||||||
@GetMapping
|
@GetMapping
|
||||||
@ -38,7 +37,8 @@ public class WalletLogBuyerController {
|
|||||||
//获取当前登录用户
|
//获取当前登录用户
|
||||||
AuthUser authUser = UserContext.getCurrentUser();
|
AuthUser authUser = UserContext.getCurrentUser();
|
||||||
//构建查询 返回数据
|
//构建查询 返回数据
|
||||||
IPage<WalletLog> depositLogPage = walletLogService.page(PageUtil.initPage(page), new QueryWrapper<WalletLog>().eq("member_id", authUser.getId()));
|
IPage<WalletLog> depositLogPage = walletLogService.page(PageUtil.initPage(page),
|
||||||
|
new QueryWrapper<WalletLog>().eq("member_id", authUser.getId()).orderByDesc("create_time"));
|
||||||
return ResultUtil.data(depositLogPage);
|
return ResultUtil.data(depositLogPage);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,18 +1,19 @@
|
|||||||
package cn.lili.security;
|
package cn.lili.security;
|
||||||
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.lili.common.cache.Cache;
|
import cn.lili.cache.Cache;
|
||||||
import cn.lili.common.cache.CachePrefix;
|
import cn.lili.cache.CachePrefix;
|
||||||
import cn.lili.common.security.AuthUser;
|
import cn.lili.common.security.AuthUser;
|
||||||
import cn.lili.common.security.enums.SecurityEnum;
|
import cn.lili.common.security.enums.SecurityEnum;
|
||||||
import cn.lili.common.security.enums.UserEnums;
|
import cn.lili.common.security.enums.UserEnums;
|
||||||
import cn.lili.common.token.SecretKeyUtil;
|
import cn.lili.common.security.token.SecretKeyUtil;
|
||||||
import cn.lili.common.utils.ResponseUtil;
|
import cn.lili.common.utils.ResponseUtil;
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import io.jsonwebtoken.Claims;
|
import io.jsonwebtoken.Claims;
|
||||||
import io.jsonwebtoken.ExpiredJwtException;
|
import io.jsonwebtoken.ExpiredJwtException;
|
||||||
import io.jsonwebtoken.Jwts;
|
import io.jsonwebtoken.Jwts;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.security.authentication.AuthenticationManager;
|
import org.springframework.security.authentication.AuthenticationManager;
|
||||||
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
|
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
|
||||||
import org.springframework.security.core.GrantedAuthority;
|
import org.springframework.security.core.GrantedAuthority;
|
||||||
@ -34,8 +35,7 @@ import java.util.List;
|
|||||||
*
|
*
|
||||||
* @author Chopper
|
* @author Chopper
|
||||||
* @version v4.1
|
* @version v4.1
|
||||||
* @date 2020/11/17 3:37 下午
|
* @since 2020/11/17 3:37 下午
|
||||||
* @Description:
|
|
||||||
* @since
|
* @since
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@ -45,7 +45,8 @@ public class BuyerAuthenticationFilter extends BasicAuthenticationFilter {
|
|||||||
/**
|
/**
|
||||||
* 缓存
|
* 缓存
|
||||||
*/
|
*/
|
||||||
private final Cache cache;
|
@Autowired
|
||||||
|
private Cache cache;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 自定义构造器
|
* 自定义构造器
|
||||||
@ -65,7 +66,7 @@ public class BuyerAuthenticationFilter extends BasicAuthenticationFilter {
|
|||||||
//从header中获取jwt
|
//从header中获取jwt
|
||||||
String jwt = request.getHeader(SecurityEnum.HEADER_TOKEN.getValue());
|
String jwt = request.getHeader(SecurityEnum.HEADER_TOKEN.getValue());
|
||||||
try {
|
try {
|
||||||
// 如果没有token 则return
|
//如果没有token 则return
|
||||||
if (StrUtil.isBlank(jwt)) {
|
if (StrUtil.isBlank(jwt)) {
|
||||||
chain.doFilter(request, response);
|
chain.doFilter(request, response);
|
||||||
return;
|
return;
|
||||||
@ -97,8 +98,8 @@ public class BuyerAuthenticationFilter extends BasicAuthenticationFilter {
|
|||||||
String json = claims.get(SecurityEnum.USER_CONTEXT.getValue()).toString();
|
String json = claims.get(SecurityEnum.USER_CONTEXT.getValue()).toString();
|
||||||
AuthUser authUser = new Gson().fromJson(json, AuthUser.class);
|
AuthUser authUser = new Gson().fromJson(json, AuthUser.class);
|
||||||
|
|
||||||
// 校验redis中是否有权限
|
//校验redis中是否有权限
|
||||||
if (cache.hasKey(CachePrefix.ACCESS_TOKEN.getPrefix(UserEnums.MEMBER) + jwt)) {
|
if (cache.hasKey(CachePrefix.ACCESS_TOKEN.getPrefix(UserEnums.MEMBER,authUser.getId()) + jwt)) {
|
||||||
//构造返回信息
|
//构造返回信息
|
||||||
List<GrantedAuthority> auths = new ArrayList<>();
|
List<GrantedAuthority> auths = new ArrayList<>();
|
||||||
auths.add(new SimpleGrantedAuthority("ROLE_" + authUser.getRole().name()));
|
auths.add(new SimpleGrantedAuthority("ROLE_" + authUser.getRole().name()));
|
||||||
|
|||||||
@ -1,10 +1,9 @@
|
|||||||
package cn.lili.security;
|
package cn.lili.security;
|
||||||
|
|
||||||
import cn.lili.common.cache.Cache;
|
import cn.lili.cache.Cache;
|
||||||
import cn.lili.common.security.CustomAccessDeniedHandler;
|
import cn.lili.common.security.CustomAccessDeniedHandler;
|
||||||
import cn.lili.common.utils.SpringContextUtil;
|
import cn.lili.common.utils.SpringContextUtil;
|
||||||
import cn.lili.config.properties.IgnoredUrlsProperties;
|
import cn.lili.common.properties.IgnoredUrlsProperties;
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
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;
|
||||||
@ -20,65 +19,63 @@ import org.springframework.web.cors.CorsConfigurationSource;
|
|||||||
*
|
*
|
||||||
* @author Chopper
|
* @author Chopper
|
||||||
* @version v4.0
|
* @version v4.0
|
||||||
* @Description:
|
|
||||||
* @since 2020/11/14 16:20
|
* @since 2020/11/14 16:20
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Configuration
|
@Configuration
|
||||||
@EnableGlobalMethodSecurity(prePostEnabled = true)
|
@EnableGlobalMethodSecurity(prePostEnabled = true)
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
|
||||||
public class BuyerSecurityConfig extends WebSecurityConfigurerAdapter {
|
public class BuyerSecurityConfig extends WebSecurityConfigurerAdapter {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 忽略验权配置
|
* 忽略验权配置
|
||||||
*/
|
*/
|
||||||
private final IgnoredUrlsProperties ignoredUrlsProperties;
|
@Autowired
|
||||||
|
private IgnoredUrlsProperties ignoredUrlsProperties;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* spring security -》 权限不足处理
|
* spring security -》 权限不足处理
|
||||||
*/
|
*/
|
||||||
private final CustomAccessDeniedHandler accessDeniedHandler;
|
@Autowired
|
||||||
|
private CustomAccessDeniedHandler accessDeniedHandler;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
private final Cache<String> cache;
|
private Cache<String> cache;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void configure(HttpSecurity http) throws Exception {
|
protected void configure(HttpSecurity http) throws Exception {
|
||||||
|
|
||||||
ExpressionUrlAuthorizationConfigurer<HttpSecurity>.ExpressionInterceptUrlRegistry registry = http
|
ExpressionUrlAuthorizationConfigurer<HttpSecurity>.ExpressionInterceptUrlRegistry registry = http
|
||||||
.authorizeRequests();
|
.authorizeRequests();
|
||||||
// 配置的url 不需要授权
|
//配置的url 不需要授权
|
||||||
for (String url : ignoredUrlsProperties.getUrls()) {
|
for (String url : ignoredUrlsProperties.getUrls()) {
|
||||||
registry.antMatchers(url).permitAll();
|
registry.antMatchers(url).permitAll();
|
||||||
}
|
}
|
||||||
registry
|
registry
|
||||||
.and()
|
.and()
|
||||||
// 禁止网页iframe
|
//禁止网页iframe
|
||||||
.headers().frameOptions().disable()
|
.headers().frameOptions().disable()
|
||||||
.and()
|
.and()
|
||||||
.logout()
|
.logout()
|
||||||
.permitAll()
|
.permitAll()
|
||||||
.and()
|
.and()
|
||||||
.authorizeRequests()
|
.authorizeRequests()
|
||||||
// 任何请求
|
//任何请求
|
||||||
.anyRequest()
|
.anyRequest()
|
||||||
// 需要身份认证
|
//需要身份认证
|
||||||
.authenticated()
|
.authenticated()
|
||||||
.and()
|
.and()
|
||||||
// 允许跨域
|
//允许跨域
|
||||||
.cors().configurationSource((CorsConfigurationSource) SpringContextUtil.getBean("corsConfigurationSource")).and()
|
.cors().configurationSource((CorsConfigurationSource) SpringContextUtil.getBean("corsConfigurationSource")).and()
|
||||||
// 关闭跨站请求防护
|
//关闭跨站请求防护
|
||||||
.csrf().disable()
|
.csrf().disable()
|
||||||
// 前后端分离采用JWT 不需要session
|
//前后端分离采用JWT 不需要session
|
||||||
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
|
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
|
||||||
.and()
|
.and()
|
||||||
// 自定义权限拒绝处理类
|
//自定义权限拒绝处理类
|
||||||
.exceptionHandling().accessDeniedHandler(accessDeniedHandler)
|
.exceptionHandling().accessDeniedHandler(accessDeniedHandler)
|
||||||
.and()
|
.and()
|
||||||
// 添加JWT认证过滤器
|
//添加JWT认证过滤器
|
||||||
.addFilter(new BuyerAuthenticationFilter(authenticationManager(), cache));
|
.addFilter(new BuyerAuthenticationFilter(authenticationManager(), cache));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -3,15 +3,19 @@ server:
|
|||||||
|
|
||||||
servlet:
|
servlet:
|
||||||
context-path: /
|
context-path: /
|
||||||
|
#
|
||||||
# 正式部署时候,解开此处配置,防止文件夹被清除导致的文件上传失败问题
|
# tomcat:
|
||||||
# multipart:
|
# #最大链接数,默认不设置,默认是10000
|
||||||
# location: /Users/lifenlong/Desktop/ceshi
|
# max-connections: 6500
|
||||||
tomcat:
|
# #最大等待队列长度,允许HTTP请求缓存到请求队列的最大个数,默认不限制
|
||||||
uri-encoding: UTF-8
|
# accept-count: 1000
|
||||||
threads:
|
# threads:
|
||||||
min-spare: 50
|
# #最少闲置
|
||||||
max: 1000
|
# min-spare: 50
|
||||||
|
# #最大线程数 ,默认是200
|
||||||
|
# max: 800
|
||||||
|
netty:
|
||||||
|
connection-timeout:
|
||||||
|
|
||||||
# 与Spring Boot 2一样,默认情况下,大多数端点都不通过http公开,我们公开了所有端点。对于生产,您应该仔细选择要公开的端点。
|
# 与Spring Boot 2一样,默认情况下,大多数端点都不通过http公开,我们公开了所有端点。对于生产,您应该仔细选择要公开的端点。
|
||||||
management:
|
management:
|
||||||
@ -25,6 +29,8 @@ management:
|
|||||||
exposure:
|
exposure:
|
||||||
include: '*'
|
include: '*'
|
||||||
spring:
|
spring:
|
||||||
|
application:
|
||||||
|
name: buyer-api
|
||||||
# 要在其中注册的Spring Boot Admin Server的URL。
|
# 要在其中注册的Spring Boot Admin Server的URL。
|
||||||
boot:
|
boot:
|
||||||
admin:
|
admin:
|
||||||
@ -37,11 +43,6 @@ spring:
|
|||||||
max-request-size: 20MB
|
max-request-size: 20MB
|
||||||
cache:
|
cache:
|
||||||
type: redis
|
type: redis
|
||||||
#JPA
|
|
||||||
jpa:
|
|
||||||
# 自动生成表结构
|
|
||||||
generate-ddl: true
|
|
||||||
open-in-view: false
|
|
||||||
#jackson json解析
|
#jackson json解析
|
||||||
jackson:
|
jackson:
|
||||||
time-zone: GMT+8
|
time-zone: GMT+8
|
||||||
@ -49,17 +50,6 @@ spring:
|
|||||||
#关闭jackson 对json做解析
|
#关闭jackson 对json做解析
|
||||||
fail-on-empty-beans: false
|
fail-on-empty-beans: false
|
||||||
|
|
||||||
# mongodb
|
|
||||||
data:
|
|
||||||
mongodb:
|
|
||||||
host: 127.0.0.1
|
|
||||||
port: 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
|
||||||
@ -86,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
|
||||||
@ -121,13 +111,13 @@ spring:
|
|||||||
# standard:
|
# standard:
|
||||||
# sharding-column: create_time
|
# sharding-column: create_time
|
||||||
# #分表策略
|
# #分表策略
|
||||||
# precise-algorithm-class-name: cn.lili.config.sharding.CreateTimeShardingTableAlgorithm
|
# precise-algorithm-class-name: cn.lili.mybatis.sharding.CreateTimeShardingTableAlgorithm
|
||||||
# #范围查询实现
|
# #范围查询实现
|
||||||
# range-algorithm-class-name: cn.lili.config.sharding.CreateTimeShardingTableAlgorithm
|
# range-algorithm-class-name: cn.lili.mybatis.sharding.CreateTimeShardingTableAlgorithm
|
||||||
props:
|
props:
|
||||||
#是否打印逻辑SQL语句和实际SQL语句,建议调试时打印,在生产环境关闭
|
#是否打印逻辑SQL语句和实际SQL语句,建议调试时打印,在生产环境关闭
|
||||||
sql:
|
sql:
|
||||||
show: true
|
show: false
|
||||||
|
|
||||||
# 忽略TOKEN 鉴权 的url
|
# 忽略TOKEN 鉴权 的url
|
||||||
ignored:
|
ignored:
|
||||||
@ -138,36 +128,33 @@ ignored:
|
|||||||
- /MP_verify_qSyvBPhDsPdxvOhC.txt
|
- /MP_verify_qSyvBPhDsPdxvOhC.txt
|
||||||
- /weixin/**
|
- /weixin/**
|
||||||
- /source/**
|
- /source/**
|
||||||
- /buyer/store/**
|
- /buyer/payment/cashier/**
|
||||||
- /buyer/mini-program/**
|
- /buyer/payment/cashierRefund/**
|
||||||
- /buyer/cashier/**
|
- /buyer/other/pageData/**
|
||||||
- /buyer/pageData/**
|
- /buyer/other/article/**
|
||||||
- /buyer/article/**
|
|
||||||
- /buyer/goods/**
|
- /buyer/goods/**
|
||||||
- /buyer/category/**
|
- /buyer/store/**
|
||||||
- /buyer/shop/**
|
- /buyer/passport/connect/**
|
||||||
- /buyer/connect/**
|
|
||||||
- /buyer/members/**
|
- /buyer/members/**
|
||||||
- /buyer/promotion/pintuan
|
- /buyer/passport/member/**
|
||||||
- /buyer/promotion/seckill
|
- /buyer/passport/member/refresh/**
|
||||||
- /buyer/memberEvaluation/**/goodsEvaluation
|
- /buyer/promotion/pintuan/**
|
||||||
- /buyer/memberEvaluation/**/evaluationNumber
|
- /buyer/promotion/seckill/**
|
||||||
- /store/login/**
|
- /buyer/promotion/pointsGoods/**
|
||||||
- /manager/user/login
|
- /buyer/promotion/coupon
|
||||||
- /manager/user/refresh/**
|
- /buyer/member/evaluation/**/goodsEvaluation
|
||||||
|
- /buyer/member/evaluation/**/evaluationNumber
|
||||||
|
- /buyer/other/appVersion/**
|
||||||
|
- /buyer/broadcast/studio/**
|
||||||
- /druid/**
|
- /druid/**
|
||||||
- /swagger-ui.html
|
- /swagger-ui.html
|
||||||
- /doc.html
|
- /doc.html
|
||||||
- /swagger-resources/**
|
- /swagger-resources/**
|
||||||
- /swagger/**
|
- /swagger/**
|
||||||
- /**/**.js
|
|
||||||
- /**/**.png
|
|
||||||
- /**/**.css
|
|
||||||
- /webjars/**
|
- /webjars/**
|
||||||
- /v2/api-docs
|
- /v2/api-docs
|
||||||
- /configuration/ui
|
- /configuration/ui
|
||||||
- /boot-admin
|
- /boot-admin
|
||||||
statics:
|
|
||||||
- /**/*.js
|
- /**/*.js
|
||||||
- /**/*.css
|
- /**/*.css
|
||||||
- /**/*.png
|
- /**/*.png
|
||||||
@ -195,19 +182,20 @@ mybatis-plus:
|
|||||||
|
|
||||||
# 日志
|
# 日志
|
||||||
logging:
|
logging:
|
||||||
|
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
|
||||||
|
logback:
|
||||||
|
rollingpolicy:
|
||||||
# 最大保存天数
|
# 最大保存天数
|
||||||
max-history: 7
|
max-history: 7
|
||||||
# 每个文件最大大小
|
# 每个文件最大大小
|
||||||
max-size: 5MB
|
max-file-size: 5MB
|
||||||
#加密参数
|
#加密参数
|
||||||
jasypt:
|
jasypt:
|
||||||
encryptor:
|
encryptor:
|
||||||
@ -264,7 +252,8 @@ lili:
|
|||||||
# account:
|
# account:
|
||||||
# username: elastic
|
# username: elastic
|
||||||
# password: LiLiShopES
|
# password: LiLiShopES
|
||||||
|
logstash:
|
||||||
|
server: 192.168.0.116:4560
|
||||||
rocketmq:
|
rocketmq:
|
||||||
promotion-topic: lili_promotion_topic
|
promotion-topic: lili_promotion_topic
|
||||||
promotion-group: lili_promotion_group
|
promotion-group: lili_promotion_group
|
||||||
@ -276,6 +265,8 @@ lili:
|
|||||||
order-group: lili_order_group
|
order-group: lili_order_group
|
||||||
member-topic: lili_member_topic
|
member-topic: lili_member_topic
|
||||||
member-group: lili_member_group
|
member-group: lili_member_group
|
||||||
|
store-topic: lili_store_topic
|
||||||
|
store-group: lili_store_group
|
||||||
other-topic: lili_other_topic
|
other-topic: lili_other_topic
|
||||||
other-group: lili_other_group
|
other-group: lili_other_group
|
||||||
notice-topic: lili_notice_topic
|
notice-topic: lili_notice_topic
|
||||||
|
|||||||
@ -1,19 +0,0 @@
|
|||||||
___ ___ ___ ___ ________ ________ _______ ________ _____ ______ ___ __ ________ ________ ___ __
|
|
||||||
|\ \ |\ \|\ \ |\ \ |\ _____\\ __ \|\ ___ \ |\ __ \|\ _ \ _ \|\ \ |\ \|\ __ \|\ __ \|\ \|\ \
|
|
||||||
\ \ \ \ \ \ \ \ \ \ \ ____________\ \ \__/\ \ \|\ \ \ __/|\ \ \|\ \ \ \\\__\ \ \ \ \ \ \ \ \ \|\ \ \ \|\ \ \ \/ /|_
|
|
||||||
\ \ \ \ \ \ \ \ \ \ \|\____________\ \ __\\ \ _ _\ \ \_|/_\ \ __ \ \ \\|__| \ \ \ \ __\ \ \ \ \\\ \ \ _ _\ \ ___ \
|
|
||||||
\ \ \____\ \ \ \ \____\ \ \|____________|\ \ \_| \ \ \\ \\ \ \_|\ \ \ \ \ \ \ \ \ \ \ \ \|\__\_\ \ \ \\\ \ \ \\ \\ \ \\ \ \
|
|
||||||
\ \_______\ \__\ \_______\ \__\ \ \__\ \ \__\\ _\\ \_______\ \__\ \__\ \__\ \ \__\ \____________\ \_______\ \__\\ _\\ \__\\ \__\
|
|
||||||
\|_______|\|__|\|_______|\|__| \|__| \|__|\|__|\|_______|\|__|\|__|\|__| \|__|\|____________|\|_______|\|__|\|__|\|__| \|__|
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
___ ___ ___ ___ ________ ___ ___ ________ ________
|
|
||||||
|\ \ |\ \|\ \ |\ \ |\ ____\|\ \|\ \|\ __ \|\ __ \
|
|
||||||
\ \ \ \ \ \ \ \ \ \ \ ____________\ \ \___|\ \ \\\ \ \ \|\ \ \ \|\ \
|
|
||||||
\ \ \ \ \ \ \ \ \ \ \|\____________\ \_____ \ \ __ \ \ \\\ \ \ ____\
|
|
||||||
\ \ \____\ \ \ \ \____\ \ \|____________|\|____|\ \ \ \ \ \ \ \\\ \ \ \___|
|
|
||||||
\ \_______\ \__\ \_______\ \__\ ____\_\ \ \__\ \__\ \_______\ \__\
|
|
||||||
\|_______|\|__|\|_______|\|__| |\_________\|__|\|__|\|_______|\|__|
|
|
||||||
\|_________|
|
|
||||||
|
|
||||||
59
buyer-api/src/main/resources/logback-spring.xml
Normal file
59
buyer-api/src/main/resources/logback-spring.xml
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE configuration>
|
||||||
|
<configuration>
|
||||||
|
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
|
||||||
|
<include resource="org/springframework/boot/logging/logback/console-appender.xml"/>
|
||||||
|
<!--应用名称-->
|
||||||
|
<springProperty scope="context" name="APP_NAME" source="spring.application.name"/>
|
||||||
|
<!--日志文件保存路径-->
|
||||||
|
<springProperty scope="context" name="LOG_FILE_PATH" source="logging.file.path"/>
|
||||||
|
<springProperty scope="context" name="LOGSTASH_SERVER" source="lili.data.logstash.server"/>
|
||||||
|
<contextName>${APP_NAME}</contextName>
|
||||||
|
|
||||||
|
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||||
|
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||||
|
<fileNamePattern>${LOG_FILE_PATH}/${APP_NAME}-%d{yyyy-MM-dd}.log</fileNamePattern>
|
||||||
|
<maxHistory>30</maxHistory>
|
||||||
|
</rollingPolicy>
|
||||||
|
<encoder>
|
||||||
|
<pattern>${FILE_LOG_PATTERN}</pattern>
|
||||||
|
</encoder>
|
||||||
|
</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-->
|
||||||
|
<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
|
||||||
|
<!-- 配置elk日志收集 配饰的是 LOGSTASH 的地址-->
|
||||||
|
<destination>${LOGSTASH_SERVER}</destination>
|
||||||
|
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder">
|
||||||
|
<providers>
|
||||||
|
<timestamp>
|
||||||
|
<timeZone>UTC</timeZone>
|
||||||
|
</timestamp>
|
||||||
|
</providers>
|
||||||
|
<!--自定义字段 区分项目-->
|
||||||
|
<customFields>{"appName":"${APP_NAME}"}</customFields>
|
||||||
|
</encoder>
|
||||||
|
</appender>
|
||||||
|
<root level="INFO">
|
||||||
|
<appender-ref ref="CONSOLE"/>
|
||||||
|
<appender-ref ref="FILE"/>
|
||||||
|
<appender-ref ref="LOGSTASH"/>
|
||||||
|
</root>
|
||||||
|
</configuration>
|
||||||
@ -10,10 +10,10 @@ import cn.lili.modules.order.cart.service.CartService;
|
|||||||
import cn.lili.modules.payment.service.PaymentService;
|
import cn.lili.modules.payment.service.PaymentService;
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.jupiter.api.extension.ExtendWith;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
import org.springframework.test.context.junit4.SpringRunner;
|
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -21,7 +21,7 @@ import java.util.List;
|
|||||||
* @author paulG
|
* @author paulG
|
||||||
* @since 2020/11/14
|
* @since 2020/11/14
|
||||||
**/
|
**/
|
||||||
@RunWith(SpringRunner.class)
|
@ExtendWith(SpringExtension.class)
|
||||||
@SpringBootTest
|
@SpringBootTest
|
||||||
class CartTest {
|
class CartTest {
|
||||||
|
|
||||||
|
|||||||
@ -1,15 +1,16 @@
|
|||||||
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;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.jupiter.api.extension.ExtendWith;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
import org.springframework.test.context.junit4.SpringRunner;
|
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
@ -19,13 +20,14 @@ import java.util.List;
|
|||||||
* @author paulG
|
* @author paulG
|
||||||
* @since 2020/11/14
|
* @since 2020/11/14
|
||||||
**/
|
**/
|
||||||
@RunWith(SpringRunner.class)
|
@Slf4j
|
||||||
|
@ExtendWith(SpringExtension.class)
|
||||||
@SpringBootTest
|
@SpringBootTest
|
||||||
class FileTest {
|
class FileTest {
|
||||||
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private FileManagerPlugin fileManagerPlugin;
|
private FilePlugin fileManagerPlugin;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private BrandService brandService;
|
private BrandService brandService;
|
||||||
@ -40,10 +42,10 @@ class FileTest {
|
|||||||
}
|
}
|
||||||
URL url = new URL(brand.getLogo());
|
URL url = new URL(brand.getLogo());
|
||||||
InputStream inputStream = url.openStream();
|
InputStream inputStream = url.openStream();
|
||||||
// 上传至第三方云服务或服务器
|
//上传至第三方云服务或服务器
|
||||||
brand.setLogo(fileManagerPlugin.inputStreamUpload(inputStream, brand.getId() + ".png"));
|
brand.setLogo(fileManagerPlugin.inputStreamUpload(inputStream, brand.getId() + ".png"));
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
log.error("上传你文件出错",e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
brandService.updateBatchById(categoryList);
|
brandService.updateBatchById(categoryList);
|
||||||
|
|||||||
@ -1,18 +1,19 @@
|
|||||||
package cn.lili.buyer.test.cart;
|
package cn.lili.buyer.test.cart;
|
||||||
|
|
||||||
import cn.lili.modules.promotion.service.MemberCouponService;
|
import cn.lili.modules.promotion.service.MemberCouponService;
|
||||||
import org.junit.Assert;
|
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.jupiter.api.extension.ExtendWith;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
import org.springframework.test.context.junit4.SpringRunner;
|
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author paulG
|
* @author paulG
|
||||||
* @since 2020/11/27
|
* @since 2020/11/27
|
||||||
**/
|
**/
|
||||||
@RunWith(SpringRunner.class)
|
@ExtendWith(SpringExtension.class)
|
||||||
@SpringBootTest
|
@SpringBootTest
|
||||||
class MemberCouponTest {
|
class MemberCouponTest {
|
||||||
|
|
||||||
@ -22,7 +23,7 @@ class MemberCouponTest {
|
|||||||
@Test
|
@Test
|
||||||
void receiveCoupon() {
|
void receiveCoupon() {
|
||||||
memberCouponService.receiveCoupon("1333318596239843328", "1326834797335306240", "1");
|
memberCouponService.receiveCoupon("1333318596239843328", "1326834797335306240", "1");
|
||||||
Assert.assertTrue(true);
|
assertTrue(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -2,9 +2,6 @@ server:
|
|||||||
servlet:
|
servlet:
|
||||||
context-path: /
|
context-path: /
|
||||||
|
|
||||||
# 正式部署时候,解开此处配置,防止文件夹被清除导致的文件上传失败问题
|
|
||||||
# multipart:
|
|
||||||
# location: /Users/lifenlong/Desktop/ceshi
|
|
||||||
tomcat:
|
tomcat:
|
||||||
uri-encoding: UTF-8
|
uri-encoding: UTF-8
|
||||||
threads:
|
threads:
|
||||||
@ -28,25 +25,11 @@ 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
|
||||||
# rabbitmq:
|
# rabbitmq:
|
||||||
# host: 192.168.0.116
|
# host: 192.168.0.116
|
||||||
jpa:
|
|
||||||
# 自动生成表结构
|
|
||||||
generate-ddl: true
|
|
||||||
open-in-view: false
|
|
||||||
# Redis
|
# Redis
|
||||||
redis:
|
redis:
|
||||||
host: 192.168.0.116
|
host: 192.168.0.116
|
||||||
@ -118,13 +101,13 @@ spring:
|
|||||||
# standard:
|
# standard:
|
||||||
# sharding-column: create_time
|
# sharding-column: create_time
|
||||||
# #分表策略
|
# #分表策略
|
||||||
# precise-algorithm-class-name: cn.lili.config.sharding.CreateTimeShardingTableAlgorithm
|
# precise-algorithm-class-name: cn.lili.mybatis.sharding.CreateTimeShardingTableAlgorithm
|
||||||
# #范围查询实现
|
# #范围查询实现
|
||||||
# range-algorithm-class-name: cn.lili.config.sharding.CreateTimeShardingTableAlgorithm
|
# range-algorithm-class-name: cn.lili.mybatis.sharding.CreateTimeShardingTableAlgorithm
|
||||||
props:
|
props:
|
||||||
#是否打印逻辑SQL语句和实际SQL语句,建议调试时打印,在生产环境关闭
|
#是否打印逻辑SQL语句和实际SQL语句,建议调试时打印,在生产环境关闭
|
||||||
sql:
|
sql:
|
||||||
show: true
|
show: false
|
||||||
|
|
||||||
# 忽略鉴权url
|
# 忽略鉴权url
|
||||||
ignored:
|
ignored:
|
||||||
@ -157,14 +140,10 @@ ignored:
|
|||||||
- /doc.html
|
- /doc.html
|
||||||
- /swagger-resources/**
|
- /swagger-resources/**
|
||||||
- /swagger/**
|
- /swagger/**
|
||||||
- /**/**.js
|
|
||||||
- /**/**.png
|
|
||||||
- /**/**.css
|
|
||||||
- /webjars/**
|
- /webjars/**
|
||||||
- /v2/api-docs
|
- /v2/api-docs
|
||||||
- /configuration/ui
|
- /configuration/ui
|
||||||
- /boot-admin
|
- /boot-admin
|
||||||
statics:
|
|
||||||
- /**/*.js
|
- /**/*.js
|
||||||
- /**/*.css
|
- /**/*.css
|
||||||
- /**/*.png
|
- /**/*.png
|
||||||
@ -197,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
|
||||||
@ -261,7 +239,8 @@ lili:
|
|||||||
# account:
|
# account:
|
||||||
# username: elastic
|
# username: elastic
|
||||||
# password: LiLiShopES
|
# password: LiLiShopES
|
||||||
|
logstash:
|
||||||
|
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
|
||||||
|
|||||||
@ -7,17 +7,17 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>cn.lili</groupId>
|
<groupId>cn.lili</groupId>
|
||||||
<artifactId>lili-shop-parent</artifactId>
|
<artifactId>lili-shop-parent</artifactId>
|
||||||
<version>1.0.1</version>
|
<version>${revision}</version>
|
||||||
|
<relativePath>../pom.xml</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<groupId>cn.lili</groupId>
|
|
||||||
<artifactId>common-api</artifactId>
|
<artifactId>common-api</artifactId>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>cn.lili</groupId>
|
<groupId>cn.lili</groupId>
|
||||||
<artifactId>framework</artifactId>
|
<artifactId>framework</artifactId>
|
||||||
<version>1.0.1</version>
|
<version>${revision}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
|
|||||||
@ -8,13 +8,14 @@ import org.springframework.cache.annotation.EnableCaching;
|
|||||||
* 基础API
|
* 基础API
|
||||||
*
|
*
|
||||||
* @author Chopper
|
* @author Chopper
|
||||||
* @date 2020/11/17 3:38 下午
|
* @since 2020/11/17 3:38 下午
|
||||||
*/
|
*/
|
||||||
@EnableCaching
|
@EnableCaching
|
||||||
@SpringBootApplication
|
@SpringBootApplication
|
||||||
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,12 +1,12 @@
|
|||||||
package cn.lili.controller.common;
|
package cn.lili.controller.common;
|
||||||
|
|
||||||
import cn.lili.common.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.utils.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;
|
||||||
@ -17,7 +17,6 @@ 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;
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
@ -28,17 +27,18 @@ import java.util.List;
|
|||||||
* 文件管理管理接口
|
* 文件管理管理接口
|
||||||
*
|
*
|
||||||
* @author Chopper
|
* @author Chopper
|
||||||
* @date 2020/11/26 15:41
|
* @since 2020/11/26 15:41
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "文件管理管理接口")
|
@Api(tags = "文件管理接口")
|
||||||
@RequestMapping("/common/file")
|
@RequestMapping("/common/common/file")
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
|
||||||
public class FileController {
|
public class FileController {
|
||||||
|
|
||||||
private final FileService fileService;
|
@Autowired
|
||||||
|
private FileService fileService;
|
||||||
|
|
||||||
private final Cache cache;
|
@Autowired
|
||||||
|
private Cache cache;
|
||||||
|
|
||||||
@ApiOperation(value = "获取自己的图片资源")
|
@ApiOperation(value = "获取自己的图片资源")
|
||||||
@GetMapping
|
@GetMapping
|
||||||
@ -78,9 +78,8 @@ 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:
|
||||||
throw new ServiceException(ResultCode.USER_AUTHORITY_ERROR);
|
throw new ServiceException(ResultCode.USER_AUTHORITY_ERROR);
|
||||||
}
|
}
|
||||||
fileService.updateById(file);
|
fileService.updateById(file);
|
||||||
@ -93,7 +92,7 @@ public class FileController {
|
|||||||
|
|
||||||
AuthUser authUser = UserContext.getAuthUser(cache, accessToken);
|
AuthUser authUser = UserContext.getAuthUser(cache, accessToken);
|
||||||
fileService.batchDelete(ids, authUser);
|
fileService.batchDelete(ids, authUser);
|
||||||
return ResultUtil.success(ResultCode.SUCCESS);
|
return ResultUtil.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,49 @@
|
|||||||
|
package cn.lili.controller.common;
|
||||||
|
|
||||||
|
|
||||||
|
import cn.hutool.json.JSONUtil;
|
||||||
|
import cn.lili.common.enums.ResultCode;
|
||||||
|
import cn.lili.common.enums.ResultUtil;
|
||||||
|
import cn.lili.common.exception.ServiceException;
|
||||||
|
import cn.lili.common.vo.ResultMessage;
|
||||||
|
import cn.lili.modules.system.entity.dos.Setting;
|
||||||
|
import cn.lili.modules.system.entity.dto.ImSetting;
|
||||||
|
import cn.lili.modules.system.entity.enums.SettingEnum;
|
||||||
|
import cn.lili.modules.system.service.SettingService;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
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.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* IM控制器
|
||||||
|
*
|
||||||
|
* @author Chopper
|
||||||
|
* @version v1.0
|
||||||
|
* 2021-09-16 15:32
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/common/common/IM")
|
||||||
|
@Api(tags = "IM 中心")
|
||||||
|
public class IMController {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private SettingService settingService;
|
||||||
|
|
||||||
|
@ApiOperation(value = "获取IM接口前缀")
|
||||||
|
@GetMapping
|
||||||
|
public ResultMessage<String> getUrl() {
|
||||||
|
String imUrl;
|
||||||
|
try {
|
||||||
|
Setting imSettingVal = settingService.get(SettingEnum.IM_SETTING.name());
|
||||||
|
ImSetting imSetting = JSONUtil.toBean(imSettingVal.getSettingValue(), ImSetting.class);
|
||||||
|
imUrl = imSetting.getHttpUrl();
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new ServiceException(ResultCode.PLATFORM_NOT_SUPPORTED_IM);
|
||||||
|
}
|
||||||
|
return ResultUtil.data(imUrl);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -1,11 +1,10 @@
|
|||||||
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.utils.ResultUtil;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
import cn.lili.common.vo.ResultMessage;
|
import cn.lili.common.vo.ResultMessage;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMethod;
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||||||
@ -17,15 +16,14 @@ import javax.servlet.http.HttpServletRequest;
|
|||||||
* 管理端,IP接口
|
* 管理端,IP接口
|
||||||
*
|
*
|
||||||
* @author Chopper
|
* @author Chopper
|
||||||
* @date 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")
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
|
||||||
public class IpInfoManagerController {
|
public class IpInfoManagerController {
|
||||||
|
@Autowired
|
||||||
private final IpHelper ipHelper;
|
private IpHelper ipHelper;
|
||||||
|
|
||||||
@RequestMapping(value = "/info", method = RequestMethod.GET)
|
@RequestMapping(value = "/info", method = RequestMethod.GET)
|
||||||
@ApiOperation(value = "IP及天气相关信息")
|
@ApiOperation(value = "IP及天气相关信息")
|
||||||
@ -1,38 +0,0 @@
|
|||||||
package cn.lili.controller.common;
|
|
||||||
|
|
||||||
import cn.lili.common.utils.ResultUtil;
|
|
||||||
import cn.lili.common.vo.ResultMessage;
|
|
||||||
import cn.lili.modules.system.entity.enums.SettingEnum;
|
|
||||||
import cn.lili.modules.system.service.SettingService;
|
|
||||||
import io.swagger.annotations.Api;
|
|
||||||
import io.swagger.annotations.ApiOperation;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 文件管理管理接口
|
|
||||||
*
|
|
||||||
* @author Chopper
|
|
||||||
* @date 2020/11/26 15:41
|
|
||||||
*/
|
|
||||||
@RestController
|
|
||||||
@Api(tags = "文件管理管理接口")
|
|
||||||
@RequestMapping("/common/logo")
|
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
|
||||||
public class LogoController {
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private SettingService settingService;
|
|
||||||
|
|
||||||
@ApiOperation(value = "获取logo")
|
|
||||||
@GetMapping
|
|
||||||
public ResultMessage<Object> getFileList() {
|
|
||||||
return ResultUtil.data(settingService.get(SettingEnum.BASE_SETTING.name()));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,15 +1,14 @@
|
|||||||
package cn.lili.controller.common;
|
package cn.lili.controller.common;
|
||||||
|
|
||||||
import cn.lili.common.utils.ResultUtil;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
import cn.lili.common.vo.ResultMessage;
|
import cn.lili.common.vo.ResultMessage;
|
||||||
import cn.lili.modules.base.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;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
@ -20,16 +19,14 @@ import java.util.List;
|
|||||||
* 地址信息接口
|
* 地址信息接口
|
||||||
*
|
*
|
||||||
* @author Chopper
|
* @author Chopper
|
||||||
* @date: 2020/11/16 10:07 下午
|
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "地址信息接口")
|
@Api(tags = "地址信息接口")
|
||||||
@RequestMapping("/common/region")
|
@RequestMapping("/common/common/region")
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
|
||||||
public class RegionController {
|
public class RegionController {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
private final RegionService regionService;
|
private RegionService regionService;
|
||||||
|
|
||||||
@ApiOperation(value = "点地图获取地址信息")
|
@ApiOperation(value = "点地图获取地址信息")
|
||||||
@ApiImplicitParams({
|
@ApiImplicitParams({
|
||||||
@ -41,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")
|
||||||
|
|||||||
@ -0,0 +1,35 @@
|
|||||||
|
package cn.lili.controller.common;
|
||||||
|
|
||||||
|
import cn.lili.common.enums.ResultUtil;
|
||||||
|
import cn.lili.common.vo.ResultMessage;
|
||||||
|
import cn.lili.modules.system.entity.enums.SettingEnum;
|
||||||
|
import cn.lili.modules.system.service.SettingService;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 站点基础配置获取
|
||||||
|
*
|
||||||
|
* @author liushuai(liushuai711 @ gmail.com)
|
||||||
|
* @version v4.0
|
||||||
|
* @Description:
|
||||||
|
* @since 2022/9/22 17:49
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/common/common/site")
|
||||||
|
@Api(tags = "站点基础接口")
|
||||||
|
public class SiteController {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private SettingService settingService;
|
||||||
|
|
||||||
|
@ApiOperation(value = "获取站点基础信息")
|
||||||
|
@GetMapping
|
||||||
|
public ResultMessage<Object> baseSetting() {
|
||||||
|
return ResultUtil.data(settingService.get(SettingEnum.BASE_SETTING.name()));
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,14 +1,13 @@
|
|||||||
package cn.lili.controller.common;
|
package cn.lili.controller.common;
|
||||||
|
|
||||||
import cn.lili.common.aop.limiter.annotation.LimitPoint;
|
import cn.lili.cache.limit.annotation.LimitPoint;
|
||||||
import cn.lili.common.exception.ServiceException;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
import cn.lili.common.utils.ResultUtil;
|
|
||||||
import cn.lili.common.verification.enums.VerificationEnums;
|
|
||||||
import cn.lili.common.verification.service.VerificationService;
|
|
||||||
import cn.lili.common.vo.ResultMessage;
|
import cn.lili.common.vo.ResultMessage;
|
||||||
|
import cn.lili.modules.verification.entity.enums.VerificationEnums;
|
||||||
|
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;
|
||||||
import lombok.RequiredArgsConstructor;
|
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.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
@ -16,30 +15,23 @@ import org.springframework.web.bind.annotation.*;
|
|||||||
* 滑块验证码接口
|
* 滑块验证码接口
|
||||||
*
|
*
|
||||||
* @author Chopper
|
* @author Chopper
|
||||||
* @date 2020/11/26 15:41
|
* @since 2020/11/26 15:41
|
||||||
*/
|
*/
|
||||||
@RequestMapping("/common/slider")
|
@Slf4j
|
||||||
@RestController
|
@RestController
|
||||||
|
@RequestMapping("/common/common/slider")
|
||||||
@Api(tags = "滑块验证码接口")
|
@Api(tags = "滑块验证码接口")
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
|
||||||
public class SliderImageController {
|
public class SliderImageController {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private VerificationService verificationService;
|
||||||
|
|
||||||
private final VerificationService verificationService;
|
|
||||||
|
|
||||||
//一分钟同一个ip请求10次
|
|
||||||
@LimitPoint(name = "slider_image", key = "verification")
|
@LimitPoint(name = "slider_image", key = "verification")
|
||||||
@GetMapping("/{verificationEnums}")
|
@GetMapping("/{verificationEnums}")
|
||||||
@ApiOperation(value = "获取校验接口")
|
@ApiOperation(value = "获取校验接口,一分钟同一个ip请求10次")
|
||||||
public ResultMessage getSliderImage(@RequestHeader String uuid, @PathVariable VerificationEnums verificationEnums) {
|
public ResultMessage getSliderImage(@RequestHeader String uuid, @PathVariable VerificationEnums verificationEnums) {
|
||||||
try {
|
|
||||||
return ResultUtil.data(verificationService.createVerification(verificationEnums, uuid));
|
return ResultUtil.data(verificationService.createVerification(verificationEnums, uuid));
|
||||||
} catch (ServiceException e) {
|
|
||||||
throw e;
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@LimitPoint(name = "slider_image", key = "verification_pre_check", limit = 600)
|
@LimitPoint(name = "slider_image", key = "verification_pre_check", limit = 600)
|
||||||
|
|||||||
@ -1,17 +1,16 @@
|
|||||||
package cn.lili.controller.common;
|
package cn.lili.controller.common;
|
||||||
|
|
||||||
import cn.lili.common.aop.limiter.annotation.LimitPoint;
|
import cn.lili.cache.limit.annotation.LimitPoint;
|
||||||
import cn.lili.common.enums.ResultCode;
|
import cn.lili.common.enums.ResultCode;
|
||||||
import cn.lili.common.sms.SmsUtil;
|
import cn.lili.common.enums.ResultUtil;
|
||||||
import cn.lili.common.utils.ResultUtil;
|
|
||||||
import cn.lili.common.verification.enums.VerificationEnums;
|
|
||||||
import cn.lili.common.verification.service.VerificationService;
|
|
||||||
import cn.lili.common.vo.ResultMessage;
|
import cn.lili.common.vo.ResultMessage;
|
||||||
|
import cn.lili.modules.sms.SmsUtil;
|
||||||
|
import cn.lili.modules.verification.entity.enums.VerificationEnums;
|
||||||
|
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.RequiredArgsConstructor;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
@ -19,35 +18,31 @@ import org.springframework.web.bind.annotation.*;
|
|||||||
* 短信验证码接口
|
* 短信验证码接口
|
||||||
*
|
*
|
||||||
* @author Chopper
|
* @author Chopper
|
||||||
* @date 2020/11/26 15:41
|
* @since 2020/11/26 15:41
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "短信验证码接口")
|
@Api(tags = "短信验证码接口")
|
||||||
@RequestMapping("/common/sms")
|
@RequestMapping("/common/common/sms")
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
|
||||||
public class SmsController {
|
public class SmsController {
|
||||||
|
|
||||||
private final SmsUtil smsUtil;
|
@Autowired
|
||||||
|
private SmsUtil smsUtil;
|
||||||
|
@Autowired
|
||||||
|
private VerificationService verificationService;
|
||||||
|
|
||||||
private final VerificationService verificationService;
|
|
||||||
|
|
||||||
//一分钟同一个ip请求1次
|
|
||||||
@LimitPoint(name = "sms_send", key = "sms")
|
@LimitPoint(name = "sms_send", key = "sms")
|
||||||
@ApiImplicitParams({
|
@ApiImplicitParams({
|
||||||
@ApiImplicitParam(paramType = "path", dataType = "String", name = "mobile", value = "手机号"),
|
@ApiImplicitParam(paramType = "path", dataType = "String", name = "mobile", value = "手机号"),
|
||||||
@ApiImplicitParam(paramType = "header", dataType = "String", name = "uuid", value = "uuid"),
|
@ApiImplicitParam(paramType = "header", dataType = "String", name = "uuid", value = "uuid"),
|
||||||
})
|
})
|
||||||
@GetMapping("/{verificationEnums}/{mobile}")
|
@GetMapping("/{verificationEnums}/{mobile}")
|
||||||
@ApiOperation(value = "发送短信验证码")
|
@ApiOperation(value = "发送短信验证码,一分钟同一个ip请求1次")
|
||||||
public ResultMessage getSmsCode(
|
public ResultMessage getSmsCode(
|
||||||
@RequestHeader String uuid,
|
@RequestHeader String uuid,
|
||||||
@PathVariable String mobile,
|
@PathVariable String mobile,
|
||||||
@PathVariable VerificationEnums verificationEnums) {
|
@PathVariable VerificationEnums verificationEnums) {
|
||||||
if (verificationService.check(uuid, verificationEnums)) {
|
verificationService.check(uuid, verificationEnums);
|
||||||
smsUtil.sendSmsCode(mobile, verificationEnums, uuid);
|
smsUtil.sendSmsCode(mobile, verificationEnums, uuid);
|
||||||
return ResultUtil.success(ResultCode.VERIFICATION_SEND_SUCCESS);
|
return ResultUtil.success(ResultCode.VERIFICATION_SEND_SUCCESS);
|
||||||
} else {
|
|
||||||
return ResultUtil.error(ResultCode.VERIFICATION_SMS_EXPIRED_ERROR);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,26 +1,24 @@
|
|||||||
package cn.lili.controller.common;
|
package cn.lili.controller.common;
|
||||||
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.text.CharSequenceUtil;
|
||||||
import cn.lili.common.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.utils.Base64DecodeMultipartFile;
|
import cn.lili.common.utils.Base64DecodeMultipartFile;
|
||||||
import cn.lili.common.utils.CommonUtil;
|
import cn.lili.common.utils.CommonUtil;
|
||||||
import cn.lili.common.utils.ResultUtil;
|
|
||||||
import cn.lili.common.utils.StringUtils;
|
|
||||||
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.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;
|
||||||
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.RequiredArgsConstructor;
|
|
||||||
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.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
@ -30,27 +28,28 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 文件上传接口
|
* 文件上传接口
|
||||||
*
|
*
|
||||||
* @author Chopper
|
* @author Chopper
|
||||||
* @date 2020/11/26 15:41
|
* @since 2020/11/26 15:41
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "文件上传接口")
|
@Api(tags = "文件上传接口")
|
||||||
@RequestMapping("/common/upload")
|
@RequestMapping("/common/common/upload")
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
|
||||||
public class UploadController {
|
public class UploadController {
|
||||||
|
|
||||||
private final FileService fileService;
|
@Autowired
|
||||||
|
private FileService fileService;
|
||||||
private final SettingService settingService;
|
@Autowired
|
||||||
|
private SettingService settingService;
|
||||||
private final FileManagerPlugin fileManagerPlugin;
|
@Autowired
|
||||||
|
private FilePluginFactory filePluginFactory;
|
||||||
private final Cache cache;
|
@Autowired
|
||||||
|
private Cache cache;
|
||||||
|
|
||||||
@ApiOperation(value = "文件上传")
|
@ApiOperation(value = "文件上传")
|
||||||
@PostMapping(value = "/file")
|
@PostMapping(value = "/file")
|
||||||
@ -64,23 +63,34 @@ public class UploadController {
|
|||||||
if (authUser == null) {
|
if (authUser == null) {
|
||||||
throw new ServiceException(ResultCode.USER_AUTHORITY_ERROR);
|
throw new ServiceException(ResultCode.USER_AUTHORITY_ERROR);
|
||||||
}
|
}
|
||||||
Setting setting = settingService.getById(SettingEnum.OSS_SETTING.name());
|
if (file == null) {
|
||||||
if (setting == null || StrUtil.isBlank(setting.getSettingValue())) {
|
throw new ServiceException(ResultCode.FILE_NOT_EXIST_ERROR);
|
||||||
|
}
|
||||||
|
Setting setting = settingService.get(SettingEnum.OSS_SETTING.name());
|
||||||
|
if (setting == null || CharSequenceUtil.isBlank(setting.getSettingValue())) {
|
||||||
throw new ServiceException(ResultCode.OSS_NOT_EXIST);
|
throw new ServiceException(ResultCode.OSS_NOT_EXIST);
|
||||||
}
|
}
|
||||||
|
if (CharSequenceUtil.isEmpty(file.getContentType())) {
|
||||||
|
throw new ServiceException(ResultCode.IMAGE_FILE_EXT_ERROR);
|
||||||
|
}
|
||||||
|
|
||||||
if (StringUtils.isNotBlank(base64)) {
|
|
||||||
// base64上传
|
if (!CharSequenceUtil.containsAny(file.getContentType().toLowerCase(), "image")) {
|
||||||
|
throw new ServiceException(ResultCode.FILE_TYPE_NOT_SUPPORT);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (CharSequenceUtil.isNotBlank(base64)) {
|
||||||
|
//base64上传
|
||||||
file = Base64DecodeMultipartFile.base64Convert(base64);
|
file = Base64DecodeMultipartFile.base64Convert(base64);
|
||||||
}
|
}
|
||||||
String result = "";
|
String result;
|
||||||
String fileKey = CommonUtil.rename(file.getOriginalFilename());
|
String fileKey = CommonUtil.rename(Objects.requireNonNull(file.getOriginalFilename()));
|
||||||
File newFile = new File();
|
File newFile = new File();
|
||||||
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());
|
||||||
newFile.setFileType(file.getContentType());
|
newFile.setFileType(file.getContentType());
|
||||||
@ -89,7 +99,7 @@ public class UploadController {
|
|||||||
newFile.setCreateBy(authUser.getUsername());
|
newFile.setCreateBy(authUser.getUsername());
|
||||||
newFile.setUserEnums(authUser.getRole().name());
|
newFile.setUserEnums(authUser.getRole().name());
|
||||||
//如果是店铺,则记录店铺id
|
//如果是店铺,则记录店铺id
|
||||||
if (authUser.getRole().equals(UserEnums.STORE.name())) {
|
if (authUser.getRole().equals(UserEnums.STORE)) {
|
||||||
newFile.setOwnerId(authUser.getStoreId());
|
newFile.setOwnerId(authUser.getStoreId());
|
||||||
} else {
|
} else {
|
||||||
newFile.setOwnerId(authUser.getId());
|
newFile.setOwnerId(authUser.getId());
|
||||||
@ -97,10 +107,8 @@ public class UploadController {
|
|||||||
fileService.save(newFile);
|
fileService.save(newFile);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("文件上传失败", e);
|
log.error("文件上传失败", e);
|
||||||
return ResultUtil.error(400, e.toString());
|
throw new ServiceException(ResultCode.OSS_EXCEPTION_ERROR);
|
||||||
}
|
}
|
||||||
return ResultUtil.data(result);
|
return ResultUtil.data(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,9 +1,5 @@
|
|||||||
package cn.lili.controller.security;
|
package cn.lili.controller.security;
|
||||||
|
|
||||||
import cn.lili.common.cache.Cache;
|
|
||||||
import cn.lili.common.security.CustomAccessDeniedHandler;
|
|
||||||
import cn.lili.config.properties.IgnoredUrlsProperties;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
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;
|
||||||
@ -18,30 +14,19 @@ import org.springframework.web.cors.CorsConfigurationSource;
|
|||||||
*
|
*
|
||||||
* @author Chopper
|
* @author Chopper
|
||||||
* @version v4.0
|
* @version v4.0
|
||||||
* @Description:
|
|
||||||
* @since 2020/11/14 16:20
|
* @since 2020/11/14 16:20
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Configuration
|
@Configuration
|
||||||
@EnableGlobalMethodSecurity(prePostEnabled = true)
|
@EnableGlobalMethodSecurity(prePostEnabled = true)
|
||||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
|
||||||
public class CommonSecurityConfig extends WebSecurityConfigurerAdapter {
|
public class CommonSecurityConfig extends WebSecurityConfigurerAdapter {
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 忽略验权配置
|
|
||||||
*/
|
|
||||||
private final IgnoredUrlsProperties ignoredUrlsProperties;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* spring security -》 权限不足处理
|
* spring security -》 权限不足处理
|
||||||
*/
|
*/
|
||||||
private final CustomAccessDeniedHandler accessDeniedHandler;
|
@Autowired
|
||||||
|
private CorsConfigurationSource corsConfigurationSource;
|
||||||
|
|
||||||
private final Cache<String> cache;
|
|
||||||
|
|
||||||
private final CorsConfigurationSource corsConfigurationSource;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void configure(HttpSecurity http) throws Exception {
|
protected void configure(HttpSecurity http) throws Exception {
|
||||||
@ -50,18 +35,18 @@ public class CommonSecurityConfig extends WebSecurityConfigurerAdapter {
|
|||||||
.authorizeRequests();
|
.authorizeRequests();
|
||||||
registry
|
registry
|
||||||
.and()
|
.and()
|
||||||
// 禁止网页iframe
|
//禁止网页iframe
|
||||||
.headers().frameOptions().disable()
|
.headers().frameOptions().disable()
|
||||||
.and()
|
.and()
|
||||||
.authorizeRequests()
|
.authorizeRequests()
|
||||||
// 任何请求
|
//任何请求
|
||||||
.anyRequest()
|
.anyRequest()
|
||||||
// 需要身份认证
|
//需要身份认证
|
||||||
.permitAll()
|
.permitAll()
|
||||||
.and()
|
.and()
|
||||||
// 允许跨域
|
//允许跨域
|
||||||
.cors().configurationSource(corsConfigurationSource).and()
|
.cors().configurationSource(corsConfigurationSource).and()
|
||||||
// 关闭跨站请求防护
|
//关闭跨站请求防护
|
||||||
.csrf().disable();
|
.csrf().disable();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,8 +0,0 @@
|
|||||||
{
|
|
||||||
"properties": [
|
|
||||||
{
|
|
||||||
"name": "spring.http.multipart.location",
|
|
||||||
"type": "java.lang.String",
|
|
||||||
"description": "Description for spring.http.multipart.location."
|
|
||||||
}
|
|
||||||
] }
|
|
||||||
@ -4,9 +4,6 @@ server:
|
|||||||
servlet:
|
servlet:
|
||||||
context-path: /
|
context-path: /
|
||||||
|
|
||||||
# 正式部署时候,解开此处配置,防止文件夹被清除导致的文件上传失败问题
|
|
||||||
# multipart:
|
|
||||||
# location: /Users/lifenlong/Desktop/ceshi
|
|
||||||
tomcat:
|
tomcat:
|
||||||
uri-encoding: UTF-8
|
uri-encoding: UTF-8
|
||||||
threads:
|
threads:
|
||||||
@ -25,28 +22,15 @@ management:
|
|||||||
exposure:
|
exposure:
|
||||||
include: '*'
|
include: '*'
|
||||||
spring:
|
spring:
|
||||||
|
application:
|
||||||
|
name: common-api
|
||||||
# 要在其中注册的Spring Boot Admin Server的URL。
|
# 要在其中注册的Spring Boot Admin Server的URL。
|
||||||
boot:
|
boot:
|
||||||
admin:
|
admin:
|
||||||
client:
|
client:
|
||||||
url: http://127.0.0.1:8000
|
url: http://127.0.0.1:8000
|
||||||
# mongodb
|
|
||||||
data:
|
|
||||||
mongodb:
|
|
||||||
host: 127.0.0.1
|
|
||||||
port: 27017
|
|
||||||
database: lilishop
|
|
||||||
username: root
|
|
||||||
password: lilishop
|
|
||||||
authentication-database: admin
|
|
||||||
# replica-set-name: mongoreplset
|
|
||||||
cache:
|
cache:
|
||||||
type: redis
|
type: redis
|
||||||
|
|
||||||
jpa:
|
|
||||||
# 自动生成表结构
|
|
||||||
generate-ddl: true
|
|
||||||
open-in-view: false
|
|
||||||
# Redis
|
# Redis
|
||||||
redis:
|
redis:
|
||||||
host: 127.0.0.1
|
host: 127.0.0.1
|
||||||
@ -118,13 +102,13 @@ spring:
|
|||||||
# standard:
|
# standard:
|
||||||
# sharding-column: create_time
|
# sharding-column: create_time
|
||||||
# #分表策略
|
# #分表策略
|
||||||
# precise-algorithm-class-name: cn.lili.config.sharding.CreateTimeShardingTableAlgorithm
|
# precise-algorithm-class-name: cn.lili.mybatis.sharding.CreateTimeShardingTableAlgorithm
|
||||||
# #范围查询实现
|
# #范围查询实现
|
||||||
# range-algorithm-class-name: cn.lili.config.sharding.CreateTimeShardingTableAlgorithm
|
# range-algorithm-class-name: cn.lili.mybatis.sharding.CreateTimeShardingTableAlgorithm
|
||||||
props:
|
props:
|
||||||
#是否打印逻辑SQL语句和实际SQL语句,建议调试时打印,在生产环境关闭
|
#是否打印逻辑SQL语句和实际SQL语句,建议调试时打印,在生产环境关闭
|
||||||
sql:
|
sql:
|
||||||
show: true
|
show: false
|
||||||
|
|
||||||
# 忽略鉴权url
|
# 忽略鉴权url
|
||||||
ignored:
|
ignored:
|
||||||
@ -135,37 +119,19 @@ 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
|
||||||
- /swagger-resources/**
|
- /swagger-resources/**
|
||||||
- /swagger/**
|
- /swagger/**
|
||||||
- /**/**.js
|
|
||||||
- /**/**.png
|
|
||||||
- /**/**.css
|
|
||||||
- /webjars/**
|
- /webjars/**
|
||||||
- /v2/api-docs
|
- /v2/api-docs
|
||||||
- /configuration/ui
|
- /configuration/ui
|
||||||
- /boot-admin
|
- /boot-admin
|
||||||
statics:
|
|
||||||
- /**/*.js
|
- /**/*.js
|
||||||
- /**/*.css
|
- /**/*.css
|
||||||
- /**/*.png
|
- /**/*.png
|
||||||
@ -193,27 +159,51 @@ mybatis-plus:
|
|||||||
|
|
||||||
# 日志
|
# 日志
|
||||||
logging:
|
logging:
|
||||||
|
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
|
||||||
|
logback:
|
||||||
|
rollingpolicy:
|
||||||
# 最大保存天数
|
# 最大保存天数
|
||||||
max-history: 7
|
max-history: 7
|
||||||
# 每个文件最大大小
|
# 每个文件最大大小
|
||||||
max-size: 5MB
|
max-file-size: 5MB
|
||||||
#加密参数
|
#加密参数
|
||||||
jasypt:
|
jasypt:
|
||||||
encryptor:
|
encryptor:
|
||||||
password: lili
|
password: lili
|
||||||
|
|
||||||
lili:
|
lili:
|
||||||
|
#验证码设置
|
||||||
|
verification-code:
|
||||||
|
#图形验证码有效时间 秒 包含滑块验证码有效时间, 以及验证通过之后,缓存中存储的验证结果有效时间
|
||||||
|
effectiveTime: 300
|
||||||
|
#水印
|
||||||
|
watermark: LILI-SHOP
|
||||||
|
#干扰项数量 最大2 默认0
|
||||||
|
interfereNum: 0
|
||||||
|
#允许误差像素
|
||||||
|
faultTolerant: 3
|
||||||
|
#短信模版配置
|
||||||
|
sms:
|
||||||
|
#登录
|
||||||
|
LOGIN: SMS_205755300
|
||||||
|
#注册
|
||||||
|
REGISTER: SMS_205755298
|
||||||
|
#找回密码
|
||||||
|
FIND_USER: SMS_205755301
|
||||||
|
#设置密码
|
||||||
|
UPDATE_PASSWORD: SMS_205755297
|
||||||
|
#支付密码
|
||||||
|
WALLET_PASSWORD: SMS_205755301
|
||||||
system:
|
system:
|
||||||
isDemoSite: true
|
isTestModel: true
|
||||||
statistics:
|
statistics:
|
||||||
# 在线人数统计 X 小时。这里设置48,即统计过去48小时每小时在线人数
|
# 在线人数统计 X 小时。这里设置48,即统计过去48小时每小时在线人数
|
||||||
onlineMember: 48
|
onlineMember: 48
|
||||||
@ -262,7 +252,8 @@ lili:
|
|||||||
# account:
|
# account:
|
||||||
# username: elastic
|
# username: elastic
|
||||||
# password: LiLiShopES
|
# password: LiLiShopES
|
||||||
|
logstash:
|
||||||
|
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
|
||||||
|
|||||||
58
common-api/src/main/resources/logback-spring.xml
Normal file
58
common-api/src/main/resources/logback-spring.xml
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE configuration>
|
||||||
|
<configuration>
|
||||||
|
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
|
||||||
|
<include resource="org/springframework/boot/logging/logback/console-appender.xml"/>
|
||||||
|
<!--应用名称-->
|
||||||
|
<springProperty scope="context" name="APP_NAME" source="spring.application.name"/>
|
||||||
|
<!--日志文件保存路径-->
|
||||||
|
<springProperty scope="context" name="LOG_FILE_PATH" source="logging.file.path"/>
|
||||||
|
<springProperty scope="context" name="LOGSTASH_SERVER" source="lili.data.logstash.server"/>
|
||||||
|
<contextName>${APP_NAME}</contextName>
|
||||||
|
|
||||||
|
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||||
|
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||||
|
<fileNamePattern>${LOG_FILE_PATH}/${APP_NAME}-%d{yyyy-MM-dd}.log</fileNamePattern>
|
||||||
|
<maxHistory>30</maxHistory>
|
||||||
|
</rollingPolicy>
|
||||||
|
<encoder>
|
||||||
|
<pattern>${FILE_LOG_PATTERN}</pattern>
|
||||||
|
</encoder>
|
||||||
|
</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-->
|
||||||
|
<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
|
||||||
|
<!-- 配置elk日志收集 配饰的是 LOGSTASH 的地址-->
|
||||||
|
<destination>${LOGSTASH_SERVER}</destination>
|
||||||
|
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder">
|
||||||
|
<providers>
|
||||||
|
<timestamp>
|
||||||
|
<timeZone>UTC</timeZone>
|
||||||
|
</timestamp>
|
||||||
|
</providers>
|
||||||
|
<!--自定义字段 区分项目-->
|
||||||
|
<customFields>{"appName":"${APP_NAME}"}</customFields>
|
||||||
|
</encoder>
|
||||||
|
</appender>
|
||||||
|
<root level="INFO">
|
||||||
|
<appender-ref ref="CONSOLE"/>
|
||||||
|
<appender-ref ref="FILE"/>
|
||||||
|
<appender-ref ref="LOGSTASH"/>
|
||||||
|
</root>
|
||||||
|
</configuration>
|
||||||
@ -2,9 +2,6 @@ server:
|
|||||||
servlet:
|
servlet:
|
||||||
context-path: /
|
context-path: /
|
||||||
|
|
||||||
# 正式部署时候,解开此处配置,防止文件夹被清除导致的文件上传失败问题
|
|
||||||
# multipart:
|
|
||||||
# location: /Users/lifenlong/Desktop/ceshi
|
|
||||||
tomcat:
|
tomcat:
|
||||||
uri-encoding: UTF-8
|
uri-encoding: UTF-8
|
||||||
threads:
|
threads:
|
||||||
@ -27,30 +24,13 @@ spring:
|
|||||||
boot:
|
boot:
|
||||||
admin:
|
admin:
|
||||||
client:
|
client:
|
||||||
url: http://192.168.0.116:8000
|
url: http://192.168.0.108: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
|
|
||||||
# rabbitmq:
|
|
||||||
# host: 192.168.0.116
|
|
||||||
jpa:
|
|
||||||
# 自动生成表结构
|
|
||||||
generate-ddl: true
|
|
||||||
open-in-view: false
|
|
||||||
# Redis
|
# Redis
|
||||||
redis:
|
redis:
|
||||||
host: 192.168.0.116
|
host: 192.168.31.108
|
||||||
port: 6379
|
port: 30379
|
||||||
password: lilishop
|
password: lilishop
|
||||||
lettuce:
|
lettuce:
|
||||||
pool:
|
pool:
|
||||||
@ -80,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://192.168.31.108:30306/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
|
||||||
@ -118,9 +98,9 @@ spring:
|
|||||||
# standard:
|
# standard:
|
||||||
# sharding-column: create_time
|
# sharding-column: create_time
|
||||||
# #分表策略
|
# #分表策略
|
||||||
# precise-algorithm-class-name: cn.lili.config.sharding.CreateTimeShardingTableAlgorithm
|
# precise-algorithm-class-name: cn.lili.mybatis.sharding.CreateTimeShardingTableAlgorithm
|
||||||
# #范围查询实现
|
# #范围查询实现
|
||||||
# range-algorithm-class-name: cn.lili.config.sharding.CreateTimeShardingTableAlgorithm
|
# range-algorithm-class-name: cn.lili.mybatis.sharding.CreateTimeShardingTableAlgorithm
|
||||||
props:
|
props:
|
||||||
#是否打印逻辑SQL语句和实际SQL语句,建议调试时打印,在生产环境关闭
|
#是否打印逻辑SQL语句和实际SQL语句,建议调试时打印,在生产环境关闭
|
||||||
sql:
|
sql:
|
||||||
@ -135,36 +115,42 @@ 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/memberEvaluation/**/goodsEvaluation
|
- /buyer/promotion/coupon
|
||||||
- /buyer/memberEvaluation/**/evaluationNumber
|
- /buyer/member/evaluation/**/goodsEvaluation
|
||||||
- /store/login/**
|
- /buyer/member/evaluation/**/evaluationNumber
|
||||||
- /manager/user/login
|
- /buyer/other/appVersion/**
|
||||||
- /manager/user/refresh/**
|
- /buyer/broadcast/studio/**
|
||||||
|
- /manager/passport/user/login
|
||||||
|
- /manager/passport/user/refresh/**
|
||||||
|
- /manager/other/elasticsearch
|
||||||
|
- /manager/other/customWords
|
||||||
- /druid/**
|
- /druid/**
|
||||||
- /swagger-ui.html
|
- /swagger-ui.html
|
||||||
- /doc.html
|
- /doc.html
|
||||||
- /swagger-resources/**
|
- /swagger-resources/**
|
||||||
- /swagger/**
|
- /swagger/**
|
||||||
- /**/**.js
|
|
||||||
- /**/**.png
|
|
||||||
- /**/**.css
|
|
||||||
- /webjars/**
|
- /webjars/**
|
||||||
- /v2/api-docs
|
- /v2/api-docs**
|
||||||
- /configuration/ui
|
- /configuration/ui
|
||||||
- /boot-admin
|
- /boot-admin
|
||||||
statics:
|
- /manager/promotion/seckill/init
|
||||||
- /**/*.js
|
- /**/*.js
|
||||||
- /**/*.css
|
- /**/*.css
|
||||||
- /**/*.png
|
- /**/*.png
|
||||||
@ -172,9 +158,9 @@ ignored:
|
|||||||
|
|
||||||
# Swagger界面内容配置
|
# Swagger界面内容配置
|
||||||
swagger:
|
swagger:
|
||||||
title: lili API接口文档
|
title: lilishop API接口文档
|
||||||
description: lili Api Documentation
|
description: lilishop Api Documentation
|
||||||
version: 1.0.0
|
version: 4.2.2
|
||||||
termsOfServiceUrl: https://pickmall.cn
|
termsOfServiceUrl: https://pickmall.cn
|
||||||
contact:
|
contact:
|
||||||
name: lili
|
name: lili
|
||||||
@ -197,22 +183,53 @@ 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: logs
|
||||||
|
logback:
|
||||||
|
rollingpolicy:
|
||||||
# 最大保存天数
|
# 最大保存天数
|
||||||
max-history: 7
|
max-history: 7
|
||||||
# 每个文件最大大小
|
# 每个文件最大大小
|
||||||
max-size: 5MB
|
max-file-size: 5MB
|
||||||
#加密参数
|
#加密参数
|
||||||
jasypt:
|
jasypt:
|
||||||
encryptor:
|
encryptor:
|
||||||
password: lili
|
password: lili
|
||||||
|
|
||||||
|
|
||||||
lili:
|
lili:
|
||||||
|
#验证码设置
|
||||||
|
verification-code:
|
||||||
|
#图形验证码有效时间 秒 包含滑块验证码有效时间, 以及验证通过之后,缓存中存储的验证结果有效时间
|
||||||
|
effectiveTime: 300
|
||||||
|
#水印
|
||||||
|
watermark: LILI-SHOP
|
||||||
|
#干扰项数量 最大2 默认0
|
||||||
|
interfereNum: 1
|
||||||
|
#允许误差像素
|
||||||
|
faultTolerant: 3
|
||||||
|
#短信模版配置
|
||||||
|
sms:
|
||||||
|
#登录
|
||||||
|
LOGIN: SMS_205755300
|
||||||
|
#注册
|
||||||
|
REGISTER: SMS_205755298
|
||||||
|
#找回密码
|
||||||
|
FIND_USER: SMS_205755301
|
||||||
|
#设置密码
|
||||||
|
UPDATE_PASSWORD: SMS_205755297
|
||||||
|
#支付密码
|
||||||
|
WALLET_PASSWORD: SMS_205755301
|
||||||
system:
|
system:
|
||||||
isDemoSite: true
|
isDemoSite: false
|
||||||
|
isTestModel: true
|
||||||
|
# 脱敏级别:
|
||||||
|
# 0:不做脱敏处理
|
||||||
|
# 1:管理端用户手机号等信息脱敏
|
||||||
|
# 2:商家端信息脱敏(为2时,表示管理端,商家端同时脱敏)
|
||||||
|
sensitiveLevel: 1
|
||||||
|
|
||||||
statistics:
|
statistics:
|
||||||
# 在线人数统计 X 小时。这里设置48,即统计过去48小时每小时在线人数
|
# 在线人数统计 X 小时。这里设置48,即统计过去48小时每小时在线人数
|
||||||
onlineMember: 48
|
onlineMember: 48
|
||||||
@ -224,21 +241,21 @@ lili:
|
|||||||
sk: zhNKVrJK6UPOhqIjn8AQvG37b9sz6
|
sk: zhNKVrJK6UPOhqIjn8AQvG37b9sz6
|
||||||
#域名
|
#域名
|
||||||
domain:
|
domain:
|
||||||
pc: http://192.168.0.116:8888
|
pc: http://192.168.0.108:8888
|
||||||
wap: http://192.168.0.116:8888
|
wap: http://192.168.0.108:8888
|
||||||
seller: http://192.168.0.116:8888
|
seller: http://192.168.0.108:8888
|
||||||
admin: http://192.168.0.116:8888
|
admin: http://192.168.0.108:8888
|
||||||
#api地址
|
#api地址
|
||||||
api:
|
api:
|
||||||
buyer: https://z171l91606.51mypc.cn
|
buyer: https://z171l91606.51mypc.cn
|
||||||
base: http://192.168.0.116:8888
|
base: http://192.168.0.108:8888
|
||||||
manager: http://192.168.0.116:8888
|
manager: http://192.168.0.108:8888
|
||||||
seller: http://192.168.0.116:8888
|
seller: http://192.168.0.108:8888
|
||||||
|
|
||||||
# jwt 细节设定
|
# jwt 细节设定
|
||||||
jwt-setting:
|
jwt-setting:
|
||||||
# token过期时间(分钟)
|
# token过期时间(分钟)
|
||||||
tokenExpireTime: 60
|
tokenExpireTime: 30
|
||||||
|
|
||||||
# 使用Spring @Cacheable注解失效时间
|
# 使用Spring @Cacheable注解失效时间
|
||||||
cache:
|
cache:
|
||||||
@ -252,7 +269,7 @@ lili:
|
|||||||
data:
|
data:
|
||||||
elasticsearch:
|
elasticsearch:
|
||||||
cluster-name: elasticsearch
|
cluster-name: elasticsearch
|
||||||
cluster-nodes: 192.168.0.116:9200
|
cluster-nodes: 192.168.31.108:30920
|
||||||
index:
|
index:
|
||||||
number-of-replicas: 0
|
number-of-replicas: 0
|
||||||
number-of-shards: 3
|
number-of-shards: 3
|
||||||
@ -262,25 +279,30 @@ lili:
|
|||||||
# username: elastic
|
# username: elastic
|
||||||
# password: LiLiShopES
|
# password: LiLiShopES
|
||||||
|
|
||||||
|
logstash:
|
||||||
|
server: 127.0.0.1:4560
|
||||||
rocketmq:
|
rocketmq:
|
||||||
promotion-topic: lili_promotion_topic
|
promotion-topic: shop_lili_promotion_topic
|
||||||
promotion-group: lili_promotion_group
|
promotion-group: shop_lili_promotion_group
|
||||||
msg-ext-topic: lili_msg_topic
|
msg-ext-topic: shop_lili_msg_topic
|
||||||
msg-ext-group: lili_msg_group
|
msg-ext-group: shop_lili_msg_group
|
||||||
goods-topic: lili_goods_topic
|
goods-topic: shop_lili_goods_topic
|
||||||
goods-group: lili_goods_group
|
goods-group: shop_lili_goods_group
|
||||||
order-topic: lili_order_topic
|
order-topic: shop_lili_order_topic
|
||||||
order-group: lili_order_group
|
order-group: shop_lili_order_group
|
||||||
member-topic: lili_member_topic
|
member-topic: shop_lili_member_topic
|
||||||
member-group: lili_member_group
|
member-group: shop_lili_member_group
|
||||||
other-topic: lili_other_topic
|
other-topic: shop_lili_other_topic
|
||||||
other-group: lili_other_group
|
other-group: shop_lili_other_group
|
||||||
notice-topic: lili_notice_topic
|
notice-topic: shop_lili_notice_topic
|
||||||
notice-group: lili_notice_group
|
notice-group: shop_lili_notice_group
|
||||||
notice-send-topic: lili_send_notice_topic
|
notice-send-topic: shop_lili_send_notice_topic
|
||||||
notice-send-group: lili_send_notice_group
|
notice-send-group: shop_lili_send_notice_group
|
||||||
|
after-sale-topic: shop_lili_after_sale_topic
|
||||||
|
after-sale-group: shop_lili_after_sale_group
|
||||||
rocketmq:
|
rocketmq:
|
||||||
name-server: 192.168.0.116:9876
|
name-server: 192.168.31.108:30876
|
||||||
|
isVIPChannel: false
|
||||||
producer:
|
producer:
|
||||||
group: lili_group
|
group: lili_group
|
||||||
send-message-timeout: 30000
|
send-message-timeout: 30000
|
||||||
@ -288,7 +310,7 @@ rocketmq:
|
|||||||
xxl:
|
xxl:
|
||||||
job:
|
job:
|
||||||
admin:
|
admin:
|
||||||
addresses: http://192.168.0.116:9001/xxl-job-admin
|
addresses: http://192.168.31.108:30001/xxl-job-admin
|
||||||
executor:
|
executor:
|
||||||
appname: xxl-job-executor-lilishop
|
appname: xxl-job-executor-lilishop
|
||||||
address:
|
address:
|
||||||
|
|||||||
@ -1,4 +0,0 @@
|
|||||||
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
|
||||||
#Thu Dec 24 11:13:34 CST 2020
|
|
||||||
xxl-job-admin-2.3.0-SNAPSHOT.pom>=
|
|
||||||
xxl-job-admin-2.3.0-SNAPSHOT.jar>=
|
|
||||||
@ -1,24 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<metadata modelVersion="1.1.0">
|
|
||||||
<groupId>com.xuxueli</groupId>
|
|
||||||
<artifactId>xxl-job-admin</artifactId>
|
|
||||||
<version>2.3.0-SNAPSHOT</version>
|
|
||||||
<versioning>
|
|
||||||
<snapshot>
|
|
||||||
<localCopy>true</localCopy>
|
|
||||||
</snapshot>
|
|
||||||
<lastUpdated>20201224031334</lastUpdated>
|
|
||||||
<snapshotVersions>
|
|
||||||
<snapshotVersion>
|
|
||||||
<extension>jar</extension>
|
|
||||||
<value>2.3.0-SNAPSHOT</value>
|
|
||||||
<updated>20201224031334</updated>
|
|
||||||
</snapshotVersion>
|
|
||||||
<snapshotVersion>
|
|
||||||
<extension>pom</extension>
|
|
||||||
<value>2.3.0-SNAPSHOT</value>
|
|
||||||
<updated>20201224031334</updated>
|
|
||||||
</snapshotVersion>
|
|
||||||
</snapshotVersions>
|
|
||||||
</versioning>
|
|
||||||
</metadata>
|
|
||||||
Binary file not shown.
@ -1,113 +0,0 @@
|
|||||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
|
||||||
<parent>
|
|
||||||
<groupId>com.xuxueli</groupId>
|
|
||||||
<artifactId>xxl-job</artifactId>
|
|
||||||
<version>2.3.0-SNAPSHOT</version>
|
|
||||||
</parent>
|
|
||||||
<artifactId>xxl-job-admin</artifactId>
|
|
||||||
<packaging>jar</packaging>
|
|
||||||
|
|
||||||
<dependencyManagement>
|
|
||||||
<dependencies>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.springframework.boot</groupId>
|
|
||||||
<artifactId>spring-boot-starter-parent</artifactId>
|
|
||||||
<version>${spring-boot.version}</version>
|
|
||||||
<type>pom</type>
|
|
||||||
<scope>import</scope>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
|
||||||
</dependencyManagement>
|
|
||||||
|
|
||||||
<dependencies>
|
|
||||||
|
|
||||||
<!-- starter-web:spring-webmvc + autoconfigure + logback + yaml + tomcat -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.springframework.boot</groupId>
|
|
||||||
<artifactId>spring-boot-starter-web</artifactId>
|
|
||||||
</dependency>
|
|
||||||
<!-- starter-test:junit + spring-test + mockito -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.springframework.boot</groupId>
|
|
||||||
<artifactId>spring-boot-starter-test</artifactId>
|
|
||||||
<scope>test</scope>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<!-- freemarker-starter -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.springframework.boot</groupId>
|
|
||||||
<artifactId>spring-boot-starter-freemarker</artifactId>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<!-- mail-starter -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.springframework.boot</groupId>
|
|
||||||
<artifactId>spring-boot-starter-mail</artifactId>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<!-- starter-actuator -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.springframework.boot</groupId>
|
|
||||||
<artifactId>spring-boot-starter-actuator</artifactId>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<!-- mybatis-starter:mybatis + mybatis-spring + hikari(default) -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.mybatis.spring.boot</groupId>
|
|
||||||
<artifactId>mybatis-spring-boot-starter</artifactId>
|
|
||||||
<version>${mybatis-spring-boot-starter.version}</version>
|
|
||||||
</dependency>
|
|
||||||
<!-- mysql -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>mysql</groupId>
|
|
||||||
<artifactId>mysql-connector-java</artifactId>
|
|
||||||
<version>${mysql-connector-java.version}</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<!-- xxl-job-core -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>com.xuxueli</groupId>
|
|
||||||
<artifactId>xxl-job-core</artifactId>
|
|
||||||
<version>${project.parent.version}</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
</dependencies>
|
|
||||||
|
|
||||||
<build>
|
|
||||||
<plugins>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.springframework.boot</groupId>
|
|
||||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
|
||||||
<version>${spring-boot.version}</version>
|
|
||||||
<executions>
|
|
||||||
<execution>
|
|
||||||
<goals>
|
|
||||||
<goal>repackage</goal>
|
|
||||||
</goals>
|
|
||||||
</execution>
|
|
||||||
</executions>
|
|
||||||
</plugin>
|
|
||||||
<!-- docker -->
|
|
||||||
<plugin>
|
|
||||||
<groupId>com.spotify</groupId>
|
|
||||||
<artifactId>docker-maven-plugin</artifactId>
|
|
||||||
<version>0.4.13</version>
|
|
||||||
<configuration>
|
|
||||||
<!-- made of '[a-z0-9-_.]' -->
|
|
||||||
<imageName>${project.artifactId}:${project.version}</imageName>
|
|
||||||
<dockerDirectory>${project.basedir}</dockerDirectory>
|
|
||||||
<resources>
|
|
||||||
<resource>
|
|
||||||
<targetPath>/</targetPath>
|
|
||||||
<directory>${project.build.directory}</directory>
|
|
||||||
<include>${project.build.finalName}.jar</include>
|
|
||||||
</resource>
|
|
||||||
</resources>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
</plugins>
|
|
||||||
</build>
|
|
||||||
|
|
||||||
</project>
|
|
||||||
@ -1,11 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<metadata>
|
|
||||||
<groupId>com.xuxueli</groupId>
|
|
||||||
<artifactId>xxl-job-admin</artifactId>
|
|
||||||
<versioning>
|
|
||||||
<versions>
|
|
||||||
<version>2.3.0-SNAPSHOT</version>
|
|
||||||
</versions>
|
|
||||||
<lastUpdated>20201224031334</lastUpdated>
|
|
||||||
</versioning>
|
|
||||||
</metadata>
|
|
||||||
@ -1,4 +0,0 @@
|
|||||||
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
|
||||||
#Thu Dec 24 11:13:30 CST 2020
|
|
||||||
xxl-job-core-2.3.0-SNAPSHOT.pom>=
|
|
||||||
xxl-job-core-2.3.0-SNAPSHOT.jar>=
|
|
||||||
@ -1,24 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<metadata modelVersion="1.1.0">
|
|
||||||
<groupId>com.xuxueli</groupId>
|
|
||||||
<artifactId>xxl-job-core</artifactId>
|
|
||||||
<version>2.3.0-SNAPSHOT</version>
|
|
||||||
<versioning>
|
|
||||||
<snapshot>
|
|
||||||
<localCopy>true</localCopy>
|
|
||||||
</snapshot>
|
|
||||||
<lastUpdated>20201224031330</lastUpdated>
|
|
||||||
<snapshotVersions>
|
|
||||||
<snapshotVersion>
|
|
||||||
<extension>jar</extension>
|
|
||||||
<value>2.3.0-SNAPSHOT</value>
|
|
||||||
<updated>20201224031330</updated>
|
|
||||||
</snapshotVersion>
|
|
||||||
<snapshotVersion>
|
|
||||||
<extension>pom</extension>
|
|
||||||
<value>2.3.0-SNAPSHOT</value>
|
|
||||||
<updated>20201224031330</updated>
|
|
||||||
</snapshotVersion>
|
|
||||||
</snapshotVersions>
|
|
||||||
</versioning>
|
|
||||||
</metadata>
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user