# Money
**Repository Path**: sukels/Money
## Basic Information
- **Project Name**: Money
- **Description**: 动力金融网盈利宝:该平台是用于投资和理财的互联网金融项目,可以满足用户通过平台购买理财产品。其中平台主要模块分为多产品展示模块,支付模块,订单模块,个人中心模块,排行模块,第三方支付,其中产品详情模块可以展示产品的收益,风险等,用户可以自行选择。其整个项目采用SpringBoot框架分布式开发,采用Redis实现分布式缓存处理,采用shiro实现对其权限的控制,使用负载均衡Nginx实现高可用。
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 2
- **Forks**: 1
- **Created**: 2022-11-22
- **Last Updated**: 2025-03-17
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Money
#### 介绍
动力金融网盈利宝:该平台是用于投资和理财的互联网金融项目,可以满足用户通过平台购买理财产品。其中平台主要模块分为多产品展示模块,支付模块,订单模块,个人中心模块,排行模块,第三方支付,其中产品详情模块可以展示产品的收益,风险等,用户可以自行选择。其整个项目采用SpringBoot框架分布式开发,采用Redis实现分布式缓存处理,采用shiro实现对其权限的控制,使用负载均衡Nginx实现高可用。
#### 软件架构
SpringBoot、Mybatis、Dubbo、Zookeeper、Nginx、Mysql、bootstrap、jQuery、Thymeleaf、Redis
- 商品首页:主要功能是对订单、商品、商品属性、进行展示。
- 注册模块:主要功能是对新用户提供注册功能。
- 订单模块:主要功能是查看每个用户订单的详细信息展示。
- 支付模块:该模块主要功能是负责用户选中商品进行下单的操纵,包括支付宝支付和微信支付。
- 广告模块:该模块主要对系统门户所展示的广告信息。
- 个人信息模块:该模块负责个人信息的编辑、账户所剩余额和账户可投金额等信息的查看。
- 结息模块:该模块负责用户所购商品的利息计算、如到返利当天,系统会自动在用户上实现对应金额的返利操作。
#### 开发问题
> - 问题1.Dubbo分布式开发:接口子工程打包报错 repackage failed:Unable to find main class
> - 原因1.父工程创建的是SpringBoot工程,子工程创建的是Maven工程,子工程继承父工程的SpringBoot工程,子工程当作Maven工程没有SpingBoot工程的main方法接口。
> - 解决1.子工程使用Maven工程,不继承父工程的SpringBoot工程,注销父工程的SpringBoot工程插件。
> - 问题2.代码写好后,项目没有显示该有的效果(代码没问题)
> - 原因2.新写好的代码没有打包进target
> - 解决2.项目clean清空重新打包install
> - 问题3.系统运行中同时存在多个日志实现报错Slf4j
> - 原因3.zookeeper里面自带了slf4j这个jar包,会和starter中的冲突,需要排除
> - 解决3.
```
com.101tec
zkclient
slf4j-log4j12
org.slf4j
```
> - 问题4.Maven包管理引入mybatis-plus时进行分页查询,运行报错找不到数据库
> - 原因4.暂时不清楚
> - 解决4.将003-money-dataservice的数据库配置复制到005-money-web再配置一遍(很傻,没采用,用其他分页查询方法代替了)
> - 问题5.在分页查询写好后,进入详情页,有数据分页的不报错,没有数据分页的报错
> - 原因5.发现进入没有数据分页的页面,数据库查询起始页变为-8,所以数据库查询报错
> - 解决5.采用三目运算符判断确保起始页>0:parasMap.put("start", (pageModel.getCunPage() <= 0 ? 1 : pageModel.getCunPage() - 1) * pageModel.getPageSize());
> - 问题6.京东万象-106短信接口报错10010
> - 原因6.10010接口只有10次免费使用,需要付费,请充值
> - 解决6.模拟报文使用成功的假消息
> - 问题7.发送验证码后:轻量级倒计时插件没有显示效果
> - 原因7.$.leftTime(60, function (d):Uncaught TypeError: $.leftTime is not a function
> - 解决7.度娘试了——暂时没有找到解决办法
> - 问题8.上述问题7突然不报错,60秒倒计时有效果,只是样式挤到下面去无法点击同意按钮
> - 原因8.style="width: 210px"样式长度大了,上述问题7想不明白怎么就不报错了呢?
> - 解决8.调小样式style="width: 180px",不解决了,随缘补刀,开摆~
> - 问题9.在注册后,实名认证无法成功更新信息
> - 原因9.注册功能业务层没有返回user.id号给控制层,导致控制层缓存session作用域里无法获取注册手机号的id,最终实名认证更新信息失败。
> - 解决9.注册功能业务层添加一条查询语句返回user的全部信息
> - 问题10.报错Parameter 'phone' not found. Available parameters are [arg1, arg0, param1, param2]
> - 原因10.当使用多个单参数没有使用@Param注解进行标注的方式进行传值时,就会出现参数xxx找不到的问题。如下图这种没有加注解的
> - 解决10.方式一:UserMapper使用@Param注解进行标注的方式进行传值 || 方式二:UserMapper.xml参数使用args…或param…
> - 问题11.登录成功后,怎样才能返回登录前最后浏览的页面
> - 解决11.
> - 首先header头部页面:在登录添加toLogin()方法。
> - 其次控制层跳转功能:设置地址作用域model.addAttribute("ReturnUrl", ReturnUrl);
> - 然后login登录页面:获取地址作用域
> - 最后login.js脚本:登录成功后跳转登录前最后浏览的页面window.location.href = $("#ReturnUrl").val();
> - 问题12.登录成功后,跳转别的页面,登录用户的余额有问题
> - 原因12.这个余额显示是头部页面,每一个页面都要显示,不能只在单独的登录页面上实现
> - 解决12.多打开几个页面,发现都有共同的脚本trafficStatistics.js,将数据库查询的数据传到头部公共脚本内实现
> - 问题13:账号密码错误,也去实名认证
> - 解决13:加一个判断:if (data.message == "请您实名认证后登录!"),然后才可以跳转到实名认证页面
> - 问题14:数据库实名认证消息为空也登录成功,导致个人中心信息里姓名不显示
> - 解决14:user.getName().equals(""),用equals()方法判断
#### 安装教程
1. xxxx
2. xxxx
3. xxxx
#### 使用说明
1. xxxx
2. xxxx
3. xxxx
#### 参与贡献
1. Fork 本仓库
2. 新建 Feat_xxx 分支
3. 提交代码
4. 新建 Pull Request
#### 特技
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/)