更改扣款顺序,添加菜品接口
This commit is contained in:
@ -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 = "删除菜品管理")
|
||||
|
@ -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;
|
||||
}
|
@ -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;
|
||||
}
|
@ -56,7 +56,7 @@ public interface DeviceInfoService {
|
||||
|
||||
int updateAlive();
|
||||
|
||||
|
||||
Long getCarteen(String mac);
|
||||
|
||||
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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);
|
||||
/**
|
||||
* 删除菜品管理
|
||||
*
|
||||
|
@ -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,"无法获取设备编码");
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user