Browse Source

add 添加订单管理信息数据结构

杨兴卓 1 month ago
parent
commit
01135c7aee

+ 1 - 0
pom.xml

@@ -91,6 +91,7 @@
                 <nacos.username>nacos</nacos.username>
                 <nacos.password>xyzcadmin123</nacos.password>
                 <logstash.address>127.0.0.1:4560</logstash.address>
+                <jar.ip>121.15.198.153</jar.ip>
             </properties>
         </profile>
         <profile>

+ 1 - 0
xyzc-common/xyzc-common-core/src/main/java/com/xyzc/common/core/exception/ErrorCode.java

@@ -47,6 +47,7 @@ public enum ErrorCode {
     ORDER_NO_EXIST(2007, "此订单号不存在"),
     DISCOUNT_NO_CONFIG(2008, "折扣未配置"),
     NO_SELECT_DATA(2009, "未查询到数据"),
+    SCHEME_NOT_EXIST(2050, "方案不存在"),
 
 
     // 用户燃料不足

+ 14 - 2
xyzc-start/src/main/java/com/xyzc/start/controller/SchemeController.java

@@ -1,8 +1,10 @@
 package com.xyzc.start.controller;
 
 import com.xyzc.common.core.utils.Result;
+import com.xyzc.start.domain.bo.CreateOrderBo;
 import com.xyzc.start.domain.vo.*;
 import com.xyzc.start.service.ISchemeService;
+import jakarta.validation.Valid;
 import lombok.RequiredArgsConstructor;
 import org.springframework.web.bind.annotation.*;
 
@@ -34,12 +36,22 @@ public class SchemeController {
      * 会员卡订单展示
      */
     @GetMapping("/memberOrder")
-    public Result<BaseUserOrderVo> memberOrder() {
-//        List<SchemeVo> scheme = schemeService.memberOrder();
+    public Result<BaseUserOrderVo> queryOrder() {
+//        BaseUserOrderVo userOrder = schemeService.queryOrder();
 
         return Result.ok();
     }
 
+    /**
+     * 购买物品订单生成(单个卡片或燃料)
+     */
+    @PostMapping("/createOrder")
+    public Result<BaseUserOrderVo> createOrder(@RequestBody @Valid CreateOrderBo bo){
+        BaseUserOrderVo userOrder = schemeService.createOrder(bo);
+
+        return Result.ok(userOrder);
+    }
+
 
     /**
      * 燃料包生效套餐信息

+ 71 - 0
xyzc-start/src/main/java/com/xyzc/start/domain/BaseUserMemberCard.java

@@ -0,0 +1,71 @@
+package com.xyzc.start.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.Version;
+import com.xyzc.start.domain.vo.MemberCardUseDetail;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 用户会员卡
+ *
+ * @author 杨兴卓
+ */
+@Data
+@TableName("xy_base_user_member_card")
+public class BaseUserMemberCard implements Serializable {
+
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 会员卡id
+     */
+    private Long memberId;
+
+    /**
+     * 会员卡图地址
+     */
+    private Long baseUserId;
+
+    /**
+     * 版本号
+     */
+    @Version
+    private Integer version;
+
+    /**
+     * 会员卡状态,0-生效,1-过期,2-冻结
+     */
+    private Integer status;
+
+    /**
+     * 到期时间
+     */
+    private Date expireTime;
+
+    /**
+     * 会员卡使用详情
+     */
+    private Long agentMerId;
+
+    /**
+     * 逻辑删除
+     */
+    private Integer delFlag;
+
+    /**
+     * 会员卡别名id
+     */
+    private Long memberCardAliasId;
+
+    /**
+     * 购买订单id
+     */
+    private Long baseUserOrderId;
+
+}

+ 44 - 0
xyzc-start/src/main/java/com/xyzc/start/domain/BaseUserOrder.java

@@ -0,0 +1,44 @@
+package com.xyzc.start.domain;
+
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.Version;
+import com.xyzc.common.mybatis.core.domain.BaseEntity;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 用户订单展示
+ *
+ * @author 杨兴卓
+ */
+@Data
+@TableName("xy_base_user_order")
+public class BaseUserOrder extends BaseEntity {
+
+    private Long id;
+
+    private Long baseUserId;
+
+    private Integer status;
+
+    private Integer orderType;
+
+    private Long agentMerId;
+
+    private Integer payMethod;
+
+    private BigDecimal goodsAmount;
+
+    private BigDecimal payAmount;
+
+    private BigDecimal discountAmount;
+
+    @TableLogic
+    private String delFlag;
+
+    @Version
+    private Integer version;
+}

+ 24 - 0
xyzc-start/src/main/java/com/xyzc/start/domain/bo/CreateOrderBo.java

@@ -0,0 +1,24 @@
+package com.xyzc.start.domain.bo;
+
+import lombok.Data;
+import org.hibernate.validator.constraints.Range;
+
+/**
+ * 生成订单类
+ *
+ * @author 杨兴卓
+ */
+@Data
+public class CreateOrderBo {
+
+    /**
+     * 和type联合使用,0-会员卡id, 1-燃料包id
+     */
+    private Long id;
+
+    /**
+     * 1-会员卡, 2-燃料包,3-卡密兑换
+     */
+    @Range(min = 1, max = 3, message = "type参数错误,请输入{min}到{max}之间的值")
+    private Integer type;
+}

+ 57 - 1
xyzc-start/src/main/java/com/xyzc/start/domain/vo/BaseUserOrderVo.java

@@ -1,8 +1,12 @@
 package com.xyzc.start.domain.vo;
 
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.xyzc.start.domain.BaseUserOrder;
+import io.github.linpeilie.annotations.AutoMapper;
 import lombok.Data;
 
 import java.io.Serializable;
+import java.math.BigDecimal;
 
 /**
  * 用户订单视图
@@ -10,13 +14,65 @@ import java.io.Serializable;
  * @author 杨兴卓
  */
 @Data
+@AutoMapper(target = BaseUserOrder.class)
+@JsonInclude(JsonInclude.Include.NON_NULL)
 public class BaseUserOrderVo implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
-
+    /**
+     * 订单号
+     */
     private Long id;
 
+    /**
+     * 基础用户id
+     */
+    private Long baseUserId;
+
+    /**
+     * 订单状态,0-未支付,1-支付中,2-已支付,3-支付超时
+     */
+    private Integer status;
+
+    /**
+     * 订单类型,0-会员卡充值,1-燃料包充值,2-卡密支付订单
+     */
+    private Integer orderType;
+
+    /**
+     * 代理商id
+     */
+    private Long agentMerId;
+
+    /**
+     * 支付方式, 1-微信支付,2-支付宝支付,3-银行卡支付,4-其他
+     */
+    private Integer payMethod;
+
+    /**
+     * 商品总额
+     */
+    private BigDecimal goodsAmount;
+
+    /**
+     * 应付金额
+     */
+    private BigDecimal payAmount;
+
+    /**
+     * 折扣金额
+     */
+    private BigDecimal discountAmount;
+
+    /**
+     * 逻辑删除
+     */
+    private String delFlag;
 
+    /**
+     * 版本号
+     */
+    private Integer version;
 
 }

+ 4 - 4
xyzc-start/src/main/java/com/xyzc/start/domain/vo/FuelPackageVo.java

@@ -76,16 +76,16 @@ public class FuelPackageVo implements Serializable {
     /**
      * 立省价格
      */
-    private BigDecimal savePrice;
+    private BigDecimal saveMoney;
 
 
     /**
      * 覆盖
-     * @param savePrice
+     * @param saveMoney
      */
-    public void setSavePrice(BigDecimal savePrice) {
+    public void setSaveMoney(BigDecimal saveMoney) {
 
-        this.savePrice = strikethroughPrice.subtract(price);
+        this.saveMoney = strikethroughPrice.subtract(price);
     }
 
 }

+ 8 - 0
xyzc-start/src/main/java/com/xyzc/start/mapper/MemberCardMapper.java

@@ -3,8 +3,11 @@ package com.xyzc.start.mapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.xyzc.common.mybatis.core.mapper.BaseMapperPlus;
 import com.xyzc.start.domain.MemberCard;
+import com.xyzc.start.domain.bo.CreateOrderBo;
 import com.xyzc.start.domain.vo.MemberCardVo;
+import com.xyzc.start.domain.vo.SchemeVo;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -25,6 +28,11 @@ public interface MemberCardMapper extends BaseMapperPlus<MemberCard, MemberCardV
     List<MemberCardVo> queryVoListBySchemeId(Long schemeId);
 
     /**
+     * 根据会员卡id查询当前可核销方案
      *
+     * @param bo
+     * @return
      */
+    SchemeVo queryCurrentVerifyScheme(@Param("bo") CreateOrderBo bo);
+
 }

+ 8 - 0
xyzc-start/src/main/java/com/xyzc/start/service/ISchemeService.java

@@ -1,5 +1,6 @@
 package com.xyzc.start.service;
 
+import com.xyzc.start.domain.bo.CreateOrderBo;
 import com.xyzc.start.domain.vo.*;
 
 import java.util.List;
@@ -47,4 +48,11 @@ public interface ISchemeService {
      */
     List<AiModelLawVo> queryModelLawList(Long modelId);
 
+    /**
+     * 创建订单
+     *
+     * @param bo
+     * @return
+     */
+    BaseUserOrderVo createOrder(CreateOrderBo bo);
 }

+ 2 - 2
xyzc-start/src/main/java/com/xyzc/start/service/impl/DiscoverServiceImpl.java

@@ -38,7 +38,7 @@ public class DiscoverServiceImpl implements IDiscoverService {
     @Override
     public List<DrawGraphicsSquareVo> queryGraphics(Long graphicsId, String keyword, Long length) {
 
-        return drawGraphicsMapper.queryGraphics(SecurityUser.getUserId(), graphicsId, keyword, length == null ? 10 : length);
+        return drawGraphicsMapper.queryGraphics(SecurityUser.getUserId(), graphicsId, keyword, length == null ? 20 : length);
     }
 
     /**
@@ -50,7 +50,7 @@ public class DiscoverServiceImpl implements IDiscoverService {
     @Override
     public List<DrawModelCollectVo> queryDrawModelList(Long drawModelId, String keyword, Long length) {
 
-        return drawModelMapper.queryDrawModelList(SecurityUser.getUserId(), drawModelId, keyword, length == null ? 10 : length);
+        return drawModelMapper.queryDrawModelList(SecurityUser.getUserId(), drawModelId, keyword, length == null ? 20 : length);
     }
 
     /**

+ 20 - 1
xyzc-start/src/main/java/com/xyzc/start/service/impl/SchemeServiceImpl.java

@@ -3,6 +3,7 @@ package com.xyzc.start.service.impl;
 import com.xyzc.common.core.exception.ErrorCode;
 import com.xyzc.common.core.utils.AssertUtils;
 import com.xyzc.common.web.security.user.SecurityUser;
+import com.xyzc.start.domain.bo.CreateOrderBo;
 import com.xyzc.start.domain.vo.*;
 import com.xyzc.start.mapper.AiModelMapper;
 import com.xyzc.start.mapper.EquityMapper;
@@ -11,6 +12,7 @@ import com.xyzc.start.mapper.SchemeMapper;
 import com.xyzc.start.service.ISchemeService;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -82,7 +84,7 @@ public class SchemeServiceImpl implements ISchemeService {
         memberCardVo4.setMemberEquityName("AI绘画");
         memberCardVo4.setMemberEquityCount(2320);
 
-        MemberEquityVo memberCardVo5= new MemberEquityVo();
+        MemberEquityVo memberCardVo5 = new MemberEquityVo();
         memberCardVo5.setMemberEquityid(2);
         memberCardVo5.setMemberEquityName("AI绘画");
         memberCardVo5.setMemberEquityCount(2320);
@@ -147,4 +149,21 @@ public class SchemeServiceImpl implements ISchemeService {
         return scheme;
     }
 
+    /**
+     * 创建订单
+     *
+     * @param bo
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public BaseUserOrderVo createOrder(CreateOrderBo bo) {
+        // 先查询当前会员卡或者燃料包是否生效
+        SchemeVo schemeVo = memberCardMapper.queryCurrentVerifyScheme(bo);
+        // 没有生效的套餐抛出异常
+        AssertUtils.notNull(schemeVo, ErrorCode.SCHEME_NOT_EXIST);
+
+        //
+        return null;
+    }
 }

+ 1 - 1
xyzc-start/src/main/java/com/xyzc/start/service/impl/UserInfoServiceImpl.java

@@ -360,7 +360,7 @@ public class UserInfoServiceImpl implements IUserInfoService {
      */
     @Override
     public BaseUserMemberCardVo queryCardStatus(Long cardId) {
-        // 商户id 写死
+        // TODO:商户id 暂时写死
         return baseUserMemberCardMapper.queryMemberCard(SecurityUser.getUserId(), cardId, 1810310843224322049L);
     }
 }

+ 1 - 0
xyzc-start/src/main/resources/application.yml

@@ -23,6 +23,7 @@ spring:
         # 注册组
         group: @nacos.discovery.group@
         namespace: ${spring.profiles.active}
+        ip: @jar.ip@
       config:
         # 配置组
         group: @nacos.config.group@

+ 9 - 0
xyzc-start/src/main/resources/mapper/WebStart/MemberCardMapper.xml

@@ -25,5 +25,14 @@
     </select>
 
 
+    <select id="queryCurrentVerifyScheme" resultType="com.xyzc.start.domain.vo.SchemeVo">
+        select xs.id
+        from xy_scheme xs
+                 LEFT JOIN xy_member_card xmc on xs.id = xmc.scheme_id
+        where xs.scheme_status = 1
+        AND xs.scheme_type = #{bo.type}
+        AND xmc.id = #{bo.id}
+    </select>
+
 
 </mapper>

+ 4 - 2
xyzc-start/src/main/resources/mapper/WebStart/SchemeMapper.xml

@@ -8,10 +8,12 @@
 
     <select id="queryFuelPackageById" resultType="com.xyzc.start.domain.vo.FuelPackageVo">
         select xafpp.id,
-               xfp.fuel_package_name    AS fuelPackageName,
+               xfp.fuel_package_name     AS  fuelPackageName,
                xfp.description,
+               xfp.fuel_number,
                xafpp.strikethrough_price,
-              xafpp.agent_price         AS price
+               xafpp.agent_price         AS  price,
+               xafpp.agent_price         AS  save_money
         from xy_fuel_package xfp
                  LEFT join xy_agent_fuel_package_price xafpp on xfp.id = xafpp.fuel_package_id
         where xfp.scheme_id = #{fuelId}