更改扣款顺序,添加菜品接口

This commit is contained in:
zengtao01
2024-10-06 15:05:52 +08:00
parent 0cd98c8faa
commit a63ebf2919
9 changed files with 217 additions and 45 deletions

View File

@ -5,6 +5,8 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.system.controller.admin.dishes.vo.DishesPageReqVO;
import cn.iocoder.yudao.module.system.controller.admin.dishes.vo.DishesRespVO;
import cn.iocoder.yudao.module.system.controller.app.dishes.vo.AppSaveVO;
import cn.iocoder.yudao.module.system.controller.app.dishes.vo.AppUpdateVO;
import cn.iocoder.yudao.module.system.dal.dataobject.dishes.DishesDO;
import cn.iocoder.yudao.module.system.service.dishes.DishesService;
import cn.iocoder.yudao.module.system.service.dishesnutrition.DishesNutritionService;
@ -13,6 +15,9 @@ import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@ -34,20 +39,18 @@ public class DishesAppController {
@Resource
private DishesNutritionService dishesNutritionService;
// @PostMapping("/create")
// @Operation(summary = "创建菜品管理")
//// @PreAuthorize("@ss.hasPermission('t:dishes:create')")
// public CommonResult<Long> createDishes(@Valid @RequestBody DishesSaveReqVO createReqVO) {
// return success(dishesService.createDishes(createReqVO));
// }
//
// @PutMapping("/update")
// @Operation(summary = "更新菜品管理")
//// @PreAuthorize("@ss.hasPermission('t:dishes:update')")
// public CommonResult<Boolean> updateDishes(@Valid @RequestBody DishesSaveReqVO updateReqVO) {
// dishesService.updateDishes(updateReqVO);
// return success(true);
// }
@PostMapping("/create")
@Operation(summary = "创建菜品管理")
public CommonResult<Long> createDishes(@Valid @RequestBody AppSaveVO vo) {
return success(dishesService.createDishesApp(vo));
}
@PutMapping("/update")
@Operation(summary = "更新菜品管理")
public CommonResult<Boolean> updateDishes(@RequestBody AppUpdateVO vo) {
dishesService.updateDishesApp(vo);
return success(true);
}
// @DeleteMapping("/delete")
// @Operation(summary = "删除菜品管理")

View File

@ -0,0 +1,25 @@
package cn.iocoder.yudao.module.system.controller.app.dishes.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author zt
* @description <description class purpose>
* @since 2024/10/6
*/
@Data
public class AppSaveVO {
/**
* 菜品类型
*/
private String dishecType;
@Schema(description = "菜品名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
private String dishesName;
@Schema(description = "总价格", example = "1")
private BigDecimal dishesSumPrice;
}

View File

@ -0,0 +1,23 @@
package cn.iocoder.yudao.module.system.controller.app.dishes.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author zt
* @description <description class purpose>
* @since 2024/10/6
*/
@Data
public class AppUpdateVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "16516")
private Long id;
@Schema(description = "菜品名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
private String dishesName;
@Schema(description = "总价格", example = "1")
private BigDecimal dishesSumPrice;
}

View File

@ -56,7 +56,7 @@ public interface DeviceInfoService {
int updateAlive();
Long getCarteen(String mac);
}

View File

@ -1,6 +1,7 @@
package cn.iocoder.yudao.module.system.service.deviceinfo;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.system.controller.admin.deviceinfo.vo.DeviceInfoPageReqVO;
@ -163,4 +164,20 @@ public class DeviceInfoServiceImpl implements DeviceInfoService {
}
}
@Override
public Long getCarteen(String mac) {
DeviceInfoDO deviceInfoDO = deviceInfoMapper.selectOne(new LambdaQueryWrapper<DeviceInfoDO>()
.eq(DeviceInfoDO::getDeviceIp, mac)
.last("limit 1"));
if(ObjectUtil.isNotEmpty(deviceInfoDO)){
return deviceInfoDO.getCarteenId();
}
FaceDeviceInfoDO faceDeviceInfoDO = faceDeviceInfoMapper.selectOne(new LambdaQueryWrapper<FaceDeviceInfoDO>()
.eq(FaceDeviceInfoDO::getMac, mac)
.last("limit 1"));
if(ObjectUtil.isNotEmpty(faceDeviceInfoDO)){
return faceDeviceInfoDO.getCarteenId();
}
return null;
}
}

View File

@ -4,6 +4,8 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.system.controller.admin.dishes.vo.DishesPageReqVO;
import cn.iocoder.yudao.module.system.controller.admin.dishes.vo.DishesRespVO;
import cn.iocoder.yudao.module.system.controller.admin.dishes.vo.DishesSaveReqVO;
import cn.iocoder.yudao.module.system.controller.app.dishes.vo.AppSaveVO;
import cn.iocoder.yudao.module.system.controller.app.dishes.vo.AppUpdateVO;
import cn.iocoder.yudao.module.system.dal.dataobject.dishes.DishesDO;
import javax.validation.Valid;
@ -25,6 +27,8 @@ public interface DishesService {
*/
Long createDishes(@Valid DishesSaveReqVO createReqVO);
Long createDishesApp(AppSaveVO vo);
/**
* 更新菜品管理
*
@ -32,6 +36,7 @@ public interface DishesService {
*/
void updateDishes(@Valid DishesSaveReqVO updateReqVO);
void updateDishesApp( AppUpdateVO vo);
/**
* 删除菜品管理
*

View File

@ -12,11 +12,14 @@ import cn.iocoder.yudao.module.system.controller.admin.dishesnutrition.vo.Dishes
import cn.iocoder.yudao.module.system.controller.admin.dishesnutrition.vo.DishesNutritionSaveReqVO;
import cn.iocoder.yudao.module.system.controller.admin.dishesraw.vo.DishesRawPageReqVO;
import cn.iocoder.yudao.module.system.controller.admin.dishesraw.vo.DishesRawSaveReqVO;
import cn.iocoder.yudao.module.system.controller.app.dishes.vo.AppSaveVO;
import cn.iocoder.yudao.module.system.controller.app.dishes.vo.AppUpdateVO;
import cn.iocoder.yudao.module.system.dal.dataobject.dishes.DishesDO;
import cn.iocoder.yudao.module.system.dal.dataobject.dishesnutrition.DishesNutritionDO;
import cn.iocoder.yudao.module.system.dal.dataobject.dishesraw.DishesRawDO;
import cn.iocoder.yudao.module.system.dal.mysql.dishes.DishesMapper;
import cn.iocoder.yudao.module.system.enums.ErrorCodeConstants;
import cn.iocoder.yudao.module.system.service.deviceinfo.DeviceInfoService;
import cn.iocoder.yudao.module.system.service.dishesnutrition.DishesNutritionService;
import cn.iocoder.yudao.module.system.service.dishesraw.DishesRawService;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@ -25,6 +28,7 @@ import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
@ -47,6 +51,12 @@ public class DishesServiceImpl implements DishesService {
private DishesNutritionService dishesNutritionService;
@Resource
private DishesRawService dishesRawService;
@Resource
private DeviceInfoService deviceInfoService;
@Resource
private HttpServletRequest httpServletRequest;
@Override
@SneakyThrows
public Long createDishes(DishesSaveReqVO createReqVO) {
@ -77,6 +87,30 @@ public class DishesServiceImpl implements DishesService {
// 返回
return dishes.getId();
}
@Override
public Long createDishesApp(AppSaveVO vo) {
// 插入
DishesDO dishes = BeanUtils.toBean(vo, DishesDO.class);
dishes.setDeleted(Boolean.FALSE);
Long carteenId = deviceInfoService.getCarteen(getHearder());
dishes.setCarteenId(carteenId);
//计算每g多少钱
BigDecimal dishesSumPrice = vo.getDishesSumPrice();
BigDecimal dishesNumber = new BigDecimal("50");
BigDecimal div = NumberUtil.div(dishesSumPrice, dishesNumber, 2);
//避免计算出每克价格约 为0
if(div.floatValue() <= 0.00f){
dishes.setDishesBasePrice(new BigDecimal("0.01"));
}else{
dishes.setDishesBasePrice(div);
}
dishesMapper.insert(dishes);
// 返回
return dishes.getId();
}
@Override
@SneakyThrows
public void updateDishes(DishesSaveReqVO updateReqVO) {
@ -108,6 +142,23 @@ public class DishesServiceImpl implements DishesService {
}
}
@Override
public void updateDishesApp(AppUpdateVO vo) {
DishesDO updateObj = BeanUtils.toBean(vo, DishesDO.class);
//计算每g多少钱
BigDecimal dishesSumPrice = updateObj.getDishesSumPrice();
BigDecimal dishesNumber = new BigDecimal("50");
BigDecimal div = NumberUtil.div(dishesSumPrice, dishesNumber, 2);
//避免计算出每克价格约 为0
if(div.floatValue() <= 0.00f){
updateObj.setDishesBasePrice(new BigDecimal("0.01"));
}else{
updateObj.setDishesBasePrice(div);
}
dishesMapper.updateById(updateObj);
}
@Override
public void deleteDishes(Long id) {
// 校验存在
@ -163,4 +214,12 @@ public class DishesServiceImpl implements DishesService {
Map<Long, String> collect = dishesDOS.stream().collect(Collectors.toMap(DishesDO::getId, DishesDO::getDishesName));
return collect;
}
public String getHearder(){
try {
return httpServletRequest.getHeader("Authorization");
} catch (Exception e) {
throw exception(2000_10_001,"无法获取设备编码");
}
}
}