提交 a975c628 作者: 张小凤

UserMessageQO(add)

上级 c4fa36fd
package com.mmc.iuav.user.model.qo;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Author small
* @Date 2023/9/14 20:03
* @Version 1.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class UserMessageQO {
@ApiModelProperty(value = "用户id")
private Integer id;
@ApiModelProperty(value = "微信头像",example = "http://")
private String userImg;
@ApiModelProperty(value = "封面图片",example = "http://")
private String coverPicture;
@ApiModelProperty(value = "微信昵称",example = "小红花")
private String nickName;
@ApiModelProperty(value = "地区",example = "广东省深圳市")
private String region;
@ApiModelProperty(value = "个人简介",example = "航拍多年")
private String briefIntroduction;
@ApiModelProperty(value = "经度",example = "78.321313")
private Double longitude;
@ApiModelProperty(value = "纬度",example = "67.213131")
private Double latitude;
}
......@@ -5,6 +5,7 @@ import com.mmc.iuav.group.Update;
import com.mmc.iuav.response.ResultBody;
import com.mmc.iuav.user.model.dto.UserAccountSimpleDTO;
import com.mmc.iuav.user.model.qo.UserAccountQO;
import com.mmc.iuav.user.model.qo.UserMessageQO;
import com.mmc.iuav.user.model.qo.UserRcdQO;
import com.mmc.iuav.user.model.vo.UserAccountVO;
import com.mmc.iuav.user.service.UserAccountService;
......@@ -143,4 +144,31 @@ public class UserAccountController extends BaseController {
return userAccountService.getUserAccountByPhoneNum(phoneNum);
}
@ApiOperation(value = "获取修改手机获取验证码")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@GetMapping("getVerifyCode")
public ResultBody getVerifyCode(@RequestParam(value = "userAccountId") Integer userAccountId,
@RequestParam(value = "phoneNum") String phoneNum) {
return userAccountService.getVerifyCode(userAccountId, phoneNum);
}
@ApiOperation(value = "修改用户手机号")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@GetMapping("updatePhoneNum")
public ResultBody updatePhoneNum(@RequestParam(value = "userAccountId") Integer userAccountId,
@RequestParam(value = "verifyCode") String verifyCode) {
return userAccountService.updatePhoneNum(userAccountId, verifyCode);
}
@ApiOperation(value = "修改用户信息")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("/appUpdateUser")
public ResultBody appUpdateUser(@RequestBody UserMessageQO userMessageQO){
return userAccountService.appUpdateUser(userMessageQO);
}
}
......@@ -4,6 +4,7 @@ import com.mmc.iuav.user.entity.UserAccountDO;
import com.mmc.iuav.user.entity.UserRcdDO;
import com.mmc.iuav.user.entity.fdd.UserFddDO;
import com.mmc.iuav.user.model.qo.UserAccountQO;
import com.mmc.iuav.user.model.qo.UserMessageQO;
import com.mmc.iuav.user.model.qo.UserRcdQO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
......@@ -170,4 +171,14 @@ public interface UserServiceDao {
UserAccountDO getUserAccountInfoByOpenId(String openid);
List<UserFddDO> listUserFddInfo(@Param(value = "unionId") String unionId, @Param(value = "openid") String openid);
Integer countPhoneNum(String phoneNum);
int countPhoneNums(String phoneNum, Integer userAccountId);
void updateAccountPhone(Integer userAccountId, String phoneNum);
void appUpdateUser(UserMessageQO userMessageQO);
int selectUserAccount(UserMessageQO userMessageQO);
}
......@@ -5,6 +5,7 @@ import com.mmc.iuav.user.entity.UserAccountDO;
import com.mmc.iuav.user.model.dto.LoginSuccessDTO;
import com.mmc.iuav.user.model.dto.UserAccountSimpleDTO;
import com.mmc.iuav.user.model.qo.UserAccountQO;
import com.mmc.iuav.user.model.qo.UserMessageQO;
import com.mmc.iuav.user.model.qo.UserRcdQO;
import com.mmc.iuav.user.model.vo.UserAccountVO;
......@@ -161,4 +162,10 @@ public interface UserAccountService {
* @return
*/
ResultBody getUserAccountByPhoneNum(String phoneNum);
ResultBody getVerifyCode(Integer userAccountId, String phoneNum);
ResultBody updatePhoneNum(Integer userAccountId, String verifyCode);
ResultBody appUpdateUser(UserMessageQO userMessageQO);
}
......@@ -17,6 +17,7 @@ import com.mmc.iuav.user.model.dto.LoginSuccessDTO;
import com.mmc.iuav.user.model.dto.RealNameAuthDTO;
import com.mmc.iuav.user.model.dto.UserAccountSimpleDTO;
import com.mmc.iuav.user.model.qo.UserAccountQO;
import com.mmc.iuav.user.model.qo.UserMessageQO;
import com.mmc.iuav.user.model.qo.UserRcdQO;
import com.mmc.iuav.user.model.vo.CompanyAuthVO;
import com.mmc.iuav.user.model.vo.CooperationTagVO;
......@@ -28,16 +29,21 @@ import com.mmc.iuav.user.service.CompanyAuthService;
import com.mmc.iuav.user.service.RealNameAuthService;
import com.mmc.iuav.user.service.UserAccountService;
import com.mmc.iuav.user.service.WxService;
import com.mmc.iuav.user.util.SmsUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.messaging.simp.annotation.SendToUser;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.util.CollectionUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
/**
......@@ -81,6 +87,9 @@ public class UserAccountServiceImpl implements UserAccountService {
@Autowired
private UserSubInfoDao userSubInfoDao;
@Autowired
private StringRedisTemplate stringRedisTemplate;
@Override
public UserAccountVO getUserAccountInfoByUnionId(String unionId) {
......@@ -442,4 +451,56 @@ public class UserAccountServiceImpl implements UserAccountService {
return ResultBody.success();
}
@Override
public ResultBody getVerifyCode(Integer userAccountId, String phoneNum) {
Integer count= userServiceDao.countPhoneNum(phoneNum);
if(count>0){
return ResultBody.error("手机号已存在");
}
// 根据手机号生成验证码
String verifyCode = CodeUtil.getRandomNum(6);
// 保存到redis中
Map<String, String> redisData = new HashMap<>();
redisData.put("userAccountId", userAccountId + "");
redisData.put("phoneNum", phoneNum);
redisData.put("verifyCode", verifyCode);
stringRedisTemplate.opsForHash().putAll(verifyCode + userAccountId, redisData);
stringRedisTemplate.expire(verifyCode + userAccountId, 60, TimeUnit.SECONDS);
// 发送给用户
SmsUtil.verifyCode(verifyCode, phoneNum);
return ResultBody.success();
}
@Override
public ResultBody updatePhoneNum(Integer userAccountId, String verifyCode) {
Map<Object, Object> redisData = stringRedisTemplate.opsForHash().entries(verifyCode + userAccountId);
if (redisData.isEmpty()) {
return ResultBody.error("验证码错误,请重新输入");
}
String code = redisData.get("verifyCode").toString();
String phoneNum = redisData.get("phoneNum").toString();
// 验证码错误则修改失败,并提醒
if (!code.equals(verifyCode)) {
return ResultBody.error("验证码错误,请重新输入");
}
int count = userServiceDao.countPhoneNums(phoneNum, userAccountId);
if (count > 0) {
return ResultBody.error("手机号已存在");
}
userServiceDao.updateAccountPhone(userAccountId, phoneNum);
return ResultBody.success();
}
@Override
public ResultBody appUpdateUser(UserMessageQO userMessageQO) {
int i = userServiceDao.selectUserAccount(userMessageQO);
if (i!=0){
return ResultBody.error("昵称被占用,请重新修改");
}else{
userServiceDao.appUpdateUser(userMessageQO);
}
return ResultBody.success();
}
}
......@@ -25,6 +25,8 @@ public class SmsUtil {
private static String COOPERATION_TEMPLATE_PASS_CODE_3 = "SMS_462620535";
private static String COOPERATION_TEMPLATE_PASS_CODE_4 = "SMS_462605558";
private static String COOPERATION_TEMPLATE_PASS_CODE_5 = "SMS_462575668";
//短信验证码模板
private static String VERIFYCODE="SMS_211825548";
/**
* 加盟审核未通过
......@@ -63,4 +65,14 @@ public class SmsUtil {
}
return new Gson().toJson(response.body);
}
/**
* 短信验证码
* @param verifyCode
* @param phone
* @return
*/
public static String verifyCode(String verifyCode,String phone){
return send(VERIFYCODE,"{\"code\":\""+verifyCode+"\"}",phone);
}
}
......@@ -480,4 +480,54 @@
</where>
</select>
<select id="countPhoneNum" resultType="java.lang.Integer">
select count(*) from user_account where phone_num = #{phoneNum} and `disable`=0 and account_status=1
</select>
<select id="countPhoneNums" resultType="java.lang.Integer">
select count(*) from user_account where phone_num = #{phoneNum}
and `disable`=0 and account_status=1 and id=#{userAccountId}
</select>
<select id="updateAccountPhone" >
update user_account
<set>
phone_num = #{phoneNum}
</set>
where id = #{userAccountId}
</select>
<update id="appUpdateUser" parameterType="com.mmc.iuav.user.model.qo.UserMessageQO">
update user_account
<set>
<if test="userImg!='' and userImg!=null ">
user_img=#{userImg},
</if>
<if test="coverPicture!='' and coverPicture!=null">
cover_picture=#{coverPicture},
</if>
<if test="nickName!='' and nickName!=null ">
nick_name=#{nickName},
</if>
<if test="region!='' and region!=null">
region=#{region},
</if>
<if test="briefIntroduction!='' and briefIntroduction!=null">
brief_introduction=#{briefIntroduction},
</if>
<if test="longitude!=null">
longitude=#{longitude},
</if>
<if test="latitude!=null">
latitude=#{latitude}
</if>
</set>
where id=#{id}
</update>
<select id="selectUserAccount" resultType="java.lang.Integer"
parameterType="com.mmc.iuav.user.model.qo.UserMessageQO">
select count(*) from user_account where disable=0 and nick_name=#{nickName} and id!=#{id}
</select>
</mapper>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论