diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponPasswordController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponPasswordController.java index acb8e8d46..ff5a3582d 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponPasswordController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponPasswordController.java @@ -1,5 +1,6 @@ package com.iformall.controller.market; +import com.alibaba.fastjson.JSONArray; import com.github.pagehelper.PageInfo; import com.iformall.annotation.SystemControllerLog; import com.iformall.annotation.TenantIgnore; @@ -31,8 +32,13 @@ import java.io.BufferedInputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; +import java.util.Map; import java.util.concurrent.TimeUnit; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -159,6 +165,12 @@ public class WxCouponPasswordController extends BaseController { return new ResultData(); } + @TenantIgnore + @RequestMapping("/exportTemplate") + public void exportTemplate(HttpServletRequest request, HttpServletResponse response) { + wxCouponPasswordService.exportTemplate(request, response); + } + @TenantIgnore @PostMapping(value = "/importPrice", consumes = "multipart/*") @SystemControllerLog(description = "消费卡批量导入面额") @@ -237,10 +249,43 @@ public class WxCouponPasswordController extends BaseController { } } - asyncTask.importExcelData(lFile, user, importKey); + asyncTask.importCardPriceData(lFile, user, importKey); return new ResultData(Result.SUCCESS, "模板正在导入"); } + @TenantIgnore + @GetMapping("/queryTemplateCount") + public ResultData queryTemplateCount() { + String importKey = Constant.importCardPrice + getUser().getId(); + Map entries = stringRedisTemplate.opsForHash().entries(importKey); + if (entries.size() < 4) { + entries.clear(); + return new ResultData(Result.SUCCESS, "ok", entries); + } + String allCount = entries.get("allCount").toString(); + String allSuccessCount = entries.get("allSuccessCount").toString(); + String processCount = entries.get("processCount").toString(); + String failCount = entries.get("failCount").toString(); + + if (StringUtils.isNotBlank(failCount) && allCount.equals(failCount)) {//stringRedisTemplate.expire(userId,1,TimeUnit.SECONDS); + //完全失败 + stringRedisTemplate.opsForHash().delete(importKey, "allCount"); + stringRedisTemplate.opsForHash().delete(importKey, "allSuccessCount"); + stringRedisTemplate.opsForHash().delete(importKey, "processCount"); + stringRedisTemplate.opsForHash().delete(importKey, "failCount"); + return new ResultData(ErrorCode.MEM_IMPORT_ERR); + } + //导入完成 + if (StringUtils.isNotBlank(allSuccessCount) && allSuccessCount.equals(processCount)) { + ResultData ok = new ResultData(Result.SUCCESS, "ok", entries); + stringRedisTemplate.opsForHash().delete(importKey, "allCount"); + stringRedisTemplate.opsForHash().delete(importKey, "allSuccessCount"); + stringRedisTemplate.opsForHash().delete(importKey, "processCount"); + stringRedisTemplate.opsForHash().delete(importKey, "failCount"); + return ok; + } + return new ResultData(Result.SUCCESS, "查询成功", entries); + } } diff --git a/mallinkService/src/main/java/com/iformall/service/WxCouponPasswordService.java b/mallinkService/src/main/java/com/iformall/service/WxCouponPasswordService.java index c5feac64a..d6bc9541a 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCouponPasswordService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCouponPasswordService.java @@ -82,5 +82,6 @@ public interface WxCouponPasswordService { void setPrice(WxCouponPassword wxCouponPassword); + void exportTemplate(HttpServletRequest request, HttpServletResponse response); void importPrice(MallUserInfo user,String importKey, WxCardPriceTemplate template); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponPasswordServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponPasswordServiceImpl.java index 69f415f54..c63c4048e 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponPasswordServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponPasswordServiceImpl.java @@ -16,6 +16,7 @@ import com.iformall.domain.po.base.TenantEntity; import com.iformall.enums.EnumCouponOrderStatus; import com.iformall.enums.EnumCouponPasswordStatus; import com.iformall.enums.EnumYesOrNo; +import com.iformall.domain.vo.WxCUserBasicInfoVo; import com.iformall.domain.vo.WxCardPriceTemplate; import com.iformall.domain.vo.WxCouponOrderBVo; import com.iformall.domain.vo.WxCouponPasswordCountInfoVO; @@ -44,6 +45,7 @@ import javax.servlet.http.HttpServletResponse; import java.lang.reflect.InvocationTargetException; import java.math.BigDecimal; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; @@ -348,6 +350,27 @@ public class WxCouponPasswordServiceImpl implements WxCouponPasswordService { wxCouponPasswordMapper.setPrice(wxCouponPassword); } + @Override + public void exportTemplate(HttpServletRequest request, HttpServletResponse response) { + List list = new ArrayList<>(); + WxCardPriceTemplate u1 = new WxCardPriceTemplate(); + u1.setCouponPasswordId("791300030879526912"); + u1.setPrice("500"); + + WxCardPriceTemplate u2 = new WxCardPriceTemplate(); + u2.setCouponPasswordId("791300030879526913"); + u2.setPrice("500.3"); + + WxCardPriceTemplate u3 = new WxCardPriceTemplate(); + u3.setCouponPasswordId("791300030879526914"); + u3.setPrice("500.68"); + + list.add(u1); + list.add(u2); + list.add(u3); + excelService.exportExcel(list, null, "卡设置面额模板", WxCUserBasicInfoVo.class, "卡设置面额模板.xlsx", response, true); + } + @Override public void importPrice(MallUserInfo user,String importKey, WxCardPriceTemplate template) { if (StringUtils.isBlank(template.getCouponPasswordId())) { @@ -375,5 +398,7 @@ public class WxCouponPasswordServiceImpl implements WxCouponPasswordService { stringRedisTemplate.opsForHash().increment(importKey,"processCount",1); stringRedisTemplate.expire(importKey,10, TimeUnit.SECONDS); } + + }