diff --git a/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/activitypay/dto/ActivityPayDTO.java b/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/activitypay/dto/ActivityPayDTO.java index a01f8f53..c33d7e97 100644 --- a/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/activitypay/dto/ActivityPayDTO.java +++ b/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/activitypay/dto/ActivityPayDTO.java @@ -44,4 +44,5 @@ public class ActivityPayDTO { private String voucherId; + private String transactionId; } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitypay/vo/ActivityPaySaveReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitypay/vo/ActivityPaySaveReqVO.java index 90094b4c..a8361612 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitypay/vo/ActivityPaySaveReqVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitypay/vo/ActivityPaySaveReqVO.java @@ -37,4 +37,5 @@ public class ActivityPaySaveReqVO { private String voucherId; + private String transactionId; } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/activity/AppActivityDrawController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/activity/AppActivityDrawController.java index 2439af66..2ab27524 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/activity/AppActivityDrawController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/activity/AppActivityDrawController.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.member.controller.app.activity; +import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONUtil; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.PageParam; @@ -270,13 +271,17 @@ public class AppActivityDrawController { if(!"0".equals(activityPay.getStatus())){ throw exception(ACTIVITY_PAY_USE); } - //获取当天日期 - LocalDate now = LocalDate.now(); - //比较日期是否相等 - if(! now.isEqual(activityPay.getReserveTime())){ - throw exception(ACTIVITY_PAY_EXPIRE); + + if(StrUtil.isEmpty(activityPay.getDish())){ + //获取当天日期 + LocalDate now = LocalDate.now(); + //比较日期是否相等 + if(! now.isEqual(activityPay.getReserveTime())){ + throw exception(ACTIVITY_PAY_EXPIRE); + } } + ActivityDO activity = activityService.getActivity(activityPay.getActivityId()); AppReserveQrCodeVO appReserveQrCodeVO = new AppReserveQrCodeVO(); @@ -285,6 +290,9 @@ public class AppActivityDrawController { appReserveQrCodeVO.setMobile(activityPay.getMobile()); appReserveQrCodeVO.setActivityName(activity.getActivityName()); appReserveQrCodeVO.setSerialNumbers(activityPay.getSerialNumbers()); + if(StrUtil.isNotBlank(activityPay.getDish())){ + appReserveQrCodeVO.setDish(activityPay.getDish()); + } appReserveQrCodeVO.setType("2"); String qrCode = QRCodeWithJWTUtil.generateQRCode(JSONUtil.toJsonStr(appReserveQrCodeVO), 350, 350, null);// 生 return success(qrCode); @@ -381,9 +389,16 @@ public class AppActivityDrawController { } List collect = listByActivityIdAndMerchantId.stream().map(ActivityTableDishDO::getSerialNumber).collect(Collectors.toList()); pageReqVO.setSerialNumberList(collect); - PageResult pageResult = activityPayService.getUserActivityPayPage(pageReqVO); + PageResult pageResult = activityPayService.getMerchantActivityPayPage(pageReqVO); return success(pageResult); } + @GetMapping("/merchant") + @Operation(summary = "获得商家") + public CommonResult getMerchantByMobile(@Valid String mobile) { + return success(activityMerchantService.getByMobile(mobile)); + } + + } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/activity/vo/AppCancelVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/activity/vo/AppCancelVO.java index a7947d1b..3a632560 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/activity/vo/AppCancelVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/activity/vo/AppCancelVO.java @@ -8,4 +8,6 @@ public class AppCancelVO { private Long activityAwardsUserId; private Long activityPayId; + + private Boolean isAddDish = false; } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/activity/vo/AppReserveQrCodeVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/activity/vo/AppReserveQrCodeVO.java index 36e94197..e0035680 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/activity/vo/AppReserveQrCodeVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/activity/vo/AppReserveQrCodeVO.java @@ -16,4 +16,6 @@ public class AppReserveQrCodeVO { private String nickName; private String type; + + private String dish; } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/activitypay/ActivityPayDO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/activitypay/ActivityPayDO.java index 6827bfea..fe54a226 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/activitypay/ActivityPayDO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/activitypay/ActivityPayDO.java @@ -60,4 +60,6 @@ public class ActivityPayDO extends BaseDO { private String diningPeriod; private String voucher; + + private String transactionId; } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitymerchant/ActivityMerchantService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitymerchant/ActivityMerchantService.java index 3964d67f..e99fff02 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitymerchant/ActivityMerchantService.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitymerchant/ActivityMerchantService.java @@ -1,11 +1,11 @@ package cn.iocoder.yudao.module.member.service.activitymerchant; -import java.util.*; -import javax.validation.*; -import cn.iocoder.yudao.module.member.controller.admin.activitymerchant.vo.*; -import cn.iocoder.yudao.module.member.dal.dataobject.activitymerchant.ActivityMerchantDO; import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.module.member.controller.admin.activitymerchant.vo.ActivityMerchantPageReqVO; +import cn.iocoder.yudao.module.member.controller.admin.activitymerchant.vo.ActivityMerchantSaveReqVO; +import cn.iocoder.yudao.module.member.dal.dataobject.activitymerchant.ActivityMerchantDO; + +import javax.validation.Valid; /** * 活动商家 Service 接口 @@ -52,4 +52,6 @@ public interface ActivityMerchantService { */ PageResult getActivityMerchantPage(ActivityMerchantPageReqVO pageReqVO); + + ActivityMerchantDO getByMobile(String mobile); } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitymerchant/ActivityMerchantServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitymerchant/ActivityMerchantServiceImpl.java index 8a8df766..02642cec 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitymerchant/ActivityMerchantServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitymerchant/ActivityMerchantServiceImpl.java @@ -1,21 +1,20 @@ package cn.iocoder.yudao.module.member.service.activitymerchant; -import org.springframework.stereotype.Service; -import javax.annotation.Resource; -import org.springframework.validation.annotation.Validated; -import org.springframework.transaction.annotation.Transactional; - -import java.util.*; -import cn.iocoder.yudao.module.member.controller.admin.activitymerchant.vo.*; -import cn.iocoder.yudao.module.member.dal.dataobject.activitymerchant.ActivityMerchantDO; import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; - +import cn.iocoder.yudao.module.member.controller.admin.activitymerchant.vo.ActivityMerchantPageReqVO; +import cn.iocoder.yudao.module.member.controller.admin.activitymerchant.vo.ActivityMerchantSaveReqVO; +import cn.iocoder.yudao.module.member.dal.dataobject.activitymerchant.ActivityMerchantDO; import cn.iocoder.yudao.module.member.dal.mysql.activitymerchant.ActivityMerchantMapper; +import cn.iocoder.yudao.module.member.util.MemberConstants; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; -import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.*; +import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.ACTIVITY_MERCHANT_NOT_EXISTS; /** * 活动商家 Service 实现类 @@ -71,4 +70,11 @@ public class ActivityMerchantServiceImpl implements ActivityMerchantService { return activityMerchantMapper.selectPage(pageReqVO); } + @Override + public ActivityMerchantDO getByMobile(String mobile) { + return activityMerchantMapper.selectOne(Wrappers.lambdaQuery() + .eq(ActivityMerchantDO::getMobile, mobile).last(MemberConstants.LIMIT_ONE)); + } + + } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitypay/ActivityPayService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitypay/ActivityPayService.java index 147a5769..f9d142aa 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitypay/ActivityPayService.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitypay/ActivityPayService.java @@ -63,6 +63,8 @@ public interface ActivityPayService { PageResult getUserActivityPayPage(ActivityPayPageReqVO pageReqVO); + PageResult getMerchantActivityPayPage(ActivityPayPageReqVO pageReqVO); + Boolean reserveCancel(AppCancelVO vo); List getListByTime(); diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitypay/ActivityPayServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitypay/ActivityPayServiceImpl.java index 10c347e0..8c47a3d8 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitypay/ActivityPayServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitypay/ActivityPayServiceImpl.java @@ -172,23 +172,44 @@ public class ActivityPayServiceImpl implements ActivityPayService { .eq(pageReqVO.getActivityId() != null, ActivityAwardsUserDO::getActivityId, pageReqVO.getActivityId()) .eq(pageReqVO.getUserId() != null, ActivityPayDO::getUserId, pageReqVO.getUserId()) .isNotNull(pageReqVO.getIsDish(), ActivityPayDO::getDish) + .eq(pageReqVO.getStatus() != null, ActivityPayDO::getStatus, pageReqVO.getStatus()) .in(CollectionUtil.isNotEmpty(pageReqVO.getSerialNumberList()), ActivityPayDO::getSerialNumbers,pageReqVO.getSerialNumberList()) .orderByDesc(ActivityPayDO::getCreateTime) ); return new PageResult<>(activityAwardsUserRespVOPage.getRecords(), activityAwardsUserRespVOPage.getTotal()); } + @Override + public PageResult getMerchantActivityPayPage(ActivityPayPageReqVO pageReqVO) { + Page activityAwardsUserRespVOPage = activityPayMapper.selectJoinPage(new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()), AppActivityPayRespVO.class, + new MPJLambdaWrapper() + .selectAll(ActivityPayDO.class) + .select(ActivityDO::getActivityName) + .leftJoin(ActivityDO.class, ActivityDO::getId, ActivityAwardsUserDO::getActivityId) + .isNotNull(pageReqVO.getIsDish(), ActivityPayDO::getDish) + .isNull(!pageReqVO.getIsDish(), ActivityPayDO::getDish) + .eq(pageReqVO.getStatus() != null, ActivityPayDO::getStatus, pageReqVO.getStatus()) + .in(CollectionUtil.isNotEmpty(pageReqVO.getSerialNumberList()), ActivityPayDO::getSerialNumbers,pageReqVO.getSerialNumberList()) + .orderByAsc(ActivityPayDO::getStatus) + .orderByAsc(ActivityPayDO::getReserveTime) + ); + return new PageResult<>(activityAwardsUserRespVOPage.getRecords(), activityAwardsUserRespVOPage.getTotal()); + } + @Override public Boolean reserveCancel(AppCancelVO vo) { ActivityPayDO activityPayDO = activityPayMapper.selectById(vo.getActivityPayId()); if(!"0".equals(activityPayDO.getStatus())){ throw exception(ACTIVITY_PAY_USE); } - //获取当天日期 - LocalDate now = LocalDate.now(); - //比较日期是否相等 - if(! now.isEqual(activityPayDO.getReserveTime())){ - throw exception(ACTIVITY_PAY_EXPIRE); + + if(StrUtil.isEmpty(activityPayDO.getDish())){ + //获取当天日期 + LocalDate now = LocalDate.now(); + //比较日期是否相等 + if(! now.isEqual(activityPayDO.getReserveTime())){ + throw exception(ACTIVITY_PAY_EXPIRE); + } } activityPayDO.setStatus("1"); int i = activityPayMapper.updateById(activityPayDO); diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/notify/PayNotifyController.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/notify/PayNotifyController.java index b9f5abc6..e299a703 100644 --- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/notify/PayNotifyController.java +++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/notify/PayNotifyController.java @@ -151,6 +151,7 @@ public class PayNotifyController { activityPayDTO.setDish( deserializedMap.get("dish")); activityPayDTO.setDiningPeriod( deserializedMap.get("diningPeriod")); activityPayDTO.setVoucherId( deserializedMap.get("voucherId")); + activityPayDTO.setTransactionId( notify.getChannelOrderNo()); activityApi.createActivityPay(activityPayDTO); notifyRedisTemplate.delete("RESERVED" + notify.getOutTradeNo());