Просмотр исходного кода

Merge branch 'for_member_only' of https://git.youlane.cn/server/formallProject into for_member_only

release_toaliyun_real
xhxu 5 лет назад
Родитель
Сommit
5a7ce8adde
11 измененных файлов: 185 добавлений и 106 удалений
  1. +17
    -1
      mallinkAdmin/src/main/java/com/iformall/controller/market/WxOrderController.java
  2. +1
    -1
      mallinkAdmin/src/main/resources/application-prod.yml
  3. +9
    -1
      mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java
  4. +17
    -0
      mallinkCApi/src/main/java/com/iformall/config/RedisConfig.java
  5. +18
    -1
      mallinkCApi/src/main/java/com/iformall/controller/WxCouponPasswordController.java
  6. +12
    -3
      mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java
  7. +11
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxCUser.java
  8. +8
    -8
      mallinkService/src/main/java/com/iformall/service/WxOrderService.java
  9. +37
    -41
      mallinkService/src/main/java/com/iformall/service/impl/WxCUserTagsServiceImpl.java
  10. +51
    -46
      mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java
  11. +4
    -4
      mallinkService/src/main/java/com/iformall/service/msg/impl/FmInsideOrderSuccessMsgServiceImpl.java

+ 17
- 1
mallinkAdmin/src/main/java/com/iformall/controller/market/WxOrderController.java Просмотреть файл

@@ -8,6 +8,7 @@ import com.iformall.common.ResultData;
import com.iformall.controller.base.BaseController; import com.iformall.controller.base.BaseController;
import com.iformall.domain.dto.OrderSaveDto; import com.iformall.domain.dto.OrderSaveDto;
import com.iformall.domain.po.WxCUser; import com.iformall.domain.po.WxCUser;
import com.iformall.domain.po.WxCUserBasicInfo;
import com.iformall.domain.po.WxCoupon; import com.iformall.domain.po.WxCoupon;
import com.iformall.domain.po.WxCouponChannel; import com.iformall.domain.po.WxCouponChannel;
import com.iformall.domain.po.WxOrder; import com.iformall.domain.po.WxOrder;
@@ -18,6 +19,7 @@ import com.iformall.enums.EnumCouponChannelStatus;
import com.iformall.enums.EnumCouponChannelType; import com.iformall.enums.EnumCouponChannelType;
import com.iformall.enums.EnumUserType; import com.iformall.enums.EnumUserType;
import com.iformall.exception.MallinkException; import com.iformall.exception.MallinkException;
import com.iformall.service.WxCUserBasicInfoService;
import com.iformall.service.WxCUserService; import com.iformall.service.WxCUserService;
import com.iformall.service.WxCouponChannelService; import com.iformall.service.WxCouponChannelService;
import com.iformall.service.WxCouponService; import com.iformall.service.WxCouponService;
@@ -56,6 +58,9 @@ public class WxOrderController extends BaseController {


@Autowired @Autowired
private WxCouponService wxCouponService; private WxCouponService wxCouponService;
@Autowired
private WxCUserBasicInfoService wxCUserBasicInfoService;


@ApiOperation("分页列表接口") @ApiOperation("分页列表接口")
@GetMapping("list") @GetMapping("list")
@@ -166,6 +171,10 @@ public class WxOrderController extends BaseController {


try { try {
WxCUser user = wxCUserService.getById(orderSaveDto.getUserId()); WxCUser user = wxCUserService.getById(orderSaveDto.getUserId());
if(null == user) {
logger.error("wxcuser未找到:"+orderSaveDto.getUserId());
return new ResultData(ErrorCode.COUPON_IS_EMPTY);
}
//用于标记当前操作人为A端用户 //用于标记当前操作人为A端用户
user.setOperatorType(EnumUserType.MALLUSER.getCode()); user.setOperatorType(EnumUserType.MALLUSER.getCode());
user.setOperatorId(getUserId()); user.setOperatorId(getUserId());
@@ -177,8 +186,15 @@ public class WxOrderController extends BaseController {
if (!wxOrderService.checkCouponIsFree(coupon)) { if (!wxOrderService.checkCouponIsFree(coupon)) {
return new ResultData(ErrorCode.COUPON_IS_NOT_FREE); return new ResultData(ErrorCode.COUPON_IS_NOT_FREE);
} }
if(!user.isBasicInfo()) {
return new ResultData(ErrorCode.USER_IS_NOT_MEMBER);
}
WxCUserBasicInfo basicInfo = wxCUserBasicInfoService.getById(orderSaveDto.getUserId());
if (null == basicInfo) {
return new ResultData(ErrorCode.COUPON_IS_EMPTY.getCode(),"会员用户未找到. "+orderSaveDto.getUserId());
}
// 免费券 // 免费券
order = wxOrderService.saveFreeOrderForCoupon(user, coupon, orderSaveDto.getCouponChannelId(), orderSaveDto.getFormId(), null);
order = wxOrderService.saveFreeOrderForCoupon(basicInfo, coupon, orderSaveDto.getCouponChannelId(), orderSaveDto.getFormId(), null);
return new ResultData(order); return new ResultData(order);
} catch (MallinkException e) { } catch (MallinkException e) {
logger.error(e.getMessage()); logger.error(e.getMessage());


+ 1
- 1
mallinkAdmin/src/main/resources/application-prod.yml Просмотреть файл

@@ -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


+ 9
- 1
mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java Просмотреть файл

@@ -342,7 +342,15 @@ public class WxMicroPayController extends BaseController {


WxOrder order = null; WxOrder order = null;
try { try {
order = wxOrderService.saveMicroPayOrderV2(user, cUser, payment);
if (!cUser.isBasicInfo()) {
return new ResultData(ErrorCode.USER_IS_NOT_MEMBER);
}
WxCUserBasicInfo basicInfo = wxCUserBasicInfoService.getById(cUser.getUserId());
if ( null == basicInfo) {
logger.error("会员用户未找到."+cUser.getUserId());
return new ResultData(ErrorCode.USER_IS_EMPTY.getCode(),"会员用户未找到."+cUser.getUserId());
}
order = wxOrderService.saveMicroPayOrderV2(user, basicInfo, payment);
} catch (MallinkException e) { } catch (MallinkException e) {
logger.error("saveMicopayOrder 1" + e.getMessage()); logger.error("saveMicopayOrder 1" + e.getMessage());
return new ResultData(e.getErrorCode(), e.getMessage()); return new ResultData(e.getErrorCode(), e.getMessage());


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

@@ -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) {


+ 18
- 1
mallinkCApi/src/main/java/com/iformall/controller/WxCouponPasswordController.java Просмотреть файл

@@ -32,6 +32,9 @@ public class WxCouponPasswordController extends BaseController {


@Autowired @Autowired
private WxOrderService orderService; private WxOrderService orderService;
@Autowired
private WxCUserBasicInfoService userService;


@ApiOperation(value = "根据卡密领卡", notes = "{\"password\":\"String\",\"formId\":\"String\"}") @ApiOperation(value = "根据卡密领卡", notes = "{\"password\":\"String\",\"formId\":\"String\"}")
@PostMapping("getCouponOrderByPassword") @PostMapping("getCouponOrderByPassword")
@@ -59,6 +62,20 @@ public class WxCouponPasswordController extends BaseController {
} }


WxCUser cuUser = getUser(); WxCUser cuUser = getUser();
if (null == cuUser ) {
return new ResultData(ErrorCode.USER_IS_EMPTY.getCode(), "用户信息失效,请重新登陆");
}
if(!cuUser.isBasicInfo()) {
return new ResultData(ErrorCode.USER_IS_NOT_MEMBER);
}
WxCUserBasicInfo user = userService.getById(cuUser.getUserId());
if(user == null) {
logger.error("会员用户未找到: " + cuUser.getUserId());
throw new MallinkException(ErrorCode.USER_IS_EMPTY.getCode(), "会员用户未找到" + cuUser.getUserId());
}
WxCoupon coupon = couponService.getById(couponPassword.getCouponId()); WxCoupon coupon = couponService.getById(couponPassword.getCouponId());
if (coupon == null) { if (coupon == null) {
return new ResultData(ErrorCode.COUPON_IS_EMPTY); return new ResultData(ErrorCode.COUPON_IS_EMPTY);
@@ -75,7 +92,7 @@ public class WxCouponPasswordController extends BaseController {


// 3. 领取free coupon // 3. 领取free coupon
try { try {
WxOrder order = orderService.saveFreeOrderForCoupon(cuUser, coupon, null, formId, couponPassword.getId());
WxOrder order = orderService.saveFreeOrderForCoupon(user, coupon, null, formId, couponPassword.getId());
} catch (MallinkException e) { } catch (MallinkException e) {
setCouponPasswordStatus(couponPassword, EnumCouponPasswordStatus.getEnum(pwdStatus)); setCouponPasswordStatus(couponPassword, EnumCouponPasswordStatus.getEnum(pwdStatus));
logger.error(e.getMessage()); logger.error(e.getMessage());


+ 12
- 3
mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java Просмотреть файл

@@ -142,7 +142,7 @@ public class WxOrderController extends BaseController {
boolean isPress = orderSaveDto.getPress() != null ? orderSaveDto.getPress() : false; boolean isPress = orderSaveDto.getPress() != null ? orderSaveDto.getPress() : false;


try { try {
WxOrder order = wxOrderService.saveOrderForCoupon(user, coupon, orderSaveDto, isPress);
WxOrder order = wxOrderService.saveOrderForCoupon(wxCUserBasicInfo, coupon, orderSaveDto, isPress);
return new ResultData(order); return new ResultData(order);
} catch (MallinkException e) { } catch (MallinkException e) {
logger.error(e.getMessage()); logger.error(e.getMessage());
@@ -167,7 +167,7 @@ public class WxOrderController extends BaseController {


if (cUserBasicInfo != null && cUserBasicInfo.getActRecord() > 0) if (cUserBasicInfo != null && cUserBasicInfo.getActRecord() > 0)
return new ResultData(ErrorCode.COUPON_ONLY_FOR_NEW_MEMBER); return new ResultData(ErrorCode.COUPON_ONLY_FOR_NEW_MEMBER);
if (wxOrderService.countCouponConditionType1(user) > 0)
if (wxOrderService.countCouponConditionType1(cUserBasicInfo) > 0)
return new ResultData(ErrorCode.COUPON_ALREADY_IN_NEW_MEMBER); return new ResultData(ErrorCode.COUPON_ALREADY_IN_NEW_MEMBER);
}else if (jo.getIntValue("type") == EnumCouponConditionType.SCORE_SCOPE.getCode()){ }else if (jo.getIntValue("type") == EnumCouponConditionType.SCORE_SCOPE.getCode()){
int max = jo.getIntValue("max"); int max = jo.getIntValue("max");
@@ -394,7 +394,16 @@ public class WxOrderController extends BaseController {


WxOrder order = null; WxOrder order = null;
try { try {
order = wxOrderService.getUnPaidOrder(getUser(), wxCoupon);
WxCUser cuser = getUser();
if(!cuser.isBasicInfo()) {
throw new MallinkException(ErrorCode.USER_IS_NOT_MEMBER);
}
WxCUserBasicInfo user = wxCUserBasicInfoService.getById(cuser.getUserId());
if(user == null) {
logger.error("会员用户未找到: " + cuser.getUserId());
throw new MallinkException(ErrorCode.USER_IS_EMPTY.getCode(), "会员用户未找到" + cuser.getUserId());
}
order = wxOrderService.getUnPaidOrder(user, wxCoupon);
if (order != null) { if (order != null) {
return new ResultData(Result.SUCCESS, "查询成功", order); return new ResultData(Result.SUCCESS, "查询成功", order);
} else { } else {


+ 11
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxCUser.java Просмотреть файл

@@ -155,4 +155,15 @@ public class WxCUser extends TenantEntity {
} }
return this.token; return this.token;
} }
/**
* 是否是会员
* @return
*/
public boolean isBasicInfo() {
if(null == this.getUserId()) {
return false;
}
return true;
}
} }

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

@@ -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);


+ 37
- 41
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; 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());


@@ -549,14 +549,14 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService {
return resList; return resList;
} }


private List<WxTags> assignTypeId21(WxCUserBasicInfo user, WxCUser param) {
private List<WxTags> assignTypeId21(WxCUserBasicInfo user) {
List<WxTags> resList = null; List<WxTags> resList = null;
Calendar startC = Calendar.getInstance(); Calendar startC = Calendar.getInstance();
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.setStartTime(startC.getTime()); wxCouponOrder.setStartTime(startC.getTime());
wxCouponOrder.setEndTime(new Date()); wxCouponOrder.setEndTime(new Date());


@@ -573,11 +573,11 @@ 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)user.getLoginCount()/days;
if (loginRate > 1F/4) if (loginRate > 1F/4)
resList = assign(user, EnumTag.ID_112); resList = assign(user, EnumTag.ID_112);
else if (loginRate > 1F/7) else if (loginRate > 1F/7)
@@ -658,17 +658,16 @@ 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);
} }
} }
break; break;
@@ -694,13 +693,12 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService {
resList = assignTypeId7(user, param.getPhone()); resList = assignTypeId7(user, param.getPhone());
} }
//活跃 //活跃
resList = assignTypeId21(user, param);
resList = assignTypeId21(user);
} }
} }
break; break;
case ASSIGN_TAGS_TRIGGER_SCAN: { case ASSIGN_TAGS_TRIGGER_SCAN: {
WxCUserBasicInfo user = (WxCUserBasicInfo) obj; WxCUserBasicInfo user = (WxCUserBasicInfo) obj;
WxCUser param = wxCUserMapper.selectById(user.getId());
if (user != null) { if (user != null) {


if (user.getSex() != null) { if (user.getSex() != null) {
@@ -724,25 +722,23 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService {
resList = assignTypeId6(user, user.getEducation()); resList = assignTypeId6(user, user.getEducation());
} }


if (param != null) {
//消费类别
resList = assignTypeId14(user, param);
//饮食偏好
resList = assignTypeId17(user, param);

//消费时段
resList = assignTypeId18(user, param);
//消费频度
resList = assignTypeId22(user, param);
//活跃
resList = assignTypeId21(user, param);

//车
WxCUserCar wxCUserCar = new WxCUserCar();
wxCUserCar.setCUserId(param.getId());
if (wxCUserCarMapper.countList(wxCUserCar) > 0) {
resList = assignTypeId11(user);
}
//消费类别
resList = assignTypeId14(user);
//饮食偏好
resList = assignTypeId17(user);

//消费时段
resList = assignTypeId18(user);
//消费频度
resList = assignTypeId22(user);
//活跃
resList = assignTypeId21(user);

//车
WxCUserCar wxCUserCar = new WxCUserCar();
wxCUserCar.setCUserId(user.getId());
if (wxCUserCarMapper.countList(wxCUserCar) > 0) {
resList = assignTypeId11(user);
} }
} }
} }


+ 51
- 46
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.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());
@@ -417,7 +417,7 @@ public class WxOrderServiceImpl implements WxOrderService {
* @param counpon * @param counpon
* @return * @return
*/ */
public WxOrder getUnPaidOrder(WxCUser user, WxCoupon counpon) {
public WxOrder getUnPaidOrder(WxCUserBasicInfo user, WxCoupon counpon) {
// + Order 待支付 // + Order 待支付
try { try {
WxOrder orderQ = new WxOrder(); WxOrder orderQ = new WxOrder();
@@ -448,13 +448,13 @@ public class WxOrderServiceImpl implements WxOrderService {
* @param user * @param user
* @return * @return
*/ */
public int countCouponConditionType1(WxCUser user) {
public int countCouponConditionType1(WxCUserBasicInfo user) {
// + Order 待支付 // + Order 待支付
try { try {
WxOrder orderQ = new WxOrder(); WxOrder orderQ = new WxOrder();
orderQ.setTenantId(user.getTenantId()); orderQ.setTenantId(user.getTenantId());
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_PENDING_PAYMENT.getCode()); statusS.add(EnumOrderStatus.ORDER_STATUS_PENDING_PAYMENT.getCode());
statusS.add(EnumOrderStatus.ORDER_STATUS_PAYMENT_SUCCESS.getCode()); statusS.add(EnumOrderStatus.ORDER_STATUS_PAYMENT_SUCCESS.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);


@@ -1476,7 +1481,7 @@ public class WxOrderServiceImpl implements WxOrderService {
public int microPayOrderSuccess(WxOrder updateOrder) { public int microPayOrderSuccess(WxOrder updateOrder) {
Date currentDate = new Date(); Date currentDate = new Date();
// C端用户 // C端用户
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);
@@ -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);


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

@@ -1,14 +1,14 @@
package com.iformall.service.msg.impl; package com.iformall.service.msg.impl;


import com.iformall.common.ErrorCode; import com.iformall.common.ErrorCode;
import com.iformall.domain.po.WxCUser;
import com.iformall.domain.po.WxCUserBasicInfo;
import com.iformall.domain.po.WxCoupon; import com.iformall.domain.po.WxCoupon;
import com.iformall.domain.po.WxCouponChannel; import com.iformall.domain.po.WxCouponChannel;
import com.iformall.domain.po.WxOrder; import com.iformall.domain.po.WxOrder;
import com.iformall.domain.po.msg.BaseMsg; import com.iformall.domain.po.msg.BaseMsg;
import com.iformall.domain.po.msg.FmInsideOrderSuccessMsg; import com.iformall.domain.po.msg.FmInsideOrderSuccessMsg;
import com.iformall.exception.MallinkException; import com.iformall.exception.MallinkException;
import com.iformall.service.WxCUserService;
import com.iformall.service.WxCUserBasicInfoService;
import com.iformall.service.WxCouponChannelService; import com.iformall.service.WxCouponChannelService;
import com.iformall.service.WxCouponService; import com.iformall.service.WxCouponService;
import com.iformall.service.WxOrderService; import com.iformall.service.WxOrderService;
@@ -31,7 +31,7 @@ public class FmInsideOrderSuccessMsgServiceImpl implements MsgSendService {
private WxOrderService orderService; private WxOrderService orderService;


@Autowired @Autowired
private WxCUserService userService;
private WxCUserBasicInfoService userService;


@Autowired @Autowired
private WxCouponService couponService; private WxCouponService couponService;
@@ -63,7 +63,7 @@ public class FmInsideOrderSuccessMsgServiceImpl implements MsgSendService {
throw new MallinkException(ErrorCode.ORDER_COUPON_NOT_MATCH.getCode(), "订单用户不一致" + msg.getOrderId()); throw new MallinkException(ErrorCode.ORDER_COUPON_NOT_MATCH.getCode(), "订单用户不一致" + msg.getOrderId());
} }


WxCUser user = userService.getById(msg.getCUserId());
WxCUserBasicInfo user = userService.getById(msg.getCUserId());
if(user == null) { if(user == null) {
logger.error("用户未找到: " + msg.getCUserId()); logger.error("用户未找到: " + msg.getCUserId());
throw new MallinkException(ErrorCode.USER_IS_EMPTY.getCode(), "用户未找到" + msg.getCUserId()); throw new MallinkException(ErrorCode.USER_IS_EMPTY.getCode(), "用户未找到" + msg.getCUserId());


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