提交 aae8d5d7 作者: xiaowang

Merge branch 'develop' of ssh://git.mmcuav.cn:8222/iuav/cms into develop

 Conflicts:
	csm-service/cms-service-user/src/main/java/com/mmc/iuav/user/dao/UserServiceDao.java
	csm-service/cms-service-user/src/main/resources/mapper/UserServiceDao.xml
......@@ -8,6 +8,7 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
/**
......@@ -54,4 +55,10 @@ public class UserAccountSimpleDTO implements Serializable {
private String tagName;
@ApiModelProperty(value = "用户合作标签")
private List<CooperationTagVO> cooperationTagVOS;
}
\ No newline at end of file
@ApiModelProperty(value = "个人简介")
private String briefIntroduction;
@ApiModelProperty(value = "封面背景图")
private String coverPicture;
@ApiModelProperty(value = "地区")
private String region;
}
package com.mmc.iuav.user.model.qo;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
/**
* @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 = "地区最下级id",example = "130100")
private String districtChildId;
@ApiModelProperty(value = "个人简介",example = "航拍多年")
private String briefIntroduction;
}
......@@ -10,6 +10,7 @@ import lombok.NoArgsConstructor;
import javax.validation.constraints.Email;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
......@@ -79,4 +80,13 @@ public class UserAccountVO implements Serializable {
private Integer xzAuthStatus;
@ApiModelProperty(value = "是否关注公众号")
private Integer subStatus;
@ApiModelProperty(value = "地区")
private String region;
@ApiModelProperty(value = "个人简介")
private String briefIntroduction;
@ApiModelProperty(value = "封面背景图")
private String coverPicture;
}
......@@ -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;
......@@ -49,7 +50,7 @@ public class UserAccountController extends BaseController {
return userAccountService.update(userAccountVO);
}
@ApiOperation(value = "获取用户基本信息", hidden = true)
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = UserAccountSimpleDTO.class)})
@GetMapping("feignGetUserSimpleInfo")
......@@ -143,4 +144,39 @@ 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 = "new_修改用户信息")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("/appUpdateUser")
public ResultBody appUpdateUser(@RequestBody UserMessageQO userMessageQO){
return userAccountService.appUpdateUser(userMessageQO);
}
@ApiOperation(value = "内部使用获取用户信息")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = UserAccountVO.class)})
@GetMapping("interiorInfo")
public ResultBody<UserAccountVO> interiorInfo(HttpServletRequest request,Integer userAccountId) {
return ResultBody.success(userAccountService.getUserAccountById(userAccountId));
}
}
......@@ -5,6 +5,7 @@ import com.mmc.iuav.user.entity.UserRcdDO;
import com.mmc.iuav.user.entity.data.ActiveUserCountDO;
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;
......@@ -180,4 +181,16 @@ public interface UserServiceDao {
ActiveUserCountDO getActiveUserCountByDayNum();
Integer countPhoneNum(String phoneNum);
int countPhoneNums(String phoneNum, Integer userAccountId);
void updateAccountPhone(Integer userAccountId, String phoneNum);
void appUpdateUser(UserMessageQO userMessageQO);
int selectUserAccount(UserMessageQO userMessageQO);
String getDistrictChild(Integer districtChildId);
}
......@@ -4,12 +4,14 @@ import com.mmc.iuav.user.model.dto.UserAccountSimpleDTO;
import com.mmc.iuav.user.model.vo.BUserAccountVO;
import com.mmc.iuav.user.model.vo.TopInviteVO;
import com.mmc.iuav.user.model.vo.UserAccountVO;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.util.CollectionUtils;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
......@@ -79,6 +81,16 @@ public class UserAccountDO implements Serializable {
private Integer totalPoints;
@ApiModelProperty(value = "地区")
private String region;
@ApiModelProperty(value = "个人简介")
private String briefIntroduction;
@ApiModelProperty(value = "封面背景图")
private String coverPicture;
@ApiModelProperty(value = "地区id")
private Integer districtChildId;
public UserAccountDO(UserAccountVO userAccountVO) {
this.id = userAccountVO.getId();
this.phoneNum = userAccountVO.getPhoneNum();
......@@ -116,6 +128,9 @@ public class UserAccountDO implements Serializable {
.xzAuthStatus(this.xzAuthStatus)
.auditStatus(this.auditStatus)
.totalPoints(this.totalPoints)
.region(this.region)
.briefIntroduction(this.briefIntroduction)
.coverPicture(this.coverPicture)
.build();
}
......@@ -123,6 +138,9 @@ public class UserAccountDO implements Serializable {
return UserAccountSimpleDTO.builder().id(this.id).uid(this.id + "").phoneNum(this.phoneNum).userName(this.userName).nickName(this.nickName)
.userImg(this.userImg).openid(this.openId).userSex(this.userSex).email(this.email).source(this.source).accountStatus(this.accountStatus).portType(this.portType)
.companyAuthStatus(this.companyName == null ? 0 : 1).companyName(this.companyName)
.region(this.region)
.briefIntroduction(this.briefIntroduction)
.coverPicture(this.coverPicture)
.build();
}
......
......@@ -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);
}
......@@ -26,6 +26,7 @@ import org.apache.commons.lang3.RandomStringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.security.NoSuchAlgorithmException;
import java.util.List;
......@@ -205,6 +206,15 @@ public class BackUserAccountServiceImpl implements BackUserAccountService {
return null;
}
List<BackUserAccountVO> accountSimpleDTOS = list.stream().map(BackUserAccountDO::buildBackUserAccountVO).collect(Collectors.toList());
List<CompanyInfoVO> companyInfoVOS = companyService.listCompanyInfoByBUIds(bUserAccountQO.getUserIds());
if (!CollectionUtils.isEmpty(companyInfoVOS)) {
Map<Integer, CompanyInfoVO> userCom = companyInfoVOS.stream().collect(Collectors.toMap(CompanyInfoVO::getBackUserAccountId, v -> v, (v1, v2) -> v2));
for (BackUserAccountVO accountSimpleDTO : accountSimpleDTOS) {
if (userCom.containsKey(accountSimpleDTO.getId())) {
accountSimpleDTO.setCompanyName(userCom.get(accountSimpleDTO.getId()).getCompanyName());
}
}
}
return accountSimpleDTOS;
}
......
......@@ -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) {
......@@ -102,6 +111,8 @@ public class UserAccountServiceImpl implements UserAccountService {
if (userAccountDO == null) {
return null;
}
String districtChild = userServiceDao.getDistrictChild(userAccountDO.getDistrictChildId());
userAccountDO.setRegion(districtChild);
UserAccountVO userAccountVO = userAccountDO.buildUserAccountVO();
ResultBody<RealNameAuthDTO> nameAuthDTOResultBody = realNameAuthService.userDetail(userAccountId);
RealNameAuthDTO realNameAuthDTO = nameAuthDTOResultBody.getResult();
......@@ -149,6 +160,8 @@ public class UserAccountServiceImpl implements UserAccountService {
if (userAccountDO == null) {
return null;
}
String districtChild = userServiceDao.getDistrictChild(userAccountDO.getDistrictChildId());
userAccountDO.setRegion(districtChild);
UserAccountSimpleDTO userAccountSimpleDTO = userAccountDO.buildUserAccountSimpleDTO();
CompanyAuthVO companyAuthVO = companyAuthService.getCompanyAuthByUId(userAccountId);
if (companyAuthVO != null) {
......@@ -442,4 +455,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);
}
}
......@@ -166,8 +166,8 @@
<select id="listCompanyInfoByUID" resultType="com.mmc.iuav.user.entity.CompanyInfoDO">
SELECT ci.id, ci.company_type, ci.company_name, ci.full_name, ci.province, ci.city, ci.district, ci.address,
ci.company_user_name,
ci.phone_num, ci.remark, ci.create_time, cbu.back_user_account_id,ci.content, ci.score, ci.back_img
ci.company_user_name, ci.phone_num, ci.remark, ci.create_time, ci.content, ci.score, ci.back_img,
cbu.back_user_account_id
FROM company_info ci INNER JOIN company_back_user cbu ON ci.id = cbu.company_info_id
WHERE 1 = 1
<if test="backUserIds != null">
......
......@@ -145,7 +145,10 @@
ua.create_time,
ua.update_time,
pc.audit_status,
up.total_points
up.total_points,
ua.brief_introduction,
ua.cover_picture,
ua.district_child_id
FROM user_account ua
LEFT JOIN pilot_certification pc ON pc.user_account_id = ua.id
LEFT JOIN user_points up ON up.user_account_id = ua.id
......@@ -170,7 +173,12 @@
parameterType="com.mmc.iuav.user.model.qo.UserAccountQO">
select ua.id, ua.phone_num, rna.user_name, ua.nick_name, ua.user_img, ua.open_id,
ua.union_id, ua.user_sex, ua.email, ua.source, ua.account_status, ua.remark,
ua.port_type, ua.disable, ua.create_time, ua.update_time, ca.auth_status as companyAuthStatus
ua.port_type, ua.disable, ua.create_time, ua.update_time, ca.auth_status as companyAuthStatus,
ua.latitude,
ua.longitude,
ua.region,
ua.brief_introduction,
ua.cover_picture
from user_account ua left join company_auth ca on ua.id = ca.user_account_id left join real_name_auth rna on
ua.id = rna.user_account_id
where ua.disable = 0
......@@ -500,4 +508,61 @@
FROM active_user_count auc
WHERE (TO_DAYS(NOW()) - TO_DAYS(auc.active_date)) = 1
</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="districtChildId!=null">
district_child_id=#{districtChildId},
</if>
<if test="briefIntroduction!='' and briefIntroduction!=null">
brief_introduction=#{briefIntroduction},
</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>
<select id="getDistrictChild" resultType="java.lang.String">
SELECT
concat( p1.`name`, p2.`name` ) AS region
FROM
sys_district p1,
sys_district p2
WHERE
p2.LEVEL != 3
AND p1.id = p2.pid
AND p2.id = #{districtChildId}
</select>
</mapper>
......@@ -37,4 +37,5 @@ data-filter:
- /userapp/pay/feignPayUavWallet
- /userapp/fdd/contract/notifyStamp
- /userapp/fdd/auth/notifyECertRes
- /userapp/user-account/interiorInfo
......@@ -18,4 +18,4 @@ patches:
images:
- name: REGISTRY/NAMESPACE/IMAGE:TAG
newName: mmc-registry.cn-shenzhen.cr.aliyuncs.com/sharefly-dev/cms
newTag: c140fbb2f387106292564bd620272c2e5401d9d1
newTag: 501e53860e9e3fef600bba0c43ba19d64d9df659
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论