返利网ssm框架项目研发文献

                      《返利网平台系统》项目研发阶段性总结

作者:曾国喜

本次任务完成时间:2018年11月25日~2018年12月25日

语言:java ssm框架(Struts2+spring3+hibernate3)

 数据库:mysql

完成模块功能:

前台:首页(主界面)、任务大厅、积分商城、签到、注册、我的账户(我的资料、投资管理、账户安全、我的任务、我的消息、我的积分);

后台:角色管理、用户管理、公司信息、积分商品、任务发布、任务审核

一、项目概述(声明:本系统前台网页是仿财气网,仅作为参考,不用于商用;如有不足之处,望见谅)

                                                   前台

首页:

简单的显示公司简介,其次就是本网站跳转模块连接:

限制:当有两个人同时登陆时,会逼退第一个人登录且提示有人登录改账号。

 

1)首页 单击,跳转到对应的模块,此模块主要显示投资公司信息及连接,最终可以进行投资。

2)登录 单击,在未登录前有些模块需要登录才能打开,跳转到登录界面。

3)注册 单击,跳转到注册界面。

4)签到 单击,跳转到签到界面。

5)删除 单击,对应收账户数据进行删除。

6)任务大厅 单击,跳转到任务大厅界面。

7)积分商城 单击,跳转到积分商城界面。

8)我的账户 单击,跳转到我的账户界面。

9)立即查看 单击,跳转到公司投资简介,且可进行投资。

经典代码(对应xxx方法进行限制

利用doGet doPost,在当前框架已经行不通了,没有对应层。

这时就引申到AOP(面向切面编程)这个可上网搜下,简单说下:

一般程序中经常用的就是日志和声明式事物,权限限制还可以,对于登录(判断两人登录)获取对应版次,即在切面类进行查数据库好像不行(调用不了服务,我花了很长时间百度都没找到)

作用:也就是围绕切入当前类的方法,每当程序调用到该类下的方法,我们可以写些简单限制或打印对应信息等。

 

登录注册:

      只需输入用户名和密码即可进行。

1)免费注册,跳转到注册页面。

2)忘记密码,跳转到修改验证密码界面。

 注册

(1)会员名称,输入完进行判断是否存在已有名称。

(2)密码输入6~16为,会根据输入密码验证密码强度。

 

手机验证没弄,这个自己可以去网上搜“短息验证平台”,他们会有对应的代码(很简单的),至于短息验证价格可产考多家平台。

 

 

经典代码(输入框的限制、输入值的判断

<input type="text" class="form-control" id="signUpName" name="signUpName" placeholder="提示语" maxlength="16"  >

 

onKeyUp="value=value.replace(/[\u4E00-\u9FA5]/g,'')" onafterpaste="value=value.replace(/[\u4E00-\u9FA5]/g,'')" 两个一起用:大概意思是在输入没一个值时进行正则判断是否输入对应数据(正则写法可上网搜)

 

maxlength=”10”; 对应输入框输入长度限制为10’个’;

placeholder=”ok”; 当输入框无值时,提示OK

 

 

<script>写$("#xxxx").change(function(){}) 输入框内容改变执行

例子

$("#phoneNumber").change(function(){

            var phone=$("#phoneNumber").val();

            if(!/^1[3|4|5|8][0-9]\d{8}$/.test(phone)  && phone != phone>1){

            layer.alert($("#phoneNumber").val(),{icon:5,title:"电话号码不正确!"}); $("#xxxx").val("")}  })

 

<script>写$("#xxxx ").on('blur', function () {}) 输入框没次输入进行正则匹配

例子

$("#phoneNumber,#phoneCode").on('blur', function () {

     var $asdfg = $(this);

     $asdfg.val(($asdfg.val().replace(/[^\d]/g, '')))//去除匹配值 去除非数字

            })

   

签到

用户必须登录才可签到,且每天只能签到一次,且(签到)积分会在一个月后清零。

1)签到,进行当天签到,如果获得签到红包,会发信息到我的信息中,且还有积分记录表。

2)未签到,会提示“已签到”。

 

 

 

经典代码(签到表所需要的字段)

 

我这里分 签到积分和非签到积分,还有当天签到日期记录和当月签到的日期记录(还有个签到日)。

签到积分和非签到积分:主要是区分有时间限制的积分,方便一个月清空一次。

当天签到日期和当月签到的日期:他们一般都是为了进行判断当天是否签到、当前日期是否不等于当前月日期。

签到日期:主要记录当月签到次数。

 

任务大厅

 

接取发布的公司任务,公司任务都是有结束期限,完成任务必须在结束期限前完成。

1)领取任务,如果任务未领取则领取; 否则提示“已领取”。(查看领取任务,在我的任务中)

 

经典代码(随机生成颜色

如图,每个div通过<c:forEach>循环生成,对应随机颜色也需要些进循环里面,

这样就能达到没生成的一个div背景颜色不同了。

 

 

 

 

积分商城

是以积分对商品进行兑换。

1)左上角是对商品分类的快捷键,点击会出现出对应商品。

2)立即签到,是一个跳转链接(跳转到签到页面)。

 

 

 

兑换:

当鼠标移到商品上面,会弹出立即兑换按钮,点击得以下界面。当然积分不够时是无法填写信息的。

(1)填写完整信息。

(2)电话和QQ在输入时进行了限制。

(3)点击立即兑换,成功:会扣除相应的积分,且记录兑换信息。

 

我的任务

 

之前在任务大厅领取到的公司任务,都是在这进行显示和操作

1、我的资料

  简单的信息提示数据记录等

2、投资管理

   个人投资去投资,等待后台进行审核

3、信息任务

(1)、账户安全 基本的信息

(2)修改头像

   截取以图片圆直径为变的正方形图片 进行base64编码加密,其实就是把图片转为特殊的字符串,通过ajax提交主要提交类型一定要为post  (get有提交数据限制)

最后在服务端对该编码解密(还原成图片)。

4、信息任务

(1)信息任务,任务主要都是个人信息,如第一次完善手机号码或身份证等。

(2)公司信息,由对应公司发布的信息,领取后提交相应凭证,后台进行审核。

(3)如图,当个人信息完成时,认证状态、领取时间和去完成 都会发生改变。

5、公司任务

如图,领取按钮所在的按钮有3个状态(上传图片、领取、已领取)

(1)上传图片,需要等待审核。

(2)领取,则是任务通过了审核、认证状态和领取时间还是空。

(3)当领取完,会改变状态和显示领取时间。

经典代码(利用el表达式中判断,作用类似if(){}else{})

<c:choose>

<c:when test="${not empty usID}">

<a href="${ctx}/servlet/personalServlet?fun=wdzl">

</c:when>

  <c:otherwise>

    <a onclick="layer.msg('请先登录')"> 

 </c:otherwise>

</c:choose>

我利用他,把一张表变成两张表(这样可能要加很多限制)

 

6、消息中心

主要显示有关金额的信息。(担任可以对这些信息进行删除操作)

如图,信息分为两类 未读 和 已读。

(1)未读,在‘全部’和“未读”中整列字体加粗,表示未读。
(2)已读,显示已读信息。

 

 

7、我的积分

如图,用户可以在这查看本人的积分信息,以及积分记录和兑换记录(主要时间回填,可以用el表达式标签库进行时间转换)

 

 

                                                后台

如图,输入用户名和密码以及验证码即可登录

 

后台登录

经典代码(登录界面背景轮播)

之后利用定位把登录div调到正中心(当然你也可以写把图片设置写到后台)

 

前台浏览

 

我们可以通过后台浏览前台信息。

 

 

 

 

角色管理

如图,当前模块是对管理员进行新增、修改和删除操作。(当然有权限限制)

1、添加,需要输入密码。(未设置权限,但新增角色会在日志记录中记录)进入界面后:

(1)管理员名称,输入框会进行验证是否存在相同名称(会在后面提示)。

(2)登录密码,输入框不能输入中文,且密码最少6位以上(会在后面提示)。

(3)性别,不选时会默认为男。

(4)权限,不选时会默认为超级管理员。

(5)其他可以不填写信息。

(6)保存,保存当前信息。

(7)重置,初始当前输入框。

 

2、修改,需要输入密码,且只能修改自己或低于自己权限的管理员。进入界面后:

  和新增一样。

(1)、密码必填。

 

 

 

3、删除(有权限限制)

删除对应角色。

 

 

用户管理

主要对用户信息进行操作。

(1)单击图片,可下载用户头像图片。

(2)单击删除,删除对应用户信息、

 

1、添加。如图:

(1)会员名称,输入时会进行验证是否同名。(在最后提示)

(2)密码,也会验证是否达到条件 。

(3)随机,获取随机6个数字。

(4)头像,设置图片头像。

(5)其他的可为空。

 

 

 

 

 

2、修改。如图:

需要选取修改行点击。进入如下界面

(1)会员名称,输入时会进行验证是否同名或原名。(在最后提示)

(2)密码,也会验证是否达到条件,不能为空 。

(3)随机,获取随机6个数字。

(4)头像,不选图片则默认为原图  。

(5)其他的可为空。

 

 

公司信息

主要对公司信息进行操作(这些信息会作为前台数据)。

(1)详情按钮,以弹框信息显示大部分公司信息。

(2)左上角,多条件查询(其中可以模糊查询)

(3)其次就是添加、修改和删除按钮。

 

1、新增(输入框已进行限制)

新增对应公司信息(尽量填写完整信息)

 

2、修改

需要选取对应的修改行,之后对公司信息进行修改。

3、删除(删除对应公司信息)

 

积分商城

操作兑换商品的模块。

(1)左上角有个联动查询,第二个下拉框数据来源于第一个选择的值。

 

1、新增

(1)商品名,会进行验证是否存在当前商品名。(后面会有提示)

(2)积分,必填,否则保存不了。

(3)商品图,选取商品图

(4)其他也是必填。

 

 

2、修改(需要选取对应修改商品)

 

(1)商品名,会进行验证是否存在当前商品名或原名。(后面会有提示)

(2)积分,必填,否则保存不了。

(3)商品图,选取商品图

(4)其他也是必填。

 

 

3、删除,对应商品(请谨慎)。

 

 

任务发布

发布任务,主要帆布公司要求任务。

1)左上角可以查询对应条件的任务。

 

 

 

 

 

1、新增、修改

(1)内容,输入简单的4—6个字。

(2)奖励,输入对应格式。

(3)开始时间,必须填写完整时间格式否则会清空当前输入框

 

2、删除,删除对应任务。

 

任务审核

对从前台任务上传的凭证进行人工审核。其中分为审核中和已审核,只有审核中才可进行操作。

1、点击凭证图会显示图片,管理员审核是否能通过任务审核:是,手动点击审核

申报审核

 就是对应用户投资凭证的审核(人工审核)

 

二、相关业务表

 

表名

说明

类型

业务表编号

activitytable

任务活动表

基础表

 

administratortable

管理员表

基础表

 

amountjournaltable

金额日记表

基础表

 

commodityexchangetable

商品兑换表

业务表

 

companytable

公司表

基础表

 

deadlinetable

投资期限表

基础表

 

emotionalstatustable

情感状态表

基础表

 

enrollmenttable

投资登记表

业务表

 

identificationtable

认证表

基础表

 

integrallogtable

签到表

业务表

 

integralstoretable

商品表

业务表

 

newstable

信息表

业务表

 

platformbackgroundtable

平台背景表

基础表

表1

programtable

方案表

基础表

表2

returnblessleetable

返福利表

基础表

 

shenhetable

任务审核表

业务表

 

signintable

签到表

基础表

 

signuptable

会员注册表

基础表

 

storetyle

类型表

基础表

 

storetypexq

类型详细表

业务表

 

tasklogtable

任务记录表表

业务表

 

tasklogtable

任务码

基础表

 

 

1、任务活动表:

 

 

2、管理员表:

 

3、金额日记

 

4、商品兑换表:

 

5、公司表:

 

6.、投资期限表:

 

 

7、情感状态表:

 

8、投资登记表:

 

9、认证表:

 

10、积分记录表

 

11、积分商品表:

 

12、消息表:

 

13、平台背景表:

 

14、方案表:

 

15、任务审核表:

 

16、签到表:

 

17、会员注册表:

 

18、类型表:

 

19、类型详细表:

 

20、任务记录表:

 

21、任务表:

3、总结

     这个项目是用java  ssm框架(Struts2+spring3+hibernate3),是继javabean+servlet+jsp项目后改写的。这里我就主要讲下俩者区别。框架的诞生是为了我们少写重复代码和提高我们的编写项目效率。这个有利也有弊,利就不讲了,弊端就是对于新手对底层写法不了解,当然也有部分功框架实现不了的…。

    当然也不是全部改变,改变的主要是对应底层的封装,还有比较麻烦的配置文件。其他大致不变。

     还是要强调el表达式,el表达式。它赋予jsp页面动态(间接调用服务),当然你要了解对应的标签库。还有el可以写服务端代码javabean是完全可以的,我写主要是用于手写样式表(能不写就不写),而ssm就有点复杂了由于注解在spring注解@Autowired在jsp上无法调用生效最终还是把参数写进作用域或session配合实现。

    ssm框架对应路径处理还是不错的,首先说下jsp页面放置位置:情况一 WebRoot下

情况二 WebRoot下的lib,好像是涉及路径访问安全问题。情况一:是可以在客户端进行访问没保护,而情况二就是必须通过服务端进行特定访问(如字符串,配置会进行拦截进行检测,之后就是访问到对应jsp)。这就是ssm框架优点之一吧。还有就是对时间的处理jsp页面引进el表达式可以用标签库进行时间转换。但是服务端还是老样子还是需要进行转换。

el表达式写${}写在<script>里注意:var  xxx=${aa};如果aa为空值 浏览器编译后就是

var  xxx=  ;这时xxx就是个错误值;正确写法就是var  xxx=’${aa}’;

    对于ssm项目限制,就得不说下AOP(面向切面编程)这个可上网搜下,简单说下:

一般程序中经常用的就是日志和声明式事物,权限限制还可以,对于登录(判断两人登录)获取对应版次,即在切面类进行查数据库好像不行(调用不了服务,我花了很长时间百度都没找到)作用:也就是围绕切入当前类的方法,每当程序调用到该类下的方法,我们可以写些简单限制或打印对应信息等。对于这种两人登录限制感觉aop不好用,如果,项目已经完成全部方法再加这种判断,那也就只能一个一个方法地加限制,总感觉让人发狂。

还有对于文件上传图片,简单的提交图片文件没问题。当你需要对图片进行裁剪再提交,那你就不得不在jsp引进对应的插件对图片进行特殊化处理。我这用到的是对图片进行

base64编码加密,其实就是把图片转为特殊的字符串,通过ajax提交,主要提交类型一定要为post(get有提交数据限制)最后在服务端对该编码解密(还原成图片)。

至于其他的就不说了,毕竟是新手,对ssm框架也不好多说,如有误解之处,可发表评论…。

 

猜你喜欢

转载自blog.csdn.net/weixin_44540005/article/details/86546565