yangdamao 2 سال پیش
والد
کامیت
8c3a6e1fa9
24فایلهای تغییر یافته به همراه503 افزوده شده و 134 حذف شده
  1. 27 8
      zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/order/TopOrderController.java
  2. 5 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/mapper/OrderGoodsMapper.java
  3. 6 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/IOrderGoodsService.java
  4. 8 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderGoodsServiceImpl.java
  5. 7 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/bo/TopOrderAddBo.java
  6. 7 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/bo/TopOrderEditBo.java
  7. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/bo/TopOrderGoodsAddBo.java
  8. 4 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/bo/TopOrderGoodsEditBo.java
  9. 46 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/bo/TopOrderGoodsQuery.java
  10. 16 85
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/bo/TopOrderQueryBo.java
  11. 5 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/domain/TopOrder.java
  12. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/domain/TopOrderGoods.java
  13. 5 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/mapper/TopOrderGoodsMapper.java
  14. 10 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/mapper/TopOrderMapper.java
  15. 4 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/ITopOrderGoodsService.java
  16. 5 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/ITopOrderService.java
  17. 7 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/impl/TopOrderGoodsServiceImpl.java
  18. 117 35
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/impl/TopOrderServiceImpl.java
  19. 67 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/vo/TopOrderGoodsListVo.java
  20. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/vo/TopOrderGoodsVo.java
  21. 13 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/vo/TopOrderVo.java
  22. 48 0
      zhongzheng-system/src/main/resources/mapper/modules/order/OrderGoodsMapper.xml
  23. 37 0
      zhongzheng-system/src/main/resources/mapper/modules/top/TopOrderGoodsMapper.xml
  24. 51 1
      zhongzheng-system/src/main/resources/mapper/modules/top/TopOrderMapper.xml

+ 27 - 8
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/order/TopOrderController.java

@@ -3,13 +3,21 @@ package com.zhongzheng.controller.order;
 import com.zhongzheng.common.annotation.Log;
 import com.zhongzheng.common.core.controller.BaseController;
 import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.core.domain.model.LoginUser;
+import com.zhongzheng.common.core.domain.model.TopLoginUser;
 import com.zhongzheng.common.core.page.TableDataInfo;
 import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.common.utils.SecurityUtils;
+import com.zhongzheng.common.utils.ServletUtils;
 import com.zhongzheng.common.utils.poi.ExcelUtil;
+import com.zhongzheng.framework.web.service.TokenService;
+import com.zhongzheng.framework.web.service.TopTokenService;
 import com.zhongzheng.modules.top.goods.bo.TopOrderAddBo;
 import com.zhongzheng.modules.top.goods.bo.TopOrderEditBo;
+import com.zhongzheng.modules.top.goods.bo.TopOrderGoodsQuery;
 import com.zhongzheng.modules.top.goods.bo.TopOrderQueryBo;
 import com.zhongzheng.modules.top.goods.service.ITopOrderService;
+import com.zhongzheng.modules.top.goods.vo.TopOrderGoodsListVo;
 import com.zhongzheng.modules.top.goods.vo.TopOrderVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -30,18 +38,21 @@ import java.util.List;
 @Api(value = "订单控制器", tags = {"订单管理"})
 @RequiredArgsConstructor(onConstructor_ = @Autowired)
 @RestController
-@RequestMapping("/system/order")
+@RequestMapping("/system/top/order")
 public class TopOrderController extends BaseController {
 
     private final ITopOrderService iTopOrderService;
 
+    private final TopTokenService tokenService;
+
     /**
      * 查询订单列表
      */
     @ApiOperation("查询订单列表")
-    @PreAuthorize("@ss.hasPermi('system:order:list')")
     @GetMapping("/list")
     public TableDataInfo<TopOrderVo> list(TopOrderQueryBo bo) {
+        TopLoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        bo.setLoginId(loginUser.getUser().getUserId());
         startPage();
         List<TopOrderVo> list = iTopOrderService.queryList(bo);
         return getDataTable(list);
@@ -51,8 +62,6 @@ public class TopOrderController extends BaseController {
      * 导出订单列表
      */
     @ApiOperation("导出订单列表")
-    @PreAuthorize("@ss.hasPermi('system:order:export')")
-    @Log(title = "订单", businessType = BusinessType.EXPORT)
     @GetMapping("/export")
     public AjaxResult<TopOrderVo> export(TopOrderQueryBo bo) {
         List<TopOrderVo> list = iTopOrderService.queryList(bo);
@@ -64,10 +73,20 @@ public class TopOrderController extends BaseController {
      * 获取订单详细信息
      */
     @ApiOperation("获取订单详细信息")
-    @PreAuthorize("@ss.hasPermi('system:order:query')")
-    @GetMapping("/{orderId}")
-    public AjaxResult<TopOrderVo> getInfo(@PathVariable("orderId" ) Long orderId) {
-        return AjaxResult.success(iTopOrderService.queryById(orderId));
+    @GetMapping("/{orderSn}")
+    public AjaxResult<TopOrderVo> getInfo(@PathVariable("orderSn" ) String orderSn) {
+        return AjaxResult.success(iTopOrderService.queryById(orderSn));
+    }
+
+    /**
+     * 获取订单商品信息
+     */
+    @ApiOperation("获取订单商品信息")
+    @GetMapping("/goods/list")
+    public TableDataInfo<TopOrderGoodsListVo> getOrderGoodsList(TopOrderGoodsQuery query) {
+        startPage();
+        List<TopOrderGoodsListVo> list = iTopOrderService.getOrderGoodsList(query);
+        return getDataTable(list);
     }
 
     /**

+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/mapper/OrderGoodsMapper.java

@@ -8,6 +8,9 @@ import com.zhongzheng.modules.order.bo.OrderGoodsQueryBo;
 import com.zhongzheng.modules.order.bo.OrderQueryBo;
 import com.zhongzheng.modules.order.domain.OrderGoods;
 import com.zhongzheng.modules.order.vo.OrderGoodsVo;
+import com.zhongzheng.modules.top.goods.bo.TopOrderGoodsQuery;
+import com.zhongzheng.modules.top.goods.vo.TopOrderGoodsListVo;
+import com.zhongzheng.modules.top.goods.vo.TopOrderGoodsVo;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.security.core.parameters.P;
 
@@ -61,4 +64,6 @@ public interface OrderGoodsMapper extends BaseMapper<OrderGoods> {
     List<GoodsSectionListVo> getGoodsSectionList(@Param("goodsId") Long goodsId);
 
     OrderGoods getOrderByGoods(@Param("userId")Long userId,@Param("goodsId") Long goodsId);
+
+    List<TopOrderGoodsListVo> listByOrderSn(TopOrderGoodsQuery query);
 }

+ 6 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/IOrderGoodsService.java

@@ -12,6 +12,10 @@ import com.zhongzheng.modules.order.bo.*;
 import com.zhongzheng.modules.order.domain.OrderGoods;
 import com.zhongzheng.modules.order.vo.OrderGoodsVo;
 import com.zhongzheng.modules.order.vo.OrderUserGoodsVo;
+import com.zhongzheng.modules.top.goods.bo.TopOrderGoodsQuery;
+import com.zhongzheng.modules.top.goods.vo.TopOrderGoodsListVo;
+import com.zhongzheng.modules.top.goods.vo.TopOrderGoodsVo;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.Collection;
 import java.util.List;
@@ -113,4 +117,6 @@ public interface IOrderGoodsService extends IService<OrderGoods> {
     List<GoodsSectionListVo> getGoodsSectionList(GoodsSectionListBo bo);
 
     OrderGoods getOrderByGoods(Long userId, Long goodsId);
+
+    List<TopOrderGoodsListVo> listByOrderSn(TopOrderGoodsQuery query);
 }

+ 8 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderGoodsServiceImpl.java

@@ -56,6 +56,9 @@ import com.zhongzheng.modules.order.vo.OrderListVo;
 import com.zhongzheng.modules.order.vo.OrderUserGoodsVo;
 import com.zhongzheng.modules.polyv.bo.PolyvLiveQueryBo;
 import com.zhongzheng.modules.polyv.service.IPolyvLiveService;
+import com.zhongzheng.modules.top.goods.bo.TopOrderGoodsQuery;
+import com.zhongzheng.modules.top.goods.vo.TopOrderGoodsListVo;
+import com.zhongzheng.modules.top.goods.vo.TopOrderGoodsVo;
 import com.zhongzheng.modules.user.bo.SubjectStudyRecordQueryBo;
 import com.zhongzheng.modules.user.bo.UserExamGoodsQueryBo;
 import com.zhongzheng.modules.user.bo.UserStudyRecordQueryBo;
@@ -672,6 +675,11 @@ public class OrderGoodsServiceImpl extends ServiceImpl<OrderGoodsMapper, OrderGo
         return baseMapper.getOrderByGoods(userId,goodsId);
     }
 
+    @Override
+    public List<TopOrderGoodsListVo> listByOrderSn(TopOrderGoodsQuery query) {
+        return baseMapper.listByOrderSn(query);
+    }
+
     private boolean checkUnique(Long GoodsId,Long UserId) {
         ShoppingCart info = iShoppingCartService.getOne(new LambdaQueryWrapper<ShoppingCart>()
                 .eq(ShoppingCart::getUserId,UserId).eq(ShoppingCart::getGoodsId,GoodsId).last("limit 1"));

+ 7 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/bo/TopOrderAddBo.java

@@ -82,7 +82,7 @@ public class TopOrderAddBo {
     private Integer payStatus;
     /** 审核状态:0待审核,1已通过,2未通过,3已撤销 */
     @ApiModelProperty("审核状态:0待审核,1已通过,2未通过,3已撤销")
-    private Integer checkStaus;
+    private Integer checkStatus;
     /** 退款状态:0待审核,1未通过,2未退款,3已完成 */
     @ApiModelProperty("退款状态:0待审核,1未通过,2未退款,3已完成")
     private Integer refundStatus;
@@ -125,6 +125,12 @@ public class TopOrderAddBo {
     /** 业务员机构 */
     @ApiModelProperty("业务员机构")
     private Integer createOrg;
+    /** 预收款时间 */
+    @ApiModelProperty("预收款时间")
+    private Integer predictReceiveTime;
+    /** 预付款时间 */
+    @ApiModelProperty("预付款时间")
+    private Integer predictPayTime;
 
     @ApiModelProperty("订单商品")
     private List<TopOrderGoodsAddBo> orderGoodsList;

+ 7 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/bo/TopOrderEditBo.java

@@ -103,7 +103,7 @@ public class TopOrderEditBo {
 
     /** 审核状态:0待审核,1已通过,2未通过,3已撤销 */
     @ApiModelProperty("审核状态:0待审核,1已通过,2未通过,3已撤销")
-    private Integer checkStaus;
+    private Integer checkStatus;
 
     /** 退款状态:0待审核,1未通过,2未退款,3已完成 */
     @ApiModelProperty("退款状态:0待审核,1未通过,2未退款,3已完成")
@@ -160,5 +160,11 @@ public class TopOrderEditBo {
     @ApiModelProperty("业务员机构")
     private Integer createOrg;
 
+    /** 预收款时间 */
+    @ApiModelProperty("预收款时间")
+    private Integer predictReceiveTime;
+    /** 预付款时间 */
+    @ApiModelProperty("预付款时间")
+    private Integer predictPayTime;
 
 }

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/bo/TopOrderGoodsAddBo.java

@@ -73,6 +73,9 @@ public class TopOrderGoodsAddBo {
     /** 业务名称 */
     @ApiModelProperty("业务名称")
     private String businessName;
+    /** 业务全称 */
+    @ApiModelProperty("业务全称")
+    private String businessFullName;
     /** 学习状态:0未开始,1学习中,2已结束 */
     @ApiModelProperty("学习状态:0未开始,1学习中,2已结束")
     private Integer studyStatus;

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/bo/TopOrderGoodsEditBo.java

@@ -93,6 +93,10 @@ public class TopOrderGoodsEditBo {
     @ApiModelProperty("业务名称")
     private String businessName;
 
+    /** 业务全称 */
+    @ApiModelProperty("业务全称")
+    private String businessFullName;
+
     /** 学习状态:0未开始,1学习中,2已结束 */
     @ApiModelProperty("学习状态:0未开始,1学习中,2已结束")
     private Integer studyStatus;

+ 46 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/bo/TopOrderGoodsQuery.java

@@ -0,0 +1,46 @@
+package com.zhongzheng.modules.top.goods.bo;
+
+import com.zhongzheng.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.List;
+
+/**
+ * 订单分页查询对象 top_order
+ *
+ * @author ruoyi
+ * @date 2023-04-20
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("订单分页查询对象")
+public class TopOrderGoodsQuery extends BaseEntity {
+
+	/** 分页大小 */
+	@ApiModelProperty("分页大小")
+	private Integer pageSize;
+	/** 当前页数 */
+	@ApiModelProperty("当前页数")
+	private Integer pageNum;
+	/** 排序列 */
+	@ApiModelProperty("排序列")
+	private String orderByColumn;
+	/** 排序的方向desc或者asc */
+	@ApiModelProperty(value = "排序的方向", example = "asc,desc")
+	private String isAsc;
+
+
+	/** 订单编号 */
+	@ApiModelProperty("订单编号")
+	private String orderSn;
+	@ApiModelProperty("1新系统C端订单,2旧系统C端订单,3旧系统B端订单 ")
+	private Integer orderFrom;
+	@ApiModelProperty("学员姓名")
+	private String userName;
+	@ApiModelProperty("学员身份证")
+	private String userCard;
+
+}

+ 16 - 85
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/bo/TopOrderQueryBo.java

@@ -7,6 +7,7 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 
 import java.math.BigDecimal;
+import java.util.List;
 
 /**
  * 订单分页查询对象 top_order
@@ -36,100 +37,30 @@ public class TopOrderQueryBo extends BaseEntity {
 	/** 订单编号 */
 	@ApiModelProperty("订单编号")
 	private String orderSn;
-	/** 用户ID */
-	@ApiModelProperty("用户ID")
-	private Long userId;
-	/** 订单标准价格 */
-	@ApiModelProperty("订单标准价格")
-	private BigDecimal orderPrice;
-	/** 支付订单号 */
-	@ApiModelProperty("支付订单号")
-	private String orderGeneral;
-	/** 订单状态 -2 超时关闭,-1手动关闭,0待支付,1已支付 3部分已退款 4完全退款 */
-	@ApiModelProperty("订单状态 -2 超时关闭,-1手动关闭,0待支付,1已支付 3部分已退款 4完全退款")
-	private Integer orderStatus;
-	/** 支付时间 */
-	@ApiModelProperty("支付时间")
-	private Long payTime;
-	/** 支付平台  */
-	@ApiModelProperty("支付平台 ")
-	private Integer payType;
-	/** 微信流水号 */
-	@ApiModelProperty("微信流水号")
-	private String transid;
-	/** 关闭时间 */
-	@ApiModelProperty("关闭时间")
-	private Long cancelTime;
-	/** 订单完成时间 */
-	@ApiModelProperty("订单完成时间")
-	private Long finishTime;
-	/** 订单类型   1线上,2线下 */
-	@ApiModelProperty("订单类型   1线上,2线下")
-	private Integer orderType;
-	/** 支付价格(成交价) */
-	@ApiModelProperty("支付价格(成交价)")
-	private BigDecimal payPrice;
-	/** 订单来源 1新系统C端订单,2旧系统C端订单,3旧系统B端订单  */
-	@ApiModelProperty("订单来源 1新系统C端订单,2旧系统C端订单,3旧系统B端订单 ")
-	private Integer orderFrom;
-	/** 业务员名称 */
-	@ApiModelProperty("业务员名称")
-	private String createUsername;
-	/** 1有效 0无效 */
-	@ApiModelProperty("1有效 0无效")
-	private Integer status;
-	/** 业务员名称ID */
-	@ApiModelProperty("业务员名称ID")
-	private Long createSysUserId;
-	/** 业务号 */
-	@ApiModelProperty("业务号")
-	private String createNo;
-	/** 录单订单编号 */
-	@ApiModelProperty("录单订单编号")
-	private String inputOrderSn;
-	/** 支付状态 0未收费,1部分付款  2完全付款 3免费 */
-	@ApiModelProperty("支付状态 0未收费,1部分付款  2完全付款 3免费")
-	private Integer payStatus;
 	/** 审核状态:0待审核,1已通过,2未通过,3已撤销 */
 	@ApiModelProperty("审核状态:0待审核,1已通过,2未通过,3已撤销")
-	private Integer checkStaus;
+	private Integer checkStatus;
 	/** 退款状态:0待审核,1未通过,2未退款,3已完成 */
 	@ApiModelProperty("退款状态:0待审核,1未通过,2未退款,3已完成")
 	private Integer refundStatus;
+	@ApiModelProperty("退款状态:0待审核,1未通过,2未退款,3已完成")
+	private List<Integer> refundStatusList;
 	/** 账款状态:0未结清,1已结清 */
 	@ApiModelProperty("账款状态:0未结清,1已结清")
 	private Integer creditStatus;
 	/** 发票状态:0未开票,1已开票 */
 	@ApiModelProperty("发票状态:0未开票,1已开票")
 	private Integer invoiceStatus;
-	/** 盈亏(元) */
-	@ApiModelProperty("盈亏(元)")
-	private BigDecimal orderProfit;
-	/** 成本(元) */
-	@ApiModelProperty("成本(元)")
-	private BigDecimal orderCost;
-	/** 退款(元) */
-	@ApiModelProperty("退款(元)")
-	private BigDecimal orderRefund;
-	/** 已退(元) */
-	@ApiModelProperty("已退(元)")
-	private BigDecimal orderRefunded;
-	/** 未收账款(元) */
-	@ApiModelProperty("未收账款(元)")
-	private BigDecimal orderUncollected;
-	/** 实收账款(元) */
-	@ApiModelProperty("实收账款(元)")
-	private BigDecimal orderReceived;
-	/** 业务分类 */
-	@ApiModelProperty("业务分类")
-	private String orderBusiness;
-	/** 成本设置 */
-	@ApiModelProperty("成本设置")
-	private String costJson;
-	/** 订单来源系统名称 */
-	@ApiModelProperty("订单来源系统名称")
-	private String orderOrg;
-	/** 业务员机构 */
-	@ApiModelProperty("业务员机构")
-	private Integer createOrg;
+	@ApiModelProperty("业务名称")
+	private String businessFullName;
+	@ApiModelProperty("当前登入人员ID")
+	private Long loginId;
+	@ApiModelProperty("开始时间")
+	private Long startTime;
+	@ApiModelProperty("结束时间")
+	private Long endTime;
+	@ApiModelProperty("关键字")
+	private String keyword;
+	@ApiModelProperty("学员身份证")
+	private String userCard;
 }

+ 5 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/domain/TopOrder.java

@@ -73,7 +73,7 @@ private static final long serialVersionUID=1L;
     /** 支付状态 0未收费,1部分付款  2完全付款 3免费 */
     private Integer payStatus;
     /** 审核状态:0待审核,1已通过,2未通过,3已撤销 */
-    private Integer checkStaus;
+    private Integer checkStatus;
     /** 退款状态:0待审核,1未通过,2未退款,3已完成 */
     private Integer refundStatus;
     /** 账款状态:0未结清,1已结清 */
@@ -102,4 +102,8 @@ private static final long serialVersionUID=1L;
     private String orderOrg;
     /** 业务员机构 */
     private Integer createOrg;
+    /** 预收款时间 */
+    private Integer predictReceiveTime;
+    /** 预付款时间 */
+    private Integer predictPayTime;
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/domain/TopOrderGoods.java

@@ -69,6 +69,8 @@ private static final long serialVersionUID=1L;
     private String goodsName;
     /** 业务名称 */
     private String businessName;
+    /** 业务全称 */
+    private String businessFullName;
     /** 学习状态:0未开始,1学习中,2已结束 */
     private Integer studyStatus;
     @ApiModelProperty("学员ID")

+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/mapper/TopOrderGoodsMapper.java

@@ -1,7 +1,11 @@
 package com.zhongzheng.modules.top.goods.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzheng.modules.top.goods.bo.TopOrderGoodsQuery;
 import com.zhongzheng.modules.top.goods.domain.TopOrderGoods;
+import com.zhongzheng.modules.top.goods.vo.TopOrderGoodsListVo;
+
+import java.util.List;
 
 /**
  * 订单商品Mapper接口
@@ -11,4 +15,5 @@ import com.zhongzheng.modules.top.goods.domain.TopOrderGoods;
  */
 public interface TopOrderGoodsMapper extends BaseMapper<TopOrderGoods> {
 
+    List<TopOrderGoodsListVo> getListByQuery(TopOrderGoodsQuery query);
 }

+ 10 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/mapper/TopOrderMapper.java

@@ -2,7 +2,12 @@ package com.zhongzheng.modules.top.goods.mapper;
 
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzheng.modules.top.goods.bo.TopOrderQueryBo;
 import com.zhongzheng.modules.top.goods.domain.TopOrder;
+import com.zhongzheng.modules.top.goods.vo.TopOrderVo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * 订单Mapper接口
@@ -12,4 +17,9 @@ import com.zhongzheng.modules.top.goods.domain.TopOrder;
  */
 public interface TopOrderMapper extends BaseMapper<TopOrder> {
 
+    List<TopOrderVo> queryList(TopOrderQueryBo bo);
+
+    TopOrderVo queryById(@Param("orderSn") String orderSn);
+
+    List<String> queryBusinessBySn(@Param("orderSn") String orderSn);
 }

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/ITopOrderGoodsService.java

@@ -3,8 +3,10 @@ package com.zhongzheng.modules.top.goods.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.zhongzheng.modules.top.goods.bo.TopOrderGoodsAddBo;
 import com.zhongzheng.modules.top.goods.bo.TopOrderGoodsEditBo;
+import com.zhongzheng.modules.top.goods.bo.TopOrderGoodsQuery;
 import com.zhongzheng.modules.top.goods.bo.TopOrderGoodsQueryBo;
 import com.zhongzheng.modules.top.goods.domain.TopOrderGoods;
+import com.zhongzheng.modules.top.goods.vo.TopOrderGoodsListVo;
 import com.zhongzheng.modules.top.goods.vo.TopOrderGoodsVo;
 
 import java.util.Collection;
@@ -49,4 +51,6 @@ public interface ITopOrderGoodsService extends IService<TopOrderGoods> {
 	 * @return
 	 */
 	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+
+    List<TopOrderGoodsListVo> getListByQuery(TopOrderGoodsQuery query);
 }

+ 5 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/ITopOrderService.java

@@ -4,8 +4,10 @@ package com.zhongzheng.modules.top.goods.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.zhongzheng.modules.top.goods.bo.TopOrderAddBo;
 import com.zhongzheng.modules.top.goods.bo.TopOrderEditBo;
+import com.zhongzheng.modules.top.goods.bo.TopOrderGoodsQuery;
 import com.zhongzheng.modules.top.goods.bo.TopOrderQueryBo;
 import com.zhongzheng.modules.top.goods.domain.TopOrder;
+import com.zhongzheng.modules.top.goods.vo.TopOrderGoodsListVo;
 import com.zhongzheng.modules.top.goods.vo.TopOrderVo;
 
 import java.util.Collection;
@@ -22,7 +24,7 @@ public interface ITopOrderService extends IService<TopOrder> {
 	 * 查询单个
 	 * @return
 	 */
-	TopOrderVo queryById(Long orderId);
+	TopOrderVo queryById(String orderSn);
 
 	/**
 	 * 查询列表
@@ -50,4 +52,6 @@ public interface ITopOrderService extends IService<TopOrder> {
 	 * @return
 	 */
 	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+
+    List<TopOrderGoodsListVo> getOrderGoodsList(TopOrderGoodsQuery query);
 }

+ 7 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/impl/TopOrderGoodsServiceImpl.java

@@ -9,10 +9,12 @@ import com.github.pagehelper.Page;
 import com.zhongzheng.common.utils.DateUtils;
 import com.zhongzheng.modules.top.goods.bo.TopOrderGoodsAddBo;
 import com.zhongzheng.modules.top.goods.bo.TopOrderGoodsEditBo;
+import com.zhongzheng.modules.top.goods.bo.TopOrderGoodsQuery;
 import com.zhongzheng.modules.top.goods.bo.TopOrderGoodsQueryBo;
 import com.zhongzheng.modules.top.goods.domain.TopOrderGoods;
 import com.zhongzheng.modules.top.goods.mapper.TopOrderGoodsMapper;
 import com.zhongzheng.modules.top.goods.service.ITopOrderGoodsService;
+import com.zhongzheng.modules.top.goods.vo.TopOrderGoodsListVo;
 import com.zhongzheng.modules.top.goods.vo.TopOrderGoodsVo;
 import org.springframework.stereotype.Service;
 
@@ -111,4 +113,9 @@ public class TopOrderGoodsServiceImpl extends ServiceImpl<TopOrderGoodsMapper, T
         }
         return this.removeByIds(ids);
     }
+
+    @Override
+    public List<TopOrderGoodsListVo> getListByQuery(TopOrderGoodsQuery query) {
+        return baseMapper.getListByQuery(query);
+    }
 }

+ 117 - 35
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/impl/TopOrderServiceImpl.java

@@ -4,12 +4,25 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.pagehelper.Page;
+import com.zhongzheng.common.exception.CustomException;
+import com.zhongzheng.common.type.EncryptHandler;
 import com.zhongzheng.common.utils.DateUtils;
+import com.zhongzheng.modules.course.domain.CourseSubject;
+import com.zhongzheng.modules.course.service.ICourseSubjectService;
+import com.zhongzheng.modules.grade.domain.ClassGradeUser;
+import com.zhongzheng.modules.grade.domain.UserPeriod;
+import com.zhongzheng.modules.grade.service.IClassGradeUserService;
+import com.zhongzheng.modules.grade.service.IUserPeriodService;
+import com.zhongzheng.modules.order.domain.OrderGoods;
+import com.zhongzheng.modules.order.service.IOrderGoodsService;
 import com.zhongzheng.modules.top.goods.bo.TopOrderAddBo;
 import com.zhongzheng.modules.top.goods.bo.TopOrderEditBo;
+import com.zhongzheng.modules.top.goods.bo.TopOrderGoodsQuery;
 import com.zhongzheng.modules.top.goods.bo.TopOrderQueryBo;
 import com.zhongzheng.modules.top.goods.domain.TopOrder;
 import com.zhongzheng.modules.top.goods.domain.TopOrderAttachment;
@@ -18,12 +31,17 @@ import com.zhongzheng.modules.top.goods.mapper.TopOrderMapper;
 import com.zhongzheng.modules.top.goods.service.ITopOrderAttachmentService;
 import com.zhongzheng.modules.top.goods.service.ITopOrderGoodsService;
 import com.zhongzheng.modules.top.goods.service.ITopOrderService;
+import com.zhongzheng.modules.top.goods.vo.TopOrderAttachmentVo;
+import com.zhongzheng.modules.top.goods.vo.TopOrderGoodsListVo;
+import com.zhongzheng.modules.top.goods.vo.TopOrderGoodsVo;
 import com.zhongzheng.modules.top.goods.vo.TopOrderVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.List;
+import java.util.Set;
 import java.util.stream.Collectors;
 
 /**
@@ -41,46 +59,51 @@ public class TopOrderServiceImpl extends ServiceImpl<TopOrderMapper, TopOrder> i
     @Autowired
     private ITopOrderAttachmentService topOrderAttachmentService;
 
+    @Autowired
+    private IOrderGoodsService orderGoodsService;
+
+    @Autowired
+    private ICourseSubjectService courseSubjectService;
+
+    @Autowired
+    private IUserPeriodService userPeriodService;
+
+    @Autowired
+    private IClassGradeUserService classGradeUserService;
+
     @Override
-    public TopOrderVo queryById(Long orderId){
-        TopOrder db = this.baseMapper.selectById(orderId);
-        return BeanUtil.toBean(db, TopOrderVo.class);
+    public TopOrderVo queryById(String orderSn){
+        //查询视图 v_top_order
+        TopOrderVo orderVo = baseMapper.queryById(orderSn);
+        if (ObjectUtils.isNull(orderVo)){
+            throw new CustomException("订单号错误!");
+        }
+        //订单附件
+        if (orderVo.getOrderFrom() != 1){
+            //旧系统订单
+            List<TopOrderAttachment> list = topOrderAttachmentService
+                    .list(new LambdaQueryWrapper<TopOrderAttachment>()
+                    .eq(TopOrderAttachment::getOrderSn, orderVo.getOrderSn())
+                    .eq(TopOrderAttachment::getStatus, 1));
+            if (CollectionUtils.isNotEmpty(list)){
+                orderVo.setAttachmentList(list.stream().map(x -> BeanUtil.toBean(x, TopOrderAttachmentVo.class)).collect(Collectors.toList()));
+            }
+        }
+        return orderVo;
     }
 
     @Override
     public List<TopOrderVo> queryList(TopOrderQueryBo bo) {
-        LambdaQueryWrapper<TopOrder> lqw = Wrappers.lambdaQuery();
-        lqw.eq(StrUtil.isNotBlank(bo.getOrderSn()), TopOrder::getOrderSn, bo.getOrderSn());
-        lqw.eq(bo.getUserId() != null, TopOrder::getUserId, bo.getUserId());
-        lqw.eq(bo.getOrderPrice() != null, TopOrder::getOrderPrice, bo.getOrderPrice());
-        lqw.eq(StrUtil.isNotBlank(bo.getOrderGeneral()), TopOrder::getOrderGeneral, bo.getOrderGeneral());
-        lqw.eq(bo.getOrderStatus() != null, TopOrder::getOrderStatus, bo.getOrderStatus());
-        lqw.eq(bo.getPayTime() != null, TopOrder::getPayTime, bo.getPayTime());
-        lqw.eq(bo.getPayType() != null, TopOrder::getPayType, bo.getPayType());
-        lqw.eq(StrUtil.isNotBlank(bo.getTransid()), TopOrder::getTransid, bo.getTransid());
-        lqw.eq(bo.getCancelTime() != null, TopOrder::getCancelTime, bo.getCancelTime());
-        lqw.eq(bo.getFinishTime() != null, TopOrder::getFinishTime, bo.getFinishTime());
-        lqw.eq(bo.getOrderType() != null, TopOrder::getOrderType, bo.getOrderType());
-        lqw.eq(bo.getPayPrice() != null, TopOrder::getPayPrice, bo.getPayPrice());
-        lqw.eq(bo.getOrderFrom() != null, TopOrder::getOrderFrom, bo.getOrderFrom());
-        lqw.like(StrUtil.isNotBlank(bo.getCreateUsername()), TopOrder::getCreateUsername, bo.getCreateUsername());
-        lqw.eq(bo.getStatus() != null, TopOrder::getStatus, bo.getStatus());
-        lqw.eq(bo.getCreateSysUserId() != null, TopOrder::getCreateSysUserId, bo.getCreateSysUserId());
-        lqw.eq(StrUtil.isNotBlank(bo.getCreateNo()), TopOrder::getCreateNo, bo.getCreateNo());
-        lqw.eq(StrUtil.isNotBlank(bo.getInputOrderSn()), TopOrder::getInputOrderSn, bo.getInputOrderSn());
-        lqw.eq(bo.getPayStatus() != null, TopOrder::getPayStatus, bo.getPayStatus());
-        lqw.eq(bo.getCheckStaus() != null, TopOrder::getCheckStaus, bo.getCheckStaus());
-        lqw.eq(bo.getRefundStatus() != null, TopOrder::getRefundStatus, bo.getRefundStatus());
-        lqw.eq(bo.getCreditStatus() != null, TopOrder::getCreditStatus, bo.getCreditStatus());
-        lqw.eq(bo.getInvoiceStatus() != null, TopOrder::getInvoiceStatus, bo.getInvoiceStatus());
-        lqw.eq(bo.getOrderCost() != null, TopOrder::getOrderCost, bo.getOrderCost());
-        lqw.eq(bo.getOrderRefund() != null, TopOrder::getOrderRefund, bo.getOrderRefund());
-        lqw.eq(bo.getOrderRefunded() != null, TopOrder::getOrderRefunded, bo.getOrderRefunded());
-        lqw.eq(bo.getOrderUncollected() != null, TopOrder::getOrderUncollected, bo.getOrderUncollected());
-        lqw.eq(bo.getOrderReceived() != null, TopOrder::getOrderReceived, bo.getOrderReceived());
-        lqw.eq(StrUtil.isNotBlank(bo.getOrderBusiness()), TopOrder::getOrderBusiness, bo.getOrderBusiness());
-        lqw.eq(StrUtil.isNotBlank(bo.getCostJson()), TopOrder::getCostJson, bo.getCostJson());
-        return entity2Vo(this.list(lqw));
+        //查询视图 v_top_order
+        List<TopOrderVo> orderVoList = baseMapper.queryList(bo);
+        if (CollectionUtils.isNotEmpty(orderVoList)){
+            //订单业务类型
+            orderVoList.forEach(item -> {
+               List<String> businessNames = baseMapper.queryBusinessBySn(item.getOrderSn());
+               item.setBusinessNames(businessNames);
+            });
+        }
+        return orderVoList;
     }
 
     /**
@@ -149,4 +172,63 @@ public class TopOrderServiceImpl extends ServiceImpl<TopOrderMapper, TopOrder> i
         }
         return this.removeByIds(ids);
     }
+
+    @Override
+    public List<TopOrderGoodsListVo> getOrderGoodsList(TopOrderGoodsQuery query) {
+        if (query.getOrderFrom() == 1){
+            //新系统订单
+            List<TopOrderGoodsListVo> topOrderGoodsListVos = orderGoodsService.listByOrderSn(query);
+            if (CollectionUtils.isNotEmpty(topOrderGoodsListVos)){
+                topOrderGoodsListVos.forEach(item -> {
+                    item.setUserCount(1);
+                    //专业
+                    if (StringUtils.isNotBlank(item.getSubjectIds())){
+                        List<CourseSubject> subjectList = courseSubjectService.listByIds(Arrays.asList(item.getSubjectIds().split(",")));
+                        if (CollectionUtils.isNotEmpty(subjectList)){
+                            item.setMajorName(subjectList.stream().map(CourseSubject::getSubjectName).collect(Collectors.joining()));
+                        }
+                    }
+                    //学习状态
+                    if (ObjectUtils.isNotNull(item.getGoodsType()) && ObjectUtils.isNotNull(item.getGradeId()) && item.getGoodsType() == 1 ){
+                        int count = userPeriodService.count(new LambdaQueryWrapper<UserPeriod>()
+                                .eq(UserPeriod::getUserId, item.getUserId())
+                                .eq(UserPeriod::getGradeId, item.getGradeId()));
+                        if (count > 0){
+                            //学完/未学完
+                            ClassGradeUser classGradeUser = classGradeUserService.getOne(new LambdaQueryWrapper<ClassGradeUser>()
+                                    .eq(ClassGradeUser::getUserId, item.getUserId())
+                                    .eq(ClassGradeUser::getGradeId, item.getGradeId())
+                                    .last("limit 1"));
+                            item.setStudyStatus(
+                                    ObjectUtils.isNotNull(classGradeUser.getFinishStatus()) && classGradeUser.getFinishStatus() == 1?"已结束":"学习中");
+                        }else {
+                            item.setStudyStatus("未开始");
+                        }
+                    }
+                });
+            }
+            return topOrderGoodsListVos;
+        }
+        //旧系统订单
+        List<TopOrderGoodsListVo> list = topOrderGoodsService.getListByQuery(query);
+        if (CollectionUtils.isNotEmpty(list)){
+            //学员数量
+            Integer userCount = 0;
+            List<TopOrderGoods> goodsList = topOrderGoodsService
+                    .list(new LambdaQueryWrapper<TopOrderGoods>().eq(TopOrderGoods::getOrderSn, query.getOrderSn())
+                    .eq(TopOrderGoods::getStatus, 1)
+                    .ne(TopOrderGoods::getRefundStatus, 2)
+                    .in(TopOrderGoods::getPayStatus, Arrays.asList(2, 3, 4)));
+            if (CollectionUtils.isNotEmpty(goodsList)){
+                userCount = goodsList.stream().map(TopOrderGoods::getUserCard).collect(Collectors.toSet()).size();
+            }
+            //老系统查询学习状态
+
+            //数据处理
+            for (TopOrderGoodsListVo item : list) {
+                item.setUserCount(userCount);
+            }
+        }
+        return list;
+    }
 }

+ 67 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/vo/TopOrderGoodsListVo.java

@@ -0,0 +1,67 @@
+package com.zhongzheng.modules.top.goods.vo;
+
+import com.zhongzheng.common.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+
+/**
+ * 订单商品视图对象 mall_package
+ *
+ * @author ruoyi
+ * @date 2023-04-20
+ */
+@Data
+@ApiModel("订单商品视图对象")
+public class TopOrderGoodsListVo {
+	private static final long serialVersionUID = 1L;
+
+	/** $pkColumn.columnComment */
+	@ApiModelProperty("$pkColumn.columnComment")
+	private Long orderGoodsId;
+	@ApiModelProperty("班级ID")
+	private Long gradeId;
+	/** 订单编号 */
+	@ApiModelProperty("订单编号")
+	private String orderSn;
+	/** 商品id */
+	@ApiModelProperty("商品id")
+	private Long goodsId;
+	/** 商品标准价格 */
+	@ApiModelProperty("商品标准价格")
+	private BigDecimal goodsPrice;
+	/** 商品成交价格 */
+	@ApiModelProperty("商品成交价格")
+	private BigDecimal goodsRealPrice;
+	/** 专业名称 */
+	@ApiModelProperty("专业名称")
+	private String majorName;
+	/** 商品名称 */
+	@ApiModelProperty("商品名称")
+	private String goodsName;
+	@ApiModelProperty("商品类型")
+	private Integer goodsType;
+	/** 业务名称 */
+	@ApiModelProperty("业务名称")
+	private String businessName;
+	@ApiModelProperty("业务全称")
+	private String businessFullName;
+	@ApiModelProperty("科目IDs")
+	private String subjectIds;
+	/** 学习状态:0未开始,1学习中,2已结束 */
+	@ApiModelProperty("学习状态:0未开始,1学习中,2已结束")
+	private String studyStatus;
+	@ApiModelProperty("学员ID")
+	private String userId;
+	@ApiModelProperty("学员名称")
+	private String userName;
+	@ApiModelProperty("学员身份证")
+	private String userCard;
+	@ApiModelProperty("学员手机号码")
+	private String userPhone;
+	@ApiModelProperty("学员数量")
+	private Integer userCount;
+}

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/vo/TopOrderGoodsVo.java

@@ -91,6 +91,9 @@ public class TopOrderGoodsVo {
 	@Excel(name = "业务名称")
 	@ApiModelProperty("业务名称")
 	private String businessName;
+	/** 业务全称 */
+	@ApiModelProperty("业务全称")
+	private String businessFullName;
 	/** 学习状态:0未开始,1学习中,2已结束 */
 	@Excel(name = "学习状态:0未开始,1学习中,2已结束")
 	@ApiModelProperty("学习状态:0未开始,1学习中,2已结束")

+ 13 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/vo/TopOrderVo.java

@@ -1,11 +1,13 @@
 package com.zhongzheng.modules.top.goods.vo;
 
 import com.zhongzheng.common.annotation.Excel;
+import com.zhongzheng.modules.top.goods.domain.TopOrderAttachment;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.math.BigDecimal;
+import java.util.List;
 
 
 /**
@@ -102,7 +104,7 @@ public class TopOrderVo {
 	/** 审核状态:0待审核,1已通过,2未通过,3已撤销 */
 	@Excel(name = "审核状态:0待审核,1已通过,2未通过,3已撤销")
 	@ApiModelProperty("审核状态:0待审核,1已通过,2未通过,3已撤销")
-	private Integer checkStaus;
+	private Integer checkStatus;
 	/** 退款状态:0待审核,1未通过,2未退款,3已完成 */
 	@Excel(name = "退款状态:0待审核,1未通过,2未退款,3已完成")
 	@ApiModelProperty("退款状态:0待审核,1未通过,2未退款,3已完成")
@@ -157,4 +159,14 @@ public class TopOrderVo {
 	/** 业务员机构 */
 	@ApiModelProperty("业务员机构")
 	private Integer createOrg;
+	/** 预收款时间 */
+	@ApiModelProperty("预收款时间")
+	private Integer predictReceiveTime;
+	/** 预付款时间 */
+	@ApiModelProperty("预付款时间")
+	private Integer predictPayTime;
+	@ApiModelProperty("订单附件集合")
+	private List<TopOrderAttachmentVo> attachmentList;
+	@ApiModelProperty("订单业务类型")
+	private List<String> businessNames;
 }

+ 48 - 0
zhongzheng-system/src/main/resources/mapper/modules/order/OrderGoodsMapper.xml

@@ -786,4 +786,52 @@
             AND g.goods_id = #{goodsId}
             LIMIT 1
     </select>
+    <resultMap id="getlist" type="com.zhongzheng.modules.top.goods.vo.TopOrderGoodsListVo">
+        <result property="orderGoodsId" column="order_goods_id"/>
+        <result property="gradeId" column="grade_id"/>
+        <result property="userId" column="user_id" />
+        <result property="userName" column="realname" />
+        <result property="userCard" column="id_card" typeHandler="com.zhongzheng.common.type.EncryptHandler"/>
+        <result property="userPhone" column="telphone" typeHandler="com.zhongzheng.common.type.EncryptHandler"/>
+        <result property="goodsName" column="goods_name"/>
+        <result property="goodsType" column="goods_type"/>
+        <result property="subjectIds" column="subject_ids"/>
+        <result property="businessName" column="business_name"/>
+        <result property="goodsPrice" column="goods_price"/>
+        <result property="goodsRealPrice" column="goods_real_price"/>
+    </resultMap>
+
+    <select id="listByOrderSn" parameterType="com.zhongzheng.modules.top.goods.bo.TopOrderGoodsQuery" resultMap="getlist">
+        SELECT
+            og.order_goods_id,
+            og.grade_id,
+            u.user_id,
+            u.realname,
+            u.id_card,
+            u.telphone,
+            g.goods_name,
+            g.goods_type,
+            g.subject_ids,
+            CONCAT( cb.business_name, cpt.project_name ) AS business_name,
+            og.goods_price,
+            og.goods_real_price
+        FROM
+            order_goods og
+                LEFT JOIN goods g ON og.goods_id = g.goods_id
+                LEFT JOIN course_project_type cpt ON g.project_id = cpt.id
+                LEFT JOIN course_business cb ON g.business_id = cb.id
+                LEFT JOIN `order` o ON og.order_sn = o.order_sn
+                LEFT JOIN `user` u ON o.user_id = u.user_id
+        WHERE
+            og.order_sn = #{orderSn}
+          AND og.`status` = 1
+          AND og.refund_status != 2
+          AND og.pay_status IN ( 2, 3, 4 )
+        <if test="userCard != null and userCard != ''">
+            AND u.id_card = #{userCard,typeHandler=com.zhongzheng.common.type.EncryptHandler}
+        </if>
+        <if test="userName != null and userName != ''">
+            AND u.realname LIKE CONCAT( '%', #{userName}, '%' )
+        </if>
+    </select>
 </mapper>

+ 37 - 0
zhongzheng-system/src/main/resources/mapper/modules/top/TopOrderGoodsMapper.xml

@@ -28,5 +28,42 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="studyStatus" column="study_status"/>
     </resultMap>
 
+    <resultMap id="getlist" type="com.zhongzheng.modules.top.goods.vo.TopOrderGoodsListVo">
+        <result property="orderGoodsId" column="order_goods_id"/>
+        <result property="userName" column="user_name"/>
+        <result property="userCard" column="user_card" typeHandler="com.zhongzheng.common.type.EncryptHandler"/>
+        <result property="userPhone" column="user_phone"/>
+        <result property="goodsName" column="goods_name"/>
+        <result property="majorName" column="major_name"/>
+        <result property="businessName" column="business_name"/>
+        <result property="goodsPrice" column="goods_price"/>
+        <result property="goodsRealPrice" column="goods_real_price"/>
+    </resultMap>
+
+    <select id="getListByQuery" parameterType="com.zhongzheng.modules.top.goods.bo.TopOrderGoodsQuery" resultMap="getlist">
+        SELECT
+            order_goods_id,
+            user_name,
+            user_card,
+            user_phone,
+            goods_name,
+            major_name,
+            business_name,
+            goods_price,
+            goods_real_price
+        FROM
+            top_order_goods
+        WHERE
+            order_sn = ''
+          AND `status` = 1
+          AND refund_status != 2
+	      AND opay_status IN (2,3,4)
+        <if test="userCard != null and userCard != ''">
+            AND user_card = #{userCard,typeHandler=com.zhongzheng.common.type.EncryptHandler}
+        </if>
+        <if test="userName != null and userName != ''">
+            AND user_name LIKE CONCAT( '%', #{userName}, '%' )
+        </if>
+    </select>
 
 </mapper>

+ 51 - 1
zhongzheng-system/src/main/resources/mapper/modules/top/TopOrderMapper.xml

@@ -24,7 +24,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="createUsername" column="create_username"/>
         <result property="status" column="status"/>
         <result property="createSysUserId" column="create_sys_user_id"/>
-        <result property="businessNo" column="business_no"/>
         <result property="inputOrderSn" column="input_order_sn"/>
         <result property="payStatus" column="pay_status"/>
         <result property="checkStaus" column="check_staus"/>
@@ -42,5 +41,56 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="costJson" column="cost_json"/>
     </resultMap>
 
+    <select id="queryList" parameterType="com.zhongzheng.modules.top.goods.bo.TopOrderQueryBo" resultType="com.zhongzheng.modules.top.goods.vo.TopOrderVo">
+        SELECT
+            vto.*
+        FROM
+                ( SELECT order_sn FROM `v_top_order_business` where 1=1
+                <if test="businessFullName != null and businessFullName != ''">
+                    AND business_full_name = #{businessFullName}
+                </if>
+                <if test="userCard != null and userCard != ''">
+                    AND vto.id_card LIKE CONCAT( '%', #{userCard}, '%' )
+                </if>
+                GROUP BY order_sn ) a
+                    LEFT JOIN v_top_order vto ON a.order_sn = vto.order_sn
+        WHERE vto.`status` = 1
+        <if test="checkStatus != null and checkStatus != ''">
+            AND vto.check_status = #{checkStatus}
+        </if>
+        <if test="refundStatusList != null and refundStatusList.size()!=0 ">
+            AND vto.refund_status in
+            <foreach collection="refundStatusList" item="item" index="index" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        <if test="creditStatus != null and creditStatus != ''">
+            AND vto.check_staus = #{checkStaus}
+        </if>
+        <if test="invoiceStatus != null and invoiceStatus != ''">
+            AND vto.invoice_status = #{invoiceStatus}
+        </if>
+        <if test="startTime != null and startTime != ''">
+            AND vto.create_time <![CDATA[ >= ]]> #{startTime}
+        </if>
+        <if test="endTime != null and endTime != ''">
+            AND vto.create_time <![CDATA[ <= ]]> #{endTime}
+        </if>
+        <if test="keyword != null and keyword != ''">
+            AND (
+            vto.create_org LIKE CONCAT( '%', #{keyword}, '%' )
+            OR vto.order_sn LIKE CONCAT( '%', #{keyword}, '%' )
+            OR vto.create_no LIKE CONCAT( '%', #{keyword}, '%' )
+            OR vto.order_org LIKE CONCAT( '%', #{keyword}, '%' ))
+        </if>
+    </select>
+
+    <select id="queryById" parameterType="java.lang.String" resultType="com.zhongzheng.modules.top.goods.vo.TopOrderVo">
+        SELECT * FROM v_top_order WHERE order_sn = #{orderSn}
+    </select>
+
+    <select id="queryBusinessBySn" parameterType="java.lang.String" resultType="java.lang.String">
+        SELECT business_name FROM v_top_order_business WHERE order_sn = #{orderSn}
+    </select>
 
 </mapper>