更改扣款顺序,添加菜品接口
This commit is contained in:
@ -13,7 +13,6 @@ import cn.iocoder.yudao.module.member.service.diningplates.DiningPlatesService;
|
|||||||
import cn.iocoder.yudao.module.member.service.order.OrderService;
|
import cn.iocoder.yudao.module.member.service.order.OrderService;
|
||||||
import cn.iocoder.yudao.module.member.service.user.MemberUserService;
|
import cn.iocoder.yudao.module.member.service.user.MemberUserService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
import org.springframework.data.redis.core.StringRedisTemplate;
|
import org.springframework.data.redis.core.StringRedisTemplate;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
@ -71,7 +70,7 @@ public class BalanceDeductionJob implements JobHandler {
|
|||||||
toPay.forEach(dishOrderDO -> {
|
toPay.forEach(dishOrderDO -> {
|
||||||
//新的总价
|
//新的总价
|
||||||
String s = stringRedisTemplate.opsForValue().get(dishOrderDO.getDiningPlatesNum() + "-" + dishOrderDO.getStoreId());
|
String s = stringRedisTemplate.opsForValue().get(dishOrderDO.getDiningPlatesNum() + "-" + dishOrderDO.getStoreId());
|
||||||
BigDecimal total = new BigDecimal(StrUtil.isBlank(s)?"0":s);
|
BigDecimal total = new BigDecimal(StrUtil.isBlank(s) ? "0" : s);
|
||||||
//BigDecimal total = new BigDecimal(0.01);
|
//BigDecimal total = new BigDecimal(0.01);
|
||||||
Long userId = dishOrderDO.getUserId();
|
Long userId = dishOrderDO.getUserId();
|
||||||
CardDO cardDO = new CardDO();
|
CardDO cardDO = new CardDO();
|
||||||
@ -89,9 +88,9 @@ public class BalanceDeductionJob implements JobHandler {
|
|||||||
dishOrderDO.setReductionState(reductionAmount.compareTo(BigDecimal.ZERO) > 0 ? "1" : "0");
|
dishOrderDO.setReductionState(reductionAmount.compareTo(BigDecimal.ZERO) > 0 ? "1" : "0");
|
||||||
|
|
||||||
//计算减免后的总价
|
//计算减免后的总价
|
||||||
if(total.compareTo(reductionAmount)<0){
|
if (total.compareTo(reductionAmount) < 0) {
|
||||||
total = BigDecimal.ZERO;
|
total = BigDecimal.ZERO;
|
||||||
}else {
|
} else {
|
||||||
total = total.subtract(reductionAmount);
|
total = total.subtract(reductionAmount);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -119,26 +118,25 @@ public class BalanceDeductionJob implements JobHandler {
|
|||||||
} else {
|
} else {
|
||||||
dishOrderDO.setOrderStatus(DishOrderDO.COMPLETE);
|
dishOrderDO.setOrderStatus(DishOrderDO.COMPLETE);
|
||||||
//计算金额
|
//计算金额
|
||||||
if (total.compareTo(wxAmount) <= 0) {
|
if (total.compareTo(cashAmount) <= 0) {
|
||||||
cardDO.setWxAmount(wxAmount.subtract(total).setScale(2, BigDecimal.ROUND_HALF_UP));
|
cardDO.setCashAmount(cashAmount.subtract(total).setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||||
dishOrderDO.setWxAmount(total);
|
dishOrderDO.setCashAmount(total);
|
||||||
} else {
|
} else {
|
||||||
cardDO.setWxAmount(BigDecimal.ZERO);
|
cardDO.setCashAmount(BigDecimal.ZERO);
|
||||||
dishOrderDO.setWxAmount(wxAmount);
|
dishOrderDO.setCashAmount(cashAmount);
|
||||||
BigDecimal total1 = total.subtract(wxAmount).setScale(2, BigDecimal.ROUND_HALF_UP);
|
BigDecimal total1 = total.subtract(cashAmount).setScale(2, BigDecimal.ROUND_HALF_UP);
|
||||||
if (total1.compareTo(cashAmount) <= 0) {
|
if (total1.compareTo(giftAmount) <= 0) {
|
||||||
cardDO.setCashAmount(cashAmount.subtract(total1).setScale(2, BigDecimal.ROUND_HALF_UP));
|
cardDO.setGiftAmount(giftAmount.subtract(total1).setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||||
dishOrderDO.setCashAmount(total1);
|
dishOrderDO.setGiftAmount(total1);
|
||||||
} else {
|
} else {
|
||||||
cardDO.setCashAmount(BigDecimal.ZERO);
|
cardDO.setGiftAmount(BigDecimal.ZERO);
|
||||||
dishOrderDO.setCashAmount(cashAmount);
|
dishOrderDO.setGiftAmount(giftAmount);
|
||||||
BigDecimal total2 = total1.subtract(cashAmount).setScale(2, BigDecimal.ROUND_HALF_UP);
|
BigDecimal total2 = total1.subtract(giftAmount).setScale(2, BigDecimal.ROUND_HALF_UP);
|
||||||
|
|
||||||
cardDO.setGiftAmount(giftAmount.subtract(total2).setScale(2, BigDecimal.ROUND_HALF_UP));
|
cardDO.setWxAmount(wxAmount.subtract(total2).setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||||
dishOrderDO.setGiftAmount(total2);
|
dishOrderDO.setWxAmount(total2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
cardDO.setUserId(userId);
|
cardDO.setUserId(userId);
|
||||||
@ -149,7 +147,7 @@ public class BalanceDeductionJob implements JobHandler {
|
|||||||
|
|
||||||
dishOrderDO.setTotalMoney(total);
|
dishOrderDO.setTotalMoney(total);
|
||||||
dishOrderDO.setUpdateTime(LocalDateTime.now());
|
dishOrderDO.setUpdateTime(LocalDateTime.now());
|
||||||
stringRedisTemplate.delete(dishOrderDO.getDiningPlatesNum()+ "-" + dishOrderDO.getStoreId());
|
stringRedisTemplate.delete(dishOrderDO.getDiningPlatesNum() + "-" + dishOrderDO.getStoreId());
|
||||||
});
|
});
|
||||||
//取消批量,防止同一人订餐少扣款
|
//取消批量,防止同一人订餐少扣款
|
||||||
//cardService.insertBatch(list);
|
//cardService.insertBatch(list);
|
||||||
@ -164,4 +162,29 @@ public class BalanceDeductionJob implements JobHandler {
|
|||||||
return String.format("扣款定时任务扣款数量 %s 个", size);
|
return String.format("扣款定时任务扣款数量 %s 个", size);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void test() {
|
||||||
|
//计算金额
|
||||||
|
//if (total.compareTo(wxAmount) <= 0) {
|
||||||
|
// cardDO.setWxAmount(wxAmount.subtract(total).setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||||
|
// dishOrderDO.setWxAmount(total);
|
||||||
|
//} else {
|
||||||
|
// cardDO.setWxAmount(BigDecimal.ZERO);
|
||||||
|
// dishOrderDO.setWxAmount(wxAmount);
|
||||||
|
// BigDecimal total1 = total.subtract(wxAmount).setScale(2, BigDecimal.ROUND_HALF_UP);
|
||||||
|
// if (total1.compareTo(cashAmount) <= 0) {
|
||||||
|
// cardDO.setCashAmount(cashAmount.subtract(total1).setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||||
|
// dishOrderDO.setCashAmount(total1);
|
||||||
|
// } else {
|
||||||
|
// cardDO.setCashAmount(BigDecimal.ZERO);
|
||||||
|
// dishOrderDO.setCashAmount(cashAmount);
|
||||||
|
// BigDecimal total2 = total1.subtract(cashAmount).setScale(2, BigDecimal.ROUND_HALF_UP);
|
||||||
|
//
|
||||||
|
// cardDO.setGiftAmount(giftAmount.subtract(total2).setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||||
|
// dishOrderDO.setGiftAmount(total2);
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
//计算金
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -200,17 +200,17 @@ public class StoreOrderServiceImpl implements StoreOrderService {
|
|||||||
cardDO.setMoney(money.subtract(total).setScale(2, BigDecimal.ROUND_HALF_UP));
|
cardDO.setMoney(money.subtract(total).setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||||
|
|
||||||
//计算金额
|
//计算金额
|
||||||
if (total.compareTo(wxAmount) <= 0) {
|
if (total.compareTo(cashAmount) <= 0) {
|
||||||
cardDO.setWxAmount(wxAmount.subtract(total).setScale(2, BigDecimal.ROUND_HALF_UP));
|
cardDO.setCashAmount(cashAmount.subtract(total).setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||||
} else {
|
} else {
|
||||||
cardDO.setWxAmount(BigDecimal.ZERO);
|
cardDO.setCashAmount(BigDecimal.ZERO);
|
||||||
BigDecimal total1 = total.subtract(wxAmount).setScale(2, BigDecimal.ROUND_HALF_UP);
|
BigDecimal total1 = total.subtract(cashAmount).setScale(2, BigDecimal.ROUND_HALF_UP);
|
||||||
if (total1.compareTo(cashAmount) <= 0) {
|
if (total1.compareTo(giftAmount) <= 0) {
|
||||||
cardDO.setCashAmount(cashAmount.subtract(total1).setScale(2, BigDecimal.ROUND_HALF_UP));
|
cardDO.setGiftAmount(giftAmount.subtract(total1).setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||||
} else {
|
} else {
|
||||||
cardDO.setCashAmount(BigDecimal.ZERO);
|
cardDO.setGiftAmount(BigDecimal.ZERO);
|
||||||
BigDecimal total2 = total1.subtract(cashAmount).setScale(2, BigDecimal.ROUND_HALF_UP);
|
BigDecimal total2 = total1.subtract(giftAmount).setScale(2, BigDecimal.ROUND_HALF_UP);
|
||||||
cardDO.setGiftAmount(giftAmount.subtract(total2).setScale(2, BigDecimal.ROUND_HALF_UP));
|
cardDO.setWxAmount(wxAmount.subtract(total2).setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -221,4 +221,21 @@ public class StoreOrderServiceImpl implements StoreOrderService {
|
|||||||
|
|
||||||
return cardDO.getMoney();
|
return cardDO.getMoney();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void test(){
|
||||||
|
//计算金额
|
||||||
|
//if (total.compareTo(wxAmount) <= 0) {
|
||||||
|
// cardDO.setWxAmount(wxAmount.subtract(total).setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||||
|
//} else {
|
||||||
|
// cardDO.setWxAmount(BigDecimal.ZERO);
|
||||||
|
// BigDecimal total1 = total.subtract(wxAmount).setScale(2, BigDecimal.ROUND_HALF_UP);
|
||||||
|
// if (total1.compareTo(cashAmount) <= 0) {
|
||||||
|
// cardDO.setCashAmount(cashAmount.subtract(total1).setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||||
|
// } else {
|
||||||
|
// cardDO.setCashAmount(BigDecimal.ZERO);
|
||||||
|
// BigDecimal total2 = total1.subtract(cashAmount).setScale(2, BigDecimal.ROUND_HALF_UP);
|
||||||
|
// cardDO.setGiftAmount(giftAmount.subtract(total2).setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
}
|
||||||
}
|
}
|
@ -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.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.DishesPageReqVO;
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.dishes.vo.DishesRespVO;
|
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.dal.dataobject.dishes.DishesDO;
|
||||||
import cn.iocoder.yudao.module.system.service.dishes.DishesService;
|
import cn.iocoder.yudao.module.system.service.dishes.DishesService;
|
||||||
import cn.iocoder.yudao.module.system.service.dishesnutrition.DishesNutritionService;
|
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 io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
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.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
@ -34,20 +39,18 @@ public class DishesAppController {
|
|||||||
@Resource
|
@Resource
|
||||||
private DishesNutritionService dishesNutritionService;
|
private DishesNutritionService dishesNutritionService;
|
||||||
|
|
||||||
// @PostMapping("/create")
|
@PostMapping("/create")
|
||||||
// @Operation(summary = "创建菜品管理")
|
@Operation(summary = "创建菜品管理")
|
||||||
//// @PreAuthorize("@ss.hasPermission('t:dishes:create')")
|
public CommonResult<Long> createDishes(@Valid @RequestBody AppSaveVO vo) {
|
||||||
// public CommonResult<Long> createDishes(@Valid @RequestBody DishesSaveReqVO createReqVO) {
|
return success(dishesService.createDishesApp(vo));
|
||||||
// return success(dishesService.createDishes(createReqVO));
|
}
|
||||||
// }
|
|
||||||
//
|
@PutMapping("/update")
|
||||||
// @PutMapping("/update")
|
@Operation(summary = "更新菜品管理")
|
||||||
// @Operation(summary = "更新菜品管理")
|
public CommonResult<Boolean> updateDishes(@RequestBody AppUpdateVO vo) {
|
||||||
//// @PreAuthorize("@ss.hasPermission('t:dishes:update')")
|
dishesService.updateDishesApp(vo);
|
||||||
// public CommonResult<Boolean> updateDishes(@Valid @RequestBody DishesSaveReqVO updateReqVO) {
|
return success(true);
|
||||||
// dishesService.updateDishes(updateReqVO);
|
}
|
||||||
// return success(true);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// @DeleteMapping("/delete")
|
// @DeleteMapping("/delete")
|
||||||
// @Operation(summary = "删除菜品管理")
|
// @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();
|
int updateAlive();
|
||||||
|
|
||||||
|
Long getCarteen(String mac);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
@ -1,6 +1,7 @@
|
|||||||
package cn.iocoder.yudao.module.system.service.deviceinfo;
|
package cn.iocoder.yudao.module.system.service.deviceinfo;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
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.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.deviceinfo.vo.DeviceInfoPageReqVO;
|
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.DishesPageReqVO;
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.dishes.vo.DishesRespVO;
|
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.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 cn.iocoder.yudao.module.system.dal.dataobject.dishes.DishesDO;
|
||||||
|
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
@ -25,6 +27,8 @@ public interface DishesService {
|
|||||||
*/
|
*/
|
||||||
Long createDishes(@Valid DishesSaveReqVO createReqVO);
|
Long createDishes(@Valid DishesSaveReqVO createReqVO);
|
||||||
|
|
||||||
|
Long createDishesApp(AppSaveVO vo);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新菜品管理
|
* 更新菜品管理
|
||||||
*
|
*
|
||||||
@ -32,6 +36,7 @@ public interface DishesService {
|
|||||||
*/
|
*/
|
||||||
void updateDishes(@Valid DishesSaveReqVO updateReqVO);
|
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.dishesnutrition.vo.DishesNutritionSaveReqVO;
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.dishesraw.vo.DishesRawPageReqVO;
|
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.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.dishes.DishesDO;
|
||||||
import cn.iocoder.yudao.module.system.dal.dataobject.dishesnutrition.DishesNutritionDO;
|
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.dataobject.dishesraw.DishesRawDO;
|
||||||
import cn.iocoder.yudao.module.system.dal.mysql.dishes.DishesMapper;
|
import cn.iocoder.yudao.module.system.dal.mysql.dishes.DishesMapper;
|
||||||
import cn.iocoder.yudao.module.system.enums.ErrorCodeConstants;
|
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.dishesnutrition.DishesNutritionService;
|
||||||
import cn.iocoder.yudao.module.system.service.dishesraw.DishesRawService;
|
import cn.iocoder.yudao.module.system.service.dishesraw.DishesRawService;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
@ -25,6 +28,7 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@ -47,6 +51,12 @@ public class DishesServiceImpl implements DishesService {
|
|||||||
private DishesNutritionService dishesNutritionService;
|
private DishesNutritionService dishesNutritionService;
|
||||||
@Resource
|
@Resource
|
||||||
private DishesRawService dishesRawService;
|
private DishesRawService dishesRawService;
|
||||||
|
@Resource
|
||||||
|
private DeviceInfoService deviceInfoService;
|
||||||
|
@Resource
|
||||||
|
private HttpServletRequest httpServletRequest;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
public Long createDishes(DishesSaveReqVO createReqVO) {
|
public Long createDishes(DishesSaveReqVO createReqVO) {
|
||||||
@ -77,6 +87,30 @@ public class DishesServiceImpl implements DishesService {
|
|||||||
// 返回
|
// 返回
|
||||||
return dishes.getId();
|
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
|
@Override
|
||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
public void updateDishes(DishesSaveReqVO updateReqVO) {
|
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
|
@Override
|
||||||
public void deleteDishes(Long id) {
|
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));
|
Map<Long, String> collect = dishesDOS.stream().collect(Collectors.toMap(DishesDO::getId, DishesDO::getDishesName));
|
||||||
return collect;
|
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