yfh пре 8 часа
родитељ
комит
0d4991e0a3

+ 2 - 3
fs-admin/src/main/java/com/fs/hisStore/controller/FsStoreProductScrmController.java

@@ -181,11 +181,10 @@ public class FsStoreProductScrmController extends BaseController
 
     @ApiOperation(value = "生成属性")
     @PostMapping(value = "/genFormatAttr/{productId}")
-    public ResponseEntity genFormatAttr(@PathVariable Long productId, @RequestBody String jsonStr,Long[] stores){
-        return new ResponseEntity<>(fsStoreProductService.getFormatAttr(productId,jsonStr, stores), HttpStatus.OK);
+    public ResponseEntity genFormatAttr(@PathVariable Long productId, @RequestBody String jsonStr){
+        return new ResponseEntity<>(fsStoreProductService.getFormatAttr(productId,jsonStr), HttpStatus.OK);
     }
 
-
     @GetMapping("/getStoreProductAttrValueList")
     public TableDataInfo getStoreProductAttrValueList(FsProductAttrValueParam param)
     {

+ 258 - 5
fs-service/src/main/java/com/fs/erp/service/impl/WdtErpOrderServiceImpl.java

@@ -905,11 +905,6 @@ public class WdtErpOrderServiceImpl implements IErpOrderService {
         }
     }
 
-    @Override
-    public BaseResponse refundUpdateScrm(ErpRefundUpdateRequest param) {
-        return null;
-    }
-
     @Override
     public ErpOrderResponse finishOrder(ErpOrder order) {
         FsSysConfig sysConfig = configUtil.getSysConfig();
@@ -1093,4 +1088,262 @@ public class WdtErpOrderServiceImpl implements IErpOrderService {
         return JSON.toJSONString(obj, config);
     }
 
+
+
+    @Override
+    public BaseResponse refundUpdateScrm(ErpRefundUpdateRequest param) {
+        FsErpConfig erpconfig = configUtil.getErpConfig();
+        log.info("退款单更新: {}", param);
+        FsStoreOrderScrm fsStoreOrder = fsStoreOrderScrmService.selectFsStoreOrderByOrderCode(param.getTid());
+
+        ErpOrderQueryRequert request = new ErpOrderQueryRequert();
+        request.setCode(fsStoreOrder.getExtendOrderId());
+
+        Set<Integer> status = new HashSet<>();
+        status.add(95);
+        status.add(105);
+        status.add(110);
+
+        ErpOrderQueryResponse response = getOrder(request);
+        ErpOrderQuery erpOrderQuery = response.getOrders().get(0);
+        Integer deliveryState = erpOrderQuery.getDelivery_state();
+        // 如果是未发货
+        if(!status.contains(deliveryState)){
+            log.info("售前退款 参数: {}",param);
+            try {
+                ErpOrder order = fsStoreOrderScrmService.getErpOrder(fsStoreOrder);
+
+                Asserts.check(ObjectUtils.isNotNull(order),"该订单不存在!");
+
+                return getErpOrderRefundScrmResponse(order);
+            } catch (Exception e) {
+                throw new RuntimeException(e);
+            }
+        }
+
+        //--------------售后退款------------
+        log.info("售后退款 参数: {}", param);
+        Map<String,String> map = new HashMap<>();
+
+
+        Asserts.check(ObjectUtils.isNotNull(fsStoreOrder), "该订单不存在! 订单id: {} ", param.getTid());
+
+        List<FsStoreOrderItemVO> fsStoreOrderItemVOS = fsStoreOrderItemScrmService.selectFsStoreOrderItemListByOrderId(fsStoreOrder.getId());
+        List<ErpWdtRefundOrder> refundOrders = new ArrayList<>();
+
+        for (FsStoreOrderItemVO item : fsStoreOrderItemVOS) {
+            refundOrders.add(ErpWdtRefundOrder.builder()
+                    .oid(String.format("%s%s",item.getOrderCode(),item.getItemId()))
+                    .num(BigDecimal.ONE)
+                    .build());
+        }
+        List<ErpWdtApiRefund> erpWdtApiRefunds = Collections.singletonList(ErpWdtApiRefund.builder()
+                .platformId(127)
+                .shopNo(erpconfig.getErpWdShopCode())
+                .tid(param.getTid())
+                .refundNo(param.getTid())
+                .type(RefundTypeEnum.REFUND_BEFORE_SHIPPING.getCode())
+                .status(AfterSaleStatusEnum.SUCCESS.getCode())
+                .refundTime(DateUtils.formatDate(new Date(), "yyyy-MM-dd HH:mm:ss"))
+                .orderList(refundOrders)
+                .build());
+
+
+        map.put("api_refund_list",convertToSnakeCase(erpWdtApiRefunds));
+        try {
+            String execute = client.execute("sales_refund_push.php", map);
+            ParserConfig config = new ParserConfig();
+            config.propertyNamingStrategy = PropertyNamingStrategy.CamelCase;
+            ErpWdtApiResponse erpWdtApiResponse = JSON.parseObject(execute, ErpWdtApiResponse.class,config);
+            if(ObjectUtil.equal(0, erpWdtApiResponse.getCode())){
+                log.info("退款单更新成功: {}", erpWdtApiResponse);
+                return new BaseResponse();
+            } else {
+                log.info("退款单更新失败: {}", erpWdtApiResponse);
+                throw new RuntimeException(String.format("退款单更新失败, 原因: %s", erpWdtApiResponse.getMessage()));
+            }
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+
+    /**
+     * scrm 商城获取erp退款参数
+     * @param order 订单参数
+     * @return
+     */
+    private BaseResponse getErpOrderRefundScrmResponse(ErpOrder order) {
+        //测试环境sid、appkey、密钥请到旺店通开放平台-自助对接-申请测试环境内查看,测试环境url=https://sandbox.wangdian.cn/openapi2/
+        //调用正式环境时请将sid、appkey、appsecret切换为实际参数,参数在旺店通开放平台-自助对接-应用管理内应用状态为已上线的应用中查看,调用正式环境注意切换正式环境url=https://api.wangdian.cn/openapi2/
+
+        FsErpConfig erpconfig = configUtil.getErpConfig();
+        ErpWdtBusinessRequestParams erpWdtBusinessRequestParams = new ErpWdtBusinessRequestParams();
+        erpWdtBusinessRequestParams.setShopNo(erpconfig.getErpWdShopCode());
+        erpWdtBusinessRequestParams.setSwitchMode(0);
+        ErpWdtTrade erpWdtTrade = new ErpWdtTrade();
+        FsStoreOrderScrm fsStoreOrder = fsStoreOrderScrmService.selectFsStoreOrderByOrderCode(order.getPlatform_code());
+        BigDecimal couponPrice = fsStoreOrder.getCouponPrice();
+
+        // 平台状态
+        erpWdtTrade.setTradeStatus(TradeStatus.PAID_WAITING_FOR_SHIPMENT.getValue());
+
+        // 订单id
+        erpWdtTrade.setTid(order.getPlatform_code());
+
+
+        // 如果是货到付款
+        if("2".equals(fsStoreOrder.getPayType())){
+            // 支付状态
+            erpWdtTrade.setPayStatus(PaymentStatus.PARTIALLY_PAID.getValue());
+            // 发货条件
+            erpWdtTrade.setDeliveryTerm(DeliveryTerm.CASH_ON_DELIVERY.getValue());
+            // 货到付款金额 = 物流代收金额-优惠金额
+            erpWdtTrade.setCodAmount(fsStoreOrder.getPayDelivery().subtract(couponPrice));
+
+        } else if("3".equals(fsStoreOrder.getPayType())){
+            // 支付状态
+            erpWdtTrade.setPayStatus(PaymentStatus.UNPAID.getValue());
+            // 发货条件
+            erpWdtTrade.setDeliveryTerm(DeliveryTerm.CASH_ON_DELIVERY.getValue());
+            // 货到付款金额 = 物流代收金额-优惠金额
+            erpWdtTrade.setCodAmount(fsStoreOrder.getPayDelivery().subtract(couponPrice));
+        } else { // 如果是线上付款
+            // 支付状态
+            erpWdtTrade.setPayStatus(PaymentStatus.FULLY_PAID.getValue());
+            // 发货条件
+            erpWdtTrade.setDeliveryTerm(DeliveryTerm.PAYMENT_BEFORE_DELIVERY.getValue());
+        }
+
+        // 下单时间
+        erpWdtTrade.setTradeTime(order.getDeal_datetime());
+        // 支付时间
+        erpWdtTrade.setPayTime(order.getDeal_datetime());
+        // 分销类别
+        erpWdtTrade.setFenxiaoType(FenxiaoType.JINGXIAO.getValue());
+        // 客户网名
+        erpWdtTrade.setBuyerNick(order.getReceiver_name());
+        // 收件人姓名
+        erpWdtTrade.setReceiverName(order.getReceiver_name());
+        // 省份
+        erpWdtTrade.setReceiverProvince(order.getReceiver_province());
+        // 市
+        erpWdtTrade.setReceiverCity(order.getReceiver_city());
+        // 区
+        erpWdtTrade.setReceiverDistrict(order.getReceiver_district());
+        // 详细地址
+        erpWdtTrade.setReceiverAddress(order.getReceiver_address());
+        // 手机
+        erpWdtTrade.setReceiverMobile(order.getReceiver_mobile());
+        // 固定电话
+        erpWdtTrade.setReceiverTelno(order.getReceiver_mobile());
+        // 买家备注
+        erpWdtTrade.setBuyerMessage(order.getBuyer_memo());
+        // 卖家备注
+        erpWdtTrade.setSellerMemo(order.getSeller_memo());
+        erpWdtTrade.setWarehouseNo(order.getWarehouse_code());
+
+        // 运费金额
+        erpWdtTrade.setPostAmount(fsStoreOrder.getFreightPrice());
+        // 已付金额
+        if(ObjectUtils.isNotNull(fsStoreOrder)){
+            erpWdtTrade.setPaid(fsStoreOrder.getPayMoney());
+        }
+
+        List<FsStoreOrderItemVO> fsStoreOrderItemVOS = fsStoreOrderItemScrmService.selectFsStoreOrderItemListByOrderId(fsStoreOrder.getId());
+        List<ErpWdtOrder> erpWdtOrderList = new ArrayList<>();
+        // 商品总价
+        BigDecimal totalPrice = fsStoreOrder.getTotalPrice();
+
+        // 总折扣金额 = 优惠券金额 + 折扣金额
+        BigDecimal totalDiscountPrice = BigDecimal.ZERO;
+        // 折扣金额
+        BigDecimal discountPrice = totalPrice.subtract(fsStoreOrder.getPayPrice());
+        totalDiscountPrice = couponPrice.add(discountPrice);
+
+        // 防止除零错误
+        if (totalPrice.compareTo(BigDecimal.ZERO) == 0) {
+            totalPrice = BigDecimal.ONE;
+        }
+
+        for (FsStoreOrderItemVO fsStoreOrderItem : fsStoreOrderItemVOS) {
+            ErpWdtOrder erpWdtOrder = new ErpWdtOrder();
+            //平台订单货品表主键
+            erpWdtOrder.setOid(String.format("%s%s",fsStoreOrderItem.getOrderCode(),fsStoreOrderItem.getItemId()));
+            erpWdtOrder.setNum(BigDecimal.valueOf(fsStoreOrderItem.getNum()));
+            FsStoreProductScrm fsStoreProduct = fsStoreProductScrmService.selectFsStoreProductById(fsStoreOrderItem.getProductId());
+            Asserts.check(ObjectUtils.isNotNull(fsStoreProduct),"该产品不存在! 产品id: {} ",fsStoreOrderItem.getProductId());
+
+            // 单价
+//            erpWdtOrder.setPrice(fsStoreProduct.getPrice());
+            // 状态
+            erpWdtOrder.setStatus(TradeStatus.SHIPPED.getValue());
+            // 退款状态
+            erpWdtOrder.setRefundStatus(RefundStatus.NO_REFUND.getValue());
+
+            // 平台货品ID
+            erpWdtOrder.setGoodsId(String.valueOf(fsStoreProduct.getProductId()));
+            JSONObject jsonObject = JSON.parseObject(fsStoreOrderItem.getJsonInfo());
+            erpWdtOrder.setSpecId(jsonObject.getString("sku"));
+            erpWdtOrder.setGoodsNo(jsonObject.getString("barCode"));
+            erpWdtOrder.setSpecNo(jsonObject.getString("sku"));
+            //由于商品改价 用item里面的单价
+            erpWdtOrder.setPrice(jsonObject.getBigDecimal("price"));
+            // 货品名称
+            erpWdtOrder.setGoodsName(fsStoreProduct.getProductName());
+            // 调整
+            erpWdtOrder.setAdjustAmount(BigDecimal.ZERO);
+            // 优惠
+            erpWdtOrder.setDiscount(BigDecimal.ZERO);
+            // 分摊优惠
+            // 分摊比例
+            BigDecimal price = fsStoreProduct.getPrice().multiply(BigDecimal.valueOf(fsStoreOrderItem.getNum()));
+            BigDecimal divide = price.divide(totalPrice, RoundingMode.HALF_UP);
+            erpWdtOrder.setShareDiscount(divide.multiply(totalDiscountPrice));
+
+            erpWdtOrderList.add(erpWdtOrder);
+        }
+
+        // 最后一个商品的分摊优惠等于总优惠减去前面分摊优惠之和
+        Asserts.check(CollectionUtils.isNotEmpty(erpWdtOrderList),"订单 {} 商品不能为空!", order.getPlatform_code());
+        long size = erpWdtOrderList.size();
+        if(size > 1) {
+            ErpWdtOrder erpWdtOrder = erpWdtOrderList.get(erpWdtOrderList.size() - 1);
+            erpWdtOrder.setShareDiscount(totalDiscountPrice.subtract(erpWdtOrderList.stream()
+                    .limit(size - 1L)
+                    .map(item -> Optional.ofNullable(item.getShareDiscount()).orElse(BigDecimal.ZERO))
+                    .reduce(BigDecimal.ZERO, BigDecimal::add)));
+        }
+
+        erpWdtTrade.setOrderList(erpWdtOrderList);
+        erpWdtBusinessRequestParams.setTradeList(new ArrayList<>(Arrays.asList(erpWdtTrade)));
+
+        Map<String,String> map = new HashMap<>();
+        map.put("shop_no",erpWdtBusinessRequestParams.getShopNo());
+        map.put("switch_mode", String.valueOf(erpWdtBusinessRequestParams.getSwitchMode()));
+        map.put("trade_list", convertToSnakeCase(erpWdtBusinessRequestParams.getTradeList()));
+
+
+        try {
+            String response = client.execute("trade_push.php", map);
+            ParserConfig config = new ParserConfig();
+            config.propertyNamingStrategy = PropertyNamingStrategy.CamelCase;
+            ErpWdtApiResponse erpWdtApiResponse = JSON.parseObject(response, ErpWdtApiResponse.class,config);
+            if(ObjectUtil.equal(0,erpWdtApiResponse.getCode())){
+                log.info("订单推送成功: {}", response);
+                ErpOrderResponse erpOrderResponse = new ErpOrderResponse();
+                erpOrderResponse.setCode(order.getPlatform_code());
+                erpOrderResponse.setSuccess(true);
+                erpOrderResponse.setRequestRawData(JSON.toJSONString(map));
+                erpOrderResponse.setResponseRawData(response);
+                return erpOrderResponse;
+            } else {
+                throw new RuntimeException(String.format("订单推送失败,原因: %s",erpWdtApiResponse.getMessage()));
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return new ErpOrderResponse();
+    }
+
 }

+ 2 - 18
fs-service/src/main/java/com/fs/hisStore/mapper/FsStoreCartScrmMapper.java

@@ -68,24 +68,8 @@ public interface FsStoreCartScrmMapper
      */
     public int deleteFsStoreCartByIds(Long[] ids);
 
-    @Select({"<script>"+
-            "select c.*,p.product_type,p.product_name,p.image as product_image," +
-            "v.price,v.sku as product_attr_name,v.image as product_attr_image,v.stock " +
-            "from fs_store_cart_scrm c " +
-            "inner join fs_store_product_scrm p on p.product_id=c.product_id " +
-            "inner join fs_store_scrm fs on fs.store_id = p.store_id " +
-            "<if test='config.isAudit == \"1\"'>" +
-            "and fs.is_audit = 1 " +
-            "</if>" +
-            "inner join fs_store_product_attr_value_scrm v on v.id=c.product_attr_value_id " +
-            "where c.is_pay=0 and c.is_del=0 and c.is_buy=0 " +
-            "and p.is_del=0 and p.is_show=1 " +
-            "<if test='config.isAudit == \"1\"'>" +
-            "and p.is_audit = '1' " +
-            "</if>" +
-            "and c.user_id= #{uid} " +
-            "</script>"})
-    List<FsStoreCartVO> selectFsStoreCartListByUid(long uid,@Param("config") MedicalMallConfig config);
+    @Select("select c.*,p.product_type,p.product_name,p.image as product_image,v.price,v.sku as product_attr_name,v.image as product_attr_image,v.stock from fs_store_cart_scrm c inner join fs_store_product_scrm p on p.product_id=c.product_id inner join fs_store_product_attr_value_scrm v on v.id=c.product_attr_value_id where c.is_pay=0 and c.is_del=0 and c.is_buy=0 and p.is_show=1 and p.is_del=0 and c.is_gift = 0 and c.user_id= #{uid}")
+    List<FsStoreCartVO> selectFsStoreCartListByUid(long uid);
     @Delete({"<script>"+
             "delete from fs_store_cart_scrm where id in"+
            "<foreach collection='array' item='id' open='(' separator=',' close=')'>#{id}</foreach>"+

+ 18 - 18
fs-service/src/main/java/com/fs/hisStore/mapper/FsStoreProductScrmMapper.java

@@ -179,9 +179,7 @@ public interface FsStoreProductScrmMapper
     List<FsStoreProductListQueryVO> selectFsStoreProductByCateIdQuery(Long cateId);
     @Select({"<script> " +
             "select p.* from fs_store_product_scrm p  " +
-            //新增审核状态及所属店铺审核状态
-            "inner join fs_store_scrm fs on fs.store_id = p.store_id and fs.is_audit = 1 " +
-            "where p.is_del=0 and p.is_show=1  and p.is_audit = '1'" +
+            "where is_del=0 and is_show=1  " +
             "<if test = 'maps.productName != null and  maps.productName !=\"\"    '> " +
             "and (p.product_name like CONCAT('%',#{maps.productName},'%')  or p.keyword like concat('%',#{maps.productName},'%') ) " +
             "</if>" +
@@ -194,11 +192,8 @@ public interface FsStoreProductScrmMapper
             "<if test = 'maps.cateId != null    '> " +
             "and p.cate_id =#{maps.cateId}  " +
             "</if>" +
-            "<if test = 'maps.storeId != null'> " +
-            "and p.store_id = #{maps.storeId}" +
-            "</if>" +
             "<if test = 'maps.defaultOrder != null and maps.defaultOrder==\"desc\"  '> " +
-            "order by p.sort desc,product_id desc" +
+            "order by p.sort desc " +
             "</if>" +
             "<if test = 'maps.priceOrder != null and maps.priceOrder==\"desc\"   '> " +
             "order by p.price desc " +
@@ -242,7 +237,7 @@ public interface FsStoreProductScrmMapper
     @Update("update fs_store_product_scrm set stock=stock+#{num}, sales=sales-#{num}" +
             " where product_id=#{productId}")
     int incStockDecSales( @Param("num")Long num, @Param("productId")Long productId);
-    @Select("select p.* from fs_store_product_scrm p " +
+    @Select({"<script> " +"select p.* from fs_store_product_scrm p " +
             //新增审核状态及所属店铺审核状态
             "<if test='config.isAudit == \"1\" '>" +
             "inner join fs_store_scrm fs on fs.store_id = p.store_id and fs.is_audit = 1 " +
@@ -251,9 +246,10 @@ public interface FsStoreProductScrmMapper
             "<if test='config.isAudit == \"1\" '>" +
             "and p.is_audit = '1'  " +
             "</if>" +
-            "and  p.is_new=1 and p.is_display=1 order by p.sort desc limit #{count}")
-    List<FsStoreProductListQueryVO> selectFsStoreProductNewQuery(int count,@Param("config") MedicalMallConfig  config);
-    @Select("select p.* from fs_store_product_scrm p " +
+            "and  p.is_new=1 and p.is_display=1 order by p.sort desc limit #{count}"+
+            "</script>"})
+    List<FsStoreProductListQueryVO> selectFsStoreProductNewQuery(@Param("count") int count,@Param("config") MedicalMallConfig  config);
+    @Select({"<script> " +"select p.* from fs_store_product_scrm p " +
             //新增审核状态及所属店铺审核状态
             "<if test='config.isAudit == \"1\" '>" +
             "inner join fs_store_scrm fs on fs.store_id = p.store_id and fs.is_audit = 1 " +
@@ -262,9 +258,10 @@ public interface FsStoreProductScrmMapper
             "<if test='config.isAudit == \"1\" '>" +
             "and p.is_audit = '1'" +
             "</if>" +
-            "and  p.is_hot=1 and p.is_display=1 order by p.sort desc limit #{count}")
-    List<FsStoreProductListQueryVO> selectFsStoreProductHotQuery(int count,@Param("config") MedicalMallConfig  config);
-    @Select("select p.* from fs_store_product_scrm p " +
+            "and  p.is_hot=1 and p.is_display=1 order by p.sort desc limit #{count}"+
+            "</script>"})
+    List<FsStoreProductListQueryVO> selectFsStoreProductHotQuery(@Param("count") int count,@Param("config") MedicalMallConfig  config);
+    @Select({"<script> " +"select p.* from fs_store_product_scrm p " +
             //新增审核状态及所属店铺审核状态
             "<if test='config.isAudit == \"1\" '>" +
             "inner join fs_store_scrm fs on fs.store_id = p.store_id and fs.is_audit = 1 " +
@@ -273,10 +270,12 @@ public interface FsStoreProductScrmMapper
             "<if test='config.isAudit == \"1\" '>" +
             "and p.is_audit = '1'" +
             "</if>" +
-            "and  p.is_good=1 and p.is_display=1 order by p.sort desc limit #{count}")
-    List<FsStoreProductListQueryVO> selectFsStoreProductGoodQuery(int count,@Param("config") MedicalMallConfig  config);
+            "and  p.is_good=1 and p.is_display=1 order by p.sort desc limit #{count}"+
+            "</script>"})
+    List<FsStoreProductListQueryVO> selectFsStoreProductGoodQuery(@Param("count") int count,@Param("config") MedicalMallConfig  config);
     List<FsStoreProductListQueryVO> selectFsStoreProductTuiListQuery(@Param("config") MedicalMallConfig  config);
-    @Select("select p.* from fs_store_product_scrm p " +
+    @Select({"<script> " +
+            "select p.* from fs_store_product_scrm p " +
             //新增审核状态及所属店铺审核状态
             "<if test='config.isAudit == \"1\" '>" +
             "inner join fs_store_scrm fs on fs.store_id = p.store_id and fs.is_audit = 1 " +
@@ -285,7 +284,8 @@ public interface FsStoreProductScrmMapper
             "<if test='config.isAudit == \"1\" '>" +
             "and p.is_audit = '1'" +
             "</if>" +
-            "and  p.is_good=1 and p.is_display=1 order by p.sort desc")
+            "and  p.is_good=1 and p.is_display=1 order by p.sort desc"+
+            "</script>"})
     List<FsStoreProductListQueryVO> selectFsStoreProductGoodListQuery(@Param("config") MedicalMallConfig  config);
     @Select({"<script> " +
             "select count(1) from fs_store_product_scrm  " +

+ 4 - 2
fs-service/src/main/java/com/fs/hisStore/service/IFsStoreProductScrmService.java

@@ -16,6 +16,7 @@ import com.fs.hisStore.domain.FsStoreProductScrm;
 import com.fs.hisStore.param.FsStoreProductAddEditParam;
 import com.fs.hisStore.param.FsStoreProductQueryParam;
 import com.fs.statis.dto.ProductAuditDTO;
+import com.fs.store.vo.FsStoreProductScrmQueryVO;
 
 /**
  * 商品Service接口
@@ -77,7 +78,7 @@ public interface IFsStoreProductScrmService
 
     List<FsStoreProductListVO> selectFsStoreProductBarCodeListVO(FsStoreProductScrm fsStoreProduct);
 
-    Map<String,Object> getFormatAttr(Long productId, String jsonStr,Long[] stores);
+    Map<String,Object> getFormatAttr(Long productId, String jsonStr);
 
 
     R addOrEdit(FsStoreProductAddEditParam fsStoreProduct);
@@ -87,7 +88,8 @@ public interface IFsStoreProductScrmService
 
     List<FsStoreProductListQueryVO> selectFsStoreProductListQuery(FsStoreProductQueryParam param);
 
-    FsStoreProductQueryVO selectFsStoreProductByIdQuery(Long productId,String storeId);
+
+    FsStoreProductQueryVO selectFsStoreProductByIdQuery(Long productId);
 
     void decProductStock(Long productId, Long productAttrValueId, Integer cartNum);
 

+ 1 - 5
fs-service/src/main/java/com/fs/hisStore/service/impl/FsStoreCartScrmServiceImpl.java

@@ -11,7 +11,6 @@ import com.fs.erp.dto.ErpGoodsStockQueryResponse;
 import com.fs.erp.service.IErpGoodsService;
 import com.fs.his.utils.ConfigUtil;
 import com.fs.hisStore.config.FsErpConfig;
-import com.fs.hisStore.config.MedicalMallConfig;
 import com.fs.hisStore.domain.FsStoreCartScrm;
 import com.fs.hisStore.domain.FsStoreProductAttrValueScrm;
 import com.fs.hisStore.domain.FsStoreProductGroupScrm;
@@ -66,9 +65,6 @@ public class FsStoreCartScrmServiceImpl implements IFsStoreCartScrmService
     @Autowired
     private ConfigUtil configUtil;
 
-    @Autowired
-    private MedicalMallConfig medicalMallConfig;
-
 
 
     /**
@@ -210,7 +206,7 @@ public class FsStoreCartScrmServiceImpl implements IFsStoreCartScrmService
 
     @Override
     public List<FsStoreCartVO> selectFsStoreCartListByUid(long uid) {
-        return fsStoreCartMapper.selectFsStoreCartListByUid(uid, medicalMallConfig);
+        return fsStoreCartMapper.selectFsStoreCartListByUid(uid);
     }
 
     @Override

+ 42 - 42
fs-service/src/main/java/com/fs/hisStore/service/impl/FsStoreOrderScrmServiceImpl.java

@@ -1753,23 +1753,23 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
 
     @Override
     public R createOmsOrder(Long orderId) throws ParseException {
-        FsStoreOrderScrm order = fsStoreOrderMapper.selectFsStoreOrderById(orderId);
+        FsStoreOrderScrm order=fsStoreOrderMapper.selectFsStoreOrderById(orderId);
         FsSysConfig erpConfig = configUtil.generateStructConfigByKey(SysConfigEnum.HIS_CONFIG.getKey(), FsSysConfig.class);
         List<Long> noErpCompany = erpConfig.getNoErpCompany();
         if (noErpCompany != null && noErpCompany.contains(order.getCompanyId())) {
             log.info("订单:{},相关公司不推送erp", order.getOrderCode());
-            return R.error("订单:" + order.getOrderCode() + ",相关公司不推送erp");
+            return R.error("订单:" + order.getOrderCode() +",相关公司不推送erp");
         }
         IErpOrderService erpOrderService = getErpService();
-        if (erpOrderService == null) {
+        if(erpOrderService == null){
             log.info("未启用erp");
             return R.error("暂未启用erp");
         }
-        if (!StringUtils.isEmpty(order.getExtendOrderId()) && order.getStatus() != 1) {
-            return R.error("订单:" + order.getOrderCode() + ",已推送erp/订单状态不正确");
+        if(!StringUtils.isEmpty(order.getExtendOrderId())&&order.getStatus()!=1){
+            return R.error("订单:" + order.getOrderCode() +",已推送erp/订单状态不正确");
         }
         ErpOrder erpOrder = getErpOrder(order);
-        if (erpOrderService == jSTOrderService) {
+        if(erpOrderService == jSTOrderService){
             erpOrder.setShop_code(erpConfig.getErpJstShopCode());
         }
         ErpOrderResponse response = erpOrderService.addOrderScrm(erpOrder);
@@ -2033,23 +2033,22 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
     @Transactional
     public R refundOrderMoney(Long orderId) {
         IErpOrderService erpOrderService = getErpService();
-        FsErpConfig erpConfig = configUtil.generateStructConfigByKey("his.config", FsErpConfig.class);
         FsStoreOrderScrm order = fsStoreOrderMapper.selectFsStoreOrderById(orderId);
-        if (order.getStatus() == -2) {
+        if(order.getStatus()==-2){
             return R.error("已退款");
         }
-        if (order.getStatus() != 1 && order.getStatus() != 2) {
+        if(order.getStatus()!=1&&order.getStatus()!=2){
             return R.error("非法操作");
         }
-        if (erpConfig.getErpOpen() != null && erpConfig.getErpOpen() == 1 && order.getExtendOrderId() == null) {
+        if (order.getExtendOrderId()==null){
             return R.error("暂未推送至erp,请稍后再试!");
         }
-        if (StringUtils.isNotEmpty(order.getExtendOrderId())) {
-            ErpRefundUpdateRequest request = new ErpRefundUpdateRequest();
+        if(StringUtils.isNotEmpty(order.getExtendOrderId())){
+            ErpRefundUpdateRequest request=new ErpRefundUpdateRequest();
             request.setTid(order.getOrderCode());
             request.setOid(order.getOrderCode());
             request.setRefund_state(1);
-            //BaseResponse response=erpOrderService.refundUpdate(request);
+            BaseResponse response=erpOrderService.refundUpdateScrm(request);
 //            if(response.getSuccess()){
 //            }
 //            else{
@@ -2064,75 +2063,75 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
 
         //退库存
         //获取订单下的商品
-        List<FsStoreOrderItemVO> orderItemVOS = fsStoreOrderItemMapper.selectFsStoreOrderItemListByOrderId(order.getId());
-        for (FsStoreOrderItemVO vo : orderItemVOS) {
-            if (vo.getIsAfterSales() == 1) {
+        List<FsStoreOrderItemVO> orderItemVOS=fsStoreOrderItemMapper.selectFsStoreOrderItemListByOrderId(order.getId());
+        for(FsStoreOrderItemVO vo:orderItemVOS){
+            if(vo.getIsAfterSales()==1){
                 productService.incProductStock(vo.getNum(), vo.getProductId(), vo.getProductAttrValueId());
             }
 
         }
-        if (order.getPayType().equals(3)) {
+        if(order.getPayType().equals(3)){
             //货到付款
-        } else {
+        }
+        else{
             //将钱退还给用户
-            List<FsStorePaymentScrm> payments = paymentService.selectFsStorePaymentByOrderId(order.getId());
-            if (payments != null) {
-                String json = configService.selectConfigByKey("store.pay");
-                FsPayConfigScrm fsPayConfig = JSON.parseObject(json, FsPayConfigScrm.class);
-                for (FsStorePaymentScrm payment : payments) {
-                    if (payment.getPayMode() == null || payment.getPayMode().equals("wx")) {
+            List<FsStorePaymentScrm> payments=paymentService.selectFsStorePaymentByOrderId(order.getId());
+            if(payments!=null){
+                for(FsStorePaymentScrm payment:payments){
+                    if (payment.getPayMode()==null||payment.getPayMode().equals("wx")){
                         WxPayConfig payConfig = new WxPayConfig();
+                        String json = configService.selectConfigByKey("store.pay");
+                        FsPayConfig fsPayConfig = JSON.parseObject(json, FsPayConfig.class);
                         payConfig.setAppId(fsPayConfig.getAppId());
                         payConfig.setMchId(fsPayConfig.getWxMchId());
                         payConfig.setMchKey(fsPayConfig.getWxMchKey());
-                        payConfig.setKeyPath(fsPayConfig.getKeyPath());
+                        payConfig.setKeyPath(wxPayProperties.getKeyPath());
                         payConfig.setSubAppId(org.apache.commons.lang3.StringUtils.trimToNull(null));
                         payConfig.setSubMchId(org.apache.commons.lang3.StringUtils.trimToNull(null));
                         wxPayService.setConfig(payConfig);
                         WxPayRefundRequest refundRequest = new WxPayRefundRequest();
-                        refundRequest.setOutTradeNo("store-" + payment.getPayCode());
-                        refundRequest.setOutRefundNo("store-" + payment.getPayCode());
+                        refundRequest.setOutTradeNo("store-"+payment.getPayCode());
+                        refundRequest.setOutRefundNo("store-"+payment.getPayCode());
                         refundRequest.setTotalFee(WxPayUnifiedOrderRequest.yuanToFen(payment.getPayMoney().toString()));
                         refundRequest.setRefundFee(WxPayUnifiedOrderRequest.yuanToFen(payment.getPayMoney().toString()));
                         try {
                             WxPayRefundResult refundResult = wxPayService.refund(refundRequest);
                             WxPayRefundQueryResult refundQueryResult = wxPayService.refundQuery("", refundResult.getOutTradeNo(), refundResult.getOutRefundNo(), refundResult.getRefundId());
-                            if (refundQueryResult != null && refundQueryResult.getResultCode().equals("SUCCESS")) {
-                                FsStorePaymentScrm paymentMap = new FsStorePaymentScrm();
+                            if(refundQueryResult!=null&&refundQueryResult.getResultCode().equals("SUCCESS")){
+                                FsStorePaymentScrm paymentMap=new FsStorePaymentScrm();
                                 paymentMap.setPaymentId(payment.getPaymentId());
                                 paymentMap.setStatus(-1);
                                 paymentMap.setRefundTime(DateUtils.getNowDate());
                                 paymentMap.setRefundMoney(payment.getPayMoney());
                                 paymentService.updateFsStorePayment(paymentMap);
-                            } else {
-                                return R.error("退款请求失败" + refundQueryResult.getErrCodeDes());
+                            }
+                            else {
+                                return R.error("退款请求失败"+refundQueryResult.getErrCodeDes());
                             }
                         } catch (WxPayException e) {
-                            return R.error("退款请求失败" + e.getErrCodeDes());
+                            return R.error("退款请求失败"+e.getErrCodeDes());
                         }
-                    } else if (payment.getPayMode() != null && payment.getPayMode().equals("hf")) {
+                    }else if (payment.getPayMode()!=null&&payment.getPayMode().equals("hf")){
                         V2TradePaymentScanpayRefundRequest request = new V2TradePaymentScanpayRefundRequest();
-                        request.setOrgHfSeqId(payment.getTradeNo());
-                        request.setHuifuId(fsPayConfig.getHuifuId());
                         request.setOrdAmt(payment.getPayMoney().toString());
                         request.setOrgReqDate(new SimpleDateFormat("yyyyMMdd").format(payment.getCreateTime()));
-                        request.setReqSeqId("refund-" + payment.getPayCode());
+                        request.setReqSeqId("refund-"+payment.getPayCode());
                         Map<String, Object> extendInfoMap = new HashMap<>();
                         extendInfoMap.put("org_party_order_id", payment.getBankSerialNo());
                         request.setExtendInfo(extendInfoMap);
                         HuiFuRefundResult refund = huiFuService.refund(request);
-                        logger.info("退款:" + refund);
-                        if ((refund.getResp_code().equals("00000000") || refund.getResp_code().equals("00000100")) && (refund.getTrans_stat().equals("S") || refund.getTrans_stat().equals("P"))) {
+                        logger.info("退款:"+refund);
+                        if((refund.getResp_code().equals("00000000")||refund.getResp_code().equals("00000100"))&&(refund.getTrans_stat().equals("S")||refund.getTrans_stat().equals("P"))){
                             payment.setRefundMoney(payment.getPayMoney());
                             payment.setStatus(-1);
                             payment.setRefundTime(new Date());
                             paymentService.updateFsStorePayment(payment);
-                        } else {
+                        }else {
                             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                             return R.error(refund.getResp_desc());
                         }
 
-                    } else {
+                    }else {
                         TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                         return R.error("支付类型异常");
                     }
@@ -2143,7 +2142,7 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
         }
         orderStatusService.create(order.getId(), OrderLogEnum.REFUND_ORDER_SUCCESS.getValue(),
                 OrderLogEnum.REFUND_ORDER_SUCCESS.getDesc());
-        if (order.getTuiUserId() != null && order.getTuiUserId() > 0) {
+        if(order.getTuiUserId()!=null&&order.getTuiUserId()>0){
             userService.subTuiMoney(order);
         }
         return R.ok();
@@ -2301,6 +2300,7 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
             if (giftCarts != null && !giftCarts.isEmpty()){
                 //计算总价
                 for(FsStoreCartQueryVO vo:giftCarts){
+                    logger.info("错误信息:userId = {},FsStoreCartQueryVO ={}",userId,vo);
                     money=money.add(vo.getPrice().multiply(new BigDecimal(vo.getCartNum().toString())));
                 }
 //                redisCache.setCacheObject("orderGiftCarts:"+createOrderKey, giftCarts, 24, TimeUnit.HOURS);
@@ -2360,7 +2360,7 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
 //        redisCache.deleteObject("createOrderKey:"+createOrderKey);
 //        redisCache.deleteObject("orderCarts:" + createOrderKey);
         String[] idArr = key.split("-");
-        return R.ok().put("cartIds", ids).put("companyId", idArr[0]).put("companyUserId", idArr[1]);
+        return R.ok().put("cartIds",ids).put("companyId",idArr[0]).put("companyUserId",idArr[1]).put("giftCartIds",giftIds);
 
     }
 

+ 38 - 68
fs-service/src/main/java/com/fs/hisStore/service/impl/FsStoreProductScrmServiceImpl.java

@@ -37,6 +37,7 @@ import com.fs.hisStore.param.FsStoreProductQueryParam;
 import com.fs.hisStore.service.IFsStoreProductAttrValueScrmService;
 import com.fs.hisStore.vo.*;
 import com.fs.statis.dto.ProductAuditDTO;
+import com.fs.store.vo.FsStoreProductScrmQueryVO;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -186,16 +187,11 @@ public class FsStoreProductScrmServiceImpl implements IFsStoreProductScrmService
                 String[] split = item.getCompanyIds().split(",");
 
                 for (String companyId : split) {
-                    if(StringUtils.isNotBlank(companyId)) {
-                        String companyName = companyCacheService.selectCompanyNameById(Long.valueOf(companyId));
-                        companyNameList.add(companyName);
-                    }
+                    String companyName = companyCacheService.selectCompanyNameById(Long.valueOf(companyId));
+                    companyNameList.add(companyName);
                 }
                 item.setCompanyName(String.join(",",companyNameList));
             }
-            //店铺名称
-            if(StringUtils.isNotEmpty(item.getStoreId()))
-                item.setStoreName(fsStoreScrmService.selectFsStoreByStoreId(Long.parseLong(item.getStoreId())).getStoreName());
         }
         return fsStoreProductListVOS;
     }
@@ -220,7 +216,7 @@ public class FsStoreProductScrmServiceImpl implements IFsStoreProductScrmService
     }
 
     @Override
-    public Map<String, Object> getFormatAttr(Long productId, String jsonStr,Long[] stores) {
+    public Map<String, Object> getFormatAttr(Long productId, String jsonStr) {
         JSONObject jsonObject = JSON.parseObject(jsonStr);
         Map<String, Object> resultMap = new LinkedHashMap<>(3);
         if (jsonObject == null || jsonObject.get("attrs") == null || jsonObject.getJSONArray("attrs").isEmpty()) {
@@ -322,51 +318,17 @@ public class FsStoreProductScrmServiceImpl implements IFsStoreProductScrmService
     @Transactional
     public R addOrEdit(FsStoreProductAddEditParam param) {
         ProductAttrCountDto countDto=computedProductCount(param.getValues());
-        FsStoreProductScrm product=new FsStoreProductScrm();
-        BeanUtils.copyProperties(param,product);
-        product.setPrice(countDto.getMinPrice());
-        product.setOtPrice(countDto.getMinOtPrice());
-        product.setCost(countDto.getMinCost());
-        product.setIntegral(Long.parseLong(countDto.getMinIntegral().toString()));
-        product.setStock(Long.parseLong(countDto.getStock().toString()));
-        product.setCompanyIds(param.getCompanyIds());
-        product.setVideo(param.getVideo());
-        product.setStoreId(param.getStoreId());
-        product.setIsDrug(param.getIsDrug().toString());
-        //校验店铺资质信息
-        //获取店铺
-        FsStoreScrm store = fsStoreScrmService.selectFsStoreByStoreId(product.getStoreId());
-        if(store == null || 1 != store.getStatus()){
-            return R.error("店铺不存在或未启用");
-        }else{
-            //验证资质
-            switch (product.getProductType()){
-                case 1://非处方
-                    break;
-                case 2://处方
-                    if("".equals(store.getDrugLicense()) ||  LocalDate.now().isBefore(store.getDrugLicenseExpiryEnd())){
-                        return R.error("店铺药品资质为空或已过期,请完善后再添加");
-                    }
-                    break;
-                case 3://食品
-                    if("".equals(store.getFoodLicense()) ||  LocalDate.now().isBefore(store.getFoodLicenseExpiryEnd())){
-                        return R.error("店铺食品资质为空或已过期,请完善后再添加");
-                    }
-                    break;
-                case 4://器械
-                    if("".equals(store.getMedicalDevice3()) ||  LocalDate.now().isBefore(store.getMedicalDevice3ExpiryEnd())){
-                        return R.error("店铺器械资质为空或已过期,请完善后再添加");
-                    }
-                    break;
-                default:
-                    return R.error("商品类型错误");
-            }
-        }
-        if(param.getProductId() != null && param.getProductId() > 0){
-            //对已上架的商品进行修改需要重新审核
-            if(1 == product.getIsShow() && "1".equals(product.getIsAudit())){
-                product.setIsAudit("0");
-            }
+
+        if(param.getProductId()>0){
+            FsStoreProductScrm product=new FsStoreProductScrm();
+            BeanUtils.copyProperties(param,product);
+            product.setPrice(countDto.getMinPrice());
+            product.setOtPrice(countDto.getMinOtPrice());
+            product.setCost(countDto.getMinCost());
+            product.setIntegral(Long.parseLong(countDto.getMinIntegral().toString()));
+            product.setStock(Long.parseLong(countDto.getStock().toString()));
+            product.setCompanyIds(param.getCompanyIds());
+            product.setVideo(param.getVideo());
             fsStoreProductMapper.updateFsStoreProduct(product);
             if (param.getSpecType().equals(0)) {
                 ProductArrtDTO fromatDetailDto = ProductArrtDTO.builder()
@@ -382,20 +344,28 @@ public class FsStoreProductScrmServiceImpl implements IFsStoreProductScrmService
             }
         }
         else{
+            FsStoreProductScrm product=new FsStoreProductScrm();
+            BeanUtils.copyProperties(param,product);
+            product.setPrice(countDto.getMinPrice());
+            product.setOtPrice(countDto.getMinOtPrice());
+            product.setCost(countDto.getMinCost());
+            product.setIntegral(Long.parseLong(countDto.getMinIntegral().toString()));
+            product.setStock(Long.parseLong(countDto.getStock().toString()));
+            product.setCompanyIds(param.getCompanyIds());
+            product.setVideo(param.getVideo());
             fsStoreProductMapper.insertFsStoreProduct(product);
-        }
-        storeAuditLogUtil.addOperLog(product.getProductId());
-        if (param.getSpecType().equals(0)) {
-            ProductArrtDTO fromatDetailDto = ProductArrtDTO.builder()
-                    .value("规格")
-                    .detail(ListUtil.toList("默认"))
-                    .build();
-            List<ProductArrtDTO> items=new ArrayList<>();
-            items.add(fromatDetailDto);
-            param.getValues().get(0).setSku("默认");
-            addProductAttr(product.getProductId(),items,param.getValues());
-        } else {
-            addProductAttr(product.getProductId(),param.getItems(),param.getValues());
+            if (param.getSpecType().equals(0)) {
+                ProductArrtDTO fromatDetailDto = ProductArrtDTO.builder()
+                        .value("规格")
+                        .detail(ListUtil.toList("默认"))
+                        .build();
+                List<ProductArrtDTO> items=new ArrayList<>();
+                items.add(fromatDetailDto);
+                param.getValues().get(0).setSku("默认");
+                addProductAttr(product.getProductId(),items,param.getValues());
+            } else {
+                addProductAttr(product.getProductId(),param.getItems(),param.getValues());
+            }
         }
         return R.ok();
     }
@@ -676,8 +646,8 @@ public class FsStoreProductScrmServiceImpl implements IFsStoreProductScrmService
     }
 
     @Override
-    public FsStoreProductQueryVO selectFsStoreProductByIdQuery(Long productId,String storeId) {
-        return fsStoreProductMapper.selectFsStoreProductByIdQuery(productId,storeId,medicalMallConfig);
+    public FsStoreProductQueryVO selectFsStoreProductByIdQuery(Long productId) {
+        return fsStoreProductMapper.selectFsStoreProductByIdQueryOld(productId);
     }
 
     @Override

+ 2 - 3
fs-service/src/main/resources/application-druid-zkzh-test.yml

@@ -45,7 +45,7 @@ spring:
                 # 最小连接池数量
                 minIdle: 10
                 # 最大连接池数量
-                maxActive: 20
+                maxActive: 2000
                 # 配置获取连接等待超时的时间
                 maxWait: 60000
                 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
@@ -137,10 +137,9 @@ rocketmq:
         group: test-group
         access-key: ak1243b25nj17d4b2dc1a03 # 替换为实际的 accessKey
         secret-key: sk08a7ea1f9f4b0237 # 替换为实际的 secretKey
-cloud_host:
-    company_name: 中康智慧
 openIM:
     secret: openIM123
     userID: imAdmin
+
 #是否为新商户,新商户不走mpOpenId
 isNewWxMerchant: false

+ 2 - 2
fs-store/src/main/java/com/fs/hisStore/controller/store/FsStoreProductScrmController.java

@@ -154,7 +154,7 @@ public TableDataInfo list(FsStoreProductScrm fsStoreProduct)
     @PostMapping(value = "/genFormatAttr/{productId}")
     public ResponseEntity genFormatAttr(@PathVariable Long productId, @RequestBody String jsonStr,Long[] stores){
 
-        return new ResponseEntity<>(fsStoreProductService.getFormatAttr(productId,jsonStr, stores), HttpStatus.OK);
+        return new ResponseEntity<>(fsStoreProductService.getFormatAttr(productId,jsonStr), HttpStatus.OK);
     }
     /**
      * 获取商品详细信息
@@ -185,7 +185,7 @@ public TableDataInfo list(FsStoreProductScrm fsStoreProduct)
     @PostMapping(value = "/addOrEdit")
     public R addOrEdit(@RequestBody FsStoreProductAddEditParam fsStoreProduct)
     {
-        fsStoreProduct.setStoreId(UserUtil.getLoginUserStoreID());
+//        fsStoreProduct.setStoreId(UserUtil.getLoginUserStoreID());
 
         return fsStoreProductService.addOrEdit(fsStoreProduct);
     }

+ 3 - 1
fs-user-app/src/main/java/com/fs/app/controller/AppBaseController.java

@@ -16,12 +16,13 @@ import com.fs.common.utils.sql.SqlUtil;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import io.jsonwebtoken.Claims;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.ibatis.jdbc.Null;
 import org.springframework.beans.factory.annotation.Autowired;
 
 import java.util.List;
 
-
+@Slf4j
 public class AppBaseController {
 	@Autowired
 	public JwtUtils jwtUtils;
@@ -31,6 +32,7 @@ public class AppBaseController {
 	public String getUserId()
 	{
 		String headValue =  ServletUtils.getRequest().getHeader("APPToken");
+		log.error("token = {}",headValue);
 		if (StringUtils.isNotEmpty(headValue)){
 			Claims claims=jwtUtils.getClaimByToken(headValue);
 			if(claims!=null){

+ 147 - 147
fs-user-app/src/main/java/com/fs/app/controller/store/FsUserComplaintController.java

@@ -1,147 +1,147 @@
-package com.fs.app.controller.store;
-
-import com.fs.app.annotation.Login;
-import com.fs.app.controller.AppBaseController;
-import com.fs.common.annotation.Log;
-import com.fs.common.core.controller.BaseController;
-import com.fs.common.core.domain.AjaxResult;
-import com.fs.common.core.page.TableDataInfo;
-import com.fs.common.enums.BusinessType;
-import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.user.domain.FsUserComplaint;
-import com.fs.user.domain.FsUserComplaintMsg;
-import com.fs.user.service.IFsUserComplaintMsgService;
-import com.fs.user.service.IFsUserComplaintService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-/**
- * 用户投诉Controller
- *
- * @author fs
- * @date 2025-08-27
- */
-@RestController
-@RequestMapping("/store/app/user/complaint")
-public class FsUserComplaintController extends AppBaseController
-{
-    @Autowired
-    private IFsUserComplaintService fsUserComplaintService;
-    @Autowired
-    private IFsUserComplaintMsgService fsUserComplaintMsgService;
-
-    /**
-     * 查询用户投诉列表
-     */
-    @GetMapping("/list")
-    public TableDataInfo list(FsUserComplaint fsUserComplaint)
-    {
-        startPage();
-        List<FsUserComplaint> list = fsUserComplaintService.selectFsUserComplaintList(fsUserComplaint);
-        return getDataTable(list);
-    }
-
-    /**
-     * 导出用户投诉列表
-     */
-    @Log(title = "用户投诉", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(FsUserComplaint fsUserComplaint)
-    {
-        List<FsUserComplaint> list = fsUserComplaintService.selectFsUserComplaintList(fsUserComplaint);
-        ExcelUtil<FsUserComplaint> util = new ExcelUtil<FsUserComplaint>(FsUserComplaint.class);
-        return util.exportExcel(list, "用户投诉数据");
-    }
-
-    /**
-     * 获取用户投诉详细信息
-     */
-    @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
-        return AjaxResult.success(fsUserComplaintService.selectFsUserComplaintVoById(id));
-    }
-
-    /**
-     * 新增用户投诉
-     */
-    @Log(title = "用户投诉", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody FsUserComplaint fsUserComplaint)
-    {
-        if (fsUserComplaint.getFsUserId() == null || fsUserComplaint.getFsUserId() == 0) {
-            String userId = getUserId();
-            fsUserComplaint.setFsUserId(Long.parseLong(userId));
-        }
-        return toAjax(fsUserComplaintService.insertFsUserComplaint(fsUserComplaint));
-    }
-
-    /**
-     * 修改用户投诉
-     */
-    @Log(title = "用户投诉", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody FsUserComplaint fsUserComplaint)
-    {
-        return toAjax(fsUserComplaintService.updateFsUserComplaint(fsUserComplaint));
-    }
-
-    /**
-     * 删除用户投诉
-     */
-    @Log(title = "用户投诉", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
-        return toAjax(fsUserComplaintService.deleteFsUserComplaintByIds(ids));
-    }
-
-    /**
-     * 查询投诉消息记录列表
-     */
-    @GetMapping("/msg/list")
-    public TableDataInfo msgList(FsUserComplaintMsg fsUserComplaintMsg)
-    {
-        startPage();
-        List<FsUserComplaintMsg> list = fsUserComplaintMsgService.selectFsUserComplaintMsgList(fsUserComplaintMsg);
-        return getDataTable(list);
-    }
-
-    /**
-     * 获取投诉消息记录详细信息
-     */
-    @GetMapping(value = "/msg/{id}")
-    public AjaxResult getMsgInfo(@PathVariable("id") Long id)
-    {
-        return AjaxResult.success(fsUserComplaintMsgService.selectFsUserComplaintMsgById(id));
-    }
-
-    /**
-     * 新增投诉消息记录
-     */
-    @PostMapping("/msgAdd")
-    @Login
-    public AjaxResult msgAdd(@RequestBody FsUserComplaintMsg fsUserComplaintMsg)
-    {
-        if (fsUserComplaintMsg.getComplaintId() == null){
-            return AjaxResult.error("未查询到相关投诉!");
-        }
-        String userId = getUserId();
-        fsUserComplaintMsg.setUserId(Long.valueOf(userId));
-        fsUserComplaintMsg.setSendType(1); //用户
-        return toAjax(fsUserComplaintMsgService.insertFsUserComplaintMsg(fsUserComplaintMsg));
-    }
-
-    /**
-     * 修改投诉消息记录
-     */
-    @PutMapping("/editMsg")
-    public AjaxResult editMsg(@RequestBody FsUserComplaintMsg fsUserComplaintMsg)
-    {
-        return toAjax(fsUserComplaintMsgService.updateFsUserComplaintMsg(fsUserComplaintMsg));
-    }
-
-}
+//package com.fs.app.controller.store;
+//
+//import com.fs.app.annotation.Login;
+//import com.fs.app.controller.AppBaseController;
+//import com.fs.common.annotation.Log;
+//import com.fs.common.core.controller.BaseController;
+//import com.fs.common.core.domain.AjaxResult;
+//import com.fs.common.core.page.TableDataInfo;
+//import com.fs.common.enums.BusinessType;
+//import com.fs.common.utils.poi.ExcelUtil;
+//import com.fs.user.domain.FsUserComplaint;
+//import com.fs.user.domain.FsUserComplaintMsg;
+//import com.fs.user.service.IFsUserComplaintMsgService;
+//import com.fs.user.service.IFsUserComplaintService;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.security.access.prepost.PreAuthorize;
+//import org.springframework.web.bind.annotation.*;
+//
+//import java.util.List;
+//
+///**
+// * 用户投诉Controller
+// *
+// * @author fs
+// * @date 2025-08-27
+// */
+//@RestController
+//@RequestMapping("/store/app/user/complaint")
+//public class FsUserComplaintController extends AppBaseController
+//{
+//    @Autowired
+//    private IFsUserComplaintService fsUserComplaintService;
+//    @Autowired
+//    private IFsUserComplaintMsgService fsUserComplaintMsgService;
+//
+//    /**
+//     * 查询用户投诉列表
+//     */
+//    @GetMapping("/list")
+//    public TableDataInfo list(FsUserComplaint fsUserComplaint)
+//    {
+//        startPage();
+//        List<FsUserComplaint> list = fsUserComplaintService.selectFsUserComplaintList(fsUserComplaint);
+//        return getDataTable(list);
+//    }
+//
+//    /**
+//     * 导出用户投诉列表
+//     */
+//    @Log(title = "用户投诉", businessType = BusinessType.EXPORT)
+//    @GetMapping("/export")
+//    public AjaxResult export(FsUserComplaint fsUserComplaint)
+//    {
+//        List<FsUserComplaint> list = fsUserComplaintService.selectFsUserComplaintList(fsUserComplaint);
+//        ExcelUtil<FsUserComplaint> util = new ExcelUtil<FsUserComplaint>(FsUserComplaint.class);
+//        return util.exportExcel(list, "用户投诉数据");
+//    }
+//
+//    /**
+//     * 获取用户投诉详细信息
+//     */
+//    @GetMapping(value = "/{id}")
+//    public AjaxResult getInfo(@PathVariable("id") Long id)
+//    {
+//        return AjaxResult.success(fsUserComplaintService.selectFsUserComplaintVoById(id));
+//    }
+//
+//    /**
+//     * 新增用户投诉
+//     */
+//    @Log(title = "用户投诉", businessType = BusinessType.INSERT)
+//    @PostMapping
+//    public AjaxResult add(@RequestBody FsUserComplaint fsUserComplaint)
+//    {
+//        if (fsUserComplaint.getFsUserId() == null || fsUserComplaint.getFsUserId() == 0) {
+//            String userId = getUserId();
+//            fsUserComplaint.setFsUserId(Long.parseLong(userId));
+//        }
+//        return toAjax(fsUserComplaintService.insertFsUserComplaint(fsUserComplaint));
+//    }
+//
+//    /**
+//     * 修改用户投诉
+//     */
+//    @Log(title = "用户投诉", businessType = BusinessType.UPDATE)
+//    @PutMapping
+//    public AjaxResult edit(@RequestBody FsUserComplaint fsUserComplaint)
+//    {
+//        return toAjax(fsUserComplaintService.updateFsUserComplaint(fsUserComplaint));
+//    }
+//
+//    /**
+//     * 删除用户投诉
+//     */
+//    @Log(title = "用户投诉", businessType = BusinessType.DELETE)
+//	@DeleteMapping("/{ids}")
+//    public AjaxResult remove(@PathVariable Long[] ids)
+//    {
+//        return toAjax(fsUserComplaintService.deleteFsUserComplaintByIds(ids));
+//    }
+//
+//    /**
+//     * 查询投诉消息记录列表
+//     */
+//    @GetMapping("/msg/list")
+//    public TableDataInfo msgList(FsUserComplaintMsg fsUserComplaintMsg)
+//    {
+//        startPage();
+//        List<FsUserComplaintMsg> list = fsUserComplaintMsgService.selectFsUserComplaintMsgList(fsUserComplaintMsg);
+//        return getDataTable(list);
+//    }
+//
+//    /**
+//     * 获取投诉消息记录详细信息
+//     */
+//    @GetMapping(value = "/msg/{id}")
+//    public AjaxResult getMsgInfo(@PathVariable("id") Long id)
+//    {
+//        return AjaxResult.success(fsUserComplaintMsgService.selectFsUserComplaintMsgById(id));
+//    }
+//
+//    /**
+//     * 新增投诉消息记录
+//     */
+//    @PostMapping("/msgAdd")
+//    @Login
+//    public AjaxResult msgAdd(@RequestBody FsUserComplaintMsg fsUserComplaintMsg)
+//    {
+//        if (fsUserComplaintMsg.getComplaintId() == null){
+//            return AjaxResult.error("未查询到相关投诉!");
+//        }
+//        String userId = getUserId();
+//        fsUserComplaintMsg.setUserId(Long.valueOf(userId));
+//        fsUserComplaintMsg.setSendType(1); //用户
+//        return toAjax(fsUserComplaintMsgService.insertFsUserComplaintMsg(fsUserComplaintMsg));
+//    }
+//
+//    /**
+//     * 修改投诉消息记录
+//     */
+//    @PutMapping("/editMsg")
+//    public AjaxResult editMsg(@RequestBody FsUserComplaintMsg fsUserComplaintMsg)
+//    {
+//        return toAjax(fsUserComplaintMsgService.updateFsUserComplaintMsg(fsUserComplaintMsg));
+//    }
+//
+//}

+ 2 - 2
fs-user-app/src/main/java/com/fs/app/controller/store/ProductScrmController.java

@@ -99,8 +99,8 @@ public class ProductScrmController extends AppBaseController {
     }
     @ApiOperation("获取商品详情")
     @GetMapping("/getProductDetails")
-    public R getProductDetails(@RequestParam(value="productId") Long productId,String storeId){
-        FsStoreProductQueryVO product=productService.selectFsStoreProductByIdQuery(productId, storeId);
+    public R getProductDetails(@RequestParam(value="productId") Long productId){
+        FsStoreProductQueryVO product=productService.selectFsStoreProductByIdQuery(productId);
         if(product==null){
             return R.error("商品不存在或已下架");
         }

+ 2 - 21
fs-user-app/src/main/java/com/fs/app/controller/store/StoreAfterSalesScrmController.java

@@ -6,12 +6,6 @@ import com.fs.app.controller.AppBaseController;
 import com.fs.common.annotation.RepeatSubmit;
 import com.fs.common.core.domain.R;
 import com.fs.common.utils.ParseUtils;
-import com.fs.his.domain.FsStoreAfterSales;
-import com.fs.his.domain.FsStoreAfterSalesItem;
-import com.fs.his.domain.FsStoreOrder;
-import com.fs.his.param.FsStoreAfterSalesListUParam;
-import com.fs.his.vo.FsStoreAfterSalesListUVO;
-import com.fs.his.vo.FsStoreOrderItemListUVO;
 import com.fs.hisStore.domain.FsStoreAfterSalesItemScrm;
 import com.fs.hisStore.domain.FsStoreAfterSalesScrm;
 import com.fs.hisStore.domain.FsStoreOrderScrm;
@@ -53,7 +47,7 @@ public class StoreAfterSalesScrmController extends AppBaseController {
     private IFsStoreOrderScrmService orderService;
     @Login
     @ApiOperation("获取订单项列表")
-    @GetMapping("/getStoreOrderItems")
+    @GetMapping("/getMyStoreOrderItemByOrderId")
     public R getMyStoreOrderById(@RequestParam("orderId") Long orderId, HttpServletRequest request){
         List<FsStoreOrderItemVO> list=itemService.selectFsStoreOrderItemListByOrderId(orderId);
         FsStoreOrderScrm order=orderService.selectFsStoreOrderById(orderId);
@@ -88,8 +82,7 @@ public class StoreAfterSalesScrmController extends AppBaseController {
 
 
     @Login
-//    @GetMapping("/getAfterSalesList")
-    @GetMapping("/getStoreAfterSalesList")
+    @GetMapping("/getAfterSalesList")
     @ApiOperation(value = "获取售后列表", notes = "获取售后列表")
     public R getAfterSalesList(FsStoreAfterSalesQueryParam param) {
         PageHelper.startPage(param.getPage(), param.getPageSize());
@@ -109,16 +102,4 @@ public class StoreAfterSalesScrmController extends AppBaseController {
         return R.ok().put("sales",sales).put("items", items);
     }
 
-    @Login
-    @GetMapping("/getStoreAfterSalesById")
-    @ApiOperation(value = "获取售后详情", notes = "获取售后详情")
-    public R getStoreAfterSalesById(@RequestParam("id") Long id) {
-        FsStoreAfterSalesScrm sales=storeAfterSalesService.selectFsStoreAfterSalesById(id);
-        FsStoreAfterSalesItemScrm map=new FsStoreAfterSalesItemScrm();
-        map.setStoreAfterSalesId(id);
-        List<FsStoreAfterSalesItemScrm>  items=salesItemService.selectFsStoreAfterSalesItemList(map);
-        FsStoreOrderScrm order=orderService.selectFsStoreOrderByOrderId(sales.getOrderId());
-        return R.ok().put("sales",sales).put("items", items).put("order",order);
-    }
-
 }