项目介绍

该项目分为玩家用户,商户以及处理员三个人物,包含了店肆处理,活动处理,报名处理以及用户等中心模块,有一般玩家,商户和处理员三大人物:

1.玩家人物:

进入到小程序,挑选查看适宜参加的活动,挑选活动报名,体系依据报名用户的”承诺值”自动判别报名成功与否, 游戏完毕后可对参加同期游戏的玩家进行点评,点评好坏决议玩家的承诺值.

2.商户人物:

创建游戏活动提交审理,审理通往后等候玩家报名,建议游戏.

3.处理员人物:

审理商户提交的游戏活动,处理商户帐号

开发环境微信开发

  1. jdk 8
  2. intellij后端 idea
  3. tomcat 8.5.40
  4. mysql 5.7
  5. 微信开发者东西

后端所用技术:

  1. springboot2.1
  2. quartz
  3. thymeleaf
  4. alibaba 连接池
  5. swagger
  6. mybatis

难点思路

  1. 不同人物登录显spring现不intellij idea激活码同的菜单页面

自定义底部导航栏,不同身份闪现不同的tabbar,登录后依据设置的人物类型闪现不同的导航栏

  1. 活动状况与报名状况相关

增加定时任务,依据设置的活动时刻判别改变活动状况的一同,查询绑定该活动的报名记载,修正相应的状况

  1. 承诺值挑选

设定初始承诺值,依据点评好坏修正承诺值,报名人数超越活动人数,挑选承诺值高的玩家开始游戏,承诺值低的玩家自动出局

项目截图

  • 首页intellij idea运用教程

微信小程序活动办理体系

  • 玩家-活动列表

微信小程序活动办理体系

  • 玩家-我的活动

微信小程序活动办理体系

  • 玩家intellijidea装置教程-活动概略微信开发者东西怎么运用

微信小程序活动办理体系

  • 玩家intellij idea运用教程-点评后端

微信小程序活动办理体系

  • 玩家-个人中心

微信小程序活动办理体系

  • 店家-创建活动

微信小程序活动办理体系

  • 店家-活动处理

微信小程序活动办理体系

  • 店家-个人中心

微信小程序活动办理体系

  • 处理员-活动审理

微信小程序活动办理体系

  • 处理员-帐号处理

微信小程序活动办理体系

  • 处理员-创建店肆

微信小程序活动办理体系

  • swaggintellij idea教程er接口

微信小程序活动办理体系

数据库配备

s微信开发文档pring:
datasspringcloud五大组件ource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql数据库原理及使用.cj.jdbc.Driver
druid:
url: jdbc:mysql://localhost:3306/board_game?useUnico微信开发者东西开发小程序de=true&cha数据库规划racterEncoding=utf8&zeroDateTimeBehavior后端结构=convertToNull&useSSL=true&serveintellijidea装置教程rTimezone=GMT%2B8
username: root
password: root123

模版配备

spring:
thymeleaf:
mode: HTML
encoding:intellij idea教程 utf-8

中心事务代码

  1. 活动模块
@ApiOperation(value = "新增活动",response = AjaxResult.class)
@PostMapping("/add")
public Ajax微信开发者东西Result addSave(ActivityAddReq activityReq)
{
Store store=storeService.后端开发是干什么的selectStoreByUserId(activityReq.getBoosId());/微信开发者东西开发小程序/查询店肆id
if(store==null){
return AjaxResult.error("店肆不存在");
}
Activity activity=new A数据库有哪几种ctivity();
BeanUtils.copyProperties(activityReq,activity);
activit微信开发y.setStatus(-1后端开发);   			 		//活动待审理
activity.setCityId(store.getCityId()); 		//获取店肆地址城市
activity.setAddress(store.getAddress())数据库软件; 	//获取店肆地址地址
activity.setBoosId(activityReq.getBoosId());
return toAjax(activityService.insertActivity(activity));
}
@ApiOperation(value = "审理活动",response = AjaxResult.class)
@PostMapping( "/audit")
public AjaxResult audit(ActivityAuditReq req)
{
Activity activity=new Activity();
activity.setId(req.getId());
activity.setStatus(req.getStatus()); //设置审理状况
return t微信开发oAjax(activityService.updateActivity(activity));
}
  1. 活动报名模块
@ApiOperation(微信开发者东西怎么运用valu数据库体系概论第五版课后答案e = "活动报名",response = AjaxResult.class)
@PostMapping( "/sign")
public AjaxR后端结构esult sign(SignUpReq signUpReq)
{intellij idea多少钱
Activity activity= activityService.selectActivitintellij idea装备jdkyById(signUpReq.getActivityId());
if(activity==null){
return AjaxResult.error("活动不存在");
}else if(!activity.ge微信开发人是谁tSpringStatus().equals(0)){ //活动未开始才干spring是什么意思报名--不需要判别时刻,时刻能控制活动状况
return AjaxResult.error("活动状况不正常");
}
SignUp search=new SignUp();
search.setUserId(signUpReq.getUserId());
search.setActivit数据库查询句子yId(数据库原理signUpReq.ge数据库体系概论第五版课后答案tActivityId());
List<SignUp> list=signUpService.selectSignUpList(search);
if(list.size()>0){
return AjaxResult.error("该活动您现已报名,请忽重复报名");
}
SignUp signUp=new SignUp();
BeanUtils.copyProperties(sigspringmvc的作业原理nUpReq,signUp);
signUp.setAdSpringdTime(DateUtils.getTime());
signUp.setStatus(0);
signUpService.insertSi数据库办理体系gnUp(signUp);
activity.setsNum(activity.getsNum()+1);
return toAjax(activityService.updateActivity(activity));
}
@ApiOperation(value = "吊销报名",response = AjaxResul后端开发t.class)
@PostMappi后端开发需要学什么ng( "/cancelSign")
public AjaxResult cancelSign(SignUpReq signUpReq)
{
Activity activity= activityService.selectActivityById(sig微信开发nUpReq.getActivityId());
if(activity==null){
return AjaxResult.error("活动不存在"数据库有哪几种);intellij idea装置
}
SignUp search=new SignUp();
search.setUserId(signUpReq.getUserI微信开发者东西d());
search.setActivityId(signUpReq.getActivityId());
List<SignUp&gtSpring; list=signUpService.select数据库软件SignUpList(search);
if(list.size(后端开发)==0){
return AjaxResult.error("该活动您未报名,吊销失利");
}
SignUp signintellij idea激活码Up=list.get(0);
signUp.setStatus(3);
signUpService.updateSignUpByAId(signUpintellij idea运用教程);
activity.setsNum(activity.getsNum()-1);
return toAjax(activit后端结构yService.updateActivity(activity));
}
  1. 活动完毕后用户承诺值核算
//依据活动参加玩家对相互点评做出承诺值核算
@ApiOperspring结构ation(value = "活动完毕-玩家谈论",response = ActivityVo.class)
@PostMapping( "/playComment")
public AjaxResult playComspringcloudment(CommentReq req)
{
try{
GameUser gameUser=gameUserService.selectGameUserById(req.get微信开发者东西UserId());
if(gameUser==null){
return  A数据库原理jaxResult.error("谈论失利,谈论人信息不存在");
}
gaintellij idea破解meUserspring=gameUserServiintellij idea教程ce.selectGintellij idea运用教程ameUserById(req.getCommentId());
if(gameUsintellij idea装置过程er==null){
return  AjaxResult.error("谈论失利,被谈论人信息不存在");
}
ActivityComment activityComintellij idea教程ment=new ActivityComment();
activityCo数据库体系的中心是mment.setUserId(intellij idea装置req.getUserId());
activityComment.setActivityId(req.ge微信开发者东西开发小程序tActivspringcloud五大组件ityId());
aIntelliJ+IDEActivityComment.setCommenspringboot面试题tId(req.getCommentId());
List<ActivityComment> list=activityCommentService.selectActivityCointellij idea运用教程mmentList(ac后端开发是干什么的tivityCommenintellij idea激活码t);
if(list.size()>0){
return  AjaxResult.error("谈论失利,现已谈论过,请忽重复谈论");
}
BeanUtils.copyProperties(req,activityComment);
activityComment.setCalculate(1); //设置后端开发薪酬一般多少成没有核算过
activityCommen数据库原理及使用tService.insertActivityComment(activityComment);/数据库原理及使用/增加谈论记载
//扣分规则:一个玩家在一后端局游戏里被>=1玩家负后端开发是干什么的面点评,就会扣分,迟到扣5分,缺席扣10分,不遵从游戏规则扣2分 整体形象 10分
//如果谈论次数坏形象大于1次,累积核算谈论值
int reputationValue=gameUser.getReputation(); 	/后端组/原来的承诺值
//迟到扣除5分
if(req.IntelliJ+IDEAgetBelate()==1){
reputationVal微信开发ue=reputationValue-5;
}else{
reputationValue=reputat微信开发者东西开发小程序io微信开发者东西开发小程序nValue+5;
}
//缺席扣除10分
if(req.getAbsent()==1){
reputationValue=reputationValue-微信开发者东西怎么运用10;
}else{
reputationVal后端ue=reputatiospringnValue+10;
}
//不遵从游戏规则扣2分
if(req.getAbs数据库有哪几种ent()==1){
reputaintellij idea装置tionValue=repintellij idea运用教程utationVaspringboot面试题lue-2;intellij idea激活码
}else{
reputationValue=reputationValue+2;
}
//整体形象 1分
if(intellijidea装置教程req.getAbsent()==1){
reput数据库体系工程师atio数据库规划nValue=reputationValue-1;
}else{intellij idea装备jdk
reputintellij idea装置过程ationValue=reputationValue+1;
}
gaintellij idea快捷键meUser.se后端开发需要学什么tReputation(reputationValue);		//究竟更新被谈论人的承诺值
gameUserService.updateGameUser(gameUser);		//更新数据
return  AjaxResult.success("点评成功");
}catch (Exception e){
e.printStackTrace();
return  AjaxResult.error("点评失利,体系反常");
}微信开发者东西怎么运用
}
  1. 活动开始与完毕任务调度 ,一同挑选出承诺值高者用户入局活动中spring结构
public vo微信开发id activityTask() {
List<Activity> list = activityService.getListByNoEnd();微信开发者东西开发小程序
if (list.size() > 0) {数据库办理体系
for (Activity activity : list) {
String sspringtartTime = activity.getStartTime();//开始时刻
String endTime = activity.getEintellij idea激活码ndTime();     //完毕时刻
if (activity.getStatus() == 0) {            //未开始的活动
if (DateUtils.isGreater(startTime) && !DateUtils.isGreater(endTime)) {
//报名人数大于活动人数,则活动正常开始
if(actintellij idea装备jdkivity.getsNum()>=activity.getpNum()){
actispringboot面试题vity后端开发需要掌握什么技术.setStatus(1);//设置现已开始
activityService.updateActivity(activity);
//挑选出承诺值较高的玩家
List<SignUp> signUps=s微信开发人是谁ignUpService.getSignUpListByAId(activity.getId());
for(int i=0;i<signUps.size();i++){
SignUp signUp=signUps.get(i);
iintellij idea装备jdkf(ispring面试题<activity.getpNum()){
signUp.setStatus(1); //设置活动中,承诺值低者出局
signUp.setRemark("活动报名成功");
}el后端开发薪酬一般多少se{
signUp.setStatus(3);//出局
signUp.se后端和前端有什么区别tRemspring是什么意思ark("承诺值低于其他报名玩家,出局");
//todo  可发送音讯推送
}
signUpService.updateSignUp(signUp);
}
}else{
activity.setStatus(2);//设置2现已完毕
activity.setRemark("活动报名spring面试题人数未满意活动人数要求,自动完毕活动");
activityService.update数据库原理及使用Activity(activity);
//更新当时活动的报名状况为已完毕
SignUp sign后端结构Up=new SignUp();
signUp.setActivityId(activity.getId());微信开发
signUp.setStatus(3);//报名状况 0未开始,1活动中 2已完毕 3报名失利
signUp.setRemark数据库原理及使用("活动报名人数未满意活动人数要求,自动完毕活动");
signUpService.updateSignUpByAId(signUp);
}
}
} else if (activi微信开发人是谁ty.getStatus() =后端=微信开发文档 1) {//现已开始的活动
if (Datespringboot常用注解Utils.isGreater(endT数据库查询句子ime)) {
activi后端开发薪酬一般多少ty.setStatus(2);//设置现已完毕
activitspring是什么意思yService.updateActivity(activity);
SignUp signUp=new SignUp();
signUp.setActivityId(activity.getId());后端和前端有什么区别
signUp.setStatus(2);//报名状况数据库体系的中心是2已完毕
signUp.setRemark后端开发薪酬一般多少("活动时刻已过,完毕活动");
signUpService.updateStatusByAcIspringng(signU数据库体系工程师p);
}
}
}
}
}

项目后续

其他ssh,ssm版别后续迭代更新,持续注重