init
This commit is contained in:
@@ -0,0 +1,11 @@
|
|||||||
|
package com.ruoyi.xq.controller.app;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/api/pay")
|
||||||
|
@Tag(name = "支付接口")
|
||||||
|
public class PayController {
|
||||||
|
}
|
||||||
@@ -26,7 +26,7 @@ import java.util.List;
|
|||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/api/vip")
|
@RequestMapping("/api/vip")
|
||||||
@Tag(name = "VIP相关接口")
|
@Tag(name = "VIP相关接口")
|
||||||
public class VipController {
|
public class VipAppController {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private VipPriceService vipPriceService;
|
private VipPriceService vipPriceService;
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
package com.ruoyi.xq.controller.app;
|
||||||
|
|
||||||
|
import com.ruoyi.common.annotation.Log;
|
||||||
|
import com.ruoyi.common.core.domain.R;
|
||||||
|
import com.ruoyi.common.enums.BusinessType;
|
||||||
|
import com.ruoyi.common.helper.LoginHelper;
|
||||||
|
import com.ruoyi.xq.domain.WxTransOrder;
|
||||||
|
import com.ruoyi.xq.dto.app.pay.OrderCreateVo;
|
||||||
|
import com.ruoyi.xq.dto.app.wxtrans.GenWxTransOrderReq;
|
||||||
|
import com.ruoyi.xq.dto.app.wxtrans.WxTransPriceAppVo;
|
||||||
|
import com.ruoyi.xq.enums.common.SystemConfigEnum;
|
||||||
|
import com.ruoyi.xq.manager.SystemConfigManager;
|
||||||
|
import com.ruoyi.xq.service.WxTransOrderService;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/api/wxTrans")
|
||||||
|
@Tag(name = "微信交换接口")
|
||||||
|
public class WxTransAppController {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private WxTransOrderService wxTransOrderService;
|
||||||
|
@Autowired
|
||||||
|
private SystemConfigManager systemConfigManager;
|
||||||
|
|
||||||
|
@GetMapping("/get/price")
|
||||||
|
@Operation(summary = "获取微信交换单价")
|
||||||
|
@Log(title = "获取微信交换单价", businessType = BusinessType.OTHER, isSaveDb = false)
|
||||||
|
public R<WxTransPriceAppVo> getPrice(){
|
||||||
|
WxTransPriceAppVo vo = new WxTransPriceAppVo();
|
||||||
|
BigDecimal price = systemConfigManager.getSystemConfigOfBigDecimal(SystemConfigEnum.WX_TRANS_PRICE);
|
||||||
|
vo.setPrice(price);
|
||||||
|
return R.ok(vo);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/order/create")
|
||||||
|
@Operation(summary = "生成微信交换订单")
|
||||||
|
@Log(title = "生成微信交换订单", businessType = BusinessType.OTHER, isSaveDb = false)
|
||||||
|
public R<OrderCreateVo> createVipOrder(@RequestBody GenWxTransOrderReq req){
|
||||||
|
Long userId = LoginHelper.getUserId();
|
||||||
|
WxTransOrder vipOrder = wxTransOrderService.createVipOrder(userId, req.getWxTransNum());
|
||||||
|
OrderCreateVo result = new OrderCreateVo();
|
||||||
|
result.setPrice(vipOrder.getWxPrice());
|
||||||
|
result.setOrderNo(vipOrder.getOrderNo());
|
||||||
|
result.setOrderName(vipOrder.getOrderName());
|
||||||
|
return R.ok(result);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
package com.ruoyi.xq.dto.app.wxtrans;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class GenWxTransOrderReq {
|
||||||
|
@Schema(description = "wx交换次数")
|
||||||
|
private Integer wxTransNum;
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
package com.ruoyi.xq.dto.app.wxtrans;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class WxTransPriceAppVo {
|
||||||
|
@Schema(description = "价格")
|
||||||
|
private BigDecimal price;
|
||||||
|
}
|
||||||
@@ -11,7 +11,10 @@ import lombok.Setter;
|
|||||||
* @author ZL
|
* @author ZL
|
||||||
*/
|
*/
|
||||||
public enum SystemConfigEnum {
|
public enum SystemConfigEnum {
|
||||||
|
// TODO 限制为两位小数
|
||||||
|
WX_TRANS_PRICE("0.01", "微信交换次数价格", SystemConfigGroupEnum.BUSINESS, null),
|
||||||
RANK_LOVE_DAY_AWARD("138,108,88,58,38,28,28,28,28,28,28", "魅力榜日榜前10名奖励", SystemConfigGroupEnum.BUSINESS, new NumberListSystemConfigCheck(10)),
|
RANK_LOVE_DAY_AWARD("138,108,88,58,38,28,28,28,28,28,28", "魅力榜日榜前10名奖励", SystemConfigGroupEnum.BUSINESS, new NumberListSystemConfigCheck(10)),
|
||||||
|
|
||||||
RANK_LOVE_WEEK_AWARD("888,588,388,288,188,138,138,138,138,138,138,138", "魅力榜周榜前10名奖励",SystemConfigGroupEnum.BUSINESS, new NumberListSystemConfigCheck(10)),
|
RANK_LOVE_WEEK_AWARD("888,588,388,288,188,138,138,138,138,138,138,138", "魅力榜周榜前10名奖励",SystemConfigGroupEnum.BUSINESS, new NumberListSystemConfigCheck(10)),
|
||||||
RANK_INVITE_DAY_AWARD("138,108,88,58,38,28,28,28,28,28,28", "邀请榜日榜前10名奖励",SystemConfigGroupEnum.BUSINESS,new NumberListSystemConfigCheck(10)),
|
RANK_INVITE_DAY_AWARD("138,108,88,58,38,28,28,28,28,28,28", "邀请榜日榜前10名奖励",SystemConfigGroupEnum.BUSINESS,new NumberListSystemConfigCheck(10)),
|
||||||
RANK_INVITE_WEEK_AWARD("888,588,388,288,188,138,138,138,138,138,138,138", "邀请榜周榜前10名奖励",SystemConfigGroupEnum.BUSINESS,new NumberListSystemConfigCheck(10)),
|
RANK_INVITE_WEEK_AWARD("888,588,388,288,188,138,138,138,138,138,138,138", "邀请榜周榜前10名奖励",SystemConfigGroupEnum.BUSINESS,new NumberListSystemConfigCheck(10)),
|
||||||
|
|||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package com.ruoyi.xq.enums.wxtrans;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
public enum WxTransSourceEnum {
|
||||||
|
ORDER(1,"订单"),
|
||||||
|
VIP(2,"VIP"),
|
||||||
|
ADMIN(3,"后台管理新增"),
|
||||||
|
|
||||||
|
;
|
||||||
|
private final Integer code;
|
||||||
|
private final String text;
|
||||||
|
|
||||||
|
WxTransSourceEnum(Integer code, String text) {
|
||||||
|
this.code = code;
|
||||||
|
this.text = text;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -11,4 +11,5 @@ import com.ruoyi.xq.domain.WxTransOrder;
|
|||||||
*/
|
*/
|
||||||
public interface WxTransOrderService extends IService<WxTransOrder> {
|
public interface WxTransOrderService extends IService<WxTransOrder> {
|
||||||
|
|
||||||
|
WxTransOrder createVipOrder(Long userId, Integer wxTransNum);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,23 @@
|
|||||||
package com.ruoyi.xq.service.impl;
|
package com.ruoyi.xq.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.NumberUtil;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.ruoyi.xq.domain.User;
|
||||||
import com.ruoyi.xq.domain.WxTransOrder;
|
import com.ruoyi.xq.domain.WxTransOrder;
|
||||||
|
import com.ruoyi.xq.enums.common.OrderTypeEnum;
|
||||||
|
import com.ruoyi.xq.enums.common.SystemConfigEnum;
|
||||||
|
import com.ruoyi.xq.enums.pay.PayStatusEnum;
|
||||||
|
import com.ruoyi.xq.enums.wxtrans.WxTransSourceEnum;
|
||||||
|
import com.ruoyi.xq.manager.OrderNoUtil;
|
||||||
|
import com.ruoyi.xq.manager.SystemConfigManager;
|
||||||
import com.ruoyi.xq.mapper.WxTransOrderMapper;
|
import com.ruoyi.xq.mapper.WxTransOrderMapper;
|
||||||
|
import com.ruoyi.xq.service.UserService;
|
||||||
import com.ruoyi.xq.service.WxTransOrderService;
|
import com.ruoyi.xq.service.WxTransOrderService;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 微信交换订单Service业务层处理
|
* 微信交换订单Service业务层处理
|
||||||
*
|
*
|
||||||
@@ -15,4 +27,26 @@ import org.springframework.stereotype.Service;
|
|||||||
@Service
|
@Service
|
||||||
public class WxTransOrderServiceImpl extends ServiceImpl<WxTransOrderMapper,WxTransOrder> implements WxTransOrderService {
|
public class WxTransOrderServiceImpl extends ServiceImpl<WxTransOrderMapper,WxTransOrder> implements WxTransOrderService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private SystemConfigManager systemConfigManager;
|
||||||
|
@Autowired
|
||||||
|
private UserService userService;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public WxTransOrder createVipOrder(Long userId, Integer wxTransNum) {
|
||||||
|
BigDecimal price = systemConfigManager.getSystemConfigOfBigDecimal(SystemConfigEnum.WX_TRANS_PRICE);
|
||||||
|
String orderNo = OrderNoUtil.gen(OrderTypeEnum.VIP);
|
||||||
|
User user = userService.getById(userId);
|
||||||
|
WxTransOrder order = new WxTransOrder();
|
||||||
|
order.setUserId(user.getId());
|
||||||
|
order.setUsercode(user.getUsercode());
|
||||||
|
order.setWxNum(wxTransNum);
|
||||||
|
order.setWxPrice(NumberUtil.add(price,wxTransNum));
|
||||||
|
order.setOrderName("微信交换订单");
|
||||||
|
order.setOrderNo(orderNo);
|
||||||
|
order.setPayStatus(PayStatusEnum.READY_PAY.getCode());
|
||||||
|
order.setSource(WxTransSourceEnum.ORDER.getCode());
|
||||||
|
this.save(order);
|
||||||
|
return order;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user