后台-系统设置-扩展变量-手机广告位-内容正文顶部 |
功能说明
1.登录买家端,可进行会员注册,填写会员账号密码等信息.
2.会员登录,基于token进行鉴权验权实现登录功能.
3.个人信息修改,可设置性别,生日,地址等信息.
4.会员购买商品下订单等流程操作.
数据库设计
表结构展示
会员表(es_member)
此表为会员信息的核心数据表从注册会员到完善信息的相关数据都保存在此表中
代码展示
登录方式有三种:
1.账号密码登录
用户点击登录,输入账号密码,系统会根据用户名进入es_member表查询会员信息
2.手机号登录
用户点击登录,输入手机号和验证码,系统会根据手机号进入es_member表查询会员信息
关于以上两种登录方式,详情可参考:
com.enation.app.javashop.api.buyer.passport.PassportLoginBuyerController
3.第三方信任登录
关于第三方登录,我们对接了QQ,微信,微博,支付宝四种登录方式
以上登录方式,需要在管理端的设置管理/网店设置/信任登录中配置登录参数
还要在配置文件domain中配置您的买家端域名以及回调地址
domain:
buyer:pc-v720.javamall.com.cn#配置为您买家端PC的域名
mobileBuyer:m-v720.javamall.com.cn#配置为您买家端WAP的域名
callback:buyer-api-v720.javamall.com.cn#请配置为您站点的买家端的api域名
以下为信任登录统一回调地址代码展示,相关代码请参考:
com.enation.app.javashop.api.buyer.passport.PassportConnectBuyerController
@ApiOperation(value="信任登录统一回调地址")
@GetMapping("/connect/{port}/{type}/callback")
@ApiImplicitParams({
@ApiImplicitParam(name="type",value="登录类型",required=true,dataType="String",allowableValues="QQ,WEIBO,WECHAT,ALIPAY",paramType="path"),
@ApiImplicitParam(name="port",value="登录客户端",required=true,dataType="String",allowableValues="PC,WAP",paramType="path"),
@ApiImplicitParam(name="uid",value="会员id",required=true,dataType="Integer",paramType="query")
})
publicvoidcallBack(@PathVariable("type")Stringtype,@PathVariable("port")Stringport,@ApiIgnoreLonguid){
try{
uid=getUidForCookies(uid);
if(uid!=null&&uid!=0){
bindCallBackMethod(type,port,uid);
}else{
Stringuuid=UUID.randomUUID().toString();
debugger.log("生成uuid:");
debugger.log(uuid);
MemberVOmemberVO=connectManager.callBack(type,port,null,uuid);
HttpServletResponsehttpResponse=ThreadContextHolder.getHttpResponse();
//主域名
Stringmain=domainHelper.getTopDomain();
Stringbuyer=domainHelper.getBuyerDomain();
//如果是wap站点,需要跳转到wap对应的绑定页面或者是首页
if(StringUtil.isWap()){
buyer=domainHelper.getMobileDomain();
}
StringredirectUri=buyer+binder+"?uuid="+uuid;
//如果会员存在则直接跳转到首页
if(memberVO!=null){
CookieaccessTokenCookie=newCookie("access_token",memberVO.getAccessToken());
CookierefreshTokenCookie=newCookie("refresh_token",memberVO.getRefreshToken());
CookieuidCookie=newCookie("uid",StringUtil.toString(memberVO.getUid()));
accessTokenCookie.setDomain(main);
accessTokenCookie.setPath("/");
accessTokenCookie.setMaxAge(javashopConfig.getAccessTokenTimeout());
refreshTokenCookie.setDomain(main);
refreshTokenCookie.setPath("/");
refreshTokenCookie.setMaxAge(javashopConfig.getRefreshTokenTimeout());
uidCookie.setDomain(main);
uidCookie.setPath("/");
uidCookie.setMaxAge(javashopConfig.getRefreshTokenTimeout());
httpResponse.addCookie(uidCookie);
httpResponse.addCookie(accessTokenCookie);
httpResponse.addCookie(refreshTokenCookie);
redirectUri=buyer+index+"?uuid="+uuid;
}
//如果会员存在则登录此会员并将uuid及token信息存入cookie
Cookiecookie=newCookie("uuid_connect",uuid);
cookie.setDomain(main);
cookie.setPath("/");
cookie.setMaxAge(javashopConfig.getRefreshTokenTimeout());
httpResponse.addCookie(cookie);
//无会员则跳转至绑定页
httpResponse.sendRedirect(redirectUri);
return;
}
}catch(IOExceptione){
this.logger.error(e.getMessage(),e);
thrownewServiceException(MemberErrorCode.E131.name(),"联合登录失败");
}
}
关于免登录以及登录时间,我们采用token鉴权的方式
详情请参考"基于Token机制鉴权架构"
相关表结构
会员与店铺
会员与店铺相关API
1.会员申请开店ShopBuyerController
2.会员收藏店铺MemberCollectionShopBuyerController
会员申请开店,共分为4步
请参考"店铺申请开店开发文档"
申请店铺并且在管理端审核通过之后
系统会修改es_member的have_shop和shop_id字段,将es_member和es_shop表关联
系统会在es_shop表中插入刚申请的店铺信息,此时该会员就拥有自己的店铺啦
会员收藏店铺
会员收藏店铺后
系统会将member_id和shop_id关联到es_member_collection_shop表
详情可参考MemberCollectionShopBuyerController会员收藏店铺表相关API
店铺表数据结构
店铺表(es_shop)
会员与地址
与会员相关的有两个地址
1.会员信息中的地址MemberManager.edit
2.会员收货地址MemberAddressManager.add
会员信息中的地址
province_id所属省份IDcity_id所属城市ID
county_id所属县(区)IDtown_id所属城镇ID
这些地址是在会员中心编辑会员信息时添加的,存在于es_member表中
请参考"地区缓存架构"
会员收货地址
在提交订单页面添加的收货地址,存在于es_member_address表中
会员收货地址表数据结构
会员收货地址表(es_member_address)
会员咨询表(es_member_ask)
会员发布商品咨询,系统会在es_member_ask表添加商品咨询信息
管理端进行审核,审核状态变更,会修改auth_status字段
审核通过后商家和会员可以进行回复,系统会修改reply,reply_num等字段
请参考"购买咨询架构文档"
会员评论表(es_member_comment)
会员在购买商品并确认收货后可进行评论
在管理端审核通过后,评论内容会添加到es_member_comment表中
商家可以对评论进行回复,系统会修改表中的reply_status字段
管理端可以删除评论,系统会根据评论主键comment_id删除相关数据
请参考"会员评论架构"
会员优惠券表(es_member_coupon)
商家中心和管理中心可发起平台优惠券,会员可进行领取
领取后系统会将数据存入es_member_coupon会员优惠券表中
通过used_status字段区分优惠券的4种状态,1:未使用2:已使用,3已过期,4为不可用优惠券(已使用和已过期)
请参考"会员优惠券架构"
会员预存款表(es_member_wallet)
会员预存款,也就是账户余额.详情可参考:MemberShopScoreManager
请参考"会员预存款架构"
会员积分表(es_member_point_history)
在管理端的系统设置中进行积分设置,通过可通过不同的方式获取积分
会员获取积分后,系统会将会员与积分的信息添加到es_member_point_history表中
会员可以在买家端使用积分购买积分商品
会员站内消息历史表(es_member_notice_log)
管理中心可发布站内消息,类型为全站和指定会员
当发布指定会员的站内消息时,系统会将相关信息添加到es_member_notice_log表中
会员商品收藏表(es_member_collection_goods)
进入商品详情页,点击收藏商品,系统会将商品信息与会员ID添加到此表中
会员点击我的收藏-收藏的商品,系统会根据会员ID查询收藏的商品
如果会员删除某个收藏商品,系统会根据会员ID和收藏商品ID从表中删除这条数据
会员收藏店铺表(es_member_collection_shop)
进入商品详情页,点击右侧收藏店铺,系统会将店铺信息与会员ID添加到此表中
会员点击我的收藏-收藏的店铺,系统会根据会员ID查询收藏的店铺
如果会员删除某个收藏的店铺,系统会根据会员ID和店铺id从表中删除这条数据
会员发票信息缓存表(es_member_receipt)
关于会员发票信息的增删改查等操作.详情可参考:MemberReceiptManager
会员店铺评分表(es_member_shop_score)
会员确认收货后,去评论,里面有一个店铺评分.详情可参考:MemberShopScoreManager
会员增票资质表(es_member_zpzz)
会员需要申请增票资质.详情可参考:MemberZpzzManager
以上就是关于会员相关核心逻辑说明的所有内容了,想了解更多详情,可以持续关注易族智汇javashop,有任何问题,欢迎咨询在线客服。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。