package com.lin.sharebooks.controller;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.lin.sharebooks.model.*;
import com.lin.sharebooks.service.*;
import com.lin.sharebooks.util.*;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpMethod;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.io.*;
import java.security.NoSuchAlgorithmException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@Autowired
private RedisComponent redisComponent;
@Autowired
private ObjectMapper objectMapper;
@Autowired
private LoginlogService loginlogService;
@Autowired
private BookService bookService;
@Autowired
private MessageService messageService;
@Autowired
private PostService postService;
@Autowired
private NoticeService noticeService;
/**
* 用户注册时,检查邮箱是否已被注册使用
* @param email
* @return
*/
@ApiOperation(value="账号可用性",notes = "判断注册账号是否已被注册使用")
@RequestMapping(value="/judgeEmail",method= RequestMethod.POST)
public Map<String,Object> judgeEmail(String email){
Map<String,Object> map=new HashMap<>();
boolean flag=userService.isUsedEmail(email);
if(flag){
map.put("status", ResultMsg.OK);
}else{
map.put("status",ResultMsg.NO);
}
return map;
}
/**
* 用户注册
* @param email
* @param password
* @return
* @throws NoSuchAlgorithmException
* @throws UnsupportedEncodingException
*/
/*@ApiOperation(value="用户注册",notes="用户注册,发送邮箱验证")
@RequestMapping(value="/regist",method = RequestMethod.POST)
public Map<String, Object> regist(@RequestParam("email")String email, @RequestParam("password")String password)throws NoSuchAlgorithmException,UnsupportedEncodingException{
Map<String,Object> map=new HashMap<>();
boolean flag=userService.isUsedEmail(email);
if(flag){
//注册账号可使用
User user=new User(email,email, MD5.EncodeByMD5(password),"head.jpg",0,0,"openid");
userService.addUser(user);
map.put("status",ResultMsg.OK);
}else{
//注册账号不可用(已被注册使用)
map.put("msg","账号已被注册使用");
map.put("status",ResultMsg.NO);
}
return map;
}*/
/**
* 用户登录
* @param email
* @param password
* @return
* @throws UnsupportedEncodingException
* @throws NoSuchAlgorithmException
*/
@ApiOperation(value="普通用户登录",notes = "用户登录->判断密码->判断用户状态->生成token")
@RequestMapping(value="/login",method = RequestMethod.POST)
public Map<String,Object> login(@RequestParam("email")String email, @RequestParam("password")String password) throws UnsupportedEncodingException, NoSuchAlgorithmException, JsonProcessingException {
Map<String,Object> map=new HashMap<>();
User user=userService.checkEmailAndPassword(email,password);
if(user!=null){
//账号密码正确,登录成功
String token= MD5.EncodeByMD5(user.getUserId()+UUID.randomUUID().toString());
//redisComponent.sentinelSet(token,objectMapper.writeValueAsString(user));
redisComponent.sentinelSet(token,user.getUserId());
redisComponent.setLongExpire(token);
map.put("token",token);
map.put("loginUser",user);
map.put("status",ResultMsg.OK);
}else{
//账号密码有错
map.put("status",ResultMsg.NO);
}
return map;
}
/**
*模拟登录页面
*@params:
*@return:
*@date: 21:31 2017/12/7
**/
@ApiOperation(value="模拟登录页面",notes = "")
@RequestMapping(value="/",method = RequestMethod.GET)
public String pretendLogin(){
return "请先登录,登录页面";
}
/**
*微信小程序获取token
*@params:code
*@return:
*@date: 17:03 2018/1/27
**/
@ApiOperation(value="微信小程序",notes = "微信小程序用户获取token")
@RequestMapping(value="/getToken",method = RequestMethod.POST)
public String getToken(@RequestParam(name = "code",required = true)String code){
//String params="appid=wxb59a3d47efedfd9d&secret=5bdc0da0dda7abbc72242e23879e2376&js_code="+code+"&grant_type=authorization_code";
String result=HttpClientUtil.clientGET("https://api.weixin.qq.com/sns/jscode2session?appid=wxb59a3d47efedfd9d&secret=5bdc0da0dda7abbc72242e23879e2376&js_code="+code+"&grant_type=authorization_code", HttpMethod.GET);
System.out.println(result);
//{"session_key":"T0fpWHgHGej7DispGNcxQQ==","expires_in":7200,"openid":"oPVIL0es7vjW3oz1TDs1riFzJLAk"}
String openid_str=result.split(",")[2].split(":")[1];
String openid=openid_str.substring(1,openid_str.length()-2);
String session_3rd=null;
System.out.println("---------------yangyuliushu"+openid);
try {
session_3rd=MD5.EncodeByMD5("yangyuliushu"+openid);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
User user=userService.getByOpenid(openid);
if(user==null){
userService.addUser(new User(null,"游客",null,null,0,1,openid,null,null,null,null,null,DateTimeUtil.getDate()));
}
redisComponent.sentinelSet(session_3rd,openid);
redisComponent.setLongExpire(session_3rd);
return session_3rd;
}
/**
*微信小程序更新用户信息
*@params:User
*@return:map
*@date: 22:02 2018/2/8
**/
@ApiOperation(value="微信小程序",notes = "更新用户信息")
@RequestMapping(value="/updateUserInfo",method = RequestMethod.POST)
public Map<String,Object> updateUserInfo(@RequestParam("nickName")String nickName,@RequestParam("head")String head,@RequestParam("gender")String gender,@RequestParam("city")String city,@RequestParam("province")String province,@RequestParam("country")String country,@RequestParam("language")String language,@RequestParam("token")String token){
Map map=new HashMap();
String openid=redisComponent.sentinelGet(token).toString();
User oldUser=userService.getByOpenid(openid);
if(oldUser==null){
map.put("status",ResultMsg.NO);
}else{
oldUser.setNickname(nickName);
oldUser.setHead(head);
oldUser.setGender(gender);
oldUser.setCity(city);
oldUser.setProvince(province);
oldUser.setCountry(country);
oldUser.setLanguage(language);
userService.update(oldUser);
map.put("status",ResultMsg.OK);
}
return map;
}
/**
*微信小程序写入用户登入地址
*@params:token
*@return:
*@date: 19:51 2018/1/28
**/
@ApiOperation(value="微信小程序",notes = "写入用户登入地址")
@RequestMapping(value="/updateLoginlog",method = RequestMethod.POST)
public Map<String,Object> updateLoginlog(@RequestParam("token")String token,@RequestParam("latitude")double latitude,@RequestParam("longitude")double longitude){
Map map=new HashMap();
String openid=redisCo
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
小程序开发 系统设计 可用于毕业设计、课程设计、项目实践,提供设计资料+源码 小程序开发 系统设计 可用于毕业设计、课程设计、项目实践,提供设计资料+源码 小程序开发 系统设计 可用于毕业设计、课程设计、项目实践,提供设计资料+源码 小程序开发 系统设计 可用于毕业设计、课程设计、项目实践,提供设计资料+源码 小程序开发 系统设计 可用于毕业设计、课程设计、项目实践,提供设计资料+源码 小程序开发 系统设计 可用于毕业设计、课程设计、项目实践,提供设计资料+源码 小程序开发 系统设计 可用于毕业设计、课程设计、项目实践,提供设计资料+源码 小程序开发 系统设计 可用于毕业设计、课程设计、项目实践,提供设计资料+源码 小程序开发 系统设计 可用于毕业设计、课程设计、项目实践,提供设计资料+源码 小程序开发 系统设计 可用于毕业设计、课程设计、项目实践,提供设计资料+源码 小程序开发 系统设计 可用于毕业设计、课程设计、项目实践,提供设计资料+源码 小程序开发 系统设计 可用于毕业设计、课程设计、项目实践,提供设计资料+源码 小程序开发 系统设计 可用于毕业设计、课程设计、项目实践,提供设计资料+源码 小程序开发 系统设计 可用于毕业设计、课程设计、项目实践,提供设计资料+源码 小程序开发 系统设计 可用于毕业设计、课程设计、项目实践,提供设计资料+源码 小程序开发 系统设计 可用于毕业设计、课程设计、项目实践,提供设计资料+源码 小程序开发 系统设计 可用于毕业设计、课程设计、项目实践,提供设计资料+源码 小程序开发 系统设计 可用于毕业设计、课程设计、项目实践,提供设计资料+源码
资源推荐
资源详情
资源评论
收起资源包目录
springboot(集成redis+swagger2+mybatis+tkmybatis+lombok+springsecurity等插件)+mysql搭建的api接口供流书小程序(共享书籍)使用(毕业设计).zip (72个子文件)
sharebooks-master
mvnw.cmd 5KB
pom.xml 3KB
src
test
java
com
lin
sharebooks
SharebooksApplicationTests.java 339B
UserMapperTest.java 2KB
serviceimpl
NoticeServiceImplTest.java 1KB
PositionServiceImplTest.java 1KB
BookTypeServiceImplTest.java 1KB
UserServiceImplTest.java 1KB
RunpicServiceImplTest.java 1KB
LoginlogServiceImplTest.java 1KB
MessageServiceImplTest.java 1KB
PostServiceImplTest.java 1KB
BookServiceImplTest.java 1KB
main
resources
static
test.png 19KB
java
com
lin
sharebooks
Swagger2.java 2KB
mapper
BookTypeMapper.java 983B
UserMapper.java 3KB
BookMapper.java 4KB
PositionMapper.java 518B
NoticeMapper.java 1023B
LoginlogMapper.java 3KB
RunpicMapper.java 414B
PostMapper.java 1022B
MessageMapper.java 3KB
SharebooksApplication.java 1KB
controller
IndexController.java 5KB
UserController.java 21KB
SuperController.java 11KB
service
DataService.java 136B
LoginlogService.java 377B
RunpicService.java 227B
UserService.java 2KB
BookService.java 1KB
MessageService.java 841B
PostService.java 404B
NoticeService.java 323B
BookTypeService.java 352B
PositionService.java 264B
EmailService.java 150B
filter
BasicFilter.java 5KB
model
Message.java 1006B
Book.java 1KB
BookWithDistance.java 737B
Post.java 799B
BookType.java 565B
Position.java 674B
Runpic.java 695B
Notice.java 761B
User.java 2KB
Loginlog.java 901B
DataShow.java 364B
serviceimpl
EmailServiceImpl.java 2KB
PositionServiceImpl.java 820B
RunpicServiceImpl.java 770B
NoticeServiceImpl.java 1018B
BookTypeServiceImpl.java 1KB
UserServiceImpl.java 2KB
PostServiceImpl.java 1KB
LoginlogServiceImpl.java 1KB
BookServiceImpl.java 4KB
MessageServiceImpl.java 1KB
DataServiceImpl.java 1KB
util
ResultMsg.java 2KB
RedisComponent.java 2KB
MD5.java 850B
DateTimeUtil.java 597B
HttpClientUtil.java 891B
MyMapper.java 186B
CorsConfig.java 715B
.mvn
wrapper
maven-wrapper.jar 46KB
mvnw 6KB
.gitignore 284B
共 72 条
- 1
资源评论
辣椒种子
- 粉丝: 3488
- 资源: 5722
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功