package com.imooc.web;
import com.imooc.accessToken.Request;
import com.imooc.accessToken.tokenThread;
import com.imooc.dao.MatchDao;
import com.imooc.dao.MatchStatusDao;
import com.imooc.dao.UserDao;
import com.imooc.entity.Match;
import com.imooc.entity.Match_status;
import com.imooc.entity.User;
import com.imooc.hanlder.DataProcessing;
import com.imooc.hanlder.MsgSecCheck;
import com.imooc.hanlder.OpenidHandler;
import net.sf.json.JSON;
import net.sf.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping("/Jeff")
public class MatchController {
//接口的注入, @Autowired,直接创建接口对象
@Autowired
private MatchDao matchDao;
@Autowired
private UserDao userDao;
@Autowired
private MatchStatusDao matchStatusDao;
// 查询该用户参与的比赛和该比赛的状态 ,并取出其最新发布比赛记录
@RequestMapping(value = "/listMatch", method = RequestMethod.GET)
private Map<String, Object> listMatch(String openid) {
System.out.println("开始取出用户所有比赛信息-----------");
Map<String, Object> Matchlist = new HashMap<String, Object>();
matchStatusDao.updateMatchStatus();// 根据当前时间修改比赛状态,过期改为"3"
System.out.println("openid:" + openid);
List<User> userList = userDao.queryUserInformation(openid);//根据openid取出用户信息,将match字段取出,接着传入用户的match字段去查询比赛和状态
String userMatch = userList.get(0).getMatch();
List<Match> matchList = matchDao.queryMatchAndStatus(userMatch,openid);
System.out.println("user_match:"+userMatch);
List<Match> matchHistory = matchDao.queryMatchHistory(openid); //查询历史信息
String accessToken=tokenThread.accessToken;// 获取accessToken
Matchlist.put("matchList", matchList);
System.out.println("matchlist:"+matchList);
Matchlist.put("matchHistory", matchHistory);
System.out.println("accessToken:"+accessToken);
Matchlist.put("accessToken", accessToken);
System.out.println("取出用户所有比赛信息成功!!!");
return Matchlist;
}
// 插入/更新用户信息数据2,仅仅获取openid
@RequestMapping(value = "/inserUser2", method = RequestMethod.GET)
private String inserUser2(String code) {
System.out.println("开始插入/更新用户信息-----------");
String appsercet = "22f8bb4e86c7ee6a7dfecb881fa5fda0";
String appid = "wxbd8c3059b444fd81";
String grant_type = "authorization_code";
String openIDJson = new OpenidHandler().GetOpenID(appid, appsercet, code); // 向网站请求,调取方法,获取openid
String openid=(String) JSONObject.fromObject(openIDJson).get("openid");
System.out.println("openid:"+openid);
if(openid==null){
System.out.println("插入/更新用户信息失败");
}else{
int result = userDao.insertUser2(openid); //插入/更新用户数据
System.out.println("插入/更新用户信息成功!!!");
}
return openid;//返回给前端,得到的openid
}
// 插入/更新用户信息数据,获取code码等去解析用户姓名头像等信息
@RequestMapping(value = "/inserUser", method = RequestMethod.GET)
private String inserUser(String code, String user_name, String user_url, String user_country, String user_city, String user_province, String user_gender) {
System.out.println("开始插入/更新用户信息-----------");
String appsercet = "22f8bb4e86c7ee6a7dfecb881fa5fda0";
String appid = "wxbd8c3059b444fd81";
String grant_type = "authorization_code";
String user_nameNew = user_name.replaceAll("[\\x{10000}-\\x{10FFFF}]", "").replaceAll("'", "");
User user = new User(0, "", "", user_nameNew, user_url, user_country, user_province, user_city, user_gender);
String openIDJson = new OpenidHandler().GetOpenID(appid, appsercet, code); // 向网站请求,调取方法,获取openid
user.setOpenid((String) JSONObject.fromObject(openIDJson).get("openid"));
int result = userDao.insertUser(user); //插入/更新用户数据
System.out.println("用户名称:"+user_nameNew+" , 当前时间为:"+new Date());
System.out.println("插入/更新用户信息成功!!!");
return user.getOpenid();//返回给前端,得到的openid
}
//创建比赛,将比赛信息存储入数据库
@RequestMapping(value = "/createMatch", method = RequestMethod.GET)
@ResponseBody
private int createMatch(String match_theme, String match_time, String match_week, String
deadline_time, String deadline_week, String match_address, String match_rule, String match_directions, String
match_people, String openid,double longitude, double latitude){
System.out.println("开始创建比赛/存储比赛信息-----------");
//检测文本敏感词,如果不为0,则不成功,不执行数据库存储并直接返回errcodeCheck
String msg=match_theme+match_address+match_rule+match_directions+match_people; //拼接文本
int errcodeCheck=new MsgSecCheck().getMsgSecCheck(tokenThread.accessToken, msg);
if(errcodeCheck!=0){
System.out.println("含有敏感词!");
return errcodeCheck;
}else{
String uuid=new DataProcessing().getId();//获取一个随机的key
Match match=new Match(uuid,match_theme,match_address,match_time,match_week,deadline_time,deadline_week,match_rule
,match_people,match_directions,openid,"","",longitude,latitude); //构建比赛信息
try{
int resultMatch=matchDao.createMatch(match);//插入比赛信息
}catch(Exception e) {
System.out.println("插入错误"+e);
};
Match_status match_status=new Match_status(uuid,openid,"0",match_time,null); //构建比赛状态
int resultStatus=matchStatusDao.createMatchStatus(match_status);//插入比赛状态
List<User> userList=userDao.queryUserInformation(openid); //取出用户信息
String userMatchID= new DataProcessing().reduce2_string(userList.get(0).getMatch()); //需要判断该用户下的比赛是否过量(最多100),过量则需要先删除第一个
String userMatchIdNew = new DataProcessing().increase_string(userMatchID,String.valueOf(match.getId()));//进行字符串的处理,在原来的字符串后加上新的字符
int resultUser=userDao.updateUserMatch(userMatchIdNew,openid);//将创建的比赛的id加入到用户表的match字段中
System.out.println("创建比赛成功!!!");
System.out.println("返回的code:"+errcodeCheck);
return errcodeCheck;
}
}
//进入比赛详情界面,查看比赛信息
@RequestMapping(value = "/viewMatch", method = RequestMethod.GET)
private Map<String, Object> viewMatch(String uuid,String openid){
System.out.println("查看比赛详情信息-----------");
Map<String, Object> Matchlist = new HashMap<String, Object>();
Boolean disableJoin = false;
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
如果您下载了本程序,但是该程序存在问题无法运行,那么您可以选择退款或者寻求我们的帮助(如果找我们帮助的话,是需要追加额外费用的)。另外,您不会使用资源的话(这种情况不支持退款),也可以找我们帮助(需要追加额外费用) 随着移动互联网技术的发展和用户需求的变化,【小程序名称】应运而生,以其轻量化、便捷化的设计理念为用户提供了一种全新的服务模式。作为一款无需下载安装即可使用的应用,【小程序名称】依托于微信庞大的生态系统,让用户在微信内就能轻松实现各种功能操作。 【小程序名称】的核心功能主要集中在【具体服务领域】,例如在线购物、本地生活服务、教育学习或健康管理等。它简化了传统APP繁琐的注册登录流程,支持微信一键授权登录,极大地提升了用户体验。用户通过搜索或扫描二维码,瞬间即可开启使用,享受快速加载、流畅运行的服务。 该小程序界面设计简洁明了,布局合理,易于上手。同时,其特色功能如实时更新的信息推送、个性化推荐以及社交分享功能,让用户能够及时获取所需信息,并方便地将优质内容分享至朋友圈或好友,实现信息的高效传播与互动。 【小程序名称】注重数据安全与隐私保护,严格遵守国家法律法规和微信平台的规定,确保用户数据的安全无虞。此外,其背后的开发团队持续迭代更新,根据用户反馈不断优化产品性能,提升服务质量,致力于打造一个贴近用户需求、充满活力的小程序生态。 总结来说,【小程序名称】凭借其小巧便携、快捷高效的特性,不仅节省了用户的手机存储空间,更为用户提供了无缝衔接的便利服务,是现代生活中不可或缺的一部分,真正实现了“触手可及”的智能生活新体验。只需轻点屏幕,无限精彩尽在掌握之中。
资源推荐
资源详情
资源评论
收起资源包目录
足球报名小程序JAVA后端(spring boot +mybatis).zip (35个子文件)
SJT-code
mvnw.cmd 6KB
pom.xml 4KB
6854157_www.baoming.site.pfx 5KB
src
test
java
com
imooc
JeffApplicationTests.java 435B
dao
MatchDaoTest.java 521B
main
resources
mapper
MatchStatusDao.xml 2KB
UserDao.xml 4KB
MatchDao.xml 5KB
application.properties 708B
mybatis-config.xml 665B
java
com
imooc
web
MatchController.java 16KB
dao
MatchDao.java 1KB
MatchStatusDao.java 490B
UserDao.java 731B
accessToken
CommonUtil.java 3KB
Request.java 2KB
GetToken.java 1KB
tokenThread.java 1KB
hello.java 633B
entity
Match_status.java 2KB
Match.java 4KB
User.java 2KB
hanlder
DataProcessing.java 5KB
MsgSecCheck.java 3KB
GlobalExceptionHandler.java 806B
OpenidHandler.java 3KB
JeffApplication.java 3KB
config
dao
DataSourceConfiguration.java 2KB
SessionFactoryConfiguration.java 2KB
.mvn
wrapper
maven-wrapper.properties 116B
maven-wrapper.jar 47KB
MavenWrapperDownloader.java 5KB
mvnw 9KB
.gitignore 333B
META-INF
MANIFEST.MF 61B
共 35 条
- 1
资源评论
JJJ69
- 粉丝: 6215
- 资源: 5783
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功