Browse Source

[需求][新增]:Excel导出使用统一的接口注释方式

release_toaliyun_real
hupeng 7 years ago
parent
commit
1e15d35e3a
11 changed files with 422 additions and 54 deletions
  1. +7
    -0
      mallinkService/src/main/java/com/iformall/common/ErrorCode.java
  2. +52
    -39
      mallinkService/src/main/java/com/iformall/domain/po/WxCUserBasicInfo.java
  3. +20
    -6
      mallinkService/src/main/java/com/iformall/domain/po/WxCarPayRecord.java
  4. +49
    -1
      mallinkService/src/main/java/com/iformall/domain/po/WxCardSpend.java
  5. +45
    -1
      mallinkService/src/main/java/com/iformall/domain/po/WxMerchantSubsidy.java
  6. +5
    -0
      mallinkService/src/main/java/com/iformall/domain/vo/WxCardSpendVo.java
  7. +2
    -0
      mallinkService/src/main/java/com/iformall/domain/vo/WxMerchantSubsidyVo.java
  8. +115
    -0
      mallinkService/src/main/java/com/iformall/service/ExcelService.java
  9. +104
    -5
      mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java
  10. +11
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java
  11. +12
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxMerchantSubsidyServiceImpl.java

+ 7
- 0
mallinkService/src/main/java/com/iformall/common/ErrorCode.java View File

@@ -387,6 +387,13 @@ public enum ErrorCode{
ORDER_GROUP_COOPERATING_ATTEND(28003, "您已参与拼团"), ORDER_GROUP_COOPERATING_ATTEND(28003, "您已参与拼团"),
ORDER_GROUP_COOPERATING_UNPAID(28004, "您有未支付的拼团订单"), ORDER_GROUP_COOPERATING_UNPAID(28004, "您有未支付的拼团订单"),



/**
* 导入导出
*/
EXCEL_EXPORT_ERROR(29001, "Excel数据导出出错"),
EXCEL_IMPORT_ERROR(29002, "Excel数据导入出错"),

; ;


private int code; private int code;


+ 52
- 39
mallinkService/src/main/java/com/iformall/domain/po/WxCUserBasicInfo.java View File

@@ -43,73 +43,86 @@ public class WxCUserBasicInfo implements Serializable {
public void setIds(List<Long> ids) { public void setIds(List<Long> ids) {
this.ids = ids; this.ids = ids;
} }



/**用户姓名**/
@Excel(name="姓名",width = 20,orderNum = "1")
@NotNull
@io.swagger.annotations.ApiModelProperty(value="用户姓名",name="name")
private String name;
/**性别:0:保密 1.男 2女**/
@Excel(name="性别",width = 20,replace = { "保密_0", "男_1", "女_2"},orderNum = "2")
@NotNull
@io.swagger.annotations.ApiModelProperty(value="性别:0:保密 1.男 2女",name="sex")
private Integer sex;
/**微信用户绑定的手机号**/ /**微信用户绑定的手机号**/
@Excel(name="手机号",width = 20,orderNum = "3") @Excel(name="手机号",width = 20,orderNum = "3")
@io.swagger.annotations.ApiModelProperty(value="微信用户绑定的手机号",name="phone") @io.swagger.annotations.ApiModelProperty(value="微信用户绑定的手机号",name="phone")
@NotNull @NotNull
private String phone; private String phone;
/**出生日期**/
@Excel(name="生日",width = 20,format="yyyy-MM-dd",orderNum = "6")
@NotNull
@io.swagger.annotations.ApiModelProperty(value="出生日期",name="birthdate")
private Date birthdate;
/**用户昵称**/
@Excel(name="微信昵称",width = 20,orderNum = "4")
@io.swagger.annotations.ApiModelProperty(value="用户昵称",name="nickName")
private String nickName;
/**学历**/ /**学历**/
@Excel(name="学历",width = 20,orderNum = "5") @Excel(name="学历",width = 20,orderNum = "5")
@NotNull @NotNull
@io.swagger.annotations.ApiModelProperty(value="学历",name="education") @io.swagger.annotations.ApiModelProperty(value="学历",name="education")
private String education; private String education;
/**性别:0:保密 1.男 2女**/
@Excel(name="性别",width = 20,replace = { "保密_0", "男_1","女_2"},orderNum = "2")
/**出生日期**/
@Excel(name="生日",width = 20,format="yyyy-MM-dd",orderNum = "6")
@NotNull @NotNull
@io.swagger.annotations.ApiModelProperty(value="性别:0:保密 1.男 2女",name="sex")
private Integer sex;
/**邮箱**/
@io.swagger.annotations.ApiModelProperty(value="邮箱",name="email")
private String email;
/**地址**/
@io.swagger.annotations.ApiModelProperty(value="出生日期",name="birthdate")
private Date birthdate;

@Excel(name="地址",width = 20,orderNum = "7") @Excel(name="地址",width = 20,orderNum = "7")
@Transient
private String addressStr;

/**更新时间**/
@Excel(name="上次活跃时间",width = 20,format="yyyy-MM-dd", orderNum = "8")
@io.swagger.annotations.ApiModelProperty(value="更新时间",name="updateDate")
private Date updateDate;

/**创建时间**/
@Excel(name="注册时间",width = 20,format="yyyy-MM-dd", orderNum = "9")
@io.swagger.annotations.ApiModelProperty(value="创建时间",name="createDate")
private Date createDate;

/**成长值**/
@Excel(name="成长值",width = 20, orderNum = "11")
@io.swagger.annotations.ApiModelProperty(value="成长值",name="poins")
private Integer poins;

/**地址**/
@io.swagger.annotations.ApiModelProperty(value="地址",name="address") @io.swagger.annotations.ApiModelProperty(value="地址",name="address")
private String address; private String address;
/**积分**/
@io.swagger.annotations.ApiModelProperty(value="积分",name="poins")
private Integer poins;

/**邮箱**/
@io.swagger.annotations.ApiModelProperty(value="邮箱",name="email")
private String email;

/**用户标签**/ /**用户标签**/
@io.swagger.annotations.ApiModelProperty(value="用户标签",name="tagId") @io.swagger.annotations.ApiModelProperty(value="用户标签",name="tagId")
private Long tagId; private Long tagId;
/**创建时间**/
@Excel(name="注册时间",width = 20,format="yyyy-MM-dd", orderNum = "9")
@io.swagger.annotations.ApiModelProperty(value="创建时间",name="createDate")
private Date createDate;
/**更新时间**/
@Excel(name="上次活跃时间",width = 20,format="yyyy-MM-dd", orderNum = "8")
@io.swagger.annotations.ApiModelProperty(value="更新时间",name="updateDate")
private Date updateDate;

/**租户id**/ /**租户id**/
@io.swagger.annotations.ApiModelProperty(value="租户id",name="tenantId") @io.swagger.annotations.ApiModelProperty(value="租户id",name="tenantId")
private String tenantId; private String tenantId;


/**用户姓名**/
@Excel(name="姓名",width = 20,orderNum = "1")
@NotNull
@io.swagger.annotations.ApiModelProperty(value="用户姓名",name="name")
private String name;

/**会员等级**/ /**会员等级**/
@io.swagger.annotations.ApiModelProperty(value="会员等级",name="level") @io.swagger.annotations.ApiModelProperty(value="会员等级",name="level")
private String level; private String level;
/**用户昵称**/
@Excel(name="微信昵称",width = 20,orderNum = "4")
@io.swagger.annotations.ApiModelProperty(value="用户昵称",name="nickName")
private String nickName;


@Transient
private String tagIds;

@Transient @Transient
@Excel(name="标签",width = 20,orderNum = "10") @Excel(name="标签",width = 20,orderNum = "10")
private String tagNames; private String tagNames;



@Transient
private String tagIds;

@Transient @Transient
private List<WxTags> tagsList; private List<WxTags> tagsList;


@@ -121,11 +134,11 @@ public class WxCUserBasicInfo implements Serializable {


@Transient @Transient
private Date startTime; private Date startTime;

@Transient @Transient
private Date endTime; private Date endTime;


@Transient
private String addressStr;



public String getLevel() { public String getLevel() {
return level; return level;


+ 20
- 6
mallinkService/src/main/java/com/iformall/domain/po/WxCarPayRecord.java View File

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


import cn.afterturn.easypoi.excel.annotation.Excel;

import javax.persistence.Id; import javax.persistence.Id;
import javax.persistence.Table; import javax.persistence.Table;
import javax.persistence.Transient; import javax.persistence.Transient;
@@ -11,16 +13,28 @@ public class WxCarPayRecord implements Serializable {
private static final long serialVersionUID = 1243232432423L; private static final long serialVersionUID = 1243232432423L;
@Id @Id
private Long id; private Long id;

@Excel(name="车牌",width = 20,orderNum = "1")
private String plateNumber;
@Excel(name="车主电话",width = 20,orderNum = "2")
private String phone;
@Excel(name="进场时间",width = 20,orderNum = "3",format="yyyy-MM-dd HH:mm")
private Date entranceTime;
@Excel(name="出场时间",width = 20,orderNum = "4",format="yyyy-MM-dd HH:mm")
private Date exitTime;
@Excel(name="停车时长(分钟)",width = 20,orderNum = "5")
private Long stayedTime;
@Excel(name="缴费金额(元)",width = 20,orderNum = "6")
private String fee;

private String tenantId; private String tenantId;
private Integer vendorType; private Integer vendorType;
private String synId; private String synId;
private String parkId; private String parkId;
private String parkName; private String parkName;
private String userType; private String userType;
private String plateNumber;
private Date entranceTime;
private Date exitTime;
private String fee;


private Date feeTime; private Date feeTime;
private String coupon; private String coupon;
private String couponCode; private String couponCode;
@@ -28,10 +42,10 @@ public class WxCarPayRecord implements Serializable {
private String remainingDays; private String remainingDays;
private String discountAmount; private String discountAmount;
private String paidServiceFee; private String paidServiceFee;
private String phone;
private Date createDate; private Date createDate;
private Date updateDate; private Date updateDate;
private Long stayedTime;


@Transient @Transient
@io.swagger.annotations.ApiModelProperty(value="开始日期",name="startDate") @io.swagger.annotations.ApiModelProperty(value="开始日期",name="startDate")


+ 49
- 1
mallinkService/src/main/java/com/iformall/domain/po/WxCardSpend.java View File

@@ -1,7 +1,9 @@
package com.iformall.domain.po; package com.iformall.domain.po;


import cn.afterturn.easypoi.excel.annotation.Excel;
import lombok.Data; import lombok.Data;
import javax.persistence.*; import javax.persistence.*;
import java.math.BigDecimal;
import java.util.*; import java.util.*;
import javax.persistence.Transient; import javax.persistence.Transient;
import java.util.List; import java.util.List;
@@ -14,6 +16,7 @@ public class WxCardSpend implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@Id @Id
@Excel(name="交易编号",width = 20,orderNum = "1")
protected Long id; protected Long id;
@Transient @Transient
@@ -62,6 +65,7 @@ public class WxCardSpend implements Serializable {
private Integer cardBeforeRealAmount; private Integer cardBeforeRealAmount;
/**创建时间*/ /**创建时间*/
@io.swagger.annotations.ApiModelProperty(value="创建时间",name="createDate") @io.swagger.annotations.ApiModelProperty(value="创建时间",name="createDate")
@Excel(name="交易时间",width = 20,orderNum = "6",format="yyyy-MM-dd HH:mm")
private Date createDate; private Date createDate;
/**更新时间*/ /**更新时间*/
@io.swagger.annotations.ApiModelProperty(value="更新时间",name="updateDate") @io.swagger.annotations.ApiModelProperty(value="更新时间",name="updateDate")
@@ -69,11 +73,22 @@ public class WxCardSpend implements Serializable {


/**支付状态*/ /**支付状态*/
@io.swagger.annotations.ApiModelProperty(value="支付状态(0:未分帐, 1:已分账, 2:已人工分账)",name="payStatus") @io.swagger.annotations.ApiModelProperty(value="支付状态(0:未分帐, 1:已分账, 2:已人工分账)",name="payStatus")
@Excel(name="补贴状态",width = 20,orderNum = "10",replace = { "未支付_0", "已分账_1","已人工分账_2"})
private Integer payStatus; private Integer payStatus;


@Transient @Transient
protected List<Integer> payStatusS;
@Excel(name="消费金额",width = 20,orderNum = "7")
private String deductionAmountStr;
@Transient
@Excel(name="收款金额",width = 20,orderNum = "8")
private String paymentStr;
@Transient
@Excel(name="收款实际金额",width = 20,orderNum = "9")
private String realPaymentStr;



@Transient
protected List<Integer> payStatusS;
@Transient @Transient
protected String payStatusStr; protected String payStatusStr;


@@ -85,6 +100,39 @@ public class WxCardSpend implements Serializable {
@io.swagger.annotations.ApiModelProperty(value="结束时间",name="enddate") @io.swagger.annotations.ApiModelProperty(value="结束时间",name="enddate")
private Date enddate; private Date enddate;


public String getDeductionAmountStr() {
if(getDeductionAmountStr()!=null) {
deductionAmountStr = new BigDecimal(getDeductionAmountStr()).divide(new BigDecimal(100)).toString();
}
return deductionAmountStr;
}

public void setDeductionAmountStr(String deductionAmountStr) {
this.deductionAmountStr = deductionAmountStr;
}

public String getPaymentStr() {
if(getPaymentStr()!=null) {
paymentStr = new BigDecimal(getPaymentStr()).divide(new BigDecimal(100)).toString();
}
return paymentStr;
}

public void setPaymentStr(String paymentStr) {
this.paymentStr = paymentStr;
}

public String getRealPaymentStr() {
if(getRealPaymentStr()!=null) {
realPaymentStr = new BigDecimal(getRealPaymentStr()).divide(new BigDecimal(100)).toString();
}
return realPaymentStr;
}

public void setRealPaymentStr(String realPaymentStr) {
this.realPaymentStr = realPaymentStr;
}

public static enum Field public static enum Field
{ {
Id_ASC("`id` ASC"),Id_DESC("`id` DESC") Id_ASC("`id` ASC"),Id_DESC("`id` DESC")


+ 45
- 1
mallinkService/src/main/java/com/iformall/domain/po/WxMerchantSubsidy.java View File

@@ -1,7 +1,9 @@
package com.iformall.domain.po; package com.iformall.domain.po;


import cn.afterturn.easypoi.excel.annotation.Excel;
import lombok.Data; import lombok.Data;
import javax.persistence.*; import javax.persistence.*;
import java.math.BigDecimal;
import java.util.*; import java.util.*;
import javax.persistence.Transient; import javax.persistence.Transient;
import java.util.List; import java.util.List;
@@ -12,7 +14,8 @@ import java.io.Serializable;
@Data @Data
public class WxMerchantSubsidy implements Serializable { public class WxMerchantSubsidy implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;


@Id @Id
protected Long id; protected Long id;
@@ -28,12 +31,16 @@ public class WxMerchantSubsidy implements Serializable {
/**租户ID**/ /**租户ID**/
@io.swagger.annotations.ApiModelProperty(value="租户ID",name="tenantId") @io.swagger.annotations.ApiModelProperty(value="租户ID",name="tenantId")
private String tenantId; private String tenantId;

/**订单ID*/ /**订单ID*/
@Excel(name="交易单号",width = 20,orderNum = "1")
@io.swagger.annotations.ApiModelProperty(value="订单ID",name="orderId") @io.swagger.annotations.ApiModelProperty(value="订单ID",name="orderId")
private Long orderId; private Long orderId;

/**订单支付类型(0:券1:付款码支付,2:C扫码支付,3,储值卡)*/ /**订单支付类型(0:券1:付款码支付,2:C扫码支付,3,储值卡)*/
@io.swagger.annotations.ApiModelProperty(value="订单支付类型(0:券1:付款码支付,2:C扫码支付,3,储值卡)",name="orderType") @io.swagger.annotations.ApiModelProperty(value="订单支付类型(0:券1:付款码支付,2:C扫码支付,3,储值卡)",name="orderType")
private Integer orderType; private Integer orderType;

/**商户ID*/ /**商户ID*/
@io.swagger.annotations.ApiModelProperty(value="商户ID",name="merchantId") @io.swagger.annotations.ApiModelProperty(value="商户ID",name="merchantId")
private Long merchantId; private Long merchantId;
@@ -43,25 +50,39 @@ public class WxMerchantSubsidy implements Serializable {
/**券包类型(1.满减券,2.代金券,3.团购券,4.礼品券,5.停车券,6.多商户券,8.砍价券,9.团购券,100.消费卡)*/ /**券包类型(1.满减券,2.代金券,3.团购券,4.礼品券,5.停车券,6.多商户券,8.砍价券,9.团购券,100.消费卡)*/
@io.swagger.annotations.ApiModelProperty(value="券包类型(1.满减券,2.代金券,3.团购券,4.礼品券,5.停车券,6.多商户券,8.砍价券,9.团购券,100.消费卡)",name="couponType") @io.swagger.annotations.ApiModelProperty(value="券包类型(1.满减券,2.代金券,3.团购券,4.礼品券,5.停车券,6.多商户券,8.砍价券,9.团购券,100.消费卡)",name="couponType")
private Integer couponType; private Integer couponType;

/**订单金额*/ /**订单金额*/
@io.swagger.annotations.ApiModelProperty(value="订单金额",name="orderPayment") @io.swagger.annotations.ApiModelProperty(value="订单金额",name="orderPayment")
private Integer orderPayment; private Integer orderPayment;
/**接收金额(包含通道费)*/ /**接收金额(包含通道费)*/
@io.swagger.annotations.ApiModelProperty(value="接收金额(包含通道费)",name="receiverPayment") @io.swagger.annotations.ApiModelProperty(value="接收金额(包含通道费)",name="receiverPayment")
private Integer receiverPayment; private Integer receiverPayment;

/**订单金额*/
@Transient
@Excel(name="本次消费(元)",width = 20,orderNum = "4")
private String orderPaymentStr;
/**接收金额(包含通道费)*/
@Transient
@Excel(name="商户应收(元)",width = 20,orderNum = "5")
private String receiverPaymentStr;

/** 实收金额(不包含通道费)*/ /** 实收金额(不包含通道费)*/
@io.swagger.annotations.ApiModelProperty(value=" 实收金额(不包含通道费)",name="realPayment") @io.swagger.annotations.ApiModelProperty(value=" 实收金额(不包含通道费)",name="realPayment")
private Integer realPayment; private Integer realPayment;
/**补贴额(包含通道费)*/ /**补贴额(包含通道费)*/
@Excel(name="补贴(元)",width = 20,orderNum = "6")
@io.swagger.annotations.ApiModelProperty(value="补贴额(包含通道费)",name="subsidy") @io.swagger.annotations.ApiModelProperty(value="补贴额(包含通道费)",name="subsidy")
private Integer subsidy; private Integer subsidy;
/**线上补贴额/实收补贴额(通道费扣除)*/ /**线上补贴额/实收补贴额(通道费扣除)*/
@io.swagger.annotations.ApiModelProperty(value="线上补贴额/实收补贴额(通道费扣除)",name="realSubsidy") @io.swagger.annotations.ApiModelProperty(value="线上补贴额/实收补贴额(通道费扣除)",name="realSubsidy")
private Integer realSubsidy; private Integer realSubsidy;
/**状态(0:未补贴, 1:已自动补贴, 2:已手工补贴)*/ /**状态(0:未补贴, 1:已自动补贴, 2:已手工补贴)*/
@Excel(name="补贴状态",width = 20,orderNum = "7",replace = { "未补贴_0", "已自动补贴_1","已手工补贴_2"})
@io.swagger.annotations.ApiModelProperty(value="状态(0:未补贴, 1:已补贴, 2:已手工补贴)",name="status") @io.swagger.annotations.ApiModelProperty(value="状态(0:未补贴, 1:已补贴, 2:已手工补贴)",name="status")
private Integer status; private Integer status;
/**创建时间*/ /**创建时间*/
@Excel(name="交易时间",width = 20,orderNum = "3",format="yyyy-MM-dd HH:mm")
@io.swagger.annotations.ApiModelProperty(value="创建时间",name="createDate") @io.swagger.annotations.ApiModelProperty(value="创建时间",name="createDate")
private Date createDate; private Date createDate;
/**更新时间*/ /**更新时间*/
@@ -80,6 +101,29 @@ public class WxMerchantSubsidy implements Serializable {
@Transient @Transient
protected String statusStr; protected String statusStr;


public String getOrderPaymentStr() {

if(getOrderPaymentStr()!=null) {
orderPaymentStr = new BigDecimal(getOrderPaymentStr()).divide(new BigDecimal(100)).toString();
}
return orderPaymentStr;
}

public void setOrderPaymentStr(String orderPaymentStr) {
this.orderPaymentStr = orderPaymentStr;
}

public String getReceiverPaymentStr() {
if(getReceiverPaymentStr()!=null) {
receiverPaymentStr = new BigDecimal(getReceiverPaymentStr()).divide(new BigDecimal(100)).toString();
}
return receiverPaymentStr;
}

public void setReceiverPaymentStr(String receiverPaymentStr) {
this.receiverPaymentStr = receiverPaymentStr;
}

public static enum Field public static enum Field
{ {
Id_ASC("`id` ASC"),Id_DESC("`id` DESC") Id_ASC("`id` ASC"),Id_DESC("`id` DESC")


+ 5
- 0
mallinkService/src/main/java/com/iformall/domain/vo/WxCardSpendVo.java View File

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


import cn.afterturn.easypoi.excel.annotation.Excel;
import com.iformall.domain.po.WxCardSpend; import com.iformall.domain.po.WxCardSpend;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
@@ -16,10 +17,12 @@ public class WxCardSpendVo extends WxCardSpend {
/**卡信息*/ /**卡信息*/
/**券名称**/ /**券名称**/
@io.swagger.annotations.ApiModelProperty(value="券名称",name="title") @io.swagger.annotations.ApiModelProperty(value="券名称",name="title")
@Excel(name="卡名",width = 20,orderNum = "4")
private String title; private String title;


/**使用商户名**/ /**使用商户名**/
@io.swagger.annotations.ApiModelProperty(value="商户名",name="merchantName") @io.swagger.annotations.ApiModelProperty(value="商户名",name="merchantName")
@Excel(name="商户",width = 20,orderNum = "5")
private String merchantName; private String merchantName;


/**补贴额(包含通道费)*/ /**补贴额(包含通道费)*/
@@ -34,10 +37,12 @@ public class WxCardSpendVo extends WxCardSpend {


/**持有人昵称*/ /**持有人昵称*/
@io.swagger.annotations.ApiModelProperty(value="持有人昵称",name="onickName") @io.swagger.annotations.ApiModelProperty(value="持有人昵称",name="onickName")
@Excel(name="消费者",width = 20,orderNum = "2")
private String onickName; private String onickName;


/**持有人绑定的手机号**/ /**持有人绑定的手机号**/
@io.swagger.annotations.ApiModelProperty(value="持有人绑定的手机号",name="ouPhone") @io.swagger.annotations.ApiModelProperty(value="持有人绑定的手机号",name="ouPhone")
@Excel(name="手机号",width = 20,orderNum = "3")
private String ouPhone; private String ouPhone;


} }

+ 2
- 0
mallinkService/src/main/java/com/iformall/domain/vo/WxMerchantSubsidyVo.java View File

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


import cn.afterturn.easypoi.excel.annotation.Excel;
import com.iformall.domain.po.WxMerchantSubsidy; import com.iformall.domain.po.WxMerchantSubsidy;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
@@ -32,6 +33,7 @@ public class WxMerchantSubsidyVo extends WxMerchantSubsidy {
private String remark; private String remark;


/**使用商户名**/ /**使用商户名**/
@Excel(name="消费商户",width = 20,orderNum = "2")
@io.swagger.annotations.ApiModelProperty(value="商户名",name="name") @io.swagger.annotations.ApiModelProperty(value="商户名",name="name")
private String merchantName; private String merchantName;




+ 115
- 0
mallinkService/src/main/java/com/iformall/service/ExcelService.java View File

@@ -0,0 +1,115 @@
package com.iformall.service;


import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.afterturn.easypoi.excel.entity.ImportParams;
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
import com.iformall.common.ErrorCode;
import com.iformall.exception.MallinkException;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.Workbook;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.List;
import java.util.Map;
import java.util.NoSuchElementException;

@Service
public class ExcelService {
private final Logger logger = LoggerFactory.getLogger(this.getClass());


public static void exportExcel(List<?> list, String title, String sheetName, Class<?> pojoClass, String fileName, boolean isCreateHeader, HttpServletResponse response)
{
ExportParams exportParams = new ExportParams(title, sheetName);
exportParams.setCreateHeadRows(isCreateHeader);
defaultExport(list, pojoClass, fileName, response, exportParams);
}

public static void exportExcel(List<?> list, String title, String sheetName, Class<?> pojoClass,String fileName, HttpServletResponse response)
{
defaultExport(list, pojoClass, fileName, response, new ExportParams(title, sheetName));
}

public static void exportExcel(List<Map<String, Object>> list, String fileName, HttpServletResponse response)
{
defaultExport(list, fileName, response);
}


private static void defaultExport(List<?> list, Class<?> pojoClass, String fileName, HttpServletResponse response, ExportParams exportParams)
{
Workbook workbook = ExcelExportUtil.exportExcel(exportParams,pojoClass,list);
if (workbook != null);
downLoadExcel(fileName, response, workbook);
}

private static void defaultExport(List<Map<String, Object>> list, String fileName, HttpServletResponse response)
{
Workbook workbook = ExcelExportUtil.exportExcel(list, ExcelType.HSSF);
if (workbook != null);
downLoadExcel(fileName, response, workbook);
}

private static void downLoadExcel(String fileName, HttpServletResponse response, Workbook workbook)
{
try {
response.setCharacterEncoding("UTF-8");
response.setHeader("content-Type", "application/vnd.ms-excel");
response.setHeader("Content-Disposition",
"attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
workbook.write(response.getOutputStream()); }
catch (IOException e)
{
throw new MallinkException(ErrorCode.EXCEL_EXPORT_ERROR.getCode(),e.getMessage());
}
}

public static <T> List<T> importExcel(String filePath,Integer titleRows,Integer headerRows, Class<T> pojoClass){
if (StringUtils.isBlank(filePath)){
return null;
}
ImportParams params = new ImportParams();
params.setTitleRows(titleRows);
params.setHeadRows(headerRows);
List<T> list = null;
try {
list = ExcelImportUtil.importExcel(new File(filePath), pojoClass, params);
}catch (NoSuchElementException e){
throw new MallinkException(ErrorCode.EXCEL_IMPORT_ERROR.getCode(),"模板不能为空");
} catch (Exception e) {
e.printStackTrace();
throw new MallinkException(ErrorCode.EXCEL_IMPORT_ERROR.getCode(),e.getMessage());
}
return list;
}

public static <T> List<T> importExcel(MultipartFile file, Integer titleRows, Integer headerRows, Class<T> pojoClass) {
if (file == null) {
return null;
}
ImportParams params = new ImportParams();
params.setTitleRows(titleRows);
params.setHeadRows(headerRows);
List<T> list = null;
try {
list = ExcelImportUtil.importExcel(file.getInputStream(), pojoClass, params);
} catch (NoSuchElementException e) {
throw new MallinkException(ErrorCode.EXCEL_IMPORT_ERROR.getCode(),"excel文件不能为空");
} catch (Exception e) {
throw new MallinkException(ErrorCode.EXCEL_IMPORT_ERROR.getCode(),e.getMessage());
}
return list;

}
}

+ 104
- 5
mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java View File

@@ -1,8 +1,12 @@
package com.iformall.service.impl; package com.iformall.service.impl;


import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.iformall.common.ErrorCode;
import com.iformall.common.IdWorker; import com.iformall.common.IdWorker;
import com.iformall.domain.dto.WxCUserBasicInfoDto; import com.iformall.domain.dto.WxCUserBasicInfoDto;
import com.iformall.domain.po.WxCUser; import com.iformall.domain.po.WxCUser;
@@ -14,7 +18,9 @@ import com.iformall.domain.vo.CUserBaseVo;
import com.iformall.domain.vo.CUserTagVo; import com.iformall.domain.vo.CUserTagVo;
import com.iformall.domain.vo.WxCUserBasicInfoVo; import com.iformall.domain.vo.WxCUserBasicInfoVo;
import com.iformall.enums.EnumScoreType; import com.iformall.enums.EnumScoreType;
import com.iformall.exception.MallinkException;
import com.iformall.mapper.*; import com.iformall.mapper.*;
import com.iformall.service.ExcelService;
import com.iformall.service.WxCUserBasicInfoService; import com.iformall.service.WxCUserBasicInfoService;
import com.iformall.service.WxCUserTagsService; import com.iformall.service.WxCUserTagsService;
import com.iformall.service.WxScoreRulesService; import com.iformall.service.WxScoreRulesService;
@@ -24,6 +30,7 @@ import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.streaming.SXSSFSheet; import org.apache.poi.xssf.streaming.SXSSFSheet;
import org.apache.poi.xssf.streaming.SXSSFWorkbook; import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.slf4j.Logger; import org.slf4j.Logger;
@@ -34,12 +41,10 @@ import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.*; import java.io.*;
import java.net.URLEncoder;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import java.util.*;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;


@Service @Service
@@ -70,6 +75,11 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService {
@Autowired @Autowired
WxCarPayRecordMapper wxCarPayRecordMapper; WxCarPayRecordMapper wxCarPayRecordMapper;



@Autowired
ExcelService excelService;


@Override @Override
public PageInfo<WxCUserBasicInfo> listAsPage(WxCUserBasicInfo record, Integer pageIndex, Integer pageSize) { public PageInfo<WxCUserBasicInfo> listAsPage(WxCUserBasicInfo record, Integer pageIndex, Integer pageSize) {
return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCUserBasicInfoMapper.findList(record)); return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCUserBasicInfoMapper.findList(record));
@@ -148,6 +158,12 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService {
return wxCUserBasicInfoMapper.countVoList(basicInfo); return wxCUserBasicInfoMapper.countVoList(basicInfo);
} }



public void exportData(WxCUserBasicInfo basicInfo, HttpServletRequest request, HttpServletResponse response) {
List<WxCUserBasicInfoVo> list = wxCUserBasicInfoMapper.findVoList(basicInfo);
excelService.exportExcel(list,null,"会员信息",WxCUserBasicInfoVo.class,"会员信息数据.xls",response);
}
/*
@Override @Override
public void exportData(WxCUserBasicInfo basicInfo, HttpServletRequest request, HttpServletResponse response) { public void exportData(WxCUserBasicInfo basicInfo, HttpServletRequest request, HttpServletResponse response) {
List<WxCUserBasicInfoVo> memberlist = wxCUserBasicInfoMapper.findVoList(basicInfo); List<WxCUserBasicInfoVo> memberlist = wxCUserBasicInfoMapper.findVoList(basicInfo);
@@ -274,7 +290,81 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService {
e.printStackTrace(); e.printStackTrace();
} }
} }
*/

public void exportTemplate(HttpServletRequest request, HttpServletResponse response, String tenantId) {
List<WxCUserBasicInfoVo> list = new ArrayList<>();
WxCUserBasicInfoVo u1 = new WxCUserBasicInfoVo();
WxCUserBasicInfoVo u2 = new WxCUserBasicInfoVo();
WxCUserBasicInfoVo u3 = new WxCUserBasicInfoVo();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");


u1.setName("例子1");
u1.setSex(0);
u1.setPhone("13900010001");
u1.setNickName("昵称");
u1.setEducation("本科");
u1.setAddress("地址");
try {
u1.setBirthdate(sdf.parse("2018-09-10"));
u1.setCreateDate(sdf.parse("2018-08-10"));
u1.setUpdateDate(sdf.parse("2018-08-10"));
} catch (Exception e){
u1.setBirthdate(new Date());
u1.setCreateDate(new Date());
u1.setUpdateDate(new Date());
}

u1.setTagNames("附近住户");
u1.setPoins(100);

u2.setName("例子2");
u2.setSex(1);
u2.setPhone("13900010002");
u2.setNickName("昵称");
u2.setEducation("本科");
u2.setAddress("地址");


try {
u2.setBirthdate(sdf.parse("2018-09-10"));
u2.setCreateDate(sdf.parse("2018-08-10"));
u2.setUpdateDate(sdf.parse("2018-08-10"));
} catch (Exception e){
u2.setBirthdate(new Date());
u2.setCreateDate(new Date());
u2.setUpdateDate(new Date());
}

u2.setTagNames("男/附近住户");
u2.setPoins(200);

u3.setName("例子3");
u3.setSex(2);
u3.setPhone("13900010003");
u3.setNickName("昵称");
u3.setEducation("本科");
u3.setAddress("地址");

try {
u3.setBirthdate(sdf.parse("2018-09-10"));
u3.setCreateDate(sdf.parse("2018-08-10"));
u3.setUpdateDate(sdf.parse("2018-08-10"));
} catch (Exception e){
u3.setBirthdate(new Date());
u3.setCreateDate(new Date());
u3.setUpdateDate(new Date());
}
u3.setTagNames("女/附近住户");
u3.setPoins(110);

list.add(u1);
list.add(u2);
list.add(u3);

excelService.exportExcel(list,null,"会员信息模板",WxCUserBasicInfoVo.class,"会员信息模板.xls",response);
}
/*
@Override @Override
public void exportTemplate(HttpServletRequest request, HttpServletResponse response, String tenantId) { public void exportTemplate(HttpServletRequest request, HttpServletResponse response, String tenantId) {


@@ -402,7 +492,7 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService {
} }


} }
*/


public WxCUserBasicInfo InitUserBaseInfo(CUserBaseInfoT uBase, String tenantId) { public WxCUserBasicInfo InitUserBaseInfo(CUserBaseInfoT uBase, String tenantId) {
if (StringUtils.isBlank(uBase.getPhone())) { if (StringUtils.isBlank(uBase.getPhone())) {
@@ -604,6 +694,14 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService {
return wxCUserBasicInfoMapper.findCount(dto); return wxCUserBasicInfoMapper.findCount(dto);
} }


@Override
public void exportCarPayData(WxCarPayRecord record, HttpServletRequest request, HttpServletResponse response) {
List<WxCarPayRecord> list = wxCarPayRecordMapper.findCarPayList(record);
String sheetName = (record.getIsPay()!=null && 1==record.getIsPay())?"线上缴费车辆列表":"进出车辆列表";
excelService.exportExcel(list,null,sheetName,WxCarPayRecord.class,sheetName+".xls",response);
}

/*
@Override @Override
public void exportCarPayData(WxCarPayRecord record, HttpServletRequest request, HttpServletResponse response) { public void exportCarPayData(WxCarPayRecord record, HttpServletRequest request, HttpServletResponse response) {
List<WxCarPayRecord> carPayList = wxCarPayRecordMapper.findCarPayList(record); List<WxCarPayRecord> carPayList = wxCarPayRecordMapper.findCarPayList(record);
@@ -676,4 +774,5 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService {
e.printStackTrace(); e.printStackTrace();
} }
} }
*/
} }

+ 11
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java View File

@@ -11,6 +11,7 @@ import com.iformall.domain.vo.WxCardSpendVo;
import com.iformall.enums.*; import com.iformall.enums.*;
import com.iformall.exception.MallinkException; import com.iformall.exception.MallinkException;
import com.iformall.mapper.*; import com.iformall.mapper.*;
import com.iformall.service.ExcelService;
import com.iformall.service.WxCardSpendService; import com.iformall.service.WxCardSpendService;
import com.iformall.service.WxProfitSharingOrderService; import com.iformall.service.WxProfitSharingOrderService;
import com.iformall.utils.Constant; import com.iformall.utils.Constant;
@@ -69,6 +70,9 @@ public class WxCardSpendServiceImpl implements WxCardSpendService {
@Autowired @Autowired
WxProfitSharingOrderService profitSharingOrderService; WxProfitSharingOrderService profitSharingOrderService;


@Autowired
ExcelService excelService;

@Override @Override
public WxCouponMerchant checkMerchantInCoupon(WxCardInfo cardInfo, Long merchantId) { public WxCouponMerchant checkMerchantInCoupon(WxCardInfo cardInfo, Long merchantId) {
WxCouponMerchant couponMerchant = null; WxCouponMerchant couponMerchant = null;
@@ -498,6 +502,12 @@ public class WxCardSpendServiceImpl implements WxCardSpendService {
profitSharingOrderService.finishSharingOrder(shareOrder); profitSharingOrderService.finishSharingOrder(shareOrder);
} }


@Override
public void exportData(WxCardSpendVo wxCardSpendVo, HttpServletRequest request, HttpServletResponse response) {
List<WxCardSpendVo> list = wxCardSpendMapper.findCardSpendVoList(wxCardSpendVo);
excelService.exportExcel(list,null,"消费记录",WxCardSpendVo.class,"消费记录.xls",response);
}
/*
@Override @Override
public void exportData(WxCardSpendVo wxCardSpendVo, HttpServletRequest request, HttpServletResponse response) { public void exportData(WxCardSpendVo wxCardSpendVo, HttpServletRequest request, HttpServletResponse response) {
List<WxCardSpendVo> cardSpendVoList = wxCardSpendMapper.findCardSpendVoList(wxCardSpendVo); List<WxCardSpendVo> cardSpendVoList = wxCardSpendMapper.findCardSpendVoList(wxCardSpendVo);
@@ -590,7 +600,7 @@ public class WxCardSpendServiceImpl implements WxCardSpendService {
e.printStackTrace(); e.printStackTrace();
} }
} }
*/
public void downFile(String filePath, String filename, String exportFileName, public void downFile(String filePath, String filename, String exportFileName,
HttpServletResponse response, HttpServletRequest req) throws IOException { HttpServletResponse response, HttpServletRequest req) throws IOException {
try { try {


+ 12
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxMerchantSubsidyServiceImpl.java View File

@@ -10,6 +10,7 @@ import com.iformall.domain.vo.WxMerchantSubsidyVo;
import com.iformall.enums.EnumMerchantSubsidyStatus; import com.iformall.enums.EnumMerchantSubsidyStatus;
import com.iformall.enums.EnumOrderType; import com.iformall.enums.EnumOrderType;
import com.iformall.mapper.WxMerchantSubsidyMapper; import com.iformall.mapper.WxMerchantSubsidyMapper;
import com.iformall.service.ExcelService;
import com.iformall.service.WxMerchantSubsidyService; import com.iformall.service.WxMerchantSubsidyService;
import com.iformall.utils.Constant; import com.iformall.utils.Constant;
import org.apache.commons.io.FileUtils; import org.apache.commons.io.FileUtils;
@@ -37,12 +38,14 @@ public class WxMerchantSubsidyServiceImpl implements WxMerchantSubsidyService {
@Autowired @Autowired
WxMerchantSubsidyMapper wxMerchantSubsidyMapper; WxMerchantSubsidyMapper wxMerchantSubsidyMapper;


@Autowired
ExcelService excelService;

@Override @Override
public Map<String, Object> sumForSubsidy(WxMerchantSubsidy record) { public Map<String, Object> sumForSubsidy(WxMerchantSubsidy record) {
return wxMerchantSubsidyMapper.sumVoList(record); return wxMerchantSubsidyMapper.sumVoList(record);
} }



@Override @Override
public PageInfo<WxMerchantSubsidyVo> listAsPage(WxMerchantSubsidy record, Integer pageIndex, Integer pageSize) { public PageInfo<WxMerchantSubsidyVo> listAsPage(WxMerchantSubsidy record, Integer pageIndex, Integer pageSize) {
return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxMerchantSubsidyMapper.findVoList(record)); return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxMerchantSubsidyMapper.findVoList(record));
@@ -82,6 +85,13 @@ public class WxMerchantSubsidyServiceImpl implements WxMerchantSubsidyService {
wxMerchantSubsidyMapper.deleteByPrimaryKey(id); wxMerchantSubsidyMapper.deleteByPrimaryKey(id);
} }


@Override
public void exportData(WxMerchantSubsidy wxMerchantSubsidy, HttpServletRequest request, HttpServletResponse response) {
List<WxMerchantSubsidyVo> list = wxMerchantSubsidyMapper.findVoList(wxMerchantSubsidy);
excelService.exportExcel(list,null,"补贴记录",WxMerchantSubsidyVo.class,"补贴记录.xls",response);
}

/*
@Override @Override
public void exportData(WxMerchantSubsidy wxMerchantSubsidy, HttpServletRequest request, HttpServletResponse response) { public void exportData(WxMerchantSubsidy wxMerchantSubsidy, HttpServletRequest request, HttpServletResponse response) {
List<WxMerchantSubsidyVo> subsidyVoList = wxMerchantSubsidyMapper.findVoList(wxMerchantSubsidy); List<WxMerchantSubsidyVo> subsidyVoList = wxMerchantSubsidyMapper.findVoList(wxMerchantSubsidy);
@@ -163,6 +173,7 @@ public class WxMerchantSubsidyServiceImpl implements WxMerchantSubsidyService {
e.printStackTrace(); e.printStackTrace();
} }
} }
*/


public void downFile(String filePath, String filename, String exportFileName, public void downFile(String filePath, String filename, String exportFileName,
HttpServletResponse response, HttpServletRequest req) throws IOException { HttpServletResponse response, HttpServletRequest req) throws IOException {


Loading…
Cancel
Save