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

Commit 02c05e7a authored by 张国柄's avatar 张国柄

~API:用户注销:+券数据处理;

~API:用户注销:会员退款兼容处理;
parent db85b59e
......@@ -148,7 +148,6 @@ public class AdamMemberOrderAdminServiceImpl extends ServiceImpl<AdamMemberOrder
memberRefund.setRefundReason(param.getReason());
memberRefund.setRenewable(param.getRenewable());
memberRefund.setRefundState(9);
memberRefund.setRefundNo(refundNo);
memberRefund.setOperator(ShiroUtils.getLoginName());
memberRefund.setCreatedAt(now);
......@@ -163,6 +162,7 @@ public class AdamMemberOrderAdminServiceImpl extends ServiceImpl<AdamMemberOrder
String moKey = AdamRedisConst.INFO_MEMBER_ORDER + memberOrder.getUid();
ArrayList<AdamMemberOrderVo> vos = (ArrayList<AdamMemberOrderVo>) redisDataSourceUtil.getRedisAdamUtil().get(moKey);
if (!CollectionUtils.isEmpty(vos)) {
int idx = IntStream.range(0, vos.size())
.filter(i -> vos.get(i).getOrderNo().equals(memberOrder.getOrderNo()))
.findFirst().orElse(-1);
......@@ -171,6 +171,7 @@ public class AdamMemberOrderAdminServiceImpl extends ServiceImpl<AdamMemberOrder
vo.setUpdatedAt(now);
vos.set(idx, vo);
redisDataSourceUtil.getRedisAdamUtil().set(moKey, vos);
}
if (memberRefund.getRenewable() == 2) {// 拉黑用户,直接更新用户会员状态信息
AdamUserMember updateUserMember = new AdamUserMember();
......@@ -185,11 +186,10 @@ public class AdamMemberOrderAdminServiceImpl extends ServiceImpl<AdamMemberOrder
String umkey = AdamRedisConst.INFO_USER_MEMBER + memberOrder.getUid();
AdamUserMemberVo userMemberVo = (AdamUserMemberVo) redisDataSourceUtil.getRedisAdamUtil().get(umkey);
if (null != userMemberVo) {
userMemberVo.setState(2);
userMemberVo.setExpiryAt(now);
userMemberVo.setUpdatedAt(now);
redisDataSourceUtil.getRedisAdamUtil().set(umkey, userMemberVo);
List<String> uidBlackList = (List<String>) redisDataSourceUtil.getRedisAdamUtil().get(AdamRedisConst.BLK_LIST_MEMBER_UID);
......@@ -200,6 +200,7 @@ public class AdamMemberOrderAdminServiceImpl extends ServiceImpl<AdamMemberOrder
redisDataSourceUtil.getRedisAdamUtil().set(AdamRedisConst.BLK_LIST_MEMBER_UID, uidBlackList);
}
}
}
} else {
log.warn("会员管理:会员订单:退款:该订单正在退款中[AdamMemberOrderRefundParam={}]", JsonUtils.toJson(param));
refundNo = existsRefund.getRefundNo();
......@@ -228,6 +229,13 @@ public class AdamMemberOrderAdminServiceImpl extends ServiceImpl<AdamMemberOrder
if (!postResultJNode.get("success").asBoolean()) {
return AjaxResult.warn("会员退款请求支付中心失败");
}
JsonNode dataNode = postResultJNode.get("data");
if (null != dataNode && null != dataNode.get("refundCode") && (null == existsRefund || null == existsRefund.getRepayNo())) {
AdamMemberRefund updateMemberRefund = new AdamMemberRefund();
updateMemberRefund.setRepayNo(dataNode.get("refundCode").asText());
adamMemberRefundMapper.update(updateMemberRefund, Wrappers.lambdaUpdate(AdamMemberRefund.class).eq(AdamMemberRefund::getRefundNo, refundNo));
}
return AjaxResult.success();
}
......
......@@ -395,10 +395,20 @@ public class AdamUserServiceImpl implements IAdamUserService {
toMqSqls.add(SqlMapping.get("adam_user_mobile_locate.close"));
objsMobileLocate.add(new Object[]{now, uid});
/* ---------------------- 用户平台券信息 */
toMqSqls.add(SqlMapping.get("candy_user_coupon.close"));
LinkedList<Object[]> objsCandyUserCoupon = CollectionUtil.linkedListObjectArr();
objsCandyUserCoupon.add(new Object[]{uid});
/* ---------------------- 用户商城券信息 */
toMqSqls.add(SqlMapping.get("goblin_user_coupon.close"));
LinkedList<Object[]> objsGoblinUserCoupon = CollectionUtil.linkedListObjectArr();
objsGoblinUserCoupon.add(new Object[]{uid});
s = System.currentTimeMillis();
queueUtils.sendMsgByRedis(
MQConst.AdamQueue.SQL_UCENTER.getKey(),
SqlMapping.gets(toMqSqls, objsUser, objsThirdPart, objsUserMember, objsRealInfo, objsAddresses, objsEnters, objsMobileLocate)
queueUtils.sendMsgByRedis(MQConst.AdamQueue.SQL_UCENTER.getKey(),
SqlMapping.gets(toMqSqls, objsUser, objsThirdPart, objsUserMember, objsRealInfo,
objsAddresses, objsEnters, objsMobileLocate, objsCandyUserCoupon, objsGoblinUserCoupon)
);
log.debug("#MQ耗时:{}ms", System.currentTimeMillis() - s);
}
......
......@@ -80,3 +80,10 @@ adam_user_mobile_locate.close=UPDATE adam_user_mobile_locate SET `state`=2, upda
# ----------------------------------------------------
# ----------------------------------------------------
candy_user_coupon.close=UPDATE candy_user_coupon SET state=2,updated_at=sysdate(),operator='close' WHERE uid=? AND state=1
goblin_user_coupon.close=UPDATE goblin_user_coupon SET state=2,updated_at=sysdate(),operator='close' WHERE uid=? AND state=1
# ----------------------------------------------------
\ No newline at end of file
......@@ -7,6 +7,7 @@ import com.liquidnet.common.cache.redis.util.AbstractRedisUtil;
import com.liquidnet.common.cache.redis.util.RedisDataSourceUtil;
import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.vo.AdamMemberOrderVo;
import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
import com.liquidnet.service.adam.dto.vo.AdamUserMemberVo;
import com.liquidnet.service.adam.entity.AdamMemberOrder;
import com.liquidnet.service.adam.entity.AdamMemberRefund;
......@@ -101,8 +102,9 @@ public class PlatformMemberRefundService extends ServiceImpl<AdamMemberRefundMap
private void refundSuccProcessing(String orderNo, LocalDateTime now, String refundAmt) {
AdamMemberOrder memberOrder = adamMemberOrderMapper.selectOne(Wrappers.lambdaUpdate(AdamMemberOrder.class).eq(AdamMemberOrder::getOrderNo, orderNo));
LocalDateTime newExpiryAt = null;
List<String> removeUcouponIdList = null;
LocalDateTime newExpiryAt = null;
boolean syncVo = false;
AbstractRedisUtil redisAdamUtil = redisDataSourceUtil.getRedisAdamUtil();
AbstractRedisUtil redisCandyUtil = redisDataSourceUtil.getRedisCandyUtil();
......@@ -111,13 +113,15 @@ public class PlatformMemberRefundService extends ServiceImpl<AdamMemberRefundMap
// 同步更新REDIS会员订单信息
String moKey = AdamRedisConst.INFO_MEMBER_ORDER + memberOrder.getUid();
ArrayList<AdamMemberOrderVo> vos = (ArrayList<AdamMemberOrderVo>) redisAdamUtil.get(moKey);
if (!CollectionUtils.isEmpty(vos)) {
int idx = IntStream.range(0, vos.size()).filter(i -> vos.get(i).getOrderNo().equals(memberOrder.getOrderNo())).findFirst().orElse(-1);
AdamMemberOrderVo vo = vos.get(idx);
vo.setState(5);
vo.setUpdatedAt(now);
vos.set(idx, vo);
boolean syncVo = redisAdamUtil.set(moKey, vos);
syncVo = redisAdamUtil.set(moKey, vos);
log.info("###会员退款回调处理成功:更新REDIS会员订单信息{}[orderNo:{},uid:{}]", syncVo ? "成功" : "失败", orderNo, memberOrder.getUid());
}
String umKey = AdamRedisConst.INFO_USER_MEMBER.concat(memberOrder.getUid());
AdamUserMemberVo userMemberVo = (AdamUserMemberVo) redisAdamUtil.get(umKey);
......@@ -127,6 +131,7 @@ public class PlatformMemberRefundService extends ServiceImpl<AdamMemberRefundMap
List<CandyUserCouponBasicDto> userCouponBasicDtoList = (List<CandyUserCouponBasicDto>) redisCandyUtil.get(uckey);
// 同步更新REDIS会员信息
if (null != userMemberVo) {
if (userMemberVo.getState() == 1) {// 非拉黑用户,则更新到期时间为减去订单标记的会员有效期的日期
LocalDateTime expiryAt = userMemberVo.getExpiryAt();
newExpiryAt = expiryAt.minusDays(memberOrder.getDays());
......@@ -165,6 +170,7 @@ public class PlatformMemberRefundService extends ServiceImpl<AdamMemberRefundMap
.collect(Collectors.toList());
}
}
}
// 同步删除REDIS用户会员权益券信息
if (!CollectionUtils.isEmpty(removeUcouponIdList)) {
List<String> finalRemoveUcouponIdList = removeUcouponIdList;
......
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