超市订单

This commit is contained in:
seesaw
2024-10-29 16:21:05 +08:00
parent 28afb0d881
commit 7b6e1913db
9 changed files with 40 additions and 3 deletions

View File

@ -1,8 +1,10 @@
package cn.iocoder.yudao.module.member.controller.admin.storeorder;
import cn.hutool.core.bean.BeanUtil;
import cn.iocoder.yudao.module.member.controller.app.storeorder.vo.AppStoreOrderDetailVo;
import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
import cn.iocoder.yudao.module.member.dal.mysql.user.MemberUserMapper;
import cn.iocoder.yudao.module.member.service.storeorderdetail.StoreOrderDetailService;
import cn.iocoder.yudao.module.member.service.user.MemberUserService;
import cn.iocoder.yudao.module.system.api.cashregisterinfo.CashregisterinfoApi;
import org.springframework.web.bind.annotation.*;
@ -16,6 +18,7 @@ import io.swagger.v3.oas.annotations.Operation;
import javax.validation.constraints.*;
import javax.validation.*;
import javax.servlet.http.*;
import java.math.BigDecimal;
import java.util.*;
import java.io.IOException;
@ -46,6 +49,8 @@ public class StoreOrderController {
private MemberUserService userService;
@Resource
private CashregisterinfoApi cashregisterinfoApi;
@Resource
private StoreOrderDetailService orderDetailService;
@PostMapping("/create")
@Operation(summary = "创建商品订单")
@ -84,6 +89,8 @@ public class StoreOrderController {
storeOrderDetailVO.setMobile(user.getMobile());
String storeName = cashregisterinfoApi.getStoreName(storeOrder.getEquipmentCode());
storeOrderDetailVO.setStoresName(storeName);
List<AppStoreOrderDetailVo> listByOrderNo = orderDetailService.getListByOrderNo(storeOrder.getOrderId());
storeOrderDetailVO.setDetailDOS(listByOrderNo);
return success(storeOrderDetailVO);
}
@ -108,4 +115,11 @@ public class StoreOrderController {
BeanUtils.toBean(list, StoreOrderRespVO.class));
}
@GetMapping("/reduction")
@Operation(summary = "减免")
public CommonResult<Boolean> reduction(Long orderId, BigDecimal money){
storeOrderService.reduction(orderId,money);
return CommonResult.success(true);
}
}

View File

@ -39,7 +39,7 @@ public class StoreSaleGoodsController {
private StoreSaleGoodsService storeSaleGoodsService;
@PostMapping("/create")
@Operation(summary = "创建售卖商品")
@Operation(summary = "创建售卖商品(上架)")
@PreAuthorize("@ss.hasPermission('member:store-sale-goods:create')")
public CommonResult<Long> createStoreSaleGoods(@Valid @RequestBody StoreSaleGoodsSaveReqVO createReqVO) {
return success(storeSaleGoodsService.createStoreSaleGoods(createReqVO));
@ -54,7 +54,7 @@ public class StoreSaleGoodsController {
}
@DeleteMapping("/delete")
@Operation(summary = "删除售卖商品")
@Operation(summary = "删除售卖商品(下架)")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('member:store-sale-goods:delete')")
public CommonResult<Boolean> deleteStoreSaleGoods(@RequestParam("id") Long id) {
@ -92,4 +92,5 @@ public class StoreSaleGoodsController {
BeanUtils.toBean(list, StoreSaleGoodsRespVO.class));
}
}

View File

@ -7,6 +7,7 @@ public class StoreGoodsDto {
private Integer goodsId;
private Double customPrice;
private Integer number;
private String goodsName;
public double getTotalPrice() {

View File

@ -59,4 +59,6 @@ public class AppStoreOrderController {
return success(bean);
}
}

View File

@ -35,6 +35,8 @@ public class StoreOrderDetailDO extends BaseDO {
* 商品ID
*/
private Integer goodsId;
private Integer goodsName;
/**
* 单价
*/

View File

@ -30,7 +30,7 @@ public interface StoreOrderDetailMapper extends BaseMapperX<StoreOrderDetailDO>
}
@Select("select od.custom_price,od.number,od.weight,sg.goods_name,sg.img from member_store_order_detail od left join member_store_goods sg on od.goods_id = sg.goods_id where od.order_id = #{orderId}")
@Select("select od.custom_price,od.number,od.weight,od.goods_name,sg.img from member_store_order_detail od left join member_store_goods sg on od.goods_id = sg.goods_id where od.order_id = #{orderId}")
List<AppStoreOrderDetailVo> selectByOrderId(Integer orderId);
}

View File

@ -11,6 +11,7 @@ import cn.iocoder.yudao.module.member.controller.app.store.vo.UserInfoVo;
import cn.iocoder.yudao.module.member.dal.dataobject.storeorder.StoreOrderDO;
import javax.validation.Valid;
import java.math.BigDecimal;
/**
* 商品订单 Service 接口
@ -68,4 +69,6 @@ public interface StoreOrderService {
void batchCacheOrder(StoreOrderUploadDto dto);
PageResult<StoreOrderPageVO> getStoreOrderPageNew(StoreOrderPageVO pageReqVO);
void reduction(Long orderId, BigDecimal money);
}

View File

@ -233,6 +233,19 @@ public class StoreOrderServiceImpl implements StoreOrderService {
return new PageResult<>(records, pageNew.getTotal());
}
@Override
public void reduction(Long orderId, BigDecimal money) {
StoreOrderDO storeOrderDO = storeOrderMapper.selectById(orderId);
Double totalPrice = storeOrderDO.getTotalPrice();
BigDecimal total = BigDecimal.valueOf(totalPrice).setScale(2, RoundingMode.HALF_UP);
Double reductionPrice = storeOrderDO.getReductionPrice();
BigDecimal reduction = BigDecimal.valueOf(reductionPrice).setScale(2, RoundingMode.HALF_UP);
storeOrderDO.setReductionPrice(reduction.add(money).doubleValue());
storeOrderDO.setTotalPrice(total.subtract(money).doubleValue());
storeOrderMapper.updateById(storeOrderDO);
deductionService.reduction(storeOrderDO.getUserId(), money, BigDecimal.ZERO,money, BigDecimal.ZERO);
}
public void test() {
//计算金额
//if (total.compareTo(wxAmount) <= 0) {

View File

@ -28,6 +28,7 @@
and mu.mobile like concat('%',#{mobile},'%')
</if>
</where>
order by so.order_id DESC
</select>
</mapper>