caolinxuan 4 months ago
parent
commit
9902acd1c6
27 changed files with 1109 additions and 5 deletions
  1. 21 0
      src/main/java/com/zhentao/common/course/controller/ProductController.java
  2. 21 0
      src/main/java/com/zhentao/common/course/dto/ProductDto.java
  3. 28 0
      src/main/java/com/zhentao/common/orders/controller/OrderController.java
  4. 168 0
      src/main/java/com/zhentao/common/orders/domain/MarketingCoupon.java
  5. 168 0
      src/main/java/com/zhentao/common/orders/domain/MarketingCouponUser.java
  6. 82 0
      src/main/java/com/zhentao/common/orders/domain/OrderDetails.java
  7. 102 0
      src/main/java/com/zhentao/common/orders/domain/Orders.java
  8. 7 0
      src/main/java/com/zhentao/common/orders/dto/MarketingCouponDto.java
  9. 23 0
      src/main/java/com/zhentao/common/orders/dto/OrdersDto.java
  10. 20 0
      src/main/java/com/zhentao/common/orders/mapper/MarketingCouponMapper.java
  11. 20 0
      src/main/java/com/zhentao/common/orders/mapper/MarketingCouponUserMapper.java
  12. 19 0
      src/main/java/com/zhentao/common/orders/mapper/OrderDetailsMapper.java
  13. 19 0
      src/main/java/com/zhentao/common/orders/mapper/OrdersMapper.java
  14. 15 0
      src/main/java/com/zhentao/common/service/MarketingCouponService.java
  15. 15 0
      src/main/java/com/zhentao/common/service/MarketingCouponUserService.java
  16. 14 0
      src/main/java/com/zhentao/common/service/OrderDetailsService.java
  17. 19 0
      src/main/java/com/zhentao/common/service/OrdersService.java
  18. 24 0
      src/main/java/com/zhentao/common/service/impl/MarketingCouponServiceImpl.java
  19. 24 0
      src/main/java/com/zhentao/common/service/impl/MarketingCouponUserServiceImpl.java
  20. 22 0
      src/main/java/com/zhentao/common/service/impl/OrderDetailsServiceImpl.java
  21. 59 0
      src/main/java/com/zhentao/common/service/impl/OrdersServiceImpl.java
  22. 8 5
      src/main/java/com/zhentao/common/user/service/impl/GooseUserServiceImpl.java
  23. 47 0
      src/main/java/com/zhentao/util/WXBizDataCryptUtil.java
  24. 51 0
      src/main/resources/mapper/MarketingCouponMapper.xml
  25. 51 0
      src/main/resources/mapper/MarketingCouponUserMapper.xml
  26. 28 0
      src/main/resources/mapper/OrderDetailsMapper.xml
  27. 34 0
      src/main/resources/mapper/OrdersMapper.xml

+ 21 - 0
src/main/java/com/zhentao/common/course/controller/ProductController.java

@@ -0,0 +1,21 @@
+package com.zhentao.common.course.controller;
+
+import com.zhentao.common.course.domain.Product;
+import com.zhentao.common.course.dto.ProductDto;
+import com.zhentao.common.course.service.ProductService;
+import com.zhentao.util.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("product")
+public class ProductController {
+    @Autowired
+    private ProductService productService;
+    @RequestMapping("add")
+    public ResultVo add(@RequestBody ProductDto productDto){
+        return ResultVo.OK(productService.add(productDto));
+    }
+}

+ 21 - 0
src/main/java/com/zhentao/common/course/dto/ProductDto.java

@@ -0,0 +1,21 @@
+package com.zhentao.common.course.dto;
+
+import lombok.Data;
+
+@Data
+public class ProductDto {
+    private Long id;
+    private String name;
+    private String subtitle;
+    private String mainImage;
+    private String Images;
+    private String detail;
+    private Integer status;
+    private Integer IsDelete;
+    private Integer sales;
+    private Integer viewCount;
+
+    private Long skuId;
+    private Long categoryId;
+
+}

+ 28 - 0
src/main/java/com/zhentao/common/orders/controller/OrderController.java

@@ -0,0 +1,28 @@
+package com.zhentao.common.orders.controller;
+
+
+
+import com.zhentao.common.orders.dto.OrdersDto;
+import com.zhentao.common.service.OrdersService;
+import com.zhentao.util.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("orders")
+public class OrderController {
+    @Autowired
+    private OrdersService ordersService;
+
+    @RequestMapping("add")
+    public ResultVo Add(@RequestBody OrdersDto ordersDto){
+        return ordersService.add(ordersDto);
+    }
+
+    @RequestMapping("findAll")
+    public ResultVo findAll(){
+        return ordersService.findAll();
+    }
+}

+ 168 - 0
src/main/java/com/zhentao/common/orders/domain/MarketingCoupon.java

@@ -0,0 +1,168 @@
+package com.zhentao.common.orders.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ * 优惠券表
+
+ * @TableName marketing_coupon
+ */
+@TableName(value ="marketing_coupon")
+@Data
+public class MarketingCoupon implements Serializable {
+    /**
+     * 
+     */
+    @TableId
+    private Long id;
+
+    /**
+     * 活动类型 1平台 2活动优惠
+     */
+    private Integer getType;
+
+    /**
+     * 活动id
+     */
+    private Integer activeId;
+
+    /**
+     * 优惠券类型 1满减券 2满折券
+     */
+    private Integer tacticsType;
+
+    /**
+     * 优惠券名称
+     */
+    private String name;
+
+    /**
+     * 面值
+     */
+    private BigDecimal faceValue;
+
+    /**
+     * 优惠券图片
+     */
+    private String imgUrl;
+
+    /**
+     * 领取方式 1手动领取 2赠送券 3会员券
+     */
+    private Integer getWay;
+
+    /**
+     * 使用类型 1通用2指定分类3指定课程4活动券
+     */
+    private Integer productType;
+
+    /**
+     * 产品id 分类id
+     */
+    private String productValue;
+
+    /**
+     * 有无门槛0无门槛1有门槛
+     */
+    private Integer limitMinFlag;
+
+    /**
+     * 限制金额
+     */
+    private BigDecimal limitMin;
+
+    /**
+     * 有效标识1按天2时间段
+     */
+    private Integer validFlag;
+
+    /**
+     * 有效天数
+     */
+    private Integer validDays;
+
+    /**
+     * 开始时间
+     */
+    private Date startTime;
+
+    /**
+     * 截止时间
+     */
+    private Date endTime;
+
+    /**
+     * 领取时间0不限时1限时领取
+     */
+    private Integer getTimeLimit;
+
+    /**
+     * 领取开始时间
+     */
+    private Date getStartTime;
+
+    /**
+     * 领取结束时间
+     */
+    private Date getEndTime;
+
+    /**
+     * 是否限量0不限制1限制
+     */
+    private Integer totalLimit;
+
+    /**
+     * 优惠券数量
+     */
+    private Integer totalNum;
+
+    /**
+     * 状态1正常显示0隐藏
+     */
+    private Integer status;
+
+    /**
+     * 排序
+     */
+    private Integer sort;
+
+    /**
+     * 跳转链接
+     */
+    private String navHref;
+
+    /**
+     * 版本
+     */
+    private Integer reversion;
+
+    /**
+     * 创建时间
+     */
+    private Date createddTime;
+
+    /**
+     * 创建者
+     */
+    private String createBy;
+
+    /**
+     * 更新时间
+     */
+    private Date updatedTime;
+
+    /**
+     * 更新者
+     */
+    private String updatedBy;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 168 - 0
src/main/java/com/zhentao/common/orders/domain/MarketingCouponUser.java

@@ -0,0 +1,168 @@
+package com.zhentao.common.orders.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ * 用户优惠券表
+
+ * @TableName marketing_coupon_user
+ */
+@TableName(value ="marketing_coupon_user")
+@Data
+public class MarketingCouponUser implements Serializable {
+    /**
+     * 
+     */
+    @TableId
+    private Long id;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 用户名称
+     */
+    private String userName;
+
+    /**
+     * 手机号
+     */
+    private String mobile;
+
+    /**
+     * 优惠券id
+     */
+    private Integer couponId;
+
+    /**
+     * 优惠券名称
+     */
+    private String couponName;
+
+    /**
+     * 规则类型1满减券2满折券
+     */
+    private Integer couponTacticsType;
+
+    /**
+     * 规则类型描述
+     */
+    private String tacticsTypeDesc;
+
+    /**
+     * 适用类型1通用券2品类券3课程券4活动券
+     */
+    private Integer couponType;
+
+    /**
+     * 产品id分类id
+     */
+    private String productValue;
+
+    /**
+     * 有无门槛0无门槛1有门槛
+     */
+    private Integer limitMinFlag;
+
+    /**
+     * 限制金额
+     */
+    private BigDecimal limitMin;
+
+    /**
+     * 适用类型
+     */
+    private String typeName;
+
+    /**
+     * 面值
+     */
+    private BigDecimal faceValue;
+
+    /**
+     * 优惠券图片
+     */
+    private String imgUrl;
+
+    /**
+     * 有效期开始时间
+     */
+    private Date startTime;
+
+    /**
+     * 有效期截止时间
+     */
+    private Date endTime;
+
+    /**
+     * 获取日期
+     */
+    private String getTime;
+
+    /**
+     * 领取方式1手动领取 2后台赠送
+     */
+    private Integer getWay;
+
+    /**
+     * 使用时间
+     */
+    private Date usedTime;
+
+    /**
+     * 活动id
+     */
+    private Long activeId;
+
+    /**
+     * 使用状态0未使用1已使用2已过期
+     */
+    private Integer status;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 版本
+     */
+    private Integer reversion;
+
+    /**
+     * 版本标识0未统计1已统计
+     */
+    private Integer statFlag;
+
+    /**
+     * 创建时间
+     */
+    private Date createdTime;
+
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+
+    /**
+     * 逻辑删除
+     */
+    private Integer delFlag;
+
+    /**
+     * 扫码领取
+     */
+    private Integer isReceive;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 82 - 0
src/main/java/com/zhentao/common/orders/domain/OrderDetails.java

@@ -0,0 +1,82 @@
+package com.zhentao.common.orders.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ * 订单明细表
+ * @TableName order_details
+ */
+@TableName(value ="order_details")
+@Data
+public class OrderDetails implements Serializable {
+    /**
+     * 订单明细编号
+     */
+    @TableId
+    private Long detailId;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 订单id
+     */
+    private Long orderId;
+
+    /**
+     * 课程id
+     */
+    private Long courseId;
+
+    /**
+     * SKU
+     */
+    private Long skuId;
+
+    /**
+     * 课程名称
+     */
+    private String courseName;
+
+    /**
+     * 应付
+     */
+    private BigDecimal originalFee;
+
+    /**
+     * 实付
+     */
+    private BigDecimal actualFee;
+
+    /**
+     * 优惠类型 如折扣 满减 优惠券等
+     */
+    private BigDecimal discountAmount;
+
+    /**
+     * 订单创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 订单信息更新时间
+     */
+    private Date updateTime;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 102 - 0
src/main/java/com/zhentao/common/orders/domain/Orders.java

@@ -0,0 +1,102 @@
+package com.zhentao.common.orders.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ * 订单表
+ * @TableName orders
+ */
+@TableName(value ="orders")
+@Data
+public class Orders implements Serializable {
+    /**
+     * 订单编号
+     */
+    @TableId
+    private Long ordersId;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 优惠券id
+     */
+    private Long couponId;
+
+    /**
+     * 课程名称
+     */
+    private String courseName;
+
+    /**
+     * 支付方式 0微信支付 1支付宝支付
+     */
+    private Integer paymentMethod;
+
+    /**
+     * 支付状态 0未支付 1已支付
+     */
+    private Integer paymentStatus;
+
+    /**
+     * 支付时间
+     */
+    private Date paymentTime;
+
+    /**
+     * 订单状态 0未支付 1已支付 2待评价 3完成 4订单超时
+     */
+    private Integer orderStatus;
+
+    /**
+     * 应付
+     */
+    private BigDecimal originalFee;
+
+    /**
+     * 实付
+     */
+    private BigDecimal actualFee;
+
+    /**
+     * 优惠金额
+     */
+    private BigDecimal discountAmount;
+
+    /**
+     * 订单创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 订单信息更新时间
+     */
+    private Date updateTime;
+
+    /**
+     * 逻辑删除 0存在(默认值为0) 1删除
+     */
+    private Integer isDelete;
+
+    /**
+     * 退款售后 0正常 1有退款
+     */
+    private Integer isRefund;
+
+    /**
+     * 用户或客服添加的备注信息,记录特殊要求
+     */
+    private String remark;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 7 - 0
src/main/java/com/zhentao/common/orders/dto/MarketingCouponDto.java

@@ -0,0 +1,7 @@
+package com.zhentao.common.orders.dto;
+
+import lombok.Data;
+
+@Data
+public class MarketingCouponDto {
+}

+ 23 - 0
src/main/java/com/zhentao/common/orders/dto/OrdersDto.java

@@ -0,0 +1,23 @@
+package com.zhentao.common.orders.dto;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+public class OrdersDto {
+    private Long userId;
+    private Long couponId;
+    private String courseName;
+    private Integer paymentMethod;
+    private Date paymentTime;
+    private BigDecimal originalFee;
+    private BigDecimal actualFee;
+    private BigDecimal discountAmount;
+    private String remark;
+
+    private Long detailId;
+    private Long courseId;
+    private Long skuId;
+}

+ 20 - 0
src/main/java/com/zhentao/common/orders/mapper/MarketingCouponMapper.java

@@ -0,0 +1,20 @@
+package com.zhentao.common.orders.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhentao.common.orders.domain.MarketingCoupon;
+
+/**
+* @author lsk
+* @description 针对表【marketing_coupon(优惠券表
+)】的数据库操作Mapper
+* @createDate 2025-05-08 17:30:15
+* @Entity com.zhentao.domain.MarketingCoupon
+*/
+public interface MarketingCouponMapper extends BaseMapper<MarketingCoupon> {
+
+}
+
+
+
+

+ 20 - 0
src/main/java/com/zhentao/common/orders/mapper/MarketingCouponUserMapper.java

@@ -0,0 +1,20 @@
+package com.zhentao.common.orders.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhentao.common.orders.domain.MarketingCouponUser;
+
+/**
+* @author lsk
+* @description 针对表【marketing_coupon_user(用户优惠券表
+)】的数据库操作Mapper
+* @createDate 2025-05-08 17:30:15
+* @Entity com.zhentao.domain.MarketingCouponUser
+*/
+public interface MarketingCouponUserMapper extends BaseMapper<MarketingCouponUser> {
+
+}
+
+
+
+

+ 19 - 0
src/main/java/com/zhentao/common/orders/mapper/OrderDetailsMapper.java

@@ -0,0 +1,19 @@
+package com.zhentao.common.orders.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhentao.common.orders.domain.OrderDetails;
+
+/**
+* @author lsk
+* @description 针对表【order_details(订单明细表)】的数据库操作Mapper
+* @createDate 2025-05-08 17:30:15
+* @Entity com.zhentao.domain.OrderDetails
+*/
+public interface OrderDetailsMapper extends BaseMapper<OrderDetails> {
+
+}
+
+
+
+

+ 19 - 0
src/main/java/com/zhentao/common/orders/mapper/OrdersMapper.java

@@ -0,0 +1,19 @@
+package com.zhentao.common.orders.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhentao.common.orders.domain.Orders;
+
+/**
+* @author lsk
+* @description 针对表【orders(订单表)】的数据库操作Mapper
+* @createDate 2025-05-08 17:30:15
+* @Entity com.zhentao.domain.Orders
+*/
+public interface OrdersMapper extends BaseMapper<Orders> {
+
+}
+
+
+
+

+ 15 - 0
src/main/java/com/zhentao/common/service/MarketingCouponService.java

@@ -0,0 +1,15 @@
+package com.zhentao.common.service;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zhentao.common.orders.domain.MarketingCoupon;
+
+/**
+* @author lsk
+* @description 针对表【marketing_coupon(优惠券表
+)】的数据库操作Service
+* @createDate 2025-05-08 17:30:15
+*/
+public interface MarketingCouponService extends IService<MarketingCoupon> {
+
+}

+ 15 - 0
src/main/java/com/zhentao/common/service/MarketingCouponUserService.java

@@ -0,0 +1,15 @@
+package com.zhentao.common.service;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zhentao.common.orders.domain.MarketingCouponUser;
+
+/**
+* @author lsk
+* @description 针对表【marketing_coupon_user(用户优惠券表
+)】的数据库操作Service
+* @createDate 2025-05-08 17:30:15
+*/
+public interface MarketingCouponUserService extends IService<MarketingCouponUser> {
+
+}

+ 14 - 0
src/main/java/com/zhentao/common/service/OrderDetailsService.java

@@ -0,0 +1,14 @@
+package com.zhentao.common.service;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zhentao.common.orders.domain.OrderDetails;
+
+/**
+* @author lsk
+* @description 针对表【order_details(订单明细表)】的数据库操作Service
+* @createDate 2025-05-08 17:30:15
+*/
+public interface OrderDetailsService extends IService<OrderDetails> {
+
+}

+ 19 - 0
src/main/java/com/zhentao/common/service/OrdersService.java

@@ -0,0 +1,19 @@
+package com.zhentao.common.service;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zhentao.common.orders.domain.Orders;
+import com.zhentao.common.orders.dto.OrdersDto;
+import com.zhentao.util.ResultVo;
+
+/**
+* @author lsk
+* @description 针对表【orders(订单表)】的数据库操作Service
+* @createDate 2025-05-08 17:30:15
+*/
+public interface OrdersService extends IService<Orders> {
+
+    ResultVo add(OrdersDto ordersDto);
+
+    ResultVo findAll();
+}

+ 24 - 0
src/main/java/com/zhentao/common/service/impl/MarketingCouponServiceImpl.java

@@ -0,0 +1,24 @@
+package com.zhentao.common.service.impl;
+
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zhentao.common.orders.domain.MarketingCoupon;
+import com.zhentao.common.orders.mapper.MarketingCouponMapper;
+import com.zhentao.common.service.MarketingCouponService;
+import org.springframework.stereotype.Service;
+
+/**
+* @author lsk
+* @description 针对表【marketing_coupon(优惠券表
+)】的数据库操作Service实现
+* @createDate 2025-05-08 17:30:15
+*/
+@Service
+public class MarketingCouponServiceImpl extends ServiceImpl<MarketingCouponMapper, MarketingCoupon>
+    implements MarketingCouponService {
+
+}
+
+
+
+

+ 24 - 0
src/main/java/com/zhentao/common/service/impl/MarketingCouponUserServiceImpl.java

@@ -0,0 +1,24 @@
+package com.zhentao.common.service.impl;
+
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zhentao.common.orders.domain.MarketingCouponUser;
+import com.zhentao.common.orders.mapper.MarketingCouponUserMapper;
+import com.zhentao.common.service.MarketingCouponUserService;
+import org.springframework.stereotype.Service;
+
+/**
+* @author lsk
+* @description 针对表【marketing_coupon_user(用户优惠券表
+)】的数据库操作Service实现
+* @createDate 2025-05-08 17:30:15
+*/
+@Service
+public class MarketingCouponUserServiceImpl extends ServiceImpl<MarketingCouponUserMapper, MarketingCouponUser>
+    implements MarketingCouponUserService {
+
+}
+
+
+
+

+ 22 - 0
src/main/java/com/zhentao/common/service/impl/OrderDetailsServiceImpl.java

@@ -0,0 +1,22 @@
+package com.zhentao.common.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zhentao.common.orders.domain.OrderDetails;
+import com.zhentao.common.orders.mapper.OrderDetailsMapper;
+import com.zhentao.common.service.OrderDetailsService;
+import org.springframework.stereotype.Service;
+
+/**
+* @author lsk
+* @description 针对表【order_details(订单明细表)】的数据库操作Service实现
+* @createDate 2025-05-08 17:30:15
+*/
+@Service
+public class OrderDetailsServiceImpl extends ServiceImpl<OrderDetailsMapper, OrderDetails>
+    implements OrderDetailsService {
+
+}
+
+
+
+

+ 59 - 0
src/main/java/com/zhentao/common/service/impl/OrdersServiceImpl.java

@@ -0,0 +1,59 @@
+package com.zhentao.common.service.impl;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zhentao.common.orders.domain.OrderDetails;
+import com.zhentao.common.orders.domain.Orders;
+import com.zhentao.common.orders.dto.OrdersDto;
+import com.zhentao.common.orders.mapper.OrderDetailsMapper;
+import com.zhentao.common.orders.mapper.OrdersMapper;
+import com.zhentao.common.service.OrdersService;
+import com.zhentao.util.ResultVo;
+import com.zhentao.util.SnowflakeIdGenerator;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+* @author lsk
+* @description 针对表【orders(订单表)】的数据库操作Service实现
+* @createDate 2025-05-08 17:30:15
+*/
+@Service
+public class OrdersServiceImpl extends ServiceImpl<OrdersMapper, Orders>
+    implements OrdersService {
+    @Autowired
+    private OrdersMapper ordersMapper;
+    @Autowired
+    private OrderDetailsMapper orderDetailsMapper;
+
+    @Override
+    public ResultVo add(OrdersDto ordersDto) {
+        Orders orders = new Orders();
+        OrderDetails orderDetails = new OrderDetails();
+        BeanUtils.copyProperties(ordersDto , orders);
+        BeanUtils.copyProperties(ordersDto , orderDetails);
+        orders.setOrdersId(SnowflakeIdGenerator.getSnowId());
+        orderDetails.setDetailId(SnowflakeIdGenerator.getSnowId());
+        int i = ordersMapper.insert(orders);
+        int i1 = orderDetailsMapper.insert(orderDetails);
+        if(i > 0 && i1 > 0 ){
+            return ResultVo.OK();
+        }
+        return ResultVo.ERROR();
+    }
+
+    @Override
+    public ResultVo findAll() {
+        QueryWrapper<Orders> queryWrapper = new QueryWrapper<>();
+        List<Orders> orders = ordersMapper.selectList(queryWrapper);
+        return ResultVo.OK(orders);
+    }
+}
+
+
+
+

+ 8 - 5
src/main/java/com/zhentao/common/user/service/impl/GooseUserServiceImpl.java

@@ -9,10 +9,7 @@ import com.zhentao.common.user.domain.GooseUser;
 import com.zhentao.common.user.dto.LoginDto;
 import com.zhentao.common.user.mapper.GooseUserMapper;
 import com.zhentao.common.user.service.GooseUserService;
-import com.zhentao.util.AppJwtUtil;
-import com.zhentao.util.HttpUtils;
-import com.zhentao.util.ResultVo;
-import com.zhentao.util.SnowflakeIdGenerator;
+import com.zhentao.util.*;
 import lombok.SneakyThrows;
 import org.apache.http.HttpResponse;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -88,7 +85,7 @@ public class GooseUserServiceImpl extends ServiceImpl<GooseUserMapper, GooseUser
                 String pwd=DigestUtils.md5DigestAsHex((loginDto.getPassword()+salt).getBytes(StandardCharsets.UTF_8));
                 if(pwd.equals(password)){
                     String token=AppJwtUtil.getToken(user.getId());
-                    return ResultVo.OK();
+                    return ResultVo.OK(token);
                 }
                 return ResultVo.ERROR();
             }
@@ -108,6 +105,8 @@ public class GooseUserServiceImpl extends ServiceImpl<GooseUserMapper, GooseUser
     @Override
     public ResultVo Wxlogin(Map<String, String> requestData) {
         String code = requestData.get("code");
+        String encryptedData = requestData.get("encryptedData");
+        String iv = requestData.get("iv");
         System.out.println(code);
         if (code == null) {
             return new ResultVo(400,"Missing code",null);
@@ -146,8 +145,12 @@ public class GooseUserServiceImpl extends ServiceImpl<GooseUserMapper, GooseUser
                 user.setNickname("微信用户"+ UUID.randomUUID().toString().replace("-","").substring(0,8));
                 userMapper.insert(user);
                 String token=AppJwtUtil.getToken(user.getId());
+                String userInfo = WXBizDataCryptUtil.decryptData(APPID, session_key, encryptedData, iv);
+                System.out.println(userInfo);
                 return new ResultVo(200,"登录成功",token);
             }
+            String userInfo = WXBizDataCryptUtil.decryptData(APPID, session_key, encryptedData, iv);
+            System.out.println(userInfo);
             String token=AppJwtUtil.getToken(gooseUser.getId());
             return new ResultVo(200,"登录成功",token);
         } catch (HttpClientErrorException e) { // 处理 HTTP 错误(如 400、500)

+ 47 - 0
src/main/java/com/zhentao/util/WXBizDataCryptUtil.java

@@ -0,0 +1,47 @@
+package com.zhentao.util;
+
+import javax.crypto.Cipher;
+import javax.crypto.spec.IvParameterSpec;
+import javax.crypto.spec.SecretKeySpec;
+import java.nio.charset.StandardCharsets;
+import java.util.Base64;
+
+public class WXBizDataCryptUtil {
+
+    /**
+     * 解密微信小程序加密数据
+     * @param appId 小程序的 appId
+     * @param sessionKey 微信返回的 session_key
+     * @param encryptedData 加密数据
+     * @param iv 初始向量
+     * @return 解密后的数据,如果解密失败返回 null
+     */
+    public static String decryptData(String appId, String sessionKey, String encryptedData, String iv) {
+        try {
+            // 对 session_key 进行 Base64 解码
+            byte[] sessionKeyBytes = Base64.getDecoder().decode(sessionKey);
+            // 对 encryptedData 进行 Base64 解码
+            byte[] encryptedDataBytes = Base64.getDecoder().decode(encryptedData);
+            // 对 iv 进行 Base64 解码
+            byte[] ivBytes = Base64.getDecoder().decode(iv);
+
+            // 创建 AES 密钥规范
+            SecretKeySpec secretKeySpec = new SecretKeySpec(sessionKeyBytes, "AES");
+            // 创建 AES 加密算法的初始向量规范
+            IvParameterSpec ivParameterSpec = new IvParameterSpec(ivBytes);
+
+            // 创建 Cipher 对象,使用 AES/CBC/PKCS7Padding 算法
+            Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7Padding");
+            // 初始化 Cipher 对象为解密模式
+            cipher.init(Cipher.DECRYPT_MODE, secretKeySpec, ivParameterSpec);
+
+            // 进行解密操作
+            byte[] decryptedBytes = cipher.doFinal(encryptedDataBytes);
+            // 将解密后的字节数组转换为字符串
+            return new String(decryptedBytes, StandardCharsets.UTF_8);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return null;
+        }
+    }
+}    

+ 51 - 0
src/main/resources/mapper/MarketingCouponMapper.xml

@@ -0,0 +1,51 @@
+<?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.zhentao.common.orders.mapper.MarketingCouponMapper">
+
+    <resultMap id="BaseResultMap" type="com.zhentao.common.orders.domain.MarketingCoupon">
+            <id property="id" column="id" jdbcType="BIGINT"/>
+            <result property="getType" column="get_type" jdbcType="INTEGER"/>
+            <result property="activeId" column="active_id" jdbcType="INTEGER"/>
+            <result property="tacticsType" column="tactics_type" jdbcType="INTEGER"/>
+            <result property="name" column="name" jdbcType="VARCHAR"/>
+            <result property="faceValue" column="face_value" jdbcType="DECIMAL"/>
+            <result property="imgUrl" column="img_url" jdbcType="VARCHAR"/>
+            <result property="getWay" column="get_way" jdbcType="INTEGER"/>
+            <result property="productType" column="product_type" jdbcType="INTEGER"/>
+            <result property="productValue" column="product_value" jdbcType="VARCHAR"/>
+            <result property="limitMinFlag" column="limit_min_flag" jdbcType="INTEGER"/>
+            <result property="limitMin" column="limit_min" jdbcType="DECIMAL"/>
+            <result property="validFlag" column="valid_flag" jdbcType="INTEGER"/>
+            <result property="validDays" column="valid_days" jdbcType="INTEGER"/>
+            <result property="startTime" column="start_time" jdbcType="TIMESTAMP"/>
+            <result property="endTime" column="end_time" jdbcType="TIMESTAMP"/>
+            <result property="getTimeLimit" column="get_time_limit" jdbcType="INTEGER"/>
+            <result property="getStartTime" column="get_start_time" jdbcType="TIMESTAMP"/>
+            <result property="getEndTime" column="get_end_time" jdbcType="TIMESTAMP"/>
+            <result property="totalLimit" column="total_limit" jdbcType="INTEGER"/>
+            <result property="totalNum" column="total_num" jdbcType="INTEGER"/>
+            <result property="status" column="status" jdbcType="INTEGER"/>
+            <result property="sort" column="sort" jdbcType="INTEGER"/>
+            <result property="navHref" column="nav_href" jdbcType="VARCHAR"/>
+            <result property="reversion" column="reversion" jdbcType="INTEGER"/>
+            <result property="createddTime" column="createdd_time" jdbcType="TIMESTAMP"/>
+            <result property="createBy" column="create_by" jdbcType="VARCHAR"/>
+            <result property="updatedTime" column="updated_time" jdbcType="TIMESTAMP"/>
+            <result property="updatedBy" column="updated_by" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,get_type,active_id,
+        tactics_type,name,face_value,
+        img_url,get_way,product_type,
+        product_value,limit_min_flag,limit_min,
+        valid_flag,valid_days,start_time,
+        end_time,get_time_limit,get_start_time,
+        get_end_time,total_limit,total_num,
+        status,sort,nav_href,
+        reversion,createdd_time,create_by,
+        updated_time,updated_by
+    </sql>
+</mapper>

+ 51 - 0
src/main/resources/mapper/MarketingCouponUserMapper.xml

@@ -0,0 +1,51 @@
+<?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.zhentao.common.orders.mapper.MarketingCouponUserMapper">
+
+    <resultMap id="BaseResultMap" type="com.zhentao.common.orders.domain.MarketingCouponUser">
+            <id property="id" column="id" jdbcType="BIGINT"/>
+            <result property="userId" column="user_id" jdbcType="BIGINT"/>
+            <result property="userName" column="user_name" jdbcType="VARCHAR"/>
+            <result property="mobile" column="mobile" jdbcType="VARCHAR"/>
+            <result property="couponId" column="coupon_id" jdbcType="INTEGER"/>
+            <result property="couponName" column="coupon_name" jdbcType="VARCHAR"/>
+            <result property="couponTacticsType" column="coupon_tactics_type" jdbcType="INTEGER"/>
+            <result property="tacticsTypeDesc" column="tactics_type_desc" jdbcType="VARCHAR"/>
+            <result property="couponType" column="coupon_type" jdbcType="INTEGER"/>
+            <result property="productValue" column="product_value" jdbcType="VARCHAR"/>
+            <result property="limitMinFlag" column="limit_min_flag" jdbcType="INTEGER"/>
+            <result property="limitMin" column="limit_min" jdbcType="DECIMAL"/>
+            <result property="typeName" column="type_name" jdbcType="VARCHAR"/>
+            <result property="faceValue" column="face_value" jdbcType="DECIMAL"/>
+            <result property="imgUrl" column="img_url" jdbcType="VARCHAR"/>
+            <result property="startTime" column="start_time" jdbcType="TIMESTAMP"/>
+            <result property="endTime" column="end_time" jdbcType="TIMESTAMP"/>
+            <result property="getTime" column="get_time" jdbcType="VARCHAR"/>
+            <result property="getWay" column="get_way" jdbcType="INTEGER"/>
+            <result property="usedTime" column="used_time" jdbcType="TIMESTAMP"/>
+            <result property="activeId" column="active_id" jdbcType="BIGINT"/>
+            <result property="status" column="status" jdbcType="INTEGER"/>
+            <result property="remark" column="remark" jdbcType="VARCHAR"/>
+            <result property="reversion" column="reversion" jdbcType="INTEGER"/>
+            <result property="statFlag" column="stat_flag" jdbcType="INTEGER"/>
+            <result property="createdTime" column="created_time" jdbcType="TIMESTAMP"/>
+            <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+            <result property="delFlag" column="del_flag" jdbcType="INTEGER"/>
+            <result property="isReceive" column="is_receive" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,user_id,user_name,
+        mobile,coupon_id,coupon_name,
+        coupon_tactics_type,tactics_type_desc,coupon_type,
+        product_value,limit_min_flag,limit_min,
+        type_name,face_value,img_url,
+        start_time,end_time,get_time,
+        get_way,used_time,active_id,
+        status,remark,reversion,
+        stat_flag,created_time,update_time,
+        del_flag,is_receive
+    </sql>
+</mapper>

+ 28 - 0
src/main/resources/mapper/OrderDetailsMapper.xml

@@ -0,0 +1,28 @@
+<?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.zhentao.common.orders.mapper.OrderDetailsMapper">
+
+    <resultMap id="BaseResultMap" type="com.zhentao.common.orders.domain.OrderDetails">
+            <id property="detailId" column="detail_id" jdbcType="BIGINT"/>
+            <result property="userId" column="user_id" jdbcType="BIGINT"/>
+            <result property="orderId" column="order_id" jdbcType="BIGINT"/>
+            <result property="courseId" column="course_id" jdbcType="BIGINT"/>
+            <result property="skuId" column="sku_id" jdbcType="BIGINT"/>
+            <result property="courseName" column="course_name" jdbcType="VARCHAR"/>
+            <result property="originalFee" column="original_fee" jdbcType="DECIMAL"/>
+            <result property="actualFee" column="actual_fee" jdbcType="DECIMAL"/>
+            <result property="discountAmount" column="discount_amount" jdbcType="DECIMAL"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+            <result property="remark" column="remark" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        detail_id,user_id,order_id,
+        course_id,sku_id,course_name,
+        original_fee,actual_fee,discount_amount,
+        create_time,update_time,remark
+    </sql>
+</mapper>

+ 34 - 0
src/main/resources/mapper/OrdersMapper.xml

@@ -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.zhentao.common.orders.mapper.OrdersMapper">
+
+    <resultMap id="BaseResultMap" type="com.zhentao.common.orders.domain.Orders">
+            <id property="ordersId" column="orders_id" jdbcType="BIGINT"/>
+            <result property="userId" column="user_id" jdbcType="BIGINT"/>
+            <result property="couponId" column="coupon_id" jdbcType="BIGINT"/>
+            <result property="courseName" column="course_name" jdbcType="VARCHAR"/>
+            <result property="paymentMethod" column="payment_method" jdbcType="INTEGER"/>
+            <result property="paymentStatus" column="payment_status" jdbcType="INTEGER"/>
+            <result property="paymentTime" column="payment_time" jdbcType="TIMESTAMP"/>
+            <result property="orderStatus" column="order_status" jdbcType="INTEGER"/>
+            <result property="originalFee" column="original_fee" jdbcType="DECIMAL"/>
+            <result property="actualFee" column="actual_fee" jdbcType="DECIMAL"/>
+            <result property="discountAmount" column="discount_amount" jdbcType="DECIMAL"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+            <result property="isDelete" column="is_delete" jdbcType="INTEGER"/>
+            <result property="isRefund" column="is_refund" jdbcType="INTEGER"/>
+            <result property="remark" column="remark" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        orders_id,user_id,coupon_id,
+        course_name,payment_method,payment_status,
+        payment_time,order_status,original_fee,
+        actual_fee,discount_amount,create_time,
+        update_time,is_delete,is_refund,
+        remark
+    </sql>
+</mapper>