食堂修改

This commit is contained in:
zjf committed 2025-08-12 14:35:53 +08:00
1 parent d40694c61e
commit b432b80324
9 files changed
+182 -1

No files matched your search

@@ -0,0 +1,34 @@
package com.bsd.pjcloud.canteen.dto.canteenonline;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.bsd.pjcloud.common.core.util.TenantTable;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.time.LocalDateTime;
import java.util.List;
/**
* 在线点餐spu
*
* @author zjf
* @date 2024-12-16 23:42:19
*/
@Data
@Schema(description = "在线点餐批量关联新增每日菜谱")
public class CanteenOnlineSpuSaveDto {
/**
* 商户编号
*/
@Schema(description="商户编号")
private Long merchantId;
private List<CanteenOnlineSpuSaveItemDto> items;
}
@@ -0,0 +1,57 @@
package com.bsd.pjcloud.canteen.dto.canteenonline;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
public class CanteenOnlineSpuSaveItemDto {
/**
* 商品名称
*/
@Schema(description="商品名称")
private String name;
@Schema(description="关联每日菜谱id")
private Long linkSpuId;
/**
* 商品分类编号
*/
@Schema(description="商品分类编号")
private Long categoryId;
/**
* 商品封面图
*/
@Schema(description="商品封面图")
private String picUrl;
/**
* 排序字段
*/
@Schema(description="排序字段")
private Integer sort;
/**
* 商品状态: 1 上架(开启) 0 下架(禁用) -1 回收
*/
@Schema(description="商品状态: 1 上架(开启) 0 下架(禁用) -1 回收")
private Integer status;
/**
* 商品价格,单位使用:分
*/
@Schema(description="商品价格,单位使用:分")
private Integer price;
/**
* 库存
*/
@Schema(description="库存")
private Integer stock;
}
@@ -112,4 +112,7 @@ public class CanteenOnlineCategoryEntity extends Model<CanteenOnlineCategoryEnti
*/
@Schema(description = "商家id")
private Long merchantId;
@Schema(description = "餐段类型")
private String categoryType;
}
@@ -182,4 +182,7 @@ public class CanteenOnlineSpuEntity extends Model<CanteenOnlineSpuEntity> {
*/
@Schema(description="租户编号")
private Long tenantId;
@Schema(description="关联每日菜谱id")
private Long linkSpuId;
}
@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bsd.pjcloud.canteen.dto.CanteenOnlineSpuUpdateStockReqDTO;
import com.bsd.pjcloud.canteen.dto.canteenonline.CanteenOnlineSpuSaveDto;
import com.bsd.pjcloud.canteen.vo.APPOnlineSpuVO;
import com.bsd.pjcloud.canteen.vo.app.CanteenOnlineSpuAppVO;
import com.bsd.pjcloud.common.core.util.BeanUtils;
@@ -58,7 +59,7 @@ public class CanteenOnlineSpuController {
LambdaQueryWrapper<CanteenOnlineSpuEntity> wrapper = Wrappers.lambdaQuery();
wrapper.like(StrUtil.isNotBlank(canteenOnlineSpu.getName()), CanteenOnlineSpuEntity::getName, canteenOnlineSpu.getName());
wrapper.eq(Objects.nonNull(canteenOnlineSpu.getCategoryId()), CanteenOnlineSpuEntity::getCategoryId, canteenOnlineSpu.getCategoryId());
return R.ok(canteenOnlineSpuService.page(page, wrapper));
return R.ok(canteenOnlineSpuService.pageScope(page, wrapper));
}
@@ -90,6 +91,14 @@ public class CanteenOnlineSpuController {
return R.ok(canteenOnlineSpuService.save(canteenOnlineSpu));
}
@Operation(summary = "批量新增关联每日菜谱", description = "批量新增关联每日菜谱")
@SysLog("批量导入新增点餐spu")
@PostMapping("/saveCanteenSpuBatch")
@PreAuthorize("@pms.hasPermission('canteen_canteenOnlineSpu_add')")
public R saveCanteenSpuBatch(@RequestBody CanteenOnlineSpuSaveDto canteenOnlineSpuSaveDto) {
return R.ok(canteenOnlineSpuService.saveCanteenSpuBatch(canteenOnlineSpuSaveDto));
}
/**
* 修改在线点餐spu
*
@@ -1,7 +1,10 @@
package com.bsd.pjcloud.canteen.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.bsd.pjcloud.canteen.dto.CanteenOnlineSpuUpdateStockReqDTO;
import com.bsd.pjcloud.canteen.dto.canteenonline.CanteenOnlineSpuSaveDto;
import com.bsd.pjcloud.canteen.entity.CanteenOnlineSpuEntity;
import com.bsd.pjcloud.canteen.vo.APPOnlineSpuVO;
import com.bsd.pjcloud.common.core.util.R;
@@ -27,4 +30,20 @@ public interface CanteenOnlineSpuService extends IService<CanteenOnlineSpuEntity
* @return
*/
R updateOnlineSpuSkuStock(CanteenOnlineSpuUpdateStockReqDTO canteenOnlineSpuUpdateStockReqDTO);
/**
* 批量新增关联每日菜谱
* @param canteenOnlineSpuSaveDto
* @return
*/
Object saveCanteenSpuBatch(CanteenOnlineSpuSaveDto canteenOnlineSpuSaveDto);
/**
* 分页查询
* @param page
* @param wrapper
* @return
*/
Object pageScope(Page page, LambdaQueryWrapper<CanteenOnlineSpuEntity> wrapper);
}
@@ -1,18 +1,31 @@
package com.bsd.pjcloud.canteen.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.bsd.pjcloud.canteen.dto.CanteenOnlineSpuUpdateStockReqDTO;
import com.bsd.pjcloud.canteen.dto.canteenonline.CanteenOnlineSpuSaveDto;
import com.bsd.pjcloud.canteen.dto.canteenonline.CanteenOnlineSpuSaveItemDto;
import com.bsd.pjcloud.canteen.entity.CanteenCategoryEntity;
import com.bsd.pjcloud.canteen.entity.CanteenOnlineCategoryEntity;
import com.bsd.pjcloud.canteen.entity.CanteenOnlineSpuEntity;
import com.bsd.pjcloud.canteen.mapper.CanteenCategoryMapper;
import com.bsd.pjcloud.canteen.mapper.CanteenOnlineCategoryMapper;
import com.bsd.pjcloud.canteen.mapper.CanteenOnlineSpuMapper;
import com.bsd.pjcloud.canteen.service.CanteenOnlineSpuService;
import com.bsd.pjcloud.canteen.vo.APPOnlineSpuVO;
import com.bsd.pjcloud.common.core.util.BeanUtils;
import com.bsd.pjcloud.common.core.util.R;
import com.bsd.pjcloud.common.data.datascope.DataScope;
import com.bsd.pjcloud.common.security.util.SecurityUtils;
import lombok.AllArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
/**
* 在线点餐spu
@@ -21,7 +34,12 @@ import java.util.List;
* @date 2024-12-16 23:42:19
*/
@Service
@AllArgsConstructor
public class CanteenOnlineSpuServiceImpl extends ServiceImpl<CanteenOnlineSpuMapper, CanteenOnlineSpuEntity> implements CanteenOnlineSpuService {
private final CanteenCategoryMapper categoryMapper;
private final CanteenOnlineCategoryMapper canteenOnlineCategoryMapper;
@Override
public R<List<APPOnlineSpuVO>> getCanteenOnlineSpuList(String categoryId, String merchantId) {
LambdaQueryWrapper<CanteenOnlineSpuEntity> canteenOnlineSpuEntityLambdaQueryWrapper = new LambdaQueryWrapper<>();
@@ -50,4 +68,39 @@ public class CanteenOnlineSpuServiceImpl extends ServiceImpl<CanteenOnlineSpuMap
}
return R.ok();
}
@Override
public Object saveCanteenSpuBatch(CanteenOnlineSpuSaveDto canteenOnlineSpuSaveDto) {
Long merchantId = canteenOnlineSpuSaveDto.getMerchantId();
List<CanteenOnlineSpuSaveItemDto> items = canteenOnlineSpuSaveDto.getItems();
List<CanteenOnlineSpuEntity> canteenSpuEntities = BeanUtils.toBean(items, CanteenOnlineSpuEntity.class);
//每日菜谱的分类,查询在线分类里面是否有
Set<Long> categoryIds = canteenSpuEntities.stream().map(c -> c.getCategoryId()).collect(Collectors.toSet());
List<CanteenCategoryEntity> canteenCategoryEntities = categoryMapper.selectList(new LambdaQueryWrapper<CanteenCategoryEntity>().select(CanteenCategoryEntity::getId).in(CanteenCategoryEntity::getId, categoryIds));
//把canteenCategoryEntities转为key map
Map<Long, CanteenCategoryEntity> canteenCategoryEntityMap = canteenCategoryEntities.stream().collect(Collectors.toMap(CanteenCategoryEntity::getId, c -> c));
Long deptId = SecurityUtils.getUser().getDeptId();
canteenSpuEntities.forEach(c -> {
CanteenCategoryEntity canteenCategoryEntity = canteenCategoryEntityMap.get(c.getCategoryId());
String name = canteenCategoryEntity.getName();
//查询分类里面是否有
CanteenOnlineCategoryEntity canteenOnlineCategoryEntity = canteenOnlineCategoryMapper.selectOne(new LambdaQueryWrapper<CanteenOnlineCategoryEntity>().eq(CanteenOnlineCategoryEntity::getName, name));
if (canteenOnlineCategoryEntity == null){
CanteenOnlineCategoryEntity bean = BeanUtils.toBean(canteenCategoryEntity, CanteenOnlineCategoryEntity.class);
canteenOnlineCategoryMapper.insert(bean);
c.setCategoryId(bean.getId());
}else {
c.setCategoryId(canteenOnlineCategoryEntity.getId());
}
c.setMerchantId(merchantId);
c.setDeptId(deptId);
});
return baseMapper.insert(canteenSpuEntities);
}
@Override
public Object pageScope(Page page, LambdaQueryWrapper<CanteenOnlineSpuEntity> wrapper) {
return baseMapper.selectPageByScope(page, wrapper, DataScope.of());
}
}
@@ -17,5 +17,7 @@
<result property="updateTime" column="update_time"/>
<result property="delFlag" column="del_flag"/>
<result property="tenantId" column="tenant_id"/>
<result property="merchantId" column="merchant_id"/>
<result property="categoryType" column="category_type"/>
</resultMap>
</mapper>
@@ -28,5 +28,6 @@
<result property="updateTime" column="update_time"/>
<result property="delFlag" column="del_flag"/>
<result property="tenantId" column="tenant_id"/>
<result property="linkSpuId" column="link_spu_id"/>
</resultMap>
</mapper>