package com.boying.controller;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.boying.common.R;
|
import com.boying.entity.Park;
|
import com.boying.entity.User;
|
import com.boying.service.ParkService;
|
import com.boying.service.UserService;
|
import com.boying.util.LngLatUtil;
|
import lombok.RequiredArgsConstructor;
|
import org.springframework.data.jpa.domain.Specification;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RestController;
|
|
import javax.persistence.criteria.CriteriaBuilder;
|
import javax.persistence.criteria.CriteriaQuery;
|
import javax.persistence.criteria.Predicate;
|
import javax.persistence.criteria.Root;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
@RestController
|
@RequestMapping("/user")
|
@RequiredArgsConstructor
|
public class UserController{
|
|
private final UserService userService;
|
private final ParkService parkService;
|
|
@PostMapping("/findPage")
|
public Object findPage(User user, Page page) {
|
QueryWrapper<User> wrapper = new QueryWrapper<>();
|
wrapper.lambda()
|
.like(StringUtils.isNotBlank(user.getName()),User::getName, user.getName());
|
return R.ok( userService.page(page,wrapper));
|
}
|
|
@PostMapping("/findAll")
|
public Object findAll() {
|
return R.ok(userService.list());
|
}
|
|
|
@PostMapping("/save")
|
public Object save(User user) {
|
if(user.getId()==null){
|
user.setPassword(user.getLoginName());
|
}
|
userService.saveOrUpdate(user);
|
return R.ok("保存成功");
|
}
|
|
@PostMapping("/delete")
|
public Object delete(Long id) {
|
userService.removeById(id);
|
return R.ok("删除成功");
|
}
|
|
@PostMapping("/login")
|
public Object login(String loginName,String password,String lng,String lat) {
|
if(StringUtils.isBlank(loginName)||StringUtils.isBlank(password)){
|
return R.failed("用户名和密码必填");
|
}
|
QueryWrapper<User> wrapper = new QueryWrapper<>();
|
wrapper.lambda()
|
.eq(User::getLoginName,loginName)
|
.eq(User::getPassword,password);
|
List<User> all = userService.list(wrapper);
|
if(all.size()>0){
|
User user = all.get(0);
|
|
if(StringUtils.isNotBlank(lng)&&StringUtils.isNotBlank(lat)){
|
List<Park> all1 = parkService.list();
|
for(Park p:all1){
|
double distance = LngLatUtil.getDistance(lat,lng,p.getLat(),p.getLng());
|
if(distance<500){
|
user.setParkId(p.getId());
|
}
|
}
|
user.setLng(lng);
|
user.setLat(lat);
|
userService.saveOrUpdate(user);
|
}
|
return R.ok(user);
|
}
|
return R.failed("用户名或密码不正确");
|
}
|
|
@PostMapping("updatePassword")
|
public Object updatePassword(Long userId,String oldPassword,String newPassword) {
|
QueryWrapper<User> wrapper = new QueryWrapper<>();
|
wrapper.lambda()
|
.eq(User::getId,userId)
|
.eq(User::getPassword,oldPassword);
|
List<User> all = userService.list(wrapper);
|
if(all.size()>0){
|
User user = all.get(0);
|
user.setPassword(newPassword);
|
userService.saveOrUpdate(user);
|
return R.ok("请求成功");
|
}
|
return R.failed("旧密码不正确");
|
}
|
|
|
}
|