From ead65cd9b15cd574f4e37c3376c7447efea53935 Mon Sep 17 00:00:00 2001 From: gongzuming <gongzuming> Date: 星期一, 09 九月 2024 20:27:23 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' into master-v2 --- src/main/resources/application-local.yml | 2 src/main/java/com/mzl/flower/service/supplier/SupplierService.java | 15 + src/main/java/com/mzl/flower/dto/request/flower/FlowerBatchDTO.java | 14 + src/main/java/com/mzl/flower/constant/Constants.java | 16 + src/main/java/com/mzl/flower/dto/request/partner/QueryPartnerDTO.java | 3 src/main/java/com/mzl/flower/service/flower/FlowerService.java | 145 +++++++++++ src/main/resources/application-prod.yml | 2 src/main/java/com/mzl/flower/entity/flower/Flower.java | 4 src/main/java/com/mzl/flower/web/login/SupplierLoginController.java | 13 + src/main/java/com/mzl/flower/web/customer/CustomerController.java | 12 src/main/java/com/mzl/flower/entity/partner/Partner.java | 2 src/main/java/com/mzl/flower/dto/request/payment/OrderItemSalesQueryDTO.java | 2 src/main/java/com/mzl/flower/service/payment/OrderItemSalesService.java | 1 src/main/resources/mapper/flower/FlowerMapper.xml | 29 ++ src/main/java/com/mzl/flower/web/login/CustomerLoginController.java | 14 + src/main/java/com/mzl/flower/web/supplier/FlowerSupplierController.java | 21 + src/main/resources/application-dev.yml | 2 src/main/resources/mapper/customer/CustomerMapper.xml | 3 src/main/resources/mapper/payment/OrderItemSalesMapper.xml | 8 src/main/java/com/mzl/flower/service/flower/FlowerDeleteService.java | 16 + src/main/java/com/mzl/flower/web/partner/PartnerController.java | 7 src/main/java/com/mzl/flower/entity/payment/OrderItemSales.java | 2 src/main/java/com/mzl/flower/dto/response/partner/PartnerDTO.java | 3 src/main/java/com/mzl/flower/service/impl/FlowerDeleteServiceImpl.java | 20 + src/main/java/com/mzl/flower/service/partner/PartnerService.java | 16 + src/main/java/com/mzl/flower/dto/response/supplier/SupplierDTO.java | 3 src/main/resources/application-test.yml | 2 src/main/java/com/mzl/flower/mapper/flower/FlowerMapper.java | 9 src/main/java/com/mzl/flower/service/customer/CustomerService.java | 14 + src/main/resources/mapper/partner/PartnerMapper.xml | 3 src/main/java/com/mzl/flower/web/login/PartnerLoginController.java | 13 + src/main/java/com/mzl/flower/dto/request/payment/OrderItemSalesCreateDTO.java | 2 src/main/java/com/mzl/flower/dto/response/customer/CustomerDTO.java | 3 src/main/java/com/mzl/flower/dto/request/supplier/QuerySupplierDTO.java | 3 src/main/java/com/mzl/flower/web/supplier/SupplierController.java | 7 src/main/java/com/mzl/flower/dto/request/customer/QueryCustomerDTO.java | 3 src/main/java/com/mzl/flower/dto/response/payment/OrderItemSalesNewListDTO.java | 5 src/main/java/com/mzl/flower/dto/response/flower/FlowerSupplierListDTO.java | 3 src/main/java/com/mzl/flower/mapper/FlowerDeleteMapper.java | 16 + src/main/resources/mapper/flower/FlowerDeleteMapper.xml | 37 +++ src/main/java/com/mzl/flower/entity/FlowerDeleteDO.java | 152 ++++++++++++ src/main/java/com/mzl/flower/entity/supplier/Supplier.java | 2 src/main/resources/mapper/supplier/SupplierMapper.xml | 3 src/main/java/com/mzl/flower/entity/customer/Customer.java | 3 src/main/resources/application.yml | 16 45 files changed, 647 insertions(+), 24 deletions(-) diff --git a/src/main/java/com/mzl/flower/constant/Constants.java b/src/main/java/com/mzl/flower/constant/Constants.java index 5e55cf9..bdfa1af 100644 --- a/src/main/java/com/mzl/flower/constant/Constants.java +++ b/src/main/java/com/mzl/flower/constant/Constants.java @@ -555,4 +555,20 @@ return desc; } } + public enum after_sale_type { + barters("换货"), + returns("退货"), + ; + + after_sale_type(String desc) { + this.desc = desc; + } + + private String desc; + + public String getDesc() { + return desc; + } + } + } diff --git a/src/main/java/com/mzl/flower/dto/request/customer/QueryCustomerDTO.java b/src/main/java/com/mzl/flower/dto/request/customer/QueryCustomerDTO.java index c8eaca9..7ee97d2 100644 --- a/src/main/java/com/mzl/flower/dto/request/customer/QueryCustomerDTO.java +++ b/src/main/java/com/mzl/flower/dto/request/customer/QueryCustomerDTO.java @@ -28,4 +28,7 @@ @ApiModelProperty(hidden = true) private String partnerUserId; + + @ApiModelProperty("启用/禁用(USER_ENABLED_OR_DISABLED)") + private Integer isEnabled; } diff --git a/src/main/java/com/mzl/flower/dto/request/flower/FlowerBatchDTO.java b/src/main/java/com/mzl/flower/dto/request/flower/FlowerBatchDTO.java new file mode 100644 index 0000000..318314b --- /dev/null +++ b/src/main/java/com/mzl/flower/dto/request/flower/FlowerBatchDTO.java @@ -0,0 +1,14 @@ +package com.mzl.flower.dto.request.flower; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.util.List; + +@Data +public class FlowerBatchDTO { + @ApiModelProperty(value = "ids") + @NotNull(message = "传入的IDS不能为空") + private List<Long> ids; +} diff --git a/src/main/java/com/mzl/flower/dto/request/partner/QueryPartnerDTO.java b/src/main/java/com/mzl/flower/dto/request/partner/QueryPartnerDTO.java index b83eb27..94cee52 100644 --- a/src/main/java/com/mzl/flower/dto/request/partner/QueryPartnerDTO.java +++ b/src/main/java/com/mzl/flower/dto/request/partner/QueryPartnerDTO.java @@ -34,4 +34,7 @@ @ApiModelProperty(value = "申请时间(yyyy-mm-dd)", hidden = true) private LocalDateTime createDateEnd; + + @ApiModelProperty("启用/禁用(USER_ENABLED_OR_DISABLED)") + private Integer isEnabled; } diff --git a/src/main/java/com/mzl/flower/dto/request/payment/OrderItemSalesCreateDTO.java b/src/main/java/com/mzl/flower/dto/request/payment/OrderItemSalesCreateDTO.java index c43c68e..c665e2d 100644 --- a/src/main/java/com/mzl/flower/dto/request/payment/OrderItemSalesCreateDTO.java +++ b/src/main/java/com/mzl/flower/dto/request/payment/OrderItemSalesCreateDTO.java @@ -23,4 +23,6 @@ @ApiModelProperty(value = "理由") private String reason; + @ApiModelProperty(value = "售后类型") + private String salesType; } diff --git a/src/main/java/com/mzl/flower/dto/request/payment/OrderItemSalesQueryDTO.java b/src/main/java/com/mzl/flower/dto/request/payment/OrderItemSalesQueryDTO.java index 4d23a14..63adac0 100644 --- a/src/main/java/com/mzl/flower/dto/request/payment/OrderItemSalesQueryDTO.java +++ b/src/main/java/com/mzl/flower/dto/request/payment/OrderItemSalesQueryDTO.java @@ -67,4 +67,6 @@ @ApiModelProperty(hidden = true) private LocalDateTime salesEndDate; + + private String salesType;//售后类型 } diff --git a/src/main/java/com/mzl/flower/dto/request/supplier/QuerySupplierDTO.java b/src/main/java/com/mzl/flower/dto/request/supplier/QuerySupplierDTO.java index db948e4..aea17e6 100644 --- a/src/main/java/com/mzl/flower/dto/request/supplier/QuerySupplierDTO.java +++ b/src/main/java/com/mzl/flower/dto/request/supplier/QuerySupplierDTO.java @@ -29,4 +29,7 @@ @ApiModelProperty(value = "申请时间(yyyy-mm-dd)", hidden = true) private LocalDateTime createDateEnd; + + @ApiModelProperty("启用/禁用(USER_ENABLED_OR_DISABLED)") + private Integer isEnabled; } diff --git a/src/main/java/com/mzl/flower/dto/response/customer/CustomerDTO.java b/src/main/java/com/mzl/flower/dto/response/customer/CustomerDTO.java index fdb8747..25442ff 100644 --- a/src/main/java/com/mzl/flower/dto/response/customer/CustomerDTO.java +++ b/src/main/java/com/mzl/flower/dto/response/customer/CustomerDTO.java @@ -54,5 +54,8 @@ @ApiModelProperty("更新时间") private LocalDateTime updateTime; + @ApiModelProperty("启用/禁用") + private Boolean isEnabled; + private UserGrowthRecordDTO userGrowthRecord; } diff --git a/src/main/java/com/mzl/flower/dto/response/flower/FlowerSupplierListDTO.java b/src/main/java/com/mzl/flower/dto/response/flower/FlowerSupplierListDTO.java index b47226e..a433584 100644 --- a/src/main/java/com/mzl/flower/dto/response/flower/FlowerSupplierListDTO.java +++ b/src/main/java/com/mzl/flower/dto/response/flower/FlowerSupplierListDTO.java @@ -47,4 +47,7 @@ private String statusStr; private Integer realSales;//真实销量 + + @ApiModelProperty(value = "价格排序") + private Integer typeRank; } diff --git a/src/main/java/com/mzl/flower/dto/response/partner/PartnerDTO.java b/src/main/java/com/mzl/flower/dto/response/partner/PartnerDTO.java index 9d292a0..f57ed7c 100644 --- a/src/main/java/com/mzl/flower/dto/response/partner/PartnerDTO.java +++ b/src/main/java/com/mzl/flower/dto/response/partner/PartnerDTO.java @@ -64,4 +64,7 @@ @ApiModelProperty("更新时间") private LocalDateTime updateTime; + + @ApiModelProperty("启用/禁用") + private Boolean isEnabled; } diff --git a/src/main/java/com/mzl/flower/dto/response/payment/OrderItemSalesNewListDTO.java b/src/main/java/com/mzl/flower/dto/response/payment/OrderItemSalesNewListDTO.java index 26f7399..0a30d16 100644 --- a/src/main/java/com/mzl/flower/dto/response/payment/OrderItemSalesNewListDTO.java +++ b/src/main/java/com/mzl/flower/dto/response/payment/OrderItemSalesNewListDTO.java @@ -96,4 +96,9 @@ @ApiModelProperty(value = "审核时间") private LocalDateTime auditTime; + + @ApiModelProperty(value = "售后类型") + @DictTrans(target = "salesTypeStr", codeType = "after_sale_type") + private String salesType; + private String salesTypeStr; } diff --git a/src/main/java/com/mzl/flower/dto/response/supplier/SupplierDTO.java b/src/main/java/com/mzl/flower/dto/response/supplier/SupplierDTO.java index 282f638..71fb6c8 100644 --- a/src/main/java/com/mzl/flower/dto/response/supplier/SupplierDTO.java +++ b/src/main/java/com/mzl/flower/dto/response/supplier/SupplierDTO.java @@ -93,4 +93,7 @@ @ApiModelProperty("是否显示商品") private Boolean showed; + + @ApiModelProperty("启用/禁用") + private Boolean isEnabled; } diff --git a/src/main/java/com/mzl/flower/entity/FlowerDeleteDO.java b/src/main/java/com/mzl/flower/entity/FlowerDeleteDO.java new file mode 100644 index 0000000..ca91623 --- /dev/null +++ b/src/main/java/com/mzl/flower/entity/FlowerDeleteDO.java @@ -0,0 +1,152 @@ +package com.mzl.flower.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * @author @TaoJie + * @since 2024-09-09 + */ +@Data +@Accessors(chain = true) +@TableName("t_flower_delete") +public class FlowerDeleteDO{ + + @TableId(value = "id") + private Long id; + + @TableField("create_by") + private String createBy; + + @TableField("create_time") + private LocalDateTime createTime; + + @TableField("update_by") + private String updateBy; + + @TableField("update_time") + private LocalDateTime updateTime; + + @TableField("deleted") + @TableLogic + private Boolean deleted; + + /** + * 分类id + */ + private Long category; + + /** + * 单位 + */ + private String unit; + + /** + * 颜色 + */ + private String color; + + /** + * 名称 + */ + private String name; + + /** + * 封面 + */ + private String cover; + + /** + * 轮播图 + */ + private String banners; + + /** + * 视频 + */ + private String video; + + /** + * 级别; FLOWER_LEVEL + */ + private String level; + + /** + * 所属供应商 + */ + private Long supplierId; + + /** + * 供应商价格 + */ + private BigDecimal price; + + /** + * 库存 + */ + private Integer stock; + + /** + * 状态 + */ + private String status; + + /** + * 标签 + */ + private String tags; + + /** + * 审核意见 + */ + private String auditRemarks; + + /** + * 审核时间 + */ + private LocalDateTime auditTime; + + /** + * 是否显示 + */ + private Boolean shown; + + /** + * 销量 + */ + private Integer sales; + + /** + * 描述 + */ + private String description; + + /** + * 是否推荐 + */ + private Boolean recommend; + + /** + * 真实销量 + */ + private Integer realSales; + + /** + * 推荐排序 + */ + private Integer recommendRank; + + /** + * 同类排名 + */ + private Integer typeRank; + + +} diff --git a/src/main/java/com/mzl/flower/entity/customer/Customer.java b/src/main/java/com/mzl/flower/entity/customer/Customer.java index 38dd158..a62cb78 100644 --- a/src/main/java/com/mzl/flower/entity/customer/Customer.java +++ b/src/main/java/com/mzl/flower/entity/customer/Customer.java @@ -6,7 +6,6 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import java.time.LocalDateTime; @Data @TableName("t_customer_info") @@ -42,6 +41,8 @@ @ApiModelProperty("店铺简介") private String description; + @ApiModelProperty("启用/禁用") + private Boolean isEnabled; @ApiModelProperty("等级id") private Long levelId; } diff --git a/src/main/java/com/mzl/flower/entity/flower/Flower.java b/src/main/java/com/mzl/flower/entity/flower/Flower.java index 6519511..2728d88 100644 --- a/src/main/java/com/mzl/flower/entity/flower/Flower.java +++ b/src/main/java/com/mzl/flower/entity/flower/Flower.java @@ -3,7 +3,6 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.mzl.flower.base.BaseAutoEntity; -import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; @@ -76,4 +75,7 @@ @TableField("recommend_rank") private Integer recommendRank;//推荐排序 + @TableField("type_rank") + private Integer typeRank;//同类排序 + } \ No newline at end of file diff --git a/src/main/java/com/mzl/flower/entity/partner/Partner.java b/src/main/java/com/mzl/flower/entity/partner/Partner.java index 13fbb92..805f960 100644 --- a/src/main/java/com/mzl/flower/entity/partner/Partner.java +++ b/src/main/java/com/mzl/flower/entity/partner/Partner.java @@ -53,4 +53,6 @@ @ApiModelProperty("推广二维码-设计后") private String codeUrl; + @ApiModelProperty("启用/禁用") + private Boolean isEnabled; } diff --git a/src/main/java/com/mzl/flower/entity/payment/OrderItemSales.java b/src/main/java/com/mzl/flower/entity/payment/OrderItemSales.java index 8ea8905..62d2cd4 100644 --- a/src/main/java/com/mzl/flower/entity/payment/OrderItemSales.java +++ b/src/main/java/com/mzl/flower/entity/payment/OrderItemSales.java @@ -69,4 +69,6 @@ @TableField("refund_id") private String refundId;//退款id + private String salesType;//售后类型 + } diff --git a/src/main/java/com/mzl/flower/entity/supplier/Supplier.java b/src/main/java/com/mzl/flower/entity/supplier/Supplier.java index 6b8bd2f..0b7e974 100644 --- a/src/main/java/com/mzl/flower/entity/supplier/Supplier.java +++ b/src/main/java/com/mzl/flower/entity/supplier/Supplier.java @@ -70,5 +70,7 @@ @ApiModelProperty("是否显示商品") private Boolean showed; + @ApiModelProperty("启用/禁用") + private Boolean isEnabled; } diff --git a/src/main/java/com/mzl/flower/mapper/FlowerDeleteMapper.java b/src/main/java/com/mzl/flower/mapper/FlowerDeleteMapper.java new file mode 100644 index 0000000..837262b --- /dev/null +++ b/src/main/java/com/mzl/flower/mapper/FlowerDeleteMapper.java @@ -0,0 +1,16 @@ +package com.mzl.flower.mapper; + +import com.mzl.flower.entity.FlowerDeleteDO; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * <p> + * Mapper 接口 + * </p> + * + * @author @TaoJie + * @since 2024-09-09 + */ +public interface FlowerDeleteMapper extends BaseMapper<FlowerDeleteDO> { + +} diff --git a/src/main/java/com/mzl/flower/mapper/flower/FlowerMapper.java b/src/main/java/com/mzl/flower/mapper/flower/FlowerMapper.java index 5dac1ce..6294161 100644 --- a/src/main/java/com/mzl/flower/mapper/flower/FlowerMapper.java +++ b/src/main/java/com/mzl/flower/mapper/flower/FlowerMapper.java @@ -46,4 +46,13 @@ void updateFlowerCategoryInfo(Long category); List<Long> searchInvalidHistory(@Param("userId") String userId); + + + void updateBatchTypeRank(@Param("list") List<Flower> flowerList); + + void deleteBatchPhysics(@Param("list") List<Long> ids); + + void restoreFlowerBatch(@Param("list") List<Long> ids); + + List<Flower> getDeletdFlowByIds(@Param("list") List<Long> ids); } diff --git a/src/main/java/com/mzl/flower/service/customer/CustomerService.java b/src/main/java/com/mzl/flower/service/customer/CustomerService.java index ba19e78..84774d7 100644 --- a/src/main/java/com/mzl/flower/service/customer/CustomerService.java +++ b/src/main/java/com/mzl/flower/service/customer/CustomerService.java @@ -79,6 +79,7 @@ } customer.create(SecurityUtils.getUserId()); + customer.setIsEnabled(true); customer.setLevelId(Long.valueOf(Constants.DEFAULT_MEMBER_ID)); customerMapper.insert(customer); } else {//重新修改 @@ -215,6 +216,19 @@ } return null; } + public void isEnable(Long id) { + Customer customer = customerMapper.selectById(id); + if (customer == null) { + throw new ValidationException("商户信息不存在"); + } + if (customer.getIsEnabled()) { + customer.setIsEnabled(false); + } else { + customer.setIsEnabled(true); + } + customer.update(SecurityUtils.getUserId()); + customerMapper.updateById(customer); + } /** * 根据会员等级获取等级下的customer信息 diff --git a/src/main/java/com/mzl/flower/service/flower/FlowerDeleteService.java b/src/main/java/com/mzl/flower/service/flower/FlowerDeleteService.java new file mode 100644 index 0000000..d3cb135 --- /dev/null +++ b/src/main/java/com/mzl/flower/service/flower/FlowerDeleteService.java @@ -0,0 +1,16 @@ +package com.mzl.flower.service.flower; + +import com.mzl.flower.entity.FlowerDeleteDO; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * <p> + * 服务类 + * </p> + * + * @author @TaoJie + * @since 2024-09-09 + */ +public interface FlowerDeleteService extends IService<FlowerDeleteDO> { + +} diff --git a/src/main/java/com/mzl/flower/service/flower/FlowerService.java b/src/main/java/com/mzl/flower/service/flower/FlowerService.java index 98451a5..4ad623e 100644 --- a/src/main/java/com/mzl/flower/service/flower/FlowerService.java +++ b/src/main/java/com/mzl/flower/service/flower/FlowerService.java @@ -6,8 +6,8 @@ import com.mzl.flower.config.security.SecurityUtils; import com.mzl.flower.constant.Constants; import com.mzl.flower.dto.request.flower.*; -import com.mzl.flower.dto.request.flower.FlowerTagMultipleDTO; import com.mzl.flower.dto.response.flower.*; +import com.mzl.flower.entity.FlowerDeleteDO; import com.mzl.flower.entity.customer.Collect; import com.mzl.flower.entity.customer.Customer; import com.mzl.flower.entity.flower.*; @@ -26,6 +26,7 @@ import com.mzl.flower.mapper.supplier.SupplierTypeMapper; import com.mzl.flower.service.BaseService; import com.mzl.flower.service.customer.BrowseService; +import com.mzl.flower.service.payment.RedisLockService; import io.micrometer.core.instrument.util.StringUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; @@ -33,14 +34,15 @@ import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; import java.math.BigDecimal; import java.math.RoundingMode; import java.time.LocalDate; import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.Collectors; @Slf4j @Service @@ -83,6 +85,14 @@ @Autowired private OrderItemMapper orderItemMapper; + @Autowired + private RedisLockService lockService; + + @Autowired + private FlowerDeleteService flowerDeleteService; + + private static final String FLOWER_KEY="com:mzl:flower:service:flower:%s:%s"; + @Async public synchronized void updateFlowerSales(Order order){ List<OrderItem> items = orderItemMapper.selectList(new QueryWrapper<OrderItem>() @@ -98,6 +108,62 @@ public synchronized void updateCategoryInfo(Long category){ flowerMapper.updateFlowerCategoryInfo(category); } + + @Async + public void updateFlowTypeRank(Long id,Long category,String level){ + + Flower flower =null; + // 如果 id 不为空,则 category 和 level 可以为空 + if (Objects.nonNull(id)) { + flower = flowerMapper.selectById(id); + if (flower == null) { + throw new IllegalArgumentException("Flower not found for ID: " + id); + } + category = flower.getCategory(); // 使用从数据库中检索到的 category + level = flower.getLevel(); // 使用从数据库中检索到的 level + } else { + // 如果 id 为空,则 category 和 level 必须提供 + if (Objects.isNull(category) || StringUtils.isEmpty(level)) { + throw new IllegalArgumentException("Category and level must be provided when ID is null"); + } + flower=new Flower(); + flower.setCategory(category); + flower.setLevel(level); + } + + String key=String.format(FLOWER_KEY, flower.getCategory(),flower.getLevel()); + + boolean lock = lockService.getObjectLock(key, ""); + if(!lock){ + return; + } + try{ + + QueryWrapper<Flower> queryWrapper=new QueryWrapper<>(); + queryWrapper.lambda().eq(Flower::getDeleted,false) + .eq(Objects.nonNull(flower.getCategory()),Flower::getCategory,flower.getCategory()) + .eq(StringUtils.isNotEmpty(flower.getLevel()),Flower::getLevel,flower.getLevel()) + .orderByAsc(Flower::getPrice); + final List<Flower> flowerList = flowerMapper.selectList(queryWrapper); + + AtomicInteger index = new AtomicInteger(1); + flowerList.forEach(f -> f.setTypeRank(index.getAndIncrement())); + + if(!CollectionUtils.isEmpty(flowerList)){ + flowerMapper.updateBatchTypeRank(flowerList); + } + + + + + }finally { + lockService.releaseObjectLock(key,""); + } + + } + + + /** * 花农(供应商)提交商品 @@ -129,6 +195,8 @@ paramService.insertTableData(fc.getParamId(), g.getId(), params); } + // 更新商品价格在这里的分类 + updateFlowTypeRank(null,g.getCategory(),g.getLevel()); return g.getId(); } @@ -165,6 +233,9 @@ paramService.updateTableData(fc.getParamId(), g.getId(), params); } } + + // 更新商品价格在这里的分类 + updateFlowTypeRank(null,g.getCategory(),g.getLevel()); return g.getId(); } @@ -385,10 +456,16 @@ } public void deleteFlower(Long id){ + + final Flower flower = flowerMapper.selectById(id); + flowerMapper.deleteById(id); //清除购物车商品 cartMapper.delete(new QueryWrapper<Cart>().eq("flower_id", id)); + // 更新商品价格在这里的分类 + updateFlowTypeRank(null,flower.getCategory(),flower.getLevel()); + } public void restoreFlower(Long id){ @@ -408,6 +485,8 @@ } f.setPrice(dto.getPrice()); flowerMapper.updateById(f); + // 更新商品价格在这里的分类 + updateFlowTypeRank(null,f.getCategory(),f.getLevel()); } public void editFlowerStock(FlowerStockDTO dto){ @@ -730,4 +809,62 @@ } } + + @Transactional + public void deleteFlowerBatch(FlowerBatchDTO dto) { + List<Flower> flowerList = flowerMapper.getDeletdFlowByIds(dto.getIds()); + //物理删除 + flowerMapper.deleteBatchPhysics(dto.getIds()); + // 备份 + if(!CollectionUtils.isEmpty(flowerList)){ + backupFlower(flowerList); + } + } + + @Async + public void backupFlower(List<Flower> flowerList) { + // 备份 + final List<Long> idList = flowerList.stream().map(flower -> flower.getId()).collect(Collectors.toList()); + final List<FlowerDeleteDO> flowerDeleteList = flowerDeleteService.getBaseMapper().selectBatchIds(idList); + // 遍历flowerList 根据ID查找 ,如果flowerDeleteList 存在,则放入到更新列表里面去,如果flowerDeleteList不存在,则添加到新增列表里面去 + + // 将查询到的 flowerDeleteList 的 ID 转为 Set 以便快速查找 + Set<Long> existingIds = flowerDeleteList.stream() + .map(FlowerDeleteDO::getId) + .collect(Collectors.toSet()); + // 使用 Stream 进行更新和插入分类 + List<FlowerDeleteDO> updateList = flowerList.stream() + .filter(flower -> existingIds.contains(flower.getId())) // 过滤出已存在的记录 + .map(flower -> convertToFlowerDeleteDO(flower)) // 转换为 FlowerDeleteDO 对象 + .collect(Collectors.toList()); + + List<FlowerDeleteDO> insertList = flowerList.stream() + .filter(flower -> !existingIds.contains(flower.getId())) // 过滤出不存在的记录 + .map(flower -> convertToFlowerDeleteDO(flower)) // 转换为 FlowerDeleteDO 对象 + .collect(Collectors.toList()); + + // 批量执行更新和新增操作 + if (!updateList.isEmpty()) { + flowerDeleteService.updateBatchById(updateList); // 批量更新 + } + if (!insertList.isEmpty()) { + flowerDeleteService.saveBatch(insertList); // 批量插入 + } + + } + + @Transactional + public void restoreFlowerBatch(FlowerBatchDTO dto) { + flowerMapper.restoreFlowerBatch(dto.getIds()); + } + + // 方法用于将 Flower 转换为 FlowerDeleteDO + private FlowerDeleteDO convertToFlowerDeleteDO(Flower flower) { + FlowerDeleteDO flowerDeleteDO=new FlowerDeleteDO(); + BeanUtils.copyProperties(flower,flowerDeleteDO); + // 其他需要备份的字段... + return flowerDeleteDO; + } + + } diff --git a/src/main/java/com/mzl/flower/service/impl/FlowerDeleteServiceImpl.java b/src/main/java/com/mzl/flower/service/impl/FlowerDeleteServiceImpl.java new file mode 100644 index 0000000..05fc095 --- /dev/null +++ b/src/main/java/com/mzl/flower/service/impl/FlowerDeleteServiceImpl.java @@ -0,0 +1,20 @@ +package com.mzl.flower.service.impl; + +import com.mzl.flower.entity.FlowerDeleteDO; +import com.mzl.flower.mapper.FlowerDeleteMapper; +import com.mzl.flower.service.flower.FlowerDeleteService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + * <p> + * 服务实现类 + * </p> + * + * @author @TaoJie + * @since 2024-09-09 + */ +@Service +public class FlowerDeleteServiceImpl extends ServiceImpl<FlowerDeleteMapper, FlowerDeleteDO> implements FlowerDeleteService { + +} diff --git a/src/main/java/com/mzl/flower/service/partner/PartnerService.java b/src/main/java/com/mzl/flower/service/partner/PartnerService.java index 609684c..15f9a26 100644 --- a/src/main/java/com/mzl/flower/service/partner/PartnerService.java +++ b/src/main/java/com/mzl/flower/service/partner/PartnerService.java @@ -10,6 +10,7 @@ import com.mzl.flower.dto.request.partner.*; import com.mzl.flower.dto.response.partner.PartnerDTO; import com.mzl.flower.entity.partner.Partner; +import com.mzl.flower.entity.supplier.Supplier; import com.mzl.flower.mapper.partner.PartnerMapper; import com.mzl.flower.service.UploadService; import com.mzl.flower.utils.DateUtils; @@ -59,6 +60,7 @@ partner.setIdCards(JSON.toJSONString(dto.getIdCards())); partner.create(SecurityUtils.getUserId()); partner.setStatus(PARTNER_STATUS_AUDIT); + partner.setIsEnabled(true); partnerMapper.insert(partner); }else{//重新修改 partner = partnerMapper.selectById(dto.getId()); @@ -161,4 +163,18 @@ partner.update(SecurityUtils.getUserId()); partnerMapper.updateById(partner); } + + public void isEnable(Long id) { + Partner partner = partnerMapper.selectById(id); + if (partner == null) { + throw new ValidationException("合伙人信息不存在"); + } + if (partner.getIsEnabled()) { + partner.setIsEnabled(false); + } else { + partner.setIsEnabled(true); + } + partner.update(SecurityUtils.getUserId()); + partnerMapper.updateById(partner); + } } diff --git a/src/main/java/com/mzl/flower/service/payment/OrderItemSalesService.java b/src/main/java/com/mzl/flower/service/payment/OrderItemSalesService.java index fb44e7d..e7f77e7 100644 --- a/src/main/java/com/mzl/flower/service/payment/OrderItemSalesService.java +++ b/src/main/java/com/mzl/flower/service/payment/OrderItemSalesService.java @@ -117,6 +117,7 @@ s.setReason(dto.getReason()); s.setStatus(Constants.ORDER_SALES_STATUS.PENDING.name()); s.create(userId); + s.setSalesType(dto.getSalesType()); orderItemSalesMapper.insert(s); return s.getId(); diff --git a/src/main/java/com/mzl/flower/service/supplier/SupplierService.java b/src/main/java/com/mzl/flower/service/supplier/SupplierService.java index c5516c6..67e2e99 100644 --- a/src/main/java/com/mzl/flower/service/supplier/SupplierService.java +++ b/src/main/java/com/mzl/flower/service/supplier/SupplierService.java @@ -50,6 +50,7 @@ supplier.create(SecurityUtils.getUserId()); supplier.setShowed(true); supplier.setStatus(SUPPLIER_STATUS_AUDIT); + supplier.setIsEnabled(true); supplierMapper.insert(supplier); }else{//重新修改 supplier = supplierMapper.selectById(dto.getId()); @@ -187,4 +188,18 @@ supplier.update(SecurityUtils.getUserId()); supplierMapper.updateById(supplier); } + + public void isEnable(Long id) { + Supplier supplier = supplierMapper.selectById(id); + if (supplier == null) { + throw new ValidationException("供应商信息不存在"); + } + if (supplier.getIsEnabled()) { + supplier.setIsEnabled(false); + } else { + supplier.setIsEnabled(true); + } + supplier.update(SecurityUtils.getUserId()); + supplierMapper.updateById(supplier); + } } diff --git a/src/main/java/com/mzl/flower/web/customer/CustomerController.java b/src/main/java/com/mzl/flower/web/customer/CustomerController.java index 4c552d3..8b870c9 100644 --- a/src/main/java/com/mzl/flower/web/customer/CustomerController.java +++ b/src/main/java/com/mzl/flower/web/customer/CustomerController.java @@ -4,15 +4,11 @@ import com.mzl.flower.base.BaseController; import com.mzl.flower.base.R; import com.mzl.flower.base.ReturnDataDTO; -import com.mzl.flower.config.exception.ValidationException; import com.mzl.flower.config.security.SecurityUtils; import com.mzl.flower.dto.request.customer.BindPartnerDTO; import com.mzl.flower.dto.request.customer.ChangePartnerDTO; import com.mzl.flower.dto.request.customer.QueryCustomerDTO; import com.mzl.flower.dto.request.customer.UpdateCustomerDTO; -import com.mzl.flower.dto.request.supplier.AuditSupplierDTO; -import com.mzl.flower.dto.request.supplier.QuerySupplierDTO; -import com.mzl.flower.dto.request.supplier.UpdateSupplierDTO; import com.mzl.flower.dto.response.customer.CustomerDTO; import com.mzl.flower.dto.response.supplier.SupplierDTO; import com.mzl.flower.service.customer.CustomerService; @@ -24,6 +20,7 @@ import org.springframework.web.bind.annotation.*; import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; @RestController @RequestMapping("/api/customer") @@ -85,4 +82,11 @@ public ResponseEntity<ReturnDataDTO<SupplierDTO>> getPartnerName(@NotBlank(message = "参数不能为空") String id) { return returnData(R.SUCCESS.getCode(),customerService.getPartnerName(id)); } + + @GetMapping("/page/isEnable") + @ApiOperation(value = "启用/禁用", notes = "启用/禁用商品") + public ResponseEntity<ReturnDataDTO<String>> isEnable(@NotNull(message = "id不能为空") Long id) { + customerService.isEnable(id); + return returnData(R.SUCCESS.getCode(),null); + } } diff --git a/src/main/java/com/mzl/flower/web/login/CustomerLoginController.java b/src/main/java/com/mzl/flower/web/login/CustomerLoginController.java index 1f5b9a9..475685a 100644 --- a/src/main/java/com/mzl/flower/web/login/CustomerLoginController.java +++ b/src/main/java/com/mzl/flower/web/login/CustomerLoginController.java @@ -14,7 +14,10 @@ import com.mzl.flower.constant.Constants; import com.mzl.flower.dto.request.CreateWechatUserDTO; import com.mzl.flower.dto.request.UserLoginDTO; +import com.mzl.flower.dto.response.customer.CustomerDTO; import com.mzl.flower.entity.system.User; +import com.mzl.flower.mapper.customer.CustomerMapper; +import com.mzl.flower.service.customer.CustomerService; import com.mzl.flower.service.login.LoginService; import com.mzl.flower.service.system.UserService; import com.mzl.flower.service.system.WeChatService; @@ -33,6 +36,7 @@ import org.springframework.security.oauth2.common.OAuth2RefreshToken; import org.springframework.security.oauth2.provider.token.TokenStore; import org.springframework.security.web.authentication.WebAuthenticationDetailsSource; +import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; @@ -60,6 +64,9 @@ @Autowired private UserService userService; + + @Autowired + private CustomerMapper customerMapper; @Autowired @@ -125,6 +132,13 @@ if(user == null){ throw new ValidationException("用户不存在"); } + CustomerDTO currentCustomer = customerMapper.getCurrentCustomer(user.getId()); + if (ObjectUtils.isEmpty(currentCustomer)) { + throw new ValidationException("用户不存在"); + } + if (currentCustomer.getIsEnabled() == false) { + throw new ValidationException("用户已禁用,请联系管理员"); + } String tokenCache = stringCacheClient.get(TOKEN_KEY + SEPARATOR + user.getId()); if (StringUtils.isNotBlank(tokenCache)) { //强制删除token,下线 diff --git a/src/main/java/com/mzl/flower/web/login/PartnerLoginController.java b/src/main/java/com/mzl/flower/web/login/PartnerLoginController.java index 375f43c..b7ffa9e 100644 --- a/src/main/java/com/mzl/flower/web/login/PartnerLoginController.java +++ b/src/main/java/com/mzl/flower/web/login/PartnerLoginController.java @@ -11,7 +11,9 @@ import com.mzl.flower.config.security.token.PhoneAuthenticationToken; import com.mzl.flower.constant.Constants; import com.mzl.flower.dto.request.UserLoginDTO; +import com.mzl.flower.dto.response.partner.PartnerDTO; import com.mzl.flower.entity.system.User; +import com.mzl.flower.mapper.partner.PartnerMapper; import com.mzl.flower.service.login.LoginService; import com.mzl.flower.service.system.UserService; import io.swagger.annotations.Api; @@ -29,6 +31,7 @@ import org.springframework.security.oauth2.common.OAuth2RefreshToken; import org.springframework.security.oauth2.provider.token.TokenStore; import org.springframework.security.web.authentication.WebAuthenticationDetailsSource; +import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -59,7 +62,8 @@ @Autowired private TokenStore tokenStore; - + @Autowired + private PartnerMapper partnerMapper; public static final String SMS_CODE_KEY = "SMS-CODE-KEY"; public static final String TOKEN_KEY = "TOKEN-KEY"; @@ -82,6 +86,13 @@ if(user == null){ throw new ValidationException("用户不存在"); } + PartnerDTO partnerDTO = partnerMapper.getCurrentPartner(user.getId()); + if (ObjectUtils.isEmpty(partnerDTO)) { + throw new ValidationException("用户不存在"); + } + if (partnerDTO.getIsEnabled() == false) { + throw new ValidationException("用户已禁用,请联系管理员"); + } String tokenCache = stringCacheClient.get(TOKEN_KEY + SEPARATOR + user.getId()); if (StringUtils.isNotBlank(tokenCache)) { //强制删除token,下线 diff --git a/src/main/java/com/mzl/flower/web/login/SupplierLoginController.java b/src/main/java/com/mzl/flower/web/login/SupplierLoginController.java index 0147a61..0fd20e3 100644 --- a/src/main/java/com/mzl/flower/web/login/SupplierLoginController.java +++ b/src/main/java/com/mzl/flower/web/login/SupplierLoginController.java @@ -11,7 +11,9 @@ import com.mzl.flower.config.security.token.SupAuthenticationToken; import com.mzl.flower.constant.Constants; import com.mzl.flower.dto.request.UserLoginDTO; +import com.mzl.flower.dto.response.supplier.SupplierDTO; import com.mzl.flower.entity.system.User; +import com.mzl.flower.mapper.supplier.SupplierMapper; import com.mzl.flower.service.login.LoginService; import com.mzl.flower.service.system.UserService; import io.swagger.annotations.Api; @@ -29,6 +31,7 @@ import org.springframework.security.oauth2.common.OAuth2RefreshToken; import org.springframework.security.oauth2.provider.token.TokenStore; import org.springframework.security.web.authentication.WebAuthenticationDetailsSource; +import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -59,6 +62,9 @@ @Autowired private TokenStore tokenStore; + @Autowired + private SupplierMapper supplierMapper; + public static final String SMS_CODE_KEY = "SMS-CODE-KEY"; public static final String TOKEN_KEY = "TOKEN-KEY"; @@ -81,6 +87,13 @@ if(user == null){ throw new ValidationException("用户不存在"); } + SupplierDTO supplierDTO = supplierMapper.getCurrentSupplier(user.getId()); + if (ObjectUtils.isEmpty(supplierDTO)) { + throw new ValidationException("用户不存在"); + } + if (supplierDTO.getIsEnabled() == false) { + throw new ValidationException("用户已禁用,请联系管理员"); + } String tokenCache = stringCacheClient.get(TOKEN_KEY + SEPARATOR + user.getId()); if (StringUtils.isNotBlank(tokenCache)) { //强制删除token,下线 diff --git a/src/main/java/com/mzl/flower/web/partner/PartnerController.java b/src/main/java/com/mzl/flower/web/partner/PartnerController.java index 9fabd8f..3a3a2c8 100644 --- a/src/main/java/com/mzl/flower/web/partner/PartnerController.java +++ b/src/main/java/com/mzl/flower/web/partner/PartnerController.java @@ -77,4 +77,11 @@ return returnData(R.SUCCESS.getCode(),null); } + @GetMapping("/page/isEnable") + @ApiOperation(value = "启用/禁用", notes = "启用/禁用商品") + public ResponseEntity<ReturnDataDTO<String>> isEnable(@NotNull(message = "id不能为空") Long id) { + partnerService.isEnable(id); + return returnData(R.SUCCESS.getCode(),null); + } + } diff --git a/src/main/java/com/mzl/flower/web/supplier/FlowerSupplierController.java b/src/main/java/com/mzl/flower/web/supplier/FlowerSupplierController.java index 54e6c5b..07b0ed3 100644 --- a/src/main/java/com/mzl/flower/web/supplier/FlowerSupplierController.java +++ b/src/main/java/com/mzl/flower/web/supplier/FlowerSupplierController.java @@ -145,4 +145,25 @@ flowerService.editFlowerStock(dto); return returnData(R.SUCCESS.getCode(), null); } + + @PostMapping("/list/delete/batch") + @ApiOperation(value = "商品批量删除") + @ApiImplicitParams({ + @ApiImplicitParam(name = "id", value = "商品ids", required = true, dataType = "Long", paramType = "query") + }) + public ResponseEntity<ReturnDataDTO<?>> deleteFlowerBatch(@RequestBody FlowerBatchDTO dto) { + flowerService.deleteFlowerBatch(dto); + return returnData(R.SUCCESS.getCode(), null); + } + + @PostMapping("/list/restore/batch") + @ApiOperation(value = "商品批量恢复") + @ApiImplicitParams({ + @ApiImplicitParam(name = "id", value = "商品ids", required = true, dataType = "Long", paramType = "query") + }) + public ResponseEntity<ReturnDataDTO<?>> restoreFlowerBatch(@RequestBody FlowerBatchDTO dto) { + flowerService.restoreFlowerBatch(dto); + return returnData(R.SUCCESS.getCode(), null); + } + } diff --git a/src/main/java/com/mzl/flower/web/supplier/SupplierController.java b/src/main/java/com/mzl/flower/web/supplier/SupplierController.java index 4bb7c62..c78ecb5 100644 --- a/src/main/java/com/mzl/flower/web/supplier/SupplierController.java +++ b/src/main/java/com/mzl/flower/web/supplier/SupplierController.java @@ -103,4 +103,11 @@ supplierService.configShow(id); return returnData(R.SUCCESS.getCode(),null); } + + @GetMapping("/page/isEnable") + @ApiOperation(value = "启用/禁用", notes = "启用/禁用商品") + public ResponseEntity<ReturnDataDTO<String>> isEnable(@NotNull(message = "id不能为空") Long id) { + supplierService.isEnable(id); + return returnData(R.SUCCESS.getCode(),null); + } } diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 31d86fa..e4c8c1d 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -3,7 +3,7 @@ active: dev,swagger datasource: type: com.alibaba.druid.pool.DruidDataSource - url: jdbc:mysql://47.99.58.211:3306/flower?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2b8 + url: jdbc:mysql://47.99.58.211:3306/flower?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2b8&allowMultiQueries=true username: root password: Hmy@2024!*@& druid: diff --git a/src/main/resources/application-local.yml b/src/main/resources/application-local.yml index a4e627a..1366594 100644 --- a/src/main/resources/application-local.yml +++ b/src/main/resources/application-local.yml @@ -3,7 +3,7 @@ active: local,swagger datasource: type: com.alibaba.druid.pool.DruidDataSource - url: jdbc:mysql://47.99.58.211:3306/flower?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2b8 + url: jdbc:mysql://47.99.58.211:3306/flower?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2b8&allowMultiQueries=true username: root password: Hmy@2024!*@& druid: diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index f783488..34806f4 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -3,7 +3,7 @@ active: prod datasource: type: com.alibaba.druid.pool.DruidDataSource - url: jdbc:mysql://127.0.0.1:3306/flower-prod?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2b8 + url: jdbc:mysql://127.0.0.1:3306/flower-prod?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2b8&allowMultiQueries=true username: root password: Hmy@2024!*@& druid: diff --git a/src/main/resources/application-test.yml b/src/main/resources/application-test.yml index d747ef6..e57b439 100644 --- a/src/main/resources/application-test.yml +++ b/src/main/resources/application-test.yml @@ -3,7 +3,7 @@ active: test,swagger datasource: type: com.alibaba.druid.pool.DruidDataSource - url: jdbc:mysql://47.99.58.211:3306/flower?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2b8 + url: jdbc:mysql://47.99.58.211:3306/flower?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2b8&allowMultiQueries=true username: root password: Hmy@2024!*@& druid: diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 693f33e..f7facc7 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -67,8 +67,8 @@ wx: miniapp: - appid: wx1441324401626290 #小程序appId 花店端 - secret: bab595ac75f60eb33567511111a569a7 #secret花店端 + appid: wx3203fd935a6ffe09 #小程序appId 花店端 + secret: 9121c703fb0c416b21a8c289dd73ae9b #secret花店端 msgDataFormat: JSON mp: app-id: xxx #公众号appId @@ -77,14 +77,14 @@ wechat: merchantId: 1661512517 customer: - appid: wx1441324401626290 #小程序appId - secret: bab595ac75f60eb33567511111a569a7 #secret + appid: wx1441324401626290 #小程序appId + secret: bab595ac75f60eb33567511111a569a7 #secret partner: - appid: wx6d0ecc4e18710458 #小程序appId - secret: 22afb006e9b94ee97c47bbfded9151eb #secret + appid: wx6d0ecc4e18710458 #小程序appId + secret: 22afb006e9b94ee97c47bbfded9151eb #secret supplier: - appid: wx3203fd935a6ffe09 #小程序appId - secret: 9121c703fb0c416b21a8c289dd73ae9b #secret + appid: wx3203fd935a6ffe09 #小程序appId + secret: 9121c703fb0c416b21a8c289dd73ae9b #secret sms: verificationCode: SMS_301300012 #验证码通用模版 \ No newline at end of file diff --git a/src/main/resources/mapper/customer/CustomerMapper.xml b/src/main/resources/mapper/customer/CustomerMapper.xml index 8fbff9f..e5ac30a 100644 --- a/src/main/resources/mapper/customer/CustomerMapper.xml +++ b/src/main/resources/mapper/customer/CustomerMapper.xml @@ -40,6 +40,9 @@ <if test="dto.partnerUserId != null and dto.partnerUserId != ''"> and c.partner_user_id = #{dto.partnerUserId} </if> + <if test="dto.isEnabled!=null"> + AND c.is_enabled = #{dto.isEnabled} + </if> order by c.create_time desc </select> <select id="getCurrentCustomer" resultType="com.mzl.flower.dto.response.customer.CustomerDTO" diff --git a/src/main/resources/mapper/flower/FlowerDeleteMapper.xml b/src/main/resources/mapper/flower/FlowerDeleteMapper.xml new file mode 100644 index 0000000..e935165 --- /dev/null +++ b/src/main/resources/mapper/flower/FlowerDeleteMapper.xml @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.mzl.flower.mapper.FlowerDeleteMapper"> + + <!-- 通用查询映射结果 --> + <resultMap id="BaseResultMap" type="com.mzl.flower.entity.FlowerDeleteDO"> + <result column="id" property="id" /> + <result column="deleted" property="deleted" /> + <result column="create_by" property="createBy" /> + <result column="create_time" property="createTime" /> + <result column="update_by" property="updateBy" /> + <result column="update_time" property="updateTime" /> + <result column="category" property="category" /> + <result column="unit" property="unit" /> + <result column="color" property="color" /> + <result column="name" property="name" /> + <result column="cover" property="cover" /> + <result column="banners" property="banners" /> + <result column="video" property="video" /> + <result column="level" property="level" /> + <result column="supplier_id" property="supplierId" /> + <result column="price" property="price" /> + <result column="stock" property="stock" /> + <result column="status" property="status" /> + <result column="tags" property="tags" /> + <result column="audit_remarks" property="auditRemarks" /> + <result column="audit_time" property="auditTime" /> + <result column="shown" property="shown" /> + <result column="sales" property="sales" /> + <result column="description" property="description" /> + <result column="recommend" property="recommend" /> + <result column="real_sales" property="realSales" /> + <result column="recommend_rank" property="recommendRank" /> + <result column="type_rank" property="typeRank" /> + </resultMap> + +</mapper> diff --git a/src/main/resources/mapper/flower/FlowerMapper.xml b/src/main/resources/mapper/flower/FlowerMapper.xml index 3cb549a..64eb0c7 100644 --- a/src/main/resources/mapper/flower/FlowerMapper.xml +++ b/src/main/resources/mapper/flower/FlowerMapper.xml @@ -1,6 +1,13 @@ <?xml version="1.0" encoding="UTF-8" ?> <!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.FlowerMapper"> + <delete id="deleteBatchPhysics"> + DELETE FROM t_flower + WHERE id IN + <foreach collection="list" item="id" open="(" separator="," close=")"> + #{id} + </foreach> + </delete> <select id="selectFlowerList" resultType="com.mzl.flower.dto.response.flower.FlowerListDTO"> SELECT f.*, s.name supplierName, st.name supplierType, fc.name categoryStr @@ -386,10 +393,32 @@ FROM t_browse_his c left join t_flower f on c.flower_id = f.id WHERE f.deleted = 0 and c.deleted = 0 and f.status != 'UP' and c.user_id = #{userId} </select> + <select id="getDeletdFlowByIds" resultType="com.mzl.flower.entity.flower.Flower"> + select * from t_flower + WHERE id IN + <foreach collection="list" item="id" open="(" separator="," close=")"> + #{id} + </foreach> + </select> <update id="updateFlowerCategoryInfo"> update t_flower f, t_flower_category fc set f.unit = fc.unit, f.color = fc.color where f.category = fc.id and fc.id = #{category} </update> + <update id="updateBatchTypeRank"> + <foreach collection="list" item="item" separator=";"> + UPDATE t_flower + SET type_rank = #{item.typeRank} + WHERE id = #{item.id} + </foreach> + </update> + + <update id="restoreFlowerBatch"> + update t_flower set deleted = 0 + WHERE id IN + <foreach collection="list" item="id" open="(" separator="," close=")"> + #{id} + </foreach> + </update> </mapper> \ No newline at end of file diff --git a/src/main/resources/mapper/partner/PartnerMapper.xml b/src/main/resources/mapper/partner/PartnerMapper.xml index be23dd8..232cb24 100644 --- a/src/main/resources/mapper/partner/PartnerMapper.xml +++ b/src/main/resources/mapper/partner/PartnerMapper.xml @@ -32,6 +32,9 @@ <if test="dto.region!=null and dto.region!=''"> AND t.region like CONCAT('%',#{dto.region}, '%') </if> + <if test="dto.isEnabled!=null"> + AND t.is_enabled = #{dto.isEnabled} + </if> order by t.create_time desc </select> <select id="getCurrentPartner" resultType="com.mzl.flower.dto.response.partner.PartnerDTO" diff --git a/src/main/resources/mapper/payment/OrderItemSalesMapper.xml b/src/main/resources/mapper/payment/OrderItemSalesMapper.xml index 5a29bcd..eef9518 100644 --- a/src/main/resources/mapper/payment/OrderItemSalesMapper.xml +++ b/src/main/resources/mapper/payment/OrderItemSalesMapper.xml @@ -71,7 +71,7 @@ , oi.flower_level, oi.flower_category, o.customer, o.customer_tel, o.customer_province, o.customer_city , o.customer_region, o.customer_address, oi.num flowerNum, oi.supplier_name, oi.price, oi.total , o.order_no, si.sales_no, si.title, si.num, si.reason, si.total_fee, si.status, si.create_time - , si.remarks, oi.supplier_price, oi.markup_partner, si.audit_time + , si.remarks, oi.supplier_price, oi.markup_partner, si.audit_time,si.sales_type FROM t_order_item_sales si join t_order_item oi on oi.id = si.order_item_id join t_order o on si.order_id = o.id @@ -136,6 +136,12 @@ <if test="condition.supplierId != null"> AND oi.supplier_id = #{condition.supplierId} </if> + <if test="condition.supplierId != null"> + AND oi.supplier_id = #{condition.supplierId} + </if> + <if test="condition.salesType != null"> + AND si.sales_type = #{condition.salesType} + </if> ORDER BY si.create_time desc </select> diff --git a/src/main/resources/mapper/supplier/SupplierMapper.xml b/src/main/resources/mapper/supplier/SupplierMapper.xml index 2337500..7a06f2e 100644 --- a/src/main/resources/mapper/supplier/SupplierMapper.xml +++ b/src/main/resources/mapper/supplier/SupplierMapper.xml @@ -35,6 +35,9 @@ AND t.create_time <= #{dto.createDateEnd} ]]> </if> + <if test="dto.isEnabled!=null"> + AND t.is_enabled = #{dto.isEnabled} + </if> order by t.create_time desc </select> <select id="findSupplierDetail" resultType="com.mzl.flower.dto.response.supplier.SupplierDTO" -- Gitblit v1.9.3