返利网javabeen项目研发文献

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

作者:曾国喜

本次任务完成时间:2018年6月1日~2018年10月10日

语言:javabean+servlet+jsp  

 数据库:mysql

完成模块功能:

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

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

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

                           前台

首页:

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

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

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

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

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

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

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

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

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

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

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

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

主要利用doGet doPost,我所做的功能是抛异常处理

doGet在这里进行处理(限制)等。

doPost 平常的方法处理

登录注册:

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

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{})

经典代码(利用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语言,但我所学到的java知识也仅限基础部分(加简单的搭建)。对于我所做出的java项目,还是有很多不足之处。当然我们可以找度娘,长话短说,我们直接进入主题。

     总结首条,当我们不会或遇到技术难点时,可去百度搜索。这不可否认,我们离不开百度,特别对于新手来说,它就是百科全书式老师,而我总结的知识点和难点大部分都是来源于那来的。

     讲下el表达式,el表达式可谓是jsp页面的重中之重。它赋予jsp页面动态(间接调用服务)。首先了解下jsp与service(服务),你会发现加载jsp页面后调用某一数据只刷新一个标签,再想调用服务都会出现刷新页面的情况,当然也例外,但也是比较麻烦。如果我们要手写table表,这时我们就可已用到el表达式,如下一页、上一页、首页等,通过间接调用服务获取所需要刷新的数据,当然还有一个attr也可实现这效果,但麻烦。还有一个比较有意思的el表达式获取值${},方法返回值代码:return '<img  src="${ctx}/servlet/userTypeOneServlet?fun=getUserPicture&file='+picture+'" onclick=”downPictur

ee (\''+???+'\')">';,这段代码是方法函数里面返回一个标签代码,你会发觉编译软件能识别到第一个你所写的el表达式${ctx}的值,如果把???替换${ctx},你会发现他就是一个“${ctx}”字符串,问题就来了,我要${ctx}的el值,而不是字符串“${ctx}”,那又如在${tata eq true ?’ 字符串块one’:’ 字符串块two’}里,当字符串块one 内又有el表达式写法呢?如何解决,我的方案一就是尽量避免这种情况;方案二:

用到<c:choose><c:when test="${not empty SignUpIdCS}"> <c:otherwise></c:otherwise></c:choose>。;还有一个现象onclick=”fffss(${xxx})”,当函数${xxx}为空时,你在js下定义的方法fffss(cs)调用不到,原因是当${xxx}为空时,它调用的函数方法应为fffss(),fffss()与fffss(cs)是不同的函数方法,那如何解决,你可以这样写onclick=”fffss(’${xxx}’)”。

     El表达式就不说了,我们就是讲讲java时间大坑。Java时间类型保存到mysql数据库(date大部分方法舍弃了),简单的日期没问题,但涉及时分就出问题了,你会发现怎么写都保存不了时分到数据库,那我们就需要用到dateFormat进行转义和定义时间格式,有时还是没有时分,这可能跟你调用date是常量名后没.getTime()就放进去 new java.sql.Timestamp()里,还有PreparedStatement对象可以点setDate和setStarttime都是定义时间方法,他们的共通点就是datestarttime互转获取值;既然讲到保存,那就有获取,获取必须要用到dateFormat和setStarttime的定义要不就不出数据,还有个时间标签也比较有意思,标签type="datetime-local"你想回填时间必须是“yyyy-MM-ddTHHmm”格式要不就出错。

     最后说下,退出的问题。项目中用户登录项目后,用户想正常退出时,那我们如何做呢,我在网上搜出了2个方案,我只讲简单的。我们可以通过清空session登录值,而我们还需要在服务里进行判断session登录值是否为空,其实我们还可以在登录前再写清空session登录值。

 

 

猜你喜欢

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