From e425e5d101e1d48e40674a2a801efb8dd060e8a5 Mon Sep 17 00:00:00 2001 From: gongzuming <gongzuming> Date: 星期五, 20 九月 2024 13:44:35 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master-v2' --- src/main/java/com/mzl/flower/service/flower/FlowerCategoryService.java | 4 ++ src/main/java/com/mzl/flower/mapper/flower/FlowerCategoryMapper.java | 2 + src/main/java/com/mzl/flower/service/payment/OrderService.java | 4 +- src/main/java/com/mzl/flower/web/customer/CustomerSignInController.java | 4 +- src/main/java/com/mzl/flower/dto/response/flower/FlowerCategoryTreeDTO.java | 2 + src/main/java/com/mzl/flower/service/point/PointGoodsService.java | 4 - src/main/java/com/mzl/flower/web/flower/FlowerCategoryController.java | 6 +++ src/main/java/com/mzl/flower/service/impl/coupon/CouponTemplateServiceImpl2.java | 10 +++- src/main/resources/mapper/flower/FlowerCategoryMapper.xml | 29 ++++++++++++++ 9 files changed, 55 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/mzl/flower/dto/response/flower/FlowerCategoryTreeDTO.java b/src/main/java/com/mzl/flower/dto/response/flower/FlowerCategoryTreeDTO.java index 93ababc..d9f9c08 100644 --- a/src/main/java/com/mzl/flower/dto/response/flower/FlowerCategoryTreeDTO.java +++ b/src/main/java/com/mzl/flower/dto/response/flower/FlowerCategoryTreeDTO.java @@ -67,4 +67,6 @@ @ApiModelProperty(value = "级别限制") private String levelLimit; + + private Integer childrenCount; } diff --git a/src/main/java/com/mzl/flower/mapper/flower/FlowerCategoryMapper.java b/src/main/java/com/mzl/flower/mapper/flower/FlowerCategoryMapper.java index f8f58c9..ec0137a 100644 --- a/src/main/java/com/mzl/flower/mapper/flower/FlowerCategoryMapper.java +++ b/src/main/java/com/mzl/flower/mapper/flower/FlowerCategoryMapper.java @@ -14,6 +14,8 @@ @Repository public interface FlowerCategoryMapper extends BaseMapper<FlowerCategory> { + List<FlowerCategoryTreeDTO> selectCategoryList(@Param("condition") FlowerCategoryQueryDTO dto); + List<FlowerCategoryTreeDTO> selectTreeList(@Param("condition") FlowerCategoryQueryDTO dto); void clearParamByParamId(@Param("paramId") Long paramId); diff --git a/src/main/java/com/mzl/flower/service/flower/FlowerCategoryService.java b/src/main/java/com/mzl/flower/service/flower/FlowerCategoryService.java index 41f590e..b90f6c8 100644 --- a/src/main/java/com/mzl/flower/service/flower/FlowerCategoryService.java +++ b/src/main/java/com/mzl/flower/service/flower/FlowerCategoryService.java @@ -122,6 +122,10 @@ return dto; } + public List<FlowerCategoryTreeDTO> selectCategoryList(FlowerCategoryQueryDTO dto){ + return categoryMapper.selectCategoryList(dto); + } + public List<FlowerCategoryTreeDTO> selectCategoryTree(FlowerCategoryQueryDTO dto) { List<FlowerCategoryTreeDTO> treeList = categoryMapper.selectTreeList(dto); treeList = (List<FlowerCategoryTreeDTO>) TreeBuilderUtil.buildListToTree(treeList); diff --git a/src/main/java/com/mzl/flower/service/impl/coupon/CouponTemplateServiceImpl2.java b/src/main/java/com/mzl/flower/service/impl/coupon/CouponTemplateServiceImpl2.java index b33c44a..247093e 100644 --- a/src/main/java/com/mzl/flower/service/impl/coupon/CouponTemplateServiceImpl2.java +++ b/src/main/java/com/mzl/flower/service/impl/coupon/CouponTemplateServiceImpl2.java @@ -421,7 +421,9 @@ if(couponTemplateDO==null){ throw new ValidationException("优惠券不存在"); } - + if(couponTemplateDO.getCouponAmount()<=0 ){ + throw new ValidationException("优惠券已兑换完"); + } CustomerPoint cp = customerPointMapper.selectOne(new LambdaQueryWrapper<CustomerPoint>() .eq(CustomerPoint::getUserId, SecurityUtils.getUserId())); if(cp == null || (cp.getTotalPoint()-cp.getUsedPoint()-cp.getExpiredPoint()- cp.getExpiredPoint()) < couponTemplateDO.getPoint() * dto.getNum()){ @@ -439,6 +441,10 @@ recordDTO.setCustomerId(customer.getId()); couponRecordService.createCouponRecord(recordDTO); +// //更新优惠券数量 +// couponTemplateDO.setCouponAmount(couponTemplateDO.getCouponAmount()-dto.getNum()); +// couponTemplateService.updateById(couponTemplateDO); + //更新积分汇总 cp.setUsedPoint(cp.getUsedPoint()+couponTemplateDO.getPoint()); customerPointMapper.updateById(cp); @@ -454,8 +460,6 @@ detail.setRemarks(couponTemplateDO.getCouponName()); detail.create(SecurityUtils.getUserId()); customerPointDetailMapper.insert(detail); - }catch (Exception e){ - throw new ValidationException("兑换失败"); }finally { lockService.releaseObjectLock(key,""); } diff --git a/src/main/java/com/mzl/flower/service/payment/OrderService.java b/src/main/java/com/mzl/flower/service/payment/OrderService.java index 0b26afb..681a6fd 100644 --- a/src/main/java/com/mzl/flower/service/payment/OrderService.java +++ b/src/main/java/com/mzl/flower/service/payment/OrderService.java @@ -541,7 +541,7 @@ List<FlowerCartListDTO> flowers = p.getFlowers(); Map<Long, List<ParamItemDTO>> paramMap = new HashMap<>(); final BigDecimal flowerAmount = order.getFlowerAmount();//订单商品总价 - final BigDecimal memberCouponAmount = order.getMemberCouponAmount();//使用优惠券面值 + final BigDecimal memberCouponAmount = getAmount(order.getMemberCouponAmount());//使用优惠券面值 BigDecimal usedCouponAmount = new BigDecimal(0); for (int i = 0; i < flowers.size(); i++) { FlowerCartListDTO f = flowers.get(i); @@ -637,7 +637,7 @@ private BigDecimal calculateCoupon(BigDecimal couponAmount, BigDecimal itemTotalAmount , BigDecimal totalAmount, Integer num, BigDecimal price , boolean isLastOne, BigDecimal usedCouponAmount){ - if(couponAmount == null){ + if(couponAmount == null || couponAmount.doubleValue() == 0){ return new BigDecimal(0); } diff --git a/src/main/java/com/mzl/flower/service/point/PointGoodsService.java b/src/main/java/com/mzl/flower/service/point/PointGoodsService.java index 69c144b..e56ab9f 100644 --- a/src/main/java/com/mzl/flower/service/point/PointGoodsService.java +++ b/src/main/java/com/mzl/flower/service/point/PointGoodsService.java @@ -143,7 +143,7 @@ if(!Constants.POINT_GOODS_STATUS.A.name().equals(p.getStatus())){ throw new ValidationException("商品未上架"); } - if(p.getStock()< dto.getNum()){ + if(p.getStock() <=0 || p.getStock()< dto.getNum()){ throw new ValidationException("商品库存不足"); } CustomerPoint cp = customerPointMapper.selectOne(new LambdaQueryWrapper<CustomerPoint>() @@ -190,8 +190,6 @@ //更新库存 p.setStock(p.getStock()- dto.getNum()); pointGoodsMapper.updateById(p); - }catch (Exception e){ - throw new ValidationException("兑换失败"); }finally { lockService.releaseObjectLock(key,""); } diff --git a/src/main/java/com/mzl/flower/web/customer/CustomerSignInController.java b/src/main/java/com/mzl/flower/web/customer/CustomerSignInController.java index 5254160..96d4cda 100644 --- a/src/main/java/com/mzl/flower/web/customer/CustomerSignInController.java +++ b/src/main/java/com/mzl/flower/web/customer/CustomerSignInController.java @@ -39,8 +39,8 @@ @GetMapping("/list") @ApiOperation(value = "签到历史") public ResponseEntity<ReturnDataDTO<List<CustomerPointDetailDTO>>> signList(String startDateStr, String endDateStr) { - LocalDate startDate = LocalDate.parse(startDateStr); - LocalDate endDate = LocalDate.parse(endDateStr); + LocalDate startDate = customerPointService.parseLocalDate(startDateStr); + LocalDate endDate = customerPointService.parseLocalDate(endDateStr); return returnData(R.SUCCESS.getCode(), customerPointService.signList(startDate, endDate)); } diff --git a/src/main/java/com/mzl/flower/web/flower/FlowerCategoryController.java b/src/main/java/com/mzl/flower/web/flower/FlowerCategoryController.java index 772fdbb..e40416e 100644 --- a/src/main/java/com/mzl/flower/web/flower/FlowerCategoryController.java +++ b/src/main/java/com/mzl/flower/web/flower/FlowerCategoryController.java @@ -66,6 +66,12 @@ return returnData(R.SUCCESS.getCode(), categoryService.selectCategoryTree(dto)); } + @GetMapping("/list") + @ApiOperation(value = "获取商品分类列表") + public ResponseEntity<ReturnDataDTO<List<FlowerCategoryTreeDTO>>> selectCategoryList(FlowerCategoryQueryDTO dto){ + return returnData(R.SUCCESS.getCode(), categoryService.selectCategoryList(dto)); + } + @GetMapping("/tree/delete") @ApiOperation(value = "删除商品分类") @ApiImplicitParams({ diff --git a/src/main/resources/mapper/flower/FlowerCategoryMapper.xml b/src/main/resources/mapper/flower/FlowerCategoryMapper.xml index 0051a46..7cd07ee 100644 --- a/src/main/resources/mapper/flower/FlowerCategoryMapper.xml +++ b/src/main/resources/mapper/flower/FlowerCategoryMapper.xml @@ -2,6 +2,35 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <mapper namespace="com.mzl.flower.mapper.flower.FlowerCategoryMapper"> + <select id="selectCategoryList" resultType="com.mzl.flower.dto.response.flower.FlowerCategoryTreeDTO"> + SELECT q.* + , (select count(1) from t_flower_category f where f.parent_id = q.id) childrenCount + FROM t_flower_category q + WHERE q.deleted = 0 + <if test="condition.name != null and condition.name != ''"> + AND (q.name LIKE concat('%', #{condition.name},'%') + or exists ( + select 1 from t_flower_category sq where sq.parent_id = q.id and sq.name LIKE concat('%', #{condition.name},'%') + ) + ) + </if> + <choose> + <when test="condition.parentId != null"> + AND q.parent_id = #{condition.parentId} + </when> + <otherwise> + AND q.parent_id is null + </otherwise> + </choose> + <if test="condition.shown != null and condition.shown"> + AND (q.shown = 1 or q.shown is null) + </if> + <if test="condition.shown != null and !condition.shown"> + AND q.shown = 0 + </if> + ORDER BY q.sort_by, q.create_time Desc + </select> + <select id="selectTreeList" resultType="com.mzl.flower.dto.response.flower.FlowerCategoryTreeDTO"> SELECT q.* , (select min(f.price) from t_flower f where f.category = q.id and f.status = 'UP' and f.deleted = 0) priceLow -- Gitblit v1.9.3