浏览代码

Merge branch 'master' of ssh://1.15.26.233:10022/miaxis/jsjp

Althars123 2 年之前
父节点
当前提交
fe5b7915c8

+ 13 - 0
jsjp-admin/src/main/java/com/miaxis/pc/PcOrderInfoController.java

@@ -9,6 +9,7 @@ import com.miaxis.common.utils.poi.ExcelUtil;
 import com.miaxis.order.domain.OrderInfo;
 import com.miaxis.order.dto.QuerySchoolOrderListDTO;
 import com.miaxis.order.service.IOrderInfoService;
+import com.miaxis.order.vo.QuerySchoolOrderDetailedVo;
 import com.miaxis.order.vo.QuerySchoolOrderListVo;
 import com.miaxis.wx.domain.WxJsOrder;
 import com.miaxis.wx.service.IRefundRecordService;
@@ -107,10 +108,22 @@ public class PcOrderInfoController extends BaseController{
         startPage();
         List<OrderInfo> list = orderInfoService.selectSchoolOrderDetailed(schoolOrderListDTO);
         return toResponsePageInfo(list);
+    }
 
 
+    /**
+     * 导出订单报表信息
+     */
+    @Log(title = "导出订单明细", businessType = BusinessTypeEnum.EXPORT)
+    @GetMapping("/exportDetailed")
+    @ApiOperation("导出驾校订单明细Excel")
+    public Response<String> exportDetailed(@ModelAttribute QuerySchoolOrderListDTO schoolOrderListDTO){
+        List<QuerySchoolOrderDetailedVo> list = orderInfoService.selectSchoolOrderDetailedExcel(schoolOrderListDTO);
+        ExcelUtil<QuerySchoolOrderDetailedVo> util = new ExcelUtil<QuerySchoolOrderDetailedVo>(QuerySchoolOrderDetailedVo.class);
+        return util.exportExcel(list, "info");
     }
 
+
     /**
      * 发起退款
      */

+ 38 - 0
jsjp-admin/src/test/java/com/miaxis/test/Test5.java

@@ -0,0 +1,38 @@
+package com.miaxis.test;
+
+import com.miaxis.JsjpApplication;
+import com.miaxis.newgzpt.domain.GzptUserInfo;
+import com.miaxis.newgzpt.service.IGzptUserInfoService;
+import com.miaxis.order.dto.QuerySchoolOrderListDTO;
+import com.miaxis.order.service.IOrderInfoService;
+import com.miaxis.order.vo.QuerySchoolOrderDetailedVo;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import java.util.List;
+
+@SpringBootTest(classes = JsjpApplication.class)
+@RunWith(SpringRunner.class)
+public class Test5 {
+
+
+
+    @Autowired
+    private IOrderInfoService orderInfoService;
+
+
+    @Test
+    public void test() throws Exception {
+        QuerySchoolOrderListDTO schoolOrderListDTO = new QuerySchoolOrderListDTO();
+        schoolOrderListDTO.setDqbh("3501");
+        List<QuerySchoolOrderDetailedVo> list = orderInfoService.selectSchoolOrderDetailedExcel(schoolOrderListDTO);
+        System.out.println(list);
+
+    }
+
+
+
+}

+ 2 - 1
jsjp-service/src/main/java/com/miaxis/order/domain/OrderInfo.java

@@ -67,11 +67,13 @@ public class OrderInfo extends BaseBusinessEntity{
 
 
     /** 总金额*/
+    @Excel(name = "总金额")
     @TableField("total")
     @ApiModelProperty(value = "总金额")
     private Integer total;
 
     /** 交易状态 1、支付成功2、支付失败*/
+    @Excel(name = "交易状态 1、支付成功2、支付失败")
     @TableField("trade_type")
     @ApiModelProperty(value = "微信交易状态,枚举值:")
     private Integer tradeType;
@@ -84,7 +86,6 @@ public class OrderInfo extends BaseBusinessEntity{
     private Date successTime;
 
     /** 1:微信 2:支付宝 */
-    @Excel(name = "1:微信 2:支付宝")
     @TableField("pay_type")
     @ApiModelProperty(value = "1:微信 2:支付宝")
     private Integer payType;

+ 2 - 2
jsjp-service/src/main/java/com/miaxis/order/dto/QuerySchoolOrderListDTO.java

@@ -15,12 +15,12 @@ public class QuerySchoolOrderListDTO extends BaseBusinessEntity {
     private static final long serialVersionUID = 1L;
 
 
-    @ApiModelProperty(value = "开始时间,格式yyyyMMdd")
+    @ApiModelProperty(value = "开始时间,格式yyyy-MM-dd HH:mm:ss")
 //    @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
     private String startTime;
 
 
-    @ApiModelProperty(value = "结束时间,格式yyyyMMdd")
+    @ApiModelProperty(value = "结束时间,格式yyyy-MM-dd HH:mm:ss")
 //    @JsonFormat(pattern="yyyyMMdd",timezone = "GMT+8")
     private String endTime;
 

+ 3 - 0
jsjp-service/src/main/java/com/miaxis/order/mapper/OrderInfoMapper.java

@@ -3,6 +3,7 @@ package com.miaxis.order.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.miaxis.order.domain.OrderInfo;
 import com.miaxis.order.dto.QuerySchoolOrderListDTO;
+import com.miaxis.order.vo.QuerySchoolOrderDetailedVo;
 import com.miaxis.order.vo.QuerySchoolOrderListVo;
 
 import java.util.List;
@@ -33,4 +34,6 @@ public interface OrderInfoMapper extends BaseMapper<OrderInfo> {
     Integer getCommissionMoney(QuerySchoolOrderListDTO schoolOrderListDTO);
 
     List<QuerySchoolOrderListVo> selectSchoolOrderInfoExcel(QuerySchoolOrderListDTO schoolOrderListDTO);
+
+    List<QuerySchoolOrderDetailedVo> selectSchoolOrderDetailedExcel(QuerySchoolOrderListDTO schoolOrderListDTO);
 }

+ 3 - 0
jsjp-service/src/main/java/com/miaxis/order/service/IOrderInfoService.java

@@ -3,6 +3,7 @@ package com.miaxis.order.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.miaxis.order.domain.OrderInfo;
 import com.miaxis.order.dto.QuerySchoolOrderListDTO;
+import com.miaxis.order.vo.QuerySchoolOrderDetailedVo;
 import com.miaxis.order.vo.QuerySchoolOrderListVo;
 import com.miaxis.wx.domain.WxJsOrder;
 
@@ -35,6 +36,8 @@ public interface IOrderInfoService extends IService<OrderInfo> {
 
     List<OrderInfo> selectSchoolOrderDetailed(QuerySchoolOrderListDTO schoolOrderListDTO);
 
+    List<QuerySchoolOrderDetailedVo> selectSchoolOrderDetailedExcel(QuerySchoolOrderListDTO schoolOrderListDTO);
+
     Integer getTotalMoney(QuerySchoolOrderListDTO orderInfo);
 
     Integer getCommissionMoney(QuerySchoolOrderListDTO orderInfo);

+ 6 - 0
jsjp-service/src/main/java/com/miaxis/order/service/impl/OrderInfoServiceImpl.java

@@ -13,6 +13,7 @@ import com.miaxis.order.domain.OrderInfo;
 import com.miaxis.order.dto.QuerySchoolOrderListDTO;
 import com.miaxis.order.mapper.OrderInfoMapper;
 import com.miaxis.order.service.IOrderInfoService;
+import com.miaxis.order.vo.QuerySchoolOrderDetailedVo;
 import com.miaxis.order.vo.QuerySchoolOrderListVo;
 import com.miaxis.userInfo.domain.UserVip;
 import com.miaxis.userInfo.service.IUserVipService;
@@ -1322,6 +1323,11 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
         return orderInfoMapper.selectSchoolOrderDetailed(schoolOrderListDTO);
     }
 
+    @Override
+    public List<QuerySchoolOrderDetailedVo> selectSchoolOrderDetailedExcel(QuerySchoolOrderListDTO schoolOrderListDTO) {
+        return orderInfoMapper.selectSchoolOrderDetailedExcel(schoolOrderListDTO);
+    }
+
     @Override
     public Integer getTotalMoney(QuerySchoolOrderListDTO orderInfo) {
         return orderInfoMapper.getTotalMoney(orderInfo);

+ 94 - 0
jsjp-service/src/main/java/com/miaxis/order/vo/QuerySchoolOrderDetailedVo.java

@@ -0,0 +1,94 @@
+package com.miaxis.order.vo;
+
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.miaxis.common.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+
+ */
+@Data
+@ApiModel(description = "驾校订单查询返回对象")
+public class QuerySchoolOrderDetailedVo {
+    private static final long serialVersionUID = 1L;
+
+    /** 主键 */
+    @ApiModelProperty(value = "主键")
+    private Long id;
+
+    /** 商品 */
+    @Excel(name = "商品")
+    @ApiModelProperty(value = "商品")
+    private String goodsName;
+
+
+    /** 用户姓名 */
+    @Excel(name = "用户姓名")
+    @ApiModelProperty(value = "用户姓名")
+    private String userName;
+
+    /** 用户登录名 */
+    @Excel(name = "用户登录名")
+
+    @ApiModelProperty(value = "用户登录名")
+    private String logincode;
+
+
+    /** 极速驾培订单ID */
+    @Excel(name = "极速驾培订单ID")
+    @ApiModelProperty(value = "极速驾培订单ID")
+    private String outTradeNo;
+
+
+
+    /** 总金额*/
+    @Excel(name = "总金额")
+    @ApiModelProperty(value = "总金额")
+    private Float total;
+
+    /** 交易状态 1、支付成功2、支付失败*/
+    @Excel(name = "交易状态 1、支付成功2、支付失败")
+    @ApiModelProperty(value = "微信交易状态,枚举值:")
+    private String tradeType;
+
+    /** 支付完成时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "支付完成时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "支付完成时间")
+    private Date successTime;
+
+    /** 是否分成 */
+    @Excel(name = "是否分成给驾校 0:不分成  1:分成")
+    @ApiModelProperty(value = "是否分成给驾校 0:不分成  1:分成")
+    private String isShare;
+
+
+    /** 驾校名称 */
+    @Excel(name = "驾校名称")
+    @ApiModelProperty(value = "驾校名称")
+    private String schoolName;
+
+    /** 驾校提成 */
+    @Excel(name = "驾校提成")
+    @ApiModelProperty(value = "驾校提成")
+    private Float schoolCommission;
+
+    /** 手机类型 1:苹果 2:安卓 */
+    @Excel(name = "手机类型 1:苹果 2:安卓")
+    @ApiModelProperty(value = "手机类型 1:苹果 2:安卓")
+    private String phoneType;
+
+    /** 退款原因 */
+    @Excel(name = "退款原因")
+    @ApiModelProperty(value = "退款原因")
+    private String refundReason;
+
+
+
+}

+ 19 - 2
jsjp-service/src/main/java/com/miaxis/order/vo/QuerySchoolOrderListVo.java

@@ -24,11 +24,28 @@ public class QuerySchoolOrderListVo  {
 
     @Excel(name = "订单总金额")
     @ApiModelProperty(value = "订单总金额")
-    private String orderTotal;
+    private Float orderTotal;
 
     @Excel(name = "驾校提成")
     @ApiModelProperty(value = "驾校提成")
-    private String schoolCommission;
+    private Float schoolCommission;
+
+    @Excel(name = "购买人数")
+    @ApiModelProperty(value = "购买人数")
+    private String peopleCount;
+
+    @Excel(name = "订单总数")
+    @ApiModelProperty(value = "订单总数")
+    private String orderCount;
+
+    @Excel(name = "激活金额")
+    @ApiModelProperty(value = "激活金额")
+    private Float activationCommission;
+
+    @Excel(name = "补贴金额")
+    @ApiModelProperty(value = "补贴金额")
+    private Float subsidy;
+
 
 
 }

+ 54 - 4
jsjp-service/src/main/resources/mapper/order/OrderInfoMapper.xml

@@ -60,8 +60,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         select
         school,
         school_name,
-        sum(school_commission) as school_commission,
-        sum(total) as orderTotal
+        IFNULL(sum(school_commission),0) as school_commission,
+        IFNULL(sum(total),0) as order_total,
+        COUNT(DISTINCT logincode) as people_count,
+        COUNT(id) as order_count,
+        IFNULL(COUNT(DISTINCT logincode),0)*49*100 as activation_commission,
+        (IFNULL(COUNT(DISTINCT logincode),0)*49*100-sum(school_commission)) as subsidy_bak,
+        (case
+        when (IFNULL(COUNT(DISTINCT logincode),0)*49*100-sum(school_commission)) <![CDATA[ <= ]]> 0 then 0
+        when (IFNULL(COUNT(DISTINCT logincode),0)*49*100-sum(school_commission)) <![CDATA[ > ]]> 0 then (IFNULL(COUNT(DISTINCT logincode),0)*49*100-sum(school_commission))
+        else 0 end) as subsidy
         from order_info
         <where>
             <if test="isShare != null">
@@ -91,8 +99,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         select
         school,
         school_name,
-        sum(school_commission)/100 as school_commission,
-        sum(total)/100 as orderTotal
+        IFNULL(sum(school_commission)/100,0) as school_commission,
+        IFNULL(sum(total)/100,0) as order_total,
+        COUNT(DISTINCT logincode) as people_count,
+        COUNT(id) as order_count,
+        IFNULL(COUNT(DISTINCT logincode),0)*49 as activation_commission,
+        (IFNULL(COUNT(DISTINCT logincode),0)*49-sum(school_commission/100)) as subsidy_bak,
+        (case
+        when (IFNULL(COUNT(DISTINCT logincode),0)*49-sum(school_commission)/100) <![CDATA[ <= ]]> 0 then 0
+        when (IFNULL(COUNT(DISTINCT logincode),0)*49-sum(school_commission)/100) <![CDATA[ > ]]> 0 then (IFNULL(COUNT(DISTINCT logincode),0)*49-sum(school_commission)/100)
+        else 0 end) as subsidy
         from order_info
         <where>
             <if test="isShare != null">
@@ -196,6 +212,40 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         order by success_time desc
     </select>
 
+
+    <select id="selectSchoolOrderDetailedExcel"  resultType="com.miaxis.order.vo.QuerySchoolOrderDetailedVo">
+        select
+            school_name,
+            goods_name,user_name,logincode,out_trade_no,
+            case when trade_type = 1 then '支付成功'
+            when trade_type = 2 then '支付失败'
+            when trade_type = 3 then '已退款' else '未知' end as trade_type,
+            case when phone_type = 1 then '苹果' else '安卓' end as phone_type,
+            IFNULL(total/100,0) as total,IFNULL(school_commission/100,0) as school_commission,
+            success_time,
+            case when is_share = 1 then '是' else '否' end as is_share
+        from order_info
+        <where>
+            <if test="isShare != null">
+                and is_share = #{isShare }
+            </if>
+            <if test="tradeType != null">
+                and trade_type = #{tradeType }
+            </if>
+            <if test="schoolName != null  and schoolName != ''">
+                and school_name like concat('%', #{schoolName}, '%')
+            </if>
+            <if test="startTime != null">
+                and DATE_FORMAT(success_time,'%Y-%m-%d %H:%i:%S')<![CDATA[ >= ]]> #{startTime}
+            </if>
+            <if test="endTime != null">
+                and DATE_FORMAT(success_time,'%Y-%m-%d %H:%i:%S') <![CDATA[ <= ]]> #{endTime}
+            </if>
+        </where>
+        order by success_time desc
+    </select>
+
+
     <select id="getByOutTradeNo" parameterType="string" resultType="com.miaxis.order.domain.OrderInfo">
         select * from order_info where out_trade_no =#{outTradeNo}
     </select>