| @@ -12,6 +12,7 @@ import com.iformall.domain.po.WxCoupon; | |||
| import com.iformall.domain.po.WxCouponChannel; | |||
| import com.iformall.domain.po.WxOrder; | |||
| import com.iformall.domain.po.base.BaseEntity; | |||
| import com.iformall.domain.vo.WxMerchantSubsidyVo; | |||
| import com.iformall.domain.vo.WxOrderQueryVo; | |||
| import com.iformall.enums.EnumCouponChannelStatus; | |||
| import com.iformall.enums.EnumCouponChannelType; | |||
| @@ -25,12 +26,17 @@ import io.swagger.annotations.Api; | |||
| import io.swagger.annotations.ApiImplicitParam; | |||
| import io.swagger.annotations.ApiImplicitParams; | |||
| import io.swagger.annotations.ApiOperation; | |||
| import org.apache.commons.lang3.StringUtils; | |||
| import org.slf4j.Logger; | |||
| import org.slf4j.LoggerFactory; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| 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.List; | |||
| import java.util.Map; | |||
| @RestController | |||
| @@ -233,4 +239,17 @@ public class WxOrderController extends BaseController { | |||
| 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); | |||
| } | |||
| } | |||
| @@ -1,5 +1,6 @@ | |||
| package com.iformall.domain.po; | |||
| import cn.afterturn.easypoi.excel.annotation.Excel; | |||
| import com.baomidou.mybatisplus.annotation.TableField; | |||
| import com.baomidou.mybatisplus.annotation.TableName; | |||
| import com.iformall.domain.po.base.BaseEntity; | |||
| @@ -7,7 +8,6 @@ import lombok.Data; | |||
| import lombok.EqualsAndHashCode; | |||
| import lombok.ToString; | |||
| import java.util.Date; | |||
| import java.util.List; | |||
| @@ -23,12 +23,15 @@ public class WxOrder extends BaseEntity { | |||
| @TableField(exist = false) | |||
| private String merchantName; | |||
| @Excel(name = "会员", width = 20, orderNum = "2") | |||
| @TableField(exist = false) | |||
| private String cUserName; | |||
| @Excel(name = "会员手机号", width = 20, orderNum = "3") | |||
| @TableField(exist = false) | |||
| private String phone; | |||
| @Excel(name = "订单编号", width = 20, orderNum = "1") | |||
| @io.swagger.annotations.ApiModelProperty(value="订单码;正反向交易保持一致。",name="orderNumber") | |||
| private Long orderNumber; | |||
| @io.swagger.annotations.ApiModelProperty(value="租户ID",name="tenantId") | |||
| @@ -43,12 +46,18 @@ public class WxOrder extends BaseEntity { | |||
| private Integer type; | |||
| @io.swagger.annotations.ApiModelProperty(value="0: 付款 1: 退款",name="paymentType") | |||
| private Integer paymentType; | |||
| @Excel(name = "订单金额(元)", width = 20, orderNum = "6") | |||
| @io.swagger.annotations.ApiModelProperty(value="支付金额(分):允许有负数,退款时为负值。",name="payment") | |||
| private Integer payment; | |||
| @io.swagger.annotations.ApiModelProperty(value="支付时间",name="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") | |||
| private Integer orderStatus; | |||
| @Excel(name = "订单日期", width = 20, orderNum = "7", format = "yyyy-MM-dd") | |||
| @io.swagger.annotations.ApiModelProperty(value="创建时间/砍价开始时间",name="createDate") | |||
| private Date createDate; | |||
| @io.swagger.annotations.ApiModelProperty(value="更新时间",name="updateDate") | |||
| @@ -82,9 +91,15 @@ public class WxOrder extends BaseEntity { | |||
| @TableField(exist = false) | |||
| protected String statusStr; | |||
| @Excel(name = "商品名称", width = 20, orderNum = "5") | |||
| @TableField(exist = false) | |||
| private String title; | |||
| @Excel(name = "商品属性", width = 20, orderNum = "4", replace = {"消费卡_1", "优惠券_2", "砍价_3", "拼团_4"}) | |||
| @TableField(exist = false) | |||
| private Integer attribute; | |||
| @Excel(name = "支付金额(元)", width = 20, orderNum = "8") | |||
| @TableField(exist = false) | |||
| private Integer pay; | |||
| } | |||
| @@ -10,6 +10,8 @@ import com.iformall.domain.vo.WxOrderCouponVo; | |||
| import com.iformall.domain.vo.WxOrderQueryVo; | |||
| import com.iformall.enums.EnumOrderStatus; | |||
| import javax.servlet.http.HttpServletRequest; | |||
| import javax.servlet.http.HttpServletResponse; | |||
| import java.util.List; | |||
| import java.util.Map; | |||
| @@ -191,4 +193,6 @@ public interface WxOrderService { | |||
| Map<String, Object> summary(WxOrderQueryVo wxOrderQueryVo); | |||
| void exportData(WxOrderQueryVo wxOrderQueryVo, HttpServletRequest request, HttpServletResponse response); | |||
| } | |||
| @@ -25,6 +25,8 @@ import org.springframework.stereotype.Service; | |||
| import org.springframework.transaction.annotation.Propagation; | |||
| import org.springframework.transaction.annotation.Transactional; | |||
| import javax.servlet.http.HttpServletRequest; | |||
| import javax.servlet.http.HttpServletResponse; | |||
| import java.math.BigDecimal; | |||
| import java.text.ParseException; | |||
| import java.text.SimpleDateFormat; | |||
| @@ -123,6 +125,9 @@ public class WxOrderServiceImpl implements WxOrderService { | |||
| @Autowired | |||
| private WxCouponPasswordMapper couponPasswordMapper; | |||
| @Autowired | |||
| ExcelService excelService; | |||
| @Override | |||
| public PageInfo<WxOrder> listAsPage(WxOrder record, Integer pageIndex, Integer pageSize) { | |||
| return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxOrderMapper.findList(record)); | |||
| @@ -980,16 +985,20 @@ public class WxOrderServiceImpl implements WxOrderService { | |||
| @Override | |||
| public Map<String, Object> summary(WxOrderQueryVo 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<>(); | |||
| data.put("orderPay", orderPay); | |||
| data.put("payment", payment); | |||
| data.put("pay", pay); | |||
| 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); | |||
| } | |||
| /** | |||
| * 积分设置来源商户 | |||
| */ | |||
| @@ -541,12 +541,13 @@ | |||
| <result column="phone" jdbcType="VARCHAR" property="phone"/> | |||
| <result column="title" jdbcType="VARCHAR" property="title"/> | |||
| <result column="attribute" jdbcType="INTEGER" property="attribute"/> | |||
| <result column="pay" jdbcType="INTEGER" property="pay"/> | |||
| </resultMap> | |||
| <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, | |||
| 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 | |||