diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/mem/WxCUserBasicInfoController.java b/mallinkAdmin/src/main/java/com/iformall/controller/mem/WxCUserBasicInfoController.java index 7b5e09d56..8215aad8c 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/mem/WxCUserBasicInfoController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/mem/WxCUserBasicInfoController.java @@ -11,10 +11,14 @@ import com.iformall.common.ResultData; import com.iformall.controller.base.BaseController; import com.iformall.domain.dto.WxCUserBasicInfoFilterDto; import com.iformall.domain.po.*; +import com.iformall.domain.vo.UserTradeRecordVo; import com.iformall.enums.EnumAssignTagsTrigger; +import com.iformall.enums.EnumCouponOrderStatus; +import com.iformall.enums.EnumCouponStatus; import com.iformall.exception.MallinkException; import com.iformall.service.*; import com.iformall.utils.Constant; +import com.iformall.utils.DateUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -33,6 +37,7 @@ import java.io.BufferedInputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -75,6 +80,9 @@ public class WxCUserBasicInfoController extends BaseController { @Autowired private AsyncTask asyncTask; + @Autowired + private ExcelService excelService; + private void setUserInfoLevel(WxCUserBasicInfo info) { if (info.getPoins() == null || info.getPoins() == 0) { @@ -241,6 +249,43 @@ public class WxCUserBasicInfoController extends BaseController { return new ResultData(Result.SUCCESS, "查询成功", page); } + @ApiOperation("导出根据userId查询交易记录接口") + @GetMapping("/exportOrderCouponByUserId") + @ApiImplicitParam(name = "userId", value = "userId", dataType = "Long", paramType = "query", required = true) + @SystemControllerLog(description = "会员管理-userId查询交易记录") + public void exportOrderCouponByUserId(HttpServletRequest request, HttpServletResponse response,Long userId) { + logger.debug("[" + getIpAddr() + "] WxCUserBasicInfoController::exportOrderCouponByUserId"); + WxCouponOrder corder = new WxCouponOrder(); + corder.setCUserId(userId); + corder.setTenantId(getTenantId()); + corder.setSortColumns(BaseEntity.SortField.CreateDate_DESC); + PageInfo page = wxCouponOrderService.listAsPage(corder, 1, Integer.MAX_VALUE); + if (page.getSize() > 0) { + List list = page.getList(); + for (WxCouponOrder c : list) { + WxCoupon coupon = wxCouponService.getById(c.getCouponId()); + c.setCouponName(coupon.getTitle()); + c.setSalePrice(coupon.getPrice()); + } + + List datalist = new ArrayList<>(); + for (WxCouponOrder wxCouponOrder:list) { + UserTradeRecordVo userTradeRecordVo = new UserTradeRecordVo(); + userTradeRecordVo.setCouponName(wxCouponOrder.getCouponName()); + BigDecimal b = new BigDecimal(wxCouponOrder.getSalePrice()); + userTradeRecordVo.setPrice(b.divide(new BigDecimal(100),2,BigDecimal.ROUND_HALF_UP).toString()); + b = new BigDecimal(wxCouponOrder.getCouponPrice()); + userTradeRecordVo.setSale(b.divide(new BigDecimal(100),2,BigDecimal.ROUND_HALF_UP).toString()); + userTradeRecordVo.setStatus(EnumCouponOrderStatus.getEnum(wxCouponOrder.getCouponOrderStatus()).getMessage()); + userTradeRecordVo.setTradeTime(DateUtils.formatDateTime(wxCouponOrder.getCreateDate())); + datalist.add(userTradeRecordVo); + } + excelService.exportExcel(datalist, null, "会员交易记录", UserTradeRecordVo.class, "会员交易记录.xlsx", response, false); + } + + + } + @ApiOperation("会员记录导出总数") @GetMapping("/exportDataCount") @SystemControllerLog(description = "会员管理-会员记录导出总数") diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxMerchant.java b/mallinkService/src/main/java/com/iformall/domain/po/WxMerchant.java index 5fd723c25..53c4c3efb 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxMerchant.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxMerchant.java @@ -131,6 +131,13 @@ public class WxMerchant extends BaseEntity { @io.swagger.annotations.ApiModelProperty(value = "结束时间", name = "endTime") private transient Date endtime; + @io.swagger.annotations.ApiModelProperty(value = "昵称", name = "userName") + private transient String userName; + @io.swagger.annotations.ApiModelProperty(value = "联系方式", name = "phone") + private transient String phone; + @io.swagger.annotations.ApiModelProperty(value = "卷名称", name = "couponName") + private transient String couponName; + public String getShopsStr() { if (shopVos != null && shopVos.size() > 0) { return String.join("\n", diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/UserTradeRecordVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/UserTradeRecordVo.java new file mode 100644 index 000000000..c23014fbc --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/vo/UserTradeRecordVo.java @@ -0,0 +1,24 @@ +package com.iformall.domain.vo; + +import cn.afterturn.easypoi.excel.annotation.Excel; +import lombok.Data; +import java.io.Serializable; + +@Data +public class UserTradeRecordVo implements Serializable{ + + private static final long serialVersionUID = 1L; + + @Excel(name="优惠券名称",width = 20,orderNum = "1") + private String couponName; + //@Excel(name="交易门店",width = 20,orderNum = "2") + private String shopName; + @Excel(name="价格",width = 20,orderNum = "2") + private String sale; + @Excel(name="面额",width = 20,orderNum = "3") + private String price; + @Excel(name="卷状态",width = 20,orderNum = "4") + private String status; + @Excel(name="交易时间",width = 20,orderNum = "5") + private String tradeTime; +} diff --git a/mallinkService/src/main/resources/mapper/WxMerchantMapper.xml b/mallinkService/src/main/resources/mapper/WxMerchantMapper.xml index a47dfdbe0..53dcdb3f9 100644 --- a/mallinkService/src/main/resources/mapper/WxMerchantMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxMerchantMapper.xml @@ -484,6 +484,16 @@ and cm.`merchant_id` = #{id} + + + and c.`nick_name` like concat('%', #{userName},'%') + + + and c.`phone` like concat('%', #{phone},'%') + + + and co.`title` like concat('%', #{couponName},'%') + order by o.create_date desc