Browse Source

update

release_toaliyun_real
xiaohanzi 5 years ago
parent
commit
f79275bf06
5 changed files with 88 additions and 67 deletions
  1. +1
    -1
      mallinkAdmin/src/main/resources/application-prod.yml
  2. +17
    -0
      mallinkCApi/src/main/java/com/iformall/config/RedisConfig.java
  3. +8
    -8
      mallinkService/src/main/java/com/iformall/service/WxOrderService.java
  4. +15
    -16
      mallinkService/src/main/java/com/iformall/service/impl/WxCUserTagsServiceImpl.java
  5. +47
    -42
      mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java

+ 1
- 1
mallinkAdmin/src/main/resources/application-prod.yml View File

@@ -54,7 +54,7 @@ spring:
keysecret: VfWqGb83qIQrS9us45utskl8itd7ry keysecret: VfWqGb83qIQrS9us45utskl8itd7ry
bucketname: formall bucketname: formall
filehost: malinkadmin filehost: malinkadmin
filedomain: https://formall.oss-accelerate.aliyuncs.com
filedomain: https://formall.oss-cn-beijing.aliyuncs.com
# EMAIL # EMAIL
mail: mail:
host: smtp.exmail.qq.com host: smtp.exmail.qq.com


+ 17
- 0
mallinkCApi/src/main/java/com/iformall/config/RedisConfig.java View File

@@ -106,6 +106,23 @@ public class RedisConfig extends CachingConfigurerSupport {
template.setConnectionFactory(connectionFactory); template.setConnectionFactory(connectionFactory);
return template; return template;
} }
@Bean("cUserBasicInfoRedisTemplate")
public RedisTemplate<String, WxCUserBasicInfo> getCUserBasicInfoRedisTemplate(RedisConnectionFactory connectionFactory) {
RedisTemplate<String, WxCUserBasicInfo> template = new RedisTemplate<String, WxCUserBasicInfo>();

Jackson2JsonRedisSerializer<WxCUserBasicInfo> j = new Jackson2JsonRedisSerializer<WxCUserBasicInfo>(WxCUserBasicInfo.class);
// value值的序列化
template.setValueSerializer(j);
template.setHashKeySerializer(j);

// key的序列化
template.setKeySerializer(new StringRedisSerializer());
template.setHashKeySerializer(new StringRedisSerializer());

template.setConnectionFactory(connectionFactory);
return template;
}


@Bean("mallRedisTemplate") @Bean("mallRedisTemplate")
public RedisTemplate<String, WxMall> getMallRedisTemplate(RedisConnectionFactory connectionFactory) { public RedisTemplate<String, WxMall> getMallRedisTemplate(RedisConnectionFactory connectionFactory) {


+ 8
- 8
mallinkService/src/main/java/com/iformall/service/WxOrderService.java View File

@@ -60,7 +60,7 @@ public interface WxOrderService {
* @param payment * @param payment
* @return 订单id * @return 订单id
*/ */
WxOrder saveMicroPayOrderV2(WxMerchantBUser user, WxCUser cUser, Integer payment);
WxOrder saveMicroPayOrderV2(WxMerchantBUser user, WxCUserBasicInfo cUser, Integer payment);


/** /**
* 商户码-储值卡支付 * 商户码-储值卡支付
@@ -185,7 +185,7 @@ public interface WxOrderService {
* @param coupon * @param coupon
* @return * @return
*/ */
WxOrder saveOrderForCoupon(WxCUser user, WxCoupon coupon, OrderSaveDto orderSaveDto, boolean isPress);
WxOrder saveOrderForCoupon(WxCUserBasicInfo user, WxCoupon coupon, OrderSaveDto orderSaveDto, boolean isPress);
void sendOrderSuccessActionMsg(WxOrder updateOrder); void sendOrderSuccessActionMsg(WxOrder updateOrder);


/** /**
@@ -194,9 +194,9 @@ public interface WxOrderService {
* @param coupon * @param coupon
* @return * @return
*/ */
WxOrder getUnPaidOrder(WxCUser cUser, WxCoupon coupon);
WxOrder getUnPaidOrder(WxCUserBasicInfo cUser, WxCoupon coupon);


int countCouponConditionType1(WxCUser user);
int countCouponConditionType1(WxCUserBasicInfo user);
/** /**
* 订单处理 * 订单处理
* 1. 检查coupon是否免费 * 1. 检查coupon是否免费
@@ -204,10 +204,10 @@ public interface WxOrderService {
boolean checkCouponIsFree(WxCoupon coupon); boolean checkCouponIsFree(WxCoupon coupon);


// 2. 创建免费订单, 领取 couponOrder // 2. 创建免费订单, 领取 couponOrder
WxOrder saveFreeOrderForCoupon(WxCUser user, WxCoupon coupon, Long couponChannelId, String formId, Long couponPasswordId);
WxOrder saveFreeOrderForCoupon(WxCUserBasicInfo user, WxCoupon coupon, Long couponChannelId, String formId, Long couponPasswordId);


// 3. 创建有价订单 // 3. 创建有价订单
WxOrder saveNoFreeOrderForCoupon(WxCUser user, WxCoupon coupon, Long couponChannelId, boolean isPress, Long orderGroupId, String formId);
WxOrder saveNoFreeOrderForCoupon(WxCUserBasicInfo user, WxCoupon coupon, Long couponChannelId, boolean isPress, Long orderGroupId, String formId);


/** /**
* 下订单成功后处理 * 下订单成功后处理
@@ -215,7 +215,7 @@ public interface WxOrderService {
* @param coupon * @param coupon
* @param user * @param user
*/ */
void actionAfterCouponOrderSuccess(WxOrder updateOrder, WxCoupon coupon, WxCUser user);
void actionAfterCouponOrderSuccess(WxOrder updateOrder, WxCoupon coupon, WxCUserBasicInfo user);


Map<String, Long> summary(WxOrderQueryVo wxOrderQueryVo); Map<String, Long> summary(WxOrderQueryVo wxOrderQueryVo);


@@ -225,7 +225,7 @@ public interface WxOrderService {
/** /**
* H5支付后, 券再注入 * H5支付后, 券再注入
*/ */
Long saveOuterOrderForCoupon(WxCUser user, WxCoupon coupon, Long couponChannelId, String formId, Long couponPasswordId);
Long saveOuterOrderForCoupon(WxCUserBasicInfo user, WxCoupon coupon, Long couponChannelId, String formId, Long couponPasswordId);
int countGroupOrder(Long groupId,boolean ignoreUnPay); int countGroupOrder(Long groupId,boolean ignoreUnPay);


+ 15
- 16
mallinkService/src/main/java/com/iformall/service/impl/WxCUserTagsServiceImpl.java View File

@@ -348,7 +348,7 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService {
} }




private List<WxTags> assignTypeId14(WxCUserBasicInfo user, WxCUser param)
private List<WxTags> assignTypeId14(WxCUserBasicInfo user)
{ {
List<WxTags> resList = null; List<WxTags> resList = null;
Calendar endC = Calendar.getInstance(); Calendar endC = Calendar.getInstance();
@@ -357,13 +357,13 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService {
startC.setTime(new Date()); startC.setTime(new Date());
startC.add(Calendar.DAY_OF_YEAR, -30); startC.add(Calendar.DAY_OF_YEAR, -30);
WxCouponOrder wxCouponOrder = new WxCouponOrder(); WxCouponOrder wxCouponOrder = new WxCouponOrder();
wxCouponOrder.setCUserId(param.getId());
wxCouponOrder.setCUserId(user.getId());
wxCouponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USED.getCode()); wxCouponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USED.getCode());
wxCouponOrder.setStartTime(startC.getTime()); wxCouponOrder.setStartTime(startC.getTime());
wxCouponOrder.setEndTime(endC.getTime()); wxCouponOrder.setEndTime(endC.getTime());


WxCardSpend wxCardSpend = new WxCardSpend(); WxCardSpend wxCardSpend = new WxCardSpend();
wxCardSpend.setOwnerId(param.getId());
wxCardSpend.setOwnerId(user.getId());
wxCardSpend.setStartdate(startC.getTime()); wxCardSpend.setStartdate(startC.getTime());
wxCardSpend.setEnddate(endC.getTime()); wxCardSpend.setEnddate(endC.getTime());


@@ -413,7 +413,7 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService {
return resList; return resList;
} }


private List<WxTags> assignTypeId17(WxCUserBasicInfo user, WxCUser param)
private List<WxTags> assignTypeId17(WxCUserBasicInfo user)
{ {
List<WxTags> resList = null; List<WxTags> resList = null;
Calendar endC = Calendar.getInstance(); Calendar endC = Calendar.getInstance();
@@ -422,14 +422,14 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService {
startC.setTime(new Date()); startC.setTime(new Date());
startC.add(Calendar.DAY_OF_YEAR, -30); startC.add(Calendar.DAY_OF_YEAR, -30);
WxCouponOrder wxCouponOrder = new WxCouponOrder(); WxCouponOrder wxCouponOrder = new WxCouponOrder();
wxCouponOrder.setCUserId(param.getId());
wxCouponOrder.setCUserId(user.getId());
wxCouponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USED.getCode()); wxCouponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USED.getCode());
wxCouponOrder.setStartTime(startC.getTime()); wxCouponOrder.setStartTime(startC.getTime());
wxCouponOrder.setEndTime(endC.getTime()); wxCouponOrder.setEndTime(endC.getTime());
wxCouponOrder.setBusinessId(EnumBusiness.BUSINESS_ID1.getCode()); wxCouponOrder.setBusinessId(EnumBusiness.BUSINESS_ID1.getCode());


WxCardSpend wxCardSpend = new WxCardSpend(); WxCardSpend wxCardSpend = new WxCardSpend();
wxCardSpend.setOwnerId(param.getId());
wxCardSpend.setOwnerId(user.getId());
wxCardSpend.setStartdate(startC.getTime()); wxCardSpend.setStartdate(startC.getTime());
wxCardSpend.setEnddate(endC.getTime()); wxCardSpend.setEnddate(endC.getTime());
wxCardSpend.setBusinessId(EnumBusiness.BUSINESS_ID1.getCode()); wxCardSpend.setBusinessId(EnumBusiness.BUSINESS_ID1.getCode());
@@ -480,7 +480,7 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService {
return resList; return resList;
} }


private List<WxTags> assignTypeId18(WxCUserBasicInfo user, WxCUser param) {
private List<WxTags> assignTypeId18(WxCUserBasicInfo user) {
List<WxTags> resList = null; List<WxTags> resList = null;


final int WORK_DAY = 0; final int WORK_DAY = 0;
@@ -500,13 +500,13 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService {
startC.add(Calendar.DAY_OF_YEAR, -30); startC.add(Calendar.DAY_OF_YEAR, -30);


WxCouponOrder wxCouponOrder = new WxCouponOrder(); WxCouponOrder wxCouponOrder = new WxCouponOrder();
wxCouponOrder.setCUserId(param.getId());
wxCouponOrder.setCUserId(user.getId());
wxCouponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USED.getCode()); wxCouponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USED.getCode());
wxCouponOrder.setStartTime(startC.getTime()); wxCouponOrder.setStartTime(startC.getTime());
wxCouponOrder.setEndTime(endC.getTime()); wxCouponOrder.setEndTime(endC.getTime());


WxCardSpend wxCardSpend = new WxCardSpend(); WxCardSpend wxCardSpend = new WxCardSpend();
wxCardSpend.setOwnerId(param.getId());
wxCardSpend.setOwnerId(user.getId());
wxCardSpend.setStartdate(startC.getTime()); wxCardSpend.setStartdate(startC.getTime());
wxCardSpend.setEnddate(endC.getTime()); wxCardSpend.setEnddate(endC.getTime());


@@ -573,9 +573,9 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService {
return resList; return resList;
} }


private List<WxTags> assignTypeId22(WxCUserBasicInfo user, WxCUser param) {
private List<WxTags> assignTypeId22(WxCUserBasicInfo user) {
List<WxTags> resList = null; List<WxTags> resList = null;
int days = (int) ((new Date().getTime() - param.getCreateDate().getTime()) / (1000*3600*24));
int days = (int) ((new Date().getTime() - user.getCreateDate().getTime()) / (1000*3600*24));


float loginRate = (float)param.getLoginCount()/days; float loginRate = (float)param.getLoginCount()/days;
if (loginRate > 1F/4) if (loginRate > 1F/4)
@@ -658,15 +658,14 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService {
} }
break; break;
case ASSIGN_TAGS_TRIGGER_BUY:{ case ASSIGN_TAGS_TRIGGER_BUY:{
WxCUser param = (WxCUser) obj;
WxCUserBasicInfo user = wxCUserBasicInfoMapper.selectById(param.getUserId());
WxCUserBasicInfo user = (WxCUserBasicInfo) obj;
if (user != null) { if (user != null) {
//消费类别 //消费类别
resList = assignTypeId14(user, param);
resList = assignTypeId14(user);
//饮食偏好 //饮食偏好
resList = assignTypeId17(user, param);
resList = assignTypeId17(user);
//消费时段 //消费时段
resList = assignTypeId18(user, param);
resList = assignTypeId18(user);
//消费频度 //消费频度
resList = assignTypeId22(user, param); resList = assignTypeId22(user, param);
} }


+ 47
- 42
mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java View File

@@ -38,7 +38,7 @@ import com.iformall.common.ResultData;
import com.iformall.domain.dto.OrderSaveDto; import com.iformall.domain.dto.OrderSaveDto;
import com.iformall.domain.dto.WxSharingOrderDto; import com.iformall.domain.dto.WxSharingOrderDto;
import com.iformall.domain.po.WxAppinfo; import com.iformall.domain.po.WxAppinfo;
import com.iformall.domain.po.WxCUser;
import com.iformall.domain.po.WxCUserBasicInfo;
import com.iformall.domain.po.WxCardInfo; import com.iformall.domain.po.WxCardInfo;
import com.iformall.domain.po.WxCoupon; import com.iformall.domain.po.WxCoupon;
import com.iformall.domain.po.WxCouponChannel; import com.iformall.domain.po.WxCouponChannel;
@@ -363,7 +363,7 @@ public class WxOrderServiceImpl implements WxOrderService {
* @param counpon * @param counpon
* @return * @return
*/ */
private int getUserOrderGroupCount(WxCUser user, WxCoupon counpon) {
private int getUserOrderGroupCount(WxCUserBasicInfo user, WxCoupon counpon) {
// + Order 待支付 // + Order 待支付
try { try {
WxOrder orderQ = new WxOrder(); WxOrder orderQ = new WxOrder();
@@ -388,14 +388,14 @@ public class WxOrderServiceImpl implements WxOrderService {
* @param counpon * @param counpon
* @return * @return
*/ */
private int getUserOrderCount(WxCUser user, WxCoupon counpon) {
private int getUserOrderCount(WxCUserBasicInfo user, WxCoupon counpon) {
// + Order 待支付 // + Order 待支付
try { try {
WxOrder orderQ = new WxOrder(); WxOrder orderQ = new WxOrder();
orderQ.updateTenantInfo(counpon); orderQ.updateTenantInfo(counpon);
orderQ.setProductId(counpon.getId()); orderQ.setProductId(counpon.getId());
orderQ.setType(EnumOrderType.COUPON.getCode()); orderQ.setType(EnumOrderType.COUPON.getCode());
orderQ.setCUserId(user.getUserId());
orderQ.setCUserId(user.getId());
List<Integer> statusS = new ArrayList<>(); List<Integer> statusS = new ArrayList<>();
statusS.add(EnumOrderStatus.ORDER_STATUS_PRESSING.getCode()); statusS.add(EnumOrderStatus.ORDER_STATUS_PRESSING.getCode());
statusS.add(EnumOrderStatus.ORDER_STATUS_PRESS_COMPLETE.getCode()); statusS.add(EnumOrderStatus.ORDER_STATUS_PRESS_COMPLETE.getCode());
@@ -480,7 +480,7 @@ public class WxOrderServiceImpl implements WxOrderService {
* @param counpon * @param counpon
* @return * @return
*/ */
private int getUserCouponOrderCount(WxCUser user, WxCoupon counpon) {
private int getUserCouponOrderCount(WxCUserBasicInfo user, WxCoupon counpon) {
// + couponOrder ---待使用 // + couponOrder ---待使用
try { try {
WxCouponOrder couponOrderQ = new WxCouponOrder(); WxCouponOrder couponOrderQ = new WxCouponOrder();
@@ -506,7 +506,7 @@ public class WxOrderServiceImpl implements WxOrderService {
* @param couponIdStr * @param couponIdStr
* @param wxCouponSendVo * @param wxCouponSendVo
*/ */
private void stockMerchantReduce(WxCUser user, WxCoupon coupon, String couponIdStr, WxCouponSendVo wxCouponSendVo) {
private void stockMerchantReduce(WxCUserBasicInfo user, WxCoupon coupon, String couponIdStr, WxCouponSendVo wxCouponSendVo) {
long time = System.currentTimeMillis() + RedisLock.LONG_TIMEOUT; long time = System.currentTimeMillis() + RedisLock.LONG_TIMEOUT;
String timeStr = String.valueOf(time); String timeStr = String.valueOf(time);
// 库存加锁 // 库存加锁
@@ -579,7 +579,7 @@ public class WxOrderServiceImpl implements WxOrderService {
* @param coupon * @param coupon
* @param couponIdStr * @param couponIdStr
*/ */
private void stockReduce(WxCUser user, WxCoupon coupon, String couponIdStr) {
private void stockReduce(WxCUserBasicInfo user, WxCoupon coupon, String couponIdStr) {
//如果缓存中不存在这个key,则从coupon中取 //如果缓存中不存在这个key,则从coupon中取
if(!redisLock.hasCouponStockCache(coupon.getId())) { if(!redisLock.hasCouponStockCache(coupon.getId())) {
//此处需要加锁,防止并发设置 //此处需要加锁,防止并发设置
@@ -880,7 +880,7 @@ public class WxOrderServiceImpl implements WxOrderService {


@Override @Override
@Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class})
public WxOrder saveMicroPayOrderV2(WxMerchantBUser user, WxCUser cUser, Integer payment) {
public WxOrder saveMicroPayOrderV2(WxMerchantBUser user, WxCUserBasicInfo cUser, Integer payment) {
// 检查用户 // 检查用户
if (user == null) { if (user == null) {
logger.error("用户不存在"); logger.error("用户不存在");
@@ -979,7 +979,7 @@ public class WxOrderServiceImpl implements WxOrderService {
* @param order * @param order
* @param coupon * @param coupon
*/ */
private WxCouponOrder createCouponOrder(WxOrder order, WxCUser user, WxCoupon coupon, Long couponPasswordId) {
private WxCouponOrder createCouponOrder(WxOrder order, WxCUserBasicInfo user, WxCoupon coupon, Long couponPasswordId) {
Date curr = new Date(); Date curr = new Date();
Date valid_date = null; Date valid_date = null;
int limit_days = Constant.WX_LIMIT_DAYS; int limit_days = Constant.WX_LIMIT_DAYS;
@@ -1049,8 +1049,8 @@ public class WxOrderServiceImpl implements WxOrderService {
couponOrder.updateTenantInfo(order); couponOrder.updateTenantInfo(order);
couponOrder.setCouponId(order.getProductId()); couponOrder.setCouponId(order.getProductId());
couponOrder.setCouponType(coupon.getType()); couponOrder.setCouponType(coupon.getType());
couponOrder.setCUserId(user.getUserId());
couponOrder.setOwnerId(user.getUserId());
couponOrder.setCUserId(user.getId());
couponOrder.setOwnerId(user.getId());
couponOrder.setAutoRefund(coupon.getAutoRefund()); couponOrder.setAutoRefund(coupon.getAutoRefund());
couponOrder.setOrderId(order.getOrderNumber()); couponOrder.setOrderId(order.getOrderNumber());
couponOrder.setExpiredTime(valid_date); couponOrder.setExpiredTime(valid_date);
@@ -1141,7 +1141,7 @@ public class WxOrderServiceImpl implements WxOrderService {
* @param order * @param order
* @param coupon * @param coupon
*/ */
private WxCouponOrder createCouponOrderForOuter(WxOrder order, WxCUser user, WxCoupon coupon, Long couponPasswordId) {
private WxCouponOrder createCouponOrderForOuter(WxOrder order, WxCUserBasicInfo user, WxCoupon coupon, Long couponPasswordId) {
Date curr = new Date(); Date curr = new Date();
Date valid_date = null; Date valid_date = null;
int limit_days = Constant.WX_LIMIT_DAYS; int limit_days = Constant.WX_LIMIT_DAYS;
@@ -1222,9 +1222,9 @@ public class WxOrderServiceImpl implements WxOrderService {
@Transactional(propagation = Propagation.NESTED, readOnly = false, rollbackFor = {Exception.class}) @Transactional(propagation = Propagation.NESTED, readOnly = false, rollbackFor = {Exception.class})
public WxCouponOrder sendFreeCouponToUser(Long userId, Long couponId, WxCouponSendVo wxCouponSendVo) { public WxCouponOrder sendFreeCouponToUser(Long userId, Long couponId, WxCouponSendVo wxCouponSendVo) {
// check 用户状态 // check 用户状态
WxCUser user = null;
WxCUserBasicInfo user = null;
try { try {
user = wxCUserMapper.selectById(userId);
user = wxCUserBasicInfoMapper.selectById(userId);
} catch (Exception e) { } catch (Exception e) {
logger.error("userId : " + userId + ", e: " + e.getMessage()); logger.error("userId : " + userId + ", e: " + e.getMessage());
} }
@@ -1321,7 +1321,7 @@ public class WxOrderServiceImpl implements WxOrderService {
throw new MallinkException(ErrorCode.COUPON_IS_EMPTY); throw new MallinkException(ErrorCode.COUPON_IS_EMPTY);
} }
// 检查用户 // 检查用户
WxCUser user = wxCUserMapper.selectById(updateOrder.getCUserId());
WxCUserBasicInfo user = wxCUserBasicInfoMapper.selectById(updateOrder.getCUserId());
if (user == null) { if (user == null) {
logger.error("用户不存在, userId: " + updateOrder.getCUserId()); logger.error("用户不存在, userId: " + updateOrder.getCUserId());
throw new MallinkException(ErrorCode.USER_IS_EMPTY); throw new MallinkException(ErrorCode.USER_IS_EMPTY);
@@ -1358,12 +1358,12 @@ public class WxOrderServiceImpl implements WxOrderService {
return ret; return ret;
} }


private void sendInsideOrderSuccessMsg(WxOrder updateOrder, WxCoupon coupon, WxCUser user) {
private void sendInsideOrderSuccessMsg(WxOrder updateOrder, WxCoupon coupon, WxCUserBasicInfo user) {
FmInsideOrderSuccessMsg orderSuccess = new FmInsideOrderSuccessMsg(); FmInsideOrderSuccessMsg orderSuccess = new FmInsideOrderSuccessMsg();
orderSuccess.setMsgType(EnumMsgRecordType.INSIDE_ORDER_SUCCESS.getCode()); orderSuccess.setMsgType(EnumMsgRecordType.INSIDE_ORDER_SUCCESS.getCode());
orderSuccess.updateTenantInfo(updateOrder); orderSuccess.updateTenantInfo(updateOrder);
orderSuccess.setOrderId(updateOrder.getId()); orderSuccess.setOrderId(updateOrder.getId());
orderSuccess.setCUserId(user.getUserId());
orderSuccess.setCUserId(user.getId());
orderSuccess.setCouponId(coupon.getId()); orderSuccess.setCouponId(coupon.getId());
logger.info(">>>>>>>>>>>send sendInsideOrderSuccessMsg :"+orderSuccess); logger.info(">>>>>>>>>>>send sendInsideOrderSuccessMsg :"+orderSuccess);
mqBaseProducer.sendMessage(orderSuccess, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); mqBaseProducer.sendMessage(orderSuccess, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode());
@@ -1382,11 +1382,16 @@ public class WxOrderServiceImpl implements WxOrderService {
throw new MallinkException(ErrorCode.COUPON_IS_TAKE_OFF); throw new MallinkException(ErrorCode.COUPON_IS_TAKE_OFF);
} }
// 检查用户 // 检查用户
WxCUser user = wxCUserMapper.selectById(updateOrder.getCUserId());
if (user == null) {
logger.error("用户不存在, userId: " + updateOrder.getCUserId());
throw new MallinkException(ErrorCode.USER_IS_EMPTY);
}
WxCUserBasicInfo basicUser = wxCUserBasicInfoMapper.selectById(updateOrder.getCUserId());
if (basicUser == null) {
logger.error("会员不存在, userId: " + updateOrder.getCUserId());
throw new MallinkException(ErrorCode.USER_IS_EMPTY);
}
// WxCUser user = wxCUserMapper.selectById(updateOrder.getCUserId());
// if (user == null) {
// logger.error("用户不存在, userId: " + updateOrder.getCUserId());
// throw new MallinkException(ErrorCode.USER_IS_EMPTY);
// }


// 记录活动 // 记录活动
JSONObject jo = null; JSONObject jo = null;
@@ -1398,11 +1403,11 @@ public class WxOrderServiceImpl implements WxOrderService {
} }
if (jo != null) { if (jo != null) {
if (jo.getIntValue("type") == EnumCouponConditionType.NEW_MEMBER.getCode()) { if (jo.getIntValue("type") == EnumCouponConditionType.NEW_MEMBER.getCode()) {
wxCUserBasicInfoMapper.incActRecordById(user.getUserId());
wxCUserBasicInfoMapper.incActRecordById(basicUser.getId());
} }
} }


sendInsideOrderSuccessMsg(updateOrder, coupon, user);
sendInsideOrderSuccessMsg(updateOrder, coupon, basicUser);
} }


/** /**
@@ -1412,7 +1417,7 @@ public class WxOrderServiceImpl implements WxOrderService {
* @param coupon * @param coupon
* @param user * @param user
*/ */
public void actionAfterCouponOrderSuccess(WxOrder updateOrder, WxCoupon coupon, WxCUser user) {
public void actionAfterCouponOrderSuccess(WxOrder updateOrder, WxCoupon coupon, WxCUserBasicInfo user) {
/// TODO 晚上会定时打一下tag /// TODO 晚上会定时打一下tag
wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_BUY, user); wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_BUY, user);


@@ -1922,11 +1927,11 @@ public class WxOrderServiceImpl implements WxOrderService {
} }


@Autowired @Autowired
@Qualifier("cuserTokenRedisTemplate")
RedisTemplate<String, WxCUser> cUserTokenRedisTemplate;
@Qualifier("cUserBasicInfoRedisTemplate")
RedisTemplate<String, WxCUserBasicInfo> cUserBasicInfoRedisTemplate;


@Override @Override
public WxOrder saveOrderForCoupon(WxCUser user, WxCoupon coupon, OrderSaveDto orderSaveDto, boolean isPress) {
public WxOrder saveOrderForCoupon(WxCUserBasicInfo user, WxCoupon coupon, OrderSaveDto orderSaveDto, boolean isPress) {
WxOrder order = null; WxOrder order = null;
// 防止同一用户重复抽奖(一分钟内) // 防止同一用户重复抽奖(一分钟内)
// 1. 订单保存时 加入redis缓存,key --> action:userId:couponId , 时间1000ms // 1. 订单保存时 加入redis缓存,key --> action:userId:couponId , 时间1000ms
@@ -1935,12 +1940,12 @@ public class WxOrderServiceImpl implements WxOrderService {
if (checkCouponIsFree(coupon)) { if (checkCouponIsFree(coupon)) {
// 免费券 // 免费券
String key = StringUtils.join("action", ":", user.getId(), coupon.getId()); String key = StringUtils.join("action", ":", user.getId(), coupon.getId());
boolean hasKey = cUserTokenRedisTemplate.hasKey(key);
boolean hasKey = cUserBasicInfoRedisTemplate.hasKey(key);
if (hasKey) { if (hasKey) {
logger.error("用户正在下单,请求异常返回,user: {} " + JSON.toJSONString(user)); logger.error("用户正在下单,请求异常返回,user: {} " + JSON.toJSONString(user));
throw new MallinkException(ErrorCode.SYS_REPEAT_SUBMIT_EXCEPTION); throw new MallinkException(ErrorCode.SYS_REPEAT_SUBMIT_EXCEPTION);
} }
cUserTokenRedisTemplate.opsForValue().set(key, user, 1000, TimeUnit.MILLISECONDS);
cUserBasicInfoRedisTemplate.opsForValue().set(key, user, 1000, TimeUnit.MILLISECONDS);
order = saveFreeOrderForCoupon(user, coupon, orderSaveDto.getCouponChannelId(), orderSaveDto.getFormId(), null); order = saveFreeOrderForCoupon(user, coupon, orderSaveDto.getCouponChannelId(), orderSaveDto.getFormId(), null);
if (order != null) { if (order != null) {
@@ -1976,7 +1981,7 @@ public class WxOrderServiceImpl implements WxOrderService {


@Override @Override
@Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class})
public WxOrder saveFreeOrderForCoupon(WxCUser user, WxCoupon coupon, Long couponChannelId, String formId, Long couponPasswordId) {
public WxOrder saveFreeOrderForCoupon(WxCUserBasicInfo user, WxCoupon coupon, Long couponChannelId, String formId, Long couponPasswordId) {
// 1. check user info and coupon info // 1. check user info and coupon info
userCouponMerchantCheck(user, coupon); userCouponMerchantCheck(user, coupon);
if (coupon.checkIsCreditCoupon()) { if (coupon.checkIsCreditCoupon()) {
@@ -2026,7 +2031,7 @@ public class WxOrderServiceImpl implements WxOrderService {


@Override @Override
@Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class})
public Long saveOuterOrderForCoupon(WxCUser user, WxCoupon coupon, Long couponChannelId, String formId, Long couponPasswordId) {
public Long saveOuterOrderForCoupon(WxCUserBasicInfo user, WxCoupon coupon, Long couponChannelId, String formId, Long couponPasswordId) {
// 1. check user info and coupon info // 1. check user info and coupon info
userCouponMerchantCheck(user, coupon); userCouponMerchantCheck(user, coupon);
if (coupon.checkIsCreditCoupon()) { if (coupon.checkIsCreditCoupon()) {
@@ -2081,7 +2086,7 @@ public class WxOrderServiceImpl implements WxOrderService {
* @param user * @param user
* @param coupon * @param coupon
*/ */
private void saveFreeOrder(WxOrder record, WxCUser user, WxCoupon coupon) {
private void saveFreeOrder(WxOrder record, WxCUserBasicInfo user, WxCoupon coupon) {
Date curr = new Date(); Date curr = new Date();
// body // body
String bodyStr = ""; String bodyStr = "";
@@ -2098,7 +2103,7 @@ public class WxOrderServiceImpl implements WxOrderService {
record.updateTenantInfo(coupon); record.updateTenantInfo(coupon);
record.setOrderNumber(orderNumber); record.setOrderNumber(orderNumber);
record.setProductId(coupon.getId()); record.setProductId(coupon.getId());
record.setCUserId(user.getUserId());
record.setCUserId(user.getId());
record.setPaymentType(EnumPayType.PAY_PAYMENT.getCode()); record.setPaymentType(EnumPayType.PAY_PAYMENT.getCode());
record.setDetail(bodyStr); record.setDetail(bodyStr);
record.setCreateDate(curr); record.setCreateDate(curr);
@@ -2107,7 +2112,7 @@ public class WxOrderServiceImpl implements WxOrderService {
wxOrderMapper.insert(record); wxOrderMapper.insert(record);
} }


private void userCouponMerchantCheck(WxCUser user, WxCoupon coupon) throws MallinkException {
private void userCouponMerchantCheck(WxCUserBasicInfo user, WxCoupon coupon) throws MallinkException {
// 检查用户 // 检查用户
if (user == null) { if (user == null) {
logger.error("用户不存在"); logger.error("用户不存在");
@@ -2135,7 +2140,7 @@ public class WxOrderServiceImpl implements WxOrderService {
} }
} }


private void creditPay(WxCUser user, WxCoupon coupon) {
private void creditPay(WxCUserBasicInfo user, WxCoupon coupon) {
//-------此处为【积分支付】记录增加积分操作------- //-------此处为【积分支付】记录增加积分操作-------
WxCreditHistory creditHistory = new WxCreditHistory(); WxCreditHistory creditHistory = new WxCreditHistory();
//记录操作人类型 操作人id //记录操作人类型 操作人id
@@ -2144,10 +2149,10 @@ public class WxOrderServiceImpl implements WxOrderService {
creditHistory.setOperatorId(user.getOperatorId()); creditHistory.setOperatorId(user.getOperatorId());
} else { } else {
creditHistory.setOperatorType(EnumUserType.CUSER.getCode()); creditHistory.setOperatorType(EnumUserType.CUSER.getCode());
creditHistory.setOperatorId(user.getUserId());
creditHistory.setOperatorId(user.getId());
} }
creditHistory.setCreditNum(coupon.getCreditPrice()); creditHistory.setCreditNum(coupon.getCreditPrice());
creditHistory.setCUserId(user.getUserId());
creditHistory.setCUserId(user.getId());
creditHistory.updateTenantInfo(coupon); creditHistory.updateTenantInfo(coupon);
creditHistory.setCreditType(EnumScoreType.CHANGE_CREDIT.getCode()); creditHistory.setCreditType(EnumScoreType.CHANGE_CREDIT.getCode());
creditHistory.setCouponId(coupon.getId()); creditHistory.setCouponId(coupon.getId());
@@ -2158,7 +2163,7 @@ public class WxOrderServiceImpl implements WxOrderService {


@Override @Override
@Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class})
public WxOrder saveNoFreeOrderForCoupon(WxCUser user, WxCoupon coupon, Long couponChannelId, boolean isPress, Long orderGroupId, String formId) {
public WxOrder saveNoFreeOrderForCoupon(WxCUserBasicInfo user, WxCoupon coupon, Long couponChannelId, boolean isPress, Long orderGroupId, String formId) {
// 1. check user info and coupon info // 1. check user info and coupon info
userCouponMerchantCheck(user, coupon); userCouponMerchantCheck(user, coupon);
if (coupon.checkIsCreditCoupon()) { if (coupon.checkIsCreditCoupon()) {
@@ -2238,7 +2243,7 @@ public class WxOrderServiceImpl implements WxOrderService {
* @param coupon * @param coupon
* @param orderNumber * @param orderNumber
*/ */
private void firstPress(WxOrder record, WxCUser user, WxCoupon coupon, Long orderNumber) {
private void firstPress(WxOrder record, WxCUserBasicInfo user, WxCoupon coupon, Long orderNumber) {
// 保存砍价信息 // 保存砍价信息
int total = coupon.getPrice() - coupon.getSalePrice(); int total = coupon.getPrice() - coupon.getSalePrice();
int left_total = total; int left_total = total;
@@ -2263,7 +2268,7 @@ public class WxOrderServiceImpl implements WxOrderService {
wxOrderMapper.updateById(orderUpdatePress); wxOrderMapper.updateById(orderUpdatePress);
} }


private Long saveNoFreeOrder(WxOrder record, WxCUser user, WxCoupon coupon, boolean isPress) {
private Long saveNoFreeOrder(WxOrder record, WxCUserBasicInfo user, WxCoupon coupon, boolean isPress) {
Long orderNumber; Long orderNumber;
Date curr = new Date(); Date curr = new Date();


@@ -2302,7 +2307,7 @@ public class WxOrderServiceImpl implements WxOrderService {
return orderNumber; return orderNumber;
} }


private void checkOrderGroup(WxCUser user, Long orderGroupId,WxCoupon coupon) {
private void checkOrderGroup(WxCUserBasicInfo user, Long orderGroupId,WxCoupon coupon) {
WxOrderGroup group = wxOrderGroupMapper.selectById(orderGroupId); WxOrderGroup group = wxOrderGroupMapper.selectById(orderGroupId);
if (group.getStatus().equals(EnumOrderStatus.ORDER_STATUS_COOPERATING_COMPLETE.getCode())) { if (group.getStatus().equals(EnumOrderStatus.ORDER_STATUS_COOPERATING_COMPLETE.getCode())) {
logger.error("下订单拼团人数已满>>>" + orderGroupId); logger.error("下订单拼团人数已满>>>" + orderGroupId);


Loading…
Cancel
Save