## 0元购买188在线支付回调;
This commit is contained in:
parent
625b6eb2e6
commit
bf2554ee3b
|
@ -214,6 +214,15 @@ public interface IMemberServiceApi {
|
||||||
*/
|
*/
|
||||||
R<Boolean> saveMember(CuMember cuMember, SaOrderExt saOrder, Boolean isPay, CuMemberAccountExt cuMemberAccountExt);
|
R<Boolean> saveMember(CuMember cuMember, SaOrderExt saOrder, Boolean isPay, CuMemberAccountExt cuMemberAccountExt);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 0元会员订单处理
|
||||||
|
*
|
||||||
|
* @param cuMember
|
||||||
|
* @param saOrder
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
R<Boolean> handleZeroMember(CuMember cuMember, SaOrderExt saOrder);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 处理新会员,生成主键,跟会员编号
|
* 处理新会员,生成主键,跟会员编号
|
||||||
*
|
*
|
||||||
|
|
|
@ -273,6 +273,16 @@ public class MemberServiceProvider implements IMemberServiceApi {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public R<Boolean> handleZeroMember(CuMember cuMember, SaOrderExt saOrder) {
|
||||||
|
try {
|
||||||
|
return R.ok(iCuMemberBusinessService.handleZeroMember(cuMember, saOrder));
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("handleZeroMember error", e);
|
||||||
|
return R.fail(e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public R<CuMember> createMemberIdAndCode(CuMember cuMember, Boolean isHaiFun) {
|
public R<CuMember> createMemberIdAndCode(CuMember cuMember, Boolean isHaiFun) {
|
||||||
return R.ok(iCuMemberService.createMemberIdAndCode(cuMember, isHaiFun));
|
return R.ok(iCuMemberService.createMemberIdAndCode(cuMember, isHaiFun));
|
||||||
|
|
|
@ -48,6 +48,15 @@ public interface ICuMemberBusinessService {
|
||||||
*/
|
*/
|
||||||
Boolean saveMember(CuMember cuMember, SaOrder saOrder);
|
Boolean saveMember(CuMember cuMember, SaOrder saOrder);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 0元会员订单处理
|
||||||
|
*
|
||||||
|
* @param cuMember
|
||||||
|
* @param saOrder
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Boolean handleZeroMember(CuMember cuMember, SaOrder saOrder);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* 在线支付修改记录
|
* 在线支付修改记录
|
||||||
**/
|
**/
|
||||||
|
|
|
@ -131,7 +131,6 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
||||||
ITOnlinePaymentServiceApi itOnlinePaymentServiceApi;
|
ITOnlinePaymentServiceApi itOnlinePaymentServiceApi;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
|
||||||
public void updateCuMember(CuMember cuMember) {
|
public void updateCuMember(CuMember cuMember) {
|
||||||
redisService.lockKeyMany(CacheConstants.UPD_MEMBER + cuMember.getMemberCode());
|
redisService.lockKeyMany(CacheConstants.UPD_MEMBER + cuMember.getMemberCode());
|
||||||
try {
|
try {
|
||||||
|
@ -330,6 +329,25 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
||||||
return Boolean.TRUE;
|
return Boolean.TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public Boolean handleZeroMember(CuMember cuMember, SaOrder saOrder) {
|
||||||
|
// 更新会员信息
|
||||||
|
updateCuMember(cuMember);
|
||||||
|
// 会员升级记录
|
||||||
|
saveMemberRecords(cuMember, saOrder);
|
||||||
|
|
||||||
|
// 代表在线支付,在线支付先插入一条充值信息
|
||||||
|
CuMemberAccountExt cuMemberAccountExt = insertMemberRecharge(saOrder);
|
||||||
|
// 扣款信息
|
||||||
|
insertMemberTrade(saOrder, cuMemberAccountExt);
|
||||||
|
|
||||||
|
// 解锁 安置位置
|
||||||
|
redisService.unlock(CacheConstants.POSITION + cuMember.getPkPlaceParent() + cuMember.getPlaceDept());
|
||||||
|
// 扣除可用量
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public Boolean saveMemberOnLineTrade(CuMember cuMember, SaOrder saOrder, CuMemberAccountExt cuMemberAccountExt) {
|
public Boolean saveMemberOnLineTrade(CuMember cuMember, SaOrder saOrder, CuMemberAccountExt cuMemberAccountExt) {
|
||||||
|
|
|
@ -808,6 +808,65 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
||||||
return Boolean.TRUE;
|
return Boolean.TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean payReyZeroOrder(SaOrderExt saOrderExt, CuMember newCuMember) {
|
||||||
|
Date currentDateTime = DateUtils.currentDateTime();
|
||||||
|
newCuMember.setPayStatus(EPayStatus.PAID.getValue());
|
||||||
|
newCuMember.setPayTime(currentDateTime);
|
||||||
|
newCuMember.setConsumeMoney(saOrderExt.getOrderAmount());
|
||||||
|
newCuMember.setConsumeAchieve(saOrderExt.getOrderAchieve());
|
||||||
|
// 会员续约需求,【有效期】为购买时间次年的上月最后一天
|
||||||
|
newCuMember.setExpireDate(DateUtils.beforeMonthLastDate(DateUtils.addYears(currentDateTime, 1)));
|
||||||
|
// 【休止期】普通会员6个月,奖衔会员12个月(先按6个月来,后续MQ会统一处理同姓名同手机号会员)
|
||||||
|
newCuMember.setStopDate(DateUtils.addMonths(newCuMember.getExpireDate(), 6));
|
||||||
|
|
||||||
|
if (null == newCuMember.getPkPlaceParent()
|
||||||
|
|| null == newCuMember.getPlaceDept()) {
|
||||||
|
// 当安置人和安置部门为空时,进行上树
|
||||||
|
CuMember cuMember = repeatTry(newCuMember, Boolean.FALSE);
|
||||||
|
newCuMember.setPkPlaceParent(cuMember.getPkPlaceParent());
|
||||||
|
newCuMember.setPlaceDept(cuMember.getPlaceDept());
|
||||||
|
}
|
||||||
|
|
||||||
|
saOrderExt.setOrderType(EOrderType.REPURCHASE_ORDER.getValue());
|
||||||
|
saOrderExt.setOrderTypeExtend(EOrderTypeExtend.REG_REP.getValue());
|
||||||
|
saOrderExt.setPkPlacement(newCuMember.getPkPlaceParent());
|
||||||
|
saOrderExt.setOrderStatus(EOrderStatus.PAY.getValue());
|
||||||
|
saOrderExt.setPayTime(currentDateTime);
|
||||||
|
saOrderExt.setCreationTime(currentDateTime);
|
||||||
|
for (SaOrderItems saOrderItems : saOrderExt.getOrderItemsList()) {
|
||||||
|
saOrderItems.setCreationTime(saOrderExt.getCreationTime());
|
||||||
|
saOrderItems.setOrderStatus(EOrderStatus.PAY.getValue());
|
||||||
|
saOrderItems.setPkGrade(newCuMember.getPkSettleGrade());
|
||||||
|
}
|
||||||
|
// 保存订单信息
|
||||||
|
processOrder(saOrderExt);
|
||||||
|
|
||||||
|
// 调用其他服务保存会员信息、会员注册信息
|
||||||
|
R<Boolean> handleResult = iMemberServiceApi.handleZeroMember(newCuMember, saOrderExt);
|
||||||
|
if (handleResult.isSuccess()) {
|
||||||
|
if (!handleResult.getData()) {
|
||||||
|
log.error("payReyZeroOrder 保存会员失败!.");
|
||||||
|
throw new RuntimeException("保存会员失败!.");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
log.error("payReyZeroOrder 保存会员失败!.,{}", handleResult.getMsg());
|
||||||
|
throw new RuntimeException("保存会员失败!.");
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
// 同步全网产品库存
|
||||||
|
this.allProductSync(saOrderExt);
|
||||||
|
|
||||||
|
log.info("生产活动消息,activity.exchange:{}", JSONUtil.toJsonStr(saOrderExt));
|
||||||
|
rabbitTemplate.convertAndSend(RabbitMqConstants.ACTIVITY_EXCHANGE, RabbitMqConstants.ACTIVITY_KEY, saOrderExt);
|
||||||
|
// 推送秒结数据处理 -- 注册订单
|
||||||
|
rabbitTemplate.convertAndSend(RabbitMqConstants.ORDER_SECOND_EXCHANGE, RabbitMqConstants.ORDER_SECOND_KEY, saOrderExt);
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return Boolean.TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 尝试重新换位置
|
* 尝试重新换位置
|
||||||
*
|
*
|
||||||
|
@ -1664,8 +1723,7 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
||||||
public boolean validateFirstOrder(Long pkParent, Integer pkCountry) {
|
public boolean validateFirstOrder(Long pkParent, Integer pkCountry) {
|
||||||
String validateFirstOrder = querySystemConfigByKey(pkCountry, ESystemConfig.FIRST_ORDER.getKey());
|
String validateFirstOrder = querySystemConfigByKey(pkCountry, ESystemConfig.FIRST_ORDER.getKey());
|
||||||
if (EYesNo.YES.getIntValue() == Integer.parseInt(validateFirstOrder)) {
|
if (EYesNo.YES.getIntValue() == Integer.parseInt(validateFirstOrder)) {
|
||||||
Integer count = queryCuMemberByPkMember(pkParent);
|
return queryCuMemberByPkMember(pkParent) == 0;
|
||||||
return count == 0;
|
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -1911,22 +1969,6 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
||||||
}
|
}
|
||||||
if (EOrderType.REGISTER_ORDER.getValue() == saOrderExt.getOrderType()
|
if (EOrderType.REGISTER_ORDER.getValue() == saOrderExt.getOrderType()
|
||||||
|| EOrderType.SPECIAL_REGISTER_ORDER.getValue() == saOrderExt.getOrderType()) {
|
|| EOrderType.SPECIAL_REGISTER_ORDER.getValue() == saOrderExt.getOrderType()) {
|
||||||
|
|
||||||
if (EOrderTypeExtend.REG_REP.getValue() == saOrderExt.getOrderTypeExtend()) {
|
|
||||||
// TODO 注册转复购
|
|
||||||
log.info("==========新注册转复购==========");
|
|
||||||
// 188分享订单,复购订单 扩展类型为 注册转复购
|
|
||||||
OrderParam orderParam = redisService.getCacheObject(CacheConstants.TEMP_PARAM + pkMember + orderCode);
|
|
||||||
orderParam.setIsHaiFun(Boolean.TRUE);
|
|
||||||
orderParam.setOrderTypeExtend(saOrderExt.getOrderTypeExtend());
|
|
||||||
|
|
||||||
saOrderExt = packageSaOrder(orderParam, newCuMember);
|
|
||||||
saOrderExt.setPayType(EOrderPayType.ONLINE.getValue());
|
|
||||||
if (newCuMember == null) {
|
|
||||||
throw new RuntimeException("生成会员失败");
|
|
||||||
}
|
|
||||||
payRegSaOrder(saOrderExt, newCuMember, null, Boolean.TRUE);
|
|
||||||
} else {
|
|
||||||
// 注册订单
|
// 注册订单
|
||||||
boolean isToBePay = getIsToBePayByOrderType(saOrderExt.getPkCountry(), saOrderExt.getOrderType());
|
boolean isToBePay = getIsToBePayByOrderType(saOrderExt.getPkCountry(), saOrderExt.getOrderType());
|
||||||
OrderParam orderParam = redisService.getCacheObject(CacheConstants.TEMP_PARAM + pkMember + orderCode);
|
OrderParam orderParam = redisService.getCacheObject(CacheConstants.TEMP_PARAM + pkMember + orderCode);
|
||||||
|
@ -1939,7 +1981,6 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
||||||
throw new RuntimeException("生成会员失败");
|
throw new RuntimeException("生成会员失败");
|
||||||
}
|
}
|
||||||
payRegSaOrder(saOrderExt, newCuMember, null, Boolean.FALSE);
|
payRegSaOrder(saOrderExt, newCuMember, null, Boolean.FALSE);
|
||||||
}
|
|
||||||
} else if (EOrderType.UPGRADE_ORDER.getValue() == saOrderExt.getOrderType()
|
} else if (EOrderType.UPGRADE_ORDER.getValue() == saOrderExt.getOrderType()
|
||||||
|| EOrderType.SPECIAL_UPGRADE_ORDER.getValue() == saOrderExt.getOrderType()) {
|
|| EOrderType.SPECIAL_UPGRADE_ORDER.getValue() == saOrderExt.getOrderType()) {
|
||||||
// 升级订单
|
// 升级订单
|
||||||
|
@ -1947,8 +1988,24 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
||||||
} else {
|
} else {
|
||||||
// 其他订单
|
// 其他订单
|
||||||
if (EOrderType.REPURCHASE_ORDER.getValue() == saOrderExt.getOrderType()
|
if (EOrderType.REPURCHASE_ORDER.getValue() == saOrderExt.getOrderType()
|
||||||
&& EOrderTypeExtend.REG_REP.getValue() == saOrderExt.getOrderTypeExtend()) {
|
&& EOrderTypeExtend.REG_REP.getValue().equals(saOrderExt.getOrderTypeExtend())) {
|
||||||
log.info("==========注册转复购==========");
|
log.info("==========注册转复购==========");
|
||||||
|
if (null != newCuMember) {
|
||||||
|
// 先注册0元会员,再购买注册订单,复购订单 扩展类型为 注册转复购
|
||||||
|
OrderParam orderParam = redisService.getCacheObject(CacheConstants.TEMP_PARAM + pkMember + orderCode);
|
||||||
|
orderParam.setIsHaiFun(Boolean.TRUE);
|
||||||
|
orderParam.setOrderTypeExtend(saOrderExt.getOrderTypeExtend());
|
||||||
|
|
||||||
|
// 会员等级使用缓存中已经计算好的
|
||||||
|
newCuMember.setPkRegisterGrade(orderParam.getPkGrade());
|
||||||
|
newCuMember.setPkSettleGrade(orderParam.getPkGrade());
|
||||||
|
|
||||||
|
saOrderExt = packageWholeSaOrder(orderParam, newCuMember);
|
||||||
|
saOrderExt.setPayType(EOrderPayType.ONLINE.getValue());
|
||||||
|
if (!payReyZeroOrder(saOrderExt, newCuMember)) {
|
||||||
|
throw new ServiceException("会员或订单处理失败");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
// 188分享订单,复购订单 扩展类型为 注册转复购
|
// 188分享订单,复购订单 扩展类型为 注册转复购
|
||||||
OrderParam orderParam = redisService.getCacheObject(CacheConstants.TEMP_PARAM + pkMember + orderCode);
|
OrderParam orderParam = redisService.getCacheObject(CacheConstants.TEMP_PARAM + pkMember + orderCode);
|
||||||
orderParam.setIsHaiFun(Boolean.TRUE);
|
orderParam.setIsHaiFun(Boolean.TRUE);
|
||||||
|
@ -1973,6 +2030,7 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
||||||
throw new RuntimeException("生成会员失败");
|
throw new RuntimeException("生成会员失败");
|
||||||
}
|
}
|
||||||
payRegSaOrder(saOrderExt, newCuMember, null, Boolean.TRUE);
|
payRegSaOrder(saOrderExt, newCuMember, null, Boolean.TRUE);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
payRepurchaseSaOrder(saOrderExt, null);
|
payRepurchaseSaOrder(saOrderExt, null);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue