Browse Source

Merge branch 'master' of http://49.4.53.36:3000/hotel/hotel-saas-backend

gqx 2 years ago
parent
commit
afed2f41b6
13 changed files with 776 additions and 0 deletions
  1. 8 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/DTO/CesGoodsDelDto.java
  2. 12 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/DTO/CesGoodsDto.java
  3. 11 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/DTO/CesGoodsSearchDto.java
  4. 13 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/Vo/CesGoodsVo.java
  5. 149 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/controller/CesGoodsController.java
  6. 216 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/entity/CesGoods.java
  7. 90 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/entity/CesGoodsSpecs.java
  8. 16 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/mapper/CesGoodsMapper.java
  9. 16 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/mapper/CesGoodsSpecsMapper.java
  10. 191 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/service/CesGoodsServiceImpl.java
  11. 26 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/service/CesGoodsSpecsServiceImpl.java
  12. 14 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/service/CesGoodsUnitServiceImpl.java
  13. 14 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/service/CesStockTypeServiceImpl.java

+ 8 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/DTO/CesGoodsDelDto.java

@@ -0,0 +1,8 @@
+package org.jeecg.modules.rooms.DTO;
+
+import lombok.Data;
+
+@Data
+public class CesGoodsDelDto {
+    private String idStr;
+}

+ 12 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/DTO/CesGoodsDto.java

@@ -0,0 +1,12 @@
+package org.jeecg.modules.rooms.DTO;
+
+import lombok.Data;
+import org.jeecg.modules.rooms.entity.CesGoods;
+import org.jeecg.modules.rooms.entity.CesGoodsSpecs;
+
+import java.util.List;
+
+@Data
+public class CesGoodsDto  extends CesGoods {
+    List<CesGoodsSpecs> specsList;
+}

+ 11 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/DTO/CesGoodsSearchDto.java

@@ -0,0 +1,11 @@
+package org.jeecg.modules.rooms.DTO;
+
+import lombok.Data;
+import org.jeecg.common.api.dto.BasePage;
+
+@Data
+public class CesGoodsSearchDto  extends BasePage {
+    private String search;
+
+    private String hotelId;
+}

+ 13 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/Vo/CesGoodsVo.java

@@ -0,0 +1,13 @@
+package org.jeecg.modules.rooms.Vo;
+
+import lombok.Data;
+import org.jeecg.modules.rooms.entity.CesGoods;
+
+@Data
+public class CesGoodsVo extends CesGoods {
+    private String hotelName;
+
+    private String typeName;
+
+    private String unitName;
+}

+ 149 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/controller/CesGoodsController.java

@@ -0,0 +1,149 @@
+package org.jeecg.modules.rooms.controller;
+
+
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.jeecg.common.Enum.ResultCode;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.modules.rooms.DTO.CesGoodsDelDto;
+import org.jeecg.modules.rooms.DTO.CesGoodsDto;
+import org.jeecg.modules.rooms.DTO.CesGoodsSearchDto;
+import org.jeecg.modules.rooms.DTO.CesGoodsUnitSearchDto;
+import org.jeecg.modules.rooms.service.CesGoodsServiceImpl;
+import org.springframework.web.bind.annotation.*;
+
+import org.springframework.stereotype.Controller;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+/**
+ * <p>
+ * 商品表 前端控制器
+ * </p>
+ *
+ * @author fendo
+ * @since 2023-03-13
+ */
+@Controller
+@RequestMapping("/rooms/cesGoods")
+public class CesGoodsController {
+
+    @Resource
+    private CesGoodsServiceImpl goodsService;
+
+    /***
+     * 查询
+     * @param dto
+     * @return
+     */
+    @ApiOperation(value="查询", notes="查询")
+    @GetMapping(value = "/list")
+    public Result list(CesGoodsSearchDto dto){
+        if(StringUtils.isBlank(dto.getHotelId())){
+            return Result.error(ResultCode.PARAM_MISS);
+        }
+        if(dto.getPageNo().intValue() <= 0){
+            return Result.error("页数不能小于等于0");
+        }
+        if(dto.getPageSize().intValue() < 10){
+            return Result.error("分页条数不能小于10");
+        }
+        try{
+            return goodsService.fetchList(dto);
+        }catch (Exception e){
+            return Result.error(e.getMessage());
+        }
+    }
+
+
+    @ApiOperation(value="创建", notes="创建")
+    @PostMapping(value = "/create")
+    public Result create(CesGoodsDto dto){
+        if(StringUtils.isBlank(dto.getHotelId())){
+            return Result.error(ResultCode.PARAM_MISS);
+        }
+        if(StringUtils.isBlank(dto.getGoodType())){
+            return Result.error(ResultCode.PARAM_MISS);
+        }
+        if(StringUtils.isBlank(dto.getGoodUnit())){
+            return Result.error(ResultCode.PARAM_MISS);
+        }
+        if(StringUtils.isBlank(dto.getBarCode())){
+            return Result.error(ResultCode.PARAM_MISS);
+        }
+        if(StringUtils.isBlank(dto.getName())){
+            return Result.error(ResultCode.PARAM_MISS);
+        }
+        if(StringUtils.isBlank(dto.getBid().toString())){
+            return Result.error(ResultCode.PARAM_MISS);
+        }
+        if(StringUtils.isBlank(dto.getSellingPrice().toString())){
+            return Result.error(ResultCode.PARAM_MISS);
+        }
+        if(dto.getPurchases().intValue() < 0){
+            return Result.error(ResultCode.PARAM_MISS);
+        }
+        if(dto.getSalesVolume().intValue() < 0){
+            return Result.error(ResultCode.PARAM_MISS);
+        }
+        if(dto.getInventory().intValue() < 0){
+            return Result.error(ResultCode.PARAM_MISS);
+        }
+        try{
+            return goodsService.create(dto);
+        }catch (Exception e){
+            return Result.error(e.getMessage());
+        }
+    }
+
+
+    @ApiOperation(value="修改", notes="修改")
+    @PutMapping(value = "/modify")
+    public Result modify(@RequestBody CesGoodsDto dto){
+        if(StringUtils.isBlank(dto.getHotelId())){
+            return Result.error(ResultCode.PARAM_MISS);
+        }
+        if(StringUtils.isBlank(dto.getId())){
+            return Result.error(ResultCode.PARAM_MISS);
+        }
+        try{
+            return goodsService.modify(dto);
+        }catch (Exception e){
+            return Result.error(e.getMessage());
+        }
+    }
+
+    @ApiOperation(value="删除", notes="删除")
+    @DeleteMapping(value = "/delete")
+    public Result delete(String id,String hotelId){
+        if(StringUtils.isBlank(hotelId)){
+            return Result.error(ResultCode.PARAM_MISS);
+        }
+        if(StringUtils.isBlank(id)){
+            return Result.error(ResultCode.PARAM_MISS);
+        }
+        try{
+            return goodsService.delete(id,hotelId);
+        }catch (Exception e){
+            return Result.error(e.getMessage());
+        }
+    }
+
+    @ApiOperation(value="删除", notes="删除")
+    @DeleteMapping(value = "/delBatch")
+    public Result delBatch(@RequestBody CesGoodsDelDto dto){
+        if(StringUtils.isBlank(dto.getIdStr())){
+            return Result.error(ResultCode.PARAM_MISS);
+        }
+        try{
+            List<String> ids = Stream.of(dto.getIdStr().split(",")).collect(Collectors.toList());
+            return goodsService.delBatch(ids);
+        }catch (Exception e){
+            return Result.error(e.getMessage());
+        }
+    }
+}
+

+ 216 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/entity/CesGoods.java

@@ -0,0 +1,216 @@
+package org.jeecg.modules.rooms.entity;
+
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 商品表
+ * </p>
+ *
+ * @author fendo
+ * @since 2023-03-13
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("ces_goods")
+public class CesGoods extends Model<CesGoods> {
+
+    private static final long serialVersionUID = 1L;
+
+    private String id;
+
+    /**
+     * 酒店ID
+     */
+    private String hotelId;
+
+    /**
+     * 商品大图
+     */
+    private String cover;
+
+    /**
+     * 商品图片
+     */
+    private String images;
+
+    /**
+     * 商品名称
+     */
+    private String name;
+
+    /**
+     * 商品口味IDS
+     */
+    private String foodTasteIds;
+
+    /**
+     * 加料IDs
+     */
+    private String reinforcedIds;
+
+    /**
+     * 是否捶打
+     */
+    private Boolean beat;
+
+    /**
+     * 是否记重
+     */
+    private Boolean weighDown;
+
+    /**
+     * 商品分类Id
+     */
+    private String goodType;
+
+    /**
+     * 商品单位
+     */
+    private String goodUnit;
+
+    /**
+     * 条码
+     */
+    private String barCode;
+
+    /**
+     * 进价
+     */
+    private BigDecimal bid;
+
+    /**
+     * 售价
+     */
+    private BigDecimal sellingPrice;
+
+    /**
+     * 进货量
+     */
+    private Integer purchases;
+
+    /**
+     * 销售量
+     */
+    private Integer salesVolume;
+
+    /**
+     * 库存量
+     */
+    private Integer inventory;
+
+    /**
+     * 排序
+     */
+    private Integer sort;
+
+    /**
+     * app是否上架 0 否 1是
+     */
+    private Boolean appState;
+
+    /**
+     * 能否储值卡
+     */
+    private Boolean canStoreCard;
+
+    /**
+     * 能否积分支付
+     */
+    private Boolean canIntegralPay;
+
+    /**
+     * 积分价格
+     */
+    private BigDecimal integralPrice;
+
+    /**
+     * 描述
+     */
+    private String remark;
+
+    /**
+     * 创建时间
+     */
+    @TableField("creatAt")
+    private LocalDateTime creatAt;
+
+    /**
+     * 修改时间
+     */
+    @TableField("updateAt")
+    private LocalDateTime updateAt;
+
+    /**
+     * 逻辑删除字段
+     */
+    private Boolean invalid;
+
+
+    public static final String ID = "id";
+
+    public static final String HOTEL_ID = "hotel_id";
+
+    public static final String COVER = "cover";
+
+    public static final String IMAGES = "images";
+
+    public static final String NAME = "name";
+
+    public static final String FOOD_TASTE_IDS = "food_taste_ids";
+
+    public static final String REINFORCED_IDS = "reinforced_ids";
+
+    public static final String BEAT = "beat";
+
+    public static final String WEIGH_DOWN = "weigh_down";
+
+    public static final String GOOD_TYPE = "good_type";
+
+    public static final String GOOD_UNIT = "good_unit";
+
+    public static final String BAR_CODE = "bar_code";
+
+    public static final String BID = "bid";
+
+    public static final String SELLING_PRICE = "selling_price";
+
+    public static final String PURCHASES = "purchases";
+
+    public static final String SALES_VOLUME = "sales_volume";
+
+    public static final String INVENTORY = "inventory";
+
+    public static final String SORT = "sort";
+
+    public static final String APP_STATE = "app_state";
+
+    public static final String CAN_STORE_CARD = "can_store_card";
+
+    public static final String CAN_INTEGRAL_PAY = "can_integral_pay";
+
+    public static final String INTEGRAL_PRICE = "integral_price";
+
+    public static final String REMARK = "remark";
+
+    public static final String CREATAT = "creatAt";
+
+    public static final String UPDATEAT = "updateAt";
+
+    public static final String INVALID = "invalid";
+
+    @Override
+    public Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 90 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/entity/CesGoodsSpecs.java

@@ -0,0 +1,90 @@
+package org.jeecg.modules.rooms.entity;
+
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 商品规格存储表
+ * </p>
+ *
+ * @author fendo
+ * @since 2023-03-13
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("ces_goods_specs")
+public class CesGoodsSpecs extends Model<CesGoodsSpecs> {
+
+    private static final long serialVersionUID = 1L;
+
+    private String id;
+
+    /**
+     * 酒店ID
+     */
+    private String hotelId;
+
+    /**
+     * 商品ID
+     */
+    private String goodId;
+
+    /**
+     * 规格名称
+     */
+    private String name;
+
+    /**
+     * 价格
+     */
+    private BigDecimal price;
+
+    /**
+     * 创建时间
+     */
+    @TableField("createAt")
+    private LocalDateTime createAt;
+
+    /**
+     * 修改时间
+     */
+    @TableField("updateAt")
+    private LocalDateTime updateAt;
+
+    /**
+     * 逻辑删除字段
+     */
+    private Boolean invalid;
+
+
+    public static final String ID = "id";
+
+    public static final String HOTEL_ID = "hotel_id";
+
+    public static final String GOOD_ID = "good_id";
+
+    public static final String NAME = "name";
+
+    public static final String PRICE = "price";
+
+    public static final String CREATEAT = "createAt";
+
+    public static final String UPDATEAT = "updateAt";
+
+    public static final String INVALID = "invalid";
+
+    @Override
+    public Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 16 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/mapper/CesGoodsMapper.java

@@ -0,0 +1,16 @@
+package org.jeecg.modules.rooms.mapper;
+
+import org.jeecg.modules.rooms.entity.CesGoods;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 商品表 Mapper 接口
+ * </p>
+ *
+ * @author fendo
+ * @since 2023-03-13
+ */
+public interface CesGoodsMapper extends BaseMapper<CesGoods> {
+
+}

+ 16 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/mapper/CesGoodsSpecsMapper.java

@@ -0,0 +1,16 @@
+package org.jeecg.modules.rooms.mapper;
+
+import org.jeecg.modules.rooms.entity.CesGoodsSpecs;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 商品规格存储表 Mapper 接口
+ * </p>
+ *
+ * @author fendo
+ * @since 2023-03-13
+ */
+public interface CesGoodsSpecsMapper extends BaseMapper<CesGoodsSpecs> {
+
+}

+ 191 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/service/CesGoodsServiceImpl.java

@@ -0,0 +1,191 @@
+package org.jeecg.modules.rooms.service;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.bean.copier.CopyOptions;
+import cn.hutool.core.collection.CollectionUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.apache.commons.collections.map.HashedMap;
+import org.apache.commons.lang3.ObjectUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.util.CommonUtils;
+import org.jeecg.modules.business.entity.BusHotel;
+import org.jeecg.modules.business.service.impl.BusHotelServiceImpl;
+import org.jeecg.modules.rooms.DTO.CesGoodsDelDto;
+import org.jeecg.modules.rooms.DTO.CesGoodsDto;
+import org.jeecg.modules.rooms.DTO.CesGoodsSearchDto;
+import org.jeecg.modules.rooms.Vo.CesGoodsVo;
+import org.jeecg.modules.rooms.Vo.CesRoomLayoutVo;
+import org.jeecg.modules.rooms.entity.CesGoods;
+import org.jeecg.modules.rooms.entity.CesGoodsUnit;
+import org.jeecg.modules.rooms.entity.CesStockType;
+import org.jeecg.modules.rooms.mapper.CesGoodsMapper;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ * 商品表 服务实现类
+ * </p>
+ *
+ * @author fendo
+ * @since 2023-03-13
+ */
+@Service
+public class CesGoodsServiceImpl extends ServiceImpl<CesGoodsMapper, CesGoods> implements IService<CesGoods> {
+    @Resource
+    private CesGoodsMapper goodsMapper;
+
+    @Resource
+    private BusHotelServiceImpl busHotelService;
+
+    @Resource
+    private CesStockTypeServiceImpl stockTypeService;
+
+    @Resource
+    private CesGoodsUnitServiceImpl goodsUnitService;
+
+
+    @Resource
+    private CesGoodsSpecsServiceImpl specsService;
+
+
+
+    /**
+     * 查询商品库存
+     * @param dto
+     * @return
+     */
+    public Result fetchList(CesGoodsSearchDto dto){
+        QueryWrapper<CesGoods> queryWrapper = new QueryWrapper<>();
+        if(!StringUtils.isBlank(dto.getSearch())){
+            String search = CommonUtils.escapeChar(dto.getSearch());
+            queryWrapper.like(CesGoods.BAR_CODE, search);
+            queryWrapper.like(CesGoods.NAME,search);
+        }
+        queryWrapper.eq(CesGoods.HOTEL_ID,dto.getHotelId());
+        queryWrapper.eq(CesGoods.INVALID,false);
+        queryWrapper.orderByDesc(CesGoods.CREATAT);
+
+        IPage<CesGoods> dataPage = goodsMapper.selectPage(new Page<>(dto.getPageNo().intValue(),dto .getPageSize().intValue()),queryWrapper);
+        List<CesGoods> result = dataPage.getRecords();
+        List<String> hotelIds = result.stream().map(v -> v.getHotelId()).collect(Collectors.toList());
+        List<BusHotel> hotels = busHotelService.findHotelsByIds(hotelIds);
+        List<String> typeIds = result.stream().map(v -> v.getGoodType()).collect(Collectors.toList());
+        List<CesStockType> typeList = stockTypeService.fetchByIds(typeIds);
+        List<String> unitIds = result.stream().map(v -> v.getGoodUnit()).collect(Collectors.toList());
+        List<CesGoodsUnit> unitList =  goodsUnitService.fetchByIds(unitIds);
+        List<CesGoodsVo> voList = new ArrayList<>();
+        result.forEach( v -> {
+            CesGoodsVo vo = new CesGoodsVo();
+            BeanUtil.copyProperties(v,vo);
+            Optional<BusHotel> busHotelOptional = hotels.stream().filter(c -> c.getId().equals(v.getHotelId())).findFirst();
+            if(busHotelOptional.isPresent()){
+                vo.setHotelName(busHotelOptional.get().getName());
+            }
+            Optional<CesStockType> typeOptional = typeList.stream().filter(c -> c.getId().equals(v.getGoodType())).findFirst();
+            if(typeOptional.isPresent()){
+                vo.setTypeName(typeOptional.get().getName());
+            }
+            Optional<CesGoodsUnit> unitOptional = unitList.stream().filter(c -> c.getId().equals(v.getGoodUnit())).findFirst();
+            if(unitOptional.isPresent()){
+                vo.setUnitName(unitOptional.get().getName());
+            }
+            voList.add(vo);
+        });
+        Map<String,Object> map = new HashedMap();
+        map.put("records",voList);
+        map.put("total",dataPage.getTotal());
+        return Result.OK(map);
+    }
+
+
+    /**
+     * 创建商品
+     * @param dto
+     * @return
+     */
+    public Result create(CesGoodsDto dto){
+        //不能有相同条码的数据
+        QueryWrapper<CesGoods> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq(CesGoods.BAR_CODE,dto.getBarCode());
+        queryWrapper.eq(CesGoods.INVALID,false);
+        queryWrapper.eq(CesGoods.HOTEL_ID,dto.getHotelId());
+        //查询
+        CesGoods exitGoods = goodsMapper.selectOne(queryWrapper);
+        if(!ObjectUtils.isEmpty(exitGoods)) return Result.error("该条码已有!");
+
+        CesGoods goods = new CesGoods();
+        BeanUtil.copyProperties(dto,goods);
+        goods.setCreatAt(LocalDateTime.now());
+        goods.setUpdateAt(LocalDateTime.now());
+        goodsMapper.insert(goods);
+        return Result.OK("保存成功!");
+    }
+
+
+    /**
+     * 修改
+     * @param dto
+     * @return
+     */
+    public Result modify(CesGoodsDto dto){
+        CesGoods goods = goodsMapper.selectOne(Wrappers.<CesGoods>lambdaQuery().eq(CesGoods::getId,dto.getId()).eq(CesGoods::getInvalid,false));
+        if(ObjectUtils.isEmpty(goods)) return Result.error("商品数据未找到!");
+        //不能有相同条码的数据
+        QueryWrapper<CesGoods> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq(CesGoods.BAR_CODE,dto.getBarCode());
+        queryWrapper.eq(CesGoods.INVALID,false);
+        queryWrapper.eq(CesGoods.HOTEL_ID,dto.getHotelId());
+        queryWrapper.ne(CesGoods.ID,dto.getId());
+        //查询
+        CesGoods exitGoods = goodsMapper.selectOne(queryWrapper);
+        if(!ObjectUtils.isEmpty(exitGoods)) return Result.error("该条码已有!");
+
+        BeanUtil.copyProperties(dto,goods,CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true));
+        goods.setUpdateAt(LocalDateTime.now());
+        goodsMapper.updateById(goods);
+        return Result.ok("修改成功!");
+    }
+
+
+    public Result delete(String id,String hotelId){
+        CesGoods goods = goodsMapper.selectOne(Wrappers.<CesGoods>lambdaQuery().eq(CesGoods::getId,id).eq(CesGoods::getHotelId,hotelId).eq(CesGoods::getInvalid,false));
+        if(ObjectUtils.isEmpty(goods)) return Result.error("商品数据未找到!");
+        goods.setUpdateAt(LocalDateTime.now());
+        goods.setInvalid(true);
+        goodsMapper.updateById(goods);
+        return Result.ok("删除成功!");
+    }
+
+    public Result delBatch(List<String> ids){
+        if(CollectionUtil.isEmpty(ids)) return Result.ok("删除成功!");
+        List<CesGoods> goods = goodsMapper.selectBatchIds(ids);
+        goods.forEach(good -> {
+            good.setUpdateAt(LocalDateTime.now());
+            good.setInvalid(true);
+        });
+        updateBatchById(goods);
+        return Result.ok("删除成功!");
+    }
+
+
+
+
+
+
+
+
+}

+ 26 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/service/CesGoodsSpecsServiceImpl.java

@@ -0,0 +1,26 @@
+package org.jeecg.modules.rooms.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.jeecg.modules.rooms.entity.CesGoodsSpecs;
+import org.jeecg.modules.rooms.mapper.CesGoodsSpecsMapper;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 商品规格存储表 服务实现类
+ * </p>
+ *
+ * @author fendo
+ * @since 2023-03-13
+ */
+@Service
+public class CesGoodsSpecsServiceImpl extends ServiceImpl<CesGoodsSpecsMapper, CesGoodsSpecs> implements IService<CesGoodsSpecs> {
+
+    public boolean saveBatchSpecs(List<CesGoodsSpecs> specsList){
+
+        return false;
+    }
+}

+ 14 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/service/CesGoodsUnitServiceImpl.java

@@ -17,11 +17,13 @@ import org.jeecg.common.util.CommonUtils;
 import org.jeecg.modules.rooms.DTO.CesGoodsUnitDto;
 import org.jeecg.modules.rooms.DTO.CesGoodsUnitSearchDto;
 import org.jeecg.modules.rooms.entity.CesGoodsUnit;
+import org.jeecg.modules.rooms.entity.CesStockType;
 import org.jeecg.modules.rooms.mapper.CesGoodsUnitMapper;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
@@ -126,5 +128,17 @@ public class CesGoodsUnitServiceImpl extends ServiceImpl<CesGoodsUnitMapper, Ces
         return Result.OK("删除成功!");
     }
 
+    /**
+     * 根据IDS 查询单位数据
+     * @param ids
+     * @return
+     */
+    public List<CesGoodsUnit> fetchByIds(List<String> ids){
+        if(CollectionUtil.isEmpty(ids)) return new ArrayList<>();
+        List<CesGoodsUnit> list = cesGoodsUnitMapper.selectList(Wrappers.<CesGoodsUnit>lambdaQuery().eq(CesGoodsUnit::getInvalid,false).in(CesGoodsUnit::getId,ids));
+
+        return  list;
+    }
+
 }
 

+ 14 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/service/CesStockTypeServiceImpl.java

@@ -3,6 +3,7 @@ package org.jeecg.modules.rooms.service;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.bean.copier.CopyOptions;
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.lang.tree.Tree;
 import cn.hutool.core.lang.tree.TreeNode;
 import cn.hutool.core.lang.tree.TreeUtil;
@@ -20,6 +21,7 @@ import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.List;
 
 /**
@@ -128,6 +130,18 @@ public class CesStockTypeServiceImpl extends ServiceImpl<CesStockTypeMapper, Ces
     }
 
 
+    /**
+     * 根据IDS 查询分类数据
+     * @param ids
+     * @return
+     */
+    public List<CesStockType> fetchByIds(List<String> ids){
+        if(CollectionUtil.isEmpty(ids)) return new ArrayList<>();
+        List<CesStockType> list = stockTypeMapper.selectList(Wrappers.<CesStockType>lambdaQuery().eq(CesStockType::getInvalid,false).in(CesStockType::getId,ids));
+
+        return  list;
+    }
+