From 0d2c93932f03f3f8078ebcf0673c3ae60545be59 Mon Sep 17 00:00:00 2001 From: 77 <77@77.com> Date: Fri, 10 May 2024 22:32:40 +0800 Subject: [PATCH] init --- .../xq/controller/ActivityShopController.java | 26 ++++---- ...ava => ActivityMatchmakingController.java} | 25 ++++++-- .../xq/dto/app/activity/CreateOrderReq.java | 22 +++++++ .../com/ruoyi/xq/dto/common/user/MinUser.java | 1 + .../ruoyi/xq/enums/common/OrderTypeEnum.java | 1 + .../ruoyi/xq/enums/common/TraceIdEnum.java | 3 +- .../xq/service/ActivityOrderService.java | 3 + .../ruoyi/xq/service/ActivityShopService.java | 5 ++ .../impl/ActivityOrderServiceImpl.java | 59 +++++++++++++++++++ .../service/impl/ActivityShopServiceImpl.java | 40 +++++++++++++ .../main/resources/mapper/xq/UserMapper.xml | 2 +- 11 files changed, 168 insertions(+), 19 deletions(-) rename ruoyi-xq/src/main/java/com/ruoyi/xq/controller/app/{MatchmakingEventController.java => ActivityMatchmakingController.java} (71%) create mode 100644 ruoyi-xq/src/main/java/com/ruoyi/xq/dto/app/activity/CreateOrderReq.java diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/controller/ActivityShopController.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/controller/ActivityShopController.java index 9432b03..64382e4 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/controller/ActivityShopController.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/controller/ActivityShopController.java @@ -47,11 +47,6 @@ public class ActivityShopController extends BaseController { } - /** - * 获取相亲会详细信息 - * - * @param id 主键 - */ @SaCheckPermission("xq:activityShop:query") @GetMapping("/{id}") public R getInfo(@NotNull(message = "主键不能为空") @@ -59,26 +54,31 @@ public class ActivityShopController extends BaseController { return R.ok(activityShopService.getById(id)); } - /** - * 新增相亲会 - */ @SaCheckPermission("xq:activityShop:add") @Log(title = "相亲会", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() public R add(@Validated(AddGroup.class) @RequestBody ActivityShop bo) { - return toAjax(activityShopService.save(bo)); + activityShopService.saveData(bo); + return R.ok(); } - /** - * 修改相亲会 - */ @SaCheckPermission("xq:activityShop:edit") @Log(title = "相亲会", businessType = BusinessType.UPDATE) @RepeatSubmit() @PutMapping() public R edit(@Validated(EditGroup.class) @RequestBody ActivityShop bo) { - return toAjax(activityShopService.updateById(bo)); + activityShopService.updateData(bo); + return R.ok(); + } + + @SaCheckPermission("xq:activityShop:edit") + @Log(title = "相亲会人数调整", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping("/user") + public R editUser(@Validated(EditGroup.class) @RequestBody ActivityShop bo) { + activityShopService.updateDataUser(bo); + return R.ok(); } /** diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/controller/app/MatchmakingEventController.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/controller/app/ActivityMatchmakingController.java similarity index 71% rename from ruoyi-xq/src/main/java/com/ruoyi/xq/controller/app/MatchmakingEventController.java rename to ruoyi-xq/src/main/java/com/ruoyi/xq/controller/app/ActivityMatchmakingController.java index aed917e..1aa48df 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/controller/app/MatchmakingEventController.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/controller/app/ActivityMatchmakingController.java @@ -9,15 +9,16 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.helper.LoginHelper; import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.xq.domain.ActivityOrder; import com.ruoyi.xq.dto.app.activity.ActivityShopAppInfo; import com.ruoyi.xq.dto.app.activity.ActivityShopAppList; +import com.ruoyi.xq.dto.app.activity.CreateOrderReq; import com.ruoyi.xq.dto.app.common.IdReq; -import com.ruoyi.xq.dto.app.im.ImMessageDTO; -import com.ruoyi.xq.dto.app.im.ImResp; +import com.ruoyi.xq.dto.app.pay.OrderCreateVo; +import com.ruoyi.xq.service.ActivityOrderService; import com.ruoyi.xq.service.ActivityShopService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; -import jdk.nashorn.internal.ir.annotations.Ignore; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -26,10 +27,12 @@ import org.springframework.web.bind.annotation.*; @RestController @Tag(name = "相亲会相关接口") @RequestMapping("/xq/activity/matchmaking") -public class MatchmakingEventController { +public class ActivityMatchmakingController { @Autowired private ActivityShopService activityShopService; + @Autowired + private ActivityOrderService activityOrderService; @GetMapping("/page") @Operation(summary = "相亲会列表-分页") @@ -60,4 +63,18 @@ public class MatchmakingEventController { return R.ok(); } + @PostMapping("/create/order") + @Operation(summary = "创建相亲会订单") + @Log(title = "创建相亲会订单", businessType = BusinessType.OTHER) + public R createOrder(@RequestBody CreateOrderReq req){ + Long userId = LoginHelper.getUserId(); + req.setUserId(userId); + ActivityOrder order = activityOrderService.createOrder(req); + OrderCreateVo result = new OrderCreateVo(); + result.setPrice(order.getPrice()); + result.setOrderNo(order.getOrderNo()); + result.setOrderName(order.getOrderName()); + return R.ok(result); + } + } diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/app/activity/CreateOrderReq.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/app/activity/CreateOrderReq.java new file mode 100644 index 0000000..102d34a --- /dev/null +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/app/activity/CreateOrderReq.java @@ -0,0 +1,22 @@ +package com.ruoyi.xq.dto.app.activity; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class CreateOrderReq { + + @Schema(description = "相亲会ID") + private Long activityId; + + @Schema(description = "手机号") + private String mobile; + + @Schema(description = "价格") + private BigDecimal price; + + @Schema(hidden = true) + private Long userId; +} diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/common/user/MinUser.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/common/user/MinUser.java index 35c847e..6a36d03 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/common/user/MinUser.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/common/user/MinUser.java @@ -7,4 +7,5 @@ public class MinUser { private Long id; private String usercode; private String nickname; + private Integer gender; } diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/enums/common/OrderTypeEnum.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/enums/common/OrderTypeEnum.java index af33416..f372e2b 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/enums/common/OrderTypeEnum.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/enums/common/OrderTypeEnum.java @@ -8,6 +8,7 @@ public enum OrderTypeEnum { WITHDRAW("W"), WX_TRANS("X"), AUTH_ORDER("A"), + ACTIVITY_MATCHMAKING("M"), ; private final String type; diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/enums/common/TraceIdEnum.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/enums/common/TraceIdEnum.java index bbc2062..4c84dbb 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/enums/common/TraceIdEnum.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/enums/common/TraceIdEnum.java @@ -6,7 +6,8 @@ import lombok.Getter; public enum TraceIdEnum { WITHDRAW("WT","提现"), VIP("VT","VIP"), - WX_TRANS("XT","微信"), + WX_TRANS("XT","微信交换"), + ACTIVITY_MATCHMAKING("AM","相亲会"), ; private final String code; private final String text; 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 f629bda..8d3d365 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 @@ -2,6 +2,8 @@ package com.ruoyi.xq.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.xq.domain.ActivityOrder; +import com.ruoyi.xq.dto.app.activity.CreateOrderReq; +import com.ruoyi.xq.dto.app.pay.OrderCreateVo; /** * 相亲会订单Service接口 @@ -11,4 +13,5 @@ import com.ruoyi.xq.domain.ActivityOrder; */ public interface ActivityOrderService extends IService { + ActivityOrder createOrder(CreateOrderReq req); } 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 97db0db..b382dfa 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 @@ -24,4 +24,9 @@ public interface ActivityShopService extends IService { JoinResp join(Long userId, Long activityId); + void saveData(ActivityShop bo); + + void updateData(ActivityShop bo); + + void updateDataUser(ActivityShop bo); } 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 cf2b79f..0c336d7 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,11 +1,29 @@ package com.ruoyi.xq.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +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.app.activity.CreateOrderReq; +import com.ruoyi.xq.dto.app.pay.OrderCreateVo; +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.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.UserService; +import org.checkerframework.checker.units.qual.A; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.math.BigDecimal; + /** * 相亲会订单Service业务层处理 * @@ -15,4 +33,45 @@ import org.springframework.stereotype.Service; @Service public class ActivityOrderServiceImpl extends ServiceImpl implements ActivityOrderService { + @Autowired + private ActivityShopService activityShopService; + @Autowired + private UserService userService; + @Override + public ActivityOrder createOrder(CreateOrderReq req) { + ActivityShop activityShop = activityShopService.getById(req.getActivityId()); + if(activityShop == null){ + throw new ServiceException("相亲会不存在"); + } + if(StringUtils.isNotEmpty(req.getMobile())){ + throw new ServiceException("请填写手机号"); + } + MinUser minUser = userService.getMinUserById(req.getUserId()); + if(minUser== null){ + throw new ServiceException("用户不存在"); + } + BigDecimal price = null; + if(UserGenderEnum.MAN.getCode().equals(minUser.getGender())){ + price = activityShop.getJoinManPrice(); + }else if(UserGenderEnum.MAN.getCode().equals(minUser.getGender())){ + price = activityShop.getJoinWomenPrice(); + }else{ + throw new ServiceException("用户异常"); + } + String orderNo = OrderNoUtil.gen(OrderTypeEnum.ACTIVITY_MATCHMAKING); + String traceId = TraceIdManager.gen(TraceIdEnum.ACTIVITY_MATCHMAKING); + ActivityOrder order = new ActivityOrder(); + order.setUserId(minUser.getId()); + order.setUsercode(minUser.getUsercode()); + order.setBody("报名相亲会"); + order.setPrice(price); + order.setTraceId(traceId); + order.setActivityId(activityShop.getId()); + order.setActivityTitle(activityShop.getActivityTitle()); + order.setOrderName("报名相亲会"); + order.setOrderNo(orderNo); + order.setPayStatus(PayStatusEnum.READY_PAY.getCode()); + this.save(order); + return order; + } } 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 dca89b9..355b98e 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 @@ -7,6 +7,7 @@ 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.dto.app.activity.ActivityShopAppInfo; @@ -17,6 +18,7 @@ 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 org.apache.commons.lang3.BooleanUtils; @@ -172,4 +174,42 @@ public class ActivityShopServiceImpl extends ServiceImpl