Przeglądaj źródła

[券订单][修改][导出数据]

release_toaliyun_real
gongbiao 7 lat temu
rodzic
commit
c5f3783d3f
5 zmienionych plików z 125 dodań i 69 usunięć
  1. +13
    -43
      mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponOrderController.java
  2. +51
    -10
      mallinkService/src/main/java/com/iformall/domain/vo/WxCouponOrderBVo.java
  3. +2
    -3
      mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java
  4. +20
    -6
      mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java
  5. +39
    -7
      mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml

+ 13
- 43
mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponOrderController.java Wyświetl plik

@@ -6,7 +6,6 @@ import com.iformall.common.ErrorCode;
import com.iformall.common.ResultData; import com.iformall.common.ResultData;
import com.iformall.controller.base.BaseController; import com.iformall.controller.base.BaseController;
import com.iformall.domain.po.WxAppinfo; import com.iformall.domain.po.WxAppinfo;
import com.iformall.domain.po.WxCouponOrder;
import com.iformall.domain.vo.WxCouponOrderBVo; import com.iformall.domain.vo.WxCouponOrderBVo;
import com.iformall.enums.EnumAppType; import com.iformall.enums.EnumAppType;
import com.iformall.enums.EnumPayType; import com.iformall.enums.EnumPayType;
@@ -26,7 +25,6 @@ import org.springframework.web.bind.annotation.*;


import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.text.SimpleDateFormat;
import java.util.Map; import java.util.Map;


@RestController @RestController
@@ -74,47 +72,6 @@ public class WxCouponOrderController extends BaseController {
return wxCouponOrderService.detailAdminVo(couponOrderId); return wxCouponOrderService.detailAdminVo(couponOrderId);
} }


@RequestMapping("/exportData")
@SystemControllerLog(description = "券包-导出")
public void exportData(
@RequestParam("endDate") String endDate,
@RequestParam("startDate") String startDate,
@RequestParam("merchantName") String merchantName,
@RequestParam("couponOrderStatus") String couponOrderStatus,
@RequestParam("id") String id,
HttpServletRequest request, HttpServletResponse response) {
logger.debug("[" + getIpAddr() + "] WxCouponOrderController::exportData");

WxCouponOrderBVo wxCouponOrder = new WxCouponOrderBVo();
wxCouponOrder.setTenantId(getTenantId());
wxCouponOrder.setMerchantName(merchantName);
try {
wxCouponOrder.setId(Long.valueOf(id));
}catch (Exception e){
wxCouponOrder.setId(null);
}
try {
wxCouponOrder.setCouponOrderStatus(Integer.valueOf(couponOrderStatus));
}catch (Exception e){
wxCouponOrder.setCouponOrderStatus(null);
}

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
wxCouponOrder.setStartTime( sdf.parse(startDate));
} catch (Exception e) {
wxCouponOrder.setStartTime(null);
}
try {
wxCouponOrder.setEndTime( sdf.parse(endDate));
} catch (Exception e) {
wxCouponOrder.setEndTime(null);
}
wxCouponOrder.setSortColumns(WxCouponOrder.Field.Id_DESC);
wxCouponOrderService.exportData(request, response, wxCouponOrder);

}

@ApiOperation(value = "退券退款", notes = "{\"couponOrderId\":\"string\"}") @ApiOperation(value = "退券退款", notes = "{\"couponOrderId\":\"string\"}")
@PostMapping("/refund") @PostMapping("/refund")
@SystemControllerLog(description = "券包-退券退款") @SystemControllerLog(description = "券包-退券退款")
@@ -158,4 +115,17 @@ public class WxCouponOrderController extends BaseController {
return new ResultData(ErrorCode.REFUND_ORDER_ERROR.getCode(), "AppInfo获取失败"); return new ResultData(ErrorCode.REFUND_ORDER_ERROR.getCode(), "AppInfo获取失败");
} }


@GetMapping("exportData")
@SystemControllerLog(description = "券订单数据-导出数据")
public void exportData(@ModelAttribute WxCouponOrderBVo wxCouponOrder, HttpServletRequest request, HttpServletResponse response) {
logger.debug("[" + getIpAddr() + "] WxCouponOrderController::exportData");
if (wxCouponOrder == null) wxCouponOrder = new WxCouponOrderBVo();
wxCouponOrder.setTenantId(getTenantId());
if (wxCouponOrder.getMerchantName() != null &&
wxCouponOrder.getMerchantName().isEmpty()) {
wxCouponOrder.setMerchantName(null);
}
wxCouponOrderService.exportData(wxCouponOrder, request, response);
}

} }

+ 51
- 10
mallinkService/src/main/java/com/iformall/domain/vo/WxCouponOrderBVo.java Wyświetl plik

@@ -9,6 +9,8 @@ import lombok.ToString;


import javax.persistence.Id; import javax.persistence.Id;
import javax.persistence.Transient; import javax.persistence.Transient;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat; import java.text.DecimalFormat;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@@ -20,7 +22,7 @@ public class WxCouponOrderBVo extends WxCouponOrder{


private static final long serialVersionUID = 6687954932922444531L; private static final long serialVersionUID = 6687954932922444531L;
@Id @Id
@Excel(name="券码",width = 20)
@Excel(name = "券码", width = 20, orderNum = "1")
protected Long id; protected Long id;


@Override @Override
@@ -40,31 +42,31 @@ public class WxCouponOrderBVo extends WxCouponOrder{
@io.swagger.annotations.ApiModelProperty(value = "该订单对应券的实际过期时间 ", name = "expiredTime") @io.swagger.annotations.ApiModelProperty(value = "该订单对应券的实际过期时间 ", name = "expiredTime")
private Date expiredTime; private Date expiredTime;


@Excel(name="券名称",width = 50)
@Excel(name = "券名称", width = 50, orderNum = "2")
@io.swagger.annotations.ApiModelProperty(value="券名称",name="title") @io.swagger.annotations.ApiModelProperty(value="券名称",name="title")
private String title; private String title;


@Excel(name="用户手机号",width = 20)
@Excel(name = "会员手机号", width = 20, orderNum = "13")
@io.swagger.annotations.ApiModelProperty(value="c用户绑定的手机号",name="cUserPhone") @io.swagger.annotations.ApiModelProperty(value="c用户绑定的手机号",name="cUserPhone")
private String cUserPhone; private String cUserPhone;


@Excel(name="交易时间",width = 20,exportFormat="yyyy-MM-dd HH:mm:ss")
@Excel(name = "交易时间", width = 20, exportFormat = "yyyy-MM-dd HH:mm:ss", orderNum = "8")
@io.swagger.annotations.ApiModelProperty(value = "创建时间", name = "createDate") @io.swagger.annotations.ApiModelProperty(value = "创建时间", name = "createDate")
private Date createDate; private Date createDate;


@Transient @Transient
@Excel(name="面额",width = 20)
@Excel(name = "面额(元)", width = 20, orderNum = "6")
private String priceStr; private String priceStr;


@Transient @Transient
@Excel(name="交易价格",width = 20)
@Excel(name = "交易价格(元)", width = 20, orderNum = "5")
private String salePriceStr; private String salePriceStr;


@Excel(name="订单状态",width = 20,replace = { "可以退款_0", "已经使用_1","已经过期_2","已经退款_3"})
@Excel(name = "状态", width = 20, replace = {"可以退款_0", "已经使用_1", "已经过期_2", "已经退款_3"}, orderNum = "14")
@io.swagger.annotations.ApiModelProperty(value = "状态:0,待使用 1,已核销 2,已过期 3,已作废 ", name = "couponOrderStatus") @io.swagger.annotations.ApiModelProperty(value = "状态:0,待使用 1,已核销 2,已过期 3,已作废 ", name = "couponOrderStatus")
private Integer couponOrderStatus; private Integer couponOrderStatus;


@Excel(name="核销/过期/退款时间",width = 20,exportFormat="yyyy-MM-dd HH:mm:ss")
@Excel(name = "核销/过期/退款时间", width = 20, exportFormat = "yyyy-MM-dd HH:mm:ss", orderNum = "9")
@io.swagger.annotations.ApiModelProperty(value = "", name = "updateDate") @io.swagger.annotations.ApiModelProperty(value = "", name = "updateDate")
private Date updateDate; private Date updateDate;


@@ -81,6 +83,23 @@ public class WxCouponOrderBVo extends WxCouponOrder{
@io.swagger.annotations.ApiModelProperty(value="面额",name="price") @io.swagger.annotations.ApiModelProperty(value="面额",name="price")
private Integer price; private Integer price;


@Excel(name = "所属业态", width = 50, orderNum = "11", replace = {"餐饮_1", "娱乐_2", "服饰_3", "亲子_4", "超市_5", "其它_6", "美妆_7", "珠宝_8", "服务_9", "家居_10"})
@io.swagger.annotations.ApiModelProperty(value = "业态", name = "business")
private Integer business;

@io.swagger.annotations.ApiModelProperty(value = "补贴额", name = "subsidySum")
private Integer subsidySum;

public String getSubsidySumStr() {
return new BigDecimal(subsidySum).divide(new BigDecimal(100)).setScale(2, RoundingMode.HALF_EVEN).toPlainString();
}

@Excel(name = "补贴额(元)", width = 50, orderNum = "7")
@io.swagger.annotations.ApiModelProperty(value = "补贴额", name = "subsidySum")
private String subsidySumStr;

@io.swagger.annotations.ApiModelProperty(value = "补贴类型", name = "subsidyType")
private Integer subsidyType;


@Excel(name="商户管理员(核销人)姓名",width = 50) @Excel(name="商户管理员(核销人)姓名",width = 50)
@io.swagger.annotations.ApiModelProperty(value="b端用户姓名",name="bUserName") @io.swagger.annotations.ApiModelProperty(value="b端用户姓名",name="bUserName")
@@ -88,10 +107,14 @@ public class WxCouponOrderBVo extends WxCouponOrder{
@Excel(name="商户管理员手机",width = 20) @Excel(name="商户管理员手机",width = 20)
@io.swagger.annotations.ApiModelProperty(value="b端用户手机号",name="bUserPhone") @io.swagger.annotations.ApiModelProperty(value="b端用户手机号",name="bUserPhone")
private String bUserPhone; private String bUserPhone;
@Excel(name="使用券商户名",width = 50)
@Excel(name = "商户名", width = 50, orderNum = "3")
@io.swagger.annotations.ApiModelProperty(value="使用券商户名",name="merchantName") @io.swagger.annotations.ApiModelProperty(value="使用券商户名",name="merchantName")
private String merchantName; private String merchantName;


@Excel(name = "商铺号", width = 50, orderNum = "4")
@Transient
private String shopNumber;

/**发券商户信息*/ /**发券商户信息*/
@io.swagger.annotations.ApiModelProperty(value="商户列表",name="merchantVoList") @io.swagger.annotations.ApiModelProperty(value="商户列表",name="merchantVoList")
private List<WxMerchantVo> merchantVoList; private List<WxMerchantVo> merchantVoList;
@@ -102,12 +125,30 @@ public class WxCouponOrderBVo extends WxCouponOrder{
@Transient @Transient
private Date endDate; private Date endDate;


@Transient
private Long merchantId;

@Transient
private Date verifyStartDate;

@Transient
private Date verifyEndDate;

@Transient @Transient
private Long couponId; private Long couponId;
@Transient @Transient
private Integer couponType; private Integer couponType;


@Override
@Transient
private Integer floor;
@Transient
private Integer building;

@Excel(name = "楼层楼座", width = 50, orderNum = "12")
@Transient
private String buildingStr;

@Override
public Long getCouponId() { public Long getCouponId() {
return couponId; return couponId;
} }


+ 2
- 3
mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java Wyświetl plik

@@ -152,9 +152,6 @@ public interface WxCouponOrderService {


ResultData detailAdminVo(Long couponOrderId); ResultData detailAdminVo(Long couponOrderId);


void exportData(HttpServletRequest request, HttpServletResponse response, WxCouponOrderBVo wxCouponOrder);

/** /**
* 日期分组 消费总数 * 日期分组 消费总数
* @param tenantId * @param tenantId
@@ -190,4 +187,6 @@ public interface WxCouponOrderService {


ResultData queryCardStatus(WxCouponOrder wxCouponOrder); ResultData queryCardStatus(WxCouponOrder wxCouponOrder);


void exportData(WxCouponOrderBVo wxCouponOrder, HttpServletRequest request, HttpServletResponse response);

} }

+ 20
- 6
mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java Wyświetl plik

@@ -20,7 +20,6 @@ import com.iformall.exception.MallinkException;
import com.iformall.mapper.*; import com.iformall.mapper.*;
import com.iformall.mq.MqBaseProducer; import com.iformall.mq.MqBaseProducer;
import com.iformall.service.*; import com.iformall.service.*;
import com.iformall.utils.DateUtils;
import com.iformall.utils.PayUtils; import com.iformall.utils.PayUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
@@ -272,12 +271,27 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService {
} }


@Override @Override
public void exportData(HttpServletRequest request, HttpServletResponse response, WxCouponOrderBVo wxCouponOrder) {
WxMall wxMall = new WxMall();
wxMall.setTenantId(wxCouponOrder.getTenantId());
wxMall = wxMallMapper.findList(wxMall).get(0);
String filename = wxMall.getName() + DateUtils.getSystemTime("yyyyMMDDHHmmss");
public void exportData(WxCouponOrderBVo wxCouponOrder, HttpServletRequest request, HttpServletResponse response) {
String filename = "券订单";
List<WxCouponOrderBVo> list = wxCouponOrderMapper.findListOfAdmin(wxCouponOrder); List<WxCouponOrderBVo> list = wxCouponOrderMapper.findListOfAdmin(wxCouponOrder);
list.parallelStream().forEach(c -> {
if (!c.getMerchantId().equals(0L)) {
List<WxMerchantVo> merchantVoList = c.getMerchantVoList();
if (!merchantVoList.isEmpty()) {
StringBuffer shopNumber = new StringBuffer();
StringBuffer building = new StringBuffer();
WxMerchantVo wxMerchantVo = merchantVoList.get(0);
List<WxShopVo> shopVoList = wxMerchantVo.getShopVoList();
for (int j = 0, s_size = shopVoList.size(); j < s_size; j++) {
WxShopVo wxShopVo = shopVoList.get(j);
shopNumber.append(wxShopVo.getShopNumber()).append(";");
building.append(wxShopVo.getBuildingName()).append(wxShopVo.getFloorName()).append(";");
}
c.setShopNumber(shopNumber.toString());
c.setBuildingStr(building.toString());
}
}
});
excelService.exportExcel(list, null, filename, WxCouponOrderBVo.class, filename + ".xlsx", response, false); excelService.exportExcel(list, null, filename, WxCouponOrderBVo.class, filename + ".xlsx", response, false);
} }




+ 39
- 7
mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml Wyświetl plik

@@ -360,19 +360,24 @@
<result column="create_date" jdbcType="TIMESTAMP" property="createDate" /> <result column="create_date" jdbcType="TIMESTAMP" property="createDate" />
<result column="update_date" jdbcType="TIMESTAMP" property="updateDate" /> <result column="update_date" jdbcType="TIMESTAMP" property="updateDate" />
<result column="coupon_price" jdbcType="INTEGER" property="couponPrice" /> <result column="coupon_price" jdbcType="INTEGER" property="couponPrice" />

<result column="merchant_id" jdbcType="BIGINT" property="merchantId"/>
<result column="type" jdbcType="INTEGER" property="type" /> <result column="type" jdbcType="INTEGER" property="type" />
<result column="title" jdbcType="VARCHAR" property="title" /> <result column="title" jdbcType="VARCHAR" property="title" />
<result column="sale_price" jdbcType="INTEGER" property="salePrice" /> <result column="sale_price" jdbcType="INTEGER" property="salePrice" />
<result column="use_price" jdbcType="INTEGER" property="usePrice" /> <result column="use_price" jdbcType="INTEGER" property="usePrice" />
<result column="price" jdbcType="INTEGER" property="price" /> <result column="price" jdbcType="INTEGER" property="price" />
<result column="auto_refund" jdbcType="INTEGER" property="autoRefund" /> <result column="auto_refund" jdbcType="INTEGER" property="autoRefund" />

<result column="business" jdbcType="INTEGER" property="business"/>
<result column="subsidy_sum" jdbcType="INTEGER" property="subsidySum"/>
<result column="subsidy_type" jdbcType="INTEGER" property="subsidyType"/>
<result column="name" jdbcType="VARCHAR" property="bUserName" /> <result column="name" jdbcType="VARCHAR" property="bUserName" />
<result column="bphone" jdbcType="VARCHAR" property="bUserPhone" /> <result column="bphone" jdbcType="VARCHAR" property="bUserPhone" />
<result column="phone" jdbcType="VARCHAR" property="cUserPhone" /> <result column="phone" jdbcType="VARCHAR" property="cUserPhone" />
<result column="merchant_name" jdbcType="VARCHAR" property="merchantName" /> <result column="merchant_name" jdbcType="VARCHAR" property="merchantName" />
<collection column="{productId=coupon_id}" property="merchantVoList" <collection column="{productId=coupon_id}" property="merchantVoList"
ofType="com.iformall.domain.vo.WxMerchantVo" ofType="com.iformall.domain.vo.WxMerchantVo"
javaType="java.util.List" javaType="java.util.List"
@@ -382,15 +387,18 @@


<sql id="allAdminCouponOrderListColumns"> <sql id="allAdminCouponOrderListColumns">
co.id,co.tenant_id,co.coupon_id,co.coupon_type,co.expired_time,co.coupon_order_status,co.create_date,co.update_date,co.coupon_price, co.id,co.tenant_id,co.coupon_id,co.coupon_type,co.expired_time,co.coupon_order_status,co.create_date,co.update_date,co.coupon_price,
c.title,c.sale_price,c.use_price,c.price,c.unit,c.auto_refund,
c.title,c.sale_price,c.use_price,c.price,c.unit,c.auto_refund,c.business,c.subsidy_type,c.subsidy_sum,
(case when com.mc=1 then (case when com.mc=1 then
(select m.name from wx_merchant m, wx_coupon_merchant cm (select m.name from wx_merchant m, wx_coupon_merchant cm
where m.id = cm.merchant_id and cm.product_id=co.coupon_id and cm.status = 0) else '[多商户通用]' end) as merchant_name
where m.id = cm.merchant_id and cm.product_id=co.coupon_id and cm.status = 0) else '[多商户通用]' end) as merchant_name,
case when com.mc = 1 then (select m.id from wx_merchant m,
wx_coupon_merchant cm where m.id = cm.merchant_id and cm.product_id = co.coupon_id
and cm.status = 0) else 0 end) as merchant_id
</sql> </sql>


<sql id="allAdminCouponOrderDetailColumns"> <sql id="allAdminCouponOrderDetailColumns">
co.id,co.tenant_id,co.coupon_id,co.coupon_type,co.c_user_id,co.owner_id,co.b_user_id,co.order_id,co.expired_time,co.coupon_order_status,co.create_date,co.update_date,co.coupon_price, co.id,co.tenant_id,co.coupon_id,co.coupon_type,co.c_user_id,co.owner_id,co.b_user_id,co.order_id,co.expired_time,co.coupon_order_status,co.create_date,co.update_date,co.coupon_price,
c.type,c.title,c.sale_price,c.use_price,c.price,c.unit,c.auto_refund,
c.type,c.title,c.sale_price,c.use_price,c.price,c.unit,c.auto_refund,c.business,c.subsidy_type,c.subsidy_sum,
bu.name, bu.phone as bphone, bu.name, bu.phone as bphone,
cu.phone, cu.phone,
m.name as merchant_name m.name as merchant_name
@@ -443,13 +451,37 @@
AND co.create_date &lt; #{endDate,jdbcType=TIMESTAMP} AND co.create_date &lt; #{endDate,jdbcType=TIMESTAMP}
</if> </if>
<if test="verifyStartDate != null">
AND co.update_date &gt; #{verifyStartDate,jdbcType=TIMESTAMP}
</if>
<if test="verifyEndDate != null">
AND co.update_date &lt; #{verifyEndDate,jdbcType=TIMESTAMP}
</if>
<if test=" null != id "> <if test=" null != id ">
and co.id = #{id} and co.id = #{id}
</if> </if>
<if test=" null != couponId "> <if test=" null != couponId ">
and c.id = #{couponId} and c.id = #{couponId}
</if> </if>
<if test=" null != business ">
and c.business = #{business}
</if>
<if test="null!=building">
and co.coupon_id in(
select cm.product_id from wx_merchant_shop ms left join wx_merchant m on ms.merchant_id=m.id
left join wx_shop s on ms.shop_id=s.id
left join wx_coupon_merchant cm on ms.merchant_id=cm.merchant_id
where ms.is_del=0 and s.building=#{building}
<if test=" null != tenantId ">
and ms.tenant_id=#{tenant_id}
</if>
<if test="null!=floor">
and s.floor=#{floor}
</if>
)
</if>
<if test=" null != sortColumns"> order by ${sortColumns} </if> <if test=" null != sortColumns"> order by ${sortColumns} </if>
<if test=" null == sortColumns"> order by id desc </if> <if test=" null == sortColumns"> order by id desc </if>


Ładowanie…
Anuluj
Zapisz