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 io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; 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("/ffzf/user") @RequiredArgsConstructor @Tag(description = "ffzf/user" , name = "用户接口" ) public class UserController{ private final UserService userService; private final ParkService parkService; @PostMapping("/findPage") @Operation(summary = "分页查询" , description = "分页查询" ) public Object findPage(User user, Page page) { QueryWrapper wrapper = new QueryWrapper<>(); wrapper.lambda() .like(StringUtils.isNotBlank(user.getName()),User::getName, user.getName()); return R.ok( userService.page(page,wrapper)); } @PostMapping("/findAll") @Operation(summary = "查询所有" , description = "查询所有" ) public Object findAll() { return R.ok(userService.list()); } @PostMapping("/save") @Operation(summary = "新增用户" , description = "新增用户" ) public Object save(User user) { if(user.getId()==null){ user.setPassword(user.getLoginName()); } userService.saveOrUpdate(user); return R.ok("保存成功"); } @PostMapping("/delete") @Operation(summary = "删除用户" , description = "删除用户" ) public Object delete(Long id) { userService.removeById(id); return R.ok("删除成功"); } @PostMapping("/login") @Operation(summary = "登录" , description = "登录" ) public Object login(String loginName,String password,String lng,String lat) { if(StringUtils.isBlank(loginName)||StringUtils.isBlank(password)){ return R.failed("用户名和密码必填"); } QueryWrapper wrapper = new QueryWrapper<>(); wrapper.lambda() .eq(User::getLoginName,loginName) .eq(User::getPassword,password); List all = userService.list(wrapper); if(all.size()>0){ User user = all.get(0); if(StringUtils.isNotBlank(lng)&&StringUtils.isNotBlank(lat)){ List 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") @Operation(summary = "修改密码" , description = "修改密码" ) public Object updatePassword(Long userId,String oldPassword,String newPassword) { QueryWrapper wrapper = new QueryWrapper<>(); wrapper.lambda() .eq(User::getId,userId) .eq(User::getPassword,oldPassword); List 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("旧密码不正确"); } }