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 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); } }