Răsfoiți Sursa

用户信息传入deviceToken等信息

qmj 1 săptămână în urmă
părinte
comite
f2ac935e53

+ 16 - 0
ruoyi-admin/src/main/java/com/ruoyi/app/user/InfoUserController.java

@@ -292,6 +292,8 @@ public class InfoUserController extends BaseController {
         user.setMycode(uuid.get8UUID());
         user.setStatus("0");
         user.setCid(userDTO.getCid());
+        user.setDeviceToken(userDTO.getDeviceToken());
+        user.setVoIPToken(userDTO.getVoIPToken());
         int result = infoUserService.insertInfoUser(user);
         InfoUser infoUser = infoUserService.getinfouserName(userDTO.getUserName());
         createUserWallet(infoUser.getUserId());
@@ -344,6 +346,8 @@ public class InfoUserController extends BaseController {
         user.setMycode(uuid.get8UUID());
         user.setStatus("0");
         user.setCid(userDTO.getCid());
+        user.setDeviceToken(userDTO.getDeviceToken());
+        user.setVoIPToken(userDTO.getVoIPToken());
         int result = infoUserService.insertInfoUser(user);
         InfoUser infoUser = infoUserService.getinfouserName(userDTO.getUserName());
         createUserWallet(infoUser.getUserId());
@@ -377,8 +381,12 @@ public class InfoUserController extends BaseController {
                     InfoUser info = new InfoUser();
                     info.setUserId(user.getUserId());
                     info.setCid(userDTO.getCid());
+                    info.setDeviceToken(userDTO.getDeviceToken());
+                    info.setVoIPToken(userDTO.getVoIPToken());
                     infoUserService.saveOrUpdate(info);
                     user.setCid(userDTO.getCid());
+                    user.setDeviceToken(userDTO.getDeviceToken());
+                    user.setVoIPToken(userDTO.getVoIPToken());
                 }
                 // 根据客户端类型(APP端或PC端)选择对应的 token key
                 String tokenKey = getTokenKeyByClientType();
@@ -433,6 +441,8 @@ public class InfoUserController extends BaseController {
                 InfoUser info = new InfoUser();
                 info.setUserId(user.getUserId());
                 info.setCid(userDTO.getCid());
+                info.setDeviceToken(userDTO.getDeviceToken());
+                info.setVoIPToken(userDTO.getVoIPToken());
                 info.setOffline("0");
                 infoUserService.saveOrUpdate(info);
                 if (!"".equals(userDTO.getCid())) {
@@ -657,6 +667,8 @@ public class InfoUserController extends BaseController {
         user.setUserId(Long.valueOf(id));
         user.setUserType(infoUser.getUserType());
         user.setCid(infoUser.getCid());
+        user.setDeviceToken(infoUser.getDeviceToken());
+        user.setVoIPToken(infoUser.getVoIPToken());
         user.setNickName(infoUser.getNickName());
         user.setAvatar(infoUser.getAvatar());
         user.setEmail(infoUser.getEmail());
@@ -805,6 +817,8 @@ public class InfoUserController extends BaseController {
         info.setPhone(userDTO.getPhone());
         info.setNickName(userDTO.getPhone());
         info.setCid(userDTO.getCid());
+        info.setDeviceToken(userDTO.getDeviceToken());
+        info.setVoIPToken(userDTO.getVoIPToken());
         info.setUserType("0");
         info.setMycode(uuid.get8UUID());
         infoUserService.saveOrUpdate(info);
@@ -837,6 +851,8 @@ public class InfoUserController extends BaseController {
             throw new ServiceException(MessageUtils.message("no.user.not.exist"));
         }
         user.setCid(userDTO.getCid());
+        user.setDeviceToken(userDTO.getDeviceToken());
+        user.setVoIPToken(userDTO.getVoIPToken());
         infoUserService.saveOrUpdate(user);
         QueryWrapper<VipUser> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("user_id", infoUser.getUserId());

+ 7 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/InfoUser.java

@@ -189,6 +189,13 @@ public class InfoUser
     @JsonSerialize(using = ToStringSerializer.class)
     private Long imUserId;
 
+    /** 设备推送 token(普通推送):Android FCM token / iOS APNs device token */
+    private String deviceToken;
+
+    /** iOS VoIP 推送 token(PushKit,用于语音/视频来电推送)。显式映射列 voip_token,避免 MyBatis-Plus 驼峰转下划线歧义 */
+    @TableField("voip_token")
+    private String voIPToken;
+
 
     public void setUserId(Long userId)
     {

+ 4 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/UserDTO.java

@@ -11,4 +11,8 @@ public class UserDTO {
     private String newpassword;
     private String code;
     private String cid;
+    /** 设备推送 token(普通推送):Android FCM / iOS APNs */
+    private String deviceToken;
+    /** iOS VoIP 来电推送 token */
+    private String voIPToken;
 }

+ 8 - 0
ruoyi-system/src/main/resources/mapper/infouser/InfoUserMapper.xml

@@ -43,6 +43,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="juli"    column="juli"    />
         <result property="imApiKey"    column="im_api_key"    />
         <result property="imUserId"    column="im_user_id"    />
+        <result property="deviceToken"    column="device_token"    />
+        <result property="voIPToken"    column="voip_token"    />
     </resultMap>
 
     <sql id="selectInfoUserVo">
@@ -110,6 +112,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="storeId != null">store_id,</if>
             <if test="address != null and address != ''">address,</if>
             <if test="longitude != null">longitude,</if>
+            <if test="deviceToken != null">device_token,</if>
+            <if test="voIPToken != null">voip_token,</if>
             <if test="latitude != null">latitude</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
@@ -141,6 +145,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="storeId != null">#{storeId},</if>
             <if test="address != null and address != ''">#{address},</if>
             <if test="longitude != null">#{longitude},</if>
+            <if test="deviceToken != null">#{deviceToken},</if>
+            <if test="voIPToken != null">#{voIPToken},</if>
             <if test="latitude != null">#{latitude}</if>
          </trim>
     </insert>
@@ -176,6 +182,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="storeId != null">store_id = #{storeId},</if>
             <if test="address != null and address != ''">address = #{address},</if>
             <if test="longitude != null">longitude = #{longitude},</if>
+            <if test="deviceToken != null">device_token = #{deviceToken},</if>
+            <if test="voIPToken != null">voip_token = #{voIPToken},</if>
             <if test="latitude != null">latitude = #{latitude}</if>
         </trim>
         where user_id = #{userId}

+ 6 - 0
updatesql/sql.md

@@ -333,3 +333,9 @@ ALTER TABLE pos_order_invoice ADD COLUMN invoice_qrcode_r VARCHAR(255) DEFAULT N
 ALTER TABLE info_user ADD COLUMN im_api_key VARCHAR(64) DEFAULT NULL COMMENT 'IM平台API密钥(extCreate返回)';
 ALTER TABLE info_user ADD COLUMN im_user_id BIGINT DEFAULT NULL COMMENT 'IM平台用户ID(extCreate返回)';
 ```
+
+```sql
+-- 2026-06-30 推送 token 字段:info_user 新增设备推送 token(FCM/APNs 普通推送)与 iOS VoIP 来电 token
+ALTER TABLE info_user ADD COLUMN device_token VARCHAR(255) DEFAULT NULL COMMENT '设备推送token(普通推送:Android FCM / iOS APNs device token)';
+ALTER TABLE info_user ADD COLUMN voip_token VARCHAR(255) DEFAULT NULL COMMENT 'iOS VoIP推送token(PushKit,语音/视频来电推送)';
+```