# 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/)