Browse Source

盲票导入导出(未完)

guanglong 3 years ago
parent
commit
1f77c60bbf

+ 63 - 2
mp-admin/src/main/java/com/qs/mp/web/controller/api/admin/TicketBoxMgrController.java

@@ -5,21 +5,28 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.qs.mp.admin.domain.Ticket;
 import com.qs.mp.admin.domain.Ticket;
 import com.qs.mp.admin.domain.TicketBox;
 import com.qs.mp.admin.domain.TicketBox;
+import com.qs.mp.admin.domain.excel.TicketExcel;
+import com.qs.mp.admin.domain.param.BathIdParam;
 import com.qs.mp.admin.domain.param.TicketBoxCreateParam;
 import com.qs.mp.admin.domain.param.TicketBoxCreateParam;
 import com.qs.mp.admin.service.ITicketBoxService;
 import com.qs.mp.admin.service.ITicketBoxService;
+import com.qs.mp.admin.service.ITicketService;
 import com.qs.mp.channel.domain.Channel;
 import com.qs.mp.channel.domain.Channel;
 import com.qs.mp.channel.domain.param.ChannelParam;
 import com.qs.mp.channel.domain.param.ChannelParam;
 import com.qs.mp.channel.domain.vo.ChannelVO;
 import com.qs.mp.channel.domain.vo.ChannelVO;
 import com.qs.mp.channel.service.IChannelService;
 import com.qs.mp.channel.service.IChannelService;
 import com.qs.mp.channel.service.IChannelUserRelService;
 import com.qs.mp.channel.service.IChannelUserRelService;
+import com.qs.mp.common.annotation.Log;
 import com.qs.mp.common.constant.UserConstants;
 import com.qs.mp.common.constant.UserConstants;
 import com.qs.mp.common.core.domain.AjaxResult;
 import com.qs.mp.common.core.domain.AjaxResult;
 import com.qs.mp.common.core.page.TableDataInfo;
 import com.qs.mp.common.core.page.TableDataInfo;
+import com.qs.mp.common.enums.BusinessType;
 import com.qs.mp.common.enums.ChannelRoleEnum;
 import com.qs.mp.common.enums.ChannelRoleEnum;
 import com.qs.mp.common.enums.ErrorCodeEnum;
 import com.qs.mp.common.enums.ErrorCodeEnum;
 import com.qs.mp.common.enums.TicketTypeEnum;
 import com.qs.mp.common.enums.TicketTypeEnum;
 import com.qs.mp.common.utils.LogUtil;
 import com.qs.mp.common.utils.LogUtil;
+import com.qs.mp.system.domain.SysUser;
 import com.qs.mp.system.service.ISysUserService;
 import com.qs.mp.system.service.ISysUserService;
+import com.qs.mp.utils.ExcelUtil;
 import com.qs.mp.web.controller.common.BaseApiController;
 import com.qs.mp.web.controller.common.BaseApiController;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
@@ -30,12 +37,15 @@ import java.util.Map;
 import ma.glasnost.orika.MapperFacade;
 import ma.glasnost.orika.MapperFacade;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
 
 
 /**
 /**
  * @auther zhongcp
  * @auther zhongcp
@@ -58,8 +68,10 @@ public class TicketBoxMgrController extends BaseApiController {
 	private ISysUserService userService;
 	private ISysUserService userService;
 
 
 	@Autowired
 	@Autowired
-	private MapperFacade mapperFacade;
+	private ITicketService ticketService;
 
 
+	@Autowired
+	private MapperFacade mapperFacade;
 
 
 	/**
 	/**
 	 * 查询所有盲票组列表
 	 * 查询所有盲票组列表
@@ -75,6 +87,7 @@ public class TicketBoxMgrController extends BaseApiController {
 
 
 	/**
 	/**
 	 * 新增盲票
 	 * 新增盲票
+	 * 
 	 * @param
 	 * @param
 	 * @return
 	 * @return
 	 */
 	 */
@@ -82,7 +95,7 @@ public class TicketBoxMgrController extends BaseApiController {
 	@PostMapping("/create")
 	@PostMapping("/create")
 	public AjaxResult create(@Validated @RequestBody TicketBoxCreateParam param) {
 	public AjaxResult create(@Validated @RequestBody TicketBoxCreateParam param) {
 		if (param.getType() == TicketTypeEnum.OFFLINE) {
 		if (param.getType() == TicketTypeEnum.OFFLINE) {
-			if (param.getPkgSalePrice() == null || param.getPkgSalePrice() == 0 ) {
+			if (param.getPkgSalePrice() == null || param.getPkgSalePrice() == 0) {
 				return AjaxResult.error("采购单价必须大于0");
 				return AjaxResult.error("采购单价必须大于0");
 			}
 			}
 			if (param.getPkgUnit() == null || param.getPkgUnit() == 0) {
 			if (param.getPkgUnit() == null || param.getPkgUnit() == 0) {
@@ -93,4 +106,52 @@ public class TicketBoxMgrController extends BaseApiController {
 		return rtn ? AjaxResult.success() : AjaxResult.error("创建失败");
 		return rtn ? AjaxResult.success() : AjaxResult.error("创建失败");
 	}
 	}
 
 
+	@Log(title = "盲票导出", businessType = BusinessType.EXPORT)
+	@PostMapping("/export")
+	public AjaxResult exportTicket(@RequestBody BathIdParam ids) {
+		if (null == ids || null == ids.getIds() || ids.getIds().size() == 0) {
+			return AjaxResult.error("请选择需要导出的盲票组");
+		}
+		LambdaQueryWrapper<Ticket> queryWrapper = new LambdaQueryWrapper<Ticket>();
+		queryWrapper.in(Ticket::getBoxId, ids.getIds());
+		List<Ticket> list = ticketService.list(queryWrapper);
+		if (null == list || list.size() == 0) {
+			return AjaxResult.error("选择的盲票组中没有可导出的数据");
+		}
+		List<TicketExcel> excelList = new ArrayList<TicketExcel>();
+		for (Ticket ticket : list) {
+			if (null != ticket && StringUtils.isNotBlank(ticket.getSerialNo())
+					&& StringUtils.isNotBlank(ticket.getDrawNum())
+					&& StringUtils.isNotBlank(ticket.getCipherLuckyNum())) {
+				TicketExcel ticketExcel = new TicketExcel();
+				ticketExcel.setSerialNo(ticket.getSerialNo());
+				ticketExcel.setUrl("http://wwww.baidu.com?no=" + ticket.getSerialNo());
+				ticketExcel.setDrawNum(ticket.getDrawNum());
+				ticketExcel.setCipherLuckyNum(ticket.getCipherLuckyNum());
+				excelList.add(ticketExcel);
+			}
+		}
+		ExcelUtil<TicketExcel> util = new ExcelUtil<TicketExcel>(TicketExcel.class);
+		return util.exportExcel(excelList, "用户数据", true);
+	}
+
+	@Log(title = "盲票导入", businessType = BusinessType.IMPORT)
+	@PostMapping("/importTicket")
+	public AjaxResult importTicket(MultipartFile file, boolean updateSupport) {
+		// 获取文件内的盲票数据列表
+		try {
+			ExcelUtil<TicketExcel> util = new ExcelUtil<TicketExcel>(TicketExcel.class);
+			List<TicketExcel> ticketExcelList = util.importExcel(file.getInputStream());
+			if(null == ticketExcelList || ticketExcelList.size() == 0) {
+				return AjaxResult.error("导入失败,选择的导入文件中没有有效的数据");
+			}
+			// 数据处理 TODO
+		} catch (Exception e) {
+			return AjaxResult.error("导入失败,请联系管理员");
+		}
+		
+        String message = "导入成功";
+		return AjaxResult.success(message);
+	}
+
 }
 }

+ 40 - 0
mp-service/src/main/java/com/qs/mp/admin/domain/excel/TicketExcel.java

@@ -0,0 +1,40 @@
+package com.qs.mp.admin.domain.excel;
+
+import com.qs.mp.common.annotation.Excel;
+
+import lombok.Data;
+
+/**
+ * @author zhongcp
+ * @Date 2022/3/7
+ */
+@Data
+public class TicketExcel {
+
+  /**
+   * 序列号
+   */
+  @Excel(name = "SERIAL_NO")
+  private String serialNo;
+  
+
+  /**
+   * URL
+   */
+  @Excel(name = "URL")
+  private String url;
+  
+  
+  /**
+   * 抽奖数字描述(json格式,包含数字、奖项)
+   */
+  @Excel(name = "DRAW_NUM")
+  private String drawNum;
+
+  /**
+   * 加密幸运数字
+   */
+  @Excel(name = "LUCKY_NUM")
+  private String cipherLuckyNum;
+
+}

+ 20 - 0
mp-service/src/main/java/com/qs/mp/admin/domain/param/BathIdParam.java

@@ -0,0 +1,20 @@
+package com.qs.mp.admin.domain.param;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.List;
+import lombok.Data;
+
+/**
+ * @describe 商铺表实体类
+ * @auther ygp
+ * @create 2021-09-03 22:45:37
+ */
+@Data
+@ApiModel("IDBO")
+public class BathIdParam {
+
+	@ApiModelProperty(value = "IDS")   
+	private List<String> ids;
+}