gqx vor 2 Jahren
Ursprung
Commit
b4e39e60d8
14 geänderte Dateien mit 620 neuen und 9 gelöschten Zeilen
  1. 23 3
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/BusMarketCouponsController.java
  2. 2 2
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/BusMarketCouponsEventDetailController.java
  3. 238 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/BusMarketCouponsUsedController.java
  4. 11 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/dto/CouponsGenerateDto.java
  5. 11 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/dto/PostDataDto.java
  6. 5 4
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/BusMarketCoupons.java
  7. 100 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/BusMarketCouponsUsed.java
  8. 59 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/enums/CouponsStatusEnum.java
  9. 17 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/BusMarketCouponsUsedMapper.java
  10. 5 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/BusMarketCouponsUsedMapper.xml
  11. 8 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IBusMarketCouponsService.java
  12. 29 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IBusMarketCouponsUsedService.java
  13. 28 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusMarketCouponsServiceImpl.java
  14. 84 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusMarketCouponsUsedServiceImpl.java

+ 23 - 3
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/BusMarketCouponsController.java

@@ -10,9 +10,15 @@ import java.net.URLDecoder;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.exception.JeecgBootException;
 import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.common.util.TokenUtils;
 import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.business.entity.BusHotel;
 import org.jeecg.modules.business.entity.BusMarketCoupons;
+import org.jeecg.modules.business.enums.CouponsEventEnum;
+import org.jeecg.modules.business.service.IBusHotelService;
 import org.jeecg.modules.business.service.IBusMarketCouponsService;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -50,7 +56,8 @@ import org.apache.shiro.authz.annotation.RequiresPermissions;
 public class BusMarketCouponsController extends JeecgController<BusMarketCoupons, IBusMarketCouponsService> {
 	@Autowired
 	private IBusMarketCouponsService busMarketCouponsService;
-	
+	 @Autowired
+	 private IBusHotelService busHotelService;
 	/**
 	 * 分页列表查询
 	 *
@@ -70,6 +77,14 @@ public class BusMarketCouponsController extends JeecgController<BusMarketCoupons
 		QueryWrapper<BusMarketCoupons> queryWrapper = QueryGenerator.initQueryWrapper(busMarketCoupons, req.getParameterMap());
 		Page<BusMarketCoupons> page = new Page<BusMarketCoupons>(pageNo, pageSize);
 		IPage<BusMarketCoupons> pageList = busMarketCouponsService.page(page, queryWrapper);
+		if (pageList.getSize() > 0) {
+			pageList.getRecords().forEach(item -> {
+				BusHotel hotle = busHotelService.getById(item.getHotelId());
+				if (hotle != null) {
+					item.setHotelName(hotle.getName());
+				}
+			});
+		}
 		return Result.OK(pageList);
 	}
 	
@@ -84,6 +99,12 @@ public class BusMarketCouponsController extends JeecgController<BusMarketCoupons
 	//@RequiresPermissions("business:bus_market_coupons_info:add")
 	@PostMapping(value = "/add")
 	public Result<String> add(@RequestBody BusMarketCoupons busMarketCoupons) {
+		LoginUser user = TokenUtils.getAuthUser();
+		if (user.getRelTenantIds() != null && !user.getRelTenantIds().equals("")) {
+			busMarketCoupons.setTenantId(user.getRelTenantIds());
+		} else {
+			throw new JeecgBootException("当前登录人租户信息错误");
+		}
 		busMarketCouponsService.save(busMarketCoupons);
 		return Result.OK("添加成功!");
 	}
@@ -114,8 +135,7 @@ public class BusMarketCouponsController extends JeecgController<BusMarketCoupons
 	//@RequiresPermissions("business:bus_market_coupons_info:delete")
 	@DeleteMapping(value = "/delete")
 	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
-		busMarketCouponsService.removeById(id);
-		return Result.OK("删除成功!");
+		return busMarketCouponsService.removeCouponsAndCouponsUsedById(id);
 	}
 	
 	/**

+ 2 - 2
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/BusMarketCouponsEventDetailController.java

@@ -91,13 +91,13 @@ public class BusMarketCouponsEventDetailController extends JeecgController<BusMa
 				if (busMarketMember != null) {
 					item.setLevelName(busMarketMember.getName());
 				}
-				if(item.getType()==1) {
+				if(item.getType()==3) {
 					BusMarketCoupons busMarketCoupons = busMarketCouponsService.getById(item.getCouponsCashId());
 					if(busMarketCoupons!=null){
 						item.setCouponsName(busMarketCoupons.getName());
 					}
 				}
-				else if(item.getType()==3) {
+				else if(item.getType()==1) {
 					BusMarketCouponsCash busMarketCouponsCash = busMarketCouponsCashService.getById(item.getCouponsCashId());
 					if(busMarketCouponsCash!=null){
 						item.setCouponsName(busMarketCouponsCash.getName());

+ 238 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/BusMarketCouponsUsedController.java

@@ -0,0 +1,238 @@
+package org.jeecg.modules.business.controller;
+
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.constant.CommonConstant;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.business.dto.CouponsGenerateDto;
+import org.jeecg.modules.business.dto.PostDataDto;
+import org.jeecg.modules.business.entity.BusHotel;
+import org.jeecg.modules.business.entity.BusMarketCoupons;
+import org.jeecg.modules.business.entity.BusMarketCouponsUsed;
+import org.jeecg.modules.business.enums.CouponsEventEnum;
+import org.jeecg.modules.business.enums.CouponsStatusEnum;
+import org.jeecg.modules.business.service.IBusHotelService;
+import org.jeecg.modules.business.service.IBusMarketCouponsService;
+import org.jeecg.modules.business.service.IBusMarketCouponsUsedService;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+
+import org.jeecg.modules.system.entity.SysAnnouncementSend;
+import org.jeecg.modules.system.entity.SysUser;
+import org.jeecgframework.poi.excel.ExcelImportUtil;
+import org.jeecgframework.poi.excel.def.NormalExcelConstants;
+import org.jeecgframework.poi.excel.entity.ExportParams;
+import org.jeecgframework.poi.excel.entity.ImportParams;
+import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+import org.springframework.web.servlet.ModelAndView;
+import com.alibaba.fastjson.JSON;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+
+ /**
+ * @Description: 免房券领取使用表
+ * @Author: jeecg-boot
+ * @Date:   2023-03-09
+ * @Version: V1.0
+ */
+@Api(tags="免房券领取使用表")
+@RestController
+@RequestMapping("/business/busMarketCouponsUsed")
+@Slf4j
+public class BusMarketCouponsUsedController extends JeecgController<BusMarketCouponsUsed, IBusMarketCouponsUsedService> {
+	@Autowired
+	private IBusMarketCouponsUsedService busMarketCouponsUsedService;
+	 @Autowired
+	 private IBusMarketCouponsService busMarketCouponsService;
+	/**
+	 * 分页列表查询
+	 *
+	 * @param busMarketCouponsUsed
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	//@AutoLog(value = "免房券领取使用表-分页列表查询")
+	@ApiOperation(value="免房券领取使用表-分页列表查询", notes="免房券领取使用表-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<IPage<BusMarketCouponsUsed>> queryPageList(BusMarketCouponsUsed busMarketCouponsUsed,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<BusMarketCouponsUsed> queryWrapper = QueryGenerator.initQueryWrapper(busMarketCouponsUsed, req.getParameterMap());
+		Page<BusMarketCouponsUsed> page = new Page<BusMarketCouponsUsed>(pageNo, pageSize);
+		IPage<BusMarketCouponsUsed> pageList = busMarketCouponsUsedService.page(page, queryWrapper);
+		if (pageList.getSize() > 0) {
+			pageList.getRecords().forEach(item -> {
+				BusMarketCoupons coupons = busMarketCouponsService.getById(item.getCouponsId());
+				if (coupons != null) {
+					item.setConponsName(coupons.getName());
+				}
+				CouponsStatusEnum couponsStatusEnum = CouponsStatusEnum.val(item.getStatus());
+				if (couponsStatusEnum != null) {
+					item.setStatusName(couponsStatusEnum.getTitle());
+				}
+			});
+		}
+		return Result.OK(pageList);
+	}
+	
+	/**
+	 *   添加
+	 *
+	 * @param busMarketCouponsUsed
+	 * @return
+	 */
+	@AutoLog(value = "免房券领取使用表-添加")
+	@ApiOperation(value="免房券领取使用表-添加", notes="免房券领取使用表-添加")
+	//@RequiresPermissions("business:bus_market_coupons_used:add")
+	@PostMapping(value = "/add")
+	public Result<String> add(@RequestBody BusMarketCouponsUsed busMarketCouponsUsed) {
+		busMarketCouponsUsedService.save(busMarketCouponsUsed);
+		return Result.OK("添加成功!");
+	}
+
+	 /**
+	  *   生成免房券
+	  *
+	  * @param dto
+	  * @return
+	  */
+	 @AutoLog(value = "免房券领取使用表-生成")
+	 @ApiOperation(value="免房券领取使用表-生成", notes="免房券领取使用表-生成")
+	 //@RequiresPermissions("business:bus_market_coupons_used:generate")
+	 @PostMapping(value = "/generate")
+	 public Result<String> generate(@RequestBody CouponsGenerateDto dto) {
+		 Result res = busMarketCouponsUsedService.generate(dto);
+		 return res;
+	 }
+
+	 /**
+	  * 作废
+	  * @param dto
+	  * @return
+	  */
+	 @AutoLog(value = "免房券领取使用表-作废")
+	 @ApiOperation(value="免房券领取使用表-作废", notes="免房券领取使用表-作废")
+	 //@RequiresPermissions("business:bus_market_coupons_used:edit")
+	 @RequestMapping(value = "/voided", method = {RequestMethod.PUT,RequestMethod.POST})
+	 public Result<String> voided(@RequestBody PostDataDto dto) {
+		 LambdaUpdateWrapper<BusMarketCouponsUsed> updateWrapper = new UpdateWrapper().lambda();
+		 updateWrapper.set(BusMarketCouponsUsed::getStatus, CouponsStatusEnum.voided.getKey());
+		 updateWrapper.eq(BusMarketCouponsUsed::getId, dto.getId());
+		 busMarketCouponsUsedService.update(updateWrapper);
+		 return Result.OK("编辑成功!");
+	 }
+	
+	/**
+	 *  编辑
+	 *
+	 * @param busMarketCouponsUsed
+	 * @return
+	 */
+	@AutoLog(value = "免房券领取使用表-编辑")
+	@ApiOperation(value="免房券领取使用表-编辑", notes="免房券领取使用表-编辑")
+	//@RequiresPermissions("business:bus_market_coupons_used:edit")
+	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<String> edit(@RequestBody BusMarketCouponsUsed busMarketCouponsUsed) {
+		busMarketCouponsUsedService.updateById(busMarketCouponsUsed);
+		return Result.OK("编辑成功!");
+	}
+	
+	/**
+	 *   通过id删除
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "免房券领取使用表-通过id删除")
+	@ApiOperation(value="免房券领取使用表-通过id删除", notes="免房券领取使用表-通过id删除")
+	//@RequiresPermissions("business:bus_market_coupons_used:delete")
+	@DeleteMapping(value = "/delete")
+	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+		busMarketCouponsUsedService.removeById(id);
+		return Result.OK("删除成功!");
+	}
+	
+	/**
+	 *  批量删除
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "免房券领取使用表-批量删除")
+	@ApiOperation(value="免房券领取使用表-批量删除", notes="免房券领取使用表-批量删除")
+	//@RequiresPermissions("business:bus_market_coupons_used:deleteBatch")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		this.busMarketCouponsUsedService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.OK("批量删除成功!");
+	}
+	
+	/**
+	 * 通过id查询
+	 *
+	 * @param id
+	 * @return
+	 */
+	//@AutoLog(value = "免房券领取使用表-通过id查询")
+	@ApiOperation(value="免房券领取使用表-通过id查询", notes="免房券领取使用表-通过id查询")
+	@GetMapping(value = "/queryById")
+	public Result<BusMarketCouponsUsed> queryById(@RequestParam(name="id",required=true) String id) {
+		BusMarketCouponsUsed busMarketCouponsUsed = busMarketCouponsUsedService.getById(id);
+		if(busMarketCouponsUsed==null) {
+			return Result.error("未找到对应数据");
+		}
+		return Result.OK(busMarketCouponsUsed);
+	}
+
+    /**
+    * 导出excel
+    *
+    * @param request
+    * @param busMarketCouponsUsed
+    */
+    //@RequiresPermissions("business:bus_market_coupons_used:exportXls")
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, BusMarketCouponsUsed busMarketCouponsUsed) {
+        return super.exportXls(request, busMarketCouponsUsed, BusMarketCouponsUsed.class, "免房券领取使用表");
+    }
+
+    /**
+      * 通过excel导入数据
+    *
+    * @param request
+    * @param response
+    * @return
+    */
+    //@RequiresPermissions("business:bus_market_coupons_used:importExcel")
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+        return super.importExcel(request, response, BusMarketCouponsUsed.class);
+    }
+
+}

+ 11 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/dto/CouponsGenerateDto.java

@@ -0,0 +1,11 @@
+package org.jeecg.modules.business.dto;
+
+import lombok.Data;
+
+@Data
+public class CouponsGenerateDto {
+    private String couponsId;
+    private Integer num;
+
+}
+

+ 11 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/dto/PostDataDto.java

@@ -0,0 +1,11 @@
+package org.jeecg.modules.business.dto;
+
+import lombok.Data;
+
+
+
+@Data
+public class PostDataDto {
+    private String id;
+
+}

+ 5 - 4
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/BusMarketCoupons.java

@@ -4,10 +4,8 @@ import java.io.Serializable;
 import java.io.UnsupportedEncodingException;
 import java.util.Date;
 import java.math.BigDecimal;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.annotation.TableLogic;
+
+import com.baomidou.mybatisplus.annotation.*;
 import lombok.Data;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -84,4 +82,7 @@ public class BusMarketCoupons implements Serializable {
 	@Excel(name = "使用说明", width = 15)
     @ApiModelProperty(value = "使用说明")
     private String ruleDec;
+
+    @TableField(exist = false)
+    private String hotelName;
 }

+ 100 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/BusMarketCouponsUsed.java

@@ -0,0 +1,100 @@
+package org.jeecg.modules.business.entity;
+
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
+import java.util.Date;
+import java.math.BigDecimal;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.jeecg.common.aspect.annotation.Dict;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * @Description: 免房券领取使用表
+ * @Author: jeecg-boot
+ * @Date:   2023-03-09
+ * @Version: V1.0
+ */
+@Data
+@TableName("bus_market_coupons_used")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="bus_market_coupons_used对象", description="免房券领取使用表")
+public class BusMarketCouponsUsed implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**主键*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "主键")
+    private String id;
+	/**关联租户*/
+	@Excel(name = "关联租户", width = 15)
+    @ApiModelProperty(value = "关联租户")
+    private String tenantId;
+	/**关联酒店*/
+	@Excel(name = "关联酒店", width = 15)
+    @ApiModelProperty(value = "关联酒店")
+    private String hotelId;
+	/**免房券id*/
+	@Excel(name = "免房券id", width = 15)
+    @ApiModelProperty(value = "免房券id")
+    private String couponsId;
+	/**券号*/
+	@Excel(name = "券号", width = 15)
+    @ApiModelProperty(value = "券号")
+    private String code;
+	/**状态 0未领取 1已领取 2已使用 3已作废*/
+	@Excel(name = "状态 0未领取 1已领取 2已使用 3已作废", width = 15)
+    @ApiModelProperty(value = "状态 0未领取 1已领取 2已使用 3已作废")
+    private Integer status;
+	/**会员id*/
+	@Excel(name = "会员id", width = 15)
+    @ApiModelProperty(value = "会员id")
+    private String userid;
+	/**姓名*/
+	@Excel(name = "姓名", width = 15)
+    @ApiModelProperty(value = "姓名")
+    private String userName;
+	/**房间号*/
+	@Excel(name = "房间号", width = 15)
+    @ApiModelProperty(value = "房间号")
+    private String roomNumber;
+	/**入住单号*/
+	@Excel(name = "入住单号", width = 15)
+    @ApiModelProperty(value = "入住单号")
+    private String checkedInNo;
+	/**手机号*/
+	@Excel(name = "手机号", width = 15)
+    @ApiModelProperty(value = "手机号")
+    private String mobile;
+	/**创建时间*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+	/**领取时间*/
+	@Excel(name = "领取时间", width = 15, format = "yyyy-MM-dd")
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "领取时间")
+    private Date gainTime;
+	/**使用时间*/
+	@Excel(name = "使用时间", width = 15, format = "yyyy-MM-dd")
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "使用时间")
+    private Date usedTime;
+
+    @TableField(exist = false)
+    private String conponsName;
+
+    @TableField(exist = false)
+    private String statusName;
+}

+ 59 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/enums/CouponsStatusEnum.java

@@ -0,0 +1,59 @@
+package org.jeecg.modules.business.enums;
+
+import org.jeecg.common.system.annotation.EnumDict;
+import org.jeecg.common.system.vo.DictModel;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+@EnumDict("couponsStatusEnum")
+public enum CouponsStatusEnum {
+
+    notClaimed(0, "未领取"),
+    received(1, "已领取"),
+    used(2, "已使用"),
+    voided(3, "已作废");
+
+    Integer key;
+
+    String title;
+
+    CouponsStatusEnum(Integer key, String title){
+        this.key = key;
+        this.title = title;
+    }
+    public Integer getKey() {
+        return key;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    /**
+     * 获取字典数据
+     * @return
+     */
+    public static List<DictModel> getDictList(){
+        List<DictModel> list = new ArrayList<>();
+        DictModel dictModel = null;
+        for(CouponsStatusEnum e: CouponsStatusEnum.values()){
+            dictModel = new DictModel();
+            dictModel.setValue(e.key.toString());
+            dictModel.setText(e.title);
+            list.add(dictModel);
+        }
+        return list;
+    }
+
+    public static CouponsStatusEnum val(Integer key){
+        for(CouponsStatusEnum bld: values()){
+            if(bld.key == key){
+                return bld;
+            }
+        }
+        return null;
+    }
+
+}

+ 17 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/BusMarketCouponsUsedMapper.java

@@ -0,0 +1,17 @@
+package org.jeecg.modules.business.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.business.entity.BusMarketCouponsUsed;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: 免房券领取使用表
+ * @Author: jeecg-boot
+ * @Date:   2023-03-09
+ * @Version: V1.0
+ */
+public interface BusMarketCouponsUsedMapper extends BaseMapper<BusMarketCouponsUsed> {
+
+}

+ 5 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/BusMarketCouponsUsedMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.demo.business.mapper.BusMarketCouponsUsedMapper">
+
+</mapper>

+ 8 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IBusMarketCouponsService.java

@@ -1,7 +1,9 @@
 package org.jeecg.modules.business.service;
 
+import org.jeecg.common.api.vo.Result;
 import org.jeecg.modules.business.entity.BusMarketCoupons;
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * @Description: bus_market_coupons_info
@@ -11,4 +13,10 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface IBusMarketCouponsService extends IService<BusMarketCoupons> {
 
+    /**
+     * 删除活动及其优惠券记录
+     * @param id
+     * @return
+     */
+    public Result removeCouponsAndCouponsUsedById(String id);
 }

+ 29 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IBusMarketCouponsUsedService.java

@@ -0,0 +1,29 @@
+package org.jeecg.modules.business.service;
+
+import cn.hutool.core.bean.BeanUtil;
+import org.jeecg.common.Enum.CouponEnums;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.modules.business.dto.CouponsGenerateDto;
+import org.jeecg.modules.business.entity.BusMarketCouponsUsed;
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.rooms.DTO.CesRoomLayoutMemberInfoPriceDto;
+import org.jeecg.modules.rooms.DTO.CesRoomLayoutPriceDto;
+import org.jeecg.modules.rooms.entity.CesRoomLayoutMemberPrice;
+import org.jeecg.modules.rooms.entity.CesRoomLayoutPrice;
+import org.jeecg.modules.rooms.mapper.CesRoomLayoutPriceMapper;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Description: 免房券领取使用表
+ * @Author: jeecg-boot
+ * @Date:   2023-03-09
+ * @Version: V1.0
+ */
+public interface IBusMarketCouponsUsedService extends IService<BusMarketCouponsUsed> {
+    public Result generate(CouponsGenerateDto dto);
+}

+ 28 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusMarketCouponsServiceImpl.java

@@ -1,11 +1,22 @@
 package org.jeecg.modules.business.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.modules.business.dto.CouponsGenerateDto;
 import org.jeecg.modules.business.entity.BusMarketCoupons;
+import org.jeecg.modules.business.entity.BusMarketCouponsUsed;
 import org.jeecg.modules.business.mapper.BusMarketCouponsMapper;
+import org.jeecg.modules.business.mapper.BusMarketCouponsUsedMapper;
 import org.jeecg.modules.business.service.IBusMarketCouponsService;
+import org.jeecg.modules.system.entity.SysDepartRolePermission;
+import org.jeecg.modules.system.entity.SysDepartRoleUser;
 import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
 
 /**
  * @Description: bus_market_coupons_info
@@ -16,4 +27,21 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 @Service
 public class BusMarketCouponsServiceImpl extends ServiceImpl<BusMarketCouponsMapper, BusMarketCoupons> implements IBusMarketCouponsService {
 
+    @Resource
+    private BusMarketCouponsUsedServiceImpl busMarketCouponsUsedService;
+
+
+    /**
+     * 删除活动及其优惠券记录
+     * @param id
+     * @return
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public Result removeCouponsAndCouponsUsedById(String id) {
+        this.removeById(id);
+        LambdaQueryWrapper<BusMarketCouponsUsed> queryWrapper = new LambdaQueryWrapper<BusMarketCouponsUsed>().eq(BusMarketCouponsUsed::getCouponsId, id);
+        busMarketCouponsUsedService.remove(queryWrapper);
+        return Result.ok("删除成功!");
+    }
+
 }

+ 84 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusMarketCouponsUsedServiceImpl.java

@@ -0,0 +1,84 @@
+package org.jeecg.modules.business.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.date.DateTime;
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.apache.commons.lang3.ObjectUtils;
+import org.jeecg.common.Enum.CouponEnums;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.util.TokenUtils;
+import org.jeecg.modules.business.dto.CouponsGenerateDto;
+import org.jeecg.modules.business.entity.BusMarketCoupons;
+import org.jeecg.modules.business.entity.BusMarketCouponsUsed;
+import org.jeecg.modules.business.mapper.BusMarketCouponsMapper;
+import org.jeecg.modules.business.mapper.BusMarketCouponsUsedMapper;
+import org.jeecg.modules.business.service.IBusMarketCouponsService;
+import org.jeecg.modules.business.service.IBusMarketCouponsUsedService;
+import org.jeecg.modules.rooms.DTO.CesRoomLayoutMemberInfoPriceDto;
+import org.jeecg.modules.rooms.entity.CesRoomLayoutMemberPrice;
+import org.jeecg.modules.rooms.entity.CesRoomLayoutPrice;
+import org.jeecg.modules.rooms.mapper.CesRoomLayoutPriceMapper;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Description: 免房券领取使用表
+ * @Author: jeecg-boot
+ * @Date:   2023-03-09
+ * @Version: V1.0
+ */
+@Service
+public class BusMarketCouponsUsedServiceImpl extends ServiceImpl<BusMarketCouponsUsedMapper, BusMarketCouponsUsed> implements IBusMarketCouponsUsedService {
+    @Resource
+    private BusMarketCouponsUsedMapper busMarketCouponsUsedMapper;
+
+    @Resource
+    private BusMarketCouponsMapper busMarketCouponsMapper;
+
+    private String randomNumber(String prefix) {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSSS");
+        String number = sdf.format(System.currentTimeMillis());
+
+        //补充一个三位随机数
+        int x = (int) (Math.random() * 900) + 100;
+        String serialNumber = prefix + number + x;
+        return serialNumber;
+    }
+
+    /**
+     * 生成免房券领取使用
+     * @param dto
+     * @return
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public Result generate(CouponsGenerateDto dto){
+        if(ObjectUtils.isEmpty(dto.getCouponsId())) return Result.error("免房券id不能为空");
+        if(dto.getNum()<=0) return Result.error("生成数量不能小于1!");
+       BusMarketCoupons coupons=busMarketCouponsMapper .selectById(dto.getCouponsId());
+        if(ObjectUtils.isEmpty(coupons)) {
+           return Result.error("免房券活动不存在");
+       }
+        List<BusMarketCouponsUsed> busMarketCouponsUsedList = new ArrayList<>();
+        while (dto.getNum()>0){
+            BusMarketCouponsUsed busMarketCouponsUsed =new BusMarketCouponsUsed();
+            busMarketCouponsUsed.setTenantId(TokenUtils.currentTenantId());
+            busMarketCouponsUsed.setHotelId(coupons.getHotelId());
+            busMarketCouponsUsed.setCouponsId(dto.getCouponsId());
+            busMarketCouponsUsed.setCode(randomNumber("MFJ"));
+            busMarketCouponsUsed.setStatus(0);
+            busMarketCouponsUsed.setCreateTime(DateTime.now());
+            busMarketCouponsUsedList.add(busMarketCouponsUsed);
+            dto.setNum(dto.getNum()-1);
+        }
+        this.saveBatch(busMarketCouponsUsedList);
+        return Result.ok("创建成功");
+    }
+}