| @@ -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()); | ||||
| @@ -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 | |||||
| mail: | mail: | ||||
| host: smtp.exmail.qq.com | host: smtp.exmail.qq.com | ||||
| @@ -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()); | ||||
| @@ -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) { | ||||
| @@ -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()); | ||||
| @@ -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 { | ||||
| @@ -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; | |||||
| } | |||||
| } | } | ||||
| @@ -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); | ||||
| @@ -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); | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| @@ -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); | ||||
| @@ -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()); | ||||