package com.panzhihua.grid_app.api;
|
|
import javax.annotation.Resource;
|
|
import org.springframework.util.ObjectUtils;
|
import org.springframework.validation.annotation.Validated;
|
import org.springframework.web.bind.annotation.*;
|
|
import com.alibaba.fastjson.JSONObject;
|
import com.panzhihua.common.controller.BaseController;
|
import com.panzhihua.common.model.vos.EditUserInfoAppDTO;
|
import com.panzhihua.common.model.vos.EditUserInfoPassAppDTO;
|
import com.panzhihua.common.model.vos.LoginUserInfoVO;
|
import com.panzhihua.common.model.vos.R;
|
import com.panzhihua.common.model.vos.community.ComActVO;
|
import com.panzhihua.common.model.vos.grid.GridMemberPositionDTO;
|
import com.panzhihua.common.service.auth.TokenService;
|
import com.panzhihua.common.service.community.CommunityService;
|
import com.panzhihua.common.service.grid.GridService;
|
import com.panzhihua.common.service.user.UserService;
|
import com.panzhihua.common.utlis.StringUtils;
|
import com.panzhihua.common.validated.AddGroup;
|
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import lombok.extern.slf4j.Slf4j;
|
|
/**
|
* 我的模块
|
*
|
* @author lyq
|
*/
|
@Slf4j
|
@RestController
|
@RequestMapping("/user/")
|
@Api(tags = {"我的模块"})
|
public class UserApi extends BaseController {
|
|
@Resource
|
private UserService userService;
|
@Resource
|
private CommunityService communityService;
|
@Resource
|
private TokenService tokenService;
|
@Resource
|
private GridService gridService;
|
|
@ApiOperation(value = "当前登录用户信息-lyq", response = LoginUserInfoVO.class)
|
@GetMapping("/info")
|
public R getUserInfo() {
|
LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
|
Long communityId = loginUserInfo.getCommunityId();
|
Long userId = loginUserInfo.getUserId();
|
R<LoginUserInfoVO> r = userService.getUserInfoByUserId(userId + "");
|
|
if (R.isOk(r)) {
|
Object data = r.getData();
|
if (!ObjectUtils.isEmpty(data)) {
|
LoginUserInfoVO loginUserInfoVO = (LoginUserInfoVO)data;
|
// 查询社区信息
|
if (null != communityId && 0 != communityId) {
|
R r1 = communityService.detailCommunity(communityId);
|
if (R.isOk(r1)) {
|
Object data1 = r1.getData();
|
if (!ObjectUtils.isEmpty(data1)) {
|
loginUserInfoVO
|
.setComActVO(JSONObject.parseObject(JSONObject.toJSONString(data1), ComActVO.class));
|
r.setData(loginUserInfoVO);
|
}
|
}
|
}
|
}
|
}
|
return r;
|
}
|
|
@ApiOperation(value = "修改用户信息-lyq")
|
@PostMapping("/user")
|
public R putUser(@RequestBody EditUserInfoAppDTO userInfoAppDTO) {
|
LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
|
if (loginUserInfo == null) {
|
return R.fail("请先登录");
|
}
|
if (StringUtils.isNotEmpty(userInfoAppDTO.getImagesUrl())) {
|
loginUserInfo.setImageUrl(userInfoAppDTO.getImagesUrl());
|
loginUserInfo.setNickName(null);
|
}
|
if (StringUtils.isNotEmpty(userInfoAppDTO.getNickName())) {
|
loginUserInfo.setNickName(userInfoAppDTO.getNickName());
|
loginUserInfo.setName(userInfoAppDTO.getNickName());
|
loginUserInfo.setImageUrl(null);
|
}
|
return userService.putUser(loginUserInfo);
|
}
|
|
@ApiOperation(value = "修改用户登录密码-lyq")
|
@PutMapping("/edit/pass")
|
public R updatePass(@RequestBody EditUserInfoPassAppDTO userInfoAppDTO) {
|
LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
|
if (loginUserInfo == null) {
|
return R.fail("请先登录");
|
}
|
userInfoAppDTO.setUserId(loginUserInfo.getUserId());
|
R updateUser = userService.updateUserPassByApp(userInfoAppDTO);
|
if (R.isOk(updateUser)) {
|
String token = this.getToken();
|
if (StringUtils.isNotEmpty(token)) {
|
tokenService.logout(token);
|
}
|
return R.ok();
|
} else {
|
return updateUser;
|
}
|
}
|
|
@ApiOperation(value = "根据版本号获取最新版本信息-lyq")
|
@GetMapping("/edition")
|
public R editionUpdate() {
|
return gridService.editionUpdate();
|
}
|
|
@ApiOperation(value = "网格员定时上报地理位置-lyq")
|
@PostMapping("/report")
|
public R gridReportPosition(@RequestBody @Validated(AddGroup.class) GridMemberPositionDTO memberPositionDTO) {
|
LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
|
if (loginUserInfo == null) {
|
return R.fail("请先登录");
|
}
|
memberPositionDTO.setGridMemberId(loginUserInfo.getUserId());
|
return gridService.gridReportPosition(memberPositionDTO);
|
}
|
|
}
|