Browse Source

门户区分海外站、国内站 +门户个人信息增加地区地址

Gaosheng 5 days ago
parent
commit
50da18de79

+ 6 - 0
xinkeaboard-server/b2b2c-entity/src/main/java/com/slodon/b2b2c/member/example/MemberExample.java

@@ -281,4 +281,10 @@ public class MemberExample implements Serializable {
      * gp系统用户token
      */
     private String gpToken;
+
+
+    /**
+     * 会员类型
+     */
+    private String memberType;
 }

+ 3 - 0
xinkeaboard-server/b2b2c-entity/src/main/java/com/slodon/b2b2c/member/pojo/Member.java

@@ -145,6 +145,9 @@ public class Member implements Serializable {
     @ApiModelProperty("城市")
     private String city;
 
+    @ApiModelProperty("会员类型 1:海外门户 2:国内分销门户 ")
+    private String memberType;
+
     /**
      * 获取账户余额
      */

+ 0 - 8
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/member/front/MemberInfoController.java

@@ -172,14 +172,6 @@ public class MemberInfoController extends BaseController {
         if (StringUtil.isEmpty(memberInfoUpdateDTO.getMemberTrueName())) {
             memberNew.setMemberTrueName("");
         }
-
-        //实时查询会员信息
-        Member memberDb = memberModel.getMemberByMemberId(member.getMemberId());
-        if (!StringUtil.isEmpty(memberDb.getLastLoginIp())){
-            CountryAreaApiDto countryAreaApiDto = memberEnquiryModel.getCountryAndAreaByIp(memberDb.getLastLoginIp());
-            memberNew.setCountry(countryAreaApiDto.getCountryIsoCode());
-            memberNew.setCity(countryAreaApiDto.getCityIsoCode());
-        }
         memberModel.updateMember(memberNew);
         return SldResponse.success(Language.translate("编辑成功",Language.EN_LANGUAGE_TYPE));
     }

+ 11 - 5
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/member/front/advich/MemberEmailActiveController.java

@@ -9,6 +9,7 @@ import com.slodon.b2b2c.core.response.SldResponse;
 import com.slodon.b2b2c.core.util.AssertUtil;
 import com.slodon.b2b2c.core.util.Md5;
 import com.slodon.b2b2c.core.util.StringUtil;
+import com.slodon.b2b2c.core.util.WebUtil;
 import com.slodon.b2b2c.dao.read.member.MemberReadMapper;
 import com.slodon.b2b2c.dao.write.member.MemberWriteMapper;
 import com.slodon.b2b2c.member.example.MemberExample;
@@ -18,6 +19,7 @@ import com.slodon.b2b2c.model.member.advich.MemberEnquiryModel;
 import com.slodon.b2b2c.model.member.advich.MemberRegisterActiveModel;
 import com.slodon.b2b2c.model.seller.VendorModel;
 import com.slodon.b2b2c.seller.dto.VendorRegisterDTO;
+import com.slodon.b2b2c.system.dto.CountryAreaApiDto;
 import io.swagger.annotations.Api;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.data.redis.core.StringRedisTemplate;
@@ -160,26 +162,26 @@ public class MemberEmailActiveController extends BaseController {
      * @return
      */
     @PostMapping("/verification/code")
-    public JsonResult<Object> getMemberEmailVerificationCode(HttpServletRequest request, String email, Integer source, Integer type) {
-        log.info("getMemberEmailVerificationCode - email:{},source:{},type:{}", email, source, type);
+    public JsonResult<Object> getMemberEmailVerificationCode(HttpServletRequest request, String email, Integer source, Integer type,String memberType) {
+        log.info("getMemberEmailVerificationCode - email:{},source:{},type:{},memberType:{}", email, source, type,memberType);
         if (StringUtil.isEmpty(email)) {
             return SldResponse.fail(Language.translate("邮件不能为空", Language.EN_LANGUAGE_TYPE));
         }
         AssertUtil.emailCheck(email);
 
         // 1. 判断是否在1分钟内已发送过验证码
-        String redisKey = RedisConst.SLD_PC_EMAIL_VERIFY_CODE_LIMIT + email + "::" + type;
+        String redisKey = RedisConst.SLD_PC_EMAIL_VERIFY_CODE_LIMIT + email + "::" + type + "::" + memberType;
         if (Boolean.TRUE.equals(stringRedisTemplate.hasKey(redisKey))) {
             return SldResponse.fail(Language.translate("请勿频繁操作,请1分钟后重试", Language.EN_LANGUAGE_TYPE));
         }
 
         int count;
         if (type == 1) {
-            count = memberRegisterActiveModel.sendRegisterUserEmailVerificationCode(email, source);
+            count = memberRegisterActiveModel.sendRegisterUserEmailVerificationCode(email, source, memberType);
             AssertUtil.isTrue((count == 0), Language.translate("验证码发送失败,请重试", Language.EN_LANGUAGE_TYPE));
             AssertUtil.isTrue((count == 2), Language.translate("该邮箱已注册,请登录", Language.EN_LANGUAGE_TYPE));
         } else {
-            count = memberRegisterActiveModel.checkMemberUserInfo(email, type);
+            count = memberRegisterActiveModel.checkMemberUserInfo(email, memberType);
             AssertUtil.isTrue((count == 0), Language.translate("验证码发送失败,请重试", Language.EN_LANGUAGE_TYPE));
             AssertUtil.isTrue((count == 2), Language.translate("该邮箱未激活,请先激活", Language.EN_LANGUAGE_TYPE));
             AssertUtil.isTrue((count == 3), Language.translate("该邮箱未注册,请先注册", Language.EN_LANGUAGE_TYPE));
@@ -268,6 +270,10 @@ public class MemberEmailActiveController extends BaseController {
         memberNew.setUpdateTime(new Date());
         memberNew.setMemberNickName(nickName);
         memberNew.setLoginPwd(Md5.getMd5String(password));
+        String ip = WebUtil.getRealIp(request);
+        CountryAreaApiDto countryAreaApiDto = memberEnquiryModel.getCountryAndAreaByIp(ip);
+        memberNew.setCountry(countryAreaApiDto.getCountryIsoCode());
+        memberNew.setCity(countryAreaApiDto.getCityIsoCode());
         memberModel.updateMember(memberNew);
 
         // 发送账户注册成功邮件

+ 11 - 9
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/sso/front/FrontAuthController.java

@@ -96,11 +96,12 @@ public class FrontAuthController {
             @ApiImplicitParam(name = "password", value = "登陆类型为1时:是密码;为2时:是验证码", paramType = "query"),
             @ApiImplicitParam(name = "cartInfo", value = "离线购物车信息 如 [{\"productId\":1,\"buyNum\":1},{\"productId\":2,\"buyNum\":2}]", paramType = "query"),
             @ApiImplicitParam(name = "clientId", value = "客户端身份ID app传参", paramType = "query"),
-            @ApiImplicitParam(name = "alias", value = "客户端身份别名 app传参", paramType = "query")
+            @ApiImplicitParam(name = "alias", value = "客户端身份别名 app传参", paramType = "query"),
+            @ApiImplicitParam(name = "memberType", value = "会员类型", paramType = "query")
     })
     @PostMapping("token")
     public JsonResult<Object> doLogin(HttpServletRequest request, @RequestParam(value = "loginType", required = false, defaultValue = "1") Integer loginType,
-                                      String username, String password, String cartInfo, String clientId, String alias, String refresh_token, Integer ssoType) {
+                                      String username, String password, String cartInfo, String clientId, String alias, String refresh_token, Integer ssoType,@RequestParam(value = "memberType", defaultValue = "1") String memberType) {
         Member member;
         if (!StringUtils.isEmpty(refresh_token)) {
             //校验token
@@ -112,25 +113,26 @@ public class FrontAuthController {
 //            memberExample.setMemberNameOrMemberMobile(username.replace(":", ""));
             // 改为邮箱账户验证登录
             memberExample.setMemberName(username);
+            memberExample.setMemberType(memberType);
             List<Member> memberList = memberModel.getMemberList(memberExample, null);
             if (loginType == 1) {
                 if (CollectionUtils.isEmpty(memberList)) {
                     // 检测gp系统用户是否存在
-                    GpUserInfoDto gpUserInfoDto = oneClickLoginModel.checkGpSystemUserIsExist(request, username, password, "PC");
+                    GpUserInfoDto gpUserInfoDto = oneClickLoginModel.checkGpSystemUserIsExist(request, username, password, "PC",memberType);
                     if (gpUserInfoDto == null) {
-                        AssertUtil.notEmpty(memberList, Language.translate("会员邮箱或密码错误",Language.EN_LANGUAGE_TYPE));
-                        AssertUtil.isTrue(!memberList.get(0).getLoginPwd().equals(Md5.getMd5String(password)), Language.translate("用户名或密码错误",Language.EN_LANGUAGE_TYPE));
+                        AssertUtil.notEmpty(memberList, Language.translate("用户不存在",Language.EN_LANGUAGE_TYPE));
+                        AssertUtil.isTrue(!memberList.get(0).getLoginPwd().equals(Md5.getMd5String(password)), Language.translate("会员邮箱或密码错误",Language.EN_LANGUAGE_TYPE));
                     } else {
                         memberList = memberModel.getMemberList(memberExample, null);
                     }
                 } else {
-                    AssertUtil.notEmpty(memberList, Language.translate("用户名或密码错误",Language.EN_LANGUAGE_TYPE));
+                    AssertUtil.notEmpty(memberList, Language.translate("会员邮箱或密码错误",Language.EN_LANGUAGE_TYPE));
                     if (ssoType != null && ssoType == 1) {
-                        AssertUtil.isTrue(!memberList.get(0).getLoginPwd().equals(password), Language.translate("用户名或密码错误",Language.EN_LANGUAGE_TYPE));
+                        AssertUtil.isTrue(!memberList.get(0).getLoginPwd().equals(password), Language.translate("会员邮箱或密码错误",Language.EN_LANGUAGE_TYPE));
                     } else {
-                        oneClickLoginModel.checkGpSystemUserIsExist(request, username, password, "PC");
+                        oneClickLoginModel.checkGpSystemUserIsExist(request, username, password, "PC", memberType);
                         memberList = memberModel.getMemberList(memberExample, null);
-                        AssertUtil.isTrue(!memberList.get(0).getLoginPwd().equals(Md5.getMd5String(password)), Language.translate("用户名或密码错误",Language.EN_LANGUAGE_TYPE));
+                        AssertUtil.isTrue(!memberList.get(0).getLoginPwd().equals(Md5.getMd5String(password)), Language.translate("会员邮箱或密码错误",Language.EN_LANGUAGE_TYPE));
                     }
                 }
             } else {

+ 2 - 2
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/sso/seller/SellerAuthController.java

@@ -98,14 +98,14 @@ public class SellerAuthController {
             List<Vendor> vendorList = vendorModel.getVendorList(vendorExample, null);
             if (CollectionUtils.isEmpty(vendorList)) {
                 // 检测gp系统用户是否存在
-                GpUserInfoDto gpUserInfoDto = oneClickLoginModel.checkGpSystemUserIsExist(request,username, password,"SELLER");
+                GpUserInfoDto gpUserInfoDto = oneClickLoginModel.checkGpSystemUserIsExist(request, username, password, "SELLER", null);
                 if (gpUserInfoDto == null) {
                     AssertUtil.notEmpty(vendorList, "用户名或密码错误");
                 } else {
                     vendorList = vendorModel.getVendorList(vendorExample, null);
                 }
             } else {
-                GpUserInfoDto gpUserInfoDto = oneClickLoginModel.checkGpSystemUserIsExist(request,username, password,"SELLER");
+                GpUserInfoDto gpUserInfoDto = oneClickLoginModel.checkGpSystemUserIsExist(request, username, password, "SELLER", null);
                 if (gpUserInfoDto == null) {
                     AssertUtil.notEmpty(vendorList, "用户名或密码错误");
                 } else {

+ 2 - 0
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/dto/GpUserInfoDto.java

@@ -35,4 +35,6 @@ public class GpUserInfoDto {
     private Long vendorId;
 
     private String statusMsg;
+
+    private String memberType;
 }

+ 8 - 5
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/model/member/advich/MemberRegisterActiveModel.java

@@ -72,7 +72,7 @@ public class MemberRegisterActiveModel {
         } else {
             res = 1;
             sendEmailActiveLink(email);
-            saveEmailUserInfo(email, source);
+            saveEmailUserInfo(email, source, null);
         }
         return res;
     }
@@ -137,7 +137,7 @@ public class MemberRegisterActiveModel {
      * @param source
      */
     @Transactional(rollbackFor = Exception.class)
-    public void saveEmailUserInfo(String email, Integer source) {
+    public void saveEmailUserInfo(String email, Integer source,String memberType) {
         Member member = new Member();
         member.setMemberName(email);
 //        member.setMemberName(GoodsIdGenerator.getMemberName());
@@ -150,6 +150,7 @@ public class MemberRegisterActiveModel {
         member.setRegisterChannel(source);
         member.setMemberEmail(email);
         member.setIsEmailActive(0);
+        member.setMemberType(memberType);
         memberModel.saveMember(member);
     }
 
@@ -271,10 +272,11 @@ public class MemberRegisterActiveModel {
         msgSendModel.sendHtmlMail(email, subject, emailMsgTpl.toString());
     }
 
-    public Integer sendRegisterUserEmailVerificationCode(String email, Integer source) {
+    public Integer sendRegisterUserEmailVerificationCode(String email, Integer source,String memberType) {
         int res = 0;
         MemberExample example = new MemberExample();
         example.setMemberEmail(email.toLowerCase());
+        example.setMemberType(memberType);
         List<Member> memberList = memberReadMapper.listByExample(example);
         if (CollectionUtil.isNotEmpty(memberList)) {
             Member memberInfo = memberList.get(0);
@@ -287,7 +289,7 @@ public class MemberRegisterActiveModel {
         } else {
             res = 1;
             sendEmailRegisterVerificationCode(email);
-            saveEmailUserInfo(email, source);
+            saveEmailUserInfo(email, source,memberType);
         }
         return res;
     }
@@ -312,10 +314,11 @@ public class MemberRegisterActiveModel {
         msgSendModel.sendHtmlMail(email, subject, emailMsgTpl.toString());
     }
 
-    public Integer checkMemberUserInfo(String email, Integer type) {
+    public Integer checkMemberUserInfo(String email, String memberType) {
         int res = 0;
         MemberExample memberExample = new MemberExample();
         memberExample.setMemberEmail(email);
+        memberExample.setMemberType(memberType);
         List<Member> memberList = memberReadMapper.listByExample(memberExample);
         if (CollectionUtil.isNotEmpty(memberList)) {
             Member memberInfo = memberList.get(0);

+ 11 - 2
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/model/member/advich/OneClickLoginModel.java

@@ -89,9 +89,11 @@ public class OneClickLoginModel {
      *
      * @param username
      * @param password
+     * @param source
+     * @param memberType
      */
-    public GpUserInfoDto checkGpSystemUserIsExist(HttpServletRequest request, String username, String password, String source) {
-        log.info("****** 开始链接绿道系统检测用户信息是否存在。username:{},password:{} ******", username, password);
+    public GpUserInfoDto checkGpSystemUserIsExist(HttpServletRequest request, String username, String password, String source, String memberType) {
+        log.info("****** 开始链接绿道系统检测用户信息是否存在。username:{},password:{},source:{},memberType:{}, ******", username, password, source, memberType);
         GpUserInfoDto gpUserInfoDto = null;
         String gpUserUrl = DomainUrlUtil.GP_SYSTEM_USER_NAME_PASSWORD_CHECK_API_URL;
         if (!"200".equals(getApiUrlStatus(gpUserUrl))) {
@@ -102,6 +104,9 @@ public class OneClickLoginModel {
         modelMap.put("username", username);
         modelMap.put("password", password);
         modelMap.put("source", source);
+        if("PC".equals(source)){
+            modelMap.put("memberType", memberType);
+        }
         String result = HttpUtil.post(gpUserUrl, modelMap);
         log.info("绿道系统返回信息:" + result);
 //        JSONObject jsonObject = JSONObject.parseObject(result).getJSONObject("code");
@@ -109,6 +114,9 @@ public class OneClickLoginModel {
         if (httpApiResult.getCode() == 200) {
             gpUserInfoDto = JSONObject.parseObject(JSON.toJSONString(httpApiResult.getData()), GpUserInfoDto.class);
             gpUserInfoDto.setPassword(password);
+            if("PC".equals(source)){
+                gpUserInfoDto.setMemberType(memberType);
+            }
             saveOrUpdatePcAndSellerUserInfo(request, source, gpUserInfoDto);
         }
         return gpUserInfoDto;
@@ -128,6 +136,7 @@ public class OneClickLoginModel {
         member.setMemberMobile(gpUserInfoDto.getUserPhone());
         member.setMemberEmail(gpUserInfoDto.getUserEmail());
         member.setGpUid(gpUserInfoDto.getUserId());
+        member.setMemberType(gpUserInfoDto.getMemberType());
 
         //查询会员信息
         MemberExample memberExample = new MemberExample();

+ 48 - 0
xinkeaboard-server/b2b2c-web/src/main/resources/mapper/write/member/MemberWriteMapper.xml

@@ -44,6 +44,9 @@
     <result column="gp_token" property="gpToken" />
     <result column="member_company" property="memberCompany" />
     <result column="member_main_product" property="memberMainProduct" />
+    <result column="country" property="country" />
+    <result column="city" property="city" />
+    <result column="member_type" property="memberType" />
   </resultMap>
   <!--除主键外的所有字段,用于插入操作-->
   <sql id="columns">
@@ -171,6 +174,15 @@
       <if test="memberMainProduct != null">
         `member_main_product`,
       </if>
+      <if test="country != null">
+        `country`,
+      </if>
+      <if test="city != null">
+        `city`,
+      </if>
+      <if test="memberType != null">
+        `member_type`,
+      </if>
     </trim>
   </sql>
   <!--按照主键值进行操作-->
@@ -331,6 +343,15 @@
         <if test="example.memberMainProduct != null">
           AND `member_main_product` = #{example.memberMainProduct}
         </if>
+        <if test="example.country != null">
+          AND `country` = #{example.country}
+        </if>
+        <if test="example.city != null">
+            AND `city` = #{example.city}
+        </if>
+        <if test="example.memberType != null">
+          AND `member_type` = #{example.memberType}
+        </if>
       </trim>
     </if>
   </sql>
@@ -579,6 +600,15 @@
       <if test="memberMainProduct != null">
         #{memberMainProduct},
       </if>
+      <if test="country != null">
+        #{country},
+      </if>
+      <if test="city != null">
+        #{city},
+      </if>
+      <if test="memberType != null">
+        #{memberType},
+      </if>
     </trim>
     )
   </insert>
@@ -709,6 +739,15 @@
       <if test="record.memberMainProduct != null">
         member_main_product = #{record.memberMainProduct},
       </if>
+      <if test="record.country != null">
+        `country` = #{record.country},
+      </if>
+      <if test="record.city != null">
+          `city` = #{record.city},
+      </if>
+      <if test="record.memberType != null">
+        member_type = #{record.memberType},
+      </if>
     </trim>
     <include refid="whereCondition" />
   </update>
@@ -839,6 +878,15 @@
       <if test="memberMainProduct != null">
         `member_main_product` = #{memberMainProduct},
       </if>
+      <if test="country != null">
+        `country` = #{country},
+      </if>
+      <if test="city != null">
+        `city` = #{city},
+      </if>
+      <if test="memberType != null">
+        `member_type` = #{memberType},
+      </if>
     </trim>
     WHERE `member_id` = #{memberId}
   </update>