浏览代码

联合丽格改版

zhijiezhao 2 年之前
父节点
当前提交
ab2bd192cd

+ 5 - 3
src/main/java/com/caimei/modules/club/controller/CmUserOrganizeController.java

@@ -41,12 +41,14 @@ public class CmUserOrganizeController {
      * 机构列表
      */
     @GetMapping(value = "/clubList")
-    public JsonModel toCmOrganizeClubList(CmUser cmUser, Page page) {
-        Assert.assertNotNull("组织Id不能为空!", cmUser.getUserOrganizeId());
+    public ResponseJson<Page<CmUser>> toCmOrganizeClubList(CmUser cmUser, Page page) {
+        if (null == cmUser.getUserOrganizeId()) {
+            return ResponseJson.error("组织Id不能为空!");
+        }
         PageHelper.startPage(page.getIndex(), page.getPageSize());
         List<CmUser> cmUserList = cmUserService.findListBuyUserInfo(cmUser);
         Page<CmUser> cmUserPage = new Page<>(cmUserList);
-        return JsonModel.newInstance().success(cmUserPage);
+        return ResponseJson.success(cmUserPage);
     }
 
     /**

+ 23 - 4
src/main/java/com/caimei/modules/order/controller/OrderPayShopController.java

@@ -1,6 +1,7 @@
 package com.caimei.modules.order.controller;
 
 import com.caimei.modules.order.entity.OrderPayShop;
+import com.caimei.modules.order.entity.OrderPayShopDetail;
 import com.caimei.modules.order.entity.ReceiptVo;
 import com.caimei.modules.order.service.PayShopService;
 import com.caimei.utils.ResponseJson;
@@ -11,10 +12,7 @@ import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 /**
  * @author zzj
@@ -33,6 +31,15 @@ public class OrderPayShopController {
     @ApiImplicitParams({
             @ApiImplicitParam(required = false, name = "orderId", value = "订单Id"),
             @ApiImplicitParam(required = false, name = "orderNo", value = "订单编号"),
+            @ApiImplicitParam(required = false, name = "shopOrderId", value = "子订单Id"),
+            @ApiImplicitParam(required = false, name = "shopOrderNo", value = "子订单编号"),
+            @ApiImplicitParam(required = false, name = "status", value = "审核状态  0待审核,  1审核通过 2 审核不通过"),
+            @ApiImplicitParam(required = false, name = "applyStartTime", value = "申请起始时间"),
+            @ApiImplicitParam(required = false, name = "applyEndTime", value = "申请终止时间"),
+            @ApiImplicitParam(required = false, name = "payStartTime", value = "付款起始时间"),
+            @ApiImplicitParam(required = false, name = "payEndTime", value = "付款终止时间"),
+            @ApiImplicitParam(required = false, name = "shopName", value = "供应商名称"),
+            @ApiImplicitParam(required = false, name = "name", value = "付款单名称"),
             @ApiImplicitParam(required = true, name = "organizeId", value = "组织Id"),
             @ApiImplicitParam(required = true, name = "pageNum", value = "当前页码"),
             @ApiImplicitParam(required = true, name = "pageSize", value = "每页大小")
@@ -43,4 +50,16 @@ public class OrderPayShopController {
         return ResponseJson.success(payShopService.findPayList(orderPayShop, pageNum, pageSize));
     }
 
+
+    @ApiOperation("付款单详情")
+    @GetMapping("/pay/form/{id}")
+    public ResponseJson<OrderPayShopDetail> payDetail(@PathVariable("id") Integer id) {
+        return ResponseJson.success(payShopService.getPayShopDetail(id));
+    }
+
+    @ApiOperation("审核付款单")
+    @PostMapping("/pay/check")
+    public ResponseJson<OrderPayShopDetail> checkPass(@PathVariable("id") Integer id) {
+        return ResponseJson.success(payShopService.getPayShopDetail(id));
+    }
 }

+ 12 - 1
src/main/java/com/caimei/modules/order/dao/PayShopDao.java

@@ -1,6 +1,9 @@
 package com.caimei.modules.order.dao;
 
+import com.caimei.modules.order.entity.NewOrderProduct;
+import com.caimei.modules.order.entity.NewShopOrder;
 import com.caimei.modules.order.entity.OrderPayShop;
+import com.caimei.modules.order.entity.OrderPayShopDetail;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;
@@ -11,5 +14,13 @@ import java.util.List;
 @Mapper
 public interface PayShopDao {
 
-    List<OrderPayShop> findPayShopDao(OrderPayShop orderPayShop);
+    List<OrderPayShop> findPayShops(OrderPayShop orderPayShop);
+
+    OrderPayShopDetail findPayShopDetail(Integer id);
+
+    List<NewShopOrder> findPayShopOrders(Integer payShopId);
+
+    List<NewOrderProduct> findPayOrderProducts(Integer shopOrderId);
+
+    List<String> findShopOrderNos(Integer orderId);
 }

+ 103 - 81
src/main/java/com/caimei/modules/order/entity/NewOrderProduct.java

@@ -1,93 +1,115 @@
 package com.caimei.modules.order.entity;
 
 import com.caimei.modules.club.entity.CmProductSn;
-import com.caimei.utils.AppUtils;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
-import java.beans.Transient;
 import java.util.List;
 
+@ApiModel(description= "子订单商品实体")
 @Data
 public class NewOrderProduct {
-    private Integer orderProductId;//       int(11) not null auto_increment,
-    private Integer shopOrderId;//       int(11) comment '子订单Id',
-    private String shopOrderNo;//    varchar(50) comment '子订单编号',
-    private Integer shopId;//      bigint(11) comment '供应商Id',
-    private String ledgerNo;        // 供应商分账易宝商户编号
-    private Integer productId;//      int(11) comment '商品Id',
-    private Integer num;//     int(11) comment '数量',
-    private Integer presentNum;//   int(11) comment '赠送数量',
-    private String outStoreType;// char(1) comment '出库类型',
-    private Integer skuId;//     int(11) comment 'skuId',
-    private String productNo;//    national varchar(50) comment '商品编号',
-    private Double price;//     float comment '订单商品购买价格',
-    private Double shopProductAmount;        // 商品费  =  成本价快照  *  (购买数量  + 赠品数量)
-    private Double normalPrice;//     float comment '市场价 = 商品表市场价',
-    private Double totalAmount;//     float comment '总价',
-    private Double discount;//     decimal(20,6) comment '折扣',
-    private Double discountPrice;//     decimal(20,6) comment '折后单价',
-    private Double taxRate;//     decimal(20,0) comment '税率',
-    private Double addedValueTax;//     decimal(20,6) comment '增值税',
-    private Double totalAddedValueTax;//  decimal(20,6) comment '总增值税(应收税费)',
-    private Double shouldPayTotalTax;//  decimal(20,6) comment '总增值税(应付税费)',
-    private Double shopFee;//     decimal(20,6) comment '应付供应商金额',
-    private Double otherFee;//       decimal(20,6) comment '应付第三方金额',
-    private Double cmFee;//      decimal(20,6) comment '应付采美金额',
-    private Double singleShopFee;//    decimal(20,6) comment '单个应付供应商金额',
-    private Double singleOtherFee;//   decimal(20,6) comment '单个应付第三方金额',
-    private Double singleCmFee;//   decimal(20,6) comment '单个应付采美金额',
-    private Double shouldPayFee;//   decimal(20,6) comment '应付金额',
-    private Double totalFee;//   float comment '总价',
-    private Double totalBeans;//  decimal(10,2) comment '获取到的总采美豆值',
-    private Double useBalanceAmount;//  double comment '使用余额金额',notOutStore
-    private Integer useBeanAmount;//  int(11) comment '使用采美豆数量',
-    private Integer notOutStore;//  int(11) comment '未出库数量',
-    private Integer cmbeanPrice;// int(11) comment '当前采美豆专区价格(采美豆)',
-    private String isGiftProduct;//  national varchar(255),
-    private String productActInfo;//  national varchar(255),
-    private String buyAgainFlag;//  national char(1) default '0' comment '订单商品再次购买标识 0否 1是',
-    private String confirmProductFlag;// national char(1) default '0' comment '订单商品供应商确认标志 0否 1是',
-    private NewShopOrder newShopOrder;
-    private String shopFeeFlag; //应付供应商 = 应付表的应付供应商  0否 1 是
-    private String orderNo;//        varchar(30) comment '主订单编号',
-    private Integer orderId;//        bigint(30) comment '主订单Id',
-    private String shopName; // 供应商名称
-    private String name; // 商品名称
-    private String aliasName;   //商品学名
-    private String unit;//保证规格
-    private String payStatus; //  0 未进账 1 待财务审核 2 已进账
-    private Double preferential;//优惠 (price - discountPrice) * num
-    private Double actPreferential;//活动优惠  类似满减优惠金额
-    private String image; // 商品图片
-    private Double discountFee; //协销订单:经理折扣(平摊到每个商品上,  按照每种商品的总价占订单总价的比例来均分);普通订单 无'
-    private String productUnit;//`productUnit` varchar(64) DEFAULT NULL COMMENT '商品单位',
-    private String productImage;//`productImage` varchar(100) DEFAULT NULL,
-    private String shopFee1; // 单个应付供应商金额
-    private String otherFee1; // 单个应付第三方金额
-    private String cmFee1; // 单个应付采美金额
-    // *****************  虚拟字段
-    private Integer deliveryNum; // 发货数量
-    private Integer outStoreTimes;  // 发货批次
-    private Double costPrice; // 成本价(快照商品成本价格)
-    private Integer stock; // 库存
-    private String logisticsBatchId; // 发货批次Id
-    private String costCheckFlag; //成本价选中标志:1固定成本 2比例成
-    private Double costProportional;//比例成本百分比
-    private List<CmProductSn> cmProductSnList; //(重光电/轻光电)SN码
 
-    private String consignee;        //收货人
-    private String buyer;           //买家
-    private Integer thisTimePostNum;   // 虚拟字段  发货时记录当前次数该商品发了几个
 
-    private Integer returnedPurchaseProductNum;     //退货完成数量
-    private Integer returningPurchaseProductNum;   //退货中数量
-    private Integer cancelProductNum;   //取消数量
-    private Integer receivedNum;    //已收数量
-    private Integer returningNum;   //退货退款中数量
-    private Integer returnedNum;   //已退数量
-    private Boolean firstReturn;    //是否是第一次退货退款
-    private Double newCostPrice; // 成本价
-    private Double singleShouldPayTotalTax; //单个付供应商税费
-    private Integer frequency;  //订单量
-    private Integer totalNum;   //销售量
+    @ApiModelProperty("订单商品Id")
+    private Integer orderProductId;
+    @ApiModelProperty("子订单id")
+    private Integer shopOrderId;
+    @ApiModelProperty("shopId")
+    private Integer shopId;
+    @ApiModelProperty("productId")
+    private Integer productId;
+    @ApiModelProperty("商品数量")
+    private Integer num;
+    @ApiModelProperty("赠送数量")
+    private Integer presentNum;
+    @ApiModelProperty("skuId")
+    private Integer skuId;
+    @ApiModelProperty("商品编号")
+    private String productNo;
+    @ApiModelProperty("订单商品购买价格")
+    private Double price;
+    @ApiModelProperty("商品费 = 成本价快照 * (购买数量 + 赠品数量)")
+    private Double shopProductAmount;
+    @ApiModelProperty("市场价 = 商品表市场价")
+    private Double normalPrice;
+    @ApiModelProperty("总价")
+    private Double totalAmount;
+    @ApiModelProperty("折扣")
+    private Double discount;
+    @ApiModelProperty("折后单价")
+    private Double discountPrice;
+    @ApiModelProperty("税率")
+    private Double taxRate;
+    @ApiModelProperty("增值税")
+    private Double addedValueTax;
+    @ApiModelProperty("总增值税(应收税费)")
+    private Double totalAddedValueTax;
+    @ApiModelProperty("总增值税(应付税费)")
+    private Double shouldPayTotalTax;
+    @ApiModelProperty("应付供应商金额")
+    private Double shopFee;
+    @ApiModelProperty("应付第三方金额")
+    private Double otherFee;
+    @ApiModelProperty("应付采美金额")
+    private Double cmFee;
+    @ApiModelProperty("单个应付供应商金额")
+    private Double singleShopFee;
+    @ApiModelProperty("单个应付第三方金额")
+    private Double singleOtherFee;
+    @ApiModelProperty("单个应付采美金额")
+    private Double singleCmFee;
+    @ApiModelProperty("应付金额")
+    private Double shouldPayFee;
+    @ApiModelProperty("总价")
+    private Double totalFee;
+    @ApiModelProperty("是否是赠品:0 不是 1 是")
+    private String isGiftProduct;
+    @ApiModelProperty("订单商品再次购买标识 0否 1是")
+    private String buyAgainFlag;
+    @ApiModelProperty("orderId")
+    private Integer orderId;
+    @ApiModelProperty("商品名称")
+    private String name;
+    @ApiModelProperty("规格")
+    private String unit;
+    @ApiModelProperty("优惠 (price - discountPrice) * num")
+    private Double preferential;
+    @ApiModelProperty("活动优惠  类似满减优惠金额")
+    private Double actPreferential;
+    @ApiModelProperty("协销订单:经理折扣(平摊到每个商品上,  按照每种商品的总价占订单总价的比例来均分);普通订单 无'")
+    private Double discountFee;
+    @ApiModelProperty("商品图片")
+    private String productImage;
+    @ApiModelProperty("发货数量")
+    private Integer deliveryNum;
+    @ApiModelProperty("成本价")
+    private Double costPrice;
+    @ApiModelProperty("库存")
+    private Integer stock;
+    @ApiModelProperty("成本价选中标志:1固定成本 2比例成本")
+    private String costCheckFlag;
+    @ApiModelProperty("比例成本百分比")
+    private Double costProportional;
+
+    @ApiModelProperty("(重光电/轻光电)SN码")
+    private List<CmProductSn> cmProductSnList;
+    @ApiModelProperty("退货完成数量")
+    private Integer returnedPurchaseProductNum;
+    @ApiModelProperty("退货中数量")
+    private Integer returningPurchaseProductNum;
+    @ApiModelProperty("取消数量")
+    private Integer cancelProductNum;
+    @ApiModelProperty("已收数量")
+    private Integer receivedNum;
+    @ApiModelProperty("退货退款中数量")
+    private Integer returningNum;
+    @ApiModelProperty("已退数量")
+    private Integer returnedNum;
+    @ApiModelProperty("是否是第一次退货退款")
+    private Boolean firstReturn;
+    @ApiModelProperty("单个付供应商税费")
+    private Double singleShouldPayTotalTax;
+
 }

+ 48 - 148
src/main/java/com/caimei/modules/order/entity/NewShopOrder.java

@@ -17,175 +17,123 @@ import java.util.List;
 @Data
 public class NewShopOrder {
 
-    /**
-     * 收款详情子订单信息
-     */
-    @ApiModelProperty("子订单编号")
-    private String shopOrderNo;
+    @ApiModelProperty("展示字段:付款单详情所有子订单")
+    private List<String> shopOrderNos;
+    @ApiModelProperty("主订单金额")
+    private Double payTotalFee;
+    @ApiModelProperty("机构运费 0包邮 -1到付 -2仪器到付-产品包邮,均不是则为实付运费")
+    private Double freight;
+    @ApiModelProperty("主订单总佣金")
+    private Double totalBrokerage;
+    @ApiModelProperty("主订单收款金额")
+    private Double receiptTotalFee;
+    @ApiModelProperty("付款单的商品费, 子订单商品的成本价的和")
+    private Double shopProductAmount;
+    @ApiModelProperty("付供应商运费")
+    private Double shopPostFee;
+    @ApiModelProperty("(付款供应商)付款状态:1待付款、2部分付款、3已付款")
+    private String payStatus;
 
-    @ApiModelProperty("子订单应收金额")
-    private Double realPay;
+    @ApiModelProperty("已付采美")
+    private Double payCmAmount;
+    @ApiModelProperty("应付采美")
+    private Double shouldPayCmAmount;
+    @ApiModelProperty("待付采美")
+    private Double waitPayCmAmount;
 
-    @ApiModelProperty("子订单已收金额")
-    private Double receiptAmount;
+    @ApiModelProperty("应付供应商 = 商品费 + 运费 + 税费")
+    private Double shouldPayShopAmount;
+    @ApiModelProperty("已付供应商")
+    private Double payedShopAmount;
+    @ApiModelProperty("待付供应商")
+    private Double waitPayShop;
 
+    @ApiModelProperty("供应商名称")
+    private String shopName;
+    @ApiModelProperty("买家/客户")
+    private String buyer;
     @ApiModelProperty("子订单收款状态:1待收款、2部分收款、3已收款")
     private String receiptStatus;
 
     @ApiModelProperty("子订单Id")
     private Integer shopOrderId;
-
-    @ApiModelProperty("组织Id")
-    private Integer organizeId;
-
+    @ApiModelProperty("子订单编号")
+    private String shopOrderNo;
     @ApiModelProperty("订单编号")
     private String orderNo;
-
     @ApiModelProperty("订单Id")
     private Integer orderId;
+    @ApiModelProperty("下单时间")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private String orderTime;
 
-    @ApiModelProperty("主订单已收金额")
-    private Double receiptTotalFee;
 
+    @ApiModelProperty("子订单已收金额")
+    private Double receiptAmount;
+    @ApiModelProperty("子订单应收金额")
+    private Double realPay;
+    @ApiModelProperty("组织Id")
+    private Integer organizeId;
     @ApiModelProperty("userId")
     private Integer userId;
-
     @ApiModelProperty("供应商Id")
     private Integer shopId;
-
     @ApiModelProperty("商品数量")
     private Integer itemCount;
-
     @ApiModelProperty("收货地址县区Id")
     private Integer townId;
-
-    @ApiModelProperty("商品金额")
-    private Double productAmount;
-
     @ApiModelProperty("应收商品金额=应付合计(只需要付商品金额)")
     private Double shouldPayProduct;
-
     @ApiModelProperty("运费:-1到付,0包邮,其他为具体运费")
     private Double fee;
-
-    private Double discountAmount;
-
     @ApiModelProperty("余额支付时使用的金额")
     private Double accountAmount;
-
     @ApiModelProperty("总价")
     private Double totalAmount;
-
-    @ApiModelProperty("支付时间")
-    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private String payTime;
-
-    @ApiModelProperty("订单完成时间")
-    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private String finishTime;
-
-    @ApiModelProperty("发货时间(时间戳)")
-    private BigInteger deliveryTimeMills;
-
     @ApiModelProperty("实付金额")
     private Double needPayAmount;
-
     @ApiModelProperty("退款金额")
-    private Double canRefundAmount;
     private Double refundAmount;
+    @ApiModelProperty("机构Id")
     private Integer clubId;
+    @ApiModelProperty("协销Id")
     private Integer spId;
-    private Integer orderBeanAmount;
-
-    @ApiModelProperty("使用采美豆数量")
-    private Integer useBeanAmount;
-
-    @ApiModelProperty("是否使用采美豆")
-    private Integer useBeanFlag;
 
     @ApiModelProperty("是否可以退货 1可以退款/退货 0不可退款/退货")
     private Integer canRefundFlag;
-
     @ApiModelProperty("是否使用余额")
     private Integer useBalanceFlag;
-
     @ApiModelProperty("可以退还的采美豆个数")
     private Integer canRefundBeans;
-
     @ApiModelProperty("订单包邮时本该支付的运费")
     private Double freePostageFee;
-
-    @ApiModelProperty("佣金")
+    @ApiModelProperty("子订单佣金")
     private Double brokerage;
-
     @ApiModelProperty("后台删除状态 0正常,其他删除")
     private String delFlag;
-
     @ApiModelProperty("订单退款金额")
     private Double refundsAmount;
-
     @ApiModelProperty("订单状态标识,1:非退货退款订单、2:退货退款中、3退货退款完成")
     private String orderStatusFlag;
-
-    private NewOrder order;
-
     @ApiModelProperty("订单商品list")
     private List<NewOrderProduct> newOrderProducts;
-
     @ApiModelProperty("订单商品的总优惠")
     private Double preferential;
-
-    private int orderSubmitType;
-
-    @ApiModelProperty("下单时间")
-    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private String orderTime;
-
     @ApiModelProperty("赠品数量")
     private Integer presentNum;
-
-    @ApiModelProperty("已经发货的商品数量")
-    private Integer outStoreNum;
-
-    @ApiModelProperty("第几批发货 默认值 = 0 即没过发货")
-    private Integer outStoreTimes;
-
     @ApiModelProperty("税费")
     private Double totalAddedValueTax;
-
-    @ApiModelProperty("自动收货时间点 毫秒计算")
-    private Long autoReceiveTimeMills;
-
-    @ApiModelProperty("订单彻底完成时间 不能售后 毫秒")
-    private Long autoOverTimeMills;
-
     @ApiModelProperty("收货时间")
     private String receiveGoodsTime;
-
     @ApiModelProperty("子订单备注信息")
     private String note;
 
-    @ApiModelProperty("(付款供应商)付款状态:1待付款、2部分付款、3已付款")
-    private String payStatus;
-
     @ApiModelProperty("发货状态:1待发货、2部分发货、3已发货")
     private String sendOutStatus;
-
-    /**
-     *      虚拟字段
-     */
-    @ApiModelProperty("供应商名称")
-    private String shopName;
-
     @ApiModelProperty("收货人")
     private String receiver;
-
-    @ApiModelProperty("买家")
-    private String buyer;
-
     @ApiModelProperty("'0'=不是邮费商品子订单; '1'=是邮费商品子订单")
     private String postFeeCos = "0";
-
     @ApiModelProperty("需要使用sn码的订单产品列表")
     private List<NewOrderProduct> snOrderProducts;
 
@@ -194,58 +142,10 @@ public class NewShopOrder {
      */
     @ApiModelProperty("是否处于给供应商状态中 0不是,1是")
     private String paying;
-
     @ApiModelProperty("是否处于供应商退款状态中  0不是,1是")
     private String refunding;
-    /**
-     * 主订单金额,  列表中展示需要
-     */
-    @ApiModelProperty("主订单金额")
-    private Double payTotalFee;
-
-    @ApiModelProperty("付款单的商品费, 子订单商品的成本价的和")
-    private Double shopProductAmount;
-
-    @ApiModelProperty("付给供应商的运费")
-    private Double shopPostFee;
-
-    @ApiModelProperty("付给供应商的税费")
-    private Double shopTaxFee;
-
-    @ApiModelProperty("付供应商 = 商品费 + 运费 + 税费")
-    private Double shouldPayShopAmount;
-
-    @ApiModelProperty("已付款金额")
-    private Double payedShopAmount;
-
-    @ApiModelProperty("付第三方")
-    private Double shopOtherFee;
-
-    @ApiModelProperty("待付")
-    private Double waitPayShop;
-    private String startTime;
-    private String endTime;
-
-    @ApiModelProperty("付款列表操作模式    1付款申请, 2已付退款, 3查看信息")
-    private String operatingMode = "1";
-    /**
-     *  为空就是还没有设置过
-     */
-    @ApiModelProperty("固定成本1,  比例成本2")
-    private String costType;
-
-    @ApiModelProperty("比例成本的比例值")
-    private Double proportional;
-
-    @ApiModelProperty("修改应付必填备注信息")
-    private String modifyShouldPayNote;
-
-    @ApiModelProperty("修改应付金额的用户ID")
-    private String modifyShouldPayUserId;
-
-    @ApiModelProperty("修改应付金额的时间")
-    private String modifyShouldPayDate;
-
+    @ApiModelProperty("商品金额/商品费")
+    private Double productAmount;
     @ApiModelProperty("已付金额")
     private Double payed;
 }

+ 31 - 29
src/main/java/com/caimei/modules/order/entity/OrderPayShop.java

@@ -3,9 +3,9 @@ package com.caimei.modules.order.entity;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import java.io.Serializable;
-import java.util.List;
 
 /**
  * @author zzj
@@ -16,46 +16,48 @@ public class OrderPayShop implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
-    @ApiModelProperty("查询字段:付款单Id")
+    @ApiModelProperty("付款单Id")
     private Integer payShopId;
     @ApiModelProperty("组织Id")
     private Integer organizeId;
-    @ApiModelProperty("shopId")
-    private Integer shopId;
     @ApiModelProperty("付款单名称")
     private String name;
     @ApiModelProperty("供应商名称")
     private String shopName;
-
-    private String applicant;        // 申请人
-    private String applicantName;        // 申请人名称
-    private String applyTime;        // 申请时间
-    private String reviewer;        // 审核人
-    private String reviewerName;        // 审核人名称
-    private String reviewTime;        // 审核时间
-    private String payTime;        //付款时间
+    @ApiModelProperty("申请人名称")
+    private String applicantName;
+    @ApiModelProperty("申请时间")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private String applyTime;
+    @ApiModelProperty("审核人名称")
+    private String reviewerName;
+    @ApiModelProperty("审核时间")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private String reviewTime;
+    @ApiModelProperty("付款时间")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private String payTime;
     @ApiModelProperty("审核状态  0待审核,  1审核通过 2 审核不通过")
     private String status;
-    private String reason;        // 审核不通过原因
-    private Integer paymentType; //付款类型: 1子订单付款 2供应商差价 3付第三方
-    private String rebateFee; // 返佣服务费
-
-    private String startTime;
-    private String endTime;
-    private String startTime2;
-    private String endTime2;
-    private Double ableRebateAmount;//供应商可用余额
-
-
-
-
-    @ApiModelProperty("查询字段:子订单编号")
+    @ApiModelProperty("审核不通过原因")
+    private String reason;
+    @ApiModelProperty("子订单编号")
     private String shopOrderNo;
-    @ApiModelProperty("查询字段:子订单Id")
+    @ApiModelProperty("子订单Id")
     private String shopOrderId;
-    @ApiModelProperty("查询字段:主订单Id")
+    @ApiModelProperty("主订单Id")
     private String orderId;
-    @ApiModelProperty("查询字段:主订单编号")
+    @ApiModelProperty("主订单编号")
     private String orderNo;
 
+    @ApiModelProperty("查询字段:申请起始时间")
+    private String applyStartTime;
+    @ApiModelProperty("查询字段:申请终止时间")
+    private String applyEndTime;
+    @ApiModelProperty("查询字段:付款起始时间")
+    private String payStartTime;
+    @ApiModelProperty("查询字段:付款终止时间")
+    private String payEndTime;
+
+
 }

+ 59 - 0
src/main/java/com/caimei/modules/order/entity/OrderPayShopDetail.java

@@ -0,0 +1,59 @@
+package com.caimei.modules.order.entity;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author zzj
+ */
+@ApiModel("付款详情")
+@Data
+public class OrderPayShopDetail implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("付款单Id")
+    private Integer payShopId;
+    @ApiModelProperty("付款单名称")
+    private String name;
+    @ApiModelProperty("供应商名称")
+    private String shopName;
+    @ApiModelProperty("付款账号的户名")
+    private String bankAccountName;
+    @ApiModelProperty("付款账号")
+    private String bankAccount;
+    @ApiModelProperty("付款账号的开户行")
+    private String bankName;
+    @ApiModelProperty("付供应商总金额")
+    private Double totalAmount;
+    @ApiModelProperty("付款银行")
+    private String payType;
+    @ApiModelProperty("付款银行名称")
+    private String bankNameType;
+    @ApiModelProperty("申请人名称")
+    private String applicantName;
+    @ApiModelProperty("申请时间")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private String applyTime;
+    @ApiModelProperty("审核人名称")
+    private String reviewerName;
+    @ApiModelProperty("审核时间")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private String reviewTime;
+    @ApiModelProperty("付款时间")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private String payTime;
+    @ApiModelProperty("审核状态  0待审核,  1审核通过 2 审核不通过")
+    private String status;
+    @ApiModelProperty("审核不通过原因")
+    private String reason;
+    @ApiModelProperty("付款单关联的子订单")
+    private List<NewShopOrder> shopOrders;
+    @ApiModelProperty("付款账号的类型 0公账, 1私账")
+    private String type;
+}

+ 3 - 0
src/main/java/com/caimei/modules/order/service/PayShopService.java

@@ -1,6 +1,7 @@
 package com.caimei.modules.order.service;
 
 import com.caimei.modules.order.entity.OrderPayShop;
+import com.caimei.modules.order.entity.OrderPayShopDetail;
 import com.github.pagehelper.PageInfo;
 
 /**
@@ -9,4 +10,6 @@ import com.github.pagehelper.PageInfo;
 public interface PayShopService {
 
     PageInfo<OrderPayShop> findPayList(OrderPayShop orderPayShop, int pageNum, int pageSize);
+
+    OrderPayShopDetail getPayShopDetail(Integer id);
 }

+ 0 - 6
src/main/java/com/caimei/modules/order/service/impl/CmDiscernReceiptServiceImpl.java

@@ -4,17 +4,11 @@ import com.caimei.modules.order.dao.CmDiscernReceiptDao;
 import com.caimei.modules.order.dao.NewOrderDao;
 import com.caimei.modules.order.entity.*;
 import com.caimei.modules.order.service.CmDiscernReceiptService;
-import com.caimei.modules.shiro.entity.CmMallAdminUser;
-import com.caimei.modules.shiro.entity.Principal;
-import com.caimei.utils.DateUtils;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.shiro.SecurityUtils;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
-import java.util.Date;
 import java.util.List;
 
 @Service

+ 1 - 7
src/main/java/com/caimei/modules/order/service/impl/CmReturnedPurchaseServiceImpl.java

@@ -17,6 +17,7 @@ import java.util.*;
 
 @Service
 public class CmReturnedPurchaseServiceImpl implements CmReturnedPurchaseService {
+
     @Resource
     private CmReturnedPurchaseDao cmReturnedPurchaseDao;
     @Resource
@@ -46,13 +47,9 @@ public class CmReturnedPurchaseServiceImpl implements CmReturnedPurchaseService
                     //设置全路径
                     item.setMainImage(AppUtils.getImageURL("product", item.getMainImage(), 0, domain));
                     //计算商品的未出库和已取消和已发货数量
-                    Integer notOutStore = 0;
                     Integer returnedPurchaseProductNum = 0;
                     Integer cancelProductNum = 0;
                     NewOrderProduct newOrderProduct = newOrderProductDao.get(item.getOrderProductId());
-                    if (null != newOrderProduct) {
-                        notOutStore = newOrderProduct.getNotOutStore();
-                    }
                     //获取退货退款记录
                     CmReturnedPurchaseProduct purchaseProduct = new CmReturnedPurchaseProduct();
                     purchaseProduct.setShopOrderId(item.getShopOrderId());
@@ -64,11 +61,8 @@ public class CmReturnedPurchaseServiceImpl implements CmReturnedPurchaseService
                             cancelProductNum += c.getActualCancelNum();
                         }
                     }
-                    item.setNotOutStore(notOutStore);
                     item.setReturnedPurchaseProductNum(returnedPurchaseProductNum);
                     item.setCancelProductNum(cancelProductNum);
-
-
                     //判断订单商品是否是首次退货退款
                     Boolean isFirstReturn = false;
                     List<CmReturnedPurchaseProduct> temporaryList = cmReturnedPurchaseProductDao.findListByReturnTime(bean.getOrderId(), item.getShopOrderId(), item.getOrderProductId(), bean.getReturnTime());

+ 1 - 2
src/main/java/com/caimei/modules/order/service/impl/NewShopOrderServiceImpl.java

@@ -1,11 +1,9 @@
 package com.caimei.modules.order.service.impl;
 
-import com.alibaba.fastjson.JSONArray;
 import com.caimei.modules.club.entity.CmProductSn;
 import com.caimei.modules.order.dao.*;
 import com.caimei.modules.order.entity.*;
 import com.caimei.modules.order.service.NewShopOrderService;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -14,6 +12,7 @@ import java.util.List;
 
 @Service
 public class NewShopOrderServiceImpl implements NewShopOrderService {
+
     @Resource
     private NewShopOrderDao newShopOrderDao;
     @Resource

+ 17 - 5
src/main/java/com/caimei/modules/order/service/impl/PayShopServiceImpl.java

@@ -1,10 +1,9 @@
 package com.caimei.modules.order.service.impl;
 
 import com.caimei.modules.order.dao.PayShopDao;
-import com.caimei.modules.order.entity.OrderPayShop;
+import com.caimei.modules.order.entity.*;
 import com.caimei.modules.order.service.PayShopService;
 import com.caimei.modules.shiro.entity.CmMallAdminUser;
-import com.caimei.modules.shiro.entity.Principal;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import org.apache.shiro.SecurityUtils;
@@ -24,9 +23,22 @@ public class PayShopServiceImpl implements PayShopService {
 
     @Override
     public PageInfo<OrderPayShop> findPayList(OrderPayShop orderPayShop, int pageNum, int pageSize) {
-        PageHelper.startPage(pageNum,pageSize);
+        PageHelper.startPage(pageNum, pageSize);
         CmMallAdminUser principal = (CmMallAdminUser) SecurityUtils.getSubject().getPrincipal();
-        List<OrderPayShop> payShops=payShopDao.findPayShopDao(orderPayShop);
-        return null;
+        List<OrderPayShop> payShops = payShopDao.findPayShops(orderPayShop);
+        PageInfo<OrderPayShop> pageInfo = new PageInfo(payShops);
+        return pageInfo;
+    }
+
+    @Override
+    public OrderPayShopDetail getPayShopDetail(Integer id) {
+        OrderPayShopDetail detail = payShopDao.findPayShopDetail(id);
+        List<NewShopOrder> shopOrders = payShopDao.findPayShopOrders(detail.getPayShopId());
+        shopOrders.forEach(s -> {
+            s.setShopOrderNos(payShopDao.findShopOrderNos(s.getOrderId()));
+            s.setNewOrderProducts(payShopDao.findPayOrderProducts(s.getShopOrderId()));
+        });
+        detail.setShopOrders(shopOrders);
+        return detail;
     }
 }

+ 2 - 2
src/main/resources/mapper/CmReturnedPurchaseMapper.xml

@@ -46,7 +46,7 @@
 		left join user as c on a.userID = c.userID
 	</sql>
 
-    <select id="findOrderIDInReturnPurchase" resultType="integer">
+    <select id="findOrderIdInReturnPurchase" resultType="integer">
         select orderID from cm_returned_purchase where status = '1'
         and orderID in
         <foreach collection="orderIds" open="(" close=")" item="oId" separator=",">
@@ -55,7 +55,7 @@
         and delFlag = 0
     </select>
 
-    <select id="findOrderIDsInApplyReturnFlag" resultType="integer">
+    <select id="findOrderIdsInApplyReturnFlag" resultType="integer">
         select orderID from cm_returned_purchase where status in (1,3)
         and orderID in
         <foreach collection="orderIds" open="(" close=")" item="oId" separator=",">

+ 120 - 43
src/main/resources/mapper/PayShopDao.xml

@@ -5,82 +5,159 @@
 <mapper namespace="com.caimei.modules.order.dao.PayShopDao">
 
 
-    <select id="findPayShopDao" resultType="com.caimei.modules.order.entity.OrderPayShop">
+    <select id="findPayShops" resultType="com.caimei.modules.order.entity.OrderPayShop">
         SELECT
-        a.id AS "id",
-        a.shopID AS "shopId",
+        a.id AS "payShopId",
         a.name AS "name",
-        a.type AS "type",
         a.totalAmount AS "totalAmount",
-        a.balancePayFee AS "balancePayFee",
-        a.transferPayFee AS "transferPayFee",
-        a.applicant AS "applicant",
         a.applyTime AS "applyTime",
-        a.wipeTime AS "wipeTime",
-        a.reviewer AS "reviewer",
         a.reviewTime AS "reviewTime",
         a.payTime AS "payTime",
         a.status AS "status",
-        u1.name AS applicantName,
-        u2.name AS reviewerName,
-        s.name AS shopName,
-        (SELECT paymentType FROM cm_pay_shop_record WHERE payShopID = a.id LIMIT 1) AS paymentType
+        u1.accountName AS applicantName,
+        u2.accountName AS reviewerName,
+        s.name AS shopName
         FROM cm_pay_shop a
-        left join sys_user u1 on u1.id = a.applicant
-        left join sys_user u2 on u2.id = a.reviewer
+        left join cm_mall_admin_user u1 on u1.id = a.applicant
+        left join cm_mall_admin_user u2 on u2.id = a.reviewer
         left join shop s on s.shopID = a.shopID
         <where>
             <if test="id != null and id != ''">
-                and a.id = #{id}
+                and a.id = #{payShopId}
             </if>
             <if test="shopName != null and shopName != ''">
                 and s.name like concat('%', #{shopName}, '%')
             </if>
             <if test="name != null and name != ''">
-                AND a.name LIKE
-                <if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
-                <if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
-                <if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
+                AND a.name LIKE concat('%',#{name},'%')
             </if>
-            <if test="startTime != null and startTime != ''">
-                AND a.applyTime <![CDATA[  >=  ]]> #{startTime}
+            <if test="applyStartTime != null and applyStartTime != ''">
+                AND a.applyTime <![CDATA[  >=  ]]> #{applyStartTime}
             </if>
-            <if test="endTime != null and endTime != ''">
-                AND a.applyTime <![CDATA[   <=  ]]> #{endTime}
+            <if test="applyEndTime != null and applyEndTime != ''">
+                AND a.applyTime <![CDATA[   <=  ]]> #{applyEndTime}
             </if>
-            <if test="startTime2 != null and startTime2 != ''">
-                AND a.payTime <![CDATA[  >=  ]]> #{startTime2}
+            <if test="payStartTime != null and payStartTime != ''">
+                AND a.payTime <![CDATA[  >=  ]]> #{payStartTime}
             </if>
-            <if test="endTime2 != null and endTime2 != ''">
-                AND a.payTime <![CDATA[   <=  ]]> #{endTime2}
+            <if test="payEndTime != null and payEndTime != ''">
+                AND a.payTime <![CDATA[   <=  ]]> #{payEndTime}
             </if>
             <if test="status != null and status != ''">
                 AND a.status = #{status}
             </if>
             <if test="shopOrderNo != null and shopOrderNo != ''">
-                AND a.id in (select cpsr.payShopID from cm_pay_shop_record cpsr where cpsr.shopOrderNo like concat('%',#{shopOrderNo},'%'))
+                AND a.id in (select cpsr.payShopID from cm_pay_shop_record cpsr where cpsr.shopOrderNo like
+                concat('%',#{shopOrderNo},'%'))
             </if>
-            <if test="shopOrderID != null and shopOrderID != ''">
-                AND a.id in (SELECT cpsr.payShopID FROM cm_pay_shop_record cpsr WHERE cpsr.shopOrderID=#{shopOrderID})
+            <if test="shopOrderId != null and shopOrderId != ''">
+                AND a.id in (SELECT cpsr.payShopID FROM cm_pay_shop_record cpsr WHERE cpsr.shopOrderID=#{shopOrderId})
             </if>
-            <if test="orderID != null and orderID != ''">
-                AND a.id in (SELECT cpsr.payShopID FROM cm_pay_shop_record  cpsr LEFT JOIN cm_shop_order so ON so.shopOrderID=cpsr.shopOrderID WHERE so.orderID=#{orderID})
+            <if test="orderId != null and orderId != ''">
+                AND a.id in (SELECT cpsr.payShopID FROM cm_pay_shop_record cpsr LEFT JOIN cm_shop_order so ON
+                so.shopOrderID=cpsr.shopOrderID WHERE so.orderID=#{orderId})
             </if>
-            <if test='organizeID != null and organizeID != "" and organizeID != "9999"'>
-                AND a.id in (SELECT cpsr.payShopID FROM cm_pay_shop_record  cpsr LEFT JOIN cm_shop_order so ON so.shopOrderID=cpsr.shopOrderID WHERE so.organizeID = #{organizeID})
-            </if>
-            <if test='organizeID == "9999"'>
-                AND a.id IN (SELECT cpsr.payShopID FROM cm_pay_shop_record  cpsr LEFT JOIN cm_shop_order so ON so.shopOrderID=cpsr.shopOrderID WHERE so.orderType = 2)
+            <if test='organizeId != null and organizeId != ""'>
+                AND a.id in (SELECT cpsr.payShopID FROM cm_pay_shop_record cpsr LEFT JOIN cm_shop_order so ON
+                so.shopOrderID=cpsr.shopOrderID WHERE so.organizeID = #{organizeId})
             </if>
             <if test="orderNo != null and orderNo != ''">
-                AND a.id in (SELECT cpsr.payShopID FROM cm_pay_shop_record  cpsr LEFT JOIN cm_shop_order so ON so.shopOrderID=cpsr.shopOrderID WHERE so.orderNo LIKE CONCAT('%',#{orderNo},'%'))
-            </if>
-            <if test="paymentType != null">
-                AND a.id IN(SELECT payShopID FROM cm_pay_shop_record WHERE paymentType = #{paymentType} AND delFlag = 0)
+                AND a.id in (SELECT cpsr.payShopID FROM cm_pay_shop_record cpsr LEFT JOIN cm_shop_order so ON
+                so.shopOrderID=cpsr.shopOrderID WHERE so.orderNo LIKE CONCAT('%',#{orderNo},'%'))
             </if>
             and a.delFlag = '0'
             and a.shopID != 998
         </where>
-                ORDER BY a.id desc
+        ORDER BY a.id desc
+    </select>
+
+    <select id="findPayShopDetail" resultType="com.caimei.modules.order.entity.OrderPayShopDetail">
+        SELECT a.id           AS "payShopId",
+               a.payCmAmount,
+               a.bankAccountName,
+               a.bankAccount,
+               a.bankName,
+               a.type,
+               a.name         AS "name",
+               a.totalAmount  AS "totalAmount",
+               a.applyTime    AS "applyTime",
+               a.reviewTime   AS "reviewTime",
+               a.payTime      AS "payTime",
+               a.status       AS "status",
+               u1.accountName AS applicantName,
+               u2.accountName AS reviewerName,
+               s.name         AS shopName
+        FROM cm_pay_shop a
+                 left join cm_mall_admin_user u1 on u1.id = a.applicant
+                 left join cm_mall_admin_user u2 on u2.id = a.reviewer
+                 left join shop s on s.shopID = a.shopID
+        where a.id = #{id}
+    </select>
+
+    <select id="findPayShopOrders" resultType="com.caimei.modules.order.entity.NewShopOrder">
+        SELECT DISTINCT a.shopOrderID                                       AS shopOrderId,
+                        a.orderID                                           AS orderId,
+                        a.organizeID                                        AS organizeId,
+                        a.shopOrderNo                                       AS shopOrderNo,
+                        a.orderNo                                           AS orderNo,
+                        ROUND(a.totalAmount*0.17,2)                         AS brokerage,
+                        ROUND(a.totalAmount*0.03,2)                         AS shouldPayCmAmount,
+                        a.payCmAmount                                       AS payCmAmount,
+                        ROUND(a.totalAmount*0.03,2) - a.payCmAmount         AS waitPayCmAmount,
+                        a.receiptStatus                                     AS receiptStatus,
+                        a.orderTime                                         AS orderTime,
+                        a.payStatus                                         AS payStatus,
+                        a.shopProductAmount                                 AS shopProductAmount,
+                        a.shopPostFee                                       AS shopPostFee,
+                        ROUND(a.totalAmount*0.8,2)                          AS shouldPayShopAmount,
+                        ROUND(a.totalAmount*0.8,2) - payedShopAmount        AS waitPayShop,
+                        a.payedShopAmount                                   AS payedShopAmount,
+                        co.payTotalFee                                      AS payTotalFee,
+                        bou.name                                            AS buyer,
+                        s.name                                              AS shopName
+        FROM cm_shop_order a
+        LEFT JOIN cm_pay_shop_record cpsr ON a.shopOrderID = cpsr.shopOrderID
+        LEFT JOIN bp_order_userinfo bou ON bou.orderId = a.orderID
+        LEFT JOIN cm_order co ON co.orderID = a.orderID
+        LEFT JOIN shop s ON s.shopID = a.shopID
+        LEFT JOIN club c ON c.userID = a.userID
+        WHERE a.shopOrderID IN
+              (SELECT shoporderId
+               FROM cm_pay_shop_record
+               WHERE payshopid = #{payShopId}
+                 AND delflag = 0
+               GROUP BY shoporderId)
+    </select>
+
+    <select id="findPayOrderProducts" resultType="com.caimei.modules.order.entity.NewOrderProduct">
+        select cop.name                    AS name,
+               cop.orderProductID          AS orderProductId,
+               cop.productID               AS productId,
+               cop.productUnit             AS unit,
+               cop.num                     AS num,
+               cop.totalFee                AS totalFee,
+               cop.costPrice               AS costPrice,
+               cop.productType             AS productType,
+               cpo.touchPrice              AS touchPrice,
+               (SELECT SUM(crpp.actualReturnedNum) + SUM(crpp.actualCancelNum)
+                FROM cm_returned_purchase_product crpp
+                LEFT JOIN cm_returned_purchase rp ON rp.id = crpp.returnedID
+                WHERE crpp.orderProductID = cop.orderProductId
+                  AND rp.status = '2'
+                  AND rp.delFlag = '0') AS returnedNum
+        from cm_order_product cop
+        left join cm_sku cs on cop.skuId = cs.skuId
+        left join cm_promotions_order cpo on (cop.orderPromotionsId = cpo.id and cpo.mode = 1)
+        left join product p on p.productID = cop.productID
+        left join cm_order co on co.orderID = cop.orderID
+        left join user u on u.userID = co.userID
+        where cop.shopOrderID = #{shopOrderId}
+    </select>
+
+    <select id="findShopOrderNos" resultType="java.lang.String">
+        SELECT CONCAT(shopOrderNo, '(', shopOrderID, ')') AS result
+        FROM cm_shop_order
+        WHERE orderID = #{orderID}
+          and shopId != 998
     </select>
 </mapper>