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

Commit 6bb719b5 authored by 张国柄's avatar 张国柄

会员订单+地区;

parent 72e0f1d2
......@@ -23,14 +23,17 @@ public class AdamMemberOrderCodeParam implements Serializable {
@Pattern(regexp = LnsRegex.Valid.DATETIME_YMD, message = "生日格式有误")
@NotBlank(message = "生日不能为空")
private String birthday;
@ApiModelProperty(position = 13, required = true, value = "收获地址")
@ApiModelProperty(position = 13, required = true, value = "地区[100]", example = "北京 北京市 朝阳区")
@NotBlank(message = "地区不能为空")
private String area;
@ApiModelProperty(position = 14, required = true, value = "收获地址")
@Size(min = 1, max = 64, message = "收获地址长度限制1-64位字符")
@NotBlank(message = "收获地址不能为空")
private String addressId;
@ApiModelProperty(position = 14, value = "支付终端[app,wap,js,applet]", example = "js")
@ApiModelProperty(position = 15, value = "支付终端[app,wap,js,applet]", example = "js")
private String deviceFrom;
@ApiModelProperty(position = 15, required = false, value = "姓名[未实名时必传]")
@ApiModelProperty(position = 16, required = false, value = "姓名[未实名时必传]")
private String name;
@ApiModelProperty(position = 16, required = false, value = "身份证件号[未实名时必传]")
@ApiModelProperty(position = 17, required = false, value = "身份证件号[未实名时必传]")
private String idCard;
}
......@@ -33,8 +33,8 @@ public class AdamMemberOrderParam implements Serializable {
@Pattern(regexp = LnsRegex.Valid.DATETIME_YMD, message = "生日格式有误")
@NotBlank(message = "生日不能为空")
private String birthday;
@ApiModelProperty(position = 16, required = true, value = "常住地/区域[100]", example = "北京 北京市 朝阳区")
@NotBlank(message = "常住地不能为空")
@ApiModelProperty(position = 16, required = true, value = "地区[100]", example = "北京 北京市 朝阳区")
@NotBlank(message = "地区不能为空")
private String area;
@ApiModelProperty(position = 16, required = true, value = "收获地址")
@Size(min = 1, max = 64, message = "收获地址长度限制1-64位字符")
......
......@@ -36,35 +36,37 @@ public class AdamMemberOrderVo implements Serializable, Cloneable {
private String memberNo;
@ApiModelProperty(position = 9, value = "会员生日[yyyy-MM-dd]")
private String birthday;
@ApiModelProperty(position = 10, value = "支付终端", allowableValues = "app,wap,js,applet")
@ApiModelProperty(position = 10, value = "地区")
private String area;
@ApiModelProperty(position = 11, value = "支付终端", allowableValues = "app,wap,js,applet")
private String deviceFrom;
@ApiModelProperty(position = 11, value = "支付方式", allowableValues = "alipay,wepay")
@ApiModelProperty(position = 12, value = "支付方式", allowableValues = "alipay,wepay")
private String payType;
@ApiModelProperty(position = 12, value = "支付中心支付CODE")
@ApiModelProperty(position = 13, value = "支付中心支付CODE")
private String payNo;
@ApiModelProperty(position = 13, value = "支付中心三方支付ID")
@ApiModelProperty(position = 14, value = "支付中心三方支付ID")
private String paymentId;
@ApiModelProperty(position = 14, value = "支付时间")
@ApiModelProperty(position = 15, value = "支付时间")
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern= DateUtil.DATE_FULL_STR)
private LocalDateTime paymentAt;
@ApiModelProperty(position = 15, value = "创建时间")
@ApiModelProperty(position = 16, value = "创建时间")
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern= DateUtil.DATE_FULL_STR)
private LocalDateTime createdAt;
@ApiModelProperty(position = 16, value = "创建时间")
@ApiModelProperty(position = 17, value = "创建时间")
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern= DateUtil.DATE_FULL_STR)
private LocalDateTime updatedAt;
@ApiModelProperty(position = 17, value = "价格")
@ApiModelProperty(position = 18, value = "价格")
private BigDecimal price;
@ApiModelProperty(position = 18, value = "实付价格")
@ApiModelProperty(position = 19, value = "实付价格")
private BigDecimal pricePaid;
@ApiModelProperty(position = 19, value = "客户端IP")
@ApiModelProperty(position = 20, value = "客户端IP")
private String clientIp;
@ApiModelProperty(position = 20, value = "客户端来源")
@ApiModelProperty(position = 21, value = "客户端来源")
private String source;
@ApiModelProperty(position = 21, value = "客户端版本")
@ApiModelProperty(position = 22, value = "客户端版本")
private String version;
@ApiModelProperty(position = 22, value = "会员订单扩展信息")
@ApiModelProperty(position = 25, value = "会员订单扩展信息")
private AdamMemberOrderExtVo extendVo;
@ApiModelProperty(position = 30, value = "会员须知")
......
......@@ -66,6 +66,10 @@ public class AdamMemberOrder implements Serializable {
* 会员生日[yyyy-MM-dd]
*/
private String birthday;
/**
* 地区
*/
private String area;
/**
* 支付终端:app,wap,js,applet
*/
......
......@@ -364,6 +364,8 @@ alter table adam_member_code add expire_at datetime(3) null comment '过期时
alter table adam_member_order modify state tinyint null comment '订单状态:0-未支付,1-已支付,2-已关闭,3-超时付,4-退款中,5-已退款';
alter table adam_member_order modify pay_no varchar(64) null comment '支付中心支付CODE';
alter table adam_member_order add payment_id varchar(64) null comment '支付中心三方支付ID' after pay_no;
alter table adam_member_order add area varchar(100) null comment '地区' after birthday;
# 会员退款
......
......@@ -78,7 +78,7 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
// 调取对应支付接口
LinkedMultiValueMap<String, String> payParam = CollectionUtil.linkedMultiValueMapStringString();
payParam.add("type", "VIP");// TICKET,PRODUCT,COST,MBEANS,LIVE,VIDEO,VIP,CLUB
payParam.add("price", String.valueOf(memberPriceVo.getPrice()));
payParam.add("price", String.valueOf(paymentPrice));
payParam.add("name", memberVo.getName());
payParam.add("detail", "正在现场:购买会员".concat(param.getMode() == 0 ? "" : "码"));
payParam.add("orderCode", orderNo);
......@@ -133,6 +133,7 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
memberOrderVo.setMemberName(memberVo.getName());
memberOrderVo.setMode(param.getMode());
memberOrderVo.setBirthday(param.getBirthday());
memberOrderVo.setArea(param.getArea());
memberOrderVo.setDeviceFrom(param.getDeviceFrom());
memberOrderVo.setPayType(param.getPayType());
memberOrderVo.setState(0);// 0-待支付
......@@ -316,10 +317,11 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
initMemberOrderObjs.add(new Object[]{
handleMemberOrderVo.getOrderNo(), handleMemberOrderVo.getUid(), handleMemberOrderVo.getMode(), handleMemberOrderVo.getPrice(),
handleMemberOrderVo.getPricePaid(), handleMemberOrderVo.getMemberName(), handleMemberOrderVo.getMemberId(), handleMemberOrderVo.getMemberPriceId(),
handleMemberOrderVo.getDays(), handleMemberOrderVo.getState(), handleMemberOrderVo.getMemberNo(), handleMemberOrderVo.getBirthday(),
handleMemberOrderVo.getDeviceFrom(), handleMemberOrderVo.getPayType(), handleMemberOrderVo.getPayNo(),
handleMemberOrderVo.getPaymentId(),
handleMemberOrderVo.getPaymentAt(),
handleMemberOrderVo.getDays(), handleMemberOrderVo.getState(), handleMemberOrderVo.getMemberNo(),
handleMemberOrderVo.getBirthday(),
handleMemberOrderVo.getArea(),
handleMemberOrderVo.getDeviceFrom(), handleMemberOrderVo.getPayType(),
handleMemberOrderVo.getPayNo(), handleMemberOrderVo.getPaymentId(), handleMemberOrderVo.getPaymentAt(),
handleMemberOrderVo.getCreatedAt(),
handleMemberOrderVo.getUpdatedAt(),
handleMemberOrderVo.getClientIp(), handleMemberOrderVo.getSource(), handleMemberOrderVo.getVersion()
......@@ -333,16 +335,21 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
memberOrderExtVo.getExpressPhone(), memberOrderExtVo.getExpressAddress()
});
// 权益券发放
toMqSqls.add(SqlMapping.get("candy_mgt_coupon.add_for_member"));
LinkedList<Object[]> initMemberRightsCouponObjs = this.issueMemberRightsCouponProcessing(handleMemberOrderVo.getUid(), handleMemberOrderVo.getMemberId());
AdamUserInfoVo userInfoVo = adamRdmService.getUserInfoVoByUid(handleMemberOrderVo.getUid());
// 生日、地区同步到用户资料
toMqSqls.add(SqlMapping.get("adam_user_info.update_by_member"));
LinkedList<Object[]> updateUserInfoObjs = this.syncUserInfoProcessing(now, userInfoVo, handleMemberOrderVo);
s = System.currentTimeMillis();
queueUtils.sendMsgByRedis(
MQConst.AdamQueue.SQL_UMEMBER.getKey(),
SqlMapping.gets(toMqSqls, operationObjs, initMemberOrderObjs, initMemberOrderExtObjs, initMemberRightsCouponObjs)
);
log.debug("#MQ耗时:{}ms", System.currentTimeMillis() - s);
// 权益券发放
toMqSqls.add(SqlMapping.get("candy_mgt_coupon.add_for_member"));
LinkedList<Object[]> initMemberRightsCouponObjs = this.issueMemberRightsCouponProcessing(now, userInfoVo.getMobile(), handleMemberOrderVo.getMemberId());
s = System.currentTimeMillis();
queueUtils.sendMsgByRedis(
MQConst.AdamQueue.SQL_UMEMBER.getKey(),
SqlMapping.gets(toMqSqls, operationObjs, initMemberOrderObjs, initMemberOrderExtObjs, updateUserInfoObjs, initMemberRightsCouponObjs)
);
log.debug("#MQ耗时:{}ms", System.currentTimeMillis() - s);
// } else {
// s = System.currentTimeMillis();
// queueUtils.sendMsgByRedis(
......@@ -420,6 +427,7 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
initMemberOrderVo.setState(1);// 0-待支付,1-已支付
initMemberOrderVo.setMemberNo(memberCodeVo.getMemberNo());
initMemberOrderVo.setBirthday(param.getBirthday());
initMemberOrderVo.setArea(param.getArea());
initMemberOrderVo.setDeviceFrom(param.getDeviceFrom());
initMemberOrderVo.setPayType(param.getMode() == 2 ? "vipcode" : "giftcode");
initMemberOrderVo.setPayNo(memberCodeVo.getCode());
......@@ -491,10 +499,10 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
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.getBirthday(),
initMemberOrderVo.getDeviceFrom(), initMemberOrderVo.getPayType(), initMemberOrderVo.getPayNo(),
initMemberOrderVo.getPaymentId(),
initMemberOrderVo.getPaymentAt(),
initMemberOrderVo.getDays(), initMemberOrderVo.getState(), initMemberOrderVo.getMemberNo(),
initMemberOrderVo.getBirthday(), initMemberOrderVo.getArea(),
initMemberOrderVo.getDeviceFrom(), initMemberOrderVo.getPayType(),
initMemberOrderVo.getPayNo(), initMemberOrderVo.getPaymentId(), initMemberOrderVo.getPaymentAt(),
initMemberOrderVo.getCreatedAt(),
initMemberOrderVo.getUpdatedAt(),
initMemberOrderVo.getClientIp(), initMemberOrderVo.getSource(), initMemberOrderVo.getVersion()
......@@ -506,9 +514,14 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
memberOrderExtVo.getExpressPhone(), memberOrderExtVo.getExpressAddress()
});
AdamUserInfoVo userInfoVo = adamRdmService.getUserInfoVoByUid(initMemberOrderVo.getUid());
// 生日、地区同步到用户资料
toMqSqls.add(SqlMapping.get("adam_user_info.update_by_member"));
LinkedList<Object[]> updateUserInfoObjs = this.syncUserInfoProcessing(now, userInfoVo, initMemberOrderVo);
// 权益券发放
toMqSqls.add(SqlMapping.get("candy_mgt_coupon.add_for_member"));
LinkedList<Object[]> initMemberRightsCouponObjs = this.issueMemberRightsCouponProcessing(currentUid, initMemberOrderVo.getMemberId());
LinkedList<Object[]> initMemberRightsCouponObjs = this.issueMemberRightsCouponProcessing(now, userInfoVo.getMobile(), initMemberOrderVo.getMemberId());
s = System.currentTimeMillis();
queueUtils.sendMsgByRedis(
......@@ -555,17 +568,33 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
/* ------------------------------------------------------------------------------------ */
/**
* 同步用户资料(生日、地区-常驻地)
*
* @param now 时间
* @param userInfoVo 用户信息
* @param memberOrderVo 订单信息
* @return LinkedList<Object[]>
*/
private LinkedList<Object[]> syncUserInfoProcessing(LocalDateTime now, AdamUserInfoVo userInfoVo, AdamMemberOrderVo memberOrderVo) {
userInfoVo.setBirthday(memberOrderVo.getBirthday());
userInfoVo.setArea(memberOrderVo.getArea());
adamRdmService.setUserInfoVoByUid(userInfoVo.getUid(), userInfoVo);
LinkedList<Object[]> updateUserInfoObjs = CollectionUtil.linkedListObjectArr();
updateUserInfoObjs.add(new Object[]{userInfoVo.getBirthday(), userInfoVo.getArea(), userInfoVo.getUid()});
return updateUserInfoObjs;
}
/**
* 发放会员专属特权券
*
* @param uid 用户ID
* @param now 时间
* @param mobile 用户手机号
* @param memberId 会员ID
* @return LinkedList<Object[]>
*/
private LinkedList<Object[]> issueMemberRightsCouponProcessing(String uid, String memberId) {
AdamUserInfoVo userInfoVo = adamRdmService.getUserInfoVoByUid(uid);
LocalDateTime now = LocalDateTime.now();
private LinkedList<Object[]> issueMemberRightsCouponProcessing(LocalDateTime now, String mobile, String memberId) {
LinkedList<Object[]> initMemberRightsCouponObjs = CollectionUtil.linkedListObjectArr();
List<AdamMemberRightsVo> memberRightsVoList = adamRdmService.getMemberRightsVoByMemberId(memberId, 0);
......@@ -580,7 +609,7 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
rightsCouponCtMap.forEach((couponId, num) -> {
initMemberRightsCouponObjs.add(
new Object[]{r.getMrightsId(), couponId, num, userInfoVo.getMobile(), now, userInfoVo.getMobile(), now}
new Object[]{r.getMrightsId(), couponId, num, mobile, now, mobile, now}
);
});
}
......
......@@ -6,6 +6,7 @@ adam_user.close=UPDATE adam_user SET `state`=2, mobile=concat(mobile,'_',curtime
# ----------------------------------------------------
adam_user_info.add=INSERT INTO adam_user_info (`uid`, nickname, avatar, qr_code) VALUES (?,?,?,?)
adam_user_info.edit=UPDATE adam_user_info SET nickname=?, sex=?, birthday=?, area=?, signature=?, avatar=?, background=?, tag_me=? WHERE uid=?
adam_user_info.update_by_member=UPDATE adam_user_info SET birthday=?, area=? WHERE uid=?
# ----------------------------------------------------
adam_real_name.add=INSERT INTO adam_real_name (real_name_id, `uid`, `type`, `name`, id_card, `state`, created_at) VALUES (?,?,?,?,?,?,?)
......@@ -45,7 +46,7 @@ adam_member_code.add=INSERT INTO adam_member_code (code, `type`, member_id, memb
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, birthday, device_from, pay_type, pay_no, payment_id, payment_at, created_at, updated_at, client_ip, `source`, version) 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, birthday, area, device_from, pay_type, pay_no, payment_id, payment_at, created_at, updated_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=?
# ----------------------------------------------------
......
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