# class1 **Repository Path**: OooWee_qlu/class1 ## Basic Information - **Project Name**: class1 - **Description**: Java课设ssssss - **Primary Language**: Java - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-08-29 - **Last Updated**: 2023-09-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # class1 #### 介绍 {**以下是 Gitee 平台说明,您可以替换此简介** Gitee 是 OSCHINA 推出的基于 Git 的代码托管平台(同时支持 SVN)。专为开发者提供稳定、高效、安全的云端软件开发协作平台 无论是个人、团队、或是企业,都能够用 Gitee 实现代码托管、项目管理、协作开发。企业项目请看 [https://gitee.com/enterprises](https://gitee.com/enterprises)} #### 软件架构 前端:vue+elementUI 后端:springBoot+myBatis 数据库:mysql8.0 缓存:redis 前端部署:nginx 服务器:centOS7 #### 安装教程 1. 将项目打包(war)放在网络服务器上运行 2. xxxx 3. xxxx #### 使用说明 1. 目前仅后端 2. xxxx 3. xxxx #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request ####项目介绍 扫码推广 返利 10% 二级分销 10%->5% 参与者:商家 分销人员 顾客 实施对象: 规则阈值:每个人可以具有 一级分销,二级分销,底层分销的三种不限次数的身份 对象行为:分销者分销,按照10%和5%返利 ####需求分析 分销系统需求分析: 需求: 用户在注册系统之后可以输入邀请人,邀请人与被邀请人形成绑定关系 用户可以在系统中付费购买商品,购买成功后,邀请人获得付费的10%作为佣金 二级邀请人可以获得用户付费的5%作为佣金 需求分析: 用户群体: 系统管理员、用户 实施对象: 用户 实施规则: 一级分销10%,二级分销5% 对象行为: 注册、登录、绑定邀请人、付费、查看账单 业务场景 用户注册:用户之前没有登陆或注册过本系统 已注册的不能重复注册 用户注册时,填写邀请人id,注册成功即绑定邀请人 用户登录:用户注册成功后,可以用用户名密码进行登录 用户付费:用户登录后,选定商品(需对接商品系统,本系统暂不支持), 缴纳费用,完成购买 分销功能在后台实现,用户在前端付费时无感知 用户查看账单:用户登录后,可查看自己的账单, 被邀请者的付费会以佣金形式结算到邀请用户的账单中 业务流程 用户注册——用户登录——用户付费——付费分销——计入账单 用户登录——用户分享——新用户登录——付费分销——计入账单 ####概要设计 分销系统概要设计 技术选型 前端:vue+elementUI 后端:springBoot+myBatis 数据库:mysql8.0 缓存:redis 前端部署:nginx 服务器:centOS7 开发工具:IDEA2019、mysql for windows、Navicat Premium 12、Hbuilder、VScode 开发规范 模块命名规范 接口命名规范 数据库表命名规范 接口开发代码规范 接口开发格式规范 数据库设计 用户表 用户id 用户登录名 用户登录密码 用户余额(单位为分) 裂变路径(用户1_用户2_用户3) 创建人 修改人 创建时间 修改时间 删除标志(1正常,2删除) 账单表 账单id 用户id(外键) 账单类型(1收入、2支出) 账单金额(单位为分) 账单说明 创建人 修改人 创建时间 修改时间 删除标志(1正常,2删除) 建表语句: CREATE TABLE `users` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID', `user_name` varchar(255) DEFAULT NULL COMMENT '用户名', `user_pwd` varchar(255) DEFAULT NULL COMMENT '密码', `user_balance` bigint(20) DEFAULT NULL COMMENT '用户余额(单位:分)', `fission_pathway` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '裂变路径', `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '1' COMMENT '删除标志(1代表存在 2代表删除)', `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间', `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '备注', PRIMARY KEY (`id`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=113 DEFAULT CHARSET=utf8mb4 COMMENT='用户表'; CREATE TABLE `bill` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID', `user_id` bigint(20) NOT NULL COMMENT '用户id', `bill_type` varchar(2) DEFAULT NULL COMMENT '账单类型(1收入,2支出)', `pay_money` int(10) DEFAULT NULL COMMENT '账单金额(单位为分)', `bill_node` varchar(255) DEFAULT NULL COMMENT '账单说明', `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '1' COMMENT '删除标志(1代表存在 2代表删除)', `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间', `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '备注', PRIMARY KEY (`id`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=113 DEFAULT CHARSET=utf8mb4 COMMENT='账单表'; 接口设计 注册接口 url:/user/v1/register 参数:Users 接口逻辑: 1.获取Users.id 2.判断id是否存在,存在则返回已注册,不存在则继续 3.将Users.pwd进行MD5加密 4.插入users表 5.获取参数Users.fissionPathway 6.判断fissionPathway是否为空,为空说明没有邀请人,直接返回成功 7.fissionPathway不为空,则查询users表,判断fissionPathway是否正确 8.如果fissionPathway不正确,直接返回成功 9.如果fissionPathway正确,回填fission_pathway字段,内容为fissionPathway+"_"+user.id 10.返回成功 登录接口 url:/user/v1/login 参数:Users 接口逻辑: 1.获取参数 2.将Users.pwd进行MD5加密 2.匹配Users.name和加密过的Users.pwd与数据库是否匹配 3.如果不匹配,直接返回失败 4.如果匹配,返回成功,返回值:Users 付费接口 url:/bill/v1/pay 参数:PayMoneyVo: Users.id money 接口逻辑: 1.接收参数 2.将money*100,变为分 3.通过Users.id获取裂变路径倒数2,3级 4.修改users表,更新余额字段 5.修改bill表,新增一条记录(充值) 当存在邀请人时 6.修改users表,给邀请人更新余额字段 7.修改bill表,给邀请人新增一条记录(佣金10%) 当存在上级邀请人时 8.修改users表,给上级邀请人更新余额字段 9.修改bill表,给上级邀请人新增一条记录(佣金5%) 10.返回成功 查询账单 url:/bill/v1/selectBill 参数: Users.id Page 接口逻辑: 1.获取参数 2.执行查询 3.分页查询sql: 4.返回值:SelectBillVo 用户名 账单类型(1收入、2支出) 账单金额 账单说明 创建时间 详细设计: Controller设计 UsersController 1.requestMapping:/user/v1/register 2.requestMapping:/user/v1/login BillController 1.requestMapping:/bill/v1/pay 2.requestMapping:/bill/v1/selectBill entity设计: UsersDo BillDo PayMoneyVo SelectBillVo Page dao设计(interface): UsersDao 1.getCountByUserId sql:select count(1) from users where user_id = ? 2.insertUsers sql:insert into users(user_name,user_pwd…………) values (?,?,?…………) 3.getInfoByUserId sql:select * from users where user_id = ? 4.updateUserById sql:update users set ……………… where user_id = ? 5.getLogin sql:select * from users where user_name = ? and user_pwd = ? BillDao 1.insertBill sql:insert into bill(………………) values (?,?,?,……) 2.getBillInfoByUserId sql:select * from users a,bill b where a.user_id = b.user_id and a.delflag = 1 and b.delflag = 1 and a.user_id = ? service设计(interface) UserService Users register(Users u) Users login(Users u) BillService int pay(PayMoneyVo p) SelectBillVo selectBill(Users u) serviceImpl设计 service的实现类 UserService Users register(Users u) Users login(Users u) BillService int pay(PayMoneyVo p) SelectBillVo selectBill(Users u) util Md5加密算法 mapper UsersMapper 1.getCountByUserId sql:select count(1) from users where user_id = ? 2.insertUsers sql:insert into users(user_name,user_pwd…………) values (?,?,?…………) 3.getInfoByUserId sql:select * from users where user_id = ? 4.updateUserById sql:update users set ……………… where user_id = ? 5.getLogin sql:select * from users where user_name = ? and user_pwd = ? BillMapper 1.insertBill sql:insert into bill(………………) values (?,?,?,……) 2.getBillInfoByUserId sql:select * from users a,bill b where a.user_id = b.user_id and a.delflag = 1 and b.delflag = 1 and a.user_id = ? 分销系统概要设计 技术选型 前端:vue+elementUI 后端:springBoot+myBatis 数据库:mysql8.0 缓存:redis 前端部署:nginx 服务器:centOS7 开发工具:IDEA2019、mysql for windows、Navicat Premium 12、Hbuilder、VScode 开发规范 模块命名规范 接口命名规范 数据库表命名规范 接口开发代码规范 接口开发格式规范 数据库设计 用户表 用户id 用户登录名 用户登录密码 用户余额(单位为分) 裂变路径(用户1_用户2_用户3) 创建人 修改人 创建时间 修改时间 删除标志(1正常,2删除) 账单表 账单id 用户id(外键) 账单类型(1收入、2支出) 账单金额(单位为分) 账单说明 创建人 修改人 创建时间 修改时间 删除标志(1正常,2删除) 建表语句: CREATE TABLE `users` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID', `user_name` varchar(255) DEFAULT NULL COMMENT '用户名', `user_pwd` varchar(255) DEFAULT NULL COMMENT '密码', `user_balance` bigint(20) DEFAULT NULL COMMENT '用户余额(单位:分)', `fission_pathway` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '裂变路径', `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '1' COMMENT '删除标志(1代表存在 2代表删除)', `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间', `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '备注', PRIMARY KEY (`id`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=113 DEFAULT CHARSET=utf8mb4 COMMENT='用户表'; CREATE TABLE `bill` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID', `user_id` bigint(20) NOT NULL COMMENT '用户id', `bill_type` varchar(2) DEFAULT NULL COMMENT '账单类型(1收入,2支出)', `pay_money` int(10) DEFAULT NULL COMMENT '账单金额(单位为分)', `bill_node` varchar(255) DEFAULT NULL COMMENT '账单说明', `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '1' COMMENT '删除标志(1代表存在 2代表删除)', `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间', `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '备注', PRIMARY KEY (`id`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=113 DEFAULT CHARSET=utf8mb4 COMMENT='账单表'; 接口设计 注册接口 url:/user/v1/register 参数:Users 接口逻辑: 1.获取Users.id 2.判断用户名是否存在,存在则返回已注册,不存在则继续 3.将Users.pwd进行MD5加密 4.插入users表 5.获取参数Users.fissionPathway 6.判断fissionPathway是否为空,为空说明没有邀请人,直接返回成功 7.fissionPathway不为空,则查询users表,判断fissionPathway是否正确 8.如果fissionPathway不正确,直接返回成功 9.如果fissionPathway正确,回填fission_pathway字段,内容为fissionPathway+"_"+user.id 10.重新获取自己的id 10.返回成功 登录接口 url:/user/v1/login 参数:Users 接口逻辑: 1.获取参数 2.将Users.pwd进行MD5加密 2.匹配Users.name和加密过的Users.pwd与数据库是否匹配 3.如果不匹配,直接返回失败 4.如果匹配,返回成功,返回值:Users 付费接口 url:/bill/v1/pay 参数:PayMoneyVo: Users.id money 接口逻辑: 1.接收参数 2.将money*100,变为分 3.通过Users.id获取裂变路径倒数2,3级 4.修改users表,更新余额字段 5.修改bill表,新增一条记录(充值) 当存在邀请人时 6.修改users表,给邀请人更新余额字段 7.修改bill表,给邀请人新增一条记录(佣金10%) 当存在上级邀请人时 8.修改users表,给上级邀请人更新余额字段 9.修改bill表,给上级邀请人新增一条记录(佣金5%) 10.返回成功 查询账单 url:/bill/v1/selectBill 参数: Users.id Page 接口逻辑: 1.获取参数 2.执行查询 3.分页查询sql: 4.返回值:SelectBillVo 用户名 账单类型(1收入、2支出) 账单金额 账单说明 创建时间 详细设计: Controller设计 UsersController 1.requestMapping:/user/v1/register 2.requestMapping:/user/v1/login BillController 1.requestMapping:/bill/v1/pay 2.requestMapping:/bill/v1/selectBill entity设计: UsersDo BillDo PayMoneyVo SelectBillVo Page dao设计(interface): UsersDao 1.getCountByUserId sql:select count(1) from users where user_id = ? 2.insertUsers sql:insert into users(user_name,user_pwd…………) values (?,?,?…………) 3.getInfoByUserId sql:select * from users where user_id = ? 4.updateUserById sql:update users set ……………… where user_id = ? 5.getLogin sql:select * from users where user_name = ? and user_pwd = ? BillDao 1.insertBill sql:insert into bill(………………) values (?,?,?,……) 2.getBillInfoByUserId sql:select * from users a,bill b where a.user_id = b.user_id and a.delflag = 1 and b.delflag = 1 and a.user_id = ? service设计(interface) UserService Users register(Users u) Users login(Users u) BillService int pay(PayMoneyVo p) SelectBillVo selectBill(Users u) serviceImpl设计 service的实现类 UserService Users register(Users u) Users login(Users u) BillService int pay(PayMoneyVo p) SelectBillVo selectBill(Users u) util Md5加密算法 mapper UsersMapper 1.getCountByUserId sql:select count(1) from users where user_id = ? 2.insertUsers sql:insert into users(user_name,user_pwd…………) values (?,?,?…………) 3.getInfoByUserId sql:select * from users where user_id = ? 4.updateUserById sql:update users set ……………… where user_id = ? 5.getLogin sql:select * from users where user_name = ? and user_pwd = ? BillMapper 1.insertBill sql:insert into bill(………………) values (?,?,?,……) 2.getBillInfoByUserId sql:select * from users a,bill b where a.user_id = b.user_id and a.delflag = 1 and b.delflag = 1 and a.user_id = ? 默认删掉第一个and #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)