Explorar el Código

fix pc端分销

zoujiajian hace 3 años
padre
commit
747cb11be5

+ 5 - 0
netflix-dao/src/main/java/com/cyksj/model/request/LoginPhoneReq.java

@@ -18,4 +18,9 @@ public class LoginPhoneReq {
 	 * 验证码
 	 */
 	private String code;
+
+	/**
+	 * 分销人用户id
+	 */
+	private Long sharedId;
 }

+ 20 - 1
netflix-web/src/main/java/com/cyksj/web/controller/user/AuthorizationController.java

@@ -19,12 +19,14 @@ import com.cyksj.dto.Result;
 import com.cyksj.enums.GatewayResponse;
 import com.cyksj.mapper.PhoneCodeMapper;
 import com.cyksj.mapper.WxAppMapper;
+import com.cyksj.mapper.manage.distribute.UserDistributeSharedMapper;
 import com.cyksj.model.dto.AuthRedirect;
 import com.cyksj.model.dto.AuthToken;
 import com.cyksj.model.dto.GzhOAuth2UserInfo;
 import com.cyksj.model.dto.JsSdkTicket;
 import com.cyksj.model.entity.PhoneCode;
 import com.cyksj.model.entity.User;
+import com.cyksj.model.entity.UserDistributeShared;
 import com.cyksj.model.request.LoginPhoneReq;
 import com.cyksj.model.response.LoginPhoneRep;
 import com.cyksj.redis.RedisService;
@@ -36,6 +38,7 @@ import com.cyksj.web.util.StpUserUtil;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.dao.DuplicateKeyException;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
@@ -83,7 +86,7 @@ public class AuthorizationController {
 
     private final PhoneCodeMapper phoneCodeMapper;
 
-
+    private final UserDistributeSharedMapper userDistributeSharedMapper;
 
     @GetMapping(value = "/weChat")
     public void base(String url,Long sharedId, String authType, HttpServletResponse response) throws Exception {
@@ -309,6 +312,8 @@ public class AuthorizationController {
         }
         //保存用户信息
         User user = userService.getOne(Wrappers.lambdaQuery(User.class).eq(User::getLoginPhone, loginPhoneReq.getPhone()).last("limit 1"));
+        UserDistributeShared userDistributeShared = null;
+        Long sharedId = loginPhoneReq.getSharedId();
         if (user == null) {
             user = new User();
             user.setLoginPhone(loginPhoneReq.getPhone());
@@ -316,10 +321,24 @@ public class AuthorizationController {
             //默认头像
             user.setHeadimgurl("https://cdn.sxfoundation.com/picture/f6ee11101c4f5f0bc48d88aca7a5dbfd-1666945673391.png");
             userService.save(user);
+            //新用户分销
+            if (sharedId != null) {
+                userDistributeShared = new UserDistributeShared();
+                userDistributeShared.setSharedId(loginPhoneReq.getSharedId());
+            }
         }
         //写回登陆信息
         StpUserUtil.login(user.getId());
         LoginPhoneRep loginPhoneRep = new LoginPhoneRep(StpUserUtil.getTokenValue(), user.getId(), user.getNickname(), user.getHeadimgurl());
+        //存在分销
+        if (userDistributeShared != null) {
+            userDistributeShared.setUserId(user.getId());
+            try {
+                userDistributeSharedMapper.insert(userDistributeShared);
+            } catch (DuplicateKeyException e) {
+                log.info("分销被邀请人重复插入");
+            }
+        }
         return GatewayResponse.SUCCESS.newBuilder().toResult(loginPhoneRep);
     }
 }

+ 2 - 1
netflix-web/src/main/java/com/cyksj/web/controller/user/DistributePopularizeController.java

@@ -106,7 +106,8 @@ public class DistributePopularizeController {
 		Long userId = StpUserUtil.getLoginIdAsLong();
 		DistributePopularizeView distributePopularizeView = new DistributePopularizeView();
 		String domain = envCommonService.getHost();
-		distributePopularizeView.setUrl(String.format("https://%s/8081/api/auth/weChat?url=https://%s/yinhe/web&sharedId=%s", domain, domain, userId));
+//		distributePopularizeView.setUrl(String.format("https://%s/8081/api/auth/weChat?url=https://%s/yinhe/web&sharedId=%s", domain, domain, userId));
+		distributePopularizeView.setUrl(String.format("https://%s/yinhe/web/login?shared=%s", domain, userId));
 		distributePopularizeView.setUrlCode(QrCodeUtil.generateAsBase64(distributePopularizeView.getUrl(), QrConfig.create(), "png"));
 		User user = userMapper.selectById(userId);
 		distributePopularizeView.setGotPoints(user.getPoints());