| @@ -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()); | ||||
| @@ -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()); | ||||
| @@ -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; | |||||
| } | |||||
| } | } | ||||
| @@ -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()); | ||||
| @@ -577,7 +577,7 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { | |||||
| List<WxTags> resList = null; | List<WxTags> resList = null; | ||||
| int days = (int) ((new Date().getTime() - user.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) | ||||
| @@ -667,7 +667,7 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { | |||||
| //消费时段 | //消费时段 | ||||
| resList = assignTypeId18(user); | resList = assignTypeId18(user); | ||||
| //消费频度 | //消费频度 | ||||
| resList = assignTypeId22(user, param); | |||||
| resList = assignTypeId22(user); | |||||
| } | } | ||||
| } | } | ||||
| break; | break; | ||||
| @@ -693,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) { | ||||
| @@ -723,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); | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| @@ -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()); | ||||
| @@ -1481,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); | ||||
| @@ -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()); | ||||