feat(auth): 实现用户头像修改次数限制功能
- 在Member实体中添加avatarModifyCount和avatarModifyYear字段用于统计本年头像修改次数 - 在上传头像接口中实现头像修改次数检查,限制每年最多修改2次 - 更新用户信息时增加头像修改次数统计逻辑 - 修改createByMobile方法参数,移除不必要的用户信息参数 - 在MemberDTO中添加avatarModifyRemainCount字段显示剩余修改次数 - 添加数据库表结构变更SQL脚本 - 移除已废弃的手机号注册和微信登录相关代码 - 移除BindMobileDTO中的冗余字段定义
This commit is contained in:
@@ -211,7 +211,7 @@ public class MemberService extends BaseServiceImpl {
|
||||
* @return 新用户
|
||||
*/
|
||||
@Transactional
|
||||
public Member createByMobile(String mobile, String name, Integer sex, Integer age, String address, Integer platformId) {
|
||||
public Member createByMobile(String mobile, Integer platformId) {
|
||||
// 参数校验
|
||||
ValidationUtils.assertNotNull(mobile);
|
||||
VenueValidateUtils.assertMobile(mobile);
|
||||
@@ -230,25 +230,12 @@ public class MemberService extends BaseServiceImpl {
|
||||
}
|
||||
member.setInviteCode(inviteCode);
|
||||
member.setMobile(mobile);
|
||||
if (name != null) {
|
||||
if (name.length() > 8) {
|
||||
throw new ServiceException("姓名不能超过8位");
|
||||
}
|
||||
member.setName(name);
|
||||
}
|
||||
if (sex != null) {
|
||||
member.setSex(sex);
|
||||
}
|
||||
if (age != null) {
|
||||
if (age.intValue() < 10 || age.intValue() > 100) {
|
||||
throw new ServiceException("年龄在10-100之间");
|
||||
}
|
||||
member.setAge(age);
|
||||
}
|
||||
if (address != null) {
|
||||
member.setAddress(address);
|
||||
}
|
||||
member.setPlatformId(platformId);
|
||||
|
||||
// 初始化头像修改次数
|
||||
member.setAvatarModifyCount(0);
|
||||
member.setAvatarModifyYear(java.util.Calendar.getInstance().get(java.util.Calendar.YEAR));
|
||||
|
||||
memberMapper.insert(member);
|
||||
return member;
|
||||
}
|
||||
@@ -375,6 +362,17 @@ public class MemberService extends BaseServiceImpl {
|
||||
memberDTO.setSex(member.getSex());
|
||||
memberDTO.setAge(member.getAge() == null ? null : member.getAge());
|
||||
memberDTO.setAddress(member.getAddress() == null ? "" : member.getAddress());
|
||||
|
||||
// 计算本年头像剩余修改次数
|
||||
int currentYear = java.util.Calendar.getInstance().get(java.util.Calendar.YEAR);
|
||||
Integer modifyCount = member.getAvatarModifyCount();
|
||||
Integer modifyYear = member.getAvatarModifyYear();
|
||||
if (modifyYear == null || modifyYear != currentYear) {
|
||||
memberDTO.setAvatarModifyRemainCount(2);
|
||||
} else {
|
||||
memberDTO.setAvatarModifyRemainCount(Math.max(0, 2 - (modifyCount == null ? 0 : modifyCount)));
|
||||
}
|
||||
|
||||
return memberDTO;
|
||||
}
|
||||
|
||||
@@ -461,6 +459,7 @@ public class MemberService extends BaseServiceImpl {
|
||||
* @param faceUrl
|
||||
* @param memberId
|
||||
*/
|
||||
@Deprecated
|
||||
public void setMemberFaceInfo(Integer subjectId, String faceUrl, Integer memberId, Integer platformId) {
|
||||
MemberFaceInfo memberFaceInfo = memberMapper.findMemberFaceInfo(memberId);
|
||||
if (memberFaceInfo == null) {
|
||||
@@ -485,6 +484,7 @@ public class MemberService extends BaseServiceImpl {
|
||||
* @param file
|
||||
*/
|
||||
@Transactional
|
||||
@Deprecated
|
||||
public void setMemberFaceInfo(Integer memberId, MultipartFile file, Integer platformId) {
|
||||
Date now = new Date();
|
||||
MemberFaceInfo memberFaceInfo = memberMapper.findMemberFaceInfo(memberId);
|
||||
|
||||
@@ -21,6 +21,8 @@
|
||||
<result column="created_time" property="createdTime" jdbcType="TIMESTAMP" />
|
||||
<result column="modified_time" property="modifiedTime" jdbcType="TIMESTAMP" />
|
||||
<result column="deleted" property="deleted" jdbcType="TINYINT" />
|
||||
<result column="avatar_modify_count" property="avatarModifyCount" jdbcType="INTEGER" />
|
||||
<result column="avatar_modify_year" property="avatarModifyYear" jdbcType="INTEGER" />
|
||||
<result column="face_url" property="faceUrl" jdbcType="VARCHAR" />
|
||||
</resultMap>
|
||||
|
||||
@@ -42,6 +44,8 @@
|
||||
<result column="created_time" property="createdTime" jdbcType="TIMESTAMP" />
|
||||
<result column="modified_time" property="modifiedTime" jdbcType="TIMESTAMP" />
|
||||
<result column="deleted" property="deleted" jdbcType="TINYINT" />
|
||||
<result column="avatar_modify_count" property="avatarModifyCount" jdbcType="INTEGER" />
|
||||
<result column="avatar_modify_year" property="avatarModifyYear" jdbcType="INTEGER" />
|
||||
</resultMap>
|
||||
|
||||
<resultMap id="MemberFaceInfoMap" type="com.sv.entity.MemberFaceInfo">
|
||||
@@ -79,7 +83,9 @@
|
||||
platform_id,
|
||||
created_time,
|
||||
modified_time,
|
||||
deleted
|
||||
deleted,
|
||||
avatar_modify_count,
|
||||
avatar_modify_year
|
||||
</sql>
|
||||
|
||||
<!-- 字段值 -->
|
||||
@@ -100,7 +106,9 @@
|
||||
#{platformId, jdbcType=INTEGER},
|
||||
#{createdTime, jdbcType=TIMESTAMP},
|
||||
#{modifiedTime, jdbcType=TIMESTAMP},
|
||||
#{deleted, jdbcType=TINYINT}
|
||||
#{deleted, jdbcType=TINYINT},
|
||||
#{avatarModifyCount, jdbcType=INTEGER},
|
||||
#{avatarModifyYear, jdbcType=INTEGER}
|
||||
</sql>
|
||||
|
||||
<!-- 查询全部记录 -->
|
||||
@@ -123,6 +131,8 @@
|
||||
sm.created_time,
|
||||
sm.modified_time,
|
||||
sm.deleted,
|
||||
sm.avatar_modify_count,
|
||||
sm.avatar_modify_year,
|
||||
smfi.face_url
|
||||
FROM
|
||||
sv_member AS sm
|
||||
@@ -187,6 +197,12 @@
|
||||
<if test="deleted != null">
|
||||
deleted,
|
||||
</if>
|
||||
<if test="avatarModifyCount != null">
|
||||
avatar_modify_count,
|
||||
</if>
|
||||
<if test="avatarModifyYear != null">
|
||||
avatar_modify_year,
|
||||
</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="id != null">
|
||||
@@ -240,6 +256,12 @@
|
||||
<if test="deleted != null">
|
||||
#{deleted},
|
||||
</if>
|
||||
<if test="avatarModifyCount != null">
|
||||
#{avatarModifyCount},
|
||||
</if>
|
||||
<if test="avatarModifyYear != null">
|
||||
#{avatarModifyYear},
|
||||
</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
@@ -317,6 +339,12 @@
|
||||
<if test="deleted != null">
|
||||
deleted = #{deleted},
|
||||
</if>
|
||||
<if test="avatarModifyCount != null">
|
||||
avatar_modify_count = #{avatarModifyCount},
|
||||
</if>
|
||||
<if test="avatarModifyYear != null">
|
||||
avatar_modify_year = #{avatarModifyYear},
|
||||
</if>
|
||||
</set>
|
||||
WHERE id = #{id}
|
||||
</update>
|
||||
@@ -345,6 +373,8 @@
|
||||
sm.created_time,
|
||||
sm.modified_time,
|
||||
sm.deleted,
|
||||
sm.avatar_modify_count,
|
||||
sm.avatar_modify_year,
|
||||
smfi.face_url
|
||||
FROM
|
||||
sv_member AS sm
|
||||
|
||||
Reference in New Issue
Block a user