Просмотр исходного кода

[交易对账][修改][导出数据]

release_toaliyun_real
gongbiao 6 лет назад
Родитель
Сommit
456b1fd169
5 измененных файлов: 55 добавлений и 7 удалений
  1. +19
    -0
      mallinkAdmin/src/main/java/com/iformall/controller/market/WxOrderController.java
  2. +16
    -1
      mallinkService/src/main/java/com/iformall/domain/po/WxOrder.java
  3. +4
    -0
      mallinkService/src/main/java/com/iformall/service/WxOrderService.java
  4. +14
    -5
      mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java
  5. +2
    -1
      mallinkService/src/main/resources/mapper/WxOrderMapper.xml

+ 19
- 0
mallinkAdmin/src/main/java/com/iformall/controller/market/WxOrderController.java Просмотреть файл

@@ -12,6 +12,7 @@ import com.iformall.domain.po.WxCoupon;
import com.iformall.domain.po.WxCouponChannel; import com.iformall.domain.po.WxCouponChannel;
import com.iformall.domain.po.WxOrder; import com.iformall.domain.po.WxOrder;
import com.iformall.domain.po.base.BaseEntity; import com.iformall.domain.po.base.BaseEntity;
import com.iformall.domain.vo.WxMerchantSubsidyVo;
import com.iformall.domain.vo.WxOrderQueryVo; import com.iformall.domain.vo.WxOrderQueryVo;
import com.iformall.enums.EnumCouponChannelStatus; import com.iformall.enums.EnumCouponChannelStatus;
import com.iformall.enums.EnumCouponChannelType; import com.iformall.enums.EnumCouponChannelType;
@@ -25,12 +26,17 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;


import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List;
import java.util.Map; import java.util.Map;


@RestController @RestController
@@ -233,4 +239,17 @@ public class WxOrderController extends BaseController {
return new ResultData(data); return new ResultData(data);
} }


@ApiOperation("导出")
@GetMapping("/exportData")
@SystemControllerLog(description = "导出")
public void exportData(@ModelAttribute WxOrderQueryVo wxOrderQueryVo, HttpServletRequest request, HttpServletResponse response) {
logger.info("[" + getIpAddr() + "] WxOrderController/exportData");
if (null == wxOrderQueryVo) {
wxOrderQueryVo = new WxOrderQueryVo();
}
wxOrderQueryVo.setTenantId(getTenantId());
wxOrderService.exportData(wxOrderQueryVo, request, response);
}


} }

+ 16
- 1
mallinkService/src/main/java/com/iformall/domain/po/WxOrder.java Просмотреть файл

@@ -1,5 +1,6 @@
package com.iformall.domain.po; package com.iformall.domain.po;


import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.iformall.domain.po.base.BaseEntity; import com.iformall.domain.po.base.BaseEntity;
@@ -7,7 +8,6 @@ import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.ToString; import lombok.ToString;



import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;


@@ -23,12 +23,15 @@ public class WxOrder extends BaseEntity {
@TableField(exist = false) @TableField(exist = false)
private String merchantName; private String merchantName;


@Excel(name = "会员", width = 20, orderNum = "2")
@TableField(exist = false) @TableField(exist = false)
private String cUserName; private String cUserName;


@Excel(name = "会员手机号", width = 20, orderNum = "3")
@TableField(exist = false) @TableField(exist = false)
private String phone; private String phone;


@Excel(name = "订单编号", width = 20, orderNum = "1")
@io.swagger.annotations.ApiModelProperty(value="订单码;正反向交易保持一致。",name="orderNumber") @io.swagger.annotations.ApiModelProperty(value="订单码;正反向交易保持一致。",name="orderNumber")
private Long orderNumber; private Long orderNumber;
@io.swagger.annotations.ApiModelProperty(value="租户ID",name="tenantId") @io.swagger.annotations.ApiModelProperty(value="租户ID",name="tenantId")
@@ -43,12 +46,18 @@ public class WxOrder extends BaseEntity {
private Integer type; private Integer type;
@io.swagger.annotations.ApiModelProperty(value="0: 付款 1: 退款",name="paymentType") @io.swagger.annotations.ApiModelProperty(value="0: 付款 1: 退款",name="paymentType")
private Integer paymentType; private Integer paymentType;

@Excel(name = "订单金额(元)", width = 20, orderNum = "6")
@io.swagger.annotations.ApiModelProperty(value="支付金额(分):允许有负数,退款时为负值。",name="payment") @io.swagger.annotations.ApiModelProperty(value="支付金额(分):允许有负数,退款时为负值。",name="payment")
private Integer payment; private Integer payment;
@io.swagger.annotations.ApiModelProperty(value="支付时间",name="paymentTime") @io.swagger.annotations.ApiModelProperty(value="支付时间",name="paymentTime")
private Date paymentTime; private Date paymentTime;

@Excel(name = "订单状态", width = 20, orderNum = "9", replace = {"待付款_0", "已支付_1", "已取消_2", "待退款_3", "已退款_4", "退款失败_5"})
@io.swagger.annotations.ApiModelProperty(value="订单状态:-1全部;正向交易:0-已下单/待付款;1-已支付;2-已取消(限定时间内未付款)反向交易:3-已退款; 4-退款失败,5-退款失败; 砍价:6-砍价中,7-砍价完成,8-砍价失败",name="orderStatus") @io.swagger.annotations.ApiModelProperty(value="订单状态:-1全部;正向交易:0-已下单/待付款;1-已支付;2-已取消(限定时间内未付款)反向交易:3-已退款; 4-退款失败,5-退款失败; 砍价:6-砍价中,7-砍价完成,8-砍价失败",name="orderStatus")
private Integer orderStatus; private Integer orderStatus;

@Excel(name = "订单日期", width = 20, orderNum = "7", format = "yyyy-MM-dd")
@io.swagger.annotations.ApiModelProperty(value="创建时间/砍价开始时间",name="createDate") @io.swagger.annotations.ApiModelProperty(value="创建时间/砍价开始时间",name="createDate")
private Date createDate; private Date createDate;
@io.swagger.annotations.ApiModelProperty(value="更新时间",name="updateDate") @io.swagger.annotations.ApiModelProperty(value="更新时间",name="updateDate")
@@ -82,9 +91,15 @@ public class WxOrder extends BaseEntity {
@TableField(exist = false) @TableField(exist = false)
protected String statusStr; protected String statusStr;


@Excel(name = "商品名称", width = 20, orderNum = "5")
@TableField(exist = false) @TableField(exist = false)
private String title; private String title;


@Excel(name = "商品属性", width = 20, orderNum = "4", replace = {"消费卡_1", "优惠券_2", "砍价_3", "拼团_4"})
@TableField(exist = false) @TableField(exist = false)
private Integer attribute; private Integer attribute;

@Excel(name = "支付金额(元)", width = 20, orderNum = "8")
@TableField(exist = false)
private Integer pay;
} }

+ 4
- 0
mallinkService/src/main/java/com/iformall/service/WxOrderService.java Просмотреть файл

@@ -10,6 +10,8 @@ import com.iformall.domain.vo.WxOrderCouponVo;
import com.iformall.domain.vo.WxOrderQueryVo; import com.iformall.domain.vo.WxOrderQueryVo;
import com.iformall.enums.EnumOrderStatus; import com.iformall.enums.EnumOrderStatus;


import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;


@@ -191,4 +193,6 @@ public interface WxOrderService {


Map<String, Object> summary(WxOrderQueryVo wxOrderQueryVo); Map<String, Object> summary(WxOrderQueryVo wxOrderQueryVo);


void exportData(WxOrderQueryVo wxOrderQueryVo, HttpServletRequest request, HttpServletResponse response);

} }

+ 14
- 5
mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java Просмотреть файл

@@ -25,6 +25,8 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;


import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
@@ -123,6 +125,9 @@ public class WxOrderServiceImpl implements WxOrderService {
@Autowired @Autowired
private WxCouponPasswordMapper couponPasswordMapper; private WxCouponPasswordMapper couponPasswordMapper;


@Autowired
ExcelService excelService;

@Override @Override
public PageInfo<WxOrder> listAsPage(WxOrder record, Integer pageIndex, Integer pageSize) { public PageInfo<WxOrder> listAsPage(WxOrder record, Integer pageIndex, Integer pageSize) {
return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxOrderMapper.findList(record)); return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxOrderMapper.findList(record));
@@ -980,16 +985,20 @@ public class WxOrderServiceImpl implements WxOrderService {
@Override @Override
public Map<String, Object> summary(WxOrderQueryVo wxOrderQueryVo) { public Map<String, Object> summary(WxOrderQueryVo wxOrderQueryVo) {
List<WxOrder> listOrder = wxOrderMapper.findListOrder(wxOrderQueryVo); List<WxOrder> listOrder = wxOrderMapper.findListOrder(wxOrderQueryVo);
Long orderPay = listOrder.stream().collect(Collectors.summingLong(WxOrder::getPayment));
Long pay = listOrder.stream().filter(o -> !o.getOrderStatus().equals(EnumOrderStatus.ORDER_STATUS_PENDING_PAYMENT.getCode())
&& !o.getOrderStatus().equals(EnumOrderStatus.ORDER_STATUS_OVERTIME_CANCEL.getCode()))
.collect(Collectors.summingLong(WxOrder::getPayment));
Long payment = listOrder.stream().collect(Collectors.summingLong(WxOrder::getPayment));
Long pay = listOrder.stream().collect(Collectors.summingLong(WxOrder::getPay));
Map<String, Object> data = new HashMap<>(); Map<String, Object> data = new HashMap<>();
data.put("orderPay", orderPay);
data.put("payment", payment);
data.put("pay", pay); data.put("pay", pay);
return data; return data;
} }


@Override
public void exportData(WxOrderQueryVo wxOrderQueryVo, HttpServletRequest request, HttpServletResponse response) {
List<WxOrder> list = wxOrderMapper.findListOrder(wxOrderQueryVo);
excelService.exportExcel(list, null, "线上交易", WxOrder.class, "线上交易.xlsx", response, false);
}

/** /**
* 积分设置来源商户 * 积分设置来源商户
*/ */


+ 2
- 1
mallinkService/src/main/resources/mapper/WxOrderMapper.xml Просмотреть файл

@@ -541,12 +541,13 @@
<result column="phone" jdbcType="VARCHAR" property="phone"/> <result column="phone" jdbcType="VARCHAR" property="phone"/>
<result column="title" jdbcType="VARCHAR" property="title"/> <result column="title" jdbcType="VARCHAR" property="title"/>
<result column="attribute" jdbcType="INTEGER" property="attribute"/> <result column="attribute" jdbcType="INTEGER" property="attribute"/>
<result column="pay" jdbcType="INTEGER" property="pay"/>


</resultMap> </resultMap>
<select id="findListOrder" resultMap="orderMap" parameterType="com.iformall.domain.vo.WxOrderQueryVo"> <select id="findListOrder" resultMap="orderMap" parameterType="com.iformall.domain.vo.WxOrderQueryVo">
select o.* from (
select o.*,case o.order_status when 0 then 0 when 2 then 2 else o.payment end pay from (
select o.id,o.order_number,o.tenant_id,o.product_id,o.payment,o.order_status, select o.id,o.order_number,o.tenant_id,o.product_id,o.payment,o.order_status,
c.title,cubi.`name` c_user_name,cubi.phone,o.create_date,1 attribute from wx_order o c.title,cubi.`name` c_user_name,cubi.phone,o.create_date,1 attribute from wx_order o
left join wx_c_user_basic_info cubi on o.c_user_id=cubi.id left join wx_c_user_basic_info cubi on o.c_user_id=cubi.id


Загрузка…
Отмена
Сохранить