gqx 2 年 前
コミット
1b61cac92d
共有13 個のファイルを変更した511 個の追加4 個の削除を含む
  1. 1 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/BusMarketCouponsCashController.java
  2. 10 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/BusMarketMealCouponsController.java
  3. 209 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/BusMarketMealCouponsUsedController.java
  4. 108 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/BusMarketMealCouponsUsed.java
  5. 17 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/BusMarketMealCouponsUsedMapper.java
  6. 2 2
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/BusMarketMealCouponsMapper.xml
  7. 5 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/BusMarketMealCouponsUsedMapper.xml
  8. 9 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IBusMarketCouponsCashService.java
  9. 9 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IBusMarketMealCouponsService.java
  10. 22 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IBusMarketMealCouponsUsedService.java
  11. 20 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusMarketCouponsCashServiceImpl.java
  12. 21 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusMarketMealCouponsServiceImpl.java
  13. 78 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusMarketMealCouponsUsedServiceImpl.java

+ 1 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/BusMarketCouponsCashController.java

@@ -133,7 +133,7 @@ public class BusMarketCouponsCashController extends JeecgController<BusMarketCou
 	//@RequiresPermissions("business:bus_market_coupons_cash_info:delete")
 	@DeleteMapping(value = "/delete")
 	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
-		busMarketCouponsCashService.removeById(id);
+		busMarketCouponsCashService.removeCouponsAndCouponsUsedById(id);
 		return Result.OK("删除成功!");
 	}
 	

+ 10 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/BusMarketMealCouponsController.java

@@ -10,7 +10,10 @@ 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.BusMarketMealCoupons;
@@ -93,6 +96,12 @@ public class BusMarketMealCouponsController extends JeecgController<BusMarketMea
 	//@RequiresPermissions("business:bus_market_meal_coupons_info:add")
 	@PostMapping(value = "/add")
 	public Result<String> add(@RequestBody BusMarketMealCoupons busMarketMealCoupons) {
+		LoginUser user = TokenUtils.getAuthUser();
+		if (user.getRelTenantIds() != null && !user.getRelTenantIds().equals("")) {
+			busMarketMealCoupons.setTenantId(user.getRelTenantIds());
+		} else {
+			throw new JeecgBootException("当前登录人租户信息错误");
+		}
 		busMarketMealCouponsService.save(busMarketMealCoupons);
 		return Result.OK("添加成功!");
 	}
@@ -123,7 +132,7 @@ public class BusMarketMealCouponsController extends JeecgController<BusMarketMea
 	//@RequiresPermissions("business:bus_market_meal_coupons_info:delete")
 	@DeleteMapping(value = "/delete")
 	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
-		busMarketMealCouponsService.removeById(id);
+		busMarketMealCouponsService.removeCouponsAndCouponsUsedById(id);
 		return Result.OK("删除成功!");
 	}
 	

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

@@ -0,0 +1,209 @@
+package org.jeecg.modules.business.controller;
+
+import java.util.Arrays;
+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 org.jeecg.common.api.vo.Result;
+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.entity.BusMarketCoupons;
+import org.jeecg.modules.business.entity.BusMarketMealCoupons;
+import org.jeecg.modules.business.entity.BusMarketMealCouponsUsed;
+import org.jeecg.modules.business.enums.CouponsStatusEnum;
+import org.jeecg.modules.business.service.IBusMarketCouponsService;
+import org.jeecg.modules.business.service.IBusMarketMealCouponsService;
+import org.jeecg.modules.business.service.IBusMarketMealCouponsUsedService;
+
+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.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: bus_market_meal_coupons_used
+ * @Author: jeecg-boot
+ * @Date:   2023-03-14
+ * @Version: V1.0
+ */
+@Api(tags="bus_market_meal_coupons_used")
+@RestController
+@RequestMapping("/business/busMarketMealCouponsUsed")
+@Slf4j
+public class BusMarketMealCouponsUsedController extends JeecgController<BusMarketMealCouponsUsed, IBusMarketMealCouponsUsedService> {
+	@Autowired
+	private IBusMarketMealCouponsUsedService busMarketMealCouponsUsedService;
+	 @Autowired
+	 private IBusMarketMealCouponsService busMarketMealCouponsService;
+	/**
+	 * 分页列表查询
+	 *
+	 * @param busMarketMealCouponsUsed
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	//@AutoLog(value = "bus_market_meal_coupons_used-分页列表查询")
+	@ApiOperation(value="bus_market_meal_coupons_used-分页列表查询", notes="bus_market_meal_coupons_used-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<IPage<BusMarketMealCouponsUsed>> queryPageList(BusMarketMealCouponsUsed busMarketMealCouponsUsed,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<BusMarketMealCouponsUsed> queryWrapper = QueryGenerator.initQueryWrapper(busMarketMealCouponsUsed, req.getParameterMap());
+		Page<BusMarketMealCouponsUsed> page = new Page<BusMarketMealCouponsUsed>(pageNo, pageSize);
+		IPage<BusMarketMealCouponsUsed> pageList = busMarketMealCouponsUsedService.page(page, queryWrapper);
+		pageList.getRecords().forEach(item -> {
+			BusMarketMealCoupons coupons = busMarketMealCouponsService.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 busMarketMealCouponsUsed
+	 * @return
+	 */
+	@AutoLog(value = "bus_market_meal_coupons_used-添加")
+	@ApiOperation(value="bus_market_meal_coupons_used-添加", notes="bus_market_meal_coupons_used-添加")
+	//@RequiresPermissions("business:bus_market_meal_coupons_used:add")
+	@PostMapping(value = "/add")
+	public Result<String> add(@RequestBody BusMarketMealCouponsUsed busMarketMealCouponsUsed) {
+		busMarketMealCouponsUsedService.save(busMarketMealCouponsUsed);
+		return Result.OK("添加成功!");
+	}
+
+	 /**
+	  *   生成餐券
+	  *
+	  * @param dto
+	  * @return
+	  */
+	 @AutoLog(value = "餐券领取使用表-生成")
+	 @ApiOperation(value="餐券领取使用表-生成", notes="餐券领取使用表-生成")
+	 @PostMapping(value = "/generate")
+	 public Result<String> generate(@RequestBody CouponsGenerateDto dto) {
+		 Result res = busMarketMealCouponsUsedService.generate(dto);
+		 return res;
+	 }
+	
+	/**
+	 *  编辑
+	 *
+	 * @param busMarketMealCouponsUsed
+	 * @return
+	 */
+	@AutoLog(value = "bus_market_meal_coupons_used-编辑")
+	@ApiOperation(value="bus_market_meal_coupons_used-编辑", notes="bus_market_meal_coupons_used-编辑")
+	//@RequiresPermissions("business:bus_market_meal_coupons_used:edit")
+	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<String> edit(@RequestBody BusMarketMealCouponsUsed busMarketMealCouponsUsed) {
+		busMarketMealCouponsUsedService.updateById(busMarketMealCouponsUsed);
+		return Result.OK("编辑成功!");
+	}
+	
+	/**
+	 *   通过id删除
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "bus_market_meal_coupons_used-通过id删除")
+	@ApiOperation(value="bus_market_meal_coupons_used-通过id删除", notes="bus_market_meal_coupons_used-通过id删除")
+	//@RequiresPermissions("business:bus_market_meal_coupons_used:delete")
+	@DeleteMapping(value = "/delete")
+	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+		busMarketMealCouponsUsedService.removeById(id);
+		return Result.OK("删除成功!");
+	}
+	
+	/**
+	 *  批量删除
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "bus_market_meal_coupons_used-批量删除")
+	@ApiOperation(value="bus_market_meal_coupons_used-批量删除", notes="bus_market_meal_coupons_used-批量删除")
+	//@RequiresPermissions("business:bus_market_meal_coupons_used:deleteBatch")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		this.busMarketMealCouponsUsedService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.OK("批量删除成功!");
+	}
+	
+	/**
+	 * 通过id查询
+	 *
+	 * @param id
+	 * @return
+	 */
+	//@AutoLog(value = "bus_market_meal_coupons_used-通过id查询")
+	@ApiOperation(value="bus_market_meal_coupons_used-通过id查询", notes="bus_market_meal_coupons_used-通过id查询")
+	@GetMapping(value = "/queryById")
+	public Result<BusMarketMealCouponsUsed> queryById(@RequestParam(name="id",required=true) String id) {
+		BusMarketMealCouponsUsed busMarketMealCouponsUsed = busMarketMealCouponsUsedService.getById(id);
+		if(busMarketMealCouponsUsed==null) {
+			return Result.error("未找到对应数据");
+		}
+		return Result.OK(busMarketMealCouponsUsed);
+	}
+
+    /**
+    * 导出excel
+    *
+    * @param request
+    * @param busMarketMealCouponsUsed
+    */
+    //@RequiresPermissions("business:bus_market_meal_coupons_used:exportXls")
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, BusMarketMealCouponsUsed busMarketMealCouponsUsed) {
+        return super.exportXls(request, busMarketMealCouponsUsed, BusMarketMealCouponsUsed.class, "bus_market_meal_coupons_used");
+    }
+
+    /**
+      * 通过excel导入数据
+    *
+    * @param request
+    * @param response
+    * @return
+    */
+    //@RequiresPermissions("business:bus_market_meal_coupons_used:importExcel")
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+        return super.importExcel(request, response, BusMarketMealCouponsUsed.class);
+    }
+
+}

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

@@ -0,0 +1,108 @@
+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: bus_market_meal_coupons_used
+ * @Author: jeecg-boot
+ * @Date:   2023-03-14
+ * @Version: V1.0
+ */
+@Data
+@TableName("bus_market_meal_coupons_used")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="bus_market_meal_coupons_used对象", description="bus_market_meal_coupons_used")
+public class BusMarketMealCouponsUsed 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 HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+	/**发放时间*/
+	@Excel(name = "发放时间", width = 15, format = "yyyy-MM-dd HH:mm:ss")
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "发放时间")
+    private Date gainTime;
+	/**核销时间*/
+	@Excel(name = "核销时间", width = 15, format = "yyyy-MM-dd HH:mm:ss")
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "核销时间")
+    private Date usedTime;
+	/**核销人*/
+	@Excel(name = "核销人", width = 15)
+    @ApiModelProperty(value = "核销人")
+    private String usedUserId;
+	/**发放人*/
+	@Excel(name = "发放人", width = 15)
+    @ApiModelProperty(value = "发放人")
+    private String gainUserId;
+
+    @TableField(exist = false)
+    private String conponsName;
+
+    @TableField(exist = false)
+    private String statusName;
+}

+ 17 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/BusMarketMealCouponsUsedMapper.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.BusMarketMealCouponsUsed;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: bus_market_meal_coupons_used
+ * @Author: jeecg-boot
+ * @Date:   2023-03-14
+ * @Version: V1.0
+ */
+public interface BusMarketMealCouponsUsedMapper extends BaseMapper<BusMarketMealCouponsUsed> {
+
+}

+ 2 - 2
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/BusMarketMealCouponsMapper.xml

@@ -2,13 +2,13 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.jeecg.modules.business.mapper.BusMarketMealCouponsMapper">
     <select id="getMealCouponsList" parameterType="Object" resultType="org.jeecg.modules.business.entity.BusMarketMealCoupons">
-        select c.*,ifnull(u.count,0) as count,ifnull(u.not_claimed,0) as not_claimed,ifnull(u.received,0) as received,ifnull(u.used,0) as used,ifnull(u.voided,0) as voided,cmc.name as type_name from bus_market_coupons_cash_info c
+        select c.*,ifnull(u.count,0) as count,ifnull(u.not_claimed,0) as not_claimed,ifnull(u.received,0) as received,ifnull(u.used,0) as used,ifnull(u.voided,0) as voided,cmc.name as type_name from bus_market_meal_coupons_info c
         left join (select coupons_id,count(0) as count
         ,SUM(CASE WHEN `status`  = 0 then 1 else 0 end) as not_claimed
         ,SUM(CASE WHEN `status`  = 1 then 1 else 0 end) as received
         ,SUM(CASE WHEN `status`  = 2 then 1 else 0 end) as used
         ,SUM(CASE WHEN `status`  = 3 then 1 else 0 end) as voided
-        from bus_market_coupons_cash_used  group by coupons_id) u
+        from bus_market_meal_coupons_used  group by coupons_id) u
         on u.coupons_id=c.id
         left join ces_meal_coupon cmc on cmc.id=c.type
         where c.hotel_id = #{busMarketMealCoupons.hotelId}

+ 5 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/BusMarketMealCouponsUsedMapper.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.BusMarketMealCouponsUsedMapper">
+
+</mapper>

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

@@ -2,6 +2,7 @@ package org.jeecg.modules.business.service;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.apache.ibatis.annotations.Param;
+import org.jeecg.common.api.vo.Result;
 import org.jeecg.modules.business.entity.BusMarketCoupons;
 import org.jeecg.modules.business.entity.BusMarketCouponsCash;
 import com.baomidou.mybatisplus.extension.service.IService;
@@ -14,4 +15,12 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface IBusMarketCouponsCashService extends IService<BusMarketCouponsCash> {
     public Page<BusMarketCouponsCash> pageList(Page<BusMarketCouponsCash> page, @Param("busMarketCouponsCash") BusMarketCouponsCash model);
+
+
+    /**
+     * 删除活动及其券记录
+     * @param id
+     * @return
+     */
+    public Result removeCouponsAndCouponsUsedById(String id);
 }

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

@@ -1,6 +1,7 @@
 package org.jeecg.modules.business.service;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.jeecg.common.api.vo.Result;
 import org.jeecg.modules.business.entity.BusMarketMealCoupons;
 import com.baomidou.mybatisplus.extension.service.IService;
 
@@ -12,4 +13,12 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface IBusMarketMealCouponsService extends IService<BusMarketMealCoupons> {
     public Page<BusMarketMealCoupons> pageList(Page<BusMarketMealCoupons> page, BusMarketMealCoupons model);
+
+
+    /**
+     * 删除活动及其券记录
+     * @param id
+     * @return
+     */
+    public Result removeCouponsAndCouponsUsedById(String id);
 }

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

@@ -0,0 +1,22 @@
+package org.jeecg.modules.business.service;
+
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.modules.business.dto.CouponsGenerateDto;
+import org.jeecg.modules.business.entity.BusMarketMealCouponsUsed;
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * @Description: bus_market_meal_coupons_used
+ * @Author: jeecg-boot
+ * @Date:   2023-03-14
+ * @Version: V1.0
+ */
+public interface IBusMarketMealCouponsUsedService extends IService<BusMarketMealCouponsUsed> {
+    /**
+     * 生成餐券领取使用
+     * @param dto
+     * @return
+     */
+    public Result generate(CouponsGenerateDto dto) ;
+}

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

@@ -1,14 +1,19 @@
 package org.jeecg.modules.business.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.jeecg.common.api.vo.Result;
 import org.jeecg.modules.business.entity.BusMarketCoupons;
 import org.jeecg.modules.business.entity.BusMarketCouponsCash;
+import org.jeecg.modules.business.entity.BusMarketCouponsCashUsed;
+import org.jeecg.modules.business.entity.BusMarketCouponsUsed;
 import org.jeecg.modules.business.mapper.BusMarketCouponsCashMapper;
 import org.jeecg.modules.business.mapper.BusMarketCouponsMapper;
 import org.jeecg.modules.business.service.IBusMarketCouponsCashService;
 import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 
@@ -22,8 +27,23 @@ import javax.annotation.Resource;
 public class BusMarketCouponsCashServiceImpl extends ServiceImpl<BusMarketCouponsCashMapper, BusMarketCouponsCash> implements IBusMarketCouponsCashService {
     @Resource
     private BusMarketCouponsCashMapper busMarketCouponsCashMapper;
+    @Resource
+    private BusMarketCouponsCashUsedServiceImpl busMarketCouponsCashUsedService;
 
     public Page<BusMarketCouponsCash> pageList(Page<BusMarketCouponsCash> page, BusMarketCouponsCash model) {
         return page.setRecords(busMarketCouponsCashMapper.getCouponsCashList(page, model));
     }
+
+    /**
+     * 删除活动及其券记录
+     * @param id
+     * @return
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public Result removeCouponsAndCouponsUsedById(String id) {
+        this.removeById(id);
+        LambdaQueryWrapper<BusMarketCouponsCashUsed> queryWrapper = new LambdaQueryWrapper<BusMarketCouponsCashUsed>().eq(BusMarketCouponsCashUsed::getCouponsId, id);
+        busMarketCouponsCashUsedService.remove(queryWrapper);
+        return Result.ok("删除成功!");
+    }
 }

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

@@ -1,14 +1,19 @@
 package org.jeecg.modules.business.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.jeecg.common.api.vo.Result;
 import org.jeecg.modules.business.entity.BusMarketCoupons;
+import org.jeecg.modules.business.entity.BusMarketCouponsUsed;
 import org.jeecg.modules.business.entity.BusMarketMealCoupons;
+import org.jeecg.modules.business.entity.BusMarketMealCouponsUsed;
 import org.jeecg.modules.business.mapper.BusMarketCouponsMapper;
 import org.jeecg.modules.business.mapper.BusMarketMealCouponsMapper;
 import org.jeecg.modules.business.service.IBusMarketMealCouponsService;
 import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 
@@ -22,7 +27,23 @@ import javax.annotation.Resource;
 public class BusMarketMealCouponsServiceImpl extends ServiceImpl<BusMarketMealCouponsMapper, BusMarketMealCoupons> implements IBusMarketMealCouponsService {
     @Resource
     private BusMarketMealCouponsMapper busMarketMealCouponsMapper;
+    @Resource
+    private BusMarketMealCouponsUsedServiceImpl busMarketMealCouponsUsedService;
+
     public Page<BusMarketMealCoupons> pageList(Page<BusMarketMealCoupons> page, BusMarketMealCoupons model) {
         return page.setRecords(busMarketMealCouponsMapper.getMealCouponsList(page, model));
     }
+
+    /**
+     * 删除活动及其券记录
+     * @param id
+     * @return
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public Result removeCouponsAndCouponsUsedById(String id) {
+        this.removeById(id);
+        LambdaQueryWrapper<BusMarketMealCouponsUsed> queryWrapper = new LambdaQueryWrapper<BusMarketMealCouponsUsed>().eq(BusMarketMealCouponsUsed::getCouponsId, id);
+        busMarketMealCouponsUsedService.remove(queryWrapper);
+        return Result.ok("删除成功!");
+    }
 }

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

@@ -0,0 +1,78 @@
+package org.jeecg.modules.business.service.impl;
+
+import cn.hutool.core.date.DateTime;
+import org.apache.commons.lang3.ObjectUtils;
+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.BusMarketCouponsCash;
+import org.jeecg.modules.business.entity.BusMarketCouponsCashUsed;
+import org.jeecg.modules.business.entity.BusMarketMealCoupons;
+import org.jeecg.modules.business.entity.BusMarketMealCouponsUsed;
+import org.jeecg.modules.business.mapper.BusMarketCouponsCashMapper;
+import org.jeecg.modules.business.mapper.BusMarketMealCouponsMapper;
+import org.jeecg.modules.business.mapper.BusMarketMealCouponsUsedMapper;
+import org.jeecg.modules.business.service.IBusMarketMealCouponsUsedService;
+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.util.ArrayList;
+import java.util.List;
+import java.util.Random;
+import java.util.UUID;
+
+/**
+ * @Description: bus_market_meal_coupons_used
+ * @Author: jeecg-boot
+ * @Date:   2023-03-14
+ * @Version: V1.0
+ */
+@Service
+public class BusMarketMealCouponsUsedServiceImpl extends ServiceImpl<BusMarketMealCouponsUsedMapper, BusMarketMealCouponsUsed> implements IBusMarketMealCouponsUsedService {
+    @Resource
+    private BusMarketMealCouponsMapper busMarketMealCouponsMapper;
+    /**
+     * 生成16位数字+prefix
+     * @param prefix
+     * @return
+     */
+    private String randomNumber(String prefix) {
+        int first = new Random(10).nextInt(8) + 1;
+        int hashCode = UUID.randomUUID().toString().hashCode();
+        if (hashCode < 0) {
+            hashCode = -hashCode;
+        }
+        return prefix + first + String.format("%015d", hashCode);
+    }
+    /**
+     * 生成餐券领取使用
+     * @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!");
+        BusMarketMealCoupons coupons = busMarketMealCouponsMapper.selectById(dto.getCouponsId());
+        if (ObjectUtils.isEmpty(coupons)) {
+            return Result.error("餐券活动不存在");
+        }
+        List<BusMarketMealCouponsUsed> busMarketMealCouponsUsedList = new ArrayList<>();
+        while (dto.getNum() > 0) {
+            BusMarketMealCouponsUsed busMarketMealCouponsUsed = new BusMarketMealCouponsUsed();
+            busMarketMealCouponsUsed.setTenantId(TokenUtils.currentTenantId());
+            busMarketMealCouponsUsed.setHotelId(coupons.getHotelId());
+            busMarketMealCouponsUsed.setCouponsId(dto.getCouponsId());
+            busMarketMealCouponsUsed.setCode(randomNumber("CJ"));
+            busMarketMealCouponsUsed.setStatus(0);
+            busMarketMealCouponsUsed.setCreateTime(DateTime.now());
+            busMarketMealCouponsUsedList.add(busMarketMealCouponsUsed);
+            dto.setNum(dto.getNum() - 1);
+        }
+        this.saveBatch(busMarketMealCouponsUsedList);
+        return Result.ok("创建成功");
+    }
+}