记得上下班打卡 | git大法好,push需谨慎

Commit 37ae489e authored by 张国柄's avatar 张国柄

会员API:使用兑换码响应参数+订单号,错误信息处理;

parent 8e9cd456
...@@ -8,8 +8,8 @@ import java.io.Serializable; ...@@ -8,8 +8,8 @@ import java.io.Serializable;
@ApiModel(value = "AdamMemberOrderResult", description = "购买会员或会员码响应") @ApiModel(value = "AdamMemberOrderResult", description = "购买会员或会员码响应")
@Data @Data
public class AdamMemberOrderResult implements Serializable { public class AdamMemberOrderResult implements Serializable, Cloneable {
private static final long serialVersionUID = 7779516626586568151L; private static final long serialVersionUID = 5977054291285833952L;
@ApiModelProperty(value = "支付CODE") @ApiModelProperty(value = "支付CODE")
private String code; private String code;
@ApiModelProperty(value = "会员订单号") @ApiModelProperty(value = "会员订单号")
...@@ -20,4 +20,14 @@ public class AdamMemberOrderResult implements Serializable { ...@@ -20,4 +20,14 @@ public class AdamMemberOrderResult implements Serializable {
private String showUrl; private String showUrl;
@ApiModelProperty(value = "支付成功跳转URL") @ApiModelProperty(value = "支付成功跳转URL")
private String returnUrl; private String returnUrl;
private static final AdamMemberOrderResult obj = new AdamMemberOrderResult();
public static AdamMemberOrderResult getNew() {
try {
return (AdamMemberOrderResult) obj.clone();
} catch (CloneNotSupportedException e) {
return new AdamMemberOrderResult();
}
}
} }
...@@ -20,8 +20,8 @@ public class AdamMemberCodeVo implements Serializable, Cloneable { ...@@ -20,8 +20,8 @@ public class AdamMemberCodeVo implements Serializable, Cloneable {
private String type; private String type;
@ApiModelProperty(position = 4, value = "会员编号") @ApiModelProperty(position = 4, value = "会员编号")
private String memberNo; private String memberNo;
@ApiModelProperty(position = 5, value = "会员状态0-未使用 1-已使用 2-不可用") @ApiModelProperty(position = 5, value = "状态:0-未使用,1-已使用,2-不可用")
private Integer state; private int state;
@ApiModelProperty(position = 6, value = "购买会员码的订单编号") @ApiModelProperty(position = 6, value = "购买会员码的订单编号")
private String buyOrderNo; private String buyOrderNo;
@ApiModelProperty(position = 7, value = "购买会员码的用户id") @ApiModelProperty(position = 7, value = "购买会员码的用户id")
......
...@@ -18,7 +18,7 @@ public class AdamMemberOrderVo implements Serializable { ...@@ -18,7 +18,7 @@ public class AdamMemberOrderVo implements Serializable {
private String orderNo; private String orderNo;
@ApiModelProperty(position = 1, value = "用户uid") @ApiModelProperty(position = 1, value = "用户uid")
private String uid; private String uid;
@ApiModelProperty(position = 2, value = "购买方式:0-购买会员 1-购买会员码,2-使用会员码") @ApiModelProperty(position = 2, value = "购买方式:0-购买会员,1-购买会员码,2-会员码,3-礼包码")
private Integer mode; private Integer mode;
@ApiModelProperty(position = 3, value = "会员id") @ApiModelProperty(position = 3, value = "会员id")
private String memberId; private String memberId;
......
...@@ -42,15 +42,16 @@ public class AdamMemberVo implements java.io.Serializable, Cloneable { ...@@ -42,15 +42,16 @@ public class AdamMemberVo implements java.io.Serializable, Cloneable {
private Integer needQuestion; private Integer needQuestion;
@ApiModelProperty(position = 12, value = "是否展示协议[200]", example = "0") @ApiModelProperty(position = 12, value = "是否展示协议[200]", example = "0")
private Integer displayAgreement; private Integer displayAgreement;
// @ApiModelProperty(position = 13, value = "会员协议内容[200]", example = "摩登天空会员协议须知....") @ApiModelProperty(position = 13, value = "状态[1-NORMAL,2-INVALID]")
// private String agreement; private String state;
@ApiModelProperty(position = 14, value = "限购数量,0不限购[200]", example = "0") @ApiModelProperty(position = 14, value = "限购数量,0不限购[200]", example = "0")
private Integer limitation; private Integer limitation;
@ApiModelProperty(position = 15, value = "会员卡价格信息") @ApiModelProperty(position = 15, value = "会员卡价格信息")
private List<AdamMemberPriceVo> priceVoList; private List<AdamMemberPriceVo> priceVoList;
@ApiModelProperty(position = 16, value = "会员专属权益")
@ApiModelProperty(position = 20, value = "会员专属权益")
private List<AdamMemberRightsVo> rightsVoList; private List<AdamMemberRightsVo> rightsVoList;
@ApiModelProperty(position = 17, value = "用户会员信息") @ApiModelProperty(position = 21, value = "用户会员信息")
private AdamUserMemberVo memberInfo; private AdamUserMemberVo memberInfo;
private static final AdamMemberVo obj = new AdamMemberVo(); private static final AdamMemberVo obj = new AdamMemberVo();
...@@ -104,7 +105,6 @@ public class AdamMemberVo implements java.io.Serializable, Cloneable { ...@@ -104,7 +105,6 @@ public class AdamMemberVo implements java.io.Serializable, Cloneable {
paramList.add(adamMember.getNoticeTitle()); paramList.add(adamMember.getNoticeTitle());
paramList.add(adamMember.getNeedQuestion()); paramList.add(adamMember.getNeedQuestion());
paramList.add(adamMember.getDisplayAgreement()); paramList.add(adamMember.getDisplayAgreement());
paramList.add(adamMember.getAgreement());
paramList.add(adamMember.getMemberId()); paramList.add(adamMember.getMemberId());
paramList.add(adamMember.getLimitation()); paramList.add(adamMember.getLimitation());
return paramList; return paramList;
......
...@@ -10,23 +10,20 @@ import java.io.Serializable; ...@@ -10,23 +10,20 @@ import java.io.Serializable;
@Data @Data
public class AdamUserMemberVo implements Serializable, Cloneable { public class AdamUserMemberVo implements Serializable, Cloneable {
private static final long serialVersionUID = 5258094625450569125L; private static final long serialVersionUID = 5258094625450569125L;
@ApiModelProperty(position = 11, value = "用户ID")
@ApiModelProperty(position = 0, value = "用户id", example = "0")
private String uid; private String uid;
@ApiModelProperty(position = 1, value = "会员类型id", example = "0") @ApiModelProperty(position = 12, value = "会员类型ID")
private String memberId; private String memberId;
@ApiModelProperty(position = 2, value = "会员号", example = "0") @ApiModelProperty(position = 13, value = "会员号")
private String memberNo; private String memberNo;
@ApiModelProperty(position = 3, value = "用户会员状态", example = "1") @ApiModelProperty(position = 14, value = "用户会员状态[1-NORMAL,2-INVALID]")
private Integer state; private Integer state;
@ApiModelProperty(position = 4, value = "会员过期时间") @ApiModelProperty(position = 15, value = "过期时间")
private String expiryAt; private String expiryAt;
@ApiModelProperty(position = 5, value = "创建时间") @ApiModelProperty(position = 16, value = "创建时间")
private String createdAt; private String createdAt;
@ApiModelProperty(position = 6, value = "更新时间") @ApiModelProperty(position = 17, value = "更新时间")
private String updatedAt; private String updatedAt;
@ApiModelProperty(position = 7, value = "会员用户id")
private String memberUserId;
private static final AdamUserMemberVo obj = new AdamUserMemberVo(); private static final AdamUserMemberVo obj = new AdamUserMemberVo();
...@@ -34,8 +31,7 @@ public class AdamUserMemberVo implements Serializable, Cloneable { ...@@ -34,8 +31,7 @@ public class AdamUserMemberVo implements Serializable, Cloneable {
try { try {
return (AdamUserMemberVo) obj.clone(); return (AdamUserMemberVo) obj.clone();
} catch (CloneNotSupportedException e) { } catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return new AdamUserMemberVo(); return new AdamUserMemberVo();
} }
}
} }
...@@ -27,7 +27,7 @@ public interface IAdamMemberOrderService extends IService<AdamMemberOrder> { ...@@ -27,7 +27,7 @@ public interface IAdamMemberOrderService extends IService<AdamMemberOrder> {
* @param param * @param param
* @return * @return
*/ */
boolean useMemberCode(AdamMemberOrderCodeParam param); ResponseDto<AdamMemberOrderResult> useMemberCode(AdamMemberOrderCodeParam param);
/** /**
* 获取订单列表 * 获取订单列表
......
...@@ -9,53 +9,57 @@ import java.util.List; ...@@ -9,53 +9,57 @@ import java.util.List;
public interface IAdamRdmService { public interface IAdamRdmService {
boolean setUidByMobile(String mobile, String uid); boolean setUidByMobile(String mobile, String uid);
void delUidByMobile(String mobile);
String getUidByMobile(String mobile); String getUidByMobile(String mobile);
boolean setUidByPlatformOpenId(String platform, String openId, String uid); void delUidByMobile(String mobile);
void delUidByPlatformOpenId(String platform, String openId); boolean setUidByPlatformOpenId(String platform, String openId, String uid);
String getUidByPlatformOpenId(String platform, String openId); String getUidByPlatformOpenId(String platform, String openId);
void delUserInfoVoByUid(String uid); void delUidByPlatformOpenId(String platform, String openId);
boolean setUserInfoVoByUid(String uid, AdamUserInfoVo vo); boolean setUserInfoVoByUid(String uid, AdamUserInfoVo vo);
AdamUserInfoVo getUserInfoVoByUid(String uid); AdamUserInfoVo getUserInfoVoByUid(String uid);
boolean setRealInfoVoByUid(String uid, AdamRealInfoVo vo); void delUserInfoVoByUid(String uid);
void delRealInfoVoByUid(String uid); boolean setRealInfoVoByUid(String uid, AdamRealInfoVo vo);
AdamRealInfoVo getRealInfoVoByUid(String uid); AdamRealInfoVo getRealInfoVoByUid(String uid);
boolean setThirdPartVoListByUid(String uid, List<AdamThirdPartInfoVo> voList); void delRealInfoVoByUid(String uid);
void delThirdPartVoListByUid(String uid); boolean setThirdPartVoListByUid(String uid, List<AdamThirdPartInfoVo> voList);
List<AdamThirdPartInfoVo> getThirdPartVoListByUid(String uid); List<AdamThirdPartInfoVo> getThirdPartVoListByUid(String uid);
AdamThirdPartInfoVo getThirdPartVoByUidPlatform(String uid, String platform); AdamThirdPartInfoVo getThirdPartVoByUidPlatform(String uid, String platform);
AdamUserMemberVo getUserMemberVoByUid(String uid); void delThirdPartVoListByUid(String uid);
AdamMemberSimpleVo getMemberSimpleVo();
boolean setEntersByUid(String uid, List<AdamEnters> list); boolean setEntersByUid(String uid, List<AdamEnters> list);
void delEntersByUid(String uid);
List<AdamEnters> getEntersByUid(String uid); List<AdamEnters> getEntersByUid(String uid);
AdamEnters getEntersByUidEntersId(String uid, String entersId); AdamEnters getEntersByUidEntersId(String uid, String entersId);
boolean setAddressesByUid(String uid, List<AdamAddresses> list); void delEntersByUid(String uid);
void delAddressesByUid(String uid); boolean setAddressesByUid(String uid, List<AdamAddresses> list);
List<AdamAddresses> getAddressesByUid(String uid); List<AdamAddresses> getAddressesByUid(String uid);
AdamAddresses getAddressesByUidAddressesId(String uid, String addressesId); AdamAddresses getAddressesByUidAddressesId(String uid, String addressesId);
void delAddressesByUid(String uid);
boolean setUserMemberVoByUid(String uid, AdamUserMemberVo vo);
AdamUserMemberVo getUserMemberVoByUid(String uid);
void delUserMemberVoByUid(String uid);
AdamMemberSimpleVo getMemberSimpleVo();
} }
...@@ -96,9 +96,9 @@ public class AdamMember implements Serializable { ...@@ -96,9 +96,9 @@ public class AdamMember implements Serializable {
private Integer displayAgreement; private Integer displayAgreement;
/** /**
* 会员协议 * 状态:1-NORMAL,2-INVALID
*/ */
private String agreement; private Integer state;
/** /**
* 限购数量 * 限购数量
......
...@@ -222,7 +222,7 @@ create table adam_member ...@@ -222,7 +222,7 @@ create table adam_member
notice_title varchar(255), notice_title varchar(255),
need_question int default 0 comment '是否需要答题 0不需要 1需要', need_question int default 0 comment '是否需要答题 0不需要 1需要',
display_agreement int NOT NULL DEFAULT '0' COMMENT '是否打开0否1是', display_agreement int NOT NULL DEFAULT '0' COMMENT '是否打开0否1是',
agreement text NOT NULL COMMENT '会员协议', state int NOT NULL COMMENT '状态:1-NORMAL,2-INVALID',
limitation int default 0 comment '限购数量,0不限购' limitation int default 0 comment '限购数量,0不限购'
); );
-- >>------------------------------------------------------------------------------------ -- >>------------------------------------------------------------------------------------
...@@ -230,8 +230,8 @@ drop table if exists adam_member_price; ...@@ -230,8 +230,8 @@ drop table if exists adam_member_price;
create table adam_member_price create table adam_member_price
( (
mid int unsigned auto_increment primary key, mid int unsigned auto_increment primary key,
member_price_id varchar(255) comment '会员价格id', member_price_id varchar(64) comment '会员价格id',
member_id varchar(255) NOT NULL comment '会员种类ID', member_id varchar(64) NOT NULL comment '会员种类ID',
status tinyint NOT NULL DEFAULT '0' COMMENT '0不可用、1上线中、2已下线', status tinyint NOT NULL DEFAULT '0' COMMENT '0不可用、1上线中、2已下线',
name varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '会员包名称', name varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '会员包名称',
price decimal(8, 2) NOT NULL DEFAULT '0.00' COMMENT '会员包价格', price decimal(8, 2) NOT NULL DEFAULT '0.00' COMMENT '会员包价格',
......
...@@ -15,16 +15,16 @@ public class AdamRedisConst { ...@@ -15,16 +15,16 @@ public class AdamRedisConst {
public static final String INFO_REAL_NAME = INFO.concat("real_name:"); public static final String INFO_REAL_NAME = INFO.concat("real_name:");
public static final String INFO_THIRD_PARTY = INFO.concat("third_party:"); public static final String INFO_THIRD_PARTY = INFO.concat("third_party:");
public static final String INFO_USER_MEMBER = INFO.concat("user_member:"); public static final String INFO_USER_MEMBER = INFO.concat("user_member:");
public static final String INFO_MEMBER_SIMPLE = INFO.concat("member_simple:");
public static final String INFO_ENTERS = INFO.concat("enters:"); public static final String INFO_ENTERS = INFO.concat("enters:");
public static final String INFO_ADDRESSES = INFO.concat("addresses:"); public static final String INFO_ADDRESSES = INFO.concat("addresses:");
public static final String INFO_MEMBER_SIMPLE = INFO.concat("member_simple");
public static final String INFO_MEMBERS = ADAM.concat(":list:members"); public static final String INFO_MEMBERS = ADAM.concat(":list:members");
public static final String INFO_MEMBERS_INFO = ADAM.concat(":list:members:info:"); public static final String INFO_MEMBERS_INFO = ADAM.concat(":list:members:info:");
public static final String INFO_MEMBERS_PRICE_INFO = ADAM.concat(":list:members:price:info:"); public static final String INFO_MEMBERS_PRICE_INFO = ADAM.concat(":list:members:price:info:");
public static final String INFO_MEMBERS_CODE_INFO = ADAM.concat(":list:members:code:info:"); public static final String INFO_MEMBERS_CODE_INFO = ADAM.concat(":list:members:code:info:");
public static final String MEMBER_MEMBER_NO_MAX_KEY = ADAM.concat(":members:member_no_max:"); public static final String MEMBER_MEMBER_NO_MAX_KEY = ADAM.concat(":members:member_no_max:");
public static final String INFO_MEMBERS_USER = ADAM.concat(":list:members:user");
public static final String INFO_MEMBERS_REPERTORY_INFO = ADAM.concat(":list:members:repertory:"); public static final String INFO_MEMBERS_REPERTORY_INFO = ADAM.concat(":list:members:repertory:");
public static final String INFO_MEMBERS_ORDER_INFO = ADAM.concat(":list:members:order:"); public static final String INFO_MEMBERS_ORDER_INFO = ADAM.concat(":list:members:order:");
} }
...@@ -87,7 +87,7 @@ public class AdamMemberOrderController { ...@@ -87,7 +87,7 @@ public class AdamMemberOrderController {
@ApiOperationSupport(order = 2) @ApiOperationSupport(order = 2)
@ApiOperation(value = "使用兑换码") @ApiOperation(value = "使用兑换码")
@PostMapping("use/memberCode") @PostMapping("use/memberCode")
public ResponseDto<AdamMemberOrder> useMemberCode(@RequestBody AdamMemberOrderCodeParam param) { public ResponseDto<AdamMemberOrderResult> useMemberCode(@RequestBody AdamMemberOrderCodeParam param) {
try { try {
AdamRealInfoVo realInfoVo = adamRealNameService.queryByUid(CurrentUtil.getCurrentUid()); AdamRealInfoVo realInfoVo = adamRealNameService.queryByUid(CurrentUtil.getCurrentUid());
if (null == realInfoVo) { if (null == realInfoVo) {
...@@ -97,13 +97,9 @@ public class AdamMemberOrderController { ...@@ -97,13 +97,9 @@ public class AdamMemberOrderController {
adamUserService.identity(CurrentUtil.getCurrentUid(), param.getName(), param.getIdCard()); adamUserService.identity(CurrentUtil.getCurrentUid(), param.getName(), param.getIdCard());
} }
boolean result = adamMemberOrderService.useMemberCode(param); return adamMemberOrderService.useMemberCode(param);
if (!result) {
return ResponseDto.failure("兑换失败");
}
return ResponseDto.success();
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); log.error("系统异常:使用兑换码", e);
return ResponseDto.failure(); return ResponseDto.failure();
} }
} }
......
...@@ -23,6 +23,7 @@ import com.liquidnet.service.base.ErrorMapping; ...@@ -23,6 +23,7 @@ import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import com.mongodb.BasicDBObject; import com.mongodb.BasicDBObject;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.bson.Document;
import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment; import org.springframework.core.env.Environment;
...@@ -30,6 +31,7 @@ import org.springframework.data.mongodb.core.MongoTemplate; ...@@ -30,6 +31,7 @@ import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.convert.MongoConverter; import org.springframework.data.mongodb.core.convert.MongoConverter;
import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.LinkedMultiValueMap;
...@@ -102,7 +104,6 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe ...@@ -102,7 +104,6 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
public ResponseDto<AdamMemberOrderResult> buyMemberOrMemberCode(AdamMemberOrderParam param) { public ResponseDto<AdamMemberOrderResult> buyMemberOrMemberCode(AdamMemberOrderParam param) {
String memberId = param.getMemberId(); String memberId = param.getMemberId();
String memberPriceId = param.getMemberPriceId(); String memberPriceId = param.getMemberPriceId();
AdamMemberOrderResult result = new AdamMemberOrderResult();
// 判断黑名单,待定(暂不做) // 判断黑名单,待定(暂不做)
// 验证会员是否有效 // 验证会员是否有效
...@@ -193,6 +194,8 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe ...@@ -193,6 +194,8 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
// } // }
payParam.add("detail", buyType == 0 ? "正在现场 - 购买会员" : "正在现场 - 购买会员码"); payParam.add("detail", buyType == 0 ? "正在现场 - 购买会员" : "正在现场 - 购买会员码");
Map payResult = this.callPayServer(param.getPayChannel(), payParam); Map payResult = this.callPayServer(param.getPayChannel(), payParam);
AdamMemberOrderResult result = AdamMemberOrderResult.getNew();
result.setOrderNo(orderVo.getOrderNo()); result.setOrderNo(orderVo.getOrderNo());
result.setCode((String) payResult.get("code")); result.setCode((String) payResult.get("code"));
result.setPayData(payResult.get("pay_data")); result.setPayData(payResult.get("pay_data"));
...@@ -208,21 +211,20 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe ...@@ -208,21 +211,20 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
* @return Object * @return Object
*/ */
@Override @Override
public boolean useMemberCode(AdamMemberOrderCodeParam param) { public ResponseDto<AdamMemberOrderResult> useMemberCode(AdamMemberOrderCodeParam param) {
String uid = CurrentUtil.getCurrentUid(); String uid = CurrentUtil.getCurrentUid();
String code = param.getMemberCode(); String code = param.getMemberCode();
int type = param.getType(); int type = param.getType();
AdamUserMemberVo userMemberVo = (AdamUserMemberVo) redisUtil.hget(AdamRedisConst.INFO_MEMBERS_USER, uid); AdamUserMemberVo userMemberVo = adamRdmService.getUserMemberVoByUid(uid);
if (null == userMemberVo) {
userMemberVo = mongoTemplate.findOne(Query.query(Criteria.where("uid").is(uid)), AdamUserMemberVo.class, AdamUserMemberVo.class.getSimpleName());
}
if (null != userMemberVo) { if (null != userMemberVo) {
return false; if (userMemberVo.getState() == 1 && LocalDateTime.now().isAfter(DateUtil.Formatter.yyyyMMddHHmmss.parse(userMemberVo.getExpiryAt()))) {
return ResponseDto.failure(ErrorMapping.get("10205"));
}
} }
AdamMemberCodeVo memberCodeVo = mongoTemplate.findOne(Query.query(Criteria.where("code").is(code)), AdamMemberCodeVo.class, AdamMemberCodeVo.class.getSimpleName()); AdamMemberCodeVo memberCodeVo = mongoTemplate.findOne(Query.query(Criteria.where("code").is(code)), AdamMemberCodeVo.class, AdamMemberCodeVo.class.getSimpleName());
if (!memberCodeVo.getState().equals(AdamMemberConst.STATUS_UNPAID)) { if (memberCodeVo.getState() != 0) {
return false; return ResponseDto.failure(ErrorMapping.get(memberCodeVo.getState() == 1 ? "10206" : "10207"));
} }
// 获取会员价格对应的天数 // 获取会员价格对应的天数
...@@ -231,8 +233,11 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe ...@@ -231,8 +233,11 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
priceVo = mongoTemplate.findOne(Query.query(Criteria.where("memberPriceId").is(memberCodeVo.getMemberPriceId())), AdamMemberPriceVo.class, AdamMemberPriceVo.class.getSimpleName()); priceVo = mongoTemplate.findOne(Query.query(Criteria.where("memberPriceId").is(memberCodeVo.getMemberPriceId())), AdamMemberPriceVo.class, AdamMemberPriceVo.class.getSimpleName());
} }
if (null == priceVo) { if (null == priceVo) {
return false; return ResponseDto.failure(ErrorMapping.get("10202"));
} }
AdamMemberVo adamMemberVo = adamMemberService.queryMemberInfo();
String currentDateTime = DateUtil.getNowTime(); String currentDateTime = DateUtil.getNowTime();
AdamMemberOrderVo orderVo = new AdamMemberOrderVo(); AdamMemberOrderVo orderVo = new AdamMemberOrderVo();
...@@ -244,44 +249,55 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe ...@@ -244,44 +249,55 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
orderVo.setMode(type); orderVo.setMode(type);
orderVo.setMemberId(memberCodeVo.getMemberId()); orderVo.setMemberId(memberCodeVo.getMemberId());
orderVo.setMemberPriceId(memberCodeVo.getMemberPriceId()); orderVo.setMemberPriceId(memberCodeVo.getMemberPriceId());
orderVo.setMemberName(adamMemberVo.getName());
orderVo.setState(AdamMemberConst.STATUS_UNPAID); orderVo.setState(AdamMemberConst.STATUS_UNPAID);
orderVo.setCreatedAt(currentDateTime); orderVo.setCreatedAt(currentDateTime);
orderVo.setDays(priceVo.getDays()); orderVo.setDays(priceVo.getDays());
orderVo.setPayNo(memberCodeVo.getCode()); orderVo.setPayNo(memberCodeVo.getCode());
orderVo.setPrice(BigDecimal.valueOf(0)); orderVo.setPrice(BigDecimal.valueOf(0));
if (AdamMemberConst.SUB_TYPE_USE_VIP_CODE == type) { //使用购买的会员码 if (AdamMemberConst.SUB_TYPE_USE_VIP_CODE == type) {// 会员码
orderVo.setPayChannel(AdamMemberConst.VIP_CODE); orderVo.setPayChannel(AdamMemberConst.VIP_CODE);
} else if (AdamMemberConst.SUB_TYPE_USE_GIFT_CODE == type) { // 使用礼包码 } else if (AdamMemberConst.SUB_TYPE_USE_GIFT_CODE == type) {// 礼包码
orderVo.setPayChannel(AdamMemberConst.GIFT_CODE); orderVo.setPayChannel(AdamMemberConst.GIFT_CODE);
} }
// 创建用户使用兑换码的订单 // 创建用户使用兑换码的订单
mongoTemplate.insert(orderVo, AdamMemberOrderVo.class.getSimpleName()); mongoTemplate.insert(orderVo, AdamMemberOrderVo.class.getSimpleName());
redisUtil.hset(AdamRedisConst.INFO_MEMBERS_ORDER_INFO.concat(uid), orderVo.getOrderNo(), orderVo); redisUtil.hset(AdamRedisConst.INFO_MEMBERS_ORDER_INFO.concat(uid), orderVo.getOrderNo(), orderVo);
// 组装用户会员数据
AdamUserMemberVo memberVo = new AdamUserMemberVo();
memberVo.setMemberNo(orderVo.getMemberNo());
memberVo.setMemberId(orderVo.getMemberId());
memberVo.setState(AdamMemberConst.STATE_VALID);
memberVo.setUid(uid);
memberVo.setMemberUserId(IDGenerator.nextSnowId().toString());
memberVo.setCreatedAt(currentDateTime);
memberVo.setUpdatedAt(currentDateTime);
if (null == userMemberVo) {
userMemberVo = new AdamUserMemberVo();
userMemberVo.setUid(uid);
userMemberVo.setMemberNo(orderVo.getMemberNo());
userMemberVo.setCreatedAt(currentDateTime);
}
userMemberVo.setMemberId(orderVo.getMemberId());
userMemberVo.setState(1);
userMemberVo.setUpdatedAt(currentDateTime);
Date expiryAt = DateUtil.getBeforeDayEnd(Calendar.getInstance(), orderVo.getDays()); Date expiryAt = DateUtil.getBeforeDayEnd(Calendar.getInstance(), orderVo.getDays());
String expiryAtStr = DateUtil.format(expiryAt, DateUtil.Formatter.yyyyMMddHHmmss); String expiryAtStr = DateUtil.format(expiryAt, DateUtil.Formatter.yyyyMMddHHmmss);
memberVo.setExpiryAt(expiryAtStr); userMemberVo.setExpiryAt(expiryAtStr);
// if (isNewMember) {
// mongoTemplate.insert(userMemberVo, AdamUserMemberVo.class.getSimpleName());
// } else {
// mongoTemplate.getCollection(AdamUserMemberVo.class.getSimpleName()).updateOne(
// Query.query(Criteria.where("uid").is(uid)).getQueryObject(),
// new Document("$set", Document.parse(JsonUtils.toJson(userMemberVo)))
// );
// }
Update update = Update.fromDocument(Document.parse(JsonUtils.toJson(userMemberVo)), "");
mongoTemplate.upsert(Query.query(Criteria.where("uid").is(uid)), update, AdamUserMemberVo.class.getSimpleName());
// 创建用户会员相关信息 adamRdmService.setUserMemberVoByUid(uid, userMemberVo);
mongoTemplate.insert(memberVo, AdamUserMemberVo.class.getSimpleName());
redisUtil.hset(AdamRedisConst.INFO_MEMBERS_USER, uid, memberVo);
// 更新旧数据 // 更新旧数据
memberCodeVo.setState(AdamMemberConst.STATUS_USED); memberCodeVo.setState(AdamMemberConst.STATUS_USED);
BasicDBObject object = new BasicDBObject("$set", JSON.parse(JsonUtils.toJson(memberCodeVo))); mongoTemplate.getCollection(AdamMemberCodeVo.class.getSimpleName()).updateOne(
mongoTemplate.getCollection(AdamMemberCodeVo.class.getSimpleName()) Query.query(Criteria.where("code").is(memberCodeVo.getCode())).getQueryObject(),
.updateOne(Query.query(Criteria.where("code").is(memberCodeVo.getCode())).getQueryObject(), object); new Document("$set", Document.parse(JsonUtils.toJson(memberCodeVo)))
);
// todo MQ 统一通知队列插入数据库 // todo MQ 统一通知队列插入数据库
orderVo.setIp(CurrentUtil.getCliIpAddr()); orderVo.setIp(CurrentUtil.getCliIpAddr());
orderVo.setSource(CurrentUtil.getCliSource()); orderVo.setSource(CurrentUtil.getCliSource());
...@@ -296,7 +312,10 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe ...@@ -296,7 +312,10 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
*/ */
// rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL, // rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL,
// SqlMapping.get("adam_member_order.add", mqList.toArray())); // SqlMapping.get("adam_member_order.add", mqList.toArray()));
return true;
AdamMemberOrderResult result = AdamMemberOrderResult.getNew();
result.setOrderNo(orderVo.getOrderNo());
return ResponseDto.success(result);
} }
/** /**
...@@ -364,7 +383,6 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe ...@@ -364,7 +383,6 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
if (null == userMemberInfo) { // 创建会员 if (null == userMemberInfo) { // 创建会员
cardNumber = adamUserMemberService.getMaxMemberNo(orderVo.getMemberId()); cardNumber = adamUserMemberService.getMaxMemberNo(orderVo.getMemberId());
AdamUserMemberVo createMemberUser = AdamUserMemberVo.getNew(); AdamUserMemberVo createMemberUser = AdamUserMemberVo.getNew();
createMemberUser.setMemberUserId(IDGenerator.nextSnowId().toString());
createMemberUser.setMemberId(orderVo.getMemberId()); createMemberUser.setMemberId(orderVo.getMemberId());
createMemberUser.setMemberNo(orderVo.getMemberNo()); createMemberUser.setMemberNo(orderVo.getMemberNo());
createMemberUser.setState(AdamMemberConst.STATE_VALID); createMemberUser.setState(AdamMemberConst.STATE_VALID);
...@@ -388,7 +406,8 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe ...@@ -388,7 +406,8 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
// 订单写入MongoDB和Redis中 // 订单写入MongoDB和Redis中
mongoTemplate.insert(createMemberUser, AdamUserMemberVo.class.getSimpleName()); mongoTemplate.insert(createMemberUser, AdamUserMemberVo.class.getSimpleName());
redisUtil.hset(AdamRedisConst.INFO_MEMBERS_USER, orderVo.getUid(), createMemberUser); // redisUtil.hset(AdamRedisConst.INFO_MEMBERS_USER, orderVo.getUid(), createMemberUser);
adamRdmService.setUserMemberVoByUid(orderVo.getUid(), createMemberUser);
// 会员码使用记录 // 会员码使用记录
mongoTemplate.insert(codeVo, AdamMemberCodeVo.class.getSimpleName()); mongoTemplate.insert(codeVo, AdamMemberCodeVo.class.getSimpleName());
redisUtil.hset(AdamRedisConst.INFO_MEMBERS_CODE_INFO.concat(codeVo.getBuyUid()), codeVo.getBuyOrderNo(), codeVo); redisUtil.hset(AdamRedisConst.INFO_MEMBERS_CODE_INFO.concat(codeVo.getBuyUid()), codeVo.getBuyOrderNo(), codeVo);
...@@ -413,7 +432,8 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe ...@@ -413,7 +432,8 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
mongoTemplate.getCollection(AdamUserMemberVo.class.getSimpleName()) mongoTemplate.getCollection(AdamUserMemberVo.class.getSimpleName())
.updateOne(Query.query(Criteria.where("uid").is(userMemberInfo.getUid())).getQueryObject(), object); .updateOne(Query.query(Criteria.where("uid").is(userMemberInfo.getUid())).getQueryObject(), object);
redisUtil.hset(AdamRedisConst.INFO_MEMBERS_USER, orderVo.getUid(), userMemberInfo); // redisUtil.hset(AdamRedisConst.INFO_MEMBERS_USER, orderVo.getUid(), userMemberInfo);
adamRdmService.setUserMemberVoByUid(orderVo.getUid(), userMemberInfo);
} }
} }
if (AdamMemberConst.SUB_TYPE_BUY_VIP_CODE.equals(orderVo.getMode())) { // 购买会员码 if (AdamMemberConst.SUB_TYPE_BUY_VIP_CODE.equals(orderVo.getMode())) { // 购买会员码
......
...@@ -27,24 +27,19 @@ public class AdamRdmServiceImpl implements IAdamRdmService { ...@@ -27,24 +27,19 @@ public class AdamRdmServiceImpl implements IAdamRdmService {
return redisUtil.set(AdamRedisConst.IDENTITY_MOBILE.concat(mobile), uid); return redisUtil.set(AdamRedisConst.IDENTITY_MOBILE.concat(mobile), uid);
} }
@Override
public void delUidByMobile(String mobile) {
redisUtil.del(AdamRedisConst.IDENTITY_MOBILE.concat(mobile));
}
@Override @Override
public String getUidByMobile(String mobile) { public String getUidByMobile(String mobile) {
return (String) redisUtil.get(AdamRedisConst.IDENTITY_MOBILE.concat(mobile)); return (String) redisUtil.get(AdamRedisConst.IDENTITY_MOBILE.concat(mobile));
} }
@Override @Override
public boolean setUidByPlatformOpenId(String platform, String openId, String uid) { public void delUidByMobile(String mobile) {
return redisUtil.set(AdamRedisConst.IDENTITY_THIRD_PARTY.concat(platform).concat(openId), uid); redisUtil.del(AdamRedisConst.IDENTITY_MOBILE.concat(mobile));
} }
@Override @Override
public void delUidByPlatformOpenId(String platform, String openId) { public boolean setUidByPlatformOpenId(String platform, String openId, String uid) {
redisUtil.del(AdamRedisConst.IDENTITY_THIRD_PARTY.concat(platform).concat(openId)); return redisUtil.set(AdamRedisConst.IDENTITY_THIRD_PARTY.concat(platform).concat(openId), uid);
} }
@Override @Override
...@@ -53,8 +48,8 @@ public class AdamRdmServiceImpl implements IAdamRdmService { ...@@ -53,8 +48,8 @@ public class AdamRdmServiceImpl implements IAdamRdmService {
} }
@Override @Override
public void delUserInfoVoByUid(String uid) { public void delUidByPlatformOpenId(String platform, String openId) {
redisUtil.del(AdamRedisConst.INFO_USER.concat(uid)); redisUtil.del(AdamRedisConst.IDENTITY_THIRD_PARTY.concat(platform).concat(openId));
} }
@Override @Override
...@@ -76,13 +71,13 @@ public class AdamRdmServiceImpl implements IAdamRdmService { ...@@ -76,13 +71,13 @@ public class AdamRdmServiceImpl implements IAdamRdmService {
} }
@Override @Override
public boolean setRealInfoVoByUid(String uid, AdamRealInfoVo vo) { public void delUserInfoVoByUid(String uid) {
return redisUtil.set(AdamRedisConst.INFO_REAL_NAME.concat(uid), vo); redisUtil.del(AdamRedisConst.INFO_USER.concat(uid));
} }
@Override @Override
public void delRealInfoVoByUid(String uid) { public boolean setRealInfoVoByUid(String uid, AdamRealInfoVo vo) {
redisUtil.del(AdamRedisConst.INFO_REAL_NAME.concat(uid)); return redisUtil.set(AdamRedisConst.INFO_REAL_NAME.concat(uid), vo);
} }
@Override @Override
...@@ -99,13 +94,13 @@ public class AdamRdmServiceImpl implements IAdamRdmService { ...@@ -99,13 +94,13 @@ public class AdamRdmServiceImpl implements IAdamRdmService {
} }
@Override @Override
public boolean setThirdPartVoListByUid(String uid, List<AdamThirdPartInfoVo> voList) { public void delRealInfoVoByUid(String uid) {
return redisUtil.set(AdamRedisConst.INFO_THIRD_PARTY.concat(uid), voList); redisUtil.del(AdamRedisConst.INFO_REAL_NAME.concat(uid));
} }
@Override @Override
public void delThirdPartVoListByUid(String uid) { public boolean setThirdPartVoListByUid(String uid, List<AdamThirdPartInfoVo> voList) {
redisUtil.del(AdamRedisConst.INFO_THIRD_PARTY.concat(uid)); return redisUtil.set(AdamRedisConst.INFO_THIRD_PARTY.concat(uid), voList);
} }
@Override @Override
...@@ -131,28 +126,8 @@ public class AdamRdmServiceImpl implements IAdamRdmService { ...@@ -131,28 +126,8 @@ public class AdamRdmServiceImpl implements IAdamRdmService {
} }
@Override @Override
public AdamUserMemberVo getUserMemberVoByUid(String uid) { public void delThirdPartVoListByUid(String uid) {
String rk = AdamRedisConst.INFO_USER_MEMBER.concat(uid); redisUtil.del(AdamRedisConst.INFO_THIRD_PARTY.concat(uid));
AdamUserMemberVo adamUserMemberVo = (AdamUserMemberVo) redisUtil.get(rk);
if (null == adamUserMemberVo) {
adamUserMemberVo = mongoTemplate.findOne(Query.query(Criteria.where("uid").is(uid)), AdamUserMemberVo.class, AdamUserMemberVo.class.getSimpleName());
if (null != adamUserMemberVo) redisUtil.set(rk, adamUserMemberVo);
}
return adamUserMemberVo;
}
@Override
public AdamMemberSimpleVo getMemberSimpleVo() {
AdamMemberSimpleVo simpleVo = (AdamMemberSimpleVo) redisUtil.get(AdamRedisConst.INFO_MEMBER_SIMPLE);
if (null == simpleVo) {
List<AdamMemberSimpleVo> simpleVoList = mongoTemplate.findAll(AdamMemberSimpleVo.class, AdamMemberVo.class.getSimpleName());
simpleVo = CollectionUtils.isEmpty(simpleVoList) ? null : simpleVoList.get(0);
if (null != simpleVo) redisUtil.set(AdamRedisConst.INFO_MEMBER_SIMPLE, simpleVo);
}
return simpleVo;
} }
@Override @Override
...@@ -160,11 +135,6 @@ public class AdamRdmServiceImpl implements IAdamRdmService { ...@@ -160,11 +135,6 @@ public class AdamRdmServiceImpl implements IAdamRdmService {
return redisUtil.set(AdamRedisConst.INFO_ENTERS.concat(uid), list); return redisUtil.set(AdamRedisConst.INFO_ENTERS.concat(uid), list);
} }
@Override
public void delEntersByUid(String uid) {
redisUtil.del(AdamRedisConst.INFO_ENTERS.concat(uid));
}
@Override @Override
public List<AdamEnters> getEntersByUid(String uid) { public List<AdamEnters> getEntersByUid(String uid) {
String rk = AdamRedisConst.INFO_ENTERS.concat(uid); String rk = AdamRedisConst.INFO_ENTERS.concat(uid);
...@@ -187,13 +157,13 @@ public class AdamRdmServiceImpl implements IAdamRdmService { ...@@ -187,13 +157,13 @@ public class AdamRdmServiceImpl implements IAdamRdmService {
} }
@Override @Override
public boolean setAddressesByUid(String uid, List<AdamAddresses> list) { public void delEntersByUid(String uid) {
return redisUtil.set(AdamRedisConst.INFO_ADDRESSES.concat(uid), list); redisUtil.del(AdamRedisConst.INFO_ENTERS.concat(uid));
} }
@Override @Override
public void delAddressesByUid(String uid) { public boolean setAddressesByUid(String uid, List<AdamAddresses> list) {
redisUtil.del(AdamRedisConst.INFO_ADDRESSES.concat(uid)); return redisUtil.set(AdamRedisConst.INFO_ADDRESSES.concat(uid), list);
} }
@Override @Override
...@@ -217,4 +187,44 @@ public class AdamRdmServiceImpl implements IAdamRdmService { ...@@ -217,4 +187,44 @@ public class AdamRdmServiceImpl implements IAdamRdmService {
if (addressesId.equals(r.getAddressesId())) return r; if (addressesId.equals(r.getAddressesId())) return r;
return null; return null;
} }
@Override
public void delAddressesByUid(String uid) {
redisUtil.del(AdamRedisConst.INFO_ADDRESSES.concat(uid));
}
@Override
public boolean setUserMemberVoByUid(String uid, AdamUserMemberVo vo) {
return redisUtil.set(AdamRedisConst.INFO_USER_MEMBER.concat(uid), vo);
}
@Override
public AdamUserMemberVo getUserMemberVoByUid(String uid) {
String rk = AdamRedisConst.INFO_USER_MEMBER.concat(uid);
AdamUserMemberVo adamUserMemberVo = (AdamUserMemberVo) redisUtil.get(rk);
if (null == adamUserMemberVo) {
adamUserMemberVo = mongoTemplate.findOne(Query.query(Criteria.where("uid").is(uid)), AdamUserMemberVo.class, AdamUserMemberVo.class.getSimpleName());
if (null != adamUserMemberVo) redisUtil.set(rk, adamUserMemberVo);
}
return adamUserMemberVo;
}
@Override
public void delUserMemberVoByUid(String uid) {
redisUtil.del(AdamRedisConst.INFO_USER_MEMBER.concat(uid));;
}
@Override
public AdamMemberSimpleVo getMemberSimpleVo() {
AdamMemberSimpleVo simpleVo = (AdamMemberSimpleVo) redisUtil.get(AdamRedisConst.INFO_MEMBER_SIMPLE);
if (null == simpleVo) {
List<AdamMemberSimpleVo> simpleVoList = mongoTemplate.findAll(AdamMemberSimpleVo.class, AdamMemberVo.class.getSimpleName());
simpleVo = CollectionUtils.isEmpty(simpleVoList) ? null : simpleVoList.get(0);
if (null != simpleVo) redisUtil.set(AdamRedisConst.INFO_MEMBER_SIMPLE, simpleVo);
}
return simpleVo;
}
} }
...@@ -19,6 +19,11 @@ ...@@ -19,6 +19,11 @@
10201=会员信息有误,请联系客服 10201=会员信息有误,请联系客服
10202=会员价格有误,请联系客服 10202=会员价格有误,请联系客服
10203=
10204=
10205=当前账号已是会员,无法兑换
10206=兑换码已使用,请核实
10207=兑换码不可用,请核实
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment