xiaohanzi 5 лет назад
Родитель
Сommit
f79275bf06
5 измененных файлов: 88 добавлений и 67 удалений
  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 Просмотреть файл

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


+ 17
- 0
mallinkCApi/src/main/java/com/iformall/config/RedisConfig.java Просмотреть файл

@@ -106,6 +106,23 @@ public class RedisConfig extends CachingConfigurerSupport {
template.setConnectionFactory(connectionFactory);
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")
public RedisTemplate<String, WxMall> getMallRedisTemplate(RedisConnectionFactory connectionFactory) {


+ 8
- 8
mallinkService/src/main/java/com/iformall/service/WxOrderService.java Просмотреть файл

@@ -60,7 +60,7 @@ public interface WxOrderService {
* @param payment
* @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
* @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);

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

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

// 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. 创建有价订单
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 user
*/
void actionAfterCouponOrderSuccess(WxOrder updateOrder, WxCoupon coupon, WxCUser user);
void actionAfterCouponOrderSuccess(WxOrder updateOrder, WxCoupon coupon, WxCUserBasicInfo user);

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

@@ -225,7 +225,7 @@ public interface WxOrderService {
/**
* 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);


+ 15
- 16
mallinkService/src/main/java/com/iformall/service/impl/WxCUserTagsServiceImpl.java Просмотреть файл

@@ -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;
Calendar endC = Calendar.getInstance();
@@ -357,13 +357,13 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService {
startC.setTime(new Date());
startC.add(Calendar.DAY_OF_YEAR, -30);
WxCouponOrder wxCouponOrder = new WxCouponOrder();
wxCouponOrder.setCUserId(param.getId());
wxCouponOrder.setCUserId(user.getId());
wxCouponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USED.getCode());
wxCouponOrder.setStartTime(startC.getTime());
wxCouponOrder.setEndTime(endC.getTime());

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

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

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

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

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

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

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

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

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

private List<WxTags> assignTypeId22(WxCUserBasicInfo user, WxCUser param) {
private List<WxTags> assignTypeId22(WxCUserBasicInfo user) {
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;
if (loginRate > 1F/4)
@@ -658,15 +658,14 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService {
}
break;
case ASSIGN_TAGS_TRIGGER_BUY:{
WxCUser param = (WxCUser) obj;
WxCUserBasicInfo user = wxCUserBasicInfoMapper.selectById(param.getUserId());
WxCUserBasicInfo user = (WxCUserBasicInfo) obj;
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);
}


+ 47
- 42
mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java Просмотреть файл

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

@Override
@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) {
logger.error("用户不存在");
@@ -979,7 +979,7 @@ public class WxOrderServiceImpl implements WxOrderService {
* @param order
* @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 valid_date = null;
int limit_days = Constant.WX_LIMIT_DAYS;
@@ -1049,8 +1049,8 @@ public class WxOrderServiceImpl implements WxOrderService {
couponOrder.updateTenantInfo(order);
couponOrder.setCouponId(order.getProductId());
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.setOrderId(order.getOrderNumber());
couponOrder.setExpiredTime(valid_date);
@@ -1141,7 +1141,7 @@ public class WxOrderServiceImpl implements WxOrderService {
* @param order
* @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 valid_date = null;
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})
public WxCouponOrder sendFreeCouponToUser(Long userId, Long couponId, WxCouponSendVo wxCouponSendVo) {
// check 用户状态
WxCUser user = null;
WxCUserBasicInfo user = null;
try {
user = wxCUserMapper.selectById(userId);
user = wxCUserBasicInfoMapper.selectById(userId);
} catch (Exception e) {
logger.error("userId : " + userId + ", e: " + e.getMessage());
}
@@ -1321,7 +1321,7 @@ public class WxOrderServiceImpl implements WxOrderService {
throw new MallinkException(ErrorCode.COUPON_IS_EMPTY);
}
// 检查用户
WxCUser user = wxCUserMapper.selectById(updateOrder.getCUserId());
WxCUserBasicInfo user = wxCUserBasicInfoMapper.selectById(updateOrder.getCUserId());
if (user == null) {
logger.error("用户不存在, userId: " + updateOrder.getCUserId());
throw new MallinkException(ErrorCode.USER_IS_EMPTY);
@@ -1358,12 +1358,12 @@ public class WxOrderServiceImpl implements WxOrderService {
return ret;
}

private void sendInsideOrderSuccessMsg(WxOrder updateOrder, WxCoupon coupon, WxCUser user) {
private void sendInsideOrderSuccessMsg(WxOrder updateOrder, WxCoupon coupon, WxCUserBasicInfo user) {
FmInsideOrderSuccessMsg orderSuccess = new FmInsideOrderSuccessMsg();
orderSuccess.setMsgType(EnumMsgRecordType.INSIDE_ORDER_SUCCESS.getCode());
orderSuccess.updateTenantInfo(updateOrder);
orderSuccess.setOrderId(updateOrder.getId());
orderSuccess.setCUserId(user.getUserId());
orderSuccess.setCUserId(user.getId());
orderSuccess.setCouponId(coupon.getId());
logger.info(">>>>>>>>>>>send sendInsideOrderSuccessMsg :"+orderSuccess);
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);
}
// 检查用户
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;
@@ -1398,11 +1403,11 @@ public class WxOrderServiceImpl implements WxOrderService {
}
if (jo != null) {
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 user
*/
public void actionAfterCouponOrderSuccess(WxOrder updateOrder, WxCoupon coupon, WxCUser user) {
public void actionAfterCouponOrderSuccess(WxOrder updateOrder, WxCoupon coupon, WxCUserBasicInfo user) {
/// TODO 晚上会定时打一下tag
wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_BUY, user);

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

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

@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;
// 防止同一用户重复抽奖(一分钟内)
// 1. 订单保存时 加入redis缓存,key --> action:userId:couponId , 时间1000ms
@@ -1935,12 +1940,12 @@ public class WxOrderServiceImpl implements WxOrderService {
if (checkCouponIsFree(coupon)) {
// 免费券
String key = StringUtils.join("action", ":", user.getId(), coupon.getId());
boolean hasKey = cUserTokenRedisTemplate.hasKey(key);
boolean hasKey = cUserBasicInfoRedisTemplate.hasKey(key);
if (hasKey) {
logger.error("用户正在下单,请求异常返回,user: {} " + JSON.toJSONString(user));
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);
if (order != null) {
@@ -1976,7 +1981,7 @@ public class WxOrderServiceImpl implements WxOrderService {

@Override
@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
userCouponMerchantCheck(user, coupon);
if (coupon.checkIsCreditCoupon()) {
@@ -2026,7 +2031,7 @@ public class WxOrderServiceImpl implements WxOrderService {

@Override
@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
userCouponMerchantCheck(user, coupon);
if (coupon.checkIsCreditCoupon()) {
@@ -2081,7 +2086,7 @@ public class WxOrderServiceImpl implements WxOrderService {
* @param user
* @param coupon
*/
private void saveFreeOrder(WxOrder record, WxCUser user, WxCoupon coupon) {
private void saveFreeOrder(WxOrder record, WxCUserBasicInfo user, WxCoupon coupon) {
Date curr = new Date();
// body
String bodyStr = "";
@@ -2098,7 +2103,7 @@ public class WxOrderServiceImpl implements WxOrderService {
record.updateTenantInfo(coupon);
record.setOrderNumber(orderNumber);
record.setProductId(coupon.getId());
record.setCUserId(user.getUserId());
record.setCUserId(user.getId());
record.setPaymentType(EnumPayType.PAY_PAYMENT.getCode());
record.setDetail(bodyStr);
record.setCreateDate(curr);
@@ -2107,7 +2112,7 @@ public class WxOrderServiceImpl implements WxOrderService {
wxOrderMapper.insert(record);
}

private void userCouponMerchantCheck(WxCUser user, WxCoupon coupon) throws MallinkException {
private void userCouponMerchantCheck(WxCUserBasicInfo user, WxCoupon coupon) throws MallinkException {
// 检查用户
if (user == null) {
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();
//记录操作人类型 操作人id
@@ -2144,10 +2149,10 @@ public class WxOrderServiceImpl implements WxOrderService {
creditHistory.setOperatorId(user.getOperatorId());
} else {
creditHistory.setOperatorType(EnumUserType.CUSER.getCode());
creditHistory.setOperatorId(user.getUserId());
creditHistory.setOperatorId(user.getId());
}
creditHistory.setCreditNum(coupon.getCreditPrice());
creditHistory.setCUserId(user.getUserId());
creditHistory.setCUserId(user.getId());
creditHistory.updateTenantInfo(coupon);
creditHistory.setCreditType(EnumScoreType.CHANGE_CREDIT.getCode());
creditHistory.setCouponId(coupon.getId());
@@ -2158,7 +2163,7 @@ public class WxOrderServiceImpl implements WxOrderService {

@Override
@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
userCouponMerchantCheck(user, coupon);
if (coupon.checkIsCreditCoupon()) {
@@ -2238,7 +2243,7 @@ public class WxOrderServiceImpl implements WxOrderService {
* @param coupon
* @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 left_total = total;
@@ -2263,7 +2268,7 @@ public class WxOrderServiceImpl implements WxOrderService {
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;
Date curr = new Date();

@@ -2302,7 +2307,7 @@ public class WxOrderServiceImpl implements WxOrderService {
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);
if (group.getStatus().equals(EnumOrderStatus.ORDER_STATUS_COOPERATING_COMPLETE.getCode())) {
logger.error("下订单拼团人数已满>>>" + orderGroupId);


Загрузка…
Отмена
Сохранить