feat(auth): 重构微信登录和手机号绑定功能

- 简化微信登录接口参数,移除昵称和头像参数
- 优化手机号绑定流程,直接通过openId获取用户信息
- 完善用户信息查询逻辑,从数据库获取真实用户数据
- 修复门禁系统异常处理,添加设备离线检查
- 更新会员信息服务,支持用户创建和信息完善
- 调整MyBatis映射文件,优化用户数据插入逻辑
This commit is contained in:
2026-04-18 18:36:56 +08:00
parent 03a556fe76
commit 81120e1794
9 changed files with 132 additions and 66 deletions

View File

@@ -147,7 +147,7 @@ public class MemberAuthService extends BaseServiceImpl {
* 创建登录认证存在openId
*/
@Transactional
public MemberAuth createByMobileByOpenId(Integer memberId,Integer platformId, String mobile, String openId) {
public MemberAuth createByOpenId(Integer memberId,Integer platformId, String openId) {
MemberAuth memberAuth = new MemberAuth();
memberAuth.setMemberId(memberId);
// memberAuth.setMobile(mobile);
@@ -155,6 +155,21 @@ public class MemberAuthService extends BaseServiceImpl {
memberAuth.setAuthId(openId);
memberAuth.setPlatformId(platformId);
memberAuthMapper.insert(memberAuth);
return memberAuth;
}
/**
* 创建登录认证存在openId
*/
@Transactional
public MemberAuth createByMobileByOpenId(Integer memberId,Integer platformId, String mobile, String openId) {
MemberAuth memberAuth = new MemberAuth();
memberAuth.setMemberId(memberId);
// memberAuth.setMobile(mobile);
memberAuth.setType(MemberAuthTypeEnum.WEIXIN.value);
memberAuth.setAuthId(openId);
memberAuth.setPlatformId(platformId);
// memberAuthMapper.insert(memberAuth);
// 判断是否有用手机号登陆过
MemberAuth auth = memberAuthMapper.findByType(memberId);

View File

@@ -240,6 +240,28 @@ public class MemberService extends BaseServiceImpl {
return member;
}
@Transactional
public Member createUser(Integer platformId) {
// 创建用户
Member member = new Member();
member.setNickname("用户" + RandomStringUtils.randomNumeric(8));
String inviteCode = "";
Integer count = 1;
while (count == 1) {
inviteCode = RandomStringUtils.randomNumeric(10);
count = memberMapper.checkInviteCode(inviteCode);
}
member.setInviteCode(inviteCode);
member.setPlatformId(platformId);
// 初始化头像修改次数
member.setAvatarModifyCount(0);
member.setAvatarModifyYear(java.util.Calendar.getInstance().get(java.util.Calendar.YEAR));
memberMapper.insert(member);
return member;
}
/**
* 断言手机号码未使用
*

View File

@@ -63,7 +63,7 @@
<sql id="tableName">
sv_member
</sql>
<!-- 字段 -->
<sql id="Field">
id,
@@ -87,7 +87,7 @@
avatar_modify_count,
avatar_modify_year
</sql>
<!-- 字段值 -->
<sql id="FieldValue">
#{id, jdbcType=INTEGER},
@@ -140,15 +140,12 @@
WHERE
sm.deleted = 0
</select>
<!-- 新增-->
<insert id="insert" parameterType="com.sv.entity.Member" useGeneratedKeys="true" keyProperty="id">
INSERT INTO
<include refid="tableName"></include>
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="nickname != null">
nickname,
</if>
@@ -205,9 +202,6 @@
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id},
</if>
<if test="nickname != null">
#{nickname},
</if>
@@ -264,7 +258,7 @@
</if>
</trim>
</insert>
<!-- 删除-->
<delete id="delete" parameterType="java.lang.Integer">
UPDATE
@@ -287,7 +281,7 @@
#{item}
</foreach>
</delete>
<!-- 更新记录 -->
<update id="update" parameterType="com.sv.entity.Member">
UPDATE
@@ -381,7 +375,7 @@
LEFT JOIN sv_member_face_info AS smfi ON sm.id = smfi.member_id
WHERE sm.id = #{id}
</select>
<!--api 通过编号查询 -->
<select id="findById" parameterType="java.lang.Integer" resultMap="MemberMap">
SELECT
@@ -495,4 +489,4 @@
SELECT count(0) from sv_member
WHERE money >= #{price} and id = #{memberId} and deleted = 0
</select>
</mapper>
</mapper>