diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/order/StoreWishlistDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/order/StoreWishlistDAO.java index bdb772435..bfad9c133 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/order/StoreWishlistDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/order/StoreWishlistDAO.java @@ -1,11 +1,13 @@ package com.cool.store.dao.order; +import com.cool.store.entity.ShopInfoDO; import com.cool.store.entity.order.StoreWishlistDO; import com.cool.store.mapper.order.StoreWishlistMapper; import com.cool.store.vo.order.MiniStoreWishlistListVO; import lombok.RequiredArgsConstructor; import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Repository; +import tk.mybatis.mapper.entity.Example; import java.util.Collections; import java.util.List; @@ -50,4 +52,15 @@ public class StoreWishlistDAO { } return mapper.listByLineId(lineId, storeTypeId); } + + public List listByVersionList(List versionNoList) { + if (CollectionUtils.isEmpty(versionNoList)) { + return Collections.emptyList(); + } + return mapper.listByVersionList(versionNoList); + } + + public List getDistinctVersion(String mobile){ + return mapper.versionNoList(mobile); + } } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/order/StoreWishlistMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/order/StoreWishlistMapper.java index 9bdb82ccc..8f0ab4736 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/order/StoreWishlistMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/order/StoreWishlistMapper.java @@ -23,4 +23,9 @@ public interface StoreWishlistMapper extends Mapper { List listByLineId(@Param("lineId") Long lineId, @Param("storeTypeId") Long storeTypeId); + + + List listByVersionList(@Param("versionNoList") List versionNoList); + + List versionNoList(String mobile); } diff --git a/coolstore-partner-dao/src/main/resources/mapper/order/StoreWishlistMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/order/StoreWishlistMapper.xml index 1d82b4271..cfdb93f79 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/order/StoreWishlistMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/order/StoreWishlistMapper.xml @@ -60,4 +60,41 @@ ORDER BY w.create_time DESC + + + + diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/JoinIntentionRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/JoinIntentionRequest.java index 1595e620e..b9bd2b3ea 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/JoinIntentionRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/JoinIntentionRequest.java @@ -127,7 +127,7 @@ public class JoinIntentionRequest { @ApiModelProperty private Integer useStandardStore = 0; - + public LineInfoDO toLineInfoDO() { LineInfoDO lineInfoDO = new LineInfoDO(); diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/order/WishAllListRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/order/WishAllListRequest.java new file mode 100644 index 000000000..873b82251 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/order/WishAllListRequest.java @@ -0,0 +1,17 @@ +package com.cool.store.request.order; + +import com.cool.store.common.PageBasicInfo; +import lombok.Data; + +/** + * @Auther zx_szh + * @Date 2026/3/11 16:45 + * @Version 1.0 + */ +@Data +public class WishAllListRequest extends PageBasicInfo { + + private String mobile; + + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/order/MiniStoreWishlistListVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/order/MiniStoreWishlistListVO.java index f9adbbd71..e54d1636c 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/order/MiniStoreWishlistListVO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/order/MiniStoreWishlistListVO.java @@ -15,6 +15,8 @@ public class MiniStoreWishlistListVO { @ApiModelProperty("店型ID") private Long storeTypeId; + private Long lineId; + @ApiModelProperty("品牌") private String brand; diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/order/MiniStoreOrderService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/order/MiniStoreOrderService.java index c726fecde..4a23f39f3 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/order/MiniStoreOrderService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/order/MiniStoreOrderService.java @@ -54,4 +54,6 @@ public interface MiniStoreOrderService { List wishlistList(PartnerUserInfoVO userInfoVO); + List wishAllList(WishAllListRequest request); + } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/order/impl/MiniStoreOrderServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/order/impl/MiniStoreOrderServiceImpl.java index e7b5c432f..64749af45 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/order/impl/MiniStoreOrderServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/order/impl/MiniStoreOrderServiceImpl.java @@ -1485,6 +1485,43 @@ public class MiniStoreOrderServiceImpl implements MiniStoreOrderService { return wishlist; } + @Override + public List wishAllList(WishAllListRequest request) { + PageHelper.startPage(request.getPageNum(),request.getPageSize()); + List distinctVersion = storeWishlistDAO.getDistinctVersion(request.getMobile()); + List wishlist = storeWishlistDAO.listByVersionList(distinctVersion); + for (MiniStoreWishlistListVO item : wishlist) { + List rows = storeWishlistDAO.listByLineIdAndStoreTypeAndVersion(item.getLineId(), item.getStoreTypeId(), item.getVersionNo()); + if (CollectionUtils.isEmpty(rows)) { + item.setOptions(Collections.emptyList()); + continue; + } + + List optionIds = rows.stream().map(StoreWishlistDO::getOptionId).filter(Objects::nonNull).distinct().collect(Collectors.toList()); + Map optionMap = new HashMap<>(); + if (CollectionUtils.isNotEmpty(optionIds)) { + List options = configOptionDAO.listActiveByIds(optionIds); + optionMap = options.stream().collect(Collectors.toMap(ConfigOptionDO::getId, Function.identity(), (a, b) -> a)); + } + + List optionList = new ArrayList<>(); + for (StoreWishlistDO row : rows) { + MiniStoreWishlistListVO.OptionVO vo = new MiniStoreWishlistListVO.OptionVO(); + vo.setOptionId(row.getOptionId()); + vo.setQuantity(row.getQuantity()); + ConfigOptionDO cfg = optionMap.get(row.getOptionId()); + if (cfg != null) { + vo.setOptionName(cfg.getOptionName()); + vo.setOptionPrice(cfg.getOptionPrice()); + vo.setImageUrl(cfg.getImageUrl()); + } + optionList.add(vo); + } + item.setOptions(optionList); + } + return wishlist; + } + private BigDecimal safe(BigDecimal v) { return v == null ? BigDecimal.ZERO : v; diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/StoreOrderController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/StoreOrderController.java index cbc24e883..e3362b181 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/StoreOrderController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/StoreOrderController.java @@ -1,15 +1,17 @@ package com.cool.store.controller.webb; import com.cool.store.context.CurrentUserHolder; +import com.cool.store.context.PartnerUserHolder; import com.cool.store.request.order.OrderAuditRecordRequest; import com.cool.store.request.order.PCStoreOrderOptionQuantityUpdateRequest; import com.cool.store.request.order.PCStoreOrderQueryRequest; +import com.cool.store.request.order.WishAllListRequest; import com.cool.store.response.ResponseResult; import com.cool.store.service.order.MiniStoreOrderService; -import com.cool.store.vo.order.MiniStoreOrderDetailVO; -import com.cool.store.vo.order.PCStoreOrderListVO; +import com.cool.store.vo.order.*; + import javax.validation.Valid; -import com.cool.store.vo.order.WalletPayVO; + import com.github.pagehelper.PageInfo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -74,4 +76,17 @@ public class StoreOrderController { return ResponseResult.success(miniStoreOrderService.batchUpdateOptionQuantity(request)); } + @ApiOperation("心愿单详情") + @GetMapping("/wishlist/detail") + public ResponseResult wishlistDetail(@RequestParam("storeTypeId") Long storeTypeId, + @RequestParam("versionNo") String versionNo) { + return ResponseResult.success(miniStoreOrderService.wishlistDetail(storeTypeId,versionNo, PartnerUserHolder.getUser())); + } + + @ApiOperation("PC心愿单列表") + @PostMapping("/wishlist/queryPage") + public ResponseResult> wishAllList(@RequestBody @Valid WishAllListRequest request) { + return ResponseResult.success(miniStoreOrderService.wishAllList( request)); + } + } diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniStoreOrderController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniStoreOrderController.java index c832d3641..005dccf29 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniStoreOrderController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniStoreOrderController.java @@ -113,4 +113,5 @@ public class MiniStoreOrderController { public ResponseResult> wishlistList() { return ResponseResult.success(miniStoreOrderService.wishlistList( PartnerUserHolder.getUser())); } + }