From b313f12f65e1cf72d2291bcc2fb9647b7f86fef9 Mon Sep 17 00:00:00 2001 From: 77 <77@77.com> Date: Fri, 10 May 2024 23:31:47 +0800 Subject: [PATCH] init --- .../com/ruoyi/xq/domain/ActivityOrder.java | 2 + .../com/ruoyi/xq/domain/ActivityUser.java | 1 + .../admin/activity/ActivityOrderAdminVo.java | 11 ++++ .../java/com/ruoyi/xq/manager/PayManager.java | 5 ++ .../ruoyi/xq/mapper/ActivityOrderMapper.java | 4 ++ .../xq/service/ActivityOrderService.java | 14 +++++ .../ruoyi/xq/service/ActivityShopService.java | 2 + .../ruoyi/xq/service/ActivityUserService.java | 3 + .../impl/ActivityOrderServiceImpl.java | 57 ++++++++++++++++++- .../service/impl/ActivityShopServiceImpl.java | 38 ++++++++++--- .../service/impl/ActivityUserServiceImpl.java | 33 +++++++++++ .../mapper/xq/ActivityOrderMapper.xml | 17 ++++++ 12 files changed, 177 insertions(+), 10 deletions(-) create mode 100644 ruoyi-xq/src/main/java/com/ruoyi/xq/dto/admin/activity/ActivityOrderAdminVo.java diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/domain/ActivityOrder.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/domain/ActivityOrder.java index f406d06..d22f565 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/domain/ActivityOrder.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/domain/ActivityOrder.java @@ -33,6 +33,7 @@ public class ActivityOrder implements Serializable { * 用户号 */ private String usercode; + private Integer gender; /** * 跟踪ID */ @@ -53,6 +54,7 @@ public class ActivityOrder implements Serializable { * 活动标题 */ private String activityTitle; + private String activityMobile; /** * 订单说明 */ diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/domain/ActivityUser.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/domain/ActivityUser.java index dd4d4a8..ece7ef7 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/domain/ActivityUser.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/domain/ActivityUser.java @@ -37,6 +37,7 @@ public class ActivityUser implements Serializable { * 用户号 */ private String usercode; + private Integer gender; /** * 填写的手机号 */ diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/admin/activity/ActivityOrderAdminVo.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/admin/activity/ActivityOrderAdminVo.java new file mode 100644 index 0000000..80549ec --- /dev/null +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/admin/activity/ActivityOrderAdminVo.java @@ -0,0 +1,11 @@ +package com.ruoyi.xq.dto.admin.activity; + +import com.ruoyi.xq.domain.ActivityOrder; +import lombok.Data; + +@Data +public class ActivityOrderAdminVo extends ActivityOrder { + private String nickname; + private String mobile; + private String avatar; +} diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/manager/PayManager.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/manager/PayManager.java index 390803b..bda00a2 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/manager/PayManager.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/manager/PayManager.java @@ -35,6 +35,8 @@ public class PayManager { private WxTransOrderService wxTransOrderService; @Autowired private AuthOrderService authOrderService; + @Autowired + private ActivityOrderService activityOrderService; public PayOrderInfoDTO getOrderInfo(String orderNo){ OrderTypeEnum orderTypeEnum = OrderNoUtil.getType(orderNo); @@ -143,6 +145,9 @@ public class PayManager { case AUTH_ORDER: ConsumeResp authResp = authOrderService.doSuccess(orderNo, params, appId, payTypeEnum); break; + case ACTIVITY_MATCHMAKING: + activityOrderService.doSuccess(orderNo, params, appId, payTypeEnum); + break; default: break; } diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/mapper/ActivityOrderMapper.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/mapper/ActivityOrderMapper.java index 219406f..71a1da3 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/mapper/ActivityOrderMapper.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/mapper/ActivityOrderMapper.java @@ -1,7 +1,10 @@ package com.ruoyi.xq.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.xq.domain.ActivityOrder; +import com.ruoyi.xq.dto.admin.activity.ActivityOrderAdminVo; +import org.apache.ibatis.annotations.Param; /** * 相亲会订单Mapper接口 @@ -11,4 +14,5 @@ import com.ruoyi.xq.domain.ActivityOrder; */ public interface ActivityOrderMapper extends BaseMapper { + Page pageAdmin(@Param("build") Page build, @Param("bo") ActivityOrderAdminVo bo); } diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/service/ActivityOrderService.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/ActivityOrderService.java index 8d3d365..f72df0d 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/service/ActivityOrderService.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/ActivityOrderService.java @@ -1,9 +1,17 @@ package com.ruoyi.xq.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.xq.domain.ActivityOrder; +import com.ruoyi.xq.dto.admin.activity.ActivityOrderAdminVo; import com.ruoyi.xq.dto.app.activity.CreateOrderReq; +import com.ruoyi.xq.dto.app.pay.ConsumeResp; import com.ruoyi.xq.dto.app.pay.OrderCreateVo; +import com.ruoyi.xq.enums.pay.PlatformTypeEnum; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Map; /** * 相亲会订单Service接口 @@ -14,4 +22,10 @@ import com.ruoyi.xq.dto.app.pay.OrderCreateVo; public interface ActivityOrderService extends IService { ActivityOrder createOrder(CreateOrderReq req); + + ActivityOrder getByOrderNo(String orderNo); + + ConsumeResp doSuccess(String orderNo, Map params, String appId, PlatformTypeEnum payTypeEnum); + + Page pageAdmin(PageQuery pageQuery, ActivityOrderAdminVo bo); } diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/service/ActivityShopService.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/ActivityShopService.java index b382dfa..57f6387 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/service/ActivityShopService.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/ActivityShopService.java @@ -20,6 +20,8 @@ public interface ActivityShopService extends IService { ActivityShop getByCode(String activityCode); + void resetActivityShopUser(Long activityId,Integer gender); + ActivityShopAppInfo info(Long activityId, String activityCode); JoinResp join(Long userId, Long activityId); diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/service/ActivityUserService.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/ActivityUserService.java index 26d3742..1c7fae3 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/service/ActivityUserService.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/ActivityUserService.java @@ -11,4 +11,7 @@ import com.ruoyi.xq.domain.ActivityUser; */ public interface ActivityUserService extends IService { + void joinActivity(String orderNo); + + Long countByActivityIdAndGender(Long id, Integer gender); } diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/ActivityOrderServiceImpl.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/ActivityOrderServiceImpl.java index 0c336d7..540e724 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/ActivityOrderServiceImpl.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/ActivityOrderServiceImpl.java @@ -1,28 +1,36 @@ package com.ruoyi.xq.service.impl; +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.xq.domain.ActivityOrder; import com.ruoyi.xq.domain.ActivityShop; +import com.ruoyi.xq.dto.admin.activity.ActivityOrderAdminVo; import com.ruoyi.xq.dto.app.activity.CreateOrderReq; -import com.ruoyi.xq.dto.app.pay.OrderCreateVo; +import com.ruoyi.xq.dto.app.pay.ConsumeResp; import com.ruoyi.xq.dto.common.user.MinUser; import com.ruoyi.xq.enums.common.OrderTypeEnum; import com.ruoyi.xq.enums.common.TraceIdEnum; import com.ruoyi.xq.enums.pay.PayStatusEnum; +import com.ruoyi.xq.enums.pay.PlatformTypeEnum; import com.ruoyi.xq.enums.userinfo.UserGenderEnum; import com.ruoyi.xq.manager.OrderNoUtil; import com.ruoyi.xq.manager.TraceIdManager; import com.ruoyi.xq.mapper.ActivityOrderMapper; import com.ruoyi.xq.service.ActivityOrderService; import com.ruoyi.xq.service.ActivityShopService; +import com.ruoyi.xq.service.ActivityUserService; import com.ruoyi.xq.service.UserService; -import org.checkerframework.checker.units.qual.A; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; +import java.util.Map; /** * 相亲会订单Service业务层处理 @@ -37,6 +45,8 @@ public class ActivityOrderServiceImpl extends ServiceImpl params, String appId, PlatformTypeEnum payTypeEnum){ + ActivityOrder order = this.getByOrderNo(orderNo); + if(order == null){ + ConsumeResp resp = new ConsumeResp(); + resp.setSuccess(false); + return resp; + } + String traceId = TraceIdManager.gen(TraceIdEnum.ACTIVITY_MATCHMAKING); + boolean success = this.update(Wrappers.lambdaUpdate(ActivityOrder.class) + .eq(ActivityOrder::getId, order.getId()) + .eq(ActivityOrder::getPayStatus, PayStatusEnum.READY_PAY.getCode()) + .set(ActivityOrder::getPayStatus, PayStatusEnum.PAY.getCode()) + .set(ActivityOrder::getTraceId, traceId) + .set(ActivityOrder::getReturnContent, JSON.toJSONString(params)) + .set(ActivityOrder::getAppid,appId) + .set(ActivityOrder::getPlatformType, payTypeEnum.getCode())); + if(!success){ + ConsumeResp resp = new ConsumeResp(); + resp.setSuccess(false); + return resp; + } + activityUserService.joinActivity(order.getOrderNo()); + ConsumeResp resp = new ConsumeResp(); + resp.setPrice(order.getPrice()); + resp.setUserId(order.getUserId()); + resp.setTraceId(traceId); + resp.setSuccess(true); + return resp; + } + + @Override + public Page pageAdmin(PageQuery pageQuery, ActivityOrderAdminVo bo) { + return baseMapper.pageAdmin(pageQuery.build(), bo); + } } diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/ActivityShopServiceImpl.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/ActivityShopServiceImpl.java index 355b98e..08a705c 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/ActivityShopServiceImpl.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/ActivityShopServiceImpl.java @@ -6,10 +6,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.xq.domain.ActivityShop; -import com.ruoyi.xq.domain.AreaCode; -import com.ruoyi.xq.domain.User; -import com.ruoyi.xq.domain.UserAuth; +import com.ruoyi.xq.domain.*; import com.ruoyi.xq.dto.app.activity.ActivityShopAppInfo; import com.ruoyi.xq.dto.app.activity.ActivityShopAppList; import com.ruoyi.xq.dto.app.activity.JoinResp; @@ -17,10 +14,7 @@ import com.ruoyi.xq.enums.activity.ActivityShopStatusEnum; import com.ruoyi.xq.enums.common.AuditEnum; import com.ruoyi.xq.enums.userinfo.UserGenderEnum; import com.ruoyi.xq.mapper.ActivityShopMapper; -import com.ruoyi.xq.service.ActivityShopService; -import com.ruoyi.xq.service.AreaCodeService; -import com.ruoyi.xq.service.UserAuthService; -import com.ruoyi.xq.service.UserService; +import com.ruoyi.xq.service.*; import org.apache.commons.lang3.BooleanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -41,6 +35,8 @@ public class ActivityShopServiceImpl extends ServiceImpl pageApp(PageQuery pageQuery) { @@ -57,6 +53,32 @@ public class ActivityShopServiceImpl extends ServiceImpl implements ActivityUserService { + @Autowired + private ActivityOrderService activityOrderService; + @Autowired + private UserService userService; + @Autowired + private ActivityShopService activityShopService; + + @Override + public void joinActivity(String orderNo) { + ActivityOrder activityOrder = activityOrderService.getByOrderNo(orderNo); + ActivityUser activityUser = new ActivityUser(); + activityUser.setActivityId(activityOrder.getActivityId()); + activityUser.setUserId(activityOrder.getUserId()); + activityUser.setUsercode(activityOrder.getUsercode()); + activityUser.setGender(activityOrder.getGender()); + activityUser.setMobile(activityOrder.getActivityMobile()); + activityUser.setPay(1); + activityUser.setPrice(activityOrder.getPrice()); + activityUser.setTraceId(activityOrder.getTraceId()); + this.save(activityUser); + activityShopService.resetActivityShopUser(activityOrder.getActivityId(), activityOrder.getGender()); + } + + @Override + public Long countByActivityIdAndGender(Long activityId, Integer gender) { + return this.count(Wrappers.lambdaQuery(ActivityUser.class).eq(ActivityUser::getActivityId, activityId).eq(ActivityUser::getGender, gender)); + } } diff --git a/ruoyi-xq/src/main/resources/mapper/xq/ActivityOrderMapper.xml b/ruoyi-xq/src/main/resources/mapper/xq/ActivityOrderMapper.xml index f8207e6..1021ddd 100644 --- a/ruoyi-xq/src/main/resources/mapper/xq/ActivityOrderMapper.xml +++ b/ruoyi-xq/src/main/resources/mapper/xq/ActivityOrderMapper.xml @@ -5,4 +5,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" +