源码地址:相亲平台: 相亲网站开发。。。。。。。https://gitee.com/beimu_yc/dating-ping-t.git
注册页面:完成会员账号的注册,可以尝试手机验证码校验。
推荐页面:筛选排序会员信息。
会员详情页面:会员详细信息以及留言。
活动页面:查询、参加平台发起的活动。
红娘页面:查看、搜索红娘信息。
视频页面:查看会员发布的视频。
学堂页面:展示婚恋的一些文章或者视频学习资料。
我的页面:管理会员个人基本信息。
消息页面:会员、平台之间的留言、回复信息。
项目实现与关键代码
@RestController
@RequestMapping("/api/service")
public class InterfaceApiController {
@Autowired
private RedisTemplate<String, String> redisTemplate;
@Autowired
private UserService sysUserService;
@Autowired
private JavaMailSender javaMailSender;
/**
* 邮箱号
*/
@Value("${spring.mail.username}")
private String email;
@ApiOperation(value = "注册时发送邮件验证码")
@GetMapping("/sendMailCode/{mail}")
public Result sendMail(@PathVariable String mail) {
if (!isEmail(mail)) {
// return Result.fail().message("请输入正确格式的邮箱");
return Result.error("2001", "请输入正确格式的邮箱");
}
//redis邮箱存在则不在发送
if (redisTemplate.hasKey(mail)) {
return Result.success("发送成功");
}
User sysUserVo = new User();
sysUserVo.setEmail(mail);
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("email", mail);
List<User> list = sysUserService.list(wrapper);
//如果邮箱存在
if (list.size() != 0) {
return Result.error("2001", "邮箱已被注册");
}
Random random = new Random();
DecimalFormat sixdf = new DecimalFormat("000000");
String code = sixdf.format(random.nextInt(1000000));
try {
// 存入到redis 邮箱、验证码、时间、单位
redisTemplate.opsForValue().set(Constants.CAPTCHA_CODE_KEY + mail, code, Constants.CAPTCHA_EXPIRATION, TimeUnit.MINUTES);
// 发送邮件
//mailServiceApi.sendQQMail(CollUtil.newArrayList(mail), "注册验证码", "您的验证码是:" + code + "," + Constants.CAPTCHA_EXPIRATION + "分钟有效", false);
SimpleMailMessage message = new SimpleMailMessage();
message.setSubject("注册验证码");
message.setText("你的验证码是" + code + "有效期是" + Constants.CAPTCHA_EXPIRATION + "分钟" + "," + "请不要告诉他人哦!");
message.setFrom(email);
message.setTo(mail);
javaMailSender.send(message);
} catch (Exception e) {
// return Result.fail("失败").message("发送邮件失败");
return Result.error("20001", "发送邮件失败");
}
return Result.success("正在发送邮件,请注意查收");
}
@GetMapping("/sendRetrieveMail/{mail}")
public Result sendRetrieveMail(@PathVariable String mail) {
// mail = mail.trim();
if (!isEmail(mail)) {
return Result.error("2001", "请输入正确格式的邮箱");
}
// //redis邮箱存在则不在发送
// if (redisTemplate.hasKey("Retrieve-" + mail)) {
// return Result.ok("发送成功");
// }
User sysUserVo = new User();
sysUserVo.setEmail(mail);
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("email", mail);
List<User> list = sysUserService.list(wrapper);
//如果邮箱不存在
if (list.size() == 0) {
return Result.error("2001", "账号不存在");
}
Random random = new Random();
DecimalFormat sixdf = new DecimalFormat("000000");
String code = sixdf.format(random.nextInt(1000000));
//ALiMail aLiMail = new ALiMail(mail, "找回密码验证码", "您的验证码是:" + code + ",30分钟有效");
// 存入到redis 邮箱、验证码、时间、单位
try {
//redisTemplate.opsForValue().set("Retrieve-" + mail, code, 10, TimeUnit.MINUTES);
redisTemplate.opsForValue().set(Constants.CAPTCHA_CODE_KEY + mail, code, Constants.CAPTCHA_EXPIRATION, TimeUnit.MINUTES);
//mailServiceApi.sendQQMail(CollUtil.newArrayList(mail), "找回密码验证码", "您的验证码是:" + code + ",30分钟有效", false);
SimpleMailMessage message = new SimpleMailMessage();
message.setSubject("找回密码验证码");
message.setText("您的验证码是" + code + "有效期是" + Constants.CAPTCHA_EXPIRATION + "分钟" + "," + "请不要告诉他人哦!");
message.setFrom(email);
message.setTo(mail);
javaMailSender.send(message);
} catch (Exception e) {
return Result.error("2001", "发送邮件失败");
}
return Result.success("正在发送邮件,请注意查收");
}
public static boolean isEmail(String string) {
if (string == null) {
return false;
}
String regEx1 = "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";
Pattern p;
Matcher m;
p = Pattern.compile(regEx1);
m = p.matcher(string);
if (m.matches())
return true;
else {
return false;
}
}
}
筛选用户
@ApiOperation("首页展示接口(根据择偶信息展示的) 传id就行")
@PostMapping("/select/{id}")
public List<User> select(@PathVariable Integer id) {
List<User> list = new ArrayList<>();
User user = userMapper.selectById(id);
Request request = requestService.queryRequest(user.getId());
// System.out.println(user.getSex().equals("女"));
if ("女".equals(user.getSex())){
list.addAll(requestService.querySex("男"));
}else {
list.addAll(requestService.querySex("女"));
}
System.out.println("++++++++++++++++++++++++++++++++++++++++++");
for (User user1 : list) {
System.out.println(user1.getId());
}
if (request.getMaritalStatus() != null) {
List<User> users = requestService.queryWedding(request.getMaritalStatus());
if (list.size()>users.size()){
list.retainAll(users);
}else {
users.retainAll(list);
}
}
System.out.println("++++++++++++++++++++++++++++++++++++++++++");
for (User user1 : list) {
System.out.println(user1.getId());
}
if (request.getMinAge() != null && request.getMaxAge() != null) {
List<User> users0 = requestService.queryAge(request.getMinAge(), request.getMaxAge());
System.out.println(users0.size());
if (list.size()>users0.size()){
list.retainAll(users0);
}else {
users0.retainAll(list);
}
System.out.println(users0);
}
System.out.println("++++++++++++++++++++++++++++++++++++++++++");
System.out.println(list);
if (request.getMinHeight() != null && request.getMaxHeight() != null) {
List<User> users1 = requestService.queryHeight(request.getMinHeight(), request.getMaxHeight());
if (list.size()>users1.size()){
list.retainAll(users1);
System.out.println(users1);
}else {
users1.retainAll(list);
}
}
System.out.println(list);
if (request.getHouse() != null) {
List<User> users2 = requestService.queryHouse(request.getHouse());
if (list.size()>users2.size()){
list.retainAll(users2);
}else {
users2.retainAll(list);
}
}
for (User user1 : list) {
System.out.println(user1.getId());
}
if (request.getCart() != null) {
List<User> users3 = requestService.queryCar(request.getCart());
if (list.size()>users3.size()){
list.retainAll(users3);
}else {
users3.retainAll(list);
}
}
if (request.getHuji() != null) {
List<User> users4 = requestService.queryHuji(request.getHuji());
if (list.size()>users4.size()){
list.retainAll(users4);
}else {
users4.retainAll(list);
}
}
if (request.getMinXueli() != null) {
List<User> users5 = requestService.queryXueli(request.getMinXueli());
if (list.size()>users5.size()){
list.retainAll(users5);
}else {
users5.retainAll(list);
}
}
if (request.getMinIncome() != null) {
List<User> users6 = requestService.queryIncome(request.getMinIncome());
if (list.size()>users6.size()){
list.retainAll(users6);
}else {
users6.retainAll(list);
}
}
list.removeIf(user1 -> user1.getSex() == user.getSex());
System.out.println(list);
return list;
}