From fa9034f7b32fa2ab028e0abbf163ef5107aa3270 Mon Sep 17 00:00:00 2001 From: liyj <1617420630@qq.com> Date: Fri, 24 Oct 2025 15:11:33 +0800 Subject: [PATCH 01/26] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E5=BA=93=E5=AD=98=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../shop/order/service/impl/ShopOrderReturnServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderReturnServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderReturnServiceImpl.java index 0afcbb35..c5af168c 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderReturnServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderReturnServiceImpl.java @@ -1516,7 +1516,7 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl Date: Fri, 24 Oct 2025 15:57:01 +0800 Subject: [PATCH 02/26] =?UTF-8?q?fix=20=E5=AD=97=E6=AE=B5=E8=B5=B7?= =?UTF-8?q?=E5=90=8D=E9=94=99=E8=AF=AF=EF=BC=8C=E5=95=86=E5=AE=B6=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E6=A0=B9=E6=8D=AE=E4=BB=8Eorder=5Fid=20desc=20?= =?UTF-8?q?=E6=94=B9=E6=88=90=20=E4=B8=8B=E5=8D=95=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E5=80=92=E5=BA=8F=E6=8E=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/order/dto/MchOrderInfoDTO.java | 12 ++ .../admin/ShopOrderBaseController.java | 1 + .../order/mapper/ShopOrderBaseMapper.java | 6 +- .../order/service/ShopOrderBaseService.java | 6 +- .../impl/ShopOrderBaseServiceImpl.java | 129 ++++-------------- .../mapper/order/ShopOrderBaseMapper.xml | 19 ++- 6 files changed, 59 insertions(+), 114 deletions(-) diff --git a/mall-common/src/main/java/com/suisung/mall/common/modules/order/dto/MchOrderInfoDTO.java b/mall-common/src/main/java/com/suisung/mall/common/modules/order/dto/MchOrderInfoDTO.java index 16d9451d..10666a79 100644 --- a/mall-common/src/main/java/com/suisung/mall/common/modules/order/dto/MchOrderInfoDTO.java +++ b/mall-common/src/main/java/com/suisung/mall/common/modules/order/dto/MchOrderInfoDTO.java @@ -95,4 +95,16 @@ public class MchOrderInfoDTO implements Serializable { private Integer is_deny_return; @ApiModelProperty(value = "异常订单操作流程,0-可操作自行发货,1-可操作订单完成,2-订单完成不可操作") private String operate_flag; + + @ApiModelProperty(value = "订单配送预约状态:1-立即配送;2-预约配送") + private Integer booking_state; + + @ApiModelProperty(value = "预约送达起始时间,格式如:yyyy-MM-dd HH:mm:ss") + private Date booking_begin_time; + + @ApiModelProperty(value = "预约送达截止时间,格式如:yyyy-MM-dd HH:mm:ss") + private Date booking_end_time; + + @ApiModelProperty(value = "预订单到达时间戳(秒)") + private Long booking_at; } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/order/controller/admin/ShopOrderBaseController.java b/mall-shop/src/main/java/com/suisung/mall/shop/order/controller/admin/ShopOrderBaseController.java index 5738c57a..42a18bbb 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/order/controller/admin/ShopOrderBaseController.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/order/controller/admin/ShopOrderBaseController.java @@ -342,6 +342,7 @@ public class ShopOrderBaseController extends BaseControllerImpl { params.getInt("delivery"), status, params.getInt("logistics_status"), + params.getInt("booking_state"), mchOrderExpireSeconds, params.getLong("begin_time"), params.getLong("end_time"), diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/order/mapper/ShopOrderBaseMapper.java b/mall-shop/src/main/java/com/suisung/mall/shop/order/mapper/ShopOrderBaseMapper.java index cca3395f..e810443f 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/order/mapper/ShopOrderBaseMapper.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/order/mapper/ShopOrderBaseMapper.java @@ -71,13 +71,14 @@ public interface ShopOrderBaseMapper extends BaseMapper { * @param delivery 配送方式:1-同城配送;2-物流配送 * @param status 同城配送订单状态(delivery=1时才生效):无值 or 0-全部订单;1-进行中订单;2-异常(超时)订单;3-退款订单;9-已完成订单 * @param logisticsStatus 普通快递订单状态(delivery=2时才生效):无值 or 0-全部订单;1-待支付订单;2-待发货订单;3-待接收订单;9-已完成订单 + * @param bookingState 订单配送预约状态:1-立即配送;2-预约配送 * @param expireSeconds 配送超时的秒数,单位秒 * @param beginTime 开始时间戳(13位毫秒级别) * @param endTime 截止时间戳(13位毫秒级别) * @param page 分页参数 * @return */ - IPage selectMchOrderPageList(@Param("storeId") Integer storeId, @Param("keyword") String keyword, @Param("delivery") Integer delivery, @Param("status") Integer status, @Param("logisticsStatus") Integer logisticsStatus, @Param("expireSeconds") Long expireSeconds, @Param("beginTime") Long beginTime, @Param("endTime") Long endTime, IPage page); + IPage selectMchOrderPageList(@Param("storeId") Integer storeId, @Param("keyword") String keyword, @Param("delivery") Integer delivery, @Param("status") Integer status, @Param("logisticsStatus") Integer logisticsStatus, @Param("bookingState") Integer bookingState, @Param("expireSeconds") Long expireSeconds, @Param("beginTime") Long beginTime, @Param("endTime") Long endTime, IPage page); /** @@ -97,12 +98,13 @@ public interface ShopOrderBaseMapper extends BaseMapper { * @param delivery 配送方式:1-同城配送;2-物流配送 * @param status 同城配送订单状态(delivery=1时才生效):无值 or 0-全部订单;1-进行中订单;2-异常(超时)订单;3-退款订单;9-已完成订单 * @param logisticsStatus 普通快递订单状态(delivery=2时才生效):无值 or 0-全部订单;1-待支付订单;2-待发货订单;3-待接收订单;9-已完成订单 + * @param bookingState 订单配送预约状态:1-立即配送;2-预约配送 * @param expireSeconds 配送超时的秒数,单位秒 * @param beginTime 开始时间戳(13位毫秒级别) * @param endTime 截止时间戳(13位毫秒级别) * @return */ - Long countMchOrderByCondition(@Param("storeId") Integer storeId, @Param("keyword") String keyword, @Param("delivery") Integer delivery, @Param("status") Integer status, @Param("logisticsStatus") Integer logisticsStatus, @Param("expireSeconds") Long expireSeconds, @Param("beginTime") Long beginTime, @Param("endTime") Long endTime); + Long countMchOrderByCondition(@Param("storeId") Integer storeId, @Param("keyword") String keyword, @Param("delivery") Integer delivery, @Param("status") Integer status, @Param("logisticsStatus") Integer logisticsStatus, @Param("bookingState") Integer bookingState, @Param("expireSeconds") Long expireSeconds, @Param("beginTime") Long beginTime, @Param("endTime") Long endTime); /** diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/ShopOrderBaseService.java b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/ShopOrderBaseService.java index 544ea9d8..d3b7965d 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/ShopOrderBaseService.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/ShopOrderBaseService.java @@ -544,6 +544,7 @@ public interface ShopOrderBaseService extends IBaseService { * @param delivery 配送方式:1-同城配送;2-物流配送 * @param status 同城配送订单状态(delivery=1时才生效):无值 or 0-全部订单;1-进行中订单;2-异常(超时)订单;3-退款订单;9-已完成订单 * @param logisticsStatus 普通快递订单状态(delivery=2时才生效):无值 or 0-全部订单;1-待支付订单;2-待发货订单;3-待接收订单;9-已完成订单 + * @param bookingState 订单配送预约状态:1-立即配送;2-预约配送 * @param expireSeconds 配送超时的秒数,单位秒 * @param beginTime 开始时间戳(13位毫秒级别) * @param endTime 截止时间戳(13位毫秒级别) @@ -551,7 +552,7 @@ public interface ShopOrderBaseService extends IBaseService { * @param pageSize 页大小 * @return */ - IPage selectMchOrderPageList(Integer storeId, String keyword, Integer delivery, Integer status, Integer logisticsStatus, Long expireSeconds, Long beginTime, Long endTime, Integer pageNum, Integer pageSize); + IPage selectMchOrderPageList(Integer storeId, String keyword, Integer delivery, Integer status, Integer logisticsStatus, Integer bookingState, Long expireSeconds, Long beginTime, Long endTime, Integer pageNum, Integer pageSize); /** * 商家版根据条件查询订单条数(新) @@ -561,12 +562,13 @@ public interface ShopOrderBaseService extends IBaseService { * @param delivery 配送方式:1-同城配送;2-物流配送 * @param status 同城配送订单状态(delivery=1时才生效):无值 or 0-全部订单;1-进行中订单;2-异常(超时)订单;3-退款订单;9-已完成订单 * @param logisticsStatus 普通快递订单状态(delivery=2时才生效):无值 or 0-全部订单;1-待支付订单;2-待发货订单;3-待接收订单;9-已完成订单 + * @param bookingState 订单配送预约状态:1-立即配送;2-预约配送 * @param expireSeconds 配送超时的秒数,单位秒 * @param beginTime 开始时间戳(13位毫秒级别) * @param endTime 截止时间戳(13位毫秒级别) * @return */ - Long countMchOrderByCondition(Integer storeId, String keyword, Integer delivery, Integer status, Integer logisticsStatus, Long expireSeconds, Long beginTime, Long endTime); + Long countMchOrderByCondition(Integer storeId, String keyword, Integer delivery, Integer status, Integer logisticsStatus, Integer bookingState, Long expireSeconds, Long beginTime, Long endTime); /** * 获取商家订单详情 diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderBaseServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderBaseServiceImpl.java index 7b46bced..9e463def 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderBaseServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderBaseServiceImpl.java @@ -573,10 +573,16 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl selectMchOrderPageList(Integer storeId, String keyword, Integer delivery, Integer status, Integer logisticsStatus, Long expireSeconds, Long beginTime, Long endTime, Integer pageNum, Integer pageSize) { + public IPage selectMchOrderPageList(Integer storeId, String keyword, Integer delivery, Integer status, Integer logisticsStatus, Integer bookingState, Long expireSeconds, Long beginTime, Long endTime, Integer pageNum, Integer pageSize) { try { // 初始化分页对象 Page page = new Page<>(pageNum, pageSize); // 查询订单基础数据 IPage pageList = shopOrderBaseMapper.selectMchOrderPageList( - storeId, keyword, delivery, status, logisticsStatus, expireSeconds, beginTime, endTime, page); + storeId, keyword, delivery, status, logisticsStatus, bookingState, expireSeconds, beginTime, endTime, page); if (CollUtil.isEmpty(pageList.getRecords())) { return pageList; @@ -9036,14 +9043,15 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl + + + + + @@ -752,6 +757,11 @@ AND oi.order_time #{end_time} + + + + AND oi.booking_state = #{bookingState} + @@ -788,6 +798,10 @@ 2013, 2014, 2020, 2030, 2040))>1,2,1) AS is_new_buyer, oi.payment_time, + oi.booking_state, + oi.booking_begin_time, + oi.booking_end_time, + oi.booking_at, od.order_shipping_fee, IFNULL(od.order_shipping_fee_inner, 0) as order_shipping_fee_inner, IFNULL(od.lkl_fee, 0) as lkl_fee, @@ -843,7 +857,6 @@ osf.feed - SELECT shop_order_item.store_id, shop_order_item.product_id, shop_order_item.item_id, - + shop_order_item.item_barcode, shop_order_item.item_name, shop_order_item.item_unit_price, shop_order_item.order_item_image, @@ -86,6 +87,7 @@ ORDER BY item_total DESC + From 2489bd66d0331eec1ca9398ee18af1b6cc78eefc Mon Sep 17 00:00:00 2001 From: Jack <46790855@qq.com> Date: Sun, 26 Oct 2025 23:15:46 +0800 Subject: [PATCH 10/26] =?UTF-8?q?fix=20=E6=8F=90=E7=8E=B0=E9=80=9A?= =?UTF-8?q?=E7=9F=A5=20=E8=A1=A5=E5=81=BF=20bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mall/shop/lakala/controller/mobile/LakalaController.java | 4 +++- .../mall/shop/lakala/service/impl/LakalaApiServiceImpl.java | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/lakala/controller/mobile/LakalaController.java b/mall-shop/src/main/java/com/suisung/mall/shop/lakala/controller/mobile/LakalaController.java index 77ecfd50..1c9584c5 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/lakala/controller/mobile/LakalaController.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/lakala/controller/mobile/LakalaController.java @@ -90,7 +90,9 @@ public class LakalaController extends BaseControllerImpl { @RequestMapping(value = "/testcase", method = RequestMethod.POST) public Object testcase(@RequestBody JSONObject paramsJSON) { - return lklLedgerReceiverService.selectAgentAndPlatformByMchId(36L); +// return lklLedgerReceiverService.selectAgentAndPlatformByMchId(36L); + + return lakalaApiService.ewalletWithDrawNotify(null, paramsJSON.getStr("a"), paramsJSON.getStr("b")); } @ApiOperation(value = "批量发送推送消息 - 测试案例", notes = "批量发送推送消息 - 测试案例") diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LakalaApiServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LakalaApiServiceImpl.java index 276104ac..dd3e0d97 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LakalaApiServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LakalaApiServiceImpl.java @@ -3904,7 +3904,7 @@ public class LakalaApiServiceImpl implements LakalaApiService { } // 3. 转换参数并更新数据 - String snakeCaseJson = StringUtils.convertCamelToSnake(signCheckResult.getSecond()); + String snakeCaseJson = StringUtils.convertCamelToSnake(paramsJSON.toString()); if (StringUtils.isBlank(snakeCaseJson)) { log.error("{} 回调参数转换失败,mercId={} merOrderNo={}", signTag, mercId, merOrderNo); return JSONUtil.createObj() @@ -3921,6 +3921,7 @@ public class LakalaApiServiceImpl implements LakalaApiService { } lklOrderDraw.setRemark(lklOrderDraw.getRemark() + " " + signTag); + lklOrderDraw.setSummary(null); boolean isSuccess = lklOrderDrawService.addOrUpdateByMercIdAndMerOrderNo(lklOrderDraw); if (!isSuccess) { log.error("{} 数据更新失败,mercId={} merOrderNo={}", signTag, mercId, merOrderNo); From 80ce73a1682f1d687f27d65f8b7d3c4819d459bf Mon Sep 17 00:00:00 2001 From: Jack <46790855@qq.com> Date: Mon, 27 Oct 2025 15:54:05 +0800 Subject: [PATCH 11/26] =?UTF-8?q?=E4=B8=8B=E5=8D=95=E6=80=BB=E5=85=A5?= =?UTF-8?q?=E5=8F=A3=EF=BC=8C=E6=89=93=E7=83=8A=E5=BA=97=E9=93=BA=E9=99=90?= =?UTF-8?q?=E5=88=B6=E4=B8=8B=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/pojo/dto/StoreBizTimeInfoDTO.java | 28 +++++++ .../impl/ShopOrderBaseServiceImpl.java | 7 +- .../store/mapper/ShopStoreBaseMapper.java | 15 ++++ .../store/service/ShopStoreBaseService.java | 8 ++ .../impl/ShopStoreBaseServiceImpl.java | 76 ++++++++++++++++--- 5 files changed, 121 insertions(+), 13 deletions(-) create mode 100644 mall-common/src/main/java/com/suisung/mall/common/pojo/dto/StoreBizTimeInfoDTO.java diff --git a/mall-common/src/main/java/com/suisung/mall/common/pojo/dto/StoreBizTimeInfoDTO.java b/mall-common/src/main/java/com/suisung/mall/common/pojo/dto/StoreBizTimeInfoDTO.java new file mode 100644 index 00000000..9c672df3 --- /dev/null +++ b/mall-common/src/main/java/com/suisung/mall/common/pojo/dto/StoreBizTimeInfoDTO.java @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2024. Lorem ipsum dolor sit amet, consectetur adipiscing elit. + * Morbi non lorem porttitor neque feugiat blandit. Ut vitae ipsum eget quam lacinia accumsan. + * Etiam sed turpis ac ipsum condimentum fringilla. Maecenas magna. + * Proin dapibus sapien vel ante. Aliquam erat volutpat. Pellentesque sagittis ligula eget metus. + * Vestibulum commodo. Ut rhoncus gravida arcu. + */ + +package com.suisung.mall.common.pojo.dto; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +@Data +@AllArgsConstructor +@NoArgsConstructor +/** + * 标准的地址实体类 + */ +public class StoreBizTimeInfoDTO implements Serializable { + private Integer store_id; + private Integer store_biz_state; + private String store_opening_hours; + private String store_close_hours; +} diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderBaseServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderBaseServiceImpl.java index 6581e3ed..26448ec7 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderBaseServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderBaseServiceImpl.java @@ -1674,7 +1674,6 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl item_items = (List) store_item.get("items"); diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/mapper/ShopStoreBaseMapper.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/mapper/ShopStoreBaseMapper.java index 37768251..9cd6a493 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/mapper/ShopStoreBaseMapper.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/mapper/ShopStoreBaseMapper.java @@ -4,7 +4,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.suisung.mall.common.modules.store.ShopStoreBase; +import com.suisung.mall.common.pojo.dto.StoreBizTimeInfoDTO; import io.lettuce.core.dynamic.annotation.Param; +import org.apache.ibatis.annotations.Select; import org.springframework.stereotype.Repository; import java.util.List; @@ -31,10 +33,23 @@ public interface ShopStoreBaseMapper extends BaseMapper { /** * 搜索附近店铺,排序:从近到远 2024-12-26 + * * @param page * @param params 省份province_id、城市city_id、县county_id、店铺分类store_category_id、分店subsite_id,店铺名称关键字store_name、 * @return */ IPage getNearShop2(Page page, @Param("params") Map params); + + /** + * 获取店铺营业时间信息 + * + * @param storeId + * @return + */ + @Select("SELECT ssb.store_id, ssb.store_biz_state, ssi.store_opening_hours, ssi.store_close_hours " + + " LEFT FROM shop_store_base ssb JOIN shop_store_info ssi ON ssb.store_id = ssi.store_id " + + " WHERE ssb.store_id = #{storeId} LIMIT 1") + StoreBizTimeInfoDTO getStoreBizTimeInfo(@Param("storeId") Integer storeId); + } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStoreBaseService.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStoreBaseService.java index dbfd8ef3..f48fc7d5 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStoreBaseService.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStoreBaseService.java @@ -237,6 +237,14 @@ public interface ShopStoreBaseService extends IBaseService { */ Integer getStoreBizState(ShopStoreBase shopStoreBase, ShopStoreInfo shopStoreInfo); + /** + * 根据店铺Id获取店铺营业状态 + * + * @param storeId + * @return + */ + Integer getStoreBizState(Integer storeId); + // Page getMobileStoreList(Integer page, Integer rows); } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreBaseServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreBaseServiceImpl.java index 4a530238..03e5105c 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreBaseServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreBaseServiceImpl.java @@ -44,6 +44,7 @@ import com.suisung.mall.common.modules.store.*; import com.suisung.mall.common.modules.user.ShopUserFavoritesStore; import com.suisung.mall.common.pojo.dto.GpsDTO; import com.suisung.mall.common.pojo.dto.StandardAddressDTO; +import com.suisung.mall.common.pojo.dto.StoreBizTimeInfoDTO; import com.suisung.mall.common.service.impl.BaiduMapServiceImpl; import com.suisung.mall.common.utils.*; import com.suisung.mall.core.web.service.impl.BaseServiceImpl; @@ -4200,38 +4201,89 @@ public class ShopStoreBaseServiceImpl extends BaseServiceImpl Date: Mon, 27 Oct 2025 16:11:30 +0800 Subject: [PATCH 12/26] =?UTF-8?q?=E4=B8=8B=E5=8D=95=E6=80=BB=E5=85=A5?= =?UTF-8?q?=E5=8F=A3=EF=BC=8C=E6=89=93=E7=83=8A=E5=BA=97=E9=93=BA=E9=99=90?= =?UTF-8?q?=E5=88=B6=E4=B8=8B=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../shop/user/service/impl/ShopUserCartServiceImpl.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/user/service/impl/ShopUserCartServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/user/service/impl/ShopUserCartServiceImpl.java index 5bc42de8..cbd9aa2d 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/user/service/impl/ShopUserCartServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/user/service/impl/ShopUserCartServiceImpl.java @@ -1049,6 +1049,13 @@ public class ShopUserCartServiceImpl extends BaseServiceImpl Date: Mon, 27 Oct 2025 16:13:39 +0800 Subject: [PATCH 13/26] =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E6=9D=A1=E5=BD=A2?= =?UTF-8?q?=E7=A0=81=E6=9F=A5=E8=AF=A2=E5=95=86=E5=93=81=E8=AF=A6=E6=83=85?= =?UTF-8?q?=EF=BC=8C=E7=94=A8=E4=BA=8E=E7=BC=96=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/ShopProductBaseController.java | 7 ++ .../service/ShopProductBaseService.java | 2 + .../impl/ShopProductBaseServiceImpl.java | 99 ++++++++++++++++++- 3 files changed, 104 insertions(+), 4 deletions(-) diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/product/controller/admin/ShopProductBaseController.java b/mall-shop/src/main/java/com/suisung/mall/shop/product/controller/admin/ShopProductBaseController.java index 0aff3cc7..1c3513e1 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/product/controller/admin/ShopProductBaseController.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/product/controller/admin/ShopProductBaseController.java @@ -190,4 +190,11 @@ public class ShopProductBaseController extends BaseControllerImpl { shopProductBaseService.exportFile(response, shopProductBase, Convert.toList(Integer.class, product_ids)); } + + @ApiOperation(value = "根据条形码查询商品信息", notes = "根据条形码查询商品信息") + @RequestMapping(value = "/getProductByProductNumber", method = RequestMethod.GET) + public CommonResult getProductByProductNumber(@RequestParam(name = "productNumber") String productNumber) { + return CommonResult.success(shopProductBaseService.getProductByProductNumber(productNumber)); + } + } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/product/service/ShopProductBaseService.java b/mall-shop/src/main/java/com/suisung/mall/shop/product/service/ShopProductBaseService.java index 496ef8b9..93c66331 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/product/service/ShopProductBaseService.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/product/service/ShopProductBaseService.java @@ -304,4 +304,6 @@ public interface ShopProductBaseService extends IBaseService { int countFindMapping(Integer store_id); List findPageMapping(Integer store_id, Integer pageNum, Integer pageSize); + + Map getProductByProductNumber(String productNumber); } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/product/service/impl/ShopProductBaseServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/product/service/impl/ShopProductBaseServiceImpl.java index 8d2adc08..872ef8e3 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/product/service/impl/ShopProductBaseServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/product/service/impl/ShopProductBaseServiceImpl.java @@ -45,10 +45,7 @@ import com.suisung.mall.common.pojo.dto.BaiduAiBriefDTO; import com.suisung.mall.common.pojo.dto.ProductRecommendDTO; import com.suisung.mall.common.pojo.dto.ProductSearchDTO; import com.suisung.mall.common.service.MessageService; -import com.suisung.mall.common.utils.CSVUtils; -import com.suisung.mall.common.utils.CheckUtil; -import com.suisung.mall.common.utils.CommonUtil; -import com.suisung.mall.common.utils.I18nUtil; +import com.suisung.mall.common.utils.*; import com.suisung.mall.core.web.service.impl.BaseServiceImpl; import com.suisung.mall.shop.activity.service.ShopActivityGroupbookingService; import com.suisung.mall.shop.base.service.*; @@ -6460,5 +6457,99 @@ public class ShopProductBaseServiceImpl extends BaseServiceImpl cond_row = new QueryWrapper<>(); + if (StrUtil.isNotBlank(productNumber)) { + cond_row.eq("product_number", productNumber); + } + cond_row.eq("store_id",store_id); + List lists = shopProductIndexService.list(cond_row); + if(lists.isEmpty()){ + return null; + } + ShopProductIndex shopProductIndexFind=lists.get(0); + // todo lc + // data.put("productBase",shopProductIndexFind); + + //判断是否为商家,且开启供应商,判断是否已经加入分销中 + Long productId= shopProductIndexFind.getProduct_id(); + List product_ids= Collections.singletonList(Math.toIntExact(productId)); + data.put("baseInfo", getProduct(product_ids)); + List baseInfo = (List) data.get("baseInfo"); + + baseInfo.forEach(s -> { + String str_product_spec = (String) s.get("product_spec"); + if (StrUtil.isNotBlank(str_product_spec) && StrUtil.equals(str_product_spec, "[]")) { + s.put("product_spec", JSONUtil.parseArray(str_product_spec)); + } + + String str_product_assist = (String) s.get("product_assist"); + if (StrUtil.isNotBlank(str_product_assist) && StrUtil.equals(str_product_assist, "{}")) { + s.put("product_assist", JSONUtil.parseObj(str_product_assist)); + } + }); + + QueryWrapper itemQueryWrapper = new QueryWrapper<>(); + itemQueryWrapper.eq("product_id", productId); + List productItems = shopProductItemService.find(itemQueryWrapper); + + if (CollectionUtil.isNotEmpty(productItems)) { + for (Map item : baseInfo) { + List shopProductItems = productItems.stream().filter(s -> ObjectUtil.equal(s.getProduct_id(), productId)).collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(shopProductItems)) { + BigDecimal product_advice_price = shopProductItems.stream().map(ShopProductItem::getItem_advice_price).min(BigDecimal::compareTo).get(); + item.put("product_advice_price", product_advice_price); + } + } + } + + List productItemS = productItems.stream().filter(distinctByKey(o -> o.getProduct_id())).collect(Collectors.toList()); + data.put("items",productItemS);//商品规格列表 + // shop_product_info + ShopProductInfo shopProductInfo = shopProductInfoService.get(productId); + // shop_product_detail + ShopProductDetail shopProductDetail = shopProductDetailService.get(productId); + // shop_product_index + ShopProductIndex shopProductIndex = shopProductIndexService.get(productId); + // shop_product_image + QueryWrapper imageQueryWrapper = new QueryWrapper<>(); + imageQueryWrapper.eq("product_id", productId); + List shopProductImages = shopProductImageService.find(imageQueryWrapper); + // shop_product_assist_index + QueryWrapper indexQueryWrapper = new QueryWrapper<>(); + indexQueryWrapper.eq("product_id", productId); + List assistIndexList = assistIndexService.find(indexQueryWrapper); + + HashMap map = new HashMap<>(); + if(com.suisung.mall.common.utils.StringUtils.isEmpty(shopProductInfo.getProduct_spec())){ + shopProductInfo.setProduct_spec("[]"); + } + map.put("shop_product_info", shopProductInfo); + map.put("shop_product_image", shopProductImages); + map.put("shop_product_detail", shopProductDetail); + map.put("shop_product_index", shopProductIndex); + map.put("shop_product_assist_index", assistIndexList); + + // 虚拟商品信息表 + Integer kind_id = shopProductIndex.getKind_id(); + if (ObjectUtil.equal(kind_id, StateCode.PRODUCT_KIND_FUWU)) { + ShopProductValidPeriod validPeriod = shopProductValidPeriodService.get(productId); + map.put("shop_product_valid_period", validPeriod); + } + data.put("productInfo",map); + Integer category_id=productItems.get(0).getCategory_id(); + ShopBaseProductCategory shopBaseProductCategory= shopBaseProductCategoryService.get(category_id); + data.put("category",shopBaseProductCategory); + Integer typeId=shopBaseProductCategory.getType_id(); + data.put("shopBaseProductType",shopBaseProductTypeService.getType(String.valueOf(typeId), productId)) ; + + return data; + } + } From ff669798766b24bc80765e8a7544e72d03a7b74f Mon Sep 17 00:00:00 2001 From: liyj <1617420630@qq.com> Date: Mon, 27 Oct 2025 16:13:47 +0800 Subject: [PATCH 14/26] =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E6=9D=A1=E5=BD=A2?= =?UTF-8?q?=E7=A0=81=E6=9F=A5=E8=AF=A2=E5=95=86=E5=93=81=E8=AF=A6=E6=83=85?= =?UTF-8?q?=EF=BC=8C=E7=94=A8=E4=BA=8E=E7=BC=96=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sql/shop/dev/20251027_dml.sql | 1 + 1 file changed, 1 insertion(+) create mode 100644 sql/shop/dev/20251027_dml.sql diff --git a/sql/shop/dev/20251027_dml.sql b/sql/shop/dev/20251027_dml.sql new file mode 100644 index 00000000..1152214c --- /dev/null +++ b/sql/shop/dev/20251027_dml.sql @@ -0,0 +1 @@ +INSERT INTO `admin_base_protocol` (`ctl`, `met`, `db`, `rights_id`, `log`, `path`,`comment`) VALUES ('/admin/shop/shop-product-base/getProductByProductNumber', 'index', 'master', '', '0', '/admin/shop/shop-product-base/getProductByProductNumber','根据条形码获取商品详情'); \ No newline at end of file From f87242a9295535fa42933b8a7e2c419e9ab09ae1 Mon Sep 17 00:00:00 2001 From: Jack <46790855@qq.com> Date: Mon, 27 Oct 2025 17:23:52 +0800 Subject: [PATCH 15/26] =?UTF-8?q?=E4=B8=8B=E5=8D=95=E6=80=BB=E5=85=A5?= =?UTF-8?q?=E5=8F=A3=EF=BC=8C=E6=89=93=E7=83=8A=E5=BA=97=E9=93=BA=E9=99=90?= =?UTF-8?q?=E5=88=B6=E4=B8=8B=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/pojo/dto/StoreBizTimeInfoDTO.java | 1 + .../impl/ShopOrderBaseServiceImpl.java | 5 +++-- .../store/mapper/ShopStoreBaseMapper.java | 4 ++-- .../store/service/ShopStoreBaseService.java | 2 +- .../impl/ShopStoreBaseServiceImpl.java | 22 ++++++++++++------- .../service/impl/ShopUserCartServiceImpl.java | 6 +++-- 6 files changed, 25 insertions(+), 15 deletions(-) diff --git a/mall-common/src/main/java/com/suisung/mall/common/pojo/dto/StoreBizTimeInfoDTO.java b/mall-common/src/main/java/com/suisung/mall/common/pojo/dto/StoreBizTimeInfoDTO.java index 9c672df3..27239f7a 100644 --- a/mall-common/src/main/java/com/suisung/mall/common/pojo/dto/StoreBizTimeInfoDTO.java +++ b/mall-common/src/main/java/com/suisung/mall/common/pojo/dto/StoreBizTimeInfoDTO.java @@ -22,6 +22,7 @@ import java.io.Serializable; */ public class StoreBizTimeInfoDTO implements Serializable { private Integer store_id; + private String store_name; private Integer store_biz_state; private String store_opening_hours; private String store_close_hours; diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderBaseServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderBaseServiceImpl.java index 26448ec7..78991b42 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderBaseServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderBaseServiceImpl.java @@ -6318,8 +6318,9 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl storeBizState = shopStoreBaseService.getStoreBizState(currStoreId); + if (storeBizState != null && CommonConstant.Disable2.equals(storeBizState.getFirst())) { + throw new ApiException(I18nUtil._(storeBizState.getSecond() + ",无法提交订单。")); } // 每个订单记录的商品列表 diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/mapper/ShopStoreBaseMapper.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/mapper/ShopStoreBaseMapper.java index 9cd6a493..1a41b02c 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/mapper/ShopStoreBaseMapper.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/mapper/ShopStoreBaseMapper.java @@ -47,8 +47,8 @@ public interface ShopStoreBaseMapper extends BaseMapper { * @param storeId * @return */ - @Select("SELECT ssb.store_id, ssb.store_biz_state, ssi.store_opening_hours, ssi.store_close_hours " + - " LEFT FROM shop_store_base ssb JOIN shop_store_info ssi ON ssb.store_id = ssi.store_id " + + @Select("SELECT ssb.store_id, ssb.store_name, ssb.store_biz_state, ssi.store_opening_hours, ssi.store_close_hours " + + " FROM shop_store_base ssb LEFT JOIN shop_store_info ssi ON ssb.store_id = ssi.store_id " + " WHERE ssb.store_id = #{storeId} LIMIT 1") StoreBizTimeInfoDTO getStoreBizTimeInfo(@Param("storeId") Integer storeId); diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStoreBaseService.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStoreBaseService.java index f48fc7d5..31a5b2ec 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStoreBaseService.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStoreBaseService.java @@ -243,7 +243,7 @@ public interface ShopStoreBaseService extends IBaseService { * @param storeId * @return */ - Integer getStoreBizState(Integer storeId); + Pair getStoreBizState(Integer storeId); // Page getMobileStoreList(Integer page, Integer rows); diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreBaseServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreBaseServiceImpl.java index 03e5105c..b0d188f8 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreBaseServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreBaseServiceImpl.java @@ -4239,18 +4239,19 @@ public class ShopStoreBaseServiceImpl extends BaseServiceImpl getStoreBizState(Integer storeId) { // 参数校验 if (CheckUtil.isEmpty(storeId)) { log.warn("店铺ID为空,无法确定营业状态"); - return CommonConstant.Disable2; + return Pair.of(CommonConstant.Disable2, "店铺营业状态有误"); } try { StoreBizTimeInfoDTO storeBizTimeInfo = baseMapper.getStoreBizTimeInfo(storeId); if (storeBizTimeInfo == null) { log.warn("未找到店铺营业时间信息,storeId: {}", storeId); - return CommonConstant.Disable2; + return Pair.of(CommonConstant.Disable2, "店铺营业状态有误"); } Integer storeBizState = storeBizTimeInfo.getStore_biz_state(); @@ -4266,20 +4267,25 @@ public class ShopStoreBaseServiceImpl extends BaseServiceImpl storeBizState = shopStoreBaseService.getStoreBizState(storeId); + if (storeBizState != null && CommonConstant.Disable2.equals(storeBizState.getFirst())) { + throw new ApiException(I18nUtil._(storeBizState.getSecond() + ",无法加购商品。")); } Integer cart_type = Convert.toInt(data.get("cart_type")); From 3e9688f21d0b2308bd177a39a79db5e526fd0137 Mon Sep 17 00:00:00 2001 From: Jack <46790855@qq.com> Date: Mon, 27 Oct 2025 23:29:15 +0800 Subject: [PATCH 16/26] =?UTF-8?q?=E9=A1=BA=E4=B8=B0=E9=85=8D=E7=BD=AE=20?= =?UTF-8?q?=E5=95=86=E5=AE=B6id?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/LakalaApiServiceImpl.java | 3 +- .../service/impl/SFExpressApiServiceImpl.java | 96 +++++++++++-------- .../service/impl/ShopMchEntryServiceImpl.java | 5 +- .../src/main/resources/bootstrap-prod.yml | 4 +- 4 files changed, 63 insertions(+), 45 deletions(-) diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LakalaApiServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LakalaApiServiceImpl.java index dd3e0d97..22ca1c65 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LakalaApiServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LakalaApiServiceImpl.java @@ -1838,8 +1838,7 @@ public class LakalaApiServiceImpl implements LakalaApiService { // 10. 检查商户绑定状态是否完成, 更改总的审核状态 shopMchEntryService.checkMerchEntryFinished(mchId); - - + // 11. 日志记录并返回成功响应 log.info("商家绑定分账接收方异步通知处理完成,mchId:{} merCupNo:{}", mchId, merCupNo); return JSONUtil.createObj().set("code", "SUCCESS").set("message", "分账接收方绑定成功"); diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/sfexpress/service/impl/SFExpressApiServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/sfexpress/service/impl/SFExpressApiServiceImpl.java index 19100a11..f43aed70 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/sfexpress/service/impl/SFExpressApiServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/sfexpress/service/impl/SFExpressApiServiceImpl.java @@ -184,7 +184,7 @@ public class SFExpressApiServiceImpl implements SFExpressApiService { logger.error("创建顺丰同店铺:联系人手机号不能为空"); return Pair.of(false, "联系人手机号不能为空"); } - + AddressParseResultTO addressParseResultTO = AddressUtil.parseAddress(shopMchEntry.getStore_address()); // 解析城市名称 String cityName = "桂平市"; // 默认城市 @@ -244,7 +244,7 @@ public class SFExpressApiServiceImpl implements SFExpressApiService { * @param contactPhone 店铺电话 * @param longitude 经度 * @param latitude 纬度 - * @return + * @return Pair 第一个元素表示是否成功,第二个元素表示结果信息或错误信息 */ @Override public Pair createSfExpressShop(Long mchId, Integer storeId, String shopName, String cityName, @@ -254,12 +254,33 @@ public class SFExpressApiServiceImpl implements SFExpressApiService { try { // 1. 验证必要参数 - if (CheckUtil.isEmpty(mchId) || CheckUtil.isEmpty(storeId) || StringUtils.isAnyBlank(shopName, shopAddress, contactName, contactPhone)) { - logger.error("创建顺丰店铺,缺少必要参数!mchId:{}, storeId:{},shopName:{},shopAddress:{},contactName:{},contactPhone:{}", mchId, storeId, shopName, shopAddress, contactName, contactPhone); + if ((CheckUtil.isEmpty(mchId) && CheckUtil.isEmpty(storeId)) || + StringUtils.isAnyBlank(shopName, shopAddress, contactName, contactPhone)) { + logger.error("创建顺丰店铺,缺少必要参数!mchId:{}, storeId:{},shopName:{},shopAddress:{},contactName:{},contactPhone:{}", + mchId, storeId, shopName, shopAddress, contactName, contactPhone); return Pair.of(false, "创建顺丰店铺,缺少必要参数!"); } - // 2. 获取或初始化商家配送信息 + // 2. 获取商家入驻信息 + ShopMchEntry shopMchEntry; + if (CheckUtil.isNotEmpty(mchId)) { + shopMchEntry = shopMchEntryService.shopMerchEntryById(mchId); + if (shopMchEntry == null) { + logger.error("无法找到商家入驻信息!mchId: {}", mchId); + return Pair.of(false, "无法找到商家入驻信息"); + } + + storeId = Convert.toInt(shopMchEntry.getStore_id()); + + } else { + shopMchEntry = shopMchEntryService.getShopMerchEntryByStoreId(storeId); + if (shopMchEntry == null) { + logger.error("无法找到商家入驻信息!storeId: {}", storeId); + return Pair.of(false, "无法找到商家入驻信息"); + } + } + + // 3. 获取或初始化商家配送信息 ShopStoreSameCityTransportBase transportBase = shopStoreSameCityTransportBaseService .getShopStoreSameCityTransportBaseById(Long.valueOf(storeId)); @@ -270,27 +291,21 @@ public class SFExpressApiServiceImpl implements SFExpressApiService { } if (transportBase == null) { - logger.error("创建商家配送信息失败!"); + logger.error("创建商家配送信息失败!storeId: {}", storeId); return Pair.of(false, "创建商家配送信息失败"); } - // 3. 如果已存在顺丰店铺ID,验证其有效性 + // 4. 如果已存在顺丰店铺ID,验证其有效性 if (CheckUtil.isNotEmpty(transportBase.getShop_id())) { - logger.debug("如果存在店铺Id,从顺丰同城平台查询店铺ID,开始验证其有效性!"); + logger.debug("检测到已存在店铺Id,开始验证其有效性!shopId: {}", transportBase.getShop_id()); ThirdApiRes shopInfo = getSfShopInfo(transportBase.getShop_id()); if (shopInfo != null && shopInfo.getError_code().equals(0)) { - logger.info("已成功创建顺丰同城店铺!"); + logger.info("已成功创建顺丰同城店铺!shopId: {}", transportBase.getShop_id()); return Pair.of(true, transportBase.getShop_id()); } } - ShopMchEntry shopMchEntry = shopMchEntryService.shopMerchEntryById(mchId); - if (shopMchEntry == null) { - logger.error("无法找到商家入驻信息!"); - return Pair.of(false, "无法找到商家入驻信息"); - } - - // 二级代理商的商家 Id + // 5. 获取供应商ID String sfSupplierId = ""; // 获取创建店铺的商家Id(由店铺的县级代理商提供) if (CheckUtil.isNotEmpty(shopMchEntry.getDistributor_id())) { @@ -303,32 +318,28 @@ public class SFExpressApiServiceImpl implements SFExpressApiService { sfSupplierId = supplierId; } - // 4. 构建请求参数 + // 6. 构建请求参数 Map params = buildCommonParams(); - params.put("supplier_id", sfSupplierId); // 店铺所属商家id(应该由县级代理商提供) - params.put("out_shop_id", storeId); // 外部店铺ID - params.put("shop_name", shopName); // 店铺名称 - params.put("city_name", cityName); // 城市名称 - - // RMK 1:快餐 2:药品 3:百货 4:脏衣服收 5:干净衣服派 6:生鲜 8:高端饮品 9:现场勘验 10:快递 12:文件 13:蛋糕 14:鲜花 15:数码 16:服装 17: - //汽配 18:珠宝 20:披萨 21:中餐 22:水产 27:专人直送 32:中端饮品 33:便利店 34:面包糕点 35:火锅 36:证照 40:烧烤小龙虾 41:外部落地配 47:烟酒 - //行 48:成人用品 99:其他 - // 经营类型: 快餐,百货,生鲜,高端饮品,蛋糕,鲜花,数码,服装,披萨,水产,中端饮品,便利店,面包糕点,烟酒,其他 - params.put("shop_product_types", "33"); //"1,3,6,8,13,14,15,16,20,22,32,33,34,47,99" - params.put("shop_type", 1); // 店铺类型: 1-普通型 2-平台型 - params.put("shop_address", shopAddress); // 店铺地址 - params.put("longitude", longitude); // 经度 - params.put("latitude", latitude); // 纬度 - params.put("shop_contact_name", contactName); // 联系人姓名 - params.put("shop_contact_phone", contactPhone); // 联系电话 + params.put("supplier_id", sfSupplierId); // 店铺所属商家id(应该由县级代理商提供) + params.put("out_shop_id", storeId); // 外部店铺ID + params.put("shop_name", shopName); // 店铺名称 + params.put("city_name", cityName); // 城市名称 + params.put("shop_product_types", "33"); // 经营类型: 33-便利店 + params.put("shop_type", 1); // 店铺类型: 1-普通型 2-平台型 + params.put("shop_address", shopAddress); // 店铺地址 + params.put("longitude", longitude); // 经度 + params.put("latitude", latitude); // 纬度 + params.put("shop_contact_name", contactName); // 联系人姓名 + params.put("shop_contact_phone", contactPhone); // 联系电话 logger.debug("开始创建顺丰店铺,参数:{}", params); - // 5. 发送请求到顺丰接口 + // 7. 发送请求到顺丰接口 String paramJSON = JsonUtil.toJSONString(params); String sendUrl = buildUrl("createShop", paramJSON); String responseStr = HttpUtil.post(sendUrl, paramJSON); - logger.debug("创建顺丰店铺结果:{}", responseStr); + logger.debug("创建顺丰店铺结果: {}", responseStr); + if (StrUtil.isBlank(responseStr)) { logger.error("创建顺丰店铺异常,无返回值!"); return Pair.of(false, "创建顺丰店铺异常,无返回值!"); @@ -340,18 +351,24 @@ public class SFExpressApiServiceImpl implements SFExpressApiService { return Pair.of(false, "创建顺丰店铺异常,返回值有误!"); } - // 6. 检查接口调用结果 + // 8. 检查接口调用结果 if (!apiRes.getError_code().equals(0) || apiRes.getResult() == null) { - String errMsg = apiRes.getError_code().equals(0) ? "创建顺丰店铺失败!" : "创建顺丰店铺失败: " + apiRes.getError_msg(); + String errMsg = StrUtil.isBlank(apiRes.getError_msg()) ? + "创建顺丰店铺失败。" : "创建顺丰店铺失败: " + apiRes.getError_msg(); logger.error("创建顺丰店铺失败: {}", errMsg); return Pair.of(false, errMsg); } - // 7. 提取顺丰店铺ID并更新数据库 + // 9. 提取顺丰店铺ID并更新数据库 JSONObject result = (JSONObject) apiRes.getResult(); String sfShopId = result.getStr("shop_id"); + if (StrUtil.isBlank(sfShopId)) { + logger.error("创建顺丰店铺失败,返回的店铺ID为空"); + return Pair.of(false, "创建顺丰店铺失败,返回的店铺ID为空"); + } + transportBase.setShop_id(sfShopId); - transportBase.setShop_state(CommonConstant.Enable);// 顺丰同城快递商品特惠 + transportBase.setShop_state(CommonConstant.Enable); // 顺丰同城快递商品特惠 transportBase.setDelivery_brand(CommonConstant.DELIVERY_BRAND_SF); Pair updateResult = shopStoreSameCityTransportBaseService @@ -371,6 +388,7 @@ public class SFExpressApiServiceImpl implements SFExpressApiService { } } + /** * 创建顺丰同城(普通型)店铺(直调顺丰同城的接口,脱离我们的业务) * diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopMchEntryServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopMchEntryServiceImpl.java index cc73839d..dd1ceabb 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopMchEntryServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopMchEntryServiceImpl.java @@ -1762,8 +1762,8 @@ public class ShopMchEntryServiceImpl extends BaseServiceImpl updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("id", mchId).eq("status", CommonConstant.Enable) - .ne("approval_status", CommonConstant.MCH_APPR_STA_PASS); + updateWrapper.eq("id", mchId).eq("status", CommonConstant.Enable); + //.ne("approval_status", CommonConstant.MCH_APPR_STA_PASS); updateWrapper.set("approval_status", CommonConstant.MCH_APPR_STA_PASS); updateWrapper.set("approval_remark", "恭喜您,入驻流程已全部完成!"); boolean updateResult = update(updateWrapper); // 更新商户入驻信息 @@ -1887,6 +1887,7 @@ public class ShopMchEntryServiceImpl extends BaseServiceImpl Date: Tue, 28 Oct 2025 00:27:32 +0800 Subject: [PATCH 17/26] =?UTF-8?q?=E5=95=86=E5=AE=B6=E6=AF=94=E4=BE=8B=20?= =?UTF-8?q?=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ShopMchEntryServiceImpl.java | 10 +++++++--- .../service/impl/ShopStoreBaseServiceImpl.java | 15 +++++++++------ 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopMchEntryServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopMchEntryServiceImpl.java index dd1ceabb..1605ea04 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopMchEntryServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopMchEntryServiceImpl.java @@ -928,8 +928,6 @@ public class ShopMchEntryServiceImpl extends BaseServiceImpl Date: Tue, 28 Oct 2025 10:10:44 +0800 Subject: [PATCH 18/26] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=97=B6=E4=B8=8D?= =?UTF-8?q?=E9=87=8D=E6=96=B0=E5=8C=B9=E9=85=8D=E5=9B=BE=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mall/common/modules/product/ShopProductImage.java | 6 +++--- .../product/service/impl/ShopProductBaseServiceImpl.java | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/mall-common/src/main/java/com/suisung/mall/common/modules/product/ShopProductImage.java b/mall-common/src/main/java/com/suisung/mall/common/modules/product/ShopProductImage.java index 8b66a0e1..c90d34dc 100644 --- a/mall-common/src/main/java/com/suisung/mall/common/modules/product/ShopProductImage.java +++ b/mall-common/src/main/java/com/suisung/mall/common/modules/product/ShopProductImage.java @@ -1,8 +1,6 @@ package com.suisung.mall.common.modules.product; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.*; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -45,9 +43,11 @@ public class ShopProductImage implements Serializable { private String color_name; @ApiModelProperty(value = "商品主图") + @TableField(updateStrategy = FieldStrategy.NOT_EMPTY) private String item_image_default; @ApiModelProperty(value = "副图(DOT)") + @TableField(updateStrategy = FieldStrategy.NOT_EMPTY) private String item_image_other; @ApiModelProperty(value = "DIY背景") diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/product/service/impl/ShopProductBaseServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/product/service/impl/ShopProductBaseServiceImpl.java index 872ef8e3..fc762497 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/product/service/impl/ShopProductBaseServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/product/service/impl/ShopProductBaseServiceImpl.java @@ -5591,6 +5591,7 @@ public class ShopProductBaseServiceImpl extends BaseServiceImpl Date: Tue, 28 Oct 2025 10:47:04 +0800 Subject: [PATCH 19/26] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=8A=E6=9E=B6?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E4=B8=8D=E5=87=86=E7=A1=AE,=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E5=BA=93=E5=AD=98=E5=90=8C=E6=AD=A5=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../shop/sync/service/impl/SyncBaseThirdSxAbstract.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/sync/service/impl/SyncBaseThirdSxAbstract.java b/mall-shop/src/main/java/com/suisung/mall/shop/sync/service/impl/SyncBaseThirdSxAbstract.java index 8b0450ee..05447fd4 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/sync/service/impl/SyncBaseThirdSxAbstract.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/sync/service/impl/SyncBaseThirdSxAbstract.java @@ -59,6 +59,7 @@ import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.text.ParseException; +import java.time.Instant; import java.util.*; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicReference; @@ -795,7 +796,8 @@ public abstract class SyncBaseThirdSxAbstract{ ShopProductBase shopProductBase = new ShopProductBase(); shopProductBase.setCategoryId(categoryId); - shopProductBase.setProduct_sale_time(Convert.toDate(DateUtil.current() + 600)); //10分钟 + long seconds=System.currentTimeMillis(); + shopProductBase.setProduct_sale_time(Date.from(Instant.now().plusSeconds(seconds))); //10分钟 shopProductBase.setStore_id(storeIdInt); shopProductBase.setProduct_number((String) jsonObj.get("product_number")); @@ -821,7 +823,7 @@ public abstract class SyncBaseThirdSxAbstract{ } BigDecimal stock= jsonObj.getBigDecimal("stock");//库存 if(ObjectUtil.equals(isNegativeAllowed,DicEnum.YESORNO_1.getCode())&&stock.compareTo(BigDecimal.ZERO)<=0){//允许负库存,每次都加满,就是一直有售卖 - stock=new BigDecimal("99"); + stock=new BigDecimal("500"); } //商品总量 if(ObjectUtil.isNotEmpty(jsonObj.getStr("unit"))&&ObjectUtil.isNotEmpty(jsonObj.getStr("stock")) @@ -862,7 +864,7 @@ public abstract class SyncBaseThirdSxAbstract{ // ShopProductIndex ShopProductIndex shopProductIndex = new ShopProductIndex(); shopProductIndex.setProduct_add_time(currentDate.getTime()); - shopProductIndex.setProduct_sale_time(DateUtil.current() + 600); //10分钟 + shopProductIndex.setProduct_sale_time(seconds); shopProductIndex.setStore_category_ids(""); // 店铺分类编号(DOT) shopProductIndex.setProduct_tags("");// 商品标签(DOT) shopProductIndex.setBrand_id(0); From 0b1f7bd30e5cae5f8156bcbff5bb4c6ddb9da2e0 Mon Sep 17 00:00:00 2001 From: Jack <46790855@qq.com> Date: Tue, 28 Oct 2025 10:51:27 +0800 Subject: [PATCH 20/26] =?UTF-8?q?=E5=95=86=E5=AE=B6=E6=B3=A8=E5=86=8C?= =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=AF=86=E7=A0=81=E7=9F=AD=E4=BF=A1=EF=BC=8C?= =?UTF-8?q?=E5=95=86=E5=AE=B6=E5=85=A5=E9=A9=BB=E5=8F=91=E9=80=81=E7=9F=AD?= =?UTF-8?q?=E4=BF=A1=EF=BC=8C=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/AccountUserBaseServiceImpl.java | 2 +- .../common/utils/phone/PhoneNumberUtils.java | 2 + .../impl/EsignPlatformInfoServiceImpl.java | 44 +++++++++++++------ .../service/impl/ShopMchEntryServiceImpl.java | 4 +- 4 files changed, 36 insertions(+), 16 deletions(-) diff --git a/mall-account/src/main/java/com/suisung/mall/account/service/impl/AccountUserBaseServiceImpl.java b/mall-account/src/main/java/com/suisung/mall/account/service/impl/AccountUserBaseServiceImpl.java index 05344de3..3e0008c3 100644 --- a/mall-account/src/main/java/com/suisung/mall/account/service/impl/AccountUserBaseServiceImpl.java +++ b/mall-account/src/main/java/com/suisung/mall/account/service/impl/AccountUserBaseServiceImpl.java @@ -1953,7 +1953,7 @@ public class AccountUserBaseServiceImpl extends BaseServiceImpl smsArgs = new HashMap<>(); smsArgs.put("password", user_password_src); - sendSmsMessage(PhoneNumberUtils.cleanPhoneNumber(user_mobile), "SMS_481085172", smsArgs); + sendSmsMessage(PhoneNumberUtils.cleanPhoneNumber(user_mobile), "SMS_496910525", smsArgs); // SMS_496910525 } //初次注册发送消息 diff --git a/mall-common/src/main/java/com/suisung/mall/common/utils/phone/PhoneNumberUtils.java b/mall-common/src/main/java/com/suisung/mall/common/utils/phone/PhoneNumberUtils.java index 454ae152..3bc93a46 100644 --- a/mall-common/src/main/java/com/suisung/mall/common/utils/phone/PhoneNumberUtils.java +++ b/mall-common/src/main/java/com/suisung/mall/common/utils/phone/PhoneNumberUtils.java @@ -352,6 +352,8 @@ public class PhoneNumberUtils { System.out.println(cleanPhoneNumber("+3541234567")); // 期望输出: 1234567 System.out.println(cleanPhoneNumber("+85298765432")); + System.out.println(PhoneNumberUtils.checkPhoneNumber("+8617777525395")); + } } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/esign/service/impl/EsignPlatformInfoServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/esign/service/impl/EsignPlatformInfoServiceImpl.java index d81b84c9..6aa55a76 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/esign/service/impl/EsignPlatformInfoServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/esign/service/impl/EsignPlatformInfoServiceImpl.java @@ -178,26 +178,44 @@ public class EsignPlatformInfoServiceImpl extends BaseServiceImpl 手机号和营业执照号的键值对,获取失败时返回null */ @Override public Pair getEsignPlatformMobileAndLicenseNumber() { - QueryWrapper queryWrapper = new QueryWrapper(); - queryWrapper.eq("level", 0).select("telephone", "license_number", "legal_person_mobile"); - List esignPlatformInfos = list(queryWrapper); - if (CollectionUtil.isEmpty(esignPlatformInfos)) { + log.debug("[获取平台方信息] 开始获取平台方手机号和营业执照号"); + + try { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("level", 0) + .eq("status", CommonConstant.Enable) + .select("telephone", "license_number", "legal_person_mobile"); + + EsignPlatformInfo esignPlatformInfo = findOne(queryWrapper); + if (esignPlatformInfo == null) { + log.warn("[获取平台方信息] 未找到有效的平台方记录"); + return null; + } + + // 优先使用telephone字段,如验证失败则使用legal_person_mobile + String mobile = esignPlatformInfo.getTelephone(); + if (!PhoneNumberUtils.checkPhoneNumber(mobile) + && StrUtil.isNotBlank(esignPlatformInfo.getLegal_person_mobile()) + && PhoneNumberUtils.checkPhoneNumber(esignPlatformInfo.getLegal_person_mobile())) { + log.debug("[获取平台方信息] 主手机号验证失败,使用法人手机号"); + mobile = esignPlatformInfo.getLegal_person_mobile(); + } + + log.debug("[获取平台方信息] 成功获取平台方信息,手机号:{},营业执照号:{}", + mobile, esignPlatformInfo.getLicense_number()); + return Pair.of(mobile, esignPlatformInfo.getLicense_number()); + + } catch (Exception e) { + log.error("[获取平台方信息] 查询平台方信息时发生异常", e); return null; } - - EsignPlatformInfo esignPlatformInfo = esignPlatformInfos.get(0); - String mobile = esignPlatformInfo.getTelephone(); - if (!PhoneNumberUtils.checkPhoneNumber(mobile) && StrUtil.isNotBlank(esignPlatformInfo.getLegal_person_mobile())) { - mobile = esignPlatformInfo.getLegal_person_mobile(); - } - - return Pair.of(mobile, esignPlatformInfo.getLicense_number()); } + /** * 根据入驻编号获取商户的二级代理 * diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopMchEntryServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopMchEntryServiceImpl.java index 1605ea04..4e91b649 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopMchEntryServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopMchEntryServiceImpl.java @@ -337,7 +337,7 @@ public class ShopMchEntryServiceImpl extends BaseServiceImpl mobileAndLicenseNumber = esignPlatformInfoService.getEsignPlatformMobileAndLicenseNumber(); if (mobileAndLicenseNumber != null) { Map tmplArgs = new HashMap<>(1); - tmplArgs.put("name", record.getBiz_license_company()); // 商家公司名称 + tmplArgs.put("name", record.getStore_name()); // 商家店铺名 shopMessageTemplateService.aliyunSmsSend(mobileAndLicenseNumber.getFirst(), "SMS_486545331", tmplArgs); } @@ -462,7 +462,7 @@ public class ShopMchEntryServiceImpl extends BaseServiceImpl mobileAndLicenseNumber = esignPlatformInfoService.getEsignPlatformMobileAndLicenseNumber(); if (mobileAndLicenseNumber != null) { - String mchName = StrUtil.isBlank(record.getBiz_license_company()) ? "重新修正" : record.getBiz_license_company(); + String mchName = StrUtil.isBlank(record.getStore_name()) ? "重新修正资料" : record.getStore_name(); Map tmplArgs = new HashMap<>(1); tmplArgs.put("name", mchName); // 商家公司名称 // 尊敬的管理员,商家 ${name},提交了入驻我们平台的申请,请及时对相关资质材料予以审核,以便推进后续流程。 From d3500e62f1d5fc9f9f9f7af8153ecbfaedb60c20 Mon Sep 17 00:00:00 2001 From: Jack <46790855@qq.com> Date: Tue, 28 Oct 2025 11:47:41 +0800 Subject: [PATCH 21/26] =?UTF-8?q?=E5=95=86=E5=AE=B6=E6=B3=A8=E5=86=8C?= =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=AF=86=E7=A0=81=E7=9F=AD=E4=BF=A1=EF=BC=8C?= =?UTF-8?q?=E5=95=86=E5=AE=B6=E5=85=A5=E9=A9=BB=E5=8F=91=E9=80=81=E7=9F=AD?= =?UTF-8?q?=E4=BF=A1=EF=BC=8C=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mall/account/service/impl/AccountUserBaseServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mall-account/src/main/java/com/suisung/mall/account/service/impl/AccountUserBaseServiceImpl.java b/mall-account/src/main/java/com/suisung/mall/account/service/impl/AccountUserBaseServiceImpl.java index 3e0008c3..3954baf6 100644 --- a/mall-account/src/main/java/com/suisung/mall/account/service/impl/AccountUserBaseServiceImpl.java +++ b/mall-account/src/main/java/com/suisung/mall/account/service/impl/AccountUserBaseServiceImpl.java @@ -1950,7 +1950,7 @@ public class AccountUserBaseServiceImpl extends BaseServiceImpl smsArgs = new HashMap<>(); smsArgs.put("password", user_password_src); sendSmsMessage(PhoneNumberUtils.cleanPhoneNumber(user_mobile), "SMS_496910525", smsArgs); // SMS_496910525 From f061da5fea3bdcaf7c585e79100cae20895b284d Mon Sep 17 00:00:00 2001 From: liyj <1617420630@qq.com> Date: Tue, 28 Oct 2025 16:02:48 +0800 Subject: [PATCH 22/26] =?UTF-8?q?=E7=BA=BF=E4=B8=8A=E6=BA=A2=E4=BB=B7?= =?UTF-8?q?=E7=8E=87=E6=96=B0=E5=A2=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../suisung/mall/common/modules/sync/ProductMapping.java | 4 ++++ .../mall/shop/sync/exelModel/ProductMappingExcel.java | 5 +++++ .../shop/sync/service/impl/ProductMappingServiceImpl.java | 7 +++++-- sql/shop/dev/20251028_dml.sql | 1 + 4 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 sql/shop/dev/20251028_dml.sql diff --git a/mall-common/src/main/java/com/suisung/mall/common/modules/sync/ProductMapping.java b/mall-common/src/main/java/com/suisung/mall/common/modules/sync/ProductMapping.java index 822551c0..91aa3bd0 100644 --- a/mall-common/src/main/java/com/suisung/mall/common/modules/sync/ProductMapping.java +++ b/mall-common/src/main/java/com/suisung/mall/common/modules/sync/ProductMapping.java @@ -81,6 +81,10 @@ public class ProductMapping implements Serializable { @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date updateTime; + @TableField(value ="premium_rate",updateStrategy=NOT_EMPTY) + @ApiModelProperty("线上溢价率") + private BigDecimal premiumRate; + /** * 生成唯一键:productName + productNumber + storeId diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/sync/exelModel/ProductMappingExcel.java b/mall-shop/src/main/java/com/suisung/mall/shop/sync/exelModel/ProductMappingExcel.java index 39a0e8a4..9c30ec20 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/sync/exelModel/ProductMappingExcel.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/sync/exelModel/ProductMappingExcel.java @@ -32,6 +32,9 @@ public class ProductMappingExcel { @ExcelProperty(value = "排序值", index = 7) private Integer sortOrder; + @ExcelProperty(value = "线上溢价率", index = 8) + private BigDecimal premiumRate; + // 转换为实体对象 public ProductMapping toEntity() { ProductMapping entity = new ProductMapping(); @@ -43,6 +46,7 @@ public class ProductMappingExcel { entity.setSpecUnit(this.specUnit); entity.setDescription(this.description); entity.setSortOrder(this.sortOrder); + entity.setPremiumRate(this.premiumRate); return entity; } @@ -57,6 +61,7 @@ public class ProductMappingExcel { excel.setSpecUnit(entity.getSpecUnit()); excel.setDescription(entity.getDescription()); excel.setSortOrder(entity.getSortOrder()); + excel.setPremiumRate(entity.getPremiumRate()); return excel; } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/sync/service/impl/ProductMappingServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/sync/service/impl/ProductMappingServiceImpl.java index 9aaf0c1c..ad421bb7 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/sync/service/impl/ProductMappingServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/sync/service/impl/ProductMappingServiceImpl.java @@ -61,6 +61,7 @@ import javax.validation.ValidationException; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.math.BigDecimal; +import java.math.RoundingMode; import java.net.URLEncoder; import java.nio.file.Files; import java.nio.file.Path; @@ -420,8 +421,10 @@ public class ProductMappingServiceImpl extends BaseServiceImpl Date: Tue, 28 Oct 2025 16:56:57 +0800 Subject: [PATCH 23/26] =?UTF-8?q?=E6=98=A0=E5=B0=84=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/ProductMappingServiceImpl.java | 11 ++- sql/shop/dev/20250809_ddl.sql | 83 +++++++++++++++++++ 2 files changed, 93 insertions(+), 1 deletion(-) create mode 100644 sql/shop/dev/20250809_ddl.sql diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/sync/service/impl/ProductMappingServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/sync/service/impl/ProductMappingServiceImpl.java index ad421bb7..974ce5e8 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/sync/service/impl/ProductMappingServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/sync/service/impl/ProductMappingServiceImpl.java @@ -582,6 +582,9 @@ public class ProductMappingServiceImpl extends BaseServiceImpl Date: Tue, 28 Oct 2025 18:26:52 +0800 Subject: [PATCH 24/26] =?UTF-8?q?=E5=95=86=E5=93=81=E6=98=A0=E5=B0=84?= =?UTF-8?q?=E5=B8=82=E5=9C=BA=E4=BB=B7=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/modules/product/ShopProductSpecItem.java | 4 ++++ .../service/impl/ProductMappingServiceImpl.java | 13 ++++++++----- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/mall-common/src/main/java/com/suisung/mall/common/modules/product/ShopProductSpecItem.java b/mall-common/src/main/java/com/suisung/mall/common/modules/product/ShopProductSpecItem.java index ad69328d..d8de855e 100644 --- a/mall-common/src/main/java/com/suisung/mall/common/modules/product/ShopProductSpecItem.java +++ b/mall-common/src/main/java/com/suisung/mall/common/modules/product/ShopProductSpecItem.java @@ -56,6 +56,10 @@ public class ShopProductSpecItem implements Serializable { @TableField(exist=false) private BigDecimal itemPrice; + @ApiModelProperty(value = "市场价") + @TableField(exist=false) + private BigDecimal marketPrice; + @ApiModelProperty(value = "切割后的库存") @TableField(exist=false) private BigDecimal itemQuantity; diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/sync/service/impl/ProductMappingServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/sync/service/impl/ProductMappingServiceImpl.java index 974ce5e8..e3847523 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/sync/service/impl/ProductMappingServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/sync/service/impl/ProductMappingServiceImpl.java @@ -251,9 +251,10 @@ public class ProductMappingServiceImpl extends BaseServiceImpl Date: Tue, 28 Oct 2025 18:51:35 +0800 Subject: [PATCH 25/26] =?UTF-8?q?=E5=95=86=E5=93=81=E6=98=A0=E5=B0=84?= =?UTF-8?q?=E5=B8=82=E5=9C=BA=E4=BB=B7=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mall/shop/sync/service/impl/ProductMappingServiceImpl.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/sync/service/impl/ProductMappingServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/sync/service/impl/ProductMappingServiceImpl.java index e3847523..071750ed 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/sync/service/impl/ProductMappingServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/sync/service/impl/ProductMappingServiceImpl.java @@ -329,9 +329,10 @@ public class ProductMappingServiceImpl extends BaseServiceImpl Date: Wed, 29 Oct 2025 10:16:31 +0800 Subject: [PATCH 26/26] =?UTF-8?q?=E5=95=86=E5=93=81=E4=BB=B7=E6=A0=BC?= =?UTF-8?q?=E5=88=86=E7=B1=BB=E5=90=8C=E6=AD=A5=E6=94=B9=E4=B8=BA=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E4=B8=8D=E4=BF=AE=E6=94=B9=E5=8F=91=E7=89=88=E7=8A=B6?= =?UTF-8?q?=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mall/shop/sync/service/impl/SyncBaseThirdSxAbstract.java | 3 +++ sql/shop/dev/20251028_dml.sql | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/sync/service/impl/SyncBaseThirdSxAbstract.java b/mall-shop/src/main/java/com/suisung/mall/shop/sync/service/impl/SyncBaseThirdSxAbstract.java index 05447fd4..91695f7c 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/sync/service/impl/SyncBaseThirdSxAbstract.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/sync/service/impl/SyncBaseThirdSxAbstract.java @@ -218,6 +218,7 @@ public abstract class SyncBaseThirdSxAbstract{ } else{ // 新增一个(第一级)父类 ShopBaseProductCategory firstCate = new ShopBaseProductCategory(); + firstCate.setCategory_is_enable(1); firstCate.setCategory_name(firstCategoryName); firstCate.setParent_id(0); firstCate.setStore_id(storeId); @@ -274,6 +275,7 @@ public abstract class SyncBaseThirdSxAbstract{ } else { // 新增一个(第二级)父类 ShopBaseProductCategory secondCate = new ShopBaseProductCategory(); + secondCate.setCategory_is_enable(1); secondCate.setCategory_name(secondCategoryName); secondCate.setCategory_parent_id(firstParentId); secondCate.setStore_id(storeId); @@ -310,6 +312,7 @@ public abstract class SyncBaseThirdSxAbstract{ } else { continue; } + list.get(i).setCategory_is_enable(productCategoryTemp.getCategory_is_enable()); } List libraryProductDTOS=libraryProductService.matchLibraryProducts(null,list.get(i).getCategory_name(),new ArrayList<>()); if(CollectionUtil.isNotEmpty(libraryProductDTOS)){ diff --git a/sql/shop/dev/20251028_dml.sql b/sql/shop/dev/20251028_dml.sql index 7821e4bd..f5037989 100644 --- a/sql/shop/dev/20251028_dml.sql +++ b/sql/shop/dev/20251028_dml.sql @@ -1 +1 @@ -ALTER table product_mapping add column premium_rate decimal(18,4) NOT NULL default '100' COMMENT '线上溢价率'; \ No newline at end of file +ALTER table product_mapping add column premium_rate decimal(18,4) NOT NULL default '0' COMMENT '线上溢价率'; \ No newline at end of file