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

Commit df5261fb authored by 张国柄's avatar 张国柄

fix:会员购买、使用兑换码调整;

parent 3ebfd60d
...@@ -2,6 +2,7 @@ package com.liquidnet.service.adam.dto; ...@@ -2,6 +2,7 @@ package com.liquidnet.service.adam.dto;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
...@@ -15,6 +16,7 @@ public class AdamMemberOrderCallbackParam implements Serializable { ...@@ -15,6 +16,7 @@ public class AdamMemberOrderCallbackParam implements Serializable {
@JsonProperty("order_code") @JsonProperty("order_code")
private String orderCode; private String orderCode;
private String code; private String code;
@ApiModelProperty(value = "[VIP,CLUB]", allowableValues = "VIP,CLUB")
private String type; private String type;
private BigDecimal price; private BigDecimal price;
@JsonProperty("payment_type") @JsonProperty("payment_type")
......
package com.liquidnet.service.adam.dto; package com.liquidnet.service.adam.dto;
import com.liquidnet.commons.lang.constant.LnsRegex;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.*; import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable; import java.io.Serializable;
@ApiModel(value = "AdamMemberOrderCodeParam", description = "使用兑换码入参") @ApiModel(value = "AdamMemberOrderCodeParam", description = "使用兑换码入参")
...@@ -20,9 +22,9 @@ public class AdamMemberOrderCodeParam implements Serializable { ...@@ -20,9 +22,9 @@ public class AdamMemberOrderCodeParam implements Serializable {
@ApiModelProperty(position = 11, required = true, value = "兑换码", example = "0") @ApiModelProperty(position = 11, required = true, value = "兑换码", example = "0")
@NotBlank @NotBlank
private String memberCode; private String memberCode;
@ApiModelProperty(position = 12, required = true, value = "生日", example = "2021-05-27") @ApiModelProperty(position = 12, value = "支付终端[app,wap,js,applet]", example = "js")
@Pattern(regexp = LnsRegex.Valid.DATETIME_YMD, message = "时间格式有误") private String deviceFrom;
private String birthday;
@ApiModelProperty(position = 13, required = false, value = "姓名") @ApiModelProperty(position = 13, required = false, value = "姓名")
private String name; private String name;
@ApiModelProperty(position = 14, required = false, value = "身份证件号") @ApiModelProperty(position = 14, required = false, value = "身份证件号")
......
...@@ -16,8 +16,8 @@ public class AdamMemberCodeVo implements Serializable, Cloneable { ...@@ -16,8 +16,8 @@ public class AdamMemberCodeVo implements Serializable, Cloneable {
private String memberId; private String memberId;
@ApiModelProperty(position = 2, value = "会员价格id") @ApiModelProperty(position = 2, value = "会员价格id")
private String memberPriceId; private String memberPriceId;
@ApiModelProperty(position = 3, value = "类型:0-购买,1-后台生成") @ApiModelProperty(position = 3, value = "类型:1-购买,2-赠送(后台生成)")
private String type; private Integer 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-不可用")
......
...@@ -41,13 +41,17 @@ public class AdamMemberOrderVo implements Serializable, Cloneable { ...@@ -41,13 +41,17 @@ public class AdamMemberOrderVo implements Serializable, Cloneable {
private String paymentAt; private String paymentAt;
@ApiModelProperty(position = 13, value = "创建时间") @ApiModelProperty(position = 13, value = "创建时间")
private String createdAt; private String createdAt;
@ApiModelProperty(position = 14, value = "价格") @ApiModelProperty(position = 14, value = "创建时间")
private String updatedAt;
@ApiModelProperty(position = 15, value = "价格")
private BigDecimal price; private BigDecimal price;
@ApiModelProperty(position = 15, value = "客户端IP") @ApiModelProperty(position = 16, value = "实付价格")
private String ip; private BigDecimal pricePaid;
@ApiModelProperty(position = 16, value = "客户端来源") @ApiModelProperty(position = 17, value = "客户端IP")
private String clientIp;
@ApiModelProperty(position = 18, value = "客户端来源")
private String source; private String source;
@ApiModelProperty(position = 17, value = "客户端版本") @ApiModelProperty(position = 19, value = "客户端版本")
private String version; private String version;
@ApiModelProperty(position = 20, value = "兑换码") @ApiModelProperty(position = 20, value = "兑换码")
...@@ -63,29 +67,4 @@ public class AdamMemberOrderVo implements Serializable, Cloneable { ...@@ -63,29 +67,4 @@ public class AdamMemberOrderVo implements Serializable, Cloneable {
} }
return new AdamMemberOrderVo(); return new AdamMemberOrderVo();
} }
public static List<Object> getMemberOrderMqList(AdamMemberOrderVo orderVo) {
List<Object> mqList = new ArrayList<>();
mqList.add(orderVo.getOrderNo());
mqList.add(orderVo.getUid());
mqList.add(orderVo.getMode());
mqList.add(orderVo.getPrice());
mqList.add(BigDecimal.valueOf(0));
mqList.add(orderVo.getMemberName());
mqList.add(orderVo.getMemberId());
mqList.add(orderVo.getMemberPriceId());
mqList.add(orderVo.getDays());
mqList.add(orderVo.getState());
mqList.add(orderVo.getMemberNo());
mqList.add(orderVo.getDeviceFrom());
mqList.add(orderVo.getPayType());
mqList.add(orderVo.getPayNo());
mqList.add(orderVo.getPaymentAt());
mqList.add(orderVo.getCreatedAt());
mqList.add(orderVo.getCreatedAt());
mqList.add(orderVo.getIp());
mqList.add(orderVo.getSource());
mqList.add(orderVo.getVersion());
return mqList;
}
} }
...@@ -22,6 +22,12 @@ public interface IAdamMemberOrderService extends IService<AdamMemberOrder> { ...@@ -22,6 +22,12 @@ public interface IAdamMemberOrderService extends IService<AdamMemberOrder> {
*/ */
ResponseDto<AdamMemberOrderResult> buyMemberOrMemberCode(AdamMemberOrderParam param) throws Exception; ResponseDto<AdamMemberOrderResult> buyMemberOrMemberCode(AdamMemberOrderParam param) throws Exception;
/**
* 支付回调
* @return
*/
ResponseDto<Object> paymentNotifyCallBack(AdamMemberOrderCallbackParam parameter);
/** /**
* 使用会员码 * 使用会员码
* @param param * @param param
...@@ -44,10 +50,4 @@ public interface IAdamMemberOrderService extends IService<AdamMemberOrder> { ...@@ -44,10 +50,4 @@ public interface IAdamMemberOrderService extends IService<AdamMemberOrder> {
*/ */
AdamMemberOrderVo getMemberOrderInfo(String uid,String orderNo); AdamMemberOrderVo getMemberOrderInfo(String uid,String orderNo);
/**
* 支付回调
* @return
*/
ResponseDto<Object> memberNotifyCallBack(AdamMemberOrderCallbackParam parameter);
} }
...@@ -21,7 +21,7 @@ public class AdamMemberCode { ...@@ -21,7 +21,7 @@ public class AdamMemberCode {
*/ */
private String code; private String code;
/** /**
* 类型 0-用户购买兑换码 1-后台生成兑换码 * 类型:1-购买,2-赠送(后台生成)
*/ */
private Integer type; private Integer type;
/** /**
......
...@@ -63,9 +63,13 @@ public class AdamMemberOrder implements Serializable { ...@@ -63,9 +63,13 @@ public class AdamMemberOrder implements Serializable {
*/ */
private String memberNo; private String memberNo;
/** /**
* 支付渠道 * 支付终端:app,wap,js,applet
*/ */
private String payChannel; private String deviceFrom;
/**
* 支付方式:alipay,wepay,vipcode,giftcode
*/
private String payType;
/** /**
* 支付单号 * 支付单号
*/ */
...@@ -74,10 +78,8 @@ public class AdamMemberOrder implements Serializable { ...@@ -74,10 +78,8 @@ public class AdamMemberOrder implements Serializable {
* 支付时间 * 支付时间
*/ */
private LocalDateTime paymentAt; private LocalDateTime paymentAt;
/** private LocalDateTime createdAt;
* 用户生日 private LocalDateTime updatedAt;
*/
private LocalDateTime birthday;
/** /**
* ip地址 * ip地址
*/ */
...@@ -90,9 +92,7 @@ public class AdamMemberOrder implements Serializable { ...@@ -90,9 +92,7 @@ public class AdamMemberOrder implements Serializable {
* 客户端版本号 * 客户端版本号
*/ */
private String version; private String version;
private String comment;
private LocalDateTime createdAt;
private LocalDateTime updatedAt;
} }
...@@ -260,9 +260,8 @@ create table adam_member_order ...@@ -260,9 +260,8 @@ create table adam_member_order
state tinyint comment '订单状态', state tinyint comment '订单状态',
member_no varchar(20) comment '会员号', member_no varchar(20) comment '会员号',
device_from varchar(20) comment '支付终端:app,wap,js,applet', device_from varchar(20) comment '支付终端:app,wap,js,applet',
pay_type varchar(20) comment '支付方式:alipay,wepay', pay_type varchar(20) comment '支付方式:alipay,wepay,vipcode,giftcode',
pay_no varchar(64) comment '支付订单', pay_no varchar(64) comment '支付订单',
birthday date default null comment '用户生日',
payment_at datetime default null comment '支付时间', payment_at datetime default null comment '支付时间',
created_at datetime, created_at datetime,
updated_at datetime, updated_at datetime,
...@@ -291,7 +290,7 @@ create table adam_member_code ...@@ -291,7 +290,7 @@ create table adam_member_code
( (
mid int unsigned auto_increment primary key, mid int unsigned auto_increment primary key,
code varchar(20) comment '会员码', code varchar(20) comment '会员码',
type int default 0 comment '0用户购买1提前制作', type int default 0 comment '类型:1-购买,2-赠送(后台生成)',
member_id varchar(255) comment '会员ID', member_id varchar(255) comment '会员ID',
member_price_id varchar(255) comment '会员价格ID', member_price_id varchar(255) comment '会员价格ID',
member_no varchar(20) comment '预留会员号', member_no varchar(20) comment '预留会员号',
......
...@@ -106,10 +106,10 @@ public class AdamMemberOrderController { ...@@ -106,10 +106,10 @@ public class AdamMemberOrderController {
@ApiOperationSupport(order = 2) @ApiOperationSupport(order = 2)
@ApiOperation(value = "会员支付回调") @ApiOperation(value = "会员支付回调")
@PostMapping("callback") @PostMapping("callback")
public String paymentCallBack(@ModelAttribute AdamMemberOrderCallbackParam parameter){ public String paymentNotifyCallBack(@ModelAttribute AdamMemberOrderCallbackParam parameter){
log.debug("/member/callback.parameter:{}", JsonUtils.toJson(parameter)); log.debug("/member/callback.parameter:{}", JsonUtils.toJson(parameter));
if (1 != parameter.getStatus() || if (1 != parameter.getStatus() ||
!parameter.getType().equals(AdamMemberConst.TYPE_VIP) || !parameter.getType().equals("VIP") ||
null == parameter.getOrderCode() || null == parameter.getOrderCode() ||
null == parameter.getCode()) { null == parameter.getCode()) {
log.error("会员支付回调参数有误:{}", JsonUtils.toJson(parameter)); log.error("会员支付回调参数有误:{}", JsonUtils.toJson(parameter));
...@@ -117,7 +117,7 @@ public class AdamMemberOrderController { ...@@ -117,7 +117,7 @@ public class AdamMemberOrderController {
return "fail"; return "fail";
} }
ResponseDto<Object> dto = adamMemberOrderService.memberNotifyCallBack(parameter); ResponseDto<Object> dto = adamMemberOrderService.paymentNotifyCallBack(parameter);
if (!dto.isSuccess()) { if (!dto.isSuccess()) {
log.warn("###会员支付回调处理失败:handleDto:{},CallbackParam:{}", JsonUtils.toJson(dto), JsonUtils.toJson(parameter)); log.warn("###会员支付回调处理失败:handleDto:{},CallbackParam:{}", JsonUtils.toJson(dto), JsonUtils.toJson(parameter));
......
...@@ -130,7 +130,7 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe ...@@ -130,7 +130,7 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
orderVo.setState(0);// 0-待支付 orderVo.setState(0);// 0-待支付
orderVo.setUid(CurrentUtil.getCurrentUid()); orderVo.setUid(CurrentUtil.getCurrentUid());
orderVo.setPrice(param.getPrice()); orderVo.setPrice(param.getPrice());
orderVo.setIp(CurrentUtil.getCliIpAddr()); orderVo.setClientIp(CurrentUtil.getCliIpAddr());
orderVo.setVersion(CurrentUtil.getCliVersion()); orderVo.setVersion(CurrentUtil.getCliVersion());
orderVo.setSource(CurrentUtil.getCliSource()); orderVo.setSource(CurrentUtil.getCliSource());
...@@ -141,15 +141,15 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe ...@@ -141,15 +141,15 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
// 调取对应支付接口 // 调取对应支付接口
LinkedMultiValueMap<String, String> payParam = new LinkedMultiValueMap<>(); LinkedMultiValueMap<String, String> payParam = new LinkedMultiValueMap<>();
payParam.add("type", AdamMemberConst.TYPE_VIP); payParam.add("type", "VIP");// VIP,CLUB
payParam.add("price", String.valueOf(memberPriceVo.getPrice())); payParam.add("price", String.valueOf(memberPriceVo.getPrice()));
payParam.add("name", orderVo.getMemberName()); payParam.add("name", orderVo.getMemberName());
payParam.add("order_code", orderVo.getOrderNo()); payParam.add("order_code", orderVo.getOrderNo());
payParam.add("client_ip", orderVo.getIp()); payParam.add("client_ip", orderVo.getClientIp());
payParam.add("notify_url", env.getProperty("liquidnet.url-pay.callback")); payParam.add("notify_url", env.getProperty("liquidnet.url-pay.callback"));
payParam.add("create_date", createdAt); payParam.add("create_date", createdAt);
payParam.add("expire_time", AdamMemberConst.TIME_LIMIT.toString()); payParam.add("expire_time", "5");
payParam.add("detail", param.getMode() == 0 ? "正在现场 - 购买会员" : "正在现场 - 购买会员码"); payParam.add("detail", "正在现场:购买会员".concat(param.getMode() == 0 ? "" : "码"));
if (StringUtils.isNotBlank(param.getAuthCode())) { if (StringUtils.isNotBlank(param.getAuthCode())) {
payParam.add("auth_code", param.getAuthCode()); payParam.add("auth_code", param.getAuthCode());
} }
...@@ -181,92 +181,6 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe ...@@ -181,92 +181,6 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
return ResponseDto.success(result); return ResponseDto.success(result);
} }
@Override
public ResponseDto<AdamMemberOrderResult> exchangeMemberCode(AdamMemberOrderCodeParam param) {
AdamMemberCodeVo memberCodeVo = adamRdmService.getMemberCodeVoByCode(param.getMemberCode());
if (null == memberCodeVo) {
return ResponseDto.failure(ErrorMapping.get("10206"));
}
if (memberCodeVo.getState() != 0) {
return ResponseDto.failure(ErrorMapping.get(memberCodeVo.getState() == 1 ? "10207" : "10208"));
}
AdamMemberPriceVo memberPriceVo = adamRdmService.getMemberPriceVoByPriceId(memberCodeVo.getMemberId(), memberCodeVo.getMemberPriceId());
if (null == memberPriceVo) {
return ResponseDto.failure(ErrorMapping.get("10202"));
}
AdamMemberVo memberVo = adamRdmService.getMemberVoByMemberId(memberCodeVo.getMemberId());
String currentDateTime = DateUtil.getNowTime();
// 创建会员订单
AdamMemberOrderVo initMemberOrderVo = AdamMemberOrderVo.getNew();
initMemberOrderVo.setOrderNo(IDGenerator.nextSnowId().toString().concat("V"));
initMemberOrderVo.setUid(CurrentUtil.getCurrentUid());
initMemberOrderVo.setMemberCode(param.getMemberCode());
initMemberOrderVo.setMemberNo(memberCodeVo.getMemberNo());
initMemberOrderVo.setMemberId(IDGenerator.nextSnowId().toString());
initMemberOrderVo.setMode(param.getMode());
initMemberOrderVo.setMemberId(memberCodeVo.getMemberId());
initMemberOrderVo.setMemberPriceId(memberCodeVo.getMemberPriceId());
initMemberOrderVo.setMemberName(memberVo.getName());
initMemberOrderVo.setState(1);// 0-待支付,1-已支付
initMemberOrderVo.setCreatedAt(currentDateTime);
initMemberOrderVo.setDays(memberPriceVo.getDays());
initMemberOrderVo.setPayNo(memberCodeVo.getCode());
initMemberOrderVo.setPrice(BigDecimal.valueOf(0));
initMemberOrderVo.setPayType(initMemberOrderVo.getMode() == 2 ? "VIP_CODE" : "GIFT_CODE");
initMemberOrderVo.setIp(CurrentUtil.getCliIpAddr());
initMemberOrderVo.setSource(CurrentUtil.getCliSource());
initMemberOrderVo.setVersion(CurrentUtil.getCliVersion());
AdamUserMemberVo initUserMemberVo = AdamUserMemberVo.getNew();
initUserMemberVo.setUid(initMemberOrderVo.getUid());
initUserMemberVo.setMemberNo(initMemberOrderVo.getMemberNo());
initUserMemberVo.setCreatedAt(currentDateTime);
initUserMemberVo.setMemberId(initMemberOrderVo.getMemberId());
initUserMemberVo.setState(1);
initUserMemberVo.setUpdatedAt(currentDateTime);
initUserMemberVo.setExpiryAt(
DateUtil.format(
DateUtil.getBeforeDayEnd(Calendar.getInstance(), initMemberOrderVo.getDays()),
DateUtil.Formatter.yyyyMMddHHmmss
)
);
LinkedList<String> toMqSqls = new LinkedList<>();
LinkedList<Object[]> updateMemberCodeObjs = new LinkedList<>(),
initMemberOrderObjs = new LinkedList<>(), initUserMemberObjs = new LinkedList<>();
AdamMemberCodeVo updateMemberCodeVo = AdamMemberCodeVo.getNew();
updateMemberCodeVo.setState(1);
updateMemberCodeVo.setUpdatedAt(currentDateTime);
updateMemberCodeVo.setUseOrderNo(initMemberOrderVo.getOrderNo());
updateMemberCodeVo.setUseUid(initUserMemberVo.getUid());
updateMemberCodeVo.setUseAt(currentDateTime);
mongoTemplate.getCollection(AdamMemberCodeVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("code").is(memberCodeVo.getCode())).getQueryObject(),
new Document("$set", Document.parse(JsonUtils.toJson(updateMemberCodeVo)))
);
toMqSqls.add(SqlMapping.get("adam_member_code.exchange"));
updateMemberCodeObjs.add(new Object[]{
updateMemberCodeVo.getState(), updateMemberCodeVo.getUpdatedAt(), updateMemberCodeVo.getUseOrderNo(),
updateMemberCodeVo.getUseUid(), updateMemberCodeVo.getUseAt(), memberCodeVo.getCode()
});
mongoTemplate.insert(initMemberOrderVo, AdamMemberOrderVo.class.getSimpleName());
toMqSqls.add(SqlMapping.get("adam_member_order.add"));
mongoTemplate.insert(initUserMemberVo, AdamUserMemberVo.class.getSimpleName());
rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL,
SqlMapping.gets(toMqSqls, updateMemberCodeObjs, initMemberOrderObjs, initUserMemberObjs));
adamRdmService.setUserMemberVoByUid(initMemberOrderVo.getUid(), initUserMemberVo);
AdamMemberOrderResult result = AdamMemberOrderResult.getNew();
result.setOrderNo(initMemberOrderVo.getOrderNo());
return ResponseDto.success(result);
}
/** /**
* 调用支付中心接口,获取支付信息 * 调用支付中心接口,获取支付信息
* *
...@@ -283,11 +197,8 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe ...@@ -283,11 +197,8 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
} }
@Override @Override
public ResponseDto<Object> memberNotifyCallBack(AdamMemberOrderCallbackParam parameter) { public ResponseDto<Object> paymentNotifyCallBack(AdamMemberOrderCallbackParam parameter) {
AdamMemberOrderVo handleMemberOrderVo = mongoTemplate.findOne( AdamMemberOrderVo handleMemberOrderVo = adamRdmService.getShotMemberOrderVoByOrderNo(parameter.getOrderCode());
Query.query(Criteria.where("orderNo").is(parameter.getOrderCode())),
AdamMemberOrderVo.class, AdamMemberOrderVo.class.getSimpleName()
);
// AdamMemberConst.STATUS_*:0-待支付,1-已支付,2-已过期,3-超时付,4-退款中,5-退款完成 // AdamMemberConst.STATUS_*:0-待支付,1-已支付,2-已过期,3-超时付,4-退款中,5-退款完成
if (1 == handleMemberOrderVo.getState() || 3 == handleMemberOrderVo.getState()) { if (1 == handleMemberOrderVo.getState() || 3 == handleMemberOrderVo.getState()) {
return ResponseDto.failure(ErrorMapping.get("10502"), parameter); return ResponseDto.failure(ErrorMapping.get("10502"), parameter);
...@@ -296,8 +207,8 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe ...@@ -296,8 +207,8 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
// 订单金额比对 // 订单金额比对
return ResponseDto.failure(ErrorMapping.get("10503"), parameter); return ResponseDto.failure(ErrorMapping.get("10503"), parameter);
} }
AdamMemberPriceVo memberPriceVo = AdamMemberPriceVo memberPriceVo = adamRdmService.getMemberPriceVoByPriceId(
adamRdmService.getMemberPriceVoByPriceId(handleMemberOrderVo.getMemberId(), handleMemberOrderVo.getMemberPriceId()); handleMemberOrderVo.getMemberId(), handleMemberOrderVo.getMemberPriceId());
if (null == memberPriceVo) { if (null == memberPriceVo) {
return ResponseDto.failure(ErrorMapping.get("10500")); return ResponseDto.failure(ErrorMapping.get("10500"));
} }
...@@ -310,7 +221,7 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe ...@@ -310,7 +221,7 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
*/ */
LinkedList<String> toMqSqls = new LinkedList<>(); LinkedList<String> toMqSqls = new LinkedList<>();
LinkedList<Object[]> operationObjs = new LinkedList<>(), updateMemberOrderObjs = new LinkedList<>(); LinkedList<Object[]> operationObjs = new LinkedList<>(), updateMemberOrderObjs = new LinkedList<>();
AdamMemberOrderVo updateMemberOrderVo = AdamMemberOrderVo.getNew(); // AdamMemberOrderVo updateMemberOrderVo = AdamMemberOrderVo.getNew();
String currentDateTime = DateUtil.getNowTime(); String currentDateTime = DateUtil.getNowTime();
if (0 == handleMemberOrderVo.getMode()) {// 购买会员回调 if (0 == handleMemberOrderVo.getMode()) {// 购买会员回调
AdamUserMemberVo existUserMemberVo = adamRdmService.getUserMemberVoByUid(handleMemberOrderVo.getUid()); AdamUserMemberVo existUserMemberVo = adamRdmService.getUserMemberVoByUid(handleMemberOrderVo.getUid());
...@@ -330,7 +241,7 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe ...@@ -330,7 +241,7 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
mongoTemplate.insert(initUserMemberVo, AdamUserMemberVo.class.getSimpleName()); mongoTemplate.insert(initUserMemberVo, AdamUserMemberVo.class.getSimpleName());
adamRdmService.setUserMemberVoByUid(handleMemberOrderVo.getUid(), initUserMemberVo); adamRdmService.setUserMemberVoByUid(handleMemberOrderVo.getUid(), initUserMemberVo);
updateMemberOrderVo.setMemberNo(memberNo); handleMemberOrderVo.setMemberNo(memberNo);
toMqSqls.add(SqlMapping.get("adam_user_member.add")); toMqSqls.add(SqlMapping.get("adam_user_member.add"));
operationObjs.add(new Object[]{ operationObjs.add(new Object[]{
...@@ -355,7 +266,7 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe ...@@ -355,7 +266,7 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
new Document("$set", Document.parse(JsonUtils.toJson(existUserMemberVo)))); new Document("$set", Document.parse(JsonUtils.toJson(existUserMemberVo))));
adamRdmService.setUserMemberVoByUid(handleMemberOrderVo.getUid(), existUserMemberVo); adamRdmService.setUserMemberVoByUid(handleMemberOrderVo.getUid(), existUserMemberVo);
updateMemberOrderVo.setMemberNo(existUserMemberVo.getMemberNo()); handleMemberOrderVo.setMemberNo(existUserMemberVo.getMemberNo());
toMqSqls.add(SqlMapping.get("adam_user_member.update")); toMqSqls.add(SqlMapping.get("adam_user_member.update"));
operationObjs.add(new Object[]{ operationObjs.add(new Object[]{
...@@ -370,7 +281,7 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe ...@@ -370,7 +281,7 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
initMemberCodeVo.setCode(MemberUtil.buyCode()); initMemberCodeVo.setCode(MemberUtil.buyCode());
initMemberCodeVo.setMemberId(handleMemberOrderVo.getMemberId()); initMemberCodeVo.setMemberId(handleMemberOrderVo.getMemberId());
initMemberCodeVo.setMemberPriceId(handleMemberOrderVo.getMemberPriceId()); initMemberCodeVo.setMemberPriceId(handleMemberOrderVo.getMemberPriceId());
initMemberCodeVo.setType(AdamMemberConst.TYPE_BUY); initMemberCodeVo.setType(1);// 1-购买,2-赠送
initMemberCodeVo.setMemberNo(memberNo); initMemberCodeVo.setMemberNo(memberNo);
initMemberCodeVo.setState(0); initMemberCodeVo.setState(0);
initMemberCodeVo.setBuyOrderNo(parameter.getCode()); initMemberCodeVo.setBuyOrderNo(parameter.getCode());
...@@ -381,8 +292,8 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe ...@@ -381,8 +292,8 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
mongoTemplate.insert(initMemberCodeVo, AdamMemberCodeVo.class.getSimpleName()); mongoTemplate.insert(initMemberCodeVo, AdamMemberCodeVo.class.getSimpleName());
adamRdmService.setMemberCodeVoByCode(initMemberCodeVo.getCode(), initMemberCodeVo); adamRdmService.setMemberCodeVoByCode(initMemberCodeVo.getCode(), initMemberCodeVo);
updateMemberOrderVo.setMemberCode(initMemberCodeVo.getCode()); handleMemberOrderVo.setMemberCode(initMemberCodeVo.getCode());
updateMemberOrderVo.setMemberNo(memberNo); handleMemberOrderVo.setMemberNo(memberNo);
toMqSqls.add(SqlMapping.get("adam_member_code.add")); toMqSqls.add(SqlMapping.get("adam_member_code.add"));
operationObjs.add(new Object[]{ operationObjs.add(new Object[]{
...@@ -391,20 +302,120 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe ...@@ -391,20 +302,120 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
initMemberCodeVo.getBuyOrderNo(), initMemberCodeVo.getBuyUid(), initMemberCodeVo.getBuyAt() initMemberCodeVo.getBuyOrderNo(), initMemberCodeVo.getBuyUid(), initMemberCodeVo.getBuyAt()
}); });
} }
updateMemberOrderVo.setPaymentAt(parameter.getPaymentAt()); handleMemberOrderVo.setPaymentAt(parameter.getPaymentAt());
updateMemberOrderVo.setState(AdamMemberConst.STATUS_PAID); handleMemberOrderVo.setUpdatedAt(currentDateTime);
handleMemberOrderVo.setState(1);// 1-已支付
mongoTemplate.getCollection(AdamMemberOrderVo.class.getSimpleName())
.updateOne(Query.query(Criteria.where("orderNo").is(handleMemberOrderVo.getOrderNo())).getQueryObject(),
new Document("$set", Document.parse(JsonUtils.toJson(updateMemberOrderVo))));
toMqSqls.add(SqlMapping.get("adam_member_order.update")); mongoTemplate.insert(handleMemberOrderVo, AdamMemberOrderVo.class.getSimpleName());
toMqSqls.add(SqlMapping.get("adam_member_order.add"));
updateMemberOrderObjs.add(new Object[]{ updateMemberOrderObjs.add(new Object[]{
updateMemberOrderVo.getState(), updateMemberOrderVo.getMemberNo(), updateMemberOrderVo.getPaymentAt(), handleMemberOrderVo.getOrderNo(), handleMemberOrderVo.getUid(), handleMemberOrderVo.getMode(), handleMemberOrderVo.getPrice(),
currentDateTime, handleMemberOrderVo.getOrderNo() handleMemberOrderVo.getPricePaid(), handleMemberOrderVo.getMemberName(), handleMemberOrderVo.getMemberId(), handleMemberOrderVo.getMemberPriceId(),
handleMemberOrderVo.getDays(), handleMemberOrderVo.getState(), handleMemberOrderVo.getMemberNo(), handleMemberOrderVo.getDeviceFrom(),
handleMemberOrderVo.getPayType(), handleMemberOrderVo.getPayNo(), handleMemberOrderVo.getPaymentAt(), handleMemberOrderVo.getCreatedAt(),
handleMemberOrderVo.getClientIp(), handleMemberOrderVo.getSource(), handleMemberOrderVo.getVersion()
}); });
rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL, rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL,
SqlMapping.gets(toMqSqls, operationObjs, updateMemberOrderObjs)); SqlMapping.gets(toMqSqls, operationObjs, updateMemberOrderObjs));
adamRdmService.delShotMemberOrderVoByOrderNo(handleMemberOrderVo.getOrderNo());
return ResponseDto.success(); return ResponseDto.success();
} }
@Override
public ResponseDto<AdamMemberOrderResult> exchangeMemberCode(AdamMemberOrderCodeParam param) {
AdamMemberCodeVo memberCodeVo = adamRdmService.getMemberCodeVoByCode(param.getMemberCode());
if (null == memberCodeVo) {
return ResponseDto.failure(ErrorMapping.get("10206"));
}
if (memberCodeVo.getState() != 0) {
return ResponseDto.failure(ErrorMapping.get(memberCodeVo.getState() == 1 ? "10207" : "10208"));
}
AdamMemberPriceVo memberPriceVo = adamRdmService.getMemberPriceVoByPriceId(memberCodeVo.getMemberId(), memberCodeVo.getMemberPriceId());
if (null == memberPriceVo) {
return ResponseDto.failure(ErrorMapping.get("10202"));
}
AdamMemberVo memberVo = adamRdmService.getMemberVoByMemberId(memberCodeVo.getMemberId());
String currentDateTime = DateUtil.getNowTime();
// 创建会员订单
AdamMemberOrderVo initMemberOrderVo = AdamMemberOrderVo.getNew();
initMemberOrderVo.setOrderNo(IDGenerator.nextSnowId().toString().concat("V"));
initMemberOrderVo.setUid(CurrentUtil.getCurrentUid());
initMemberOrderVo.setMode(param.getMode());
initMemberOrderVo.setPrice(memberPriceVo.getPrice());
initMemberOrderVo.setPricePaid(BigDecimal.ZERO);
initMemberOrderVo.setMemberName(memberVo.getName());
initMemberOrderVo.setMemberId(memberCodeVo.getMemberId());
initMemberOrderVo.setMemberPriceId(memberCodeVo.getMemberPriceId());
initMemberOrderVo.setDays(memberPriceVo.getDays());
initMemberOrderVo.setState(1);// 0-待支付,1-已支付
initMemberOrderVo.setMemberNo(memberCodeVo.getMemberNo());
initMemberOrderVo.setDeviceFrom(param.getDeviceFrom());
initMemberOrderVo.setPayType(param.getMode() == 2 ? "vipcode" : "giftcode");
initMemberOrderVo.setPayNo(memberCodeVo.getCode());
initMemberOrderVo.setPaymentAt(currentDateTime);
initMemberOrderVo.setCreatedAt(currentDateTime);
initMemberOrderVo.setClientIp(CurrentUtil.getCliIpAddr());
initMemberOrderVo.setSource(CurrentUtil.getCliSource());
initMemberOrderVo.setVersion(CurrentUtil.getCliVersion());
initMemberOrderVo.setMemberCode(param.getMemberCode());
AdamUserMemberVo initUserMemberVo = AdamUserMemberVo.getNew();
initUserMemberVo.setUid(initMemberOrderVo.getUid());
initUserMemberVo.setMemberId(memberCodeVo.getMemberId());
initUserMemberVo.setMemberNo(memberCodeVo.getMemberNo());
initUserMemberVo.setState(1);
initUserMemberVo.setExpiryAt(
DateUtil.format(
DateUtil.getBeforeDayEnd(Calendar.getInstance(), initMemberOrderVo.getDays()),
DateUtil.Formatter.yyyyMMddHHmmss
));
initUserMemberVo.setCreatedAt(currentDateTime);
LinkedList<String> toMqSqls = new LinkedList<>();
LinkedList<Object[]> updateMemberCodeObjs = new LinkedList<>(),
initMemberOrderObjs = new LinkedList<>(), initUserMemberObjs = new LinkedList<>();
AdamMemberCodeVo updateMemberCodeVo = AdamMemberCodeVo.getNew();
updateMemberCodeVo.setState(1);
updateMemberCodeVo.setUpdatedAt(currentDateTime);
updateMemberCodeVo.setUseOrderNo(initMemberOrderVo.getOrderNo());
updateMemberCodeVo.setUseUid(initUserMemberVo.getUid());
updateMemberCodeVo.setUseAt(currentDateTime);
mongoTemplate.getCollection(AdamMemberCodeVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("code").is(memberCodeVo.getCode())).getQueryObject(),
new Document("$set", Document.parse(JsonUtils.toJson(updateMemberCodeVo)))
);
toMqSqls.add(SqlMapping.get("adam_member_code.exchange"));
updateMemberCodeObjs.add(new Object[]{
updateMemberCodeVo.getState(), updateMemberCodeVo.getUpdatedAt(), updateMemberCodeVo.getUseOrderNo(),
updateMemberCodeVo.getUseUid(), updateMemberCodeVo.getUseAt(), memberCodeVo.getCode()
});
mongoTemplate.insert(initMemberOrderVo, AdamMemberOrderVo.class.getSimpleName());
toMqSqls.add(SqlMapping.get("adam_member_order.add"));
initMemberOrderObjs.add(new Object[]{
initMemberOrderVo.getOrderNo(), initMemberOrderVo.getUid(), initMemberOrderVo.getMode(), initMemberOrderVo.getPrice(),
initMemberOrderVo.getPricePaid(), initMemberOrderVo.getMemberName(), initMemberOrderVo.getMemberId(), initMemberOrderVo.getMemberPriceId(),
initMemberOrderVo.getDays(), initMemberOrderVo.getState(), initMemberOrderVo.getMemberNo(), initMemberOrderVo.getDeviceFrom(),
initMemberOrderVo.getPayType(), initMemberOrderVo.getPayNo(), initMemberOrderVo.getPaymentAt(), initMemberOrderVo.getCreatedAt(),
initMemberOrderVo.getClientIp(), initMemberOrderVo.getSource(), initMemberOrderVo.getVersion()
});
mongoTemplate.insert(initUserMemberVo, AdamUserMemberVo.class.getSimpleName());
toMqSqls.add(SqlMapping.get("adam_user_member.add"));
initMemberOrderObjs.add(new Object[]{
initUserMemberVo.getUid(), initUserMemberVo.getMemberId(), initUserMemberVo.getMemberNo(),
initUserMemberVo.getState(), initUserMemberVo.getExpiryAt(), initUserMemberVo.getCreatedAt()
});
rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL,
SqlMapping.gets(toMqSqls, updateMemberCodeObjs, initMemberOrderObjs, initUserMemberObjs));
adamRdmService.setUserMemberVoByUid(initMemberOrderVo.getUid(), initUserMemberVo);
AdamMemberOrderResult result = AdamMemberOrderResult.getNew();
result.setOrderNo(initMemberOrderVo.getOrderNo());
return ResponseDto.success(result);
}
} }
...@@ -12,21 +12,6 @@ adam_real_name.add=INSERT INTO adam_real_name (real_name_id, `uid`, `type`, `nam ...@@ -12,21 +12,6 @@ adam_real_name.add=INSERT INTO adam_real_name (real_name_id, `uid`, `type`, `nam
adam_third_party.add=INSERT INTO adam_third_party (`uid`, open_id, avatar, nickname, platform, `state`, created_at) values (?,?,?,?,?,?,?) adam_third_party.add=INSERT INTO adam_third_party (`uid`, open_id, avatar, nickname, platform, `state`, created_at) values (?,?,?,?,?,?,?)
adam_third_party.unbind=UPDATE adam_third_party SET `state`=2, updated_at=? WHERE `uid`=? AND platform=? AND `state`=1 adam_third_party.unbind=UPDATE adam_third_party SET `state`=2, updated_at=? WHERE `uid`=? AND platform=? AND `state`=1
# ----------------------------------------------------
adam_member.add=INSERT INTO adam_member ( `name`, `title`, `sub_title`, `icon`, `avatar`, `start_no`, `type`, `interests_detail`, `notes`, `is_notice`, `notice_info`, `notice_title`, `need_question`, `display_agreement`, `agreement`, `member_id`, `limitation`) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);
# ----------------------------------------------------
adam_member_order.add=INSERT INTO adam_member_order (order_no, `uid`, `mode`, price, price_paid, member_name, member_id, member_price_id, `days`, `state`, member_no, device_from, pay_type, pay_no, birthday, payment_at, created_at, client_ip, `source`, version) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
adam_member_order.update=UPDATE adam_member_order SET `state` =?, member_no =?, payment_at =?, updated_at =? WHERE order_no =?
# ----------------------------------------------------
adam_member_code.add=INSERT INTO adam_member_code (code, `type`, member_id, member_price_id, member_no, `state`, created_at, buy_order_no, buy_uid, buy_at) VALUES (?,?,?,?,?,?,?,?,?,?)
adam_member_code.exchange=UPDATE adam_member_code SET `state`=?, updated_at=?, use_order_no=?, use_uid=?, use_at=? WHERE code=?
# ----------------------------------------------------
adam_user_member.add=INSERT INTO adam_user_member (`uid`, member_id, member_no, `state`, expiry_at, created_at) VALUES (?,?,?,?,?,?)
adam_user_member.update=UPDATE adam_user_member SET `state`=?, expiry_at=?, updated_at=? WHERE `uid`=?
# ---------------------------------------------------- # ----------------------------------------------------
adam_addresses.add= adam_addresses.add=
adam_addresses.edit= adam_addresses.edit=
...@@ -40,10 +25,24 @@ adam_enters.update.is_default=UPDATE adam_enters set is_default=?, updated_at=? ...@@ -40,10 +25,24 @@ adam_enters.update.is_default=UPDATE adam_enters set is_default=?, updated_at=?
adam_enters.remove=UPDATE adam_enters SET `state`=2, updated_at=?, deleted_at=? where enters_id=? adam_enters.remove=UPDATE adam_enters SET `state`=2, updated_at=?, deleted_at=? where enters_id=?
# ---------------------------------------------------- # ----------------------------------------------------
adam_member.add=INSERT INTO adam_member ( `name`, `title`, `sub_title`, `icon`, `avatar`, `start_no`, `type`, `interests_detail`, `notes`, `is_notice`, `notice_info`, `notice_title`, `need_question`, `display_agreement`, `agreement`, `member_id`, `limitation`) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);
# ----------------------------------------------------
adam_member_code.add=INSERT INTO adam_member_code (code, `type`, member_id, member_price_id, member_no, `state`, created_at, buy_order_no, buy_uid, buy_at) VALUES (?,?,?,?,?,?,?,?,?,?)
adam_member_code.exchange=UPDATE adam_member_code SET `state`=?, updated_at=?, use_order_no=?, use_uid=?, use_at=? WHERE code=?
# ----------------------------------------------------
adam_member_order.add=INSERT INTO adam_member_order (order_no, `uid`, `mode`, price, price_paid, member_name, member_id, member_price_id, `days`, `state`, member_no, device_from, pay_type, pay_no, payment_at, created_at, client_ip, `source`, version) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
adam_member_order.update=UPDATE adam_member_order SET `state`=?, member_no=?, payment_at=?, updated_at=? WHERE order_no=?
# ----------------------------------------------------
adam_user_member.add=INSERT INTO adam_user_member (`uid`, member_id, member_no, `state`, expiry_at, created_at) VALUES (?,?,?,?,?,?)
adam_user_member.update=UPDATE adam_user_member SET `state`=?, expiry_at=?, updated_at=? WHERE `uid`=?
# ---------------------------------------------------- # ----------------------------------------------------
# ----------------------------------------------------
# ---------------------------------------------------- # ----------------------------------------------------
\ No newline at end of file
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