谷粒商城分布式基础(三)—— 开发配置统一 & 服务构建
四、开发环境统一 & 服务搭建
1、IDEA配置统一
注意:关于idea的安装破解和基础信息这里就不做介绍了
1、本地开发jdk和maven环境测试
注意:关于本地环境的jdk和maven环境配置这里就不介绍了
2、idea中按照以下步骤配置maven Settings—>Buid,Execution,Deployment—>Build Tools—>Maven
3、idea中安装 lombox 和 mybatisx 插件
2、VsCode配置统一
注意:关于vscode的安装这里就不做介绍了
1、vscode安装开发必备插件
(1)Vetur —— 语法高亮、智能感知、Emmet 等,包含格式化功能, Alt+Shift+F (格式化全文),Ctrl+K Ctrl+F(格式化选中代码,两个 Ctrl 需要同时按着)
(2)EsLint —— 语法纠错
(3)Auto Close Tag —— 自动闭合 HTML/XML 标签
(4)Auto Rename Tag —— 自动完成另一侧标签的同步修改
(5)JavaScript(ES6) code snippets — — ES6语法智能提示以及快速输入,除js外还支持.ts,.jsx,.tsx,.html,.vue,省去了配置其支持各种包含 js 代码文件的时间
(6)HTML CSS Support —— 让 html 标签上写 class 智能提示当前项目所支持的样式
(7)HTML Snippets —— html 快速自动补全
(8)Open in browser —— 浏览器快速打开
(9)Live Server —— 以内嵌服务器方式打开
(10)Chinese (Simplified) Language Pack for Visual Studio Code —— 中文语言包
3、安装配置git
1、下载git https://git-scm.com 注意:傻瓜式安装,这里就不再介绍了
2、配置git,进入 git bash
(1)配置用户名 git config --global user.name "username" //(名字)
(2)配置邮箱
git config --global user.email "username@email.com" //(注册账号时用的邮箱)
3、配置ssh免密登录
Gitee 提供了基于SSH协议的Git服务,在使用SSH协议访问仓库之前,需要先配置好账户/仓库的SSH公钥。 官方教程:https://gitee.com/help/articles/4181#article-header0
(1)进入git bash,使用以下命令来生成 sshkey:
ssh-keygen -t rsa -C "xxxxx@xxxxx.com"
按照提示完成三次回车,即可生成 ssh key
一般用户目录下会有
或者 cat ~/.ssh/id_rsa.pub
(2)登录gitee,复制生成后的 ssh key,通过仓库主页 「管理」->「部署公钥管理」->「添加部署公钥」 ,添加生成的 public key 添加到仓库中
(3)添加完成之后,在终端(Terminal)中输入
ssh -T git@gitee.com
首次使用需要确认并添加主机到本机SSH可信列表。若返回 Hi XXX! You've successfully authenticated, but Gitee.com does not provide shell access.
内容,则证明添加成功。
添加成功后,就可以使用SSH协议对仓库进行操作了。
Git+码云教程 https://gitee.com/help/articles/4104
4、创建项目微服务
创建五个微服务模块:商品服务、仓储服务、订单服务、优惠券服务、用户服务
1、git初始化项目
(1)从gitee初始化一个项目
创建完毕后
2、ideal拉取码云项目
打开idea,File -> New -> Project from Version Control -> Git 粘贴git仓库的http地址
初次登录,Windows安区中心弹出登录认证窗口
git完毕之后,效果如下:
3、创建商品服务模块
(1)右键项目 New -> Module -> 选择Spring Initinalizr
注意:Module SDK 要选择自己配置的jdk1.8版本
(2)选择微服务必要组件,勾选如下组件,下一步
(a)Web ——> Spring Web
(b)Spring Cloud Routing ——> OpenFeign
(3)Finish 完毕后
4、分别创建其他服务模块 依次创建其他四个微服务模块,仓储服务、订单服务、优惠券服务、用户服务,他们之间的共同点是: 1)共同组件:web、openfeign 2)每一个服务,包名 com.atguigu.gulimall.xxx(product/order/ware/coupon/member) 3)模块名:gulimall-order/ware/coupon/member
全部创建完毕之后
5、设置gulimall为项目总工程 (1)随便从一个Module中复制一个pom.xml到guilimall中
(2)修改gulimall的pom.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.atguigu.gulimall</groupId>
<artifactId>gulimall</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>gulimall</name>
<description>聚合服务</description>
<packaging>pom</packaging>
<modules>
<module>gulimall-coupon</module>
<module>gulimall-member</module>
<module>gulimall-order</module>
<module>gulimall-product</module>
<module>gulimall-ware</module>
</modules>
</project>
(3)将总服务添加进maven
添加完成后
6、修改总项目的git的ignore模板 (1)修改gulimall的.gitignore文件,设置忽略文件,把小项目里的垃圾文件在提交的时候忽略掉
target/
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties
dependency-reduced-pom.xml
buildNumber.properties
.mvn/timing.properties
# https://github.com/takari/maven-wrapper#usage-without-binary-jar
.mvn/wrapper/maven-wrapper.jar
**/mvnw
**/mvnw.cmd
**/.mvn
**/target
.idea
**/.gitignore
**/README.md
(2)删除子模块的.gitignore文件
(3)将剩余的文件Unversioned Files 文件纳入版本控制
右键 Unversioned Files 选择 Add to VCS
7、提交代码到码云 (1)安装码云插件
安装完成后需要重启ideal
(2)右键commit提交代码到本地仓库
(3)查看码云仓库
5、数据库初始化
1、启动docker服务,并且设置自启动
如果你是完全按照我的整个流程来的,其实这个时候docker和mysql已经是启动的,前面已经设置过自启动,这里我们再操作复习一下
2、查看数据库设计结构
(1)安装并破解软件PowerDesigner165
安装完毕之后打开 gmall_数据库设计.pdm 查看数据库设计结构
(2)总共五个数据库,查看各个库的设计结构
(a)用户数据库
(b)商品数据库
(c)库存管理数据库
(d)优惠/营销数据库
(e)订单数据库
3、创建数据库
使用客户端工具navicat,字符集选utf8mb4,他能兼容utf8且能解决一些乱码的问题,分别建立下面的数据库
gulimall_oms —— 订单服务
gulimall_pms —— 商品服务
gulimall_sms —— 优惠券服务
gulimall_ums —— 用户服务
gulimall_wms —— 仓储服务
所有的数据库数据再复杂也不建立外键,因为在电商系统里,数据量大, 做外键关联很耗性能。
(1)数据库gulimall_oms(订单服务),执行sql文件 gulimall-oms.sql
drop table if exists oms_order; drop table if exists oms_order_item; drop table if exists oms_order_operate_history; drop table if exists oms_order_return_apply; drop table if exists oms_order_return_reason; drop table if exists oms_order_setting; drop table if exists oms_payment_info; drop table if exists oms_refund_info; /*==============================================================*/ /* Table: oms_order */ /*==============================================================*/ create table oms_order ( id bigint not null auto_increment comment 'id', member_id bigint comment 'member_id', order_sn char(32) comment '订单号', coupon_id bigint comment '使用的优惠券', create_time datetime comment 'create_time', member_username varchar(200) comment '用户名', total_amount decimal(18,4) comment '订单总额', pay_amount decimal(18,4) comment '应付总额', freight_amount decimal(18,4) comment '运费金额', promotion_amount decimal(18,4) comment '促销优化金额(促销价、满减、阶梯价)', integration_amount decimal(18,4) comment '积分抵扣金额', coupon_amount decimal(18,4) comment '优惠券抵扣金额', discount_amount decimal(18,4) comment '后台调整订单使用的折扣金额', pay_type tinyint comment '支付方式【1->支付宝;2->微信;3->银联; 4->货到付款;】', source_type tinyint comment '订单来源[0->PC订单;1->app订单]', status tinyint comment '订单状态【0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单】', delivery_company varchar(64) comment '物流公司(配送方式)', delivery_sn varchar(64) comment '物流单号', auto_confirm_day int comment '自动确认时间(天)', integration int comment '可以获得的积分', growth int comment '可以获得的成长值', bill_type tinyint comment '发票类型[0->不开发票;1->电子发票;2->纸质发票]', bill_header varchar(255) comment '发票抬头', bill_content varchar(255) comment '发票内容', bill_receiver_phone varchar(32) comment '收票人电话', bill_receiver_email varchar(64) comment '收票人邮箱', receiver_name varchar(100) comment '收货人姓名', receiver_phone varchar(32) comment '收货人电话', receiver_post_code varchar(32) comment '收货人邮编', receiver_province varchar(32) comment '省份/直辖市', receiver_city varchar(32) comment '城市', receiver_region varchar(32) comment '区', receiver_detail_address varchar(200) comment '详细地址', note varchar(500) comment '订单备注', confirm_status tinyint comment '确认收货状态[0->未确认;1->已确认]', delete_status tinyint comment '删除状态【0->未删除;1->已删除】', use_integration int comment '下单时使用的积分', payment_time datetime comment '支付时间', delivery_time datetime comment '发货时间', receive_time datetime comment '确认收货时间', comment_time datetime comment '评价时间', modify_time datetime comment '修改时间', primary key (id) ); alter table oms_order comment '订单'; /*==============================================================*/ /* Table: oms_order_item */ /*==============================================================*/ create table oms_order_item ( id bigint not null auto_increment comment 'id', order_id bigint comment 'order_id', order_sn char(32) comment 'order_sn', spu_id bigint comment 'spu_id', spu_name varchar(255) comment 'spu_name', spu_pic varchar(500) comment 'spu_pic', spu_brand varchar(200) comment '品牌', category_id bigint comment '商品分类id', sku_id bigint comment '商品sku编号', sku_name varchar(255) comment '商品sku名字', sku_pic varchar(500) comment '商品sku图片', sku_price decimal(18,4) comment '商品sku价格', sku_quantity int comment '商品购买的数量', sku_attrs_vals varchar(500) comment '商品销售属性组合(JSON)', promotion_amount decimal(18,4) comment '商品促销分解金额', coupon_amount decimal(18,4) comment '优惠券优惠分解金额', integration_amount decimal(18,4) comment '积分优惠分解金额', real_amount decimal(18,4) comment '该商品经过优惠后的分解金额', gift_integration int comment '赠送积分', gift_growth int comment '赠送成长值', primary key (id) ); alter table oms_order_item comment '订单项信息'; /*==============================================================*/ /* Table: oms_order_operate_history */ /*==============================================================*/ create table oms_order_operate_history ( id bigint not null auto_increment comment 'id', order_id bigint comment '订单id', operate_man varchar(100) comment '操作人[用户;系统;后台管理员]', create_time datetime comment '操作时间', order_status tinyint comment '订单状态【0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单】', note varchar(500) comment '备注', primary key (id) ); alter table oms_order_operate_history comment '订单操作历史记录'; /*==============================================================*/ /* Table: oms_order_return_apply */ /*==============================================================*/ create table oms_order_return_apply ( id bigint not null auto_increment comment 'id', order_id bigint comment 'order_id', sku_id bigint comment '退货商品id', order_sn char(32) comment '订单编号', create_time datetime comment '申请时间', member_username varchar(64) comment '会员用户名', return_amount decimal(18,4) comment '退款金额', return_name varchar(100) comment '退货人姓名', return_phone varchar(20) comment '退货人电话', status tinyint(1) comment '申请状态[0->待处理;1->退货中;2->已完成;3->已拒绝]', handle_time datetime comment '处理时间', sku_img varchar(500) comment '商品图片', sku_name varchar(200) comment '商品名称', sku_brand varchar(200) comment '商品品牌', sku_attrs_vals varchar(500) comment '商品销售属性(JSON)', sku_count int comment '退货数量', sku_price decimal(18,4) comment '商品单价', sku_real_price decimal(18,4) comment '商品实际支付单价', reason varchar(200) comment '原因', description述 varchar(500) comment '描述', desc_pics varchar(2000) comment '凭证图片,以逗号隔开', handle_note varchar(500) comment '处理备注', handle_man varchar(200) comment '处理人员', receive_man varchar(100) comment '收货人', receive_time datetime comment '收货时间', receive_note varchar(500) comment '收货备注', receive_phone varchar(20) comment '收货电话', company_address varchar(500) comment '公司收货地址', primary key (id) ); alter table oms_order_return_apply comment '订单退货申请'; /*==============================================================*/ /* Table: oms_order_return_reason */ /*==============================================================*/ create table oms_order_return_reason ( id bigint not null auto_increment comment 'id', name varchar(200) comment '退货原因名', sort int comment '排序', status tinyint(1) comment '启用状态', create_time datetime comment 'create_time', primary key (id) ); alter table oms_order_return_reason comment '退货原因'; /*==============================================================*/ /* Table: oms_order_setting */ /*==============================================================*/ create table oms_order_setting ( id bigint not null auto_increment comment 'id', flash_order_overtime int comment '秒杀订单超时关闭时间(分)', normal_order_overtime int comment '正常订单超时时间(分)', confirm_overtime int comment '发货后自动确认收货时间(天)', finish_overtime int comment '自动完成交易时间,不能申请退货(天)', comment_overtime int comment '订单完成后自动好评时间(天)', member_level tinyint(2) comment '会员等级【0-不限会员等级,全部通用;其他-对应的其他会员等级】', primary key (id) ); alter table oms_order_setting comment '订单配置信息'; /*==============================================================*/ /* Table: oms_payment_info */ /*==============================================================*/ create table oms_payment_info ( id bigint not null auto_increment comment 'id', order_sn char(32) comment '订单号(对外业务号)', order_id bigint comment '订单id', alipay_trade_no varchar(50) comment '支付宝交易流水号', total_amount decimal(18,4) comment '支付总金额', subject varchar(200) comment '交易内容', payment_status varchar(20) comment '支付状态', create_time datetime comment '创建时间', confirm_time datetime comment '确认时间', callback_content varchar(4000) comment '回调内容', callback_time datetime comment '回调时间', primary key (id) ); alter table oms_payment_info comment '支付信息表'; /*==============================================================*/ /* Table: oms_refund_info */ /*==============================================================*/ create table oms_refund_info ( id bigint not null auto_increment comment 'id', order_return_id bigint comment '退款的订单', refund decimal(18,4) comment '退款金额', refund_sn varchar(64) comment '退款交易流水号', refund_status tinyint(1) comment '退款状态', refund_channel tinyint comment '退款渠道[1-支付宝,2-微信,3-银联,4-汇款]', refund_content varchar(5000), primary key (id) ); alter table oms_refund_info comment '退款信息';
(2)数据库gulimall_pms(商品服务),执行sql文件 gulimall-pms.sql
drop table if exists pms_attr; drop table if exists pms_attr_attrgroup_relation; drop table if exists pms_attr_group; drop table if exists pms_brand; drop table if exists pms_category; drop table if exists pms_category_brand_relation; drop table if exists pms_comment_replay; drop table if exists pms_product_attr_value; drop table if exists pms_sku_images; drop table if exists pms_sku_info; drop table if exists pms_sku_sale_attr_value; drop table if exists pms_spu_comment; drop table if exists pms_spu_images; drop table if exists pms_spu_info; drop table if exists pms_spu_info_desc; /*==============================================================*/ /* Table: pms_attr */ /*==============================================================*/ create table pms_attr ( attr_id bigint not null auto_increment comment '属性id', attr_name char(30) comment '属性名', search_type tinyint comment '是否需要检索[0-不需要,1-需要]', `value_type` tinyint(4) DEFAULT NULL COMMENT '值类型[0-为单个值,1-可以选择多个值]', `icon` varchar(255) DEFAULT NULL COMMENT '属性图标', `value_select` char(255) DEFAULT NULL COMMENT '可选值列表[用逗号分隔]', `attr_type` tinyint(4) DEFAULT NULL COMMENT '属性类型[0-销售属性,1-基本属性,2-既是销售属性又是基本属性]', enable bigint comment '启用状态[0 - 禁用,1 - 启用]', catelog_id bigint comment '所属分类', show_desc tinyint comment '快速展示【是否展示在介绍上;0-否 1-是】,在sku中仍然可以调整', primary key (attr_id) ); alter table pms_attr comment '商品属性'; /*==============================================================*/ /* Table: pms_attr_attrgroup_relation */ /*==============================================================*/ create table pms_attr_attrgroup_relation ( id bigint not null auto_increment comment 'id', attr_id bigint comment '属性id', attr_group_id bigint comment '属性分组id', attr_sort int comment '属性组内排序', primary key (id) ); alter table pms_attr_attrgroup_relation comment '属性&属性分组关联'; /*==============================================================*/ /* Table: pms_attr_group */ /*==============================================================*/ create table pms_attr_group ( attr_group_id bigint not null auto_increment comment '分组id', attr_group_name char(20) comment '组名', sort int comment '排序', descript varchar(255) comment '描述', icon varchar(255) comment '组图标', catelog_id bigint comment '所属分类id', primary key (attr_group_id) ); alter table pms_attr_group comment '属性分组'; /*==============================================================*/ /* Table: pms_brand */ /*==============================================================*/ create table pms_brand ( brand_id bigint not null auto_increment comment '品牌id', name char(50) comment '品牌名', logo varchar(2000) comment '品牌logo地址', descript longtext comment '介绍', show_status tinyint comment '显示状态[0-不显示;1-显示]', first_letter char(1) comment '检索首字母', sort int comment '排序', primary key (brand_id) ); alter table pms_brand comment '品牌'; /*==============================================================*/ /* Table: pms_category */ /*==============================================================*/ create table pms_category ( cat_id bigint not null auto_increment comment '分类id', name char(50) comment '分类名称', parent_cid bigint comment '父分类id', cat_level int comment '层级', show_status tinyint comment '是否显示[0-不显示,1显示]', sort int comment '排序', icon char(255) comment '图标地址', product_unit char(50) comment '计量单位', product_count int comment '商品数量', primary key (cat_id) ); alter table pms_category comment '商品三级分类'; /*==============================================================*/ /* Table: pms_category_brand_relation */ /*==============================================================*/ create table pms_category_brand_relation ( id bigint not null auto_increment, brand_id bigint comment '品牌id', catelog_id bigint comment '分类id', brand_name varchar(255), catelog_name varchar(255), primary key (id) ); alter table pms_category_brand_relation comment '品牌分类关联'; /*==============================================================*/ /* Table: pms_comment_replay */ /*==============================================================*/ create table pms_comment_replay ( id bigint not null auto_increment comment 'id', comment_id bigint comment '评论id', reply_id bigint comment '回复id', primary key (id) ); alter table pms_comment_replay comment '商品评价回复关系'; /*==============================================================*/ /* Table: pms_product_attr_value */ /*==============================================================*/ create table pms_product_attr_value ( id bigint not null auto_increment comment 'id', spu_id bigint comment '商品id', attr_id bigint comment '属性id', attr_name varchar(200) comment '属性名', attr_value varchar(200) comment '属性值', attr_sort int comment '顺序', quick_show tinyint comment '快速展示【是否展示在介绍上;0-否 1-是】', primary key (id) ); alter table pms_product_attr_value comment 'spu属性值'; /*==============================================================*/ /* Table: pms_sku_images */ /*==============================================================*/ create table pms_sku_images ( id bigint not null auto_increment comment 'id', sku_id bigint comment 'sku_id', img_url varchar(255) comment '图片地址', img_sort int comment '排序', default_img int comment '默认图[0 - 不是默认图,1 - 是默认图]', primary key (id) ); alter table pms_sku_images comment 'sku图片'; /*==============================================================*/ /* Table: pms_sku_info */ /*==============================================================*/ create table pms_sku_info ( sku_id bigint not null auto_increment comment 'skuId', spu_id bigint comment 'spuId', sku_name varchar(255) comment 'sku名称', sku_desc varchar(2000) comment 'sku介绍描述', catalog_id bigint comment '所属分类id', brand_id bigint comment '品牌id', sku_default_img varchar(255) comment '默认图片', sku_title varchar(255) comment '标题', sku_subtitle varchar(2000) comment '副标题', price decimal(18,4) comment '价格', sale_count bigint comment '销量', primary key (sku_id) ); alter table pms_sku_info comment 'sku信息'; /*==============================================================*/ /* Table: pms_sku_sale_attr_value */ /*==============================================================*/ create table pms_sku_sale_attr_value ( id bigint not null auto_increment comment 'id', sku_id bigint comment 'sku_id', attr_id bigint comment 'attr_id', attr_name varchar(200) comment '销售属性名', attr_value varchar(200) comment '销售属性值', attr_sort int comment '顺序', primary key (id) ); alter table pms_sku_sale_attr_value comment 'sku销售属性&值'; /*==============================================================*/ /* Table: pms_spu_comment */ /*==============================================================*/ create table pms_spu_comment ( id bigint not null auto_increment comment 'id', sku_id bigint comment 'sku_id', spu_id bigint comment 'spu_id', spu_name varchar(255) comment '商品名字', member_nick_name varchar(255) comment '会员昵称', star tinyint(1) comment '星级', member_ip varchar(64) comment '会员ip', create_time datetime comment '创建时间', show_status tinyint(1) comment '显示状态[0-不显示,1-显示]', spu_attributes varchar(255) comment '购买时属性组合', likes_count int comment '点赞数', reply_count int comment '回复数', resources varchar(1000) comment '评论图片/视频[json数据;[{type:文件类型,url:资源路径}]]', content text comment '内容', member_icon varchar(255) comment '用户头像', comment_type tinyint comment '评论类型[0 - 对商品的直接评论,1 - 对评论的回复]', primary key (id) ); alter table pms_spu_comment comment '商品评价'; /*==============================================================*/ /* Table: pms_spu_images */ /*==============================================================*/ create table pms_spu_images ( id bigint not null auto_increment comment 'id', spu_id bigint comment 'spu_id', img_name varchar(200) comment '图片名', img_url varchar(255) comment '图片地址', img_sort int comment '顺序', default_img tinyint comment '是否默认图', primary key (id) ); alter table pms_spu_images comment 'spu图片'; /*==============================================================*/ /* Table: pms_spu_info */ /*==============================================================*/ create table pms_spu_info ( id bigint not null auto_increment comment '商品id', spu_name varchar(200) comment '商品名称', spu_description varchar(1000) comment '商品描述', catalog_id bigint comment '所属分类id', brand_id bigint comment '品牌id', weight decimal(18,4), publish_status tinyint comment '上架状态[0 - 下架,1 - 上架]', create_time datetime, update_time datetime, primary key (id) ); alter table pms_spu_info comment 'spu信息'; /*==============================================================*/ /* Table: pms_spu_info_desc */ /*==============================================================*/ create table pms_spu_info_desc ( spu_id bigint not null comment '商品id', decript longtext comment '商品介绍', primary key (spu_id) ); alter table pms_spu_info_desc comment 'spu信息介绍';
(3)数据库gulimall_sms(优惠券服务),执行sql文件 gulimall-sms.sql
drop table if exists sms_coupon; drop table if exists sms_coupon_history; drop table if exists sms_coupon_spu_category_relation; drop table if exists sms_coupon_spu_relation; drop table if exists sms_home_adv; drop table if exists sms_home_subject; drop table if exists sms_home_subject_spu; drop table if exists sms_member_price; drop table if exists sms_seckill_promotion; drop table if exists sms_seckill_session; drop table if exists sms_seckill_sku_notice; drop table if exists sms_seckill_sku_relation; drop table if exists sms_sku_full_reduction; drop table if exists sms_sku_ladder; drop table if exists sms_spu_bounds; /*==============================================================*/ /* Table: sms_coupon */ /*==============================================================*/ create table sms_coupon ( id bigint not null auto_increment comment 'id', coupon_type tinyint(1) comment '优惠卷类型[0->全场赠券;1->会员赠券;2->购物赠券;3->注册赠券]', coupon_img varchar(2000) comment '优惠券图片', coupon_name varchar(100) comment '优惠卷名字', num int comment '数量', amount decimal(18,4) comment '金额', per_limit int comment '每人限领张数', min_point decimal(18,4) comment '使用门槛', start_time datetime comment '开始时间', end_time datetime comment '结束时间', use_type tinyint(1) comment '使用类型[0->全场通用;1->指定分类;2->指定商品]', note varchar(200) comment '备注', publish_count int(11) comment '发行数量', use_count int(11) comment '已使用数量', receive_count int(11) comment '领取数量', enable_start_time datetime comment '可以领取的开始日期', enable_end_time datetime comment '可以领取的结束日期', code varchar(64) comment '优惠码', member_level tinyint(1) comment '可以领取的会员等级[0->不限等级,其他-对应等级]', publish tinyint(1) comment '发布状态[0-未发布,1-已发布]', primary key (id) ); alter table sms_coupon comment '优惠券信息'; /*==============================================================*/ /* Table: sms_coupon_history */ /*==============================================================*/ create table sms_coupon_history ( id bigint not null auto_increment comment 'id', coupon_id bigint comment '优惠券id', member_id bigint comment '会员id', member_nick_name varchar(64) comment '会员名字', get_type tinyint(1) comment '获取方式[0->后台赠送;1->主动领取]', create_time datetime comment '创建时间', use_type tinyint(1) comment '使用状态[0->未使用;1->已使用;2->已过期]', use_time datetime comment '使用时间', order_id bigint comment '订单id', order_sn bigint comment '订单号', primary key (id) ); alter table sms_coupon_history comment '优惠券领取历史记录'; /*==============================================================*/ /* Table: sms_coupon_spu_category_relation */ /*==============================================================*/ create table sms_coupon_spu_category_relation ( id bigint not null auto_increment comment 'id', coupon_id bigint comment '优惠券id', category_id bigint comment '产品分类id', category_name varchar(64) comment '产品分类名称', primary key (id) ); alter table sms_coupon_spu_category_relation comment '优惠券分类关联'; /*==============================================================*/ /* Table: sms_coupon_spu_relation */ /*==============================================================*/ create table sms_coupon_spu_relation ( id bigint not null auto_increment comment 'id', coupon_id bigint comment '优惠券id', spu_id bigint comment 'spu_id', spu_name varchar(255) comment 'spu_name', primary key (id) ); alter table sms_coupon_spu_relation comment '优惠券与产品关联'; /*==============================================================*/ /* Table: sms_home_adv */ /*==============================================================*/ create table sms_home_adv ( id bigint not null auto_increment comment 'id', name varchar(100) comment '名字', pic varchar(500) comment '图片地址', start_time datetime comment '开始时间', end_time datetime comment '结束时间', status tinyint(1) comment '状态', click_count int comment '点击数', url varchar(500) comment '广告详情连接地址', note varchar(500) comment '备注', sort int comment '排序', publisher_id bigint comment '发布者', auth_id bigint comment '审核者', primary key (id) ); alter table sms_home_adv comment '首页轮播广告'; /*==============================================================*/ /* Table: sms_home_subject */ /*==============================================================*/ create table sms_home_subject ( id bigint not null auto_increment comment 'id', name varchar(200) comment '专题名字', title varchar(255) comment '专题标题', sub_title varchar(255) comment '专题副标题', status tinyint(1) comment '显示状态', url varchar(500) comment '详情连接', sort int comment '排序', img varchar(500) comment '专题图片地址', primary key (id) ); alter table sms_home_subject comment '首页专题表【jd首页下面很多专题,每个专题链接新的页面,展示专题商品信息】'; /*==============================================================*/ /* Table: sms_home_subject_spu */ /*==============================================================*/ create table sms_home_subject_spu ( id bigint not null auto_increment comment 'id', name varchar(200) comment '专题名字', subject_id bigint comment '专题id', spu_id bigint comment 'spu_id', sort int comment '排序', primary key (id) ); alter table sms_home_subject_spu comment '专题商品'; /*==============================================================*/ /* Table: sms_member_price */ /*==============================================================*/ create table sms_member_price ( id bigint not null auto_increment comment 'id', sku_id bigint comment 'sku_id', member_level_id bigint comment '会员等级id', member_level_name varchar(100) comment '会员等级名', member_price decimal(18,4) comment '会员对应价格', add_other tinyint(1) comment '可否叠加其他优惠[0-不可叠加优惠,1-可叠加]', primary key (id) ); alter table sms_member_price comment '商品会员价格'; /*==============================================================*/ /* Table: sms_seckill_promotion */ /*==============================================================*/ create table sms_seckill_promotion ( id bigint not null auto_increment comment 'id', title varchar(255) comment '活动标题', start_time datetime comment '开始日期', end_time datetime comment '结束日期', status tinyint comment '上下线状态', create_time datetime comment '创建时间', user_id bigint comment '创建人', primary key (id) ); alter table sms_seckill_promotion comment '秒杀活动'; /*==============================================================*/ /* Table: sms_seckill_session */ /*==============================================================*/ create table sms_seckill_session ( id bigint not null auto_increment comment 'id', name varchar(200) comment '场次名称', start_time datetime comment '每日开始时间', end_time datetime comment '每日结束时间', status tinyint(1) comment '启用状态', create_time datetime comment '创建时间', primary key (id) ); alter table sms_seckill_session comment '秒杀活动场次'; /*==============================================================*/ /* Table: sms_seckill_sku_notice */ /*==============================================================*/ create table sms_seckill_sku_notice ( id bigint not null auto_increment comment 'id', member_id bigint comment 'member_id', sku_id bigint comment 'sku_id', session_id bigint comment '活动场次id', subcribe_time datetime comment '订阅时间', send_time datetime comment '发送时间', notice_type tinyint(1) comment '通知方式[0-短信,1-邮件]', primary key (id) ); alter table sms_seckill_sku_notice comment '秒杀商品通知订阅'; /*==============================================================*/ /* Table: sms_seckill_sku_relation */ /*==============================================================*/ create table sms_seckill_sku_relation ( id bigint not null auto_increment comment 'id', promotion_id bigint comment '活动id', promotion_session_id bigint comment '活动场次id', sku_id bigint comment '商品id', seckill_price decimal comment '秒杀价格', seckill_count decimal comment '秒杀总量', seckill_limit decimal comment '每人限购数量', seckill_sort int comment '排序', primary key (id) ); alter table sms_seckill_sku_relation comment '秒杀活动商品关联'; /*==============================================================*/ /* Table: sms_sku_full_reduction */ /*==============================================================*/ create table sms_sku_full_reduction ( id bigint not null auto_increment comment 'id', sku_id bigint comment 'spu_id', full_price decimal(18,4) comment '满多少', reduce_price decimal(18,4) comment '减多少', add_other tinyint(1) comment '是否参与其他优惠', primary key (id) ); alter table sms_sku_full_reduction comment '商品满减信息'; /*==============================================================*/ /* Table: sms_sku_ladder */ /*==============================================================*/ create table sms_sku_ladder ( id bigint not null auto_increment comment 'id', sku_id bigint comment 'spu_id', full_count int comment '满几件', discount decimal(4,2) comment '打几折', price decimal(18,4) comment '折后价', add_other tinyint(1) comment '是否叠加其他优惠[0-不可叠加,1-可叠加]', primary key (id) ); alter table sms_sku_ladder comment '商品阶梯价格'; /*==============================================================*/ /* Table: sms_spu_bounds */ /*==============================================================*/ create table sms_spu_bounds ( id bigint not null auto_increment comment 'id', spu_id bigint, grow_bounds decimal(18,4) comment '成长积分', buy_bounds decimal(18,4) comment '购物积分', work tinyint(1) comment '优惠生效情况[1111(四个状态位,从右到左);0 - 无优惠,成长积分是否赠送;1 - 无优惠,购物积分是否赠送;2 - 有优惠,成长积分是否赠送;3 - 有优惠,购物积分是否赠送【状态位0:不赠送,1:赠送】]', primary key (id) ); alter table sms_spu_bounds comment '商品spu积分设置';
(4)数据库gulimall_ums(用户服务),执行sql文件 gulimall-ums.sql
drop table if exists ums_growth_change_history; drop table if exists ums_integration_change_history; drop table if exists ums_member; drop table if exists ums_member_collect_spu; drop table if exists ums_member_collect_subject; drop table if exists ums_member_level; drop table if exists ums_member_login_log; drop table if exists ums_member_receive_address; drop table if exists ums_member_statistics_info; /*==============================================================*/ /* Table: ums_growth_change_history */ /*==============================================================*/ create table ums_growth_change_history ( id bigint not null auto_increment comment 'id', member_id bigint comment 'member_id', create_time datetime comment 'create_time', change_count int comment '改变的值(正负计数)', note varchar(0) comment '备注', source_type tinyint comment '积分来源[0-购物,1-管理员修改]', primary key (id) ); alter table ums_growth_change_history comment '成长值变化历史记录'; /*==============================================================*/ /* Table: ums_integration_change_history */ /*==============================================================*/ create table ums_integration_change_history ( id bigint not null auto_increment comment 'id', member_id bigint comment 'member_id', create_time datetime comment 'create_time', change_count int comment '变化的值', note varchar(255) comment '备注', source_tyoe tinyint comment '来源[0->购物;1->管理员修改;2->活动]', primary key (id) ); alter table ums_integration_change_history comment '积分变化历史记录'; /*==============================================================*/ /* Table: ums_member */ /*==============================================================*/ create table ums_member ( id bigint not null auto_increment comment 'id', level_id bigint comment '会员等级id', username char(64) comment '用户名', password varchar(64) comment '密码', nickname varchar(64) comment '昵称', mobile varchar(20) comment '手机号码', email varchar(64) comment '邮箱', header varchar(500) comment '头像', gender tinyint comment '性别', birth date comment '生日', city varchar(500) comment '所在城市', job varchar(255) comment '职业', sign varchar(255) comment '个性签名', source_type tinyint comment '用户来源', integration int comment '积分', growth int comment '成长值', status tinyint comment '启用状态', create_time datetime comment '注册时间', primary key (id) ); alter table ums_member comment '会员'; /*==============================================================*/ /* Table: ums_member_collect_spu */ /*==============================================================*/ create table ums_member_collect_spu ( id bigint not null comment 'id', member_id bigint comment '会员id', spu_id bigint comment 'spu_id', spu_name varchar(500) comment 'spu_name', spu_img varchar(500) comment 'spu_img', create_time datetime comment 'create_time', primary key (id) ); alter table ums_member_collect_spu comment '会员收藏的商品'; /*==============================================================*/ /* Table: ums_member_collect_subject */ /*==============================================================*/ create table ums_member_collect_subject ( id bigint not null auto_increment comment 'id', subject_id bigint comment 'subject_id', subject_name varchar(255) comment 'subject_name', subject_img varchar(500) comment 'subject_img', subject_urll varchar(500) comment '活动url', primary key (id) ); alter table ums_member_collect_subject comment '会员收藏的专题活动'; /*==============================================================*/ /* Table: ums_member_level */ /*==============================================================*/ create table ums_member_level ( id bigint not null auto_increment comment 'id', name varchar(100) comment '等级名称', growth_point int comment '等级需要的成长值', default_status tinyint comment '是否为默认等级[0->不是;1->是]', free_freight_point decimal(18,4) comment '免运费标准', comment_growth_point int comment '每次评价获取的成长值', priviledge_free_freight tinyint comment '是否有免邮特权', priviledge_member_price tinyint comment '是否有会员价格特权', priviledge_birthday tinyint comment '是否有生日特权', note varchar(255) comment '备注', primary key (id) ); alter table ums_member_level comment '会员等级'; /*==============================================================*/ /* Table: ums_member_login_log */ /*==============================================================*/ create table ums_member_login_log ( id bigint not null auto_increment comment 'id', member_id bigint comment 'member_id', create_time datetime comment '创建时间', ip varchar(64) comment 'ip', city varchar(64) comment 'city', login_type tinyint(1) comment '登录类型[1-web,2-app]', primary key (id) ); alter table ums_member_login_log comment '会员登录记录'; /*==============================================================*/ /* Table: ums_member_receive_address */ /*==============================================================*/ create table ums_member_receive_address ( id bigint not null auto_increment comment 'id', member_id bigint comment 'member_id', name varchar(255) comment '收货人姓名', phone varchar(64) comment '电话', post_code varchar(64) comment '邮政编码', province varchar(100) comment '省份/直辖市', city varchar(100) comment '城市', region varchar(100) comment '区', detail_address varchar(255) comment '详细地址(街道)', areacode varchar(15) comment '省市区代码', default_status tinyint(1) comment '是否默认', primary key (id) ); alter table ums_member_receive_address comment '会员收货地址'; /*==============================================================*/ /* Table: ums_member_statistics_info */ /*==============================================================*/ create table ums_member_statistics_info ( id bigint not null auto_increment comment 'id', member_id bigint comment '会员id', consume_amount decimal(18,4) comment '累计消费金额', coupon_amount decimal(18,4) comment '累计优惠金额', order_count int comment '订单数量', coupon_count int comment '优惠券数量', comment_count int comment '评价数', return_order_count int comment '退货数量', login_count int comment '登录次数', attend_count int comment '关注数量', fans_count int comment '粉丝数量', collect_product_count int comment '收藏的商品数量', collect_subject_count int comment '收藏的专题活动数量', collect_comment_count int comment '收藏的评论数量', invite_friend_count int comment '邀请的朋友数量', primary key (id) ); alter table ums_member_statistics_info comment '会员统计信息';
(5)数据库gulimall_wms(仓储服务),执行sql文件 gulimall-wms.sql
drop table if exists wms_purchase; drop table if exists wms_purchase_detail; drop table if exists wms_ware_info; drop table if exists wms_ware_order_task; drop table if exists wms_ware_order_task_detail; drop table if exists wms_ware_sku; /*==============================================================*/ /* Table: wms_purchase */ /*==============================================================*/ create table wms_purchase ( id bigint not null auto_increment comment '采购单id', assignee_id bigint comment '采购人id', assignee_name varchar(255) comment '采购人名', phone char(13) comment '联系方式', priority int(4) comment '优先级', status int(4) comment '状态', ware_id bigint comment '仓库id', amount decimal(18,4) comment '总金额', create_time datetime comment '创建日期', update_time datetime comment '更新日期', primary key (id) ); alter table wms_purchase comment '采购信息'; /*==============================================================*/ /* Table: wms_purchase_detail */ /*==============================================================*/ create table wms_purchase_detail ( id bigint not null auto_increment, purchase_id bigint comment '采购单id', sku_id bigint comment '采购商品id', sku_num int comment '采购数量', sku_price decimal(18,4) comment '采购金额', ware_id bigint comment '仓库id', status int comment '状态[0新建,1已分配,2正在采购,3已完成,4采购失败]', primary key (id) ); /*==============================================================*/ /* Table: wms_ware_info */ /*==============================================================*/ create table wms_ware_info ( id bigint not null auto_increment comment 'id', name varchar(255) comment '仓库名', address varchar(255) comment '仓库地址', areacode varchar(20) comment '区域编码', primary key (id) ); alter table wms_ware_info comment '仓库信息'; /*==============================================================*/ /* Table: wms_ware_order_task */ /*==============================================================*/ create table wms_ware_order_task ( id bigint not null auto_increment comment 'id', order_id bigint comment 'order_id', order_sn varchar(255) comment 'order_sn', consignee varchar(100) comment '收货人', consignee_tel char(15) comment '收货人电话', delivery_address varchar(500) comment '配送地址', order_comment varchar(200) comment '订单备注', payment_way tinyint(1) comment '付款方式【 1:在线付款 2:货到付款】', task_status tinyint(2) comment '任务状态', order_body varchar(255) comment '订单描述', tracking_no char(30) comment '物流单号', create_time datetime comment 'create_time', ware_id bigint comment '仓库id', task_comment varchar(500) comment '工作单备注', primary key (id) ); alter table wms_ware_order_task comment '库存工作单'; /*==============================================================*/ /* Table: wms_ware_order_task_detail */ /*==============================================================*/ create table wms_ware_order_task_detail ( id bigint not null auto_increment comment 'id', sku_id bigint comment 'sku_id', sku_name varchar(255) comment 'sku_name', sku_num int comment '购买个数', task_id bigint comment '工作单id', primary key (id) ); alter table wms_ware_order_task_detail comment '库存工作单'; /*==============================================================*/ /* Table: wms_ware_sku */ /*==============================================================*/ create table wms_ware_sku ( id bigint not null auto_increment comment 'id', sku_id bigint comment 'sku_id', ware_id bigint comment '仓库id', stock int comment '库存数', sku_name varchar(200) comment 'sku_name', stock_locked int comment '锁定库存', primary key (id) ); alter table wms_ware_sku comment '商品库存';
6、搭建人人开源管理系统——后端
1、clone 人人开源 https://gitee.com/renrenio
(1)克隆到本地
git clone https://gitee.com/renrenio/renren-fast-vue.git
git clone https://gitee.com/renrenio/renren-fast.git
2、搭建renren-fast后端开发环境
(1)将拷贝下来的"renren-fast"删除".git"后,拷贝到"gulimall"工程根目录,然后将它作为gulimall的一个module
"renren-fast-vue"的".git"也删除掉
(2)将"renren-fast"作为module加入gulimall总项目中
(3)创建"gulimall_admin"数据库
创建“gulimall_admin”的数据库,然后执行“renren-fast/db/mysql.sql”中的SQl脚本,数据库脚本信息如下:
-- 菜单 CREATE TABLE `sys_menu` ( `menu_id` bigint NOT NULL AUTO_INCREMENT, `parent_id` bigint COMMENT '父菜单ID,一级菜单为0', `name` varchar(50) COMMENT '菜单名称', `url` varchar(200) COMMENT '菜单URL', `perms` varchar(500) COMMENT '授权(多个用逗号分隔,如:user:list,user:create)', `type` int COMMENT '类型 0:目录 1:菜单 2:按钮', `icon` varchar(50) COMMENT '菜单图标', `order_num` int COMMENT '排序', PRIMARY KEY (`menu_id`) ) ENGINE=`InnoDB` DEFAULT CHARACTER SET utf8mb4 COMMENT='菜单管理'; -- 系统用户 CREATE TABLE `sys_user` ( `user_id` bigint NOT NULL AUTO_INCREMENT, `username` varchar(50) NOT NULL COMMENT '用户名', `password` varchar(100) COMMENT '密码', `salt` varchar(20) COMMENT '盐', `email` varchar(100) COMMENT '邮箱', `mobile` varchar(100) COMMENT '手机号', `status` tinyint COMMENT '状态 0:禁用 1:正常', `create_user_id` bigint(20) COMMENT '创建者ID', `create_time` datetime COMMENT '创建时间', PRIMARY KEY (`user_id`), UNIQUE INDEX (`username`) ) ENGINE=`InnoDB` DEFAULT CHARACTER SET utf8mb4 COMMENT='系统用户'; -- 系统用户Token CREATE TABLE `sys_user_token` ( `user_id` bigint(20) NOT NULL, `token` varchar(100) NOT NULL COMMENT 'token', `expire_time` datetime DEFAULT NULL COMMENT '过期时间', `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`user_id`), UNIQUE KEY `token` (`token`) ) ENGINE=`InnoDB` DEFAULT CHARACTER SET utf8mb4 COMMENT='系统用户Token'; -- 系统验证码 CREATE TABLE `sys_captcha` ( `uuid` char(36) NOT NULL COMMENT 'uuid', `code` varchar(6) NOT NULL COMMENT '验证码', `expire_time` datetime DEFAULT NULL COMMENT '过期时间', PRIMARY KEY (`uuid`) ) ENGINE=`InnoDB` DEFAULT CHARACTER SET utf8mb4 COMMENT='系统验证码'; -- 角色 CREATE TABLE `sys_role` ( `role_id` bigint NOT NULL AUTO_INCREMENT, `role_name` varchar(100) COMMENT '角色名称', `remark` varchar(100) COMMENT '备注', `create_user_id` bigint(20) COMMENT '创建者ID', `create_time` datetime COMMENT '创建时间', PRIMARY KEY (`role_id`) ) ENGINE=`InnoDB` DEFAULT CHARACTER SET utf8mb4 COMMENT='角色'; -- 用户与角色对应关系 CREATE TABLE `sys_user_role` ( `id` bigint NOT NULL AUTO_INCREMENT, `user_id` bigint COMMENT '用户ID', `role_id` bigint COMMENT '角色ID', PRIMARY KEY (`id`) ) ENGINE=`InnoDB` DEFAULT CHARACTER SET utf8mb4 COMMENT='用户与角色对应关系'; -- 角色与菜单对应关系 CREATE TABLE `sys_role_menu` ( `id` bigint NOT NULL AUTO_INCREMENT, `role_id` bigint COMMENT '角色ID', `menu_id` bigint COMMENT '菜单ID', PRIMARY KEY (`id`) ) ENGINE=`InnoDB` DEFAULT CHARACTER SET utf8mb4 COMMENT='角色与菜单对应关系'; -- 系统配置信息 CREATE TABLE `sys_config` ( `id` bigint NOT NULL AUTO_INCREMENT, `param_key` varchar(50) COMMENT 'key', `param_value` varchar(2000) COMMENT 'value', `status` tinyint DEFAULT 1 COMMENT '状态 0:隐藏 1:显示', `remark` varchar(500) COMMENT '备注', PRIMARY KEY (`id`), UNIQUE INDEX (`param_key`) ) ENGINE=`InnoDB` DEFAULT CHARACTER SET utf8mb4 COMMENT='系统配置信息表'; -- 系统日志 CREATE TABLE `sys_log` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `username` varchar(50) COMMENT '用户名', `operation` varchar(50) COMMENT '用户操作', `method` varchar(200) COMMENT '请求方法', `params` varchar(5000) COMMENT '请求参数', `time` bigint NOT NULL COMMENT '执行时长(毫秒)', `ip` varchar(64) COMMENT 'IP地址', `create_date` datetime COMMENT '创建时间', PRIMARY KEY (`id`) ) ENGINE=`InnoDB` DEFAULT CHARACTER SET utf8mb4 COMMENT='系统日志'; -- 文件上传 CREATE TABLE `sys_oss` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `url` varchar(200) COMMENT 'URL地址', `create_date` datetime COMMENT '创建时间', PRIMARY KEY (`id`) ) ENGINE=`InnoDB` DEFAULT CHARACTER SET utf8mb4 COMMENT='文件上传'; -- 定时任务 CREATE TABLE `schedule_job` ( `job_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '任务id', `bean_name` varchar(200) DEFAULT NULL COMMENT 'spring bean名称', `params` varchar(2000) DEFAULT NULL COMMENT '参数', `cron_expression` varchar(100) DEFAULT NULL COMMENT 'cron表达式', `status` tinyint(4) DEFAULT NULL COMMENT '任务状态 0:正常 1:暂停', `remark` varchar(255) DEFAULT NULL COMMENT '备注', `create_time` datetime DEFAULT NULL COMMENT '创建时间', PRIMARY KEY (`job_id`) ) ENGINE=`InnoDB` DEFAULT CHARACTER SET utf8mb4 COMMENT='定时任务'; -- 定时任务日志 CREATE TABLE `schedule_job_log` ( `log_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '任务日志id', `job_id` bigint(20) NOT NULL COMMENT '任务id', `bean_name` varchar(200) DEFAULT NULL COMMENT 'spring bean名称', `params` varchar(2000) DEFAULT NULL COMMENT '参数', `status` tinyint(4) NOT NULL COMMENT '任务状态 0:成功 1:失败', `error` varchar(2000) DEFAULT NULL COMMENT '失败信息', `times` int(11) NOT NULL COMMENT '耗时(单位:毫秒)', `create_time` datetime DEFAULT NULL COMMENT '创建时间', PRIMARY KEY (`log_id`), KEY `job_id` (`job_id`) ) ENGINE=`InnoDB` DEFAULT CHARACTER SET utf8mb4 COMMENT='定时任务日志'; -- 用户表 CREATE TABLE `tb_user` ( `user_id` bigint NOT NULL AUTO_INCREMENT, `username` varchar(50) NOT NULL COMMENT '用户名', `mobile` varchar(20) NOT NULL COMMENT '手机号', `password` varchar(64) COMMENT '密码', `create_time` datetime COMMENT '创建时间', PRIMARY KEY (`user_id`), UNIQUE INDEX (`username`) ) ENGINE=`InnoDB` DEFAULT CHARACTER SET utf8mb4 COMMENT='用户'; -- 初始数据 INSERT INTO `sys_user` (`user_id`, `username`, `password`, `salt`, `email`, `mobile`, `status`, `create_user_id`, `create_time`) VALUES ('1', 'admin', '9ec9750e709431dad22365cabc5c625482e574c74adaebba7dd02f1129e4ce1d', 'YzcmCZNvbXocrsz9dm8e', 'root@renren.io', '13612345678', '1', '1', '2016-11-11 11:11:11'); INSERT INTO `sys_menu`(`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES (1, 0, '系统管理', NULL, NULL, 0, 'system', 0); INSERT INTO `sys_menu`(`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES (2, 1, '管理员列表', 'sys/user', NULL, 1, 'admin', 1); INSERT INTO `sys_menu`(`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES (3, 1, '角色管理', 'sys/role', NULL, 1, 'role', 2); INSERT INTO `sys_menu`(`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES (4, 1, '菜单管理', 'sys/menu', NULL, 1, 'menu', 3); INSERT INTO `sys_menu`(`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES (5, 1, 'SQL监控', 'http://localhost:8080/renren-fast/druid/sql.html', NULL, 1, 'sql', 4); INSERT INTO `sys_menu`(`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES (6, 1, '定时任务', 'job/schedule', NULL, 1, 'job', 5); INSERT INTO `sys_menu`(`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES (7, 6, '查看', NULL, 'sys:schedule:list,sys:schedule:info', 2, NULL, 0); INSERT INTO `sys_menu`(`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES (8, 6, '新增', NULL, 'sys:schedule:save', 2, NULL, 0); INSERT INTO `sys_menu`(`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES (9, 6, '修改', NULL, 'sys:schedule:update', 2, NULL, 0); INSERT INTO `sys_menu`(`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES (10, 6, '删除', NULL, 'sys:schedule:delete', 2, NULL, 0); INSERT INTO `sys_menu`(`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES (11, 6, '暂停', NULL, 'sys:schedule:pause', 2, NULL, 0); INSERT INTO `sys_menu`(`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES (12, 6, '恢复', NULL, 'sys:schedule:resume', 2, NULL, 0); INSERT INTO `sys_menu`(`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES (13, 6, '立即执行', NULL, 'sys:schedule:run', 2, NULL, 0); INSERT INTO `sys_menu`(`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES (14, 6, '日志列表', NULL, 'sys:schedule:log', 2, NULL, 0); INSERT INTO `sys_menu`(`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES (15, 2, '查看', NULL, 'sys:user:list,sys:user:info', 2, NULL, 0); INSERT INTO `sys_menu`(`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES (16, 2, '新增', NULL, 'sys:user:save,sys:role:select', 2, NULL, 0); INSERT INTO `sys_menu`(`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES (17, 2, '修改', NULL, 'sys:user:update,sys:role:select', 2, NULL, 0); INSERT INTO `sys_menu`(`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES (18, 2, '删除', NULL, 'sys:user:delete', 2, NULL, 0); INSERT INTO `sys_menu`(`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES (19, 3, '查看', NULL, 'sys:role:list,sys:role:info', 2, NULL, 0); INSERT INTO `sys_menu`(`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES (20, 3, '新增', NULL, 'sys:role:save,sys:menu:list', 2, NULL, 0); INSERT INTO `sys_menu`(`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES (21, 3, '修改', NULL, 'sys:role:update,sys:menu:list', 2, NULL, 0); INSERT INTO `sys_menu`(`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES (22, 3, '删除', NULL, 'sys:role:delete', 2, NULL, 0); INSERT INTO `sys_menu`(`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES (23, 4, '查看', NULL, 'sys:menu:list,sys:menu:info', 2, NULL, 0); INSERT INTO `sys_menu`(`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES (24, 4, '新增', NULL, 'sys:menu:save,sys:menu:select', 2, NULL, 0); INSERT INTO `sys_menu`(`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES (25, 4, '修改', NULL, 'sys:menu:update,sys:menu:select', 2, NULL, 0); INSERT INTO `sys_menu`(`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES (26, 4, '删除', NULL, 'sys:menu:delete', 2, NULL, 0); INSERT INTO `sys_menu`(`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES (27, 1, '参数管理', 'sys/config', 'sys:config:list,sys:config:info,sys:config:save,sys:config:update,sys:config:delete', 1, 'config', 6); INSERT INTO `sys_menu`(`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES (29, 1, '系统日志', 'sys/log', 'sys:log:list', 1, 'log', 7); INSERT INTO `sys_menu`(`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES (30, 1, '文件上传', 'oss/oss', 'sys:oss:all', 1, 'oss', 6); INSERT INTO `sys_config` (`param_key`, `param_value`, `status`, `remark`) VALUES ('CLOUD_STORAGE_CONFIG_KEY', '{\"aliyunAccessKeyId\":\"\",\"aliyunAccessKeySecret\":\"\",\"aliyunBucketName\":\"\",\"aliyunDomain\":\"\",\"aliyunEndPoint\":\"\",\"aliyunPrefix\":\"\",\"qcloudBucketName\":\"\",\"qcloudDomain\":\"\",\"qcloudPrefix\":\"\",\"qcloudSecretId\":\"\",\"qcloudSecretKey\":\"\",\"qiniuAccessKey\":\"NrgMfABZxWLo5B-YYSjoE8-AZ1EISdi1Z3ubLOeZ\",\"qiniuBucketName\":\"ios-app\",\"qiniuDomain\":\"http://7xqbwh.dl1.z0.glb.clouddn.com\",\"qiniuPrefix\":\"upload\",\"qiniuSecretKey\":\"uIwJHevMRWU0VLxFvgy0tAcOdGqasdtVlJkdy6vV\",\"type\":1}', '0', '云存储配置信息'); INSERT INTO `schedule_job` (`bean_name`, `params`, `cron_expression`, `status`, `remark`, `create_time`) VALUES ('testTask', 'renren', '0 0/30 * * * ?', '0', '参数测试', now()); -- 账号:13612345678 密码:admin INSERT INTO `tb_user` (`username`, `mobile`, `password`, `create_time`) VALUES ('mark', '13612345678', '8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918', '2017-03-23 22:37:41'); -- quartz自带表结构 CREATE TABLE QRTZ_JOB_DETAILS( SCHED_NAME VARCHAR(120) NOT NULL, JOB_NAME VARCHAR(200) NOT NULL, JOB_GROUP VARCHAR(200) NOT NULL, DESCRIPTION VARCHAR(250) NULL, JOB_CLASS_NAME VARCHAR(250) NOT NULL, IS_DURABLE VARCHAR(1) NOT NULL, IS_NONCONCURRENT VARCHAR(1) NOT NULL, IS_UPDATE_DATA VARCHAR(1) NOT NULL, REQUESTS_RECOVERY VARCHAR(1) NOT NULL, JOB_DATA BLOB NULL, PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE QRTZ_TRIGGERS ( SCHED_NAME VARCHAR(120) NOT NULL, TRIGGER_NAME VARCHAR(200) NOT NULL, TRIGGER_GROUP VARCHAR(200) NOT NULL, JOB_NAME VARCHAR(200) NOT NULL, JOB_GROUP VARCHAR(200) NOT NULL, DESCRIPTION VARCHAR(250) NULL, NEXT_FIRE_TIME BIGINT(13) NULL, PREV_FIRE_TIME BIGINT(13) NULL, PRIORITY INTEGER NULL, TRIGGER_STATE VARCHAR(16) NOT NULL, TRIGGER_TYPE VARCHAR(8) NOT NULL, START_TIME BIGINT(13) NOT NULL, END_TIME BIGINT(13) NULL, CALENDAR_NAME VARCHAR(200) NULL, MISFIRE_INSTR SMALLINT(2) NULL, JOB_DATA BLOB NULL, PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP)) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE QRTZ_SIMPLE_TRIGGERS ( SCHED_NAME VARCHAR(120) NOT NULL, TRIGGER_NAME VARCHAR(200) NOT NULL, TRIGGER_GROUP VARCHAR(200) NOT NULL, REPEAT_COUNT BIGINT(7) NOT NULL, REPEAT_INTERVAL BIGINT(12) NOT NULL, TIMES_TRIGGERED BIGINT(10) NOT NULL, PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE QRTZ_CRON_TRIGGERS ( SCHED_NAME VARCHAR(120) NOT NULL, TRIGGER_NAME VARCHAR(200) NOT NULL, TRIGGER_GROUP VARCHAR(200) NOT NULL, CRON_EXPRESSION VARCHAR(120) NOT NULL, TIME_ZONE_ID VARCHAR(80), PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE QRTZ_SIMPROP_TRIGGERS ( SCHED_NAME VARCHAR(120) NOT NULL, TRIGGER_NAME VARCHAR(200) NOT NULL, TRIGGER_GROUP VARCHAR(200) NOT NULL, STR_PROP_1 VARCHAR(512) NULL, STR_PROP_2 VARCHAR(512) NULL, STR_PROP_3 VARCHAR(512) NULL, INT_PROP_1 INT NULL, INT_PROP_2 INT NULL, LONG_PROP_1 BIGINT NULL, LONG_PROP_2 BIGINT NULL, DEC_PROP_1 NUMERIC(13,4) NULL, DEC_PROP_2 NUMERIC(13,4) NULL, BOOL_PROP_1 VARCHAR(1) NULL, BOOL_PROP_2 VARCHAR(1) NULL, PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE QRTZ_BLOB_TRIGGERS ( SCHED_NAME VARCHAR(120) NOT NULL, TRIGGER_NAME VARCHAR(200) NOT NULL, TRIGGER_GROUP VARCHAR(200) NOT NULL, BLOB_DATA BLOB NULL, PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), INDEX (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP), FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE QRTZ_CALENDARS ( SCHED_NAME VARCHAR(120) NOT NULL, CALENDAR_NAME VARCHAR(200) NOT NULL, CALENDAR BLOB NOT NULL, PRIMARY KEY (SCHED_NAME,CALENDAR_NAME)) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS ( SCHED_NAME VARCHAR(120) NOT NULL, TRIGGER_GROUP VARCHAR(200) NOT NULL, PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP)) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE QRTZ_FIRED_TRIGGERS ( SCHED_NAME VARCHAR(120) NOT NULL, ENTRY_ID VARCHAR(95) NOT NULL, TRIGGER_NAME VARCHAR(200) NOT NULL, TRIGGER_GROUP VARCHAR(200) NOT NULL, INSTANCE_NAME VARCHAR(200) NOT NULL, FIRED_TIME BIGINT(13) NOT NULL, SCHED_TIME BIGINT(13) NOT NULL, PRIORITY INTEGER NOT NULL, STATE VARCHAR(16) NOT NULL, JOB_NAME VARCHAR(200) NULL, JOB_GROUP VARCHAR(200) NULL, IS_NONCONCURRENT VARCHAR(1) NULL, REQUESTS_RECOVERY VARCHAR(1) NULL, PRIMARY KEY (SCHED_NAME,ENTRY_ID)) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE QRTZ_SCHEDULER_STATE ( SCHED_NAME VARCHAR(120) NOT NULL, INSTANCE_NAME VARCHAR(200) NOT NULL, LAST_CHECKIN_TIME BIGINT(13) NOT NULL, CHECKIN_INTERVAL BIGINT(13) NOT NULL, PRIMARY KEY (SCHED_NAME,INSTANCE_NAME)) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE QRTZ_LOCKS ( SCHED_NAME VARCHAR(120) NOT NULL, LOCK_NAME VARCHAR(40) NOT NULL, PRIMARY KEY (SCHED_NAME,LOCK_NAME)) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE INDEX IDX_QRTZ_J_REQ_RECOVERY ON QRTZ_JOB_DETAILS(SCHED_NAME,REQUESTS_RECOVERY); CREATE INDEX IDX_QRTZ_J_GRP ON QRTZ_JOB_DETAILS(SCHED_NAME,JOB_GROUP); CREATE INDEX IDX_QRTZ_T_J ON QRTZ_TRIGGERS(SCHED_NAME,JOB_NAME,JOB_GROUP); CREATE INDEX IDX_QRTZ_T_JG ON QRTZ_TRIGGERS(SCHED_NAME,JOB_GROUP); CREATE INDEX IDX_QRTZ_T_C ON QRTZ_TRIGGERS(SCHED_NAME,CALENDAR_NAME); CREATE INDEX IDX_QRTZ_T_G ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_GROUP); CREATE INDEX IDX_QRTZ_T_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_STATE); CREATE INDEX IDX_QRTZ_T_N_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP,TRIGGER_STATE); CREATE INDEX IDX_QRTZ_T_N_G_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_GROUP,TRIGGER_STATE); CREATE INDEX IDX_QRTZ_T_NEXT_FIRE_TIME ON QRTZ_TRIGGERS(SCHED_NAME,NEXT_FIRE_TIME); CREATE INDEX IDX_QRTZ_T_NFT_ST ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_STATE,NEXT_FIRE_TIME); CREATE INDEX IDX_QRTZ_T_NFT_MISFIRE ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME); CREATE INDEX IDX_QRTZ_T_NFT_ST_MISFIRE ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_STATE); CREATE INDEX IDX_QRTZ_T_NFT_ST_MISFIRE_GRP ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_GROUP,TRIGGER_STATE); CREATE INDEX IDX_QRTZ_FT_TRIG_INST_NAME ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,INSTANCE_NAME); CREATE INDEX IDX_QRTZ_FT_INST_JOB_REQ_RCVRY ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,INSTANCE_NAME,REQUESTS_RECOVERY); CREATE INDEX IDX_QRTZ_FT_J_G ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,JOB_NAME,JOB_GROUP); CREATE INDEX IDX_QRTZ_FT_JG ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,JOB_GROUP); CREATE INDEX IDX_QRTZ_FT_T_G ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP); CREATE INDEX IDX_QRTZ_FT_TG ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,TRIGGER_GROUP);
(4)修改“application-dev.yml”文件,默认为dev环境,修改连接mysql的url和用户名密码
注意:由于是前后端分离的项目,需要搭建前端项目环境才行
7、搭建人人开源管理系统——前端
1、vscode打开renren-fast-vue
注意:
(1)需要以管理员身份运行vscode
(2)请先参考谷粒商城分布式基础(二)—— 环境搭建 “7、vue 开发环境搭建” 部分搭建前端vue开发环境,主要包含nodejs的安装以及npm和cnpm的设置
2、项目终端npm install下载项目所需依赖组件
npm install
下载过程过,出现以下错误
原因:缺少python环境,需要安装编译环境
解决办法:添加Windows下node的Python的编译环境
方法1:npm install --global --production windows-build-tools
方法2:自行下载
npm install --python=python2.7 #先下载
npm config set python python2.7 #再设置环境
注意:其间,我用方法1处理的时候一直卡在绿色文字"Successfully installed Visual Studio Build Tools."
解决办法:
(a)保证你安装了Visual Studio
(b)在资源管理中搜索%temp%
,window系统按住win按键直接搜索就可以
(c)在搜索到的文件夹%temp%
中创建dd_client_.log
文件,并且填入内容Closing installer. Return code: 3010.
electron备忘录:
最后再次执行方式1的命令之后,就是上面成功的效果了
3、运行前端项目
npm run dev
启动成功,访问地址:http://localhost:8001
注意:renren-fast也要启动
登录以下,账号:admin 密码:admin
8、逆向工程搭建和微服务模块构建
1、clone 人人开源 https://gitee.com/renrenio
(1)克隆到本地
git clone https://gitee.com/renrenio/renren-generator.git
(2)删除".git"后,将该项目放置到"gulimall"的根路径下
2、搭建逆向工程环境 (1)将"renren-generator"作为module加入gulimall总项目中
(2)修改application.yml配置文件
修改mysql的连接信息,这里先以数据库gulimal_pms为示例
(3)修改generator.properties配置文件
修改mysql的连接信息,这里先以数据库gulimal_pms为示例
(4)启动项目
访问:http://localhost/
点击“renren-fast” ,能够看到他将数据库 gulimal_pms 的所有表都列举出来了
选择所有的表,然后点击“生成代码”,将下载的"renren.zip"解压后取出main文件,放置到"gulimall-product"项目的main目录中
放进去之后,我们发现idea很多飘红,因为很多依赖和工具包缺失,下面我们构建新的module gulimall-common来解决该问题
3、创建公共模块gulimall-common
为了解决上面的包缺失问题,新建一个Module
(1)New Module ——> Maven(选择自己的jdk1.8)——> 下一步
在gulimall主项目的pom.xml中也自动添加了<module>gulimall-common</module>
(2)修改gulimall-common的pom.xml文件我们把每个微服务里公共的类和依赖放到common里
<?xml version="1.0" encoding="UTF-8"?>
<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">
<parent>
<artifactId>gulimall</artifactId>
<groupId>com.atguigu.gulimall</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>gulimall-common</artifactId>
<description>每一个微服务公共的依赖,bean,工具类等</description>
<dependencies>
<!-- mybatis-plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.8</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpcore -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.4.13</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
</dependencies>
</project>
(4)gulimall-product的pom.xml中分别引入gulimall-common作为依赖
分别修改gulimall-coupon/member/order/ware/product 的pom.xml,加上如下依赖
<dependency>
<groupId>com.atguigu.gulimall</groupId>
<artifactId>gulimall-common</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
(5)renren-fast----utils包下的Query和PageUtils、R、Constant复制到common项目的java/com.atguigu.common.utils下
(6)把@RequiresPermissions这些注解掉,因为是shiro的
(7)复制renren-fast中的xss包下的HTMLFilter和SQLFilter粘贴到common的java/com.atguigu.common目录下
还复制了exception包下的RRException,对应的位置关系自己观察一下就行
(8)注释掉product项目下类中的//import org.apache.shiro.authz.annotation.RequiresPermissions;,他是shiro的东西
(9)注释renren-generator\src\main\resources\template/Controller中所有的
# @RequiresPermissions。
# import org.apache.shiro.authz.annotation.RequiresPermissions;
总之什么报错就去renren-fast里面找。
4、测试整合商品服务gulimall-product里的mybatisplus (1)在common的pom.xml中导入 <!-- 数据库驱动 https://mvnrepository.com/artifact/mysql/mysql-connector-java --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.17</version> </dependency> <!--tomcat里一般都带,Tomcat有带,所以provided--> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> <scope>provided</scope> </dependency>
(2)调整以下gulimall-common的文件
(3)在guilimall-product项目的resources目录下新建application.yml
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://192.168.56.10:3306/gulimall_pms?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username: root
password: root
# MapperScan
# sql映射文件位置
mybatis-plus:
mapper-locations: classpath:/mapper/**/*.xml
global-config:
db-config:
id-type: auto
server:
port: 10000
(4)然后在主启动类上加上注解@MapperScan()
package com.atguigu.gulimall.product;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@MapperScan("com.atguigu.gulimall.product.dao")
@SpringBootApplication
public class GulimallProductApplication {
public static void main(String[] args) {
SpringApplication.run(GulimallProductApplication.class, args);
}
}
(5)测试,先通过下面方法给数据库添加内容
package com.atguigu.gulimall.product;
import com.atguigu.gulimall.product.entity.BrandEntity;
import com.atguigu.gulimall.product.service.BrandService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class GulimallProductApplicationTests {
@Autowired
BrandService brandService;
@Test
void contextLoads() {
BrandEntity brandEntity = new BrandEntity();
brandEntity.setDescript("hello");
brandEntity.setName("华为");
brandService.save(brandEntity);
System.out.println("保存成功");
}
}
5、整合优惠券服务(gulimall-coupon)
(1)重新打开generator逆向工程,修改generator.properties
修改application.yml
(2)运行generator逆向工程,得到自动生成代码,把main放到gulimall-coupon的同级目录下
(3)gulimall-coupon的pom.xml文件添加gulimall-common依赖
<dependency>
<groupId>com.atguigu.gulimall</groupId>
<artifactId>gulimall-common</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
(4)新建gulimall-coupon的application.yml
spring:
datasource:
username: root
password: root
url: jdbc:mysql://192.168.56.10:3306/gulimall_sms?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
driver-class-name: com.mysql.cj.jdbc.Driver
mybatis-plus:
mapper-locations: classpath:/mapper/**/*.xml
global-config:
db-config:
id-type: auto
server:
port: 7000
(5)在主启动类上加上注解@MapperScan()
package com.atguigu.gulimall.coupon;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@MapperScan("com.atguigu.gulimall.coupon.dao")
@SpringBootApplication
public class GulimallCouponApplication {
public static void main(String[] args) {
SpringApplication.run(GulimallCouponApplication.class, args);
}
}
(6)测试
运行GulimallCouponApplication ,访问http://localhost:7000/coupon/coupon/list
{"msg":"success","code":0,"page":{"totalCount":0,"pageSize":10,"totalPage":0,"currPage":1,"list":[]}}
6、整合用户服务(gulimall-member) (1)重新打开generator逆向工程,修改generator.properties
修改application.yml
(2)运行generator逆向工程,得到自动生成代码,把main放到gulimall-member的同级目录下
(3)gulimall-member的pom.xml文件添加gulimall-common依赖
<dependency>
<groupId>com.atguigu.gulimall</groupId>
<artifactId>gulimall-common</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
(4)新建gulimall-member的application.yml
spring:
datasource:
username: root
password: root
url: jdbc:mysql://192.168.56.10:3306/gulimall_ums?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
driver-class-name: com.mysql.cj.jdbc.Driver
mybatis-plus:
mapper-locations: classpath:/mapper/**/*.xml
global-config:
db-config:
id-type: auto
server:
port: 8000
(5)在主启动类上加上注解@MapperScan()
package com.atguigu.gulimall.member;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@MapperScan("com.atguigu.gulimall.member.dao")
@SpringBootApplication
public class GulimallMemberApplication {
public static void main(String[] args) {
SpringApplication.run(GulimallMemberApplication.class, args);
}
}
(6)测试 运行GulimallMemberApplication ,访问 http://localhost:8000/member/growthchangehistory/list
{"msg":"success","code":0,"page":{"totalCount":0,"pageSize":10,"totalPage":0,"currPage":1,"list":[]}}
7、整合订单服务(gulimall-order) (1)重新打开generator逆向工程,修改generator.properties
修改application.yml
(2)运行generator逆向工程,得到自动生成代码,把main放到gulimall-order的同级目录下 (3)gulimall-order的pom.xml文件添加gulimall-common依赖
<dependency> <groupId>com.atguigu.gulimall</groupId> <artifactId>gulimall-common</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency>
(4)新建gulimall-order的application.yml spring: datasource: username: root password: root url: jdbc:mysql://192.168.56.10:3306/gulimall_oms?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai driver-class-name: com.mysql.cj.jdbc.Driver mybatis-plus: mapper-locations: classpath:/mapper/**/*.xml global-config: db-config: id-type: auto server: port: 9000
(5)在主启动类上加上注解@MapperScan()
package com.atguigu.gulimall.order;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@MapperScan("com.atguigu.gulimall.order.dao")
@SpringBootApplication
public class GulimallOrderApplication {
public static void main(String[] args) {
SpringApplication.run(GulimallOrderApplication.class, args);
}
}
(6)测试 运行GulimallOrderApplication,访问 http://localhost:9000/order/order/list
{"msg":"success","code":0,"page":{"totalCount":0,"pageSize":10,"totalPage":0,"currPage":1,"list":[]}}
8、整合仓储服务(gulimall-ware) (1)重新打开generator逆向工程,修改generator.properties
修改application.yml
(2)运行generator逆向工程,得到自动生成代码,把main放到gulimall-ware的同级目录下 (3)gulimall-ware的pom.xml文件添加gulimall-common依赖 <dependency> <groupId>com.atguigu.gulimall</groupId> <artifactId>gulimall-common</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> (4)新建gulimall-ware的application.yml spring: datasource: username: root password: root url: jdbc:mysql://192.168.56.10:3306/gulimall_wms?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai driver-class-name: com.mysql.cj.jdbc.Driver mybatis-plus: mapper-locations: classpath:/mapper/**/*.xml global-config: db-config: id-type: auto server: port: 11000 (5)在主启动类上加上注解@MapperScan()
package com.atguigu.gulimall.ware;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@MapperScan("com.atguigu.gulimall.ware.dao")
@SpringBootApplication
public class GulimallWareApplication {
public static void main(String[] args) {
SpringApplication.run(GulimallWareApplication.class, args);
}
}
(6)测试 运行GulimallWareApplication,访问 http://localhost:11000/ware/wareinfo/list
{"msg":"success","code":0,"page":{"totalCount":0,"pageSize":10,"totalPage":0,"currPage":1,"list":[]}}