|
@@ -5,21 +5,28 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.qs.mp.admin.domain.Ticket;
|
|
|
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.service.ITicketBoxService;
|
|
|
+import com.qs.mp.admin.service.ITicketService;
|
|
|
import com.qs.mp.channel.domain.Channel;
|
|
|
import com.qs.mp.channel.domain.param.ChannelParam;
|
|
|
import com.qs.mp.channel.domain.vo.ChannelVO;
|
|
|
import com.qs.mp.channel.service.IChannelService;
|
|
|
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.core.domain.AjaxResult;
|
|
|
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.ErrorCodeEnum;
|
|
|
import com.qs.mp.common.enums.TicketTypeEnum;
|
|
|
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.utils.ExcelUtil;
|
|
|
import com.qs.mp.web.controller.common.BaseApiController;
|
|
|
import io.swagger.annotations.Api;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
@@ -30,12 +37,15 @@ import java.util.Map;
|
|
|
import ma.glasnost.orika.MapperFacade;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.security.access.prepost.PreAuthorize;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
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.RequestBody;
|
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
+import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
/**
|
|
|
* @auther zhongcp
|
|
@@ -58,8 +68,10 @@ public class TicketBoxMgrController extends BaseApiController {
|
|
|
private ISysUserService userService;
|
|
|
|
|
|
@Autowired
|
|
|
- private MapperFacade mapperFacade;
|
|
|
+ private ITicketService ticketService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private MapperFacade mapperFacade;
|
|
|
|
|
|
/**
|
|
|
* 查询所有盲票组列表
|
|
@@ -75,6 +87,7 @@ public class TicketBoxMgrController extends BaseApiController {
|
|
|
|
|
|
/**
|
|
|
* 新增盲票
|
|
|
+ *
|
|
|
* @param
|
|
|
* @return
|
|
|
*/
|
|
@@ -82,7 +95,7 @@ public class TicketBoxMgrController extends BaseApiController {
|
|
|
@PostMapping("/create")
|
|
|
public AjaxResult create(@Validated @RequestBody TicketBoxCreateParam param) {
|
|
|
if (param.getType() == TicketTypeEnum.OFFLINE) {
|
|
|
- if (param.getPkgSalePrice() == null || param.getPkgSalePrice() == 0 ) {
|
|
|
+ if (param.getPkgSalePrice() == null || param.getPkgSalePrice() == 0) {
|
|
|
return AjaxResult.error("采购单价必须大于0");
|
|
|
}
|
|
|
if (param.getPkgUnit() == null || param.getPkgUnit() == 0) {
|
|
@@ -93,4 +106,52 @@ public class TicketBoxMgrController extends BaseApiController {
|
|
|
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);
|
|
|
+ }
|
|
|
+
|
|
|
}
|