init
This commit is contained in:
@@ -0,0 +1,98 @@
|
||||
package com.ruoyi.xq.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.annotation.RepeatSubmit;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.core.validate.AddGroup;
|
||||
import com.ruoyi.common.core.validate.EditGroup;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.xq.domain.Group;
|
||||
import com.ruoyi.xq.service.GroupService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* 相亲群
|
||||
*
|
||||
* @author 77
|
||||
* @date 2024-05-15
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/xq/group")
|
||||
public class GroupController extends BaseController {
|
||||
|
||||
private final GroupService groupService;
|
||||
|
||||
/**
|
||||
* 查询相亲群列表
|
||||
*/
|
||||
@SaCheckPermission("xq:group:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<Group> list(Group bo, PageQuery pageQuery) {
|
||||
Page<Group> page = groupService.page(pageQuery.build(), Wrappers.lambdaQuery(bo));
|
||||
return TableDataInfo.build(page);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取相亲群详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("xq:group:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<Group> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(groupService.getById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增相亲群
|
||||
*/
|
||||
@SaCheckPermission("xq:group:add")
|
||||
@Log(title = "相亲群", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody Group bo) {
|
||||
groupService.saveData(bo);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改相亲群
|
||||
*/
|
||||
@SaCheckPermission("xq:group:edit")
|
||||
@Log(title = "相亲群", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody Group bo) {
|
||||
groupService.updateData(bo);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除相亲群
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("xq:group:remove")
|
||||
@Log(title = "相亲群", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
groupService.removeData(Arrays.asList(ids));
|
||||
return R.ok();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
package com.ruoyi.xq.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.annotation.RepeatSubmit;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.core.validate.AddGroup;
|
||||
import com.ruoyi.common.core.validate.EditGroup;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.xq.domain.GroupOrder;
|
||||
import com.ruoyi.xq.service.GroupOrderService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* 入群订单
|
||||
*
|
||||
* @author 77
|
||||
* @date 2024-05-15
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/xq/groupOrder")
|
||||
public class GroupOrderController extends BaseController {
|
||||
|
||||
private final GroupOrderService groupOrderService;
|
||||
|
||||
/**
|
||||
* 查询入群订单列表
|
||||
*/
|
||||
@SaCheckPermission("xq:groupOrder:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<GroupOrder> list(GroupOrder bo, PageQuery pageQuery) {
|
||||
Page<GroupOrder> page = groupOrderService.page(pageQuery.build(), Wrappers.lambdaQuery(bo));
|
||||
return TableDataInfo.build(page);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取入群订单详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("xq:groupOrder:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<GroupOrder> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(groupOrderService.getById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增入群订单
|
||||
*/
|
||||
@SaCheckPermission("xq:groupOrder:add")
|
||||
@Log(title = "入群订单", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody GroupOrder bo) {
|
||||
return toAjax(groupOrderService.save(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改入群订单
|
||||
*/
|
||||
@SaCheckPermission("xq:groupOrder:edit")
|
||||
@Log(title = "入群订单", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody GroupOrder bo) {
|
||||
return toAjax(groupOrderService.updateById(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除入群订单
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("xq:groupOrder:remove")
|
||||
@Log(title = "入群订单", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(groupOrderService.removeBatchByIds(Arrays.asList(ids)));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
package com.ruoyi.xq.controller.app;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.dev33.satoken.annotation.SaIgnore;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.annotation.RepeatSubmit;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.PageModel;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.core.validate.AddGroup;
|
||||
import com.ruoyi.common.core.validate.EditGroup;
|
||||
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.domain.Group;
|
||||
import com.ruoyi.xq.domain.GroupOrder;
|
||||
import com.ruoyi.xq.dto.app.activity.ActivityShopAppInfo;
|
||||
import com.ruoyi.xq.dto.app.activity.CreateOrderReq;
|
||||
import com.ruoyi.xq.dto.app.group.CreateGroupOrderReq;
|
||||
import com.ruoyi.xq.dto.app.group.GroupInfoAppVo;
|
||||
import com.ruoyi.xq.dto.app.group.GroupListAppVo;
|
||||
import com.ruoyi.xq.dto.app.group.GroupQuery;
|
||||
import com.ruoyi.xq.dto.app.pay.OrderCreateVo;
|
||||
import com.ruoyi.xq.dto.app.user.HomePageReq;
|
||||
import com.ruoyi.xq.dto.app.user.vo.HomeUserListVo;
|
||||
import com.ruoyi.xq.service.GroupOrderService;
|
||||
import com.ruoyi.xq.service.GroupService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* 相亲群
|
||||
*
|
||||
* @author 77
|
||||
* @date 2024-05-15
|
||||
*/
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/api/group")
|
||||
@Tag(name = "相亲群相关接口")
|
||||
public class GroupAppController extends BaseController {
|
||||
@Autowired
|
||||
private GroupService groupService;
|
||||
@Autowired
|
||||
private GroupOrderService groupOrderService;
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "相亲群查询-分页")
|
||||
@Log(title = "相亲群查询-分页", businessType = BusinessType.OTHER, isPrintResponseData = false,isSaveDb = false)
|
||||
public R<PageModel<GroupListAppVo>> groupPage(PageQuery pageQuery, GroupQuery groupQuery){
|
||||
Page<GroupListAppVo> vo = groupService.pageApp(pageQuery, groupQuery);
|
||||
return R.ok(PageModel.build(vo));
|
||||
}
|
||||
|
||||
@GetMapping("/info")
|
||||
@Operation(summary = "相亲群详情")
|
||||
@Log(title = "相亲群详情", businessType = BusinessType.OTHER, isPrintResponseData = false, isSaveDb = false)
|
||||
@SaIgnore
|
||||
public R<GroupInfoAppVo> info(Long groupId){
|
||||
if(groupId == null){
|
||||
return R.ok();
|
||||
}
|
||||
GroupInfoAppVo info = groupService.info(groupId);
|
||||
return R.ok(info);
|
||||
}
|
||||
|
||||
@PostMapping("/create/order")
|
||||
@Operation(summary = "创建相亲群订单")
|
||||
@Log(title = "创建相亲群订单", businessType = BusinessType.OTHER)
|
||||
public R<OrderCreateVo> createOrder(@RequestBody CreateGroupOrderReq req){
|
||||
Long userId = LoginHelper.getUserId();
|
||||
req.setUserId(userId);
|
||||
GroupOrder order = groupOrderService.createOrder(req);
|
||||
OrderCreateVo result = new OrderCreateVo();
|
||||
result.setPrice(order.getJoinPrice());
|
||||
result.setOrderNo(order.getOrderNo());
|
||||
result.setOrderName(order.getOrderName());
|
||||
return R.ok(result);
|
||||
}
|
||||
|
||||
}
|
||||
64
ruoyi-xq/src/main/java/com/ruoyi/xq/domain/Group.java
Normal file
64
ruoyi-xq/src/main/java/com/ruoyi/xq/domain/Group.java
Normal file
@@ -0,0 +1,64 @@
|
||||
package com.ruoyi.xq.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 相亲群对象 xq_group
|
||||
*
|
||||
* @author 77
|
||||
* @date 2024-05-15
|
||||
*/
|
||||
@Data
|
||||
@TableName("xq_group")
|
||||
public class Group implements Serializable {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
/**
|
||||
* 群头像
|
||||
*/
|
||||
private String groupImage;
|
||||
/**
|
||||
* 群名称
|
||||
*/
|
||||
private String groupName;
|
||||
/**
|
||||
* 群内女性比例
|
||||
*/
|
||||
private Integer groupWomanRate;
|
||||
/**
|
||||
* 群内男性比例
|
||||
*/
|
||||
private Integer groupManRate;
|
||||
/**
|
||||
* 城市名称
|
||||
*/
|
||||
private String cityName;
|
||||
/**
|
||||
* 城市编码
|
||||
*/
|
||||
private String cityCode;
|
||||
/**
|
||||
* 入群价格
|
||||
*/
|
||||
private BigDecimal joinPrice;
|
||||
|
||||
private String groupRemark;
|
||||
|
||||
private Integer deleteFlag;
|
||||
|
||||
private LocalDateTime createTime;
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
}
|
||||
112
ruoyi-xq/src/main/java/com/ruoyi/xq/domain/GroupOrder.java
Normal file
112
ruoyi-xq/src/main/java/com/ruoyi/xq/domain/GroupOrder.java
Normal file
@@ -0,0 +1,112 @@
|
||||
package com.ruoyi.xq.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 入群订单对象 xq_group_order
|
||||
*
|
||||
* @author 77
|
||||
* @date 2024-05-15
|
||||
*/
|
||||
@Data
|
||||
@TableName("xq_group_order")
|
||||
public class GroupOrder implements Serializable {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
/**
|
||||
* 群ID
|
||||
*/
|
||||
private Long groupId;
|
||||
/**
|
||||
* 群头像
|
||||
*/
|
||||
private String groupImage;
|
||||
/**
|
||||
* 群名称
|
||||
*/
|
||||
private String groupName;
|
||||
/**
|
||||
* 城市名称
|
||||
*/
|
||||
private String cityName;
|
||||
/**
|
||||
* 城市编码
|
||||
*/
|
||||
private String cityCode;
|
||||
/**
|
||||
* 活动填写手机
|
||||
*/
|
||||
private String joinMobile;
|
||||
/**
|
||||
* 入群价格
|
||||
*/
|
||||
private BigDecimal joinPrice;
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
private Long userId;
|
||||
/**
|
||||
* 用户号
|
||||
*/
|
||||
private String usercode;
|
||||
/**
|
||||
* 性别
|
||||
*/
|
||||
private Integer gender;
|
||||
/**
|
||||
* 下单body
|
||||
*/
|
||||
private String body;
|
||||
/**
|
||||
* 订单说明
|
||||
*/
|
||||
private String orderName;
|
||||
/**
|
||||
* 订单号
|
||||
*/
|
||||
private String orderNo;
|
||||
/**
|
||||
* 平台
|
||||
*/
|
||||
private String platformType;
|
||||
/**
|
||||
* 状态 0-待支付 1-已支付 5-已退款 10-无需支付
|
||||
*/
|
||||
private Integer payStatus;
|
||||
/**
|
||||
* 支付时间
|
||||
*/
|
||||
private LocalDateTime payTime;
|
||||
/**
|
||||
* appId
|
||||
*/
|
||||
private String appid;
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private String returnContent;
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private String operateIp;
|
||||
/**
|
||||
* 后台操作管理员ID
|
||||
*/
|
||||
private Long adminId;
|
||||
|
||||
private LocalDateTime createTime;
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.ruoyi.xq.dto.app.group;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class CreateGroupOrderReq {
|
||||
@Schema(description = "群ID")
|
||||
private Long groupId;
|
||||
|
||||
@Schema(description = "手机号")
|
||||
private String mobile;
|
||||
|
||||
@Schema(hidden = true)
|
||||
private Long userId;
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package com.ruoyi.xq.dto.app.group;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@Data
|
||||
public class GroupInfoAppVo extends GroupListAppVo {
|
||||
private String groupRemark;
|
||||
@Schema(description = "参与状态 0-未支付 1-已支付")
|
||||
private Integer joinStatus;
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
package com.ruoyi.xq.dto.app.group;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@Data
|
||||
public class GroupListAppVo {
|
||||
private Long id;
|
||||
/**
|
||||
* 群头像
|
||||
*/
|
||||
private String groupImage;
|
||||
/**
|
||||
* 群名称
|
||||
*/
|
||||
private String groupName;
|
||||
/**
|
||||
* 群内女性比例
|
||||
*/
|
||||
private Integer groupWomanRate;
|
||||
/**
|
||||
* 群内男性比例
|
||||
*/
|
||||
private Integer groupManRate;
|
||||
/**
|
||||
* 城市名称
|
||||
*/
|
||||
private String cityName;
|
||||
/**
|
||||
* 城市编码
|
||||
*/
|
||||
private String cityCode;
|
||||
/**
|
||||
* 入群价格
|
||||
*/
|
||||
private BigDecimal joinPrice;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
package com.ruoyi.xq.dto.app.group;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class GroupQuery {
|
||||
@Schema(description = "城市编码")
|
||||
private String cityCode;
|
||||
}
|
||||
@@ -9,6 +9,7 @@ public enum OrderTypeEnum {
|
||||
WX_TRANS("X"),
|
||||
AUTH_ORDER("A"),
|
||||
ACTIVITY_MATCHMAKING("M"),
|
||||
GROUP("G"),
|
||||
;
|
||||
|
||||
private final String type;
|
||||
|
||||
@@ -7,7 +7,8 @@ public enum TraceIdEnum {
|
||||
WITHDRAW("WT","提现"),
|
||||
VIP("VT","VIP"),
|
||||
WX_TRANS("XT","微信交换"),
|
||||
ACTIVITY_MATCHMAKING("AM","相亲会"),
|
||||
ACTIVITY_MATCHMAKING("AT","相亲会"),
|
||||
GROUP("GT","相亲群"),
|
||||
;
|
||||
private final String code;
|
||||
private final String text;
|
||||
|
||||
@@ -1,10 +1,7 @@
|
||||
package com.ruoyi.xq.manager;
|
||||
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
import com.ruoyi.xq.domain.AuthOrder;
|
||||
import com.ruoyi.xq.domain.VipOrder;
|
||||
import com.ruoyi.xq.domain.VipPrice;
|
||||
import com.ruoyi.xq.domain.WxTransOrder;
|
||||
import com.ruoyi.xq.domain.*;
|
||||
import com.ruoyi.xq.dto.app.pay.ConsumeResp;
|
||||
import com.ruoyi.xq.dto.app.pay.PayOrderInfoDTO;
|
||||
import com.ruoyi.xq.enums.common.OrderTypeEnum;
|
||||
@@ -13,7 +10,6 @@ import com.ruoyi.xq.enums.pay.PlatformTypeEnum;
|
||||
import com.ruoyi.xq.mq.AmqpProducer;
|
||||
import com.ruoyi.xq.mq.handle.dto.CalculateSalesHandleDTO;
|
||||
import com.ruoyi.xq.service.*;
|
||||
import com.ruoyi.xq.service.impl.AuthOrderServiceImpl;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
@@ -37,6 +33,8 @@ public class PayManager {
|
||||
private AuthOrderService authOrderService;
|
||||
@Autowired
|
||||
private ActivityOrderService activityOrderService;
|
||||
@Autowired
|
||||
private GroupOrderService groupOrderService;
|
||||
|
||||
public PayOrderInfoDTO getOrderInfo(String orderNo){
|
||||
OrderTypeEnum orderTypeEnum = OrderNoUtil.getType(orderNo);
|
||||
@@ -88,6 +86,34 @@ public class PayManager {
|
||||
dto.setPrice(authOrder.getPrice());
|
||||
dto.setOrderNo(authOrder.getOrderNo());
|
||||
break;
|
||||
case ACTIVITY_MATCHMAKING:
|
||||
ActivityOrder activityOrder = activityOrderService.getByOrderNo(orderNo);
|
||||
if(activityOrder == null){
|
||||
throw new ServiceException("订单不存在,请重新下单支付");
|
||||
}
|
||||
if(!PayStatusEnum.READY_PAY.getCode().equals(activityOrder.getPayStatus())){
|
||||
throw new ServiceException("订单状态有误,请重新下单支付");
|
||||
}
|
||||
dto = new PayOrderInfoDTO();
|
||||
dto.setBody(activityOrder.getBody());
|
||||
dto.setSubject(activityOrder.getBody());
|
||||
dto.setPrice(activityOrder.getPrice());
|
||||
dto.setOrderNo(activityOrder.getOrderNo());
|
||||
break;
|
||||
case GROUP:
|
||||
GroupOrder groupOrder = groupOrderService.getByOrderNo(orderNo);
|
||||
if(groupOrder == null){
|
||||
throw new ServiceException("订单不存在,请重新下单支付");
|
||||
}
|
||||
if(!PayStatusEnum.READY_PAY.getCode().equals(groupOrder.getPayStatus())){
|
||||
throw new ServiceException("订单状态有误,请重新下单支付");
|
||||
}
|
||||
dto = new PayOrderInfoDTO();
|
||||
dto.setBody(groupOrder.getBody());
|
||||
dto.setSubject(groupOrder.getBody());
|
||||
dto.setPrice(groupOrder.getJoinPrice());
|
||||
dto.setOrderNo(groupOrder.getOrderNo());
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -148,6 +174,9 @@ public class PayManager {
|
||||
case ACTIVITY_MATCHMAKING:
|
||||
activityOrderService.doSuccess(orderNo, params, appId, payTypeEnum);
|
||||
break;
|
||||
case GROUP:
|
||||
groupOrderService.doSuccess(orderNo, params, appId, payTypeEnum);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
20
ruoyi-xq/src/main/java/com/ruoyi/xq/mapper/GroupMapper.java
Normal file
20
ruoyi-xq/src/main/java/com/ruoyi/xq/mapper/GroupMapper.java
Normal file
@@ -0,0 +1,20 @@
|
||||
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.Group;
|
||||
import com.ruoyi.xq.dto.app.group.GroupListAppVo;
|
||||
import com.ruoyi.xq.dto.app.group.GroupQuery;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* 相亲群Mapper接口
|
||||
*
|
||||
* @author 77
|
||||
* @date 2024-05-15
|
||||
*/
|
||||
public interface GroupMapper extends BaseMapper<Group> {
|
||||
|
||||
Page<GroupListAppVo> pageApp(@Param("build") Page<Object> build, @Param("query") GroupQuery query);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.ruoyi.xq.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.ruoyi.xq.domain.GroupOrder;
|
||||
|
||||
/**
|
||||
* 入群订单Mapper接口
|
||||
*
|
||||
* @author 77
|
||||
* @date 2024-05-15
|
||||
*/
|
||||
public interface GroupOrderMapper extends BaseMapper<GroupOrder> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.ruoyi.xq.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.ruoyi.xq.domain.GroupOrder;
|
||||
import com.ruoyi.xq.dto.app.group.CreateGroupOrderReq;
|
||||
import com.ruoyi.xq.dto.app.pay.ConsumeResp;
|
||||
import com.ruoyi.xq.enums.pay.PlatformTypeEnum;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 入群订单Service接口
|
||||
*
|
||||
* @author 77
|
||||
* @date 2024-05-15
|
||||
*/
|
||||
public interface GroupOrderService extends IService<GroupOrder> {
|
||||
GroupOrder getSuccessByGroupIdAndUserId(Long groupId, Long userId);
|
||||
|
||||
GroupOrder createOrder(CreateGroupOrderReq req);
|
||||
|
||||
GroupOrder getByOrderNo(String orderNo);
|
||||
|
||||
ConsumeResp doSuccess(String orderNo, Map<String, String> params, String appId, PlatformTypeEnum payTypeEnum);
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
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.Group;
|
||||
import com.ruoyi.xq.dto.app.activity.ActivityShopAppInfo;
|
||||
import com.ruoyi.xq.dto.app.group.GroupInfoAppVo;
|
||||
import com.ruoyi.xq.dto.app.group.GroupListAppVo;
|
||||
import com.ruoyi.xq.dto.app.group.GroupQuery;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 相亲群Service接口
|
||||
*
|
||||
* @author 77
|
||||
* @date 2024-05-15
|
||||
*/
|
||||
public interface GroupService extends IService<Group> {
|
||||
|
||||
void removeData(List<Long> ids);
|
||||
|
||||
void updateData(Group bo);
|
||||
|
||||
void saveData(Group bo);
|
||||
|
||||
Page<GroupListAppVo> pageApp(PageQuery pageQuery, GroupQuery groupQuery);
|
||||
|
||||
GroupInfoAppVo info(Long groupId);
|
||||
|
||||
}
|
||||
@@ -63,7 +63,7 @@ public class ActivityOrderServiceImpl extends ServiceImpl<ActivityOrderMapper,Ac
|
||||
BigDecimal price = null;
|
||||
if(UserGenderEnum.MAN.getCode().equals(minUser.getGender())){
|
||||
price = activityShop.getJoinManPrice();
|
||||
}else if(UserGenderEnum.MAN.getCode().equals(minUser.getGender())){
|
||||
}else if(UserGenderEnum.WOMEN.getCode().equals(minUser.getGender())){
|
||||
price = activityShop.getJoinWomenPrice();
|
||||
}else{
|
||||
throw new ServiceException("用户异常");
|
||||
|
||||
@@ -27,7 +27,9 @@ import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 相亲会Service业务层处理
|
||||
@@ -312,8 +314,9 @@ public class ActivityShopServiceImpl extends ServiceImpl<ActivityShopMapper,Acti
|
||||
|
||||
@Override
|
||||
public void removeDataByIds(Long[] ids) {
|
||||
List<Long> idArray = Arrays.stream(ids).collect(Collectors.toList());
|
||||
this.update(Wrappers.lambdaUpdate(ActivityShop.class)
|
||||
.eq(ActivityShop::getId, ids)
|
||||
.in(ActivityShop::getId, idArray)
|
||||
.set(ActivityShop::getDeleteFlag, 1));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,118 @@
|
||||
package com.ruoyi.xq.service.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
import com.ruoyi.xq.domain.ActivityOrder;
|
||||
import com.ruoyi.xq.domain.Group;
|
||||
import com.ruoyi.xq.domain.GroupOrder;
|
||||
import com.ruoyi.xq.dto.app.group.CreateGroupOrderReq;
|
||||
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.manager.OrderNoUtil;
|
||||
import com.ruoyi.xq.manager.TraceIdManager;
|
||||
import com.ruoyi.xq.mapper.GroupOrderMapper;
|
||||
import com.ruoyi.xq.service.GroupOrderService;
|
||||
import com.ruoyi.xq.service.GroupService;
|
||||
import com.ruoyi.xq.service.UserService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 入群订单Service业务层处理
|
||||
*
|
||||
* @author 77
|
||||
* @date 2024-05-15
|
||||
*/
|
||||
@Service
|
||||
public class GroupOrderServiceImpl extends ServiceImpl<GroupOrderMapper,GroupOrder> implements GroupOrderService {
|
||||
|
||||
@Autowired
|
||||
private GroupService groupService;
|
||||
@Autowired
|
||||
private UserService userService;
|
||||
|
||||
@Override
|
||||
public GroupOrder getSuccessByGroupIdAndUserId(Long groupId, Long userId) {
|
||||
return this.getOne(Wrappers.lambdaQuery(GroupOrder.class).eq(GroupOrder::getGroupId, groupId)
|
||||
.eq(GroupOrder::getPayStatus, PayStatusEnum.PAY.getCode())
|
||||
.eq(GroupOrder::getUserId, userId).last("limit 1"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public GroupOrder createOrder(CreateGroupOrderReq req) {
|
||||
GroupOrder order = this.getSuccessByGroupIdAndUserId(req.getGroupId(), req.getUserId());
|
||||
if(order != null){
|
||||
throw new ServiceException("您已支付过,无法重复支付");
|
||||
}
|
||||
MinUser minUser = userService.getMinUserById(req.getUserId());
|
||||
if(minUser== null){
|
||||
throw new ServiceException("用户不存在");
|
||||
}
|
||||
Group group = groupService.getById(req.getGroupId());
|
||||
if(group == null){
|
||||
throw new ServiceException("相亲群不存在");
|
||||
}
|
||||
String orderNo = OrderNoUtil.gen(OrderTypeEnum.GROUP);
|
||||
GroupOrder add = new GroupOrder();
|
||||
add.setGroupId(group.getId());
|
||||
add.setGroupImage(group.getGroupImage());
|
||||
add.setGroupName(group.getGroupName());
|
||||
add.setCityName(group.getCityName());
|
||||
add.setCityCode(group.getCityCode());
|
||||
add.setJoinMobile(req.getMobile());
|
||||
add.setJoinPrice(group.getJoinPrice());
|
||||
add.setUserId(minUser.getId());
|
||||
add.setUsercode(minUser.getUsercode());
|
||||
add.setGender(minUser.getGender());
|
||||
add.setBody("入群费用");
|
||||
add.setOrderName("入群费用");
|
||||
add.setOrderNo(orderNo);
|
||||
add.setPayStatus(PayStatusEnum.READY_PAY.getCode());
|
||||
return add;
|
||||
}
|
||||
|
||||
@Override
|
||||
public GroupOrder getByOrderNo(String orderNo){
|
||||
return this.getOne(Wrappers.lambdaQuery(GroupOrder.class).eq(GroupOrder::getOrderNo, orderNo).last("limit 1"));
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public ConsumeResp doSuccess(String orderNo, Map<String, String> params, String appId, PlatformTypeEnum payTypeEnum){
|
||||
GroupOrder order = this.getByOrderNo(orderNo);
|
||||
if(order == null){
|
||||
ConsumeResp resp = new ConsumeResp();
|
||||
resp.setSuccess(false);
|
||||
return resp;
|
||||
}
|
||||
String traceId = TraceIdManager.gen(TraceIdEnum.GROUP);
|
||||
boolean success = this.update(Wrappers.lambdaUpdate(GroupOrder.class)
|
||||
.eq(GroupOrder::getId, order.getId())
|
||||
.eq(GroupOrder::getPayStatus, PayStatusEnum.READY_PAY.getCode())
|
||||
.set(GroupOrder::getPayStatus, PayStatusEnum.PAY.getCode())
|
||||
.set(GroupOrder::getReturnContent, JSON.toJSONString(params))
|
||||
.set(GroupOrder::getAppid,appId)
|
||||
.set(GroupOrder::getPlatformType, payTypeEnum.getCode()));
|
||||
if(!success){
|
||||
ConsumeResp resp = new ConsumeResp();
|
||||
resp.setSuccess(false);
|
||||
return resp;
|
||||
}
|
||||
ConsumeResp resp = new ConsumeResp();
|
||||
resp.setPrice(order.getJoinPrice());
|
||||
resp.setUserId(order.getUserId());
|
||||
resp.setTraceId(traceId);
|
||||
resp.setSuccess(true);
|
||||
return resp;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,90 @@
|
||||
package com.ruoyi.xq.service.impl;
|
||||
|
||||
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.helper.LoginHelper;
|
||||
import com.ruoyi.xq.domain.ActivityShop;
|
||||
import com.ruoyi.xq.domain.AreaCode;
|
||||
import com.ruoyi.xq.domain.Group;
|
||||
import com.ruoyi.xq.domain.GroupOrder;
|
||||
import com.ruoyi.xq.dto.app.activity.ActivityShopAppInfo;
|
||||
import com.ruoyi.xq.dto.app.group.GroupInfoAppVo;
|
||||
import com.ruoyi.xq.dto.app.group.GroupListAppVo;
|
||||
import com.ruoyi.xq.dto.app.group.GroupQuery;
|
||||
import com.ruoyi.xq.mapper.GroupMapper;
|
||||
import com.ruoyi.xq.service.AreaCodeService;
|
||||
import com.ruoyi.xq.service.GroupOrderService;
|
||||
import com.ruoyi.xq.service.GroupService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 相亲群Service业务层处理
|
||||
*
|
||||
* @author 77
|
||||
* @date 2024-05-15
|
||||
*/
|
||||
@Service
|
||||
public class GroupServiceImpl extends ServiceImpl<GroupMapper,Group> implements GroupService {
|
||||
|
||||
@Autowired
|
||||
private AreaCodeService areaCodeService;
|
||||
@Autowired
|
||||
private GroupOrderService groupOrderService;
|
||||
|
||||
@Override
|
||||
public void removeData(List<Long> ids) {
|
||||
this.update(Wrappers.lambdaUpdate(Group.class)
|
||||
.in(Group::getId, ids)
|
||||
.set(Group::getDeleteFlag, 1));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateData(Group bo) {
|
||||
AreaCode areaCode = areaCodeService.getById(bo.getCityCode());
|
||||
bo.setCityName(areaCode.getName());
|
||||
this.updateById(bo);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void saveData(Group bo) {
|
||||
AreaCode areaCode = areaCodeService.getById(bo.getCityCode());
|
||||
bo.setCityName(areaCode.getName());
|
||||
this.save(bo);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Page<GroupListAppVo> pageApp(PageQuery pageQuery, GroupQuery groupQuery) {
|
||||
return baseMapper.pageApp(pageQuery.build(), groupQuery);
|
||||
}
|
||||
|
||||
@Override
|
||||
public GroupInfoAppVo info(Long groupId) {
|
||||
Long userId = LoginHelper.getUserId();
|
||||
Group group = this.getById(groupId);
|
||||
GroupInfoAppVo vo = new GroupInfoAppVo();
|
||||
vo.setGroupRemark(group.getGroupRemark());
|
||||
vo.setJoinStatus(0);
|
||||
vo.setId(group.getId());
|
||||
vo.setGroupImage(group.getGroupImage());
|
||||
vo.setGroupName(group.getGroupName());
|
||||
vo.setGroupWomanRate(group.getGroupWomanRate());
|
||||
vo.setGroupManRate(group.getGroupManRate());
|
||||
vo.setCityName(group.getCityName());
|
||||
vo.setCityCode(group.getCityCode());
|
||||
vo.setJoinPrice(group.getJoinPrice());
|
||||
if(userId != null){
|
||||
GroupOrder groupOrder = groupOrderService.getSuccessByGroupIdAndUserId(groupId,userId);
|
||||
if(groupOrder != null){
|
||||
vo.setJoinStatus(1);
|
||||
}
|
||||
}
|
||||
return vo;
|
||||
}
|
||||
}
|
||||
29
ruoyi-xq/src/main/resources/mapper/xq/GroupMapper.xml
Normal file
29
ruoyi-xq/src/main/resources/mapper/xq/GroupMapper.xml
Normal file
@@ -0,0 +1,29 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.ruoyi.xq.mapper.GroupMapper">
|
||||
|
||||
<resultMap type="com.ruoyi.xq.domain.Group" id="GroupResult">
|
||||
<result property="id" column="id"/>
|
||||
<result property="groupImage" column="group_image"/>
|
||||
<result property="groupName" column="group_name"/>
|
||||
<result property="groupWomanRate" column="group_woman_rate"/>
|
||||
<result property="groupManRate" column="group_man_rate"/>
|
||||
<result property="cityName" column="city_name"/>
|
||||
<result property="cityCode" column="city_code"/>
|
||||
<result property="joinPrice" column="join_price"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="updateTime" column="update_time"/>
|
||||
</resultMap>
|
||||
<select id="pageApp" resultType="com.ruoyi.xq.dto.app.group.GroupListAppVo">
|
||||
select t1.*
|
||||
from xq_group t1
|
||||
where delete_flag = 0
|
||||
<if test="query.cityCode != null and query.cityCode != ''">
|
||||
and t1.city_code = #{query.cityCode}
|
||||
</if>
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
34
ruoyi-xq/src/main/resources/mapper/xq/GroupOrderMapper.xml
Normal file
34
ruoyi-xq/src/main/resources/mapper/xq/GroupOrderMapper.xml
Normal file
@@ -0,0 +1,34 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.ruoyi.xq.mapper.GroupOrderMapper">
|
||||
|
||||
<resultMap type="com.ruoyi.xq.domain.GroupOrder" id="GroupOrderResult">
|
||||
<result property="id" column="id"/>
|
||||
<result property="groupId" column="group_id"/>
|
||||
<result property="groupImage" column="group_image"/>
|
||||
<result property="groupName" column="group_name"/>
|
||||
<result property="cityName" column="city_name"/>
|
||||
<result property="cityCode" column="city_code"/>
|
||||
<result property="joinMobile" column="join_mobile"/>
|
||||
<result property="joinPrice" column="join_price"/>
|
||||
<result property="userId" column="user_id"/>
|
||||
<result property="usercode" column="usercode"/>
|
||||
<result property="gender" column="gender"/>
|
||||
<result property="body" column="body"/>
|
||||
<result property="orderName" column="order_name"/>
|
||||
<result property="orderNo" column="order_no"/>
|
||||
<result property="platformType" column="platform_type"/>
|
||||
<result property="payStatus" column="pay_status"/>
|
||||
<result property="payTime" column="pay_time"/>
|
||||
<result property="appid" column="appid"/>
|
||||
<result property="returnContent" column="return_content"/>
|
||||
<result property="operateIp" column="operate_ip"/>
|
||||
<result property="adminId" column="admin_id"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="updateTime" column="update_time"/>
|
||||
</resultMap>
|
||||
|
||||
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user