diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/order/pojo/vo/Scope.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/order/pojo/vo/Scope.java deleted file mode 100644 index f20cf53..0000000 --- a/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/order/pojo/vo/Scope.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.njzscloud.dispose.cst.order.pojo.vo; - -import com.baomidou.mybatisplus.annotation.TableField; -import com.njzscloud.common.mp.support.handler.j.JsonTypeHandler; -import lombok.Data; - -import java.util.List; - -/** - * @author ljw - * @apiNote - * @date 2025/12/20 - */ -@Data -public class Scope { - - private String strategy; - - @TableField(typeHandler = JsonTypeHandler.class) - private List ids; - -} diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/order/service/OrderService.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/order/service/OrderService.java index 1bce6f1..103e2bf 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/order/service/OrderService.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/order/service/OrderService.java @@ -5,7 +5,6 @@ import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.njzscloud.common.core.ex.Exceptions; -import com.njzscloud.common.core.fastjson.Fastjson; import com.njzscloud.common.mp.support.PageParam; import com.njzscloud.common.mp.support.PageResult; import com.njzscloud.common.security.util.SecurityUtil; @@ -23,11 +22,11 @@ import com.njzscloud.dispose.cst.order.pojo.entity.OrderExpenseItemsEntity; import com.njzscloud.dispose.cst.order.pojo.entity.OrderTransEntity; import com.njzscloud.dispose.cst.order.pojo.param.*; import com.njzscloud.dispose.cst.order.pojo.result.OrderTransResult; -import com.njzscloud.dispose.cst.order.pojo.vo.Scope; import com.njzscloud.dispose.cst.truck.mapper.TruckMapper; import com.njzscloud.dispose.cst.truck.pojo.entity.TruckEntity; import com.njzscloud.dispose.finance.constant.ScopeStrategy; import com.njzscloud.dispose.finance.pojo.entity.ExpenseItemEntity; +import com.njzscloud.dispose.finance.pojo.entity.ScopeStrategyConfig; import com.njzscloud.dispose.finance.service.ExpenseItemService; import com.njzscloud.dispose.sys.auth.pojo.result.MyResult; import lombok.RequiredArgsConstructor; @@ -386,9 +385,9 @@ public class OrderService extends ServiceImpl { List extraItems = itemEntityList.stream() .filter(cfg -> { - Scope userScope = Fastjson.toBean(cfg.getUserScope(), Scope.class); - Scope goodsScope = Fastjson.toBean(cfg.getGoodsScope(), Scope.class); - Scope stationsScope = Fastjson.toBean(cfg.getStationScope(), Scope.class); + ScopeStrategyConfig userScope = cfg.getUserScope(); + ScopeStrategyConfig goodsScope = cfg.getGoodsScope(); + ScopeStrategyConfig stationsScope = cfg.getStationScope(); List companyIds = userScope != null ? userScope.getIds() : null; List goodsIds = goodsScope != null ? goodsScope.getIds() : null; List stationsIds = stationsScope != null ? stationsScope.getIds() : null; diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/pojo/entity/ExpenseItemEntity.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/pojo/entity/ExpenseItemEntity.java index 8d071f8..fc916c7 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/pojo/entity/ExpenseItemEntity.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/pojo/entity/ExpenseItemEntity.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.njzscloud.common.mp.support.handler.j.JsonTypeHandler; import com.njzscloud.dispose.common.pojo.entity.BaseEntity; import com.njzscloud.dispose.finance.constant.ExpenseItemCategory; import com.njzscloud.dispose.finance.constant.ExpenseStrategy; @@ -94,17 +95,20 @@ public class ExpenseItemEntity extends BaseEntity { /** * 适用用户;结构类型:{strategy: Wu | ZhiDing | SuoYou,ids:long[]} */ - private String userScope; + @TableField(typeHandler = JsonTypeHandler.class) + private ScopeStrategyConfig userScope; /** * 适用站点;结构类型:{strategy: Wu | ZhiDing | SuoYou,ids:long[]} */ - private String stationScope; + @TableField(typeHandler = JsonTypeHandler.class) + private ScopeStrategyConfig stationScope; /** * 适用产品;结构类型:{strategy: Wu | ZhiDing | SuoYou,ids:long[]} */ - private String goodsScope; + @TableField(typeHandler = JsonTypeHandler.class) + private ScopeStrategyConfig goodsScope; /** * 是否可用;0-->否、1-->是 diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/pojo/result/SearchExpenseItemResult.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/pojo/result/SearchExpenseItemResult.java new file mode 100644 index 0000000..5a54606 --- /dev/null +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/finance/pojo/result/SearchExpenseItemResult.java @@ -0,0 +1,110 @@ +package com.njzscloud.dispose.finance.pojo.result; + +import com.njzscloud.dispose.finance.constant.ExpenseItemCategory; +import com.njzscloud.dispose.finance.constant.ExpenseStrategy; +import com.njzscloud.dispose.finance.constant.Payer; +import com.njzscloud.dispose.finance.pojo.entity.ScopeStrategyConfig; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; +import lombok.experimental.Accessors; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * 收费项目 + * + * @author ljw + */ +@Getter +@Setter +@ToString +@Accessors(chain = true) +public class SearchExpenseItemResult { + /** + * Id + */ + private Long id; + + /** + * 收费项目类型,QiTa-->其他、ChanPin-->产品、YunFei-->运费 + */ + private ExpenseItemCategory expenseItemCategory; + + /** + * 付费项名称 + */ + private String expenseItemName; + + /** + * 计费策略;字典代码:expense_strategy + */ + private ExpenseStrategy expenseStrategy; + + + /** + * 计量单位;字典代码:unit + */ + private String unit; + + /** + * 税率 + */ + private BigDecimal taxRate; + + /** + * 付费方;字典代码:payer + */ + private Payer payer; + + + /** + * 单价;单位:元,弹性模式-->每档价格 + */ + private BigDecimal unitPrice; + + /** + * 起步价;单位:元,<= 起步量 固定费用 + */ + private BigDecimal initialPrice; + + /** + * 起步量 + */ + private Integer initialQuantity; + + /** + * 每档的量 + */ + private Integer everyQuantity; + + /** + * 适用用户;结构类型:{strategy: Wu | ZhiDing | SuoYou,ids:long[]} + */ + private ScopeStrategyConfig userScope; + + /** + * 适用站点;结构类型:{strategy: Wu | ZhiDing | SuoYou,ids:long[]} + */ + private ScopeStrategyConfig stationScope; + + /** + * 适用产品;结构类型:{strategy: Wu | ZhiDing | SuoYou,ids:long[]} + */ + private ScopeStrategyConfig goodsScope; + + /** + * 是否可用;0-->否、1-->是 + */ + private Boolean canuse; + + /** + * 备注 + */ + private String memo; + + private Long goodsId; + private LocalDateTime createTime; +} + diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/goods/controller/GoodsController.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/goods/controller/GoodsController.java index c8bd013..22cdef0 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/dispose/goods/controller/GoodsController.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/goods/controller/GoodsController.java @@ -6,6 +6,7 @@ import com.njzscloud.common.mp.support.PageResult; import com.njzscloud.dispose.goods.pojo.entity.GoodsEntity; import com.njzscloud.dispose.goods.pojo.param.AddGoodsParam; import com.njzscloud.dispose.goods.pojo.param.ModifyGoodsParam; +import com.njzscloud.dispose.goods.pojo.result.SearchGoodsResult; import com.njzscloud.dispose.goods.service.GoodsService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -77,7 +78,7 @@ public class GoodsController { * 分页查询 */ @GetMapping("/paging") - public R> paging(PageParam pageParam, GoodsEntity goodsEntity) { + public R> paging(PageParam pageParam, GoodsEntity goodsEntity) { return R.success(goodsService.paging(pageParam, goodsEntity)); } } diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/goods/mapper/GoodsMapper.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/goods/mapper/GoodsMapper.java index 776bd98..542f634 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/dispose/goods/mapper/GoodsMapper.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/goods/mapper/GoodsMapper.java @@ -1,8 +1,13 @@ package com.njzscloud.dispose.goods.mapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.njzscloud.dispose.goods.pojo.entity.GoodsEntity; +import com.njzscloud.dispose.goods.pojo.result.SearchGoodsResult; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; /** * 产品 @@ -10,6 +15,7 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface GoodsMapper extends BaseMapper { + IPage paging(Page page, @Param("ew") QueryWrapper ew); } diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/goods/pojo/result/SearchGoodsCategoryResult.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/goods/pojo/result/SearchGoodsCategoryResult.java new file mode 100644 index 0000000..d695b33 --- /dev/null +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/goods/pojo/result/SearchGoodsCategoryResult.java @@ -0,0 +1,54 @@ +package com.njzscloud.dispose.goods.pojo.result; + +import com.njzscloud.dispose.goods.contant.BizType; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; +import lombok.experimental.Accessors; + +import java.time.LocalDateTime; + +/** + * 产品分类 + * + * @author ljw + */ +@Getter +@Setter +@ToString +@Accessors(chain = true) +public class SearchGoodsCategoryResult { + /** + * 主键 + */ + private Long id; + + /** + * 业务类型;字典代码:biz_type + */ + private BizType bizType; + + /** + * 分类名称 + */ + private String categoryName; + + /** + * 图片 + */ + private String picture; + + /** + * 排序 + */ + private Integer sort; + + + /** + * 创建时间 + */ + private LocalDateTime createTime; + +} + + diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/goods/pojo/result/SearchGoodsResult.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/goods/pojo/result/SearchGoodsResult.java new file mode 100644 index 0000000..ffddd55 --- /dev/null +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/goods/pojo/result/SearchGoodsResult.java @@ -0,0 +1,84 @@ +package com.njzscloud.dispose.goods.pojo.result; + +import com.njzscloud.common.core.ienum.DictItem; +import com.njzscloud.common.core.ienum.DictKey; +import com.njzscloud.dispose.finance.pojo.result.SearchExpenseItemResult; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; +import lombok.experimental.Accessors; + +import java.time.LocalDateTime; + +/** + * 产品 + * + * @author ljw + */ +@Getter +@Setter +@ToString +@Accessors(chain = true) +public class SearchGoodsResult { + + /** + * 主键 + */ + private Long id; + + /** + * 产品类型 Id + */ + private Long goodsCategoryId; + + /** + * 商品编码 + */ + private String sn; + + /** + * 产品名称 + */ + private String goodsName; + + /** + * 规格 + */ + private String specParams; + + /** + * 图片 + */ + private String picture; + + /** + * 计量单位;字典代码:unit + */ + @DictKey("unit") + private DictItem unit; + + /** + * 排序 + */ + private Integer sort; + + /** + * 是否可用;0-->否、1-->是 + */ + private Boolean canuse; + + /** + * 备注 + */ + private String memo; + private LocalDateTime createTime; + + /** + * 关联收费项目信息(返回用) + */ + private SearchExpenseItemResult expenseItem; + private SearchGoodsCategoryResult goodsCategory; + +} + + diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/goods/service/GoodsService.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/goods/service/GoodsService.java index d9522e1..5e685f1 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/dispose/goods/service/GoodsService.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/goods/service/GoodsService.java @@ -6,6 +6,7 @@ import com.njzscloud.common.mp.support.PageResult; import com.njzscloud.dispose.goods.pojo.entity.GoodsEntity; import com.njzscloud.dispose.goods.pojo.param.AddGoodsParam; import com.njzscloud.dispose.goods.pojo.param.ModifyGoodsParam; +import com.njzscloud.dispose.goods.pojo.result.SearchGoodsResult; import java.util.List; @@ -23,7 +24,7 @@ public interface GoodsService extends IService { GoodsEntity detail(Long id); - PageResult paging(PageParam pageParam, GoodsEntity goodsEntity); + PageResult paging(PageParam pageParam, GoodsEntity goodsEntity); void enable(Long id, Boolean enable); } diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/goods/service/impl/GoodsServiceImpl.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/goods/service/impl/GoodsServiceImpl.java index c4bb960..36d81f1 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/dispose/goods/service/impl/GoodsServiceImpl.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/goods/service/impl/GoodsServiceImpl.java @@ -2,7 +2,6 @@ package com.njzscloud.dispose.goods.service.impl; import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.njzscloud.common.mp.support.PageParam; import com.njzscloud.common.mp.support.PageResult; @@ -14,10 +13,10 @@ import com.njzscloud.dispose.finance.pojo.param.ModifyExpenseItemParam; import com.njzscloud.dispose.finance.service.ExpenseItemService; import com.njzscloud.dispose.goods.mapper.GoodsCategoryMapper; import com.njzscloud.dispose.goods.mapper.GoodsMapper; -import com.njzscloud.dispose.goods.pojo.entity.GoodsCategoryEntity; import com.njzscloud.dispose.goods.pojo.entity.GoodsEntity; import com.njzscloud.dispose.goods.pojo.param.AddGoodsParam; import com.njzscloud.dispose.goods.pojo.param.ModifyGoodsParam; +import com.njzscloud.dispose.goods.pojo.result.SearchGoodsResult; import com.njzscloud.dispose.goods.service.GoodsService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -94,16 +93,8 @@ public class GoodsServiceImpl extends ServiceImpl impl } @Override - public PageResult paging(PageParam pageParam, GoodsEntity goodsEntity) { - Page page = this.page(pageParam.toPage(), Wrappers.query(goodsEntity)); - for (GoodsEntity goods : page.getRecords()) { - goods.setExpenseItem(expenseItemService.getOne(Wrappers.lambdaQuery() - .eq(ExpenseItemEntity::getGoodsId, goods.getId()))); - goods.setGoodsCategoryName(goodsCategoryMapper.selectOne(Wrappers.lambdaQuery() - .eq(GoodsCategoryEntity::getId, goods.getGoodsCategoryId())).getCategoryName()); - - } - return PageResult.of(page); + public PageResult paging(PageParam pageParam, GoodsEntity goodsEntity) { + return PageResult.of(baseMapper.paging(pageParam.toPage(), Wrappers.query())); } @Override diff --git a/njzscloud-svr/src/main/resources/mapper/goods/GoodsMapper.xml b/njzscloud-svr/src/main/resources/mapper/goods/GoodsMapper.xml new file mode 100644 index 0000000..b8f119f --- /dev/null +++ b/njzscloud-svr/src/main/resources/mapper/goods/GoodsMapper.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + +