parent
38102abcfe
commit
5c942d230c
@ -0,0 +1,158 @@ |
|||||||
|
package com.community.pocket.api.android; |
||||||
|
|
||||||
|
import com.community.pocket.entity.po.Forum; |
||||||
|
import com.community.pocket.entity.po.ForumContent; |
||||||
|
import com.community.pocket.entity.po.Notice; |
||||||
|
import com.community.pocket.entity.po.android.Active; |
||||||
|
import com.community.pocket.entity.po.android.Complain; |
||||||
|
import com.community.pocket.entity.po.android.Token; |
||||||
|
import com.community.pocket.entity.vo.android.ActiveForm; |
||||||
|
import com.community.pocket.entity.vo.Result; |
||||||
|
import com.community.pocket.entity.vo.android.*; |
||||||
|
import com.community.pocket.repository.android.*; |
||||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||||
|
import org.springframework.web.bind.annotation.GetMapping; |
||||||
|
import org.springframework.web.bind.annotation.PostMapping; |
||||||
|
import org.springframework.web.bind.annotation.RestController; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* 论坛接口 |
||||||
|
*/ |
||||||
|
@RestController |
||||||
|
public class ForumController { |
||||||
|
|
||||||
|
@Autowired |
||||||
|
private NoticeDao noticeDao; |
||||||
|
|
||||||
|
@Autowired |
||||||
|
private ForumDao forumDao; |
||||||
|
|
||||||
|
@Autowired |
||||||
|
private UserDao userDao; |
||||||
|
|
||||||
|
@Autowired |
||||||
|
private TokenDao tokenDao; |
||||||
|
|
||||||
|
@Autowired |
||||||
|
private ForumContentDao forumContentDao; |
||||||
|
|
||||||
|
@Autowired |
||||||
|
private ActiveDao activeDao; |
||||||
|
|
||||||
|
@Autowired |
||||||
|
private ComplainDao complainDao; |
||||||
|
|
||||||
|
//加载公告接口
|
||||||
|
@GetMapping("/forum/notice") |
||||||
|
public ForumNoticeResponse loadNotices() { |
||||||
|
List<Notice> noticeList = noticeDao.loadNotices(); |
||||||
|
if (noticeList != null) { |
||||||
|
ForumNoticeResponse response = new ForumNoticeResponse(Result.OK, ForumNoticeResponse.Msg.ok); |
||||||
|
response.setNoticeList(noticeList); |
||||||
|
return response; |
||||||
|
} else { |
||||||
|
return new ForumNoticeResponse(Result.FAIL, ForumNoticeResponse.Msg.fail); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
//加载热榜接口
|
||||||
|
@GetMapping("/forum/hot") |
||||||
|
public ForumHotResponse loadHot(Integer num) { |
||||||
|
List<UserHot> userHot = userDao.rankUser(num); |
||||||
|
List<ForumHot> topicHot = forumDao.rankReply(Forum.ForumType.topic, num); |
||||||
|
List<ForumHot> activeHot = forumDao.rankReply(Forum.ForumType.active, num); |
||||||
|
ForumHotResponse response; |
||||||
|
if (userHot != null && topicHot != null && activeHot != null) { |
||||||
|
Hot hot = new Hot(userHot, topicHot, activeHot); |
||||||
|
response = new ForumHotResponse(Result.OK, ForumHotResponse.Msg.ok); |
||||||
|
response.setHot(hot); |
||||||
|
} else { |
||||||
|
response = new ForumHotResponse(Result.FAIL, ForumHotResponse.Msg.fail); |
||||||
|
} |
||||||
|
return response; |
||||||
|
} |
||||||
|
|
||||||
|
//加载最新帖子
|
||||||
|
@GetMapping("/forum/new") |
||||||
|
public ForumNewResponse loadForumNew() { |
||||||
|
List<Forum> forumList = forumDao.loadNewForum(); |
||||||
|
if (forumList != null) { |
||||||
|
ForumNewResponse response = new ForumNewResponse(Result.OK, ForumNewResponse.Msg.ok); |
||||||
|
response.setForumList(forumList); |
||||||
|
return response; |
||||||
|
} else { |
||||||
|
return new ForumNewResponse(Result.FAIL, ForumNewResponse.Msg.fail); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
//发送活动贴
|
||||||
|
@PostMapping("/forum/sendActive") |
||||||
|
public ForumPostResponse sendActive(ActiveForm activeForm) { |
||||||
|
if (tokenDao.checkToken(activeForm)) { |
||||||
|
Forum forum = forumDao.save(activeForm); |
||||||
|
if (forum != null) { |
||||||
|
ForumContent forumContent = forumContentDao.save(activeForm, forum); |
||||||
|
Active active = activeDao.save(activeForm, forum); |
||||||
|
if (forumContent != null && active != null) { |
||||||
|
return new ForumPostResponse(Result.OK, ForumPostResponse.Msg.ok); |
||||||
|
} |
||||||
|
} |
||||||
|
return new ForumPostResponse(Result.FAIL, ForumPostResponse.Msg.fail); |
||||||
|
} else { |
||||||
|
return new ForumPostResponse(Result.FAIL, ForumPostResponse.Msg.token); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
//发送动态贴
|
||||||
|
@PostMapping("/forum/sendTopic") |
||||||
|
public ForumPostResponse sendTopic(ForumForm forumForm) { |
||||||
|
if (tokenDao.checkToken(forumForm)) { |
||||||
|
Forum forum=forumDao.save(forumForm); |
||||||
|
if(forum!=null){ |
||||||
|
ForumContent forumContent=forumContentDao.save(forumForm,forum); |
||||||
|
if(forumContent!=null){ |
||||||
|
return new ForumPostResponse(Result.OK, ForumPostResponse.Msg.ok); |
||||||
|
} |
||||||
|
} |
||||||
|
return new ForumPostResponse(Result.FAIL, ForumPostResponse.Msg.fail); |
||||||
|
}else{ |
||||||
|
return new ForumPostResponse(Result.FAIL, ForumPostResponse.Msg.token); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
//发送投诉贴
|
||||||
|
@PostMapping("/forum/sendComplain") |
||||||
|
public ForumPostResponse sendComplain(ComplainForm complainForm) { |
||||||
|
if (tokenDao.checkToken(complainForm)) { |
||||||
|
Forum forum=forumDao.save(complainForm); |
||||||
|
if(forum!=null){ |
||||||
|
ForumContent forumContent=forumContentDao.save(complainForm,forum); |
||||||
|
Complain complain=complainDao.save(complainForm,forum); |
||||||
|
if(forumContent!=null&&complain!=null){ |
||||||
|
return new ForumPostResponse(Result.OK, ForumPostResponse.Msg.ok); |
||||||
|
} |
||||||
|
} |
||||||
|
return new ForumPostResponse(Result.FAIL, ForumPostResponse.Msg.fail); |
||||||
|
}else{ |
||||||
|
return new ForumPostResponse(Result.FAIL, ForumPostResponse.Msg.token); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 加载我的帖子 |
||||||
|
*/ |
||||||
|
@GetMapping("/forum/my") |
||||||
|
public ForumMyResponse loadForumMy(Token token) { |
||||||
|
if(tokenDao.checkToken(token)){ |
||||||
|
List<Forum> forumList=forumDao.loadMyForum(token.getUsername()); |
||||||
|
ForumMyResponse response=new ForumMyResponse(Result.OK, ForumMyResponse.Msg.ok); |
||||||
|
response.setForumList(forumList); |
||||||
|
return response; |
||||||
|
}else { |
||||||
|
return new ForumMyResponse(Result.FAIL, ForumMyResponse.Msg.token); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,141 @@ |
|||||||
|
package com.community.pocket.api.android; |
||||||
|
|
||||||
|
import com.community.pocket.entity.po.android.Token; |
||||||
|
import com.community.pocket.entity.vo.Result; |
||||||
|
import com.community.pocket.entity.vo.android.*; |
||||||
|
import com.community.pocket.repository.EmailDao; |
||||||
|
import com.community.pocket.repository.android.TokenDao; |
||||||
|
import com.community.pocket.repository.android.UserDao; |
||||||
|
import com.community.pocket.util.EmailService; |
||||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||||
|
import org.springframework.web.bind.annotation.GetMapping; |
||||||
|
import org.springframework.web.bind.annotation.PostMapping; |
||||||
|
import org.springframework.web.bind.annotation.RestController; |
||||||
|
|
||||||
|
/** |
||||||
|
* 用户接口 |
||||||
|
*/ |
||||||
|
@RestController |
||||||
|
public class UserController { |
||||||
|
|
||||||
|
@Autowired |
||||||
|
private UserDao userDao; |
||||||
|
|
||||||
|
@Autowired |
||||||
|
private EmailDao emailDao; |
||||||
|
|
||||||
|
@Autowired |
||||||
|
private EmailService emailService; |
||||||
|
|
||||||
|
@Autowired |
||||||
|
private TokenDao tokenDao; |
||||||
|
|
||||||
|
/** |
||||||
|
* 用户注册 |
||||||
|
* @param userRegister 注册表单信息 |
||||||
|
*/ |
||||||
|
@PostMapping("/register") |
||||||
|
public RegisterResponse register(UserRegister userRegister){ |
||||||
|
if(userDao.hasUser(userRegister.getUsername())){ |
||||||
|
return new RegisterResponse(Result.FAIL, RegisterResponse.Msg.name,userRegister.getUsername()); |
||||||
|
}else if(userDao.hasMobie(userRegister.getMobie())){ |
||||||
|
return new RegisterResponse(Result.FAIL, RegisterResponse.Msg.mobie,userRegister.getMobie()); |
||||||
|
}else if(userDao.hasEmail(userRegister.getEmail())){ |
||||||
|
return new RegisterResponse(Result.FAIL,RegisterResponse.Msg.email,userRegister.getEmail()); |
||||||
|
}else{ |
||||||
|
userDao.save(userRegister); |
||||||
|
return new RegisterResponse(Result.OK,RegisterResponse.Msg.ok); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 检查用户邮箱 |
||||||
|
*/ |
||||||
|
@PostMapping("/resetpwd/checkUser") |
||||||
|
public ResetPwdResponse checkUser(UserResetPwd userResetPwd){ |
||||||
|
if(userDao.hasUseWithEmail(userResetPwd.getUsername(),userResetPwd.getEmail())){ |
||||||
|
return new ResetPwdResponse(Result.OK,ResetPwdResponse.Msg.step1_ok); |
||||||
|
}else{ |
||||||
|
return new ResetPwdResponse(Result.FAIL,ResetPwdResponse.Msg.step1_fail); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 发送重置密码验证码 |
||||||
|
*/ |
||||||
|
@PostMapping("/resetpwd/sendCode") |
||||||
|
public ResetPwdResponse sendCode(UserResetPwd userResetPwd) { |
||||||
|
if(emailService.sendUserCode(userResetPwd.getEmail())){ |
||||||
|
return new ResetPwdResponse(Result.OK,ResetPwdResponse.Msg.step2_ok); |
||||||
|
}else{ |
||||||
|
return new ResetPwdResponse(Result.FAIL,ResetPwdResponse.Msg.step2_fail); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 检查验证码 |
||||||
|
*/ |
||||||
|
@PostMapping("/resetpwd/checkCode") |
||||||
|
public ResetPwdResponse checkCode(UserResetPwd userResetPwd) { |
||||||
|
if(emailDao.checkCode(userResetPwd.getEmail(),userResetPwd.getCode())){ |
||||||
|
return new ResetPwdResponse(Result.OK, ResetPwdResponse.Msg.step2_valid_ok); |
||||||
|
}else{ |
||||||
|
return new ResetPwdResponse(Result.FAIL, ResetPwdResponse.Msg.step2_valid_fail); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 重置密码 |
||||||
|
*/ |
||||||
|
@PostMapping("/resetpwd/resetPwd") |
||||||
|
public ResetPwdResponse resetPwd(UserResetPwd userResetPwd) { |
||||||
|
if(userDao.resetPwd(userResetPwd.getUsername(),userResetPwd.getPassword())){ |
||||||
|
return new ResetPwdResponse(Result.OK, ResetPwdResponse.Msg.step3_ok); |
||||||
|
}else{ |
||||||
|
return new ResetPwdResponse(Result.FAIL, ResetPwdResponse.Msg.step3_fail); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 用户登录 |
||||||
|
* @param username 用户 |
||||||
|
* @param password 密码 |
||||||
|
*/ |
||||||
|
@PostMapping("/login") |
||||||
|
public LoginResponse login(String username, String password) { |
||||||
|
if(userDao.login(username, password)){ |
||||||
|
Token token=tokenDao.save(username); |
||||||
|
LoginResponse response; |
||||||
|
if(token!=null) { |
||||||
|
response=new LoginResponse(Result.OK, LoginResponse.Msg.ok,username); |
||||||
|
response.setToken(token); |
||||||
|
}else{ |
||||||
|
response=new LoginResponse(Result.FAIL,LoginResponse.Msg.fail); |
||||||
|
} |
||||||
|
return response; |
||||||
|
}else{ |
||||||
|
return new LoginResponse(Result.FAIL,LoginResponse.Msg.fail); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@PostMapping("/login/token") |
||||||
|
public LoginResponse check(String token){ |
||||||
|
if(tokenDao.checkToken(token)){ |
||||||
|
Token t=tokenDao.get(token); |
||||||
|
if(t!=null){ |
||||||
|
LoginResponse response= new LoginResponse(Result.OK, LoginResponse.Msg.ok,t.getUsername()); |
||||||
|
response.setToken(t); |
||||||
|
return response; |
||||||
|
} |
||||||
|
} |
||||||
|
return new LoginResponse(Result.FAIL, LoginResponse.Msg.fail); |
||||||
|
} |
||||||
|
|
||||||
|
//检索投诉人
|
||||||
|
@GetMapping("/query/user") |
||||||
|
public QueryUserResponse searchPeople(QueryUserForm userForm) { |
||||||
|
QueryUserResponse queryUserResponse=new QueryUserResponse(Result.OK, QueryUserResponse.Msg.ok); |
||||||
|
queryUserResponse.setPeopleList(userDao.queryUser(userForm)); |
||||||
|
return queryUserResponse; |
||||||
|
} |
||||||
|
} |
@ -1,17 +1,108 @@ |
|||||||
package com.community.pocket.entity.po; |
package com.community.pocket.entity.po; |
||||||
|
|
||||||
import org.springframework.data.annotation.Id; |
import com.community.pocket.entity.po.android.MyInfo; |
||||||
|
import com.community.pocket.util.TableName; |
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnore; |
||||||
|
import org.bson.types.ObjectId; |
||||||
|
import org.springframework.data.mongodb.core.mapping.Document; |
||||||
|
|
||||||
//论坛贴
|
//论坛贴
|
||||||
|
@Document(TableName.forum) |
||||||
public class Forum { |
public class Forum { |
||||||
@Id |
|
||||||
private String id; |
|
||||||
|
|
||||||
public String getId() { |
@JsonIgnore |
||||||
|
private ObjectId id; |
||||||
|
|
||||||
|
//发帖时间
|
||||||
|
private Long time; |
||||||
|
//帖子标题
|
||||||
|
private String title; |
||||||
|
//回复数
|
||||||
|
private Integer reply; |
||||||
|
//帖子类型
|
||||||
|
private ForumType forumType; |
||||||
|
//缩略内容
|
||||||
|
private String content; |
||||||
|
|
||||||
|
@JsonIgnore |
||||||
|
private MyInfo myInfo; |
||||||
|
/** |
||||||
|
* 帖子类型 |
||||||
|
*/ |
||||||
|
public enum ForumType{ |
||||||
|
active, |
||||||
|
topic, |
||||||
|
complan |
||||||
|
} |
||||||
|
|
||||||
|
//发帖人
|
||||||
|
private String username; |
||||||
|
|
||||||
|
public Long getTime() { |
||||||
|
return time; |
||||||
|
} |
||||||
|
|
||||||
|
public void setTime(Long time) { |
||||||
|
this.time = time; |
||||||
|
} |
||||||
|
|
||||||
|
public String getTitle() { |
||||||
|
return title; |
||||||
|
} |
||||||
|
|
||||||
|
public void setTitle(String title) { |
||||||
|
this.title = title; |
||||||
|
} |
||||||
|
|
||||||
|
public String getUsername() { |
||||||
|
return username; |
||||||
|
} |
||||||
|
|
||||||
|
public void setUsername(String username) { |
||||||
|
this.username = username; |
||||||
|
} |
||||||
|
|
||||||
|
public ForumType getForumType() { |
||||||
|
return forumType; |
||||||
|
} |
||||||
|
|
||||||
|
public void setForumType(ForumType forumType) { |
||||||
|
this.forumType = forumType; |
||||||
|
} |
||||||
|
|
||||||
|
public Integer getReply() { |
||||||
|
return reply; |
||||||
|
} |
||||||
|
|
||||||
|
public void setReply(Integer reply) { |
||||||
|
this.reply = reply; |
||||||
|
} |
||||||
|
|
||||||
|
public MyInfo getMyInfo() { |
||||||
|
return myInfo; |
||||||
|
} |
||||||
|
|
||||||
|
public void setMyInfo(MyInfo myInfo) { |
||||||
|
this.myInfo = myInfo; |
||||||
|
} |
||||||
|
|
||||||
|
public String getContent() { |
||||||
|
return content; |
||||||
|
} |
||||||
|
|
||||||
|
public void setContent(String content) { |
||||||
|
this.content = content; |
||||||
|
} |
||||||
|
|
||||||
|
public ObjectId getId() { |
||||||
return id; |
return id; |
||||||
} |
} |
||||||
|
|
||||||
public void setId(String id) { |
public String getForumId(){ |
||||||
|
return this.id.toString(); |
||||||
|
} |
||||||
|
|
||||||
|
public void setId(ObjectId id) { |
||||||
this.id = id; |
this.id = id; |
||||||
} |
} |
||||||
} |
} |
||||||
|
@ -0,0 +1,62 @@ |
|||||||
|
package com.community.pocket.entity.po; |
||||||
|
|
||||||
|
import com.community.pocket.util.TableName; |
||||||
|
import org.bson.types.ObjectId; |
||||||
|
import org.springframework.data.mongodb.core.mapping.Document; |
||||||
|
|
||||||
|
/** |
||||||
|
* 帖子详情 |
||||||
|
*/ |
||||||
|
@Document(TableName.forumContent) |
||||||
|
public class ForumContent { |
||||||
|
//帖子id
|
||||||
|
private ObjectId id; |
||||||
|
//用户名
|
||||||
|
private String username; |
||||||
|
//发帖时间
|
||||||
|
private Long time; |
||||||
|
//楼层
|
||||||
|
private Integer tower; |
||||||
|
//帖子正文
|
||||||
|
private String content; |
||||||
|
|
||||||
|
public ObjectId getId() { |
||||||
|
return id; |
||||||
|
} |
||||||
|
|
||||||
|
public void setId(ObjectId id) { |
||||||
|
this.id = id; |
||||||
|
} |
||||||
|
|
||||||
|
public String getUsername() { |
||||||
|
return username; |
||||||
|
} |
||||||
|
|
||||||
|
public void setUsername(String username) { |
||||||
|
this.username = username; |
||||||
|
} |
||||||
|
|
||||||
|
public Long getTime() { |
||||||
|
return time; |
||||||
|
} |
||||||
|
|
||||||
|
public void setTime(Long time) { |
||||||
|
this.time = time; |
||||||
|
} |
||||||
|
|
||||||
|
public Integer getTower() { |
||||||
|
return tower; |
||||||
|
} |
||||||
|
|
||||||
|
public void setTower(Integer tower) { |
||||||
|
this.tower = tower; |
||||||
|
} |
||||||
|
|
||||||
|
public String getContent() { |
||||||
|
return content; |
||||||
|
} |
||||||
|
|
||||||
|
public void setContent(String content) { |
||||||
|
this.content = content; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,60 @@ |
|||||||
|
package com.community.pocket.entity.po; |
||||||
|
|
||||||
|
import com.community.pocket.util.TableName; |
||||||
|
import org.bson.types.ObjectId; |
||||||
|
import org.springframework.data.mongodb.core.mapping.Document; |
||||||
|
|
||||||
|
//公告信息
|
||||||
|
@Document(TableName.notice) |
||||||
|
public class Notice { |
||||||
|
|
||||||
|
private ObjectId id; |
||||||
|
//公告标题
|
||||||
|
private String title; |
||||||
|
//公告内容
|
||||||
|
private String content; |
||||||
|
//公告人
|
||||||
|
private String author; |
||||||
|
//公告时间
|
||||||
|
private Long time; |
||||||
|
|
||||||
|
public String getTitle() { |
||||||
|
return title; |
||||||
|
} |
||||||
|
|
||||||
|
public void setTitle(String title) { |
||||||
|
this.title = title; |
||||||
|
} |
||||||
|
|
||||||
|
public String getContent() { |
||||||
|
return content; |
||||||
|
} |
||||||
|
|
||||||
|
public void setContent(String content) { |
||||||
|
this.content = content; |
||||||
|
} |
||||||
|
|
||||||
|
public String getAuthor() { |
||||||
|
return author; |
||||||
|
} |
||||||
|
|
||||||
|
public void setAuthor(String author) { |
||||||
|
this.author = author; |
||||||
|
} |
||||||
|
|
||||||
|
public Long getTime() { |
||||||
|
return time; |
||||||
|
} |
||||||
|
|
||||||
|
public void setTime(Long time) { |
||||||
|
this.time = time; |
||||||
|
} |
||||||
|
|
||||||
|
public ObjectId getId() { |
||||||
|
return id; |
||||||
|
} |
||||||
|
|
||||||
|
public void setId(ObjectId id) { |
||||||
|
this.id = id; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,49 @@ |
|||||||
|
package com.community.pocket.entity.po.android; |
||||||
|
|
||||||
|
import com.community.pocket.util.TableName; |
||||||
|
import org.bson.types.ObjectId; |
||||||
|
import org.springframework.data.mongodb.core.mapping.Document; |
||||||
|
|
||||||
|
@Document(TableName.active) |
||||||
|
public class Active { |
||||||
|
//帖子id
|
||||||
|
private ObjectId id; |
||||||
|
//活动开始时间
|
||||||
|
private String activeStartTime; |
||||||
|
//活动结束时间
|
||||||
|
private String activeEndTime; |
||||||
|
//活动信用分
|
||||||
|
private String activeScore; |
||||||
|
|
||||||
|
public ObjectId getId() { |
||||||
|
return id; |
||||||
|
} |
||||||
|
|
||||||
|
public void setId(ObjectId id) { |
||||||
|
this.id = id; |
||||||
|
} |
||||||
|
|
||||||
|
public String getActiveStartTime() { |
||||||
|
return activeStartTime; |
||||||
|
} |
||||||
|
|
||||||
|
public void setActiveStartTime(String activeStartTime) { |
||||||
|
this.activeStartTime = activeStartTime; |
||||||
|
} |
||||||
|
|
||||||
|
public String getActiveEndTime() { |
||||||
|
return activeEndTime; |
||||||
|
} |
||||||
|
|
||||||
|
public void setActiveEndTime(String activeEndTime) { |
||||||
|
this.activeEndTime = activeEndTime; |
||||||
|
} |
||||||
|
|
||||||
|
public String getActiveScore() { |
||||||
|
return activeScore; |
||||||
|
} |
||||||
|
|
||||||
|
public void setActiveScore(String activeScore) { |
||||||
|
this.activeScore = activeScore; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,29 @@ |
|||||||
|
package com.community.pocket.entity.po.android; |
||||||
|
|
||||||
|
import org.bson.types.ObjectId; |
||||||
|
|
||||||
|
/** |
||||||
|
* 投诉人 |
||||||
|
*/ |
||||||
|
public class Complain { |
||||||
|
private ObjectId id; |
||||||
|
|
||||||
|
//投诉人
|
||||||
|
private String complain; |
||||||
|
|
||||||
|
public String getComplain() { |
||||||
|
return complain; |
||||||
|
} |
||||||
|
|
||||||
|
public void setComplain(String complain) { |
||||||
|
this.complain = complain; |
||||||
|
} |
||||||
|
|
||||||
|
public ObjectId getId() { |
||||||
|
return id; |
||||||
|
} |
||||||
|
|
||||||
|
public void setId(ObjectId id) { |
||||||
|
this.id = id; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,104 @@ |
|||||||
|
package com.community.pocket.entity.po.android; |
||||||
|
|
||||||
|
import com.community.pocket.util.TableName; |
||||||
|
import org.springframework.data.annotation.Id; |
||||||
|
import org.springframework.data.mongodb.core.mapping.Document; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
//用户信息
|
||||||
|
@Document(TableName.info) |
||||||
|
public class MyInfo { |
||||||
|
//用户名
|
||||||
|
@Id |
||||||
|
private String username; |
||||||
|
//密码
|
||||||
|
private String password; |
||||||
|
//信用分
|
||||||
|
private Integer creditScore; |
||||||
|
//头像
|
||||||
|
private String headImg; |
||||||
|
//最近发帖数
|
||||||
|
private Integer recentPosts; |
||||||
|
//最近访客数
|
||||||
|
private Integer recentVisitors; |
||||||
|
//手机号
|
||||||
|
private String mobie; |
||||||
|
//邮箱
|
||||||
|
private String email; |
||||||
|
|
||||||
|
//信用分历史记录
|
||||||
|
private List<Integer> scoreHistory; |
||||||
|
|
||||||
|
public String getUsername() { |
||||||
|
return username; |
||||||
|
} |
||||||
|
|
||||||
|
public void setUsername(String username) { |
||||||
|
this.username = username; |
||||||
|
} |
||||||
|
|
||||||
|
public String getPassword() { |
||||||
|
return password; |
||||||
|
} |
||||||
|
|
||||||
|
public void setPassword(String password) { |
||||||
|
this.password = password; |
||||||
|
} |
||||||
|
|
||||||
|
public Integer getCreditScore() { |
||||||
|
return creditScore; |
||||||
|
} |
||||||
|
|
||||||
|
public void setCreditScore(Integer creditScore) { |
||||||
|
this.creditScore = creditScore; |
||||||
|
} |
||||||
|
|
||||||
|
public String getHeadImg() { |
||||||
|
return headImg; |
||||||
|
} |
||||||
|
|
||||||
|
public void setHeadImg(String headImg) { |
||||||
|
this.headImg = headImg; |
||||||
|
} |
||||||
|
|
||||||
|
public Integer getRecentPosts() { |
||||||
|
return recentPosts; |
||||||
|
} |
||||||
|
|
||||||
|
public void setRecentPosts(Integer recentPosts) { |
||||||
|
this.recentPosts = recentPosts; |
||||||
|
} |
||||||
|
|
||||||
|
public Integer getRecentVisitors() { |
||||||
|
return recentVisitors; |
||||||
|
} |
||||||
|
|
||||||
|
public void setRecentVisitors(Integer recentVisitors) { |
||||||
|
this.recentVisitors = recentVisitors; |
||||||
|
} |
||||||
|
|
||||||
|
public String getMobie() { |
||||||
|
return mobie; |
||||||
|
} |
||||||
|
|
||||||
|
public void setMobie(String mobie) { |
||||||
|
this.mobie = mobie; |
||||||
|
} |
||||||
|
|
||||||
|
public String getEmail() { |
||||||
|
return email; |
||||||
|
} |
||||||
|
|
||||||
|
public void setEmail(String email) { |
||||||
|
this.email = email; |
||||||
|
} |
||||||
|
|
||||||
|
public List<Integer> getScoreHistory() { |
||||||
|
return scoreHistory; |
||||||
|
} |
||||||
|
|
||||||
|
public void setScoreHistory(List<Integer> scoreHistory) { |
||||||
|
this.scoreHistory = scoreHistory; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,42 @@ |
|||||||
|
package com.community.pocket.entity.po.android; |
||||||
|
|
||||||
|
import com.community.pocket.util.TableName; |
||||||
|
import org.springframework.data.annotation.Id; |
||||||
|
import org.springframework.data.mongodb.core.mapping.Document; |
||||||
|
|
||||||
|
/** |
||||||
|
* 用户令牌 |
||||||
|
*/ |
||||||
|
@Document(TableName.token) |
||||||
|
public class Token { |
||||||
|
@Id |
||||||
|
private String token; |
||||||
|
|
||||||
|
private long time; |
||||||
|
|
||||||
|
private String username; |
||||||
|
|
||||||
|
public String getToken() { |
||||||
|
return token; |
||||||
|
} |
||||||
|
|
||||||
|
public void setToken(String token) { |
||||||
|
this.token = token; |
||||||
|
} |
||||||
|
|
||||||
|
public long getTime() { |
||||||
|
return time; |
||||||
|
} |
||||||
|
|
||||||
|
public void setTime(long time) { |
||||||
|
this.time = time; |
||||||
|
} |
||||||
|
|
||||||
|
public String getUsername() { |
||||||
|
return username; |
||||||
|
} |
||||||
|
|
||||||
|
public void setUsername(String username) { |
||||||
|
this.username = username; |
||||||
|
} |
||||||
|
} |
@ -1,21 +0,0 @@ |
|||||||
package com.community.pocket.entity.vo; |
|
||||||
|
|
||||||
import org.springframework.boot.context.properties.ConfigurationProperties; |
|
||||||
import org.springframework.stereotype.Component; |
|
||||||
|
|
||||||
import java.util.List; |
|
||||||
|
|
||||||
@Component |
|
||||||
@ConfigurationProperties(prefix = "email") |
|
||||||
public class Common { |
|
||||||
|
|
||||||
private List<EmailType> supportType; |
|
||||||
|
|
||||||
public List<EmailType> getSupportType() { |
|
||||||
return supportType; |
|
||||||
} |
|
||||||
|
|
||||||
public void setSupportType(List<EmailType> supportType) { |
|
||||||
this.supportType = supportType; |
|
||||||
} |
|
||||||
} |
|
@ -0,0 +1,84 @@ |
|||||||
|
package com.community.pocket.entity.vo; |
||||||
|
|
||||||
|
import org.springframework.beans.factory.annotation.Value; |
||||||
|
import org.springframework.boot.context.properties.ConfigurationProperties; |
||||||
|
import org.springframework.stereotype.Component; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* 读取邮箱配置 |
||||||
|
*/ |
||||||
|
@Component |
||||||
|
@ConfigurationProperties("email") |
||||||
|
public class EmailTypeConfig { |
||||||
|
|
||||||
|
//发件地址
|
||||||
|
private String from; |
||||||
|
|
||||||
|
//发件人
|
||||||
|
private String subject; |
||||||
|
|
||||||
|
//验证码长度
|
||||||
|
@Value("${email.code.length}") |
||||||
|
private Integer length; |
||||||
|
|
||||||
|
//管理员注册验证信息
|
||||||
|
@Value("${email.code.manager}") |
||||||
|
private String managerCodeMessage; |
||||||
|
|
||||||
|
//用户重置密码信息
|
||||||
|
@Value("${email.code.user}") |
||||||
|
private String userCodeMessage; |
||||||
|
|
||||||
|
public String getManagerCodeMessage() { |
||||||
|
return managerCodeMessage; |
||||||
|
} |
||||||
|
|
||||||
|
public void setManagerCodeMessage(String managerCodeMessage) { |
||||||
|
this.managerCodeMessage = managerCodeMessage; |
||||||
|
} |
||||||
|
|
||||||
|
public String getUserCodeMessage() { |
||||||
|
return userCodeMessage; |
||||||
|
} |
||||||
|
|
||||||
|
public void setUserCodeMessage(String userCodeMessage) { |
||||||
|
this.userCodeMessage = userCodeMessage; |
||||||
|
} |
||||||
|
|
||||||
|
public String getFrom() { |
||||||
|
return from; |
||||||
|
} |
||||||
|
|
||||||
|
public void setFrom(String from) { |
||||||
|
this.from = from; |
||||||
|
} |
||||||
|
|
||||||
|
public String getSubject() { |
||||||
|
return subject; |
||||||
|
} |
||||||
|
|
||||||
|
public void setSubject(String subject) { |
||||||
|
this.subject = subject; |
||||||
|
} |
||||||
|
|
||||||
|
public Integer getLength() { |
||||||
|
return length; |
||||||
|
} |
||||||
|
|
||||||
|
public void setLength(Integer length) { |
||||||
|
this.length = length; |
||||||
|
} |
||||||
|
|
||||||
|
//支持邮箱类型
|
||||||
|
private List<EmailType> supportType; |
||||||
|
|
||||||
|
public List<EmailType> getSupportType() { |
||||||
|
return supportType; |
||||||
|
} |
||||||
|
|
||||||
|
public void setSupportType(List<EmailType> supportType) { |
||||||
|
this.supportType = supportType; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,38 @@ |
|||||||
|
package com.community.pocket.entity.vo.android; |
||||||
|
|
||||||
|
/** |
||||||
|
* 活动贴 |
||||||
|
*/ |
||||||
|
public class ActiveForm extends ForumForm { |
||||||
|
//活动开始时间
|
||||||
|
private String activeStartTime; |
||||||
|
//活动结束时间
|
||||||
|
private String activeEndTime; |
||||||
|
//活动信用分
|
||||||
|
private String activeScore; |
||||||
|
|
||||||
|
public String getActiveStartTime() { |
||||||
|
return activeStartTime; |
||||||
|
} |
||||||
|
|
||||||
|
public void setActiveStartTime(String activeStartTime) { |
||||||
|
this.activeStartTime = activeStartTime; |
||||||
|
} |
||||||
|
|
||||||
|
public String getActiveEndTime() { |
||||||
|
return activeEndTime; |
||||||
|
} |
||||||
|
|
||||||
|
public void setActiveEndTime(String activeEndTime) { |
||||||
|
this.activeEndTime = activeEndTime; |
||||||
|
} |
||||||
|
|
||||||
|
public String getActiveScore() { |
||||||
|
return activeScore; |
||||||
|
} |
||||||
|
|
||||||
|
public void setActiveScore(String activeScore) { |
||||||
|
this.activeScore = activeScore; |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,47 @@ |
|||||||
|
package com.community.pocket.entity.vo.android; |
||||||
|
|
||||||
|
import com.community.pocket.entity.vo.Result; |
||||||
|
|
||||||
|
/** |
||||||
|
* android接口响应体 |
||||||
|
* @param <T> |
||||||
|
*/ |
||||||
|
public abstract class AndroidResponse<T extends CustomMessage> { |
||||||
|
|
||||||
|
//操作结果
|
||||||
|
private Result result; |
||||||
|
|
||||||
|
private T message; |
||||||
|
|
||||||
|
private Object[] args; |
||||||
|
|
||||||
|
public AndroidResponse(Result result, T message,Object ...args) { |
||||||
|
this.result = result; |
||||||
|
this.message = message; |
||||||
|
this.args=args; |
||||||
|
} |
||||||
|
|
||||||
|
public Object[] getArgs() { |
||||||
|
return args; |
||||||
|
} |
||||||
|
|
||||||
|
public void setArgs(Object[] args) { |
||||||
|
this.args = args; |
||||||
|
} |
||||||
|
|
||||||
|
public Result getResult() { |
||||||
|
return result; |
||||||
|
} |
||||||
|
|
||||||
|
public void setResult(Result result) { |
||||||
|
this.result = result; |
||||||
|
} |
||||||
|
|
||||||
|
public T getMessage() { |
||||||
|
return message; |
||||||
|
} |
||||||
|
|
||||||
|
public void setMessage(T message) { |
||||||
|
this.message = message; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,13 @@ |
|||||||
|
package com.community.pocket.entity.vo.android; |
||||||
|
|
||||||
|
public class ComplainForm extends ForumForm{ |
||||||
|
private String complain; |
||||||
|
|
||||||
|
public String getComplain() { |
||||||
|
return complain; |
||||||
|
} |
||||||
|
|
||||||
|
public void setComplain(String complain) { |
||||||
|
this.complain = complain; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,9 @@ |
|||||||
|
package com.community.pocket.entity.vo.android; |
||||||
|
|
||||||
|
/** |
||||||
|
* 自定义响应信息 |
||||||
|
*/ |
||||||
|
public interface CustomMessage { |
||||||
|
|
||||||
|
} |
||||||
|
|
@ -0,0 +1,27 @@ |
|||||||
|
package com.community.pocket.entity.vo.android; |
||||||
|
|
||||||
|
import com.community.pocket.entity.po.android.Token; |
||||||
|
|
||||||
|
public class ForumForm extends Token { |
||||||
|
//标题
|
||||||
|
private String title; |
||||||
|
//正文
|
||||||
|
private String content; |
||||||
|
|
||||||
|
|
||||||
|
public String getTitle() { |
||||||
|
return title; |
||||||
|
} |
||||||
|
|
||||||
|
public void setTitle(String title) { |
||||||
|
this.title = title; |
||||||
|
} |
||||||
|
|
||||||
|
public String getContent() { |
||||||
|
return content; |
||||||
|
} |
||||||
|
|
||||||
|
public void setContent(String content) { |
||||||
|
this.content = content; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,38 @@ |
|||||||
|
package com.community.pocket.entity.vo.android; |
||||||
|
|
||||||
|
/** |
||||||
|
* 帖子列表 |
||||||
|
*/ |
||||||
|
public class ForumHot { |
||||||
|
//论坛ID
|
||||||
|
private String forumId; |
||||||
|
//论坛标题
|
||||||
|
private String title; |
||||||
|
//回复数
|
||||||
|
private Integer reply; |
||||||
|
|
||||||
|
public Integer getReply() { |
||||||
|
return reply; |
||||||
|
} |
||||||
|
|
||||||
|
public void setReply(Integer reply) { |
||||||
|
this.reply = reply; |
||||||
|
} |
||||||
|
|
||||||
|
public String getForumId() { |
||||||
|
return forumId; |
||||||
|
} |
||||||
|
|
||||||
|
public void setForumId(String forumId) { |
||||||
|
this.forumId = forumId; |
||||||
|
} |
||||||
|
|
||||||
|
public String getTitle() { |
||||||
|
return title; |
||||||
|
} |
||||||
|
|
||||||
|
public void setTitle(String title) { |
||||||
|
this.title = title; |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,27 @@ |
|||||||
|
package com.community.pocket.entity.vo.android; |
||||||
|
|
||||||
|
import com.community.pocket.entity.vo.Result; |
||||||
|
|
||||||
|
/** |
||||||
|
* 热榜信息响应体 |
||||||
|
*/ |
||||||
|
public class ForumHotResponse extends AndroidResponse<ForumHotResponse.Msg> { |
||||||
|
private Hot hot; |
||||||
|
|
||||||
|
public Hot getHot() { |
||||||
|
return hot; |
||||||
|
} |
||||||
|
|
||||||
|
public void setHot(Hot hot) { |
||||||
|
this.hot = hot; |
||||||
|
} |
||||||
|
|
||||||
|
public ForumHotResponse(Result result, Msg message, Object... args) { |
||||||
|
super(result, message, args); |
||||||
|
} |
||||||
|
|
||||||
|
public enum Msg implements CustomMessage{ |
||||||
|
ok, |
||||||
|
fail |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,31 @@ |
|||||||
|
package com.community.pocket.entity.vo.android; |
||||||
|
|
||||||
|
import com.community.pocket.entity.po.Forum; |
||||||
|
import com.community.pocket.entity.vo.Result; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* 我的帖子响应结果 |
||||||
|
*/ |
||||||
|
public class ForumMyResponse extends AndroidResponse<ForumMyResponse.Msg>{ |
||||||
|
private List<Forum> forumList; |
||||||
|
|
||||||
|
public ForumMyResponse(Result result, Msg message, Object... args) { |
||||||
|
super(result, message, args); |
||||||
|
} |
||||||
|
|
||||||
|
public List<Forum> getForumList() { |
||||||
|
return forumList; |
||||||
|
} |
||||||
|
|
||||||
|
public void setForumList(List<Forum> forumList) { |
||||||
|
this.forumList = forumList; |
||||||
|
} |
||||||
|
|
||||||
|
public enum Msg implements CustomMessage{ |
||||||
|
ok, |
||||||
|
fail, |
||||||
|
token |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,31 @@ |
|||||||
|
package com.community.pocket.entity.vo.android; |
||||||
|
|
||||||
|
import com.community.pocket.entity.po.Forum; |
||||||
|
import com.community.pocket.entity.vo.Result; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* 最新帖子响应 |
||||||
|
*/ |
||||||
|
public class ForumNewResponse extends AndroidResponse<ForumNewResponse.Msg> { |
||||||
|
|
||||||
|
private List<Forum> forumList; |
||||||
|
|
||||||
|
public List<Forum> getForumList() { |
||||||
|
return forumList; |
||||||
|
} |
||||||
|
|
||||||
|
public void setForumList(List<Forum> forumList) { |
||||||
|
this.forumList = forumList; |
||||||
|
} |
||||||
|
|
||||||
|
public ForumNewResponse(Result result, Msg message, Object... args) { |
||||||
|
super(result, message, args); |
||||||
|
} |
||||||
|
|
||||||
|
public enum Msg implements CustomMessage{ |
||||||
|
ok, |
||||||
|
fail |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,31 @@ |
|||||||
|
package com.community.pocket.entity.vo.android; |
||||||
|
|
||||||
|
import com.community.pocket.entity.po.Notice; |
||||||
|
import com.community.pocket.entity.vo.Result; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* 公告响应体 |
||||||
|
*/ |
||||||
|
public class ForumNoticeResponse extends AndroidResponse<ForumNoticeResponse.Msg> { |
||||||
|
|
||||||
|
private List<Notice> noticeList; |
||||||
|
|
||||||
|
public List<Notice> getNoticeList() { |
||||||
|
return noticeList; |
||||||
|
} |
||||||
|
|
||||||
|
public void setNoticeList(List<Notice> noticeList) { |
||||||
|
this.noticeList = noticeList; |
||||||
|
} |
||||||
|
|
||||||
|
public ForumNoticeResponse(Result result, Msg message, Object... args) { |
||||||
|
super(result, message, args); |
||||||
|
} |
||||||
|
|
||||||
|
public enum Msg implements CustomMessage { |
||||||
|
ok, |
||||||
|
fail |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,18 @@ |
|||||||
|
package com.community.pocket.entity.vo.android; |
||||||
|
|
||||||
|
import com.community.pocket.entity.vo.Result; |
||||||
|
|
||||||
|
/** |
||||||
|
* 发帖响应 |
||||||
|
*/ |
||||||
|
public class ForumPostResponse extends AndroidResponse<ForumPostResponse.Msg>{ |
||||||
|
public ForumPostResponse(Result result, Msg message, Object... args) { |
||||||
|
super(result, message, args); |
||||||
|
} |
||||||
|
|
||||||
|
public enum Msg implements CustomMessage{ |
||||||
|
ok, |
||||||
|
fail, |
||||||
|
token |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,33 @@ |
|||||||
|
package com.community.pocket.entity.vo.android; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* 热门动态实体 |
||||||
|
*/ |
||||||
|
public class Hot { |
||||||
|
//活跃用户
|
||||||
|
private List<UserHot> userHots; |
||||||
|
//热门动态
|
||||||
|
private List<ForumHot> topicHots; |
||||||
|
//热门活动
|
||||||
|
private List<ForumHot> activeHots; |
||||||
|
|
||||||
|
public Hot(List<UserHot> userHots, List<ForumHot> topicHots, List<ForumHot> activeHots) { |
||||||
|
this.userHots = userHots; |
||||||
|
this.topicHots = topicHots; |
||||||
|
this.activeHots = activeHots; |
||||||
|
} |
||||||
|
|
||||||
|
public List<UserHot> getUserHots() { |
||||||
|
return userHots; |
||||||
|
} |
||||||
|
|
||||||
|
public List<ForumHot> getTopicHots() { |
||||||
|
return topicHots; |
||||||
|
} |
||||||
|
|
||||||
|
public List<ForumHot> getActiveHots() { |
||||||
|
return activeHots; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,28 @@ |
|||||||
|
package com.community.pocket.entity.vo.android; |
||||||
|
|
||||||
|
import com.community.pocket.entity.po.android.Token; |
||||||
|
import com.community.pocket.entity.vo.Result; |
||||||
|
|
||||||
|
/** |
||||||
|
* 登陆响应 |
||||||
|
*/ |
||||||
|
public class LoginResponse extends AndroidResponse<LoginResponse.Msg> { |
||||||
|
private Token token; |
||||||
|
|
||||||
|
public Token getToken() { |
||||||
|
return token; |
||||||
|
} |
||||||
|
|
||||||
|
public void setToken(Token token) { |
||||||
|
this.token = token; |
||||||
|
} |
||||||
|
|
||||||
|
public LoginResponse(Result result, Msg message, Object... args) { |
||||||
|
super(result, message, args); |
||||||
|
} |
||||||
|
|
||||||
|
public enum Msg implements CustomMessage{ |
||||||
|
ok, |
||||||
|
fail |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,27 @@ |
|||||||
|
package com.community.pocket.entity.vo.android; |
||||||
|
|
||||||
|
/** |
||||||
|
* 检索用户表单 |
||||||
|
*/ |
||||||
|
public class QueryUserForm { |
||||||
|
//模糊匹配关键字
|
||||||
|
private String name; |
||||||
|
//排除自己
|
||||||
|
private String username; |
||||||
|
|
||||||
|
public String getName() { |
||||||
|
return name; |
||||||
|
} |
||||||
|
|
||||||
|
public void setName(String name) { |
||||||
|
this.name = name; |
||||||
|
} |
||||||
|
|
||||||
|
public String getUsername() { |
||||||
|
return username; |
||||||
|
} |
||||||
|
|
||||||
|
public void setUsername(String username) { |
||||||
|
this.username = username; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,29 @@ |
|||||||
|
package com.community.pocket.entity.vo.android; |
||||||
|
|
||||||
|
import com.community.pocket.entity.vo.Result; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* 查询用户 |
||||||
|
*/ |
||||||
|
public class QueryUserResponse extends AndroidResponse<QueryUserResponse.Msg>{ |
||||||
|
private List<String> peopleList; |
||||||
|
|
||||||
|
public QueryUserResponse(Result result, Msg message, Object... args) { |
||||||
|
super(result, message, args); |
||||||
|
} |
||||||
|
|
||||||
|
public List<String> getPeopleList() { |
||||||
|
return peopleList; |
||||||
|
} |
||||||
|
|
||||||
|
public void setPeopleList(List<String> peopleList) { |
||||||
|
this.peopleList = peopleList; |
||||||
|
} |
||||||
|
|
||||||
|
public enum Msg implements CustomMessage{ |
||||||
|
ok, |
||||||
|
fail |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,24 @@ |
|||||||
|
package com.community.pocket.entity.vo.android; |
||||||
|
|
||||||
|
import com.community.pocket.entity.vo.Result; |
||||||
|
|
||||||
|
/** |
||||||
|
* 注册响应 |
||||||
|
*/ |
||||||
|
public class RegisterResponse extends AndroidResponse<RegisterResponse.Msg> { |
||||||
|
|
||||||
|
|
||||||
|
public RegisterResponse(Result result, Msg message, Object... args) { |
||||||
|
super(result, message, args); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 响应类型 |
||||||
|
*/ |
||||||
|
public enum Msg implements CustomMessage { |
||||||
|
ok, |
||||||
|
name, |
||||||
|
mobie, |
||||||
|
email |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,24 @@ |
|||||||
|
package com.community.pocket.entity.vo.android; |
||||||
|
|
||||||
|
import com.community.pocket.entity.vo.Result; |
||||||
|
|
||||||
|
/** |
||||||
|
* 重置密码响应 |
||||||
|
*/ |
||||||
|
public class ResetPwdResponse extends AndroidResponse<ResetPwdResponse.Msg>{ |
||||||
|
|
||||||
|
public ResetPwdResponse(Result result, Msg message, Object... args) { |
||||||
|
super(result, message, args); |
||||||
|
} |
||||||
|
|
||||||
|
public enum Msg implements CustomMessage { |
||||||
|
step1_ok, |
||||||
|
step1_fail, |
||||||
|
step2_ok, |
||||||
|
step2_fail, |
||||||
|
step2_valid_ok, |
||||||
|
step2_valid_fail, |
||||||
|
step3_ok, |
||||||
|
step3_fail |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,28 @@ |
|||||||
|
package com.community.pocket.entity.vo.android; |
||||||
|
|
||||||
|
/** |
||||||
|
* 活跃用户 |
||||||
|
*/ |
||||||
|
public class UserHot { |
||||||
|
//用户名
|
||||||
|
private String userName; |
||||||
|
//信用分
|
||||||
|
private Integer creditScore; |
||||||
|
|
||||||
|
public Integer getCreditScore() { |
||||||
|
return creditScore; |
||||||
|
} |
||||||
|
|
||||||
|
public void setCreditScore(Integer creditScore) { |
||||||
|
this.creditScore = creditScore; |
||||||
|
} |
||||||
|
|
||||||
|
public String getUserName() { |
||||||
|
return userName; |
||||||
|
} |
||||||
|
|
||||||
|
public void setUserName(String userName) { |
||||||
|
this.userName = userName; |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,47 @@ |
|||||||
|
package com.community.pocket.entity.vo.android; |
||||||
|
|
||||||
|
/** |
||||||
|
* 用户注册 |
||||||
|
*/ |
||||||
|
public class UserRegister { |
||||||
|
//用户名
|
||||||
|
private String username; |
||||||
|
//密码
|
||||||
|
private String password; |
||||||
|
//手机
|
||||||
|
private String mobie; |
||||||
|
//邮箱
|
||||||
|
private String email; |
||||||
|
|
||||||
|
public String getUsername() { |
||||||
|
return username; |
||||||
|
} |
||||||
|
|
||||||
|
public void setUsername(String username) { |
||||||
|
this.username = username; |
||||||
|
} |
||||||
|
|
||||||
|
public String getPassword() { |
||||||
|
return password; |
||||||
|
} |
||||||
|
|
||||||
|
public void setPassword(String password) { |
||||||
|
this.password = password; |
||||||
|
} |
||||||
|
|
||||||
|
public String getMobie() { |
||||||
|
return mobie; |
||||||
|
} |
||||||
|
|
||||||
|
public void setMobie(String mobie) { |
||||||
|
this.mobie = mobie; |
||||||
|
} |
||||||
|
|
||||||
|
public String getEmail() { |
||||||
|
return email; |
||||||
|
} |
||||||
|
|
||||||
|
public void setEmail(String email) { |
||||||
|
this.email = email; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,45 @@ |
|||||||
|
package com.community.pocket.entity.vo.android; |
||||||
|
|
||||||
|
//用户重置密码
|
||||||
|
public class UserResetPwd { |
||||||
|
//用户名
|
||||||
|
private String username; |
||||||
|
//邮箱
|
||||||
|
private String email; |
||||||
|
//验证码
|
||||||
|
private String code; |
||||||
|
//重置密码
|
||||||
|
private String password; |
||||||
|
|
||||||
|
public String getUsername() { |
||||||
|
return username; |
||||||
|
} |
||||||
|
|
||||||
|
public void setUsername(String username) { |
||||||
|
this.username = username; |
||||||
|
} |
||||||
|
|
||||||
|
public String getEmail() { |
||||||
|
return email; |
||||||
|
} |
||||||
|
|
||||||
|
public void setEmail(String email) { |
||||||
|
this.email = email; |
||||||
|
} |
||||||
|
|
||||||
|
public String getCode() { |
||||||
|
return code; |
||||||
|
} |
||||||
|
|
||||||
|
public void setCode(String code) { |
||||||
|
this.code = code; |
||||||
|
} |
||||||
|
|
||||||
|
public String getPassword() { |
||||||
|
return password; |
||||||
|
} |
||||||
|
|
||||||
|
public void setPassword(String password) { |
||||||
|
this.password = password; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,16 @@ |
|||||||
|
package com.community.pocket.repository; |
||||||
|
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||||
|
import org.springframework.data.mongodb.core.MongoTemplate; |
||||||
|
|
||||||
|
public abstract class BaseDao<T> { |
||||||
|
|
||||||
|
|
||||||
|
@Autowired |
||||||
|
protected MongoTemplate mongoTemplate; |
||||||
|
|
||||||
|
//增加
|
||||||
|
public abstract T save(T t); |
||||||
|
|
||||||
|
public abstract Class<T> entityClass(); |
||||||
|
} |
@ -0,0 +1,49 @@ |
|||||||
|
package com.community.pocket.repository; |
||||||
|
|
||||||
|
import com.community.pocket.entity.po.EmailCode; |
||||||
|
import com.mongodb.client.result.DeleteResult; |
||||||
|
import org.slf4j.Logger; |
||||||
|
import org.slf4j.LoggerFactory; |
||||||
|
import org.springframework.data.mongodb.core.query.Criteria; |
||||||
|
import org.springframework.data.mongodb.core.query.Query; |
||||||
|
import org.springframework.stereotype.Repository; |
||||||
|
import org.springframework.util.StringUtils; |
||||||
|
|
||||||
|
/** |
||||||
|
* 邮件管理 |
||||||
|
*/ |
||||||
|
@Repository |
||||||
|
public class EmailDao extends BaseDao<EmailCode> { |
||||||
|
|
||||||
|
private static final Logger LOG = LoggerFactory.getLogger(EmailDao.class); |
||||||
|
|
||||||
|
//检查验证码
|
||||||
|
public boolean checkCode(String email,String code){ |
||||||
|
if(!StringUtils.isEmpty(email)&&!StringUtils.isEmpty(code)){ |
||||||
|
return mongoTemplate.exists(new Query().addCriteria(Criteria.where("emailAddress").is(email).and("code").is(code)), entityClass()); |
||||||
|
}else { |
||||||
|
return false; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public boolean clearEmail(String email){ |
||||||
|
DeleteResult result= mongoTemplate.remove(new Query(Criteria.where("emailAddress").is(email)),entityClass()); |
||||||
|
return result.wasAcknowledged(); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public EmailCode save(EmailCode emailCode) { |
||||||
|
try { |
||||||
|
return mongoTemplate.save(emailCode); |
||||||
|
} catch (Exception e) { |
||||||
|
e.printStackTrace(); |
||||||
|
LOG.error(e.toString()); |
||||||
|
} |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Class<EmailCode> entityClass() { |
||||||
|
return EmailCode.class; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,42 @@ |
|||||||
|
package com.community.pocket.repository.android; |
||||||
|
|
||||||
|
import com.community.pocket.entity.po.Forum; |
||||||
|
import com.community.pocket.entity.po.android.Active; |
||||||
|
import com.community.pocket.entity.vo.android.ActiveForm; |
||||||
|
import com.community.pocket.repository.BaseDao; |
||||||
|
import org.slf4j.Logger; |
||||||
|
import org.slf4j.LoggerFactory; |
||||||
|
import org.springframework.stereotype.Repository; |
||||||
|
|
||||||
|
//活动贴数据接口
|
||||||
|
@Repository |
||||||
|
public class ActiveDao extends BaseDao<Active>{ |
||||||
|
|
||||||
|
private static final Logger LOG = LoggerFactory.getLogger(ForumDao.class); |
||||||
|
|
||||||
|
//保存活动贴
|
||||||
|
public Active save(ActiveForm activeForm, Forum forum) { |
||||||
|
Active active=new Active(); |
||||||
|
active.setId(forum.getId()); |
||||||
|
active.setActiveStartTime(activeForm.getActiveStartTime()); |
||||||
|
active.setActiveEndTime(activeForm.getActiveEndTime()); |
||||||
|
active.setActiveScore(activeForm.getActiveScore()); |
||||||
|
return save(active); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Active save(Active active) { |
||||||
|
try { |
||||||
|
return mongoTemplate.save(active); |
||||||
|
} catch (Exception e) { |
||||||
|
e.printStackTrace(); |
||||||
|
LOG.error(e.toString()); |
||||||
|
} |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Class<Active> entityClass() { |
||||||
|
return Active.class; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,41 @@ |
|||||||
|
package com.community.pocket.repository.android; |
||||||
|
|
||||||
|
import com.community.pocket.entity.po.Forum; |
||||||
|
import com.community.pocket.entity.po.android.Complain; |
||||||
|
import com.community.pocket.entity.vo.android.ComplainForm; |
||||||
|
import com.community.pocket.repository.BaseDao; |
||||||
|
import org.slf4j.Logger; |
||||||
|
import org.slf4j.LoggerFactory; |
||||||
|
import org.springframework.stereotype.Repository; |
||||||
|
|
||||||
|
/** |
||||||
|
* 投诉人保存 |
||||||
|
*/ |
||||||
|
@Repository |
||||||
|
public class ComplainDao extends BaseDao<Complain> { |
||||||
|
private static final Logger LOG = LoggerFactory.getLogger(ComplainDao.class); |
||||||
|
|
||||||
|
//保存投诉贴
|
||||||
|
public Complain save(ComplainForm complainForm, Forum forum) { |
||||||
|
Complain complain=new Complain(); |
||||||
|
complain.setComplain(complainForm.getComplain()); |
||||||
|
complain.setId(forum.getId()); |
||||||
|
return save(complain); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Complain save(Complain complain) { |
||||||
|
try { |
||||||
|
return mongoTemplate.save(complain); |
||||||
|
} catch (Exception e) { |
||||||
|
e.printStackTrace(); |
||||||
|
LOG.error(e.toString()); |
||||||
|
} |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Class<Complain> entityClass() { |
||||||
|
return Complain.class; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,46 @@ |
|||||||
|
package com.community.pocket.repository.android; |
||||||
|
|
||||||
|
import com.community.pocket.entity.po.Forum; |
||||||
|
import com.community.pocket.entity.po.ForumContent; |
||||||
|
import com.community.pocket.entity.vo.android.ForumForm; |
||||||
|
import com.community.pocket.repository.BaseDao; |
||||||
|
import org.slf4j.Logger; |
||||||
|
import org.slf4j.LoggerFactory; |
||||||
|
import org.springframework.stereotype.Repository; |
||||||
|
|
||||||
|
/** |
||||||
|
* 帖子正文详情 |
||||||
|
*/ |
||||||
|
@Repository |
||||||
|
public class ForumContentDao extends BaseDao<ForumContent> { |
||||||
|
private static final Logger LOG = LoggerFactory.getLogger(ForumDao.class); |
||||||
|
/** |
||||||
|
* 保存帖子详情 |
||||||
|
*/ |
||||||
|
public ForumContent save(ForumForm forumForm, Forum forum){ |
||||||
|
ForumContent forumContent=new ForumContent(); |
||||||
|
forumContent.setContent(forumForm.getContent()); |
||||||
|
forumContent.setId(forum.getId()); |
||||||
|
forumContent.setTime(forum.getTime()); |
||||||
|
forumContent.setTower(1); |
||||||
|
forumContent.setUsername(forum.getUsername()); |
||||||
|
return save(forumContent); |
||||||
|
} |
||||||
|
|
||||||
|
//保存
|
||||||
|
@Override |
||||||
|
public ForumContent save(ForumContent forumContent) { |
||||||
|
try { |
||||||
|
return mongoTemplate.save(forumContent); |
||||||
|
} catch (Exception e) { |
||||||
|
e.printStackTrace(); |
||||||
|
LOG.error(e.toString()); |
||||||
|
} |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Class<ForumContent> entityClass() { |
||||||
|
return ForumContent.class; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,151 @@ |
|||||||
|
package com.community.pocket.repository.android; |
||||||
|
|
||||||
|
import com.community.pocket.entity.po.Forum; |
||||||
|
import com.community.pocket.entity.vo.android.ActiveForm; |
||||||
|
import com.community.pocket.entity.vo.android.ComplainForm; |
||||||
|
import com.community.pocket.entity.vo.android.ForumForm; |
||||||
|
import com.community.pocket.entity.vo.android.ForumHot; |
||||||
|
import com.community.pocket.repository.BaseDao; |
||||||
|
import com.community.pocket.util.TableName; |
||||||
|
import org.slf4j.Logger; |
||||||
|
import org.slf4j.LoggerFactory; |
||||||
|
import org.springframework.beans.factory.annotation.Value; |
||||||
|
import org.springframework.data.domain.Sort; |
||||||
|
import org.springframework.data.mongodb.core.aggregation.Aggregation; |
||||||
|
import org.springframework.data.mongodb.core.aggregation.AggregationOperation; |
||||||
|
import org.springframework.data.mongodb.core.aggregation.LookupOperation; |
||||||
|
import org.springframework.data.mongodb.core.query.Criteria; |
||||||
|
import org.springframework.data.mongodb.core.query.Query; |
||||||
|
import org.springframework.stereotype.Repository; |
||||||
|
|
||||||
|
import java.util.ArrayList; |
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* 帖子数据接口 |
||||||
|
*/ |
||||||
|
@Repository |
||||||
|
public class ForumDao extends BaseDao<Forum> { |
||||||
|
|
||||||
|
private static final Logger LOG = LoggerFactory.getLogger(ForumDao.class); |
||||||
|
|
||||||
|
@Value("${forum.content-length}") |
||||||
|
private int contentLength; |
||||||
|
|
||||||
|
//关联用户表查询
|
||||||
|
private static final LookupOperation lookupOperation=LookupOperation.newLookup(). |
||||||
|
from(TableName.info). //关联从表名
|
||||||
|
localField("username"). //主表关联字段
|
||||||
|
foreignField("_id").//从表关联的字段
|
||||||
|
as("myInfo"); //查询结果名
|
||||||
|
|
||||||
|
//查找热门贴
|
||||||
|
public List<ForumHot> rankReply(Forum.ForumType type, int num){ |
||||||
|
List<ForumHot> forumHots=new ArrayList<>(); |
||||||
|
List<Forum> forumList =mongoTemplate.find(new Query(Criteria.where("forumType").is(type)).with(Sort.by("reply").descending()).limit(num),entityClass()); |
||||||
|
for(Forum forum:forumList){ |
||||||
|
ForumHot forumHot=new ForumHot(); |
||||||
|
forumHot.setForumId(forum.getForumId()); |
||||||
|
forumHot.setReply(forum.getReply()); |
||||||
|
forumHot.setTitle(forum.getTitle()); |
||||||
|
forumHots.add(forumHot); |
||||||
|
} |
||||||
|
return forumHots; |
||||||
|
} |
||||||
|
|
||||||
|
//查找帖子
|
||||||
|
private List<Forum> loadForum(AggregationOperation ...operation) { |
||||||
|
try { |
||||||
|
Aggregation aggregation=Aggregation.newAggregation(operation); |
||||||
|
return mongoTemplate.aggregate(aggregation,TableName.forum, Forum.class).getMappedResults(); |
||||||
|
} catch (Exception e) { |
||||||
|
e.printStackTrace(); |
||||||
|
LOG.error(e.toString()); |
||||||
|
} |
||||||
|
return null; |
||||||
|
} |
||||||
|
//查找所有帖子
|
||||||
|
public List<Forum> loadNewForum(){ |
||||||
|
return loadForum(lookupOperation,Aggregation.unwind("myInfo"),Aggregation.sort(Sort.by("time").descending())); |
||||||
|
} |
||||||
|
|
||||||
|
//查找最新帖子
|
||||||
|
public List<Forum> loadMyForum(String username){ |
||||||
|
return loadForum(lookupOperation,Aggregation.unwind("myInfo"),Aggregation.match(Criteria.where("username").is(username)),Aggregation.sort(Sort.by("time").descending())); |
||||||
|
} |
||||||
|
|
||||||
|
//保存活动贴
|
||||||
|
public Forum save(ActiveForm activeForm){ |
||||||
|
try { |
||||||
|
Forum forum=new Forum(); |
||||||
|
forum.setUsername(activeForm.getUsername()); |
||||||
|
forum.setForumType(Forum.ForumType.active); |
||||||
|
forum.setReply(0); |
||||||
|
forum.setTitle(activeForm.getTitle()); |
||||||
|
forum.setTime(System.currentTimeMillis()); |
||||||
|
if(activeForm.getContent().length()>contentLength){ |
||||||
|
forum.setContent(activeForm.getContent().substring(0,contentLength)); |
||||||
|
}else{ |
||||||
|
forum.setContent(activeForm.getContent()); |
||||||
|
} |
||||||
|
return save(forum); |
||||||
|
} catch (Exception e) { |
||||||
|
e.printStackTrace(); |
||||||
|
LOG.error(e.toString()); |
||||||
|
} |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
//保存动态
|
||||||
|
public Forum save(ForumForm forumForm){ |
||||||
|
try { |
||||||
|
Forum forum=new Forum(); |
||||||
|
forum.setContent(forumForm.getContent()); |
||||||
|
forum.setTitle(forumForm.getTitle()); |
||||||
|
forum.setForumType(Forum.ForumType.topic); |
||||||
|
forum.setTime(System.currentTimeMillis()); |
||||||
|
forum.setReply(0); |
||||||
|
forum.setUsername(forumForm.getUsername()); |
||||||
|
return save(forum); |
||||||
|
} catch (Exception e) { |
||||||
|
e.printStackTrace(); |
||||||
|
LOG.error(e.toString()); |
||||||
|
} |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
//保存投诉
|
||||||
|
public Forum save(ComplainForm complainForm){ |
||||||
|
try { |
||||||
|
Forum forum=new Forum(); |
||||||
|
forum.setContent(complainForm.getContent()); |
||||||
|
forum.setTitle(complainForm.getTitle()); |
||||||
|
forum.setForumType(Forum.ForumType.complan); |
||||||
|
forum.setTime(System.currentTimeMillis()); |
||||||
|
forum.setReply(0); |
||||||
|
forum.setUsername(complainForm.getUsername()); |
||||||
|
return save(forum); |
||||||
|
} catch (Exception e) { |
||||||
|
e.printStackTrace(); |
||||||
|
LOG.error(e.toString()); |
||||||
|
} |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
//保存
|
||||||
|
@Override |
||||||
|
public Forum save(Forum forum) { |
||||||
|
try { |
||||||
|
return mongoTemplate.save(forum); |
||||||
|
} catch (Exception e) { |
||||||
|
e.printStackTrace(); |
||||||
|
LOG.error(e.toString()); |
||||||
|
} |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Class<Forum> entityClass() { |
||||||
|
return Forum.class; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,45 @@ |
|||||||
|
package com.community.pocket.repository.android; |
||||||
|
|
||||||
|
import com.community.pocket.entity.po.Notice; |
||||||
|
import com.community.pocket.repository.BaseDao; |
||||||
|
import org.slf4j.Logger; |
||||||
|
import org.slf4j.LoggerFactory; |
||||||
|
import org.springframework.stereotype.Repository; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* 公告信息数据接口 |
||||||
|
*/ |
||||||
|
@Repository |
||||||
|
public class NoticeDao extends BaseDao<Notice> { |
||||||
|
|
||||||
|
private static final Logger LOG = LoggerFactory.getLogger(NoticeDao.class); |
||||||
|
|
||||||
|
@Override |
||||||
|
public Notice save(Notice notice) { |
||||||
|
try { |
||||||
|
return mongoTemplate.save(notice); |
||||||
|
} catch (Exception e) { |
||||||
|
e.printStackTrace(); |
||||||
|
LOG.error(e.toString()); |
||||||
|
} |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
//加载所有公告
|
||||||
|
public List<Notice> loadNotices(){ |
||||||
|
try { |
||||||
|
return mongoTemplate.findAll(Notice.class); |
||||||
|
} catch (Exception e) { |
||||||
|
e.printStackTrace(); |
||||||
|
LOG.error(e.toString()); |
||||||
|
} |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Class<Notice> entityClass() { |
||||||
|
return Notice.class; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,83 @@ |
|||||||
|
package com.community.pocket.repository.android; |
||||||
|
|
||||||
|
import com.community.pocket.entity.po.android.Token; |
||||||
|
import com.community.pocket.repository.BaseDao; |
||||||
|
import org.slf4j.Logger; |
||||||
|
import org.slf4j.LoggerFactory; |
||||||
|
import org.springframework.beans.factory.annotation.Value; |
||||||
|
import org.springframework.data.mongodb.core.query.Criteria; |
||||||
|
import org.springframework.data.mongodb.core.query.Query; |
||||||
|
import org.springframework.stereotype.Repository; |
||||||
|
import org.springframework.util.DigestUtils; |
||||||
|
|
||||||
|
import java.util.concurrent.TimeUnit; |
||||||
|
|
||||||
|
//令牌数据接口
|
||||||
|
@Repository |
||||||
|
public class TokenDao extends BaseDao<Token> { |
||||||
|
|
||||||
|
@Value("${token.day}") |
||||||
|
private int day; |
||||||
|
|
||||||
|
|
||||||
|
private static final Logger LOG = LoggerFactory.getLogger(TokenDao.class); |
||||||
|
|
||||||
|
/** |
||||||
|
* 保存令牌 |
||||||
|
*/ |
||||||
|
public Token save(String username){ |
||||||
|
try { |
||||||
|
if(cleanToken(username)) { |
||||||
|
Token token = new Token(); |
||||||
|
token.setTime(System.currentTimeMillis()+ TimeUnit.DAYS.toMillis(1)); |
||||||
|
token.setUsername(username); |
||||||
|
token.setToken(DigestUtils.md5DigestAsHex((token.getUsername() + token.getTime()).getBytes())); |
||||||
|
save(token); |
||||||
|
return token; |
||||||
|
} |
||||||
|
} catch (Exception e) { |
||||||
|
e.printStackTrace(); |
||||||
|
LOG.error(e.toString()); |
||||||
|
} |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
//清空令牌
|
||||||
|
public boolean cleanToken(String username){ |
||||||
|
Query query=new Query(Criteria.where("username").is(username)); |
||||||
|
if(mongoTemplate.exists(query,entityClass())){ |
||||||
|
return mongoTemplate.remove(query,entityClass()).wasAcknowledged(); |
||||||
|
}else { |
||||||
|
return true; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
//判断令牌是否有效
|
||||||
|
public <T extends Token> boolean checkToken(T token){ |
||||||
|
return checkToken(token.getToken()); |
||||||
|
} |
||||||
|
|
||||||
|
public boolean checkToken(String token){ |
||||||
|
return mongoTemplate.exists(new Query(Criteria.where("token").is(token).and("time").gt(System.currentTimeMillis())),entityClass()); |
||||||
|
} |
||||||
|
|
||||||
|
public Token get(String token){ |
||||||
|
return mongoTemplate.findOne(new Query(Criteria.where("token").is(token)),entityClass()); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Token save(Token token) { |
||||||
|
try { |
||||||
|
mongoTemplate.save(token); |
||||||
|
} catch (Exception e) { |
||||||
|
e.printStackTrace(); |
||||||
|
LOG.error(e.toString()); |
||||||
|
} |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Class<Token> entityClass() { |
||||||
|
return Token.class; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,137 @@ |
|||||||
|
package com.community.pocket.repository.android; |
||||||
|
|
||||||
|
import com.community.pocket.entity.po.android.MyInfo; |
||||||
|
import com.community.pocket.entity.vo.android.QueryUserForm; |
||||||
|
import com.community.pocket.entity.vo.android.UserHot; |
||||||
|
import com.community.pocket.entity.vo.android.UserRegister; |
||||||
|
import com.community.pocket.repository.BaseDao; |
||||||
|
import com.mongodb.client.result.UpdateResult; |
||||||
|
import org.slf4j.Logger; |
||||||
|
import org.slf4j.LoggerFactory; |
||||||
|
import org.springframework.data.domain.Sort; |
||||||
|
import org.springframework.data.mongodb.core.query.Criteria; |
||||||
|
import org.springframework.data.mongodb.core.query.Query; |
||||||
|
import org.springframework.data.mongodb.core.query.Update; |
||||||
|
import org.springframework.stereotype.Repository; |
||||||
|
import org.springframework.util.DigestUtils; |
||||||
|
import org.springframework.util.StringUtils; |
||||||
|
|
||||||
|
import java.util.ArrayList; |
||||||
|
import java.util.List; |
||||||
|
import java.util.regex.Pattern; |
||||||
|
|
||||||
|
//用户数据接口
|
||||||
|
@Repository |
||||||
|
public class UserDao extends BaseDao<MyInfo> { |
||||||
|
|
||||||
|
private static final Logger LOG = LoggerFactory.getLogger(UserDao.class); |
||||||
|
|
||||||
|
//检查用户名是否已注册
|
||||||
|
public boolean hasUser(String username){ |
||||||
|
if(!StringUtils.isEmpty(username)){ |
||||||
|
return mongoTemplate.exists(new Query().addCriteria(Criteria.where("username").is(username)),entityClass()); |
||||||
|
}else{ |
||||||
|
return false; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
//检查手机是否已绑定
|
||||||
|
public boolean hasMobie(String mobie) { |
||||||
|
if (!StringUtils.isEmpty(mobie)) { |
||||||
|
return mongoTemplate.exists(new Query().addCriteria(Criteria.where("mobie").is(mobie)),entityClass()); |
||||||
|
}else{ |
||||||
|
return false; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
//检查邮箱是否已绑定
|
||||||
|
public boolean hasEmail(String email){ |
||||||
|
if(!StringUtils.isEmpty(email)){ |
||||||
|
return mongoTemplate.exists(new Query().addCriteria(Criteria.where("email").is(email)),entityClass()); |
||||||
|
}else{ |
||||||
|
return false; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
//检查用户和邮箱是否对应
|
||||||
|
public boolean hasUseWithEmail(String username, String email){ |
||||||
|
if(!StringUtils.isEmpty(username)&&!StringUtils.isEmpty(email)){ |
||||||
|
return mongoTemplate.exists(new Query().addCriteria(Criteria.where("username").is(username).and("email").is(email)),entityClass()); |
||||||
|
}else{ |
||||||
|
return false; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//重置密码
|
||||||
|
public boolean resetPwd(String username,String password){ |
||||||
|
if(!StringUtils.isEmpty(username)&&!StringUtils.isEmpty(password)){ |
||||||
|
String md5Password= DigestUtils.md5DigestAsHex(password.getBytes()); |
||||||
|
UpdateResult result=mongoTemplate.updateFirst(new Query().addCriteria(Criteria.where("username").is(username)), Update.update("password",md5Password),entityClass()); |
||||||
|
return result.wasAcknowledged(); |
||||||
|
}else{ |
||||||
|
return false; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
//登陆用户
|
||||||
|
public boolean login(String username, String password) { |
||||||
|
if(!StringUtils.isEmpty(username)&&!StringUtils.isEmpty(password)){ |
||||||
|
String md5Password= DigestUtils.md5DigestAsHex(password.getBytes()); |
||||||
|
return mongoTemplate.exists(new Query(Criteria.where("username").is(username).and("password").is(md5Password)),entityClass()); |
||||||
|
}else{ |
||||||
|
return false; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//注册用户
|
||||||
|
public void save(UserRegister userRegister){ |
||||||
|
MyInfo myInfo=new MyInfo(); |
||||||
|
myInfo.setUsername(userRegister.getUsername()); |
||||||
|
myInfo.setPassword(DigestUtils.md5DigestAsHex(userRegister.getPassword().getBytes())); |
||||||
|
myInfo.setMobie(userRegister.getMobie()); |
||||||
|
myInfo.setEmail(userRegister.getEmail()); |
||||||
|
myInfo.setCreditScore(0); |
||||||
|
save(myInfo); |
||||||
|
} |
||||||
|
|
||||||
|
//获取活跃用户
|
||||||
|
public List<UserHot> rankUser(int num){ |
||||||
|
List<UserHot> userHots=new ArrayList<>(); |
||||||
|
List<MyInfo> myInfos=mongoTemplate.find(new Query().with(Sort.by("creditScore").descending()).limit(num),entityClass()); |
||||||
|
for(MyInfo info:myInfos){ |
||||||
|
UserHot userHot=new UserHot(); |
||||||
|
userHot.setUserName(info.getUsername()); |
||||||
|
userHot.setCreditScore(info.getCreditScore()); |
||||||
|
userHots.add(userHot); |
||||||
|
} |
||||||
|
return userHots; |
||||||
|
} |
||||||
|
|
||||||
|
//获取用户
|
||||||
|
public List<String> queryUser(QueryUserForm userForm){ |
||||||
|
List<String> userNames=new ArrayList<>(); |
||||||
|
List<MyInfo> myInfos=mongoTemplate.find(new Query(Criteria.where("username").ne(userForm.getUsername()).and("username").regex(Pattern.compile(".*"+userForm.getName()+".*"))),entityClass()); |
||||||
|
for(MyInfo info:myInfos){ |
||||||
|
userNames.add(info.getUsername()); |
||||||
|
} |
||||||
|
return userNames; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public MyInfo save(MyInfo myInfo) { |
||||||
|
try { |
||||||
|
mongoTemplate.save(myInfo); |
||||||
|
} catch (Exception e) { |
||||||
|
e.printStackTrace(); |
||||||
|
LOG.error(e.toString()); |
||||||
|
} |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Class<MyInfo> entityClass() { |
||||||
|
return MyInfo.class; |
||||||
|
} |
||||||
|
} |
@ -1,39 +1,76 @@ |
|||||||
package com.community.pocket.util; |
package com.community.pocket.util; |
||||||
|
|
||||||
import com.community.pocket.entity.po.EmailCode; |
import com.community.pocket.entity.po.EmailCode; |
||||||
|
import com.community.pocket.entity.vo.EmailTypeConfig; |
||||||
|
import com.community.pocket.repository.EmailDao; |
||||||
|
import org.apache.commons.lang3.RandomStringUtils; |
||||||
import org.springframework.beans.factory.annotation.Autowired; |
import org.springframework.beans.factory.annotation.Autowired; |
||||||
import org.springframework.data.mongodb.core.MongoTemplate; |
|
||||||
import org.springframework.mail.MailException; |
import org.springframework.mail.MailException; |
||||||
import org.springframework.mail.SimpleMailMessage; |
import org.springframework.mail.SimpleMailMessage; |
||||||
import org.springframework.mail.javamail.JavaMailSenderImpl; |
import org.springframework.mail.javamail.JavaMailSenderImpl; |
||||||
import org.springframework.stereotype.Service; |
import org.springframework.stereotype.Service; |
||||||
|
|
||||||
import java.util.Random; |
|
||||||
|
|
||||||
@Service |
@Service |
||||||
public class EmailService { |
public class EmailService { |
||||||
@Autowired |
@Autowired |
||||||
private JavaMailSenderImpl javaMailSender; |
private JavaMailSenderImpl javaMailSender; |
||||||
|
|
||||||
@Autowired |
@Autowired |
||||||
private MongoTemplate mongoTemplate; |
private EmailTypeConfig emailTypeConfig; |
||||||
|
|
||||||
|
@Autowired |
||||||
|
private EmailDao emailDao; |
||||||
|
|
||||||
public boolean sendCode(String sender) { |
/** |
||||||
|
* 发送管理员注册激活邮件 |
||||||
|
* @param sender 发送人 |
||||||
|
*/ |
||||||
|
public boolean sendManagerCode(String sender) { |
||||||
|
EmailCode emailCode=new EmailCode(); |
||||||
|
emailCode.setCode(RandomStringUtils.randomNumeric(emailTypeConfig.getLength())); |
||||||
|
emailCode.setEmailAddress(sender); |
||||||
SimpleMailMessage message = new SimpleMailMessage(); |
SimpleMailMessage message = new SimpleMailMessage(); |
||||||
message.setSubject("口袋社区激活邮箱"); |
message.setSubject(emailTypeConfig.getSubject()); |
||||||
message.setText("欢迎注册口袋社区后台服务,您获取到的验证码是:xxxx"); |
message.setText(String.format(emailTypeConfig.getManagerCodeMessage(),emailCode.getCode())); |
||||||
message.setTo(sender); |
message.setTo(sender); |
||||||
message.setFrom("15920722180@163.com"); |
message.setFrom(emailTypeConfig.getFrom()); |
||||||
try { |
try { |
||||||
javaMailSender.send(message); |
javaMailSender.send(message); |
||||||
EmailCode emailCode=new EmailCode(); |
|
||||||
emailCode.setCode(new Random().nextInt(1000)+""); |
emailDao.save(emailCode); |
||||||
emailCode.setEmailAddress(sender); |
|
||||||
mongoTemplate.save(emailCode); |
|
||||||
return true; |
return true; |
||||||
} catch (MailException e) { |
} catch (MailException e) { |
||||||
e.printStackTrace(); |
e.printStackTrace(); |
||||||
return false; |
return false; |
||||||
} |
} |
||||||
} |
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 发送用户重置密码邮件 |
||||||
|
* @param sender 发送目标 |
||||||
|
* |
||||||
|
*/ |
||||||
|
public boolean sendUserCode(String sender){ |
||||||
|
if(emailDao.clearEmail(sender)) { |
||||||
|
EmailCode emailCode = new EmailCode(); |
||||||
|
emailCode.setCode(RandomStringUtils.randomNumeric(emailTypeConfig.getLength())); |
||||||
|
emailCode.setEmailAddress(sender); |
||||||
|
SimpleMailMessage message = new SimpleMailMessage(); |
||||||
|
message.setSubject(emailTypeConfig.getSubject()); |
||||||
|
message.setText(String.format(emailTypeConfig.getUserCodeMessage(),emailCode.getCode())); |
||||||
|
message.setTo(sender); |
||||||
|
message.setFrom(emailTypeConfig.getFrom()); |
||||||
|
try { |
||||||
|
javaMailSender.send(message); |
||||||
|
|
||||||
|
emailDao.save(emailCode); |
||||||
|
return true; |
||||||
|
} catch (MailException e) { |
||||||
|
e.printStackTrace(); |
||||||
|
return false; |
||||||
|
} |
||||||
|
}else{ |
||||||
|
return false; |
||||||
|
} |
||||||
|
} |
||||||
} |
} |
||||||
|
@ -0,0 +1,23 @@ |
|||||||
|
package com.community.pocket.util; |
||||||
|
|
||||||
|
/** |
||||||
|
* 集合名 |
||||||
|
*/ |
||||||
|
public class TableName { |
||||||
|
//用户信息
|
||||||
|
public static final String info="myInfo"; |
||||||
|
//管理员信息
|
||||||
|
public static final String manager="manager"; |
||||||
|
//验证码邮件
|
||||||
|
public static final String emailCode="emailCode"; |
||||||
|
//令牌
|
||||||
|
public static final String token="token"; |
||||||
|
//帖子基础信息
|
||||||
|
public static final String forum="forum"; |
||||||
|
//帖子详情信息
|
||||||
|
public static final String forumContent="forumContent"; |
||||||
|
//活动帖子
|
||||||
|
public static final String active="active"; |
||||||
|
//公告
|
||||||
|
public static final String notice="notice"; |
||||||
|
} |
Loading…
Reference in new issue