Przeglądaj źródła

增加用户手机号、设备ID
修改login_ip后端获取

marxjaw 4 miesięcy temu
rodzic
commit
0a7c704778

+ 10 - 1
yt-app/app-service/src/main/java/com/ytpm/controller/WxController.java

@@ -38,6 +38,7 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
 import java.math.BigDecimal;
 import java.util.Date;
 import java.util.Objects;
@@ -59,7 +60,7 @@ public class WxController {
     @PostMapping("/login")
     @ApiOperation("微信登录")
     @Transactional
-    public Result<YtDyzUser> wxLogin(@RequestBody WxLoginParam param) {
+    public Result<YtDyzUser> wxLogin(@RequestBody WxLoginParam param, HttpServletRequest request) {
         //根据应用获取配置调用微信接口登录
         WxDefaultConfig defaultConfig = appUserMapper.getDefaultConfig(param.getAppType());
         if(Objects.isNull(defaultConfig)){
@@ -74,6 +75,7 @@ public class WxController {
         if(Objects.isNull(wxUserInfo)) {
             throw new CustomerException("微信用户登录失败");
         }
+        param.setLoginIp(getClientIp(request));
         YtDyzUser old = appUserService.crudForNewTrans(param,wxUserInfo,loginResult);
         //调用风控服务校验默认风控配置
         old.setRiskCode("313");
@@ -84,6 +86,13 @@ public class WxController {
         return Result.resultOk(RepMessage.LOGIN_SUCCESS, old);
     }
 
+    private String getClientIp(HttpServletRequest request) {
+        String xfHeader = request.getHeader("X-Forwarded-For");
+        if (xfHeader == null) {
+            return request.getRemoteAddr();
+        }
+        return xfHeader.split(",")[0]; // 可能会有多个IP,这里取第一个逗号前的IP
+    }
 
     /**
      * 获取微信用户信息

+ 5 - 1
yt-app/app-service/src/main/java/com/ytpm/service/impl/AppUserServiceImpl.java

@@ -84,7 +84,7 @@ public class AppUserServiceImpl implements AppUserService {
         loginRecord.setDeviceModel(param.getModel());
         loginRecord.setLoginIp(param.getLoginIp());
         loginRecord.setOperator(param.getIpOperator());
-        loginRecord.setIpAddr(param.getLoginIp());
+        loginRecord.setIpAddr(param.getIpLocation());
         loginRecordMapper.insertOne(loginRecord);
     }
 
@@ -97,10 +97,13 @@ public class AppUserServiceImpl implements AppUserService {
             throw new CustomerException("当前用户处于"+UserStatusEnum.getByCode(old.getUserStatus())+"中,无法登录");
         }
         YtDyzUser newUser = new YtDyzUser();
+        newUser.setUserId(old.getUserId());
         newUser.setNickName(wxUserInfo.getNickname());
         newUser.setHeadImg(wxUserInfo.getHeadimgurl());
         newUser.setLastLoginTime(new Date());
         newUser.setLastLoginIp(param.getLoginIp());
+        newUser.setPhone(param.getPhone());
+        newUser.setDeviceId(param.getDeviceId());
         newUser.setLoginDays(old.getLoginDays()+1);
         appUserMapper.updateUser(newUser);
     }
@@ -113,6 +116,7 @@ public class AppUserServiceImpl implements AppUserService {
     private void registryUser(WxLoginParam param,WxUserInfo wxUserInfo,WxLoginResult loginResult, YtDyzUser old) {
         old.setUserId(redisService.getAppUserId());
         old.setPhone(param.getPhone());
+        old.setDeviceId(param.getDeviceId());
         old.setNickName(wxUserInfo.getNickname());
         old.setLastLoginTime(new Date());
         old.setRegistryTime(new Date());

+ 37 - 11
yt-app/app-service/src/main/resources/mapper/AppUserMapper.xml

@@ -27,6 +27,7 @@
          app_id,
          power,
          phone,
+         device_id
         )
         values
         (
@@ -52,7 +53,8 @@
          #{platformId},
          #{appId},
          #{power},
-         #{phone}
+         #{phone},
+         #{deviceId}
         )
     </insert>
     <insert id="addPowerRecord">
@@ -77,6 +79,12 @@
             <if test="nickName != null">
                 nick_name = #{nickName},
             </if>
+            <if test="phone != null">
+                phone = #{phone},
+            </if>
+            <if test="deviceId != null">
+                device_id = #{deviceId},
+            </if>
             <if test="headImg != null">
                 head_img = #{headImg},
             </if>
@@ -133,14 +141,14 @@
     </update>
     <select id="getYtAppUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-           user_id, app_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+           user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where wx_open_id = #{openid}
         and ditch_id = #{ditchId}
     </select>
     <select id="queryAll" resultType="com.ytpm.app.view.YtAppUserListView">
         select
-            user_id,app_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+            user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where 1 = 1
         <if test="userId != null and userId !=''">
@@ -177,18 +185,36 @@
     </select>
     <select id="selectPrimaryKey" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,app_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power
+            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power
         from yt_dyz_user
         where user_id = #{userId}
     </select>
     <select id="getUserList" resultType="com.ytpm.app.model.YtDyzUser">
         select
             du.user_id,
-            head_img,
-            nick_name,
-            registry_time,
-            last_login_time,
-            last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
+            du.head_img,
+            du.nick_name,
+            du.phone,
+            du.device_id,
+            du.registry_time,
+            du.last_login_time,
+            du.last_login_ip,
+            du.login_days,
+            du.total_video,
+            du.total_income,
+            du.red_packet_balance,
+            du.red_packet_amount,
+            du.points_balance,
+            du.points_total,
+            du.withdraw_total,
+            du.sign_days,
+            du.user_status,
+            du.risk_reason,
+            du.wx_open_id,
+            du.ditch_id,
+            du.app_id,
+            du.platform_id,
+            du.power
         from yt_dyz_user du
         where du.user_id in
         <foreach collection="userIds.split(',')" item="item" separator="," open="(" close=")">
@@ -198,7 +224,7 @@
 
     <select id="queryAllByTime" resultType="com.ytpm.app.model.YtDyzUser">
         SELECT
-        user_id,app_id, nick_name, head_img, power, registry_time,
+        user_id,app_id,phone,device_id, nick_name, head_img, power, registry_time,
         last_login_time, last_login_ip, login_days, total_video,
         total_income, red_packet_balance, red_packet_amount,
         points_balance, points_total, withdraw_total, sign_days,
@@ -228,7 +254,7 @@
     </select>
     <select id="queryByOpenid" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
+            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
         from yt_dyz_user
         where wx_open_id = #{openid}
     </select>

+ 2 - 0
yt-common/src/main/java/com/ytpm/app/model/YtDyzUser.java

@@ -119,4 +119,6 @@ public class YtDyzUser extends PageMeta {
     private String appId;
     @ApiModelProperty(value = "手机号")
     private String phone;
+    @ApiModelProperty(value = "设备ID")
+    private String deviceId;
 }

+ 2 - 0
yt-common/src/main/java/com/ytpm/app/param/WxLoginParam.java

@@ -29,4 +29,6 @@ public class WxLoginParam {
     private int appType;
     @ApiModelProperty(value = "所属应用ID",required = false)
     private String appId;
+    @ApiModelProperty(value = "设备ID",required = false)
+    private String deviceId;
 }