Bladeren bron

Merge remote-tracking branch 'origin/企微聊天' into 企微聊天

ct 6 dagen geleden
bovenliggende
commit
76f655f3c6

+ 82 - 4
fs-admin/src/main/java/com/fs/his/controller/FsIntegralOrderController.java

@@ -29,12 +29,14 @@ import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
+import lombok.extern.slf4j.Slf4j;
 
 import java.text.ParseException;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 import static com.fs.his.utils.PhoneUtil.decryptAutoPhoneMk;
 import static com.fs.his.utils.PhoneUtil.decryptPhone;
@@ -45,6 +47,7 @@ import static com.fs.his.utils.PhoneUtil.decryptPhone;
  * @author fs
  * @date 2023-11-02
  */
+@Slf4j
 @RestController
 @RequestMapping("/his/integralOrder")
 public class FsIntegralOrderController extends BaseController
@@ -84,11 +87,26 @@ public class FsIntegralOrderController extends BaseController
                 fsIntegralOrder.setStatus("1");
                 fsIntegralOrder.setIsPush(0);
             }
-            List<FsIntegralOrderListVO> list = fsIntegralOrderService.selectFsIntegralOrderListByJn(fsIntegralOrder);
-            for (FsIntegralOrderListVO vo : list) {
-                vo.setUserPhone(decryptAutoPhoneMk(vo.getUserPhone()));
+
+            // 金牛明医项目:支持多个订单ID查询
+            if (fsIntegralOrder.getOrderCodes() != null && !fsIntegralOrder.getOrderCodes().isEmpty()) {
+                // 如果传了orderIds参数,使用新的查询逻辑
+                List<FsIntegralOrder> orders = fsIntegralOrderService.selectFsIntegralOrderByOrderIdsv2(fsIntegralOrder.getOrderCodes());
+                List<FsIntegralOrderListVO> list = orders.stream()
+                    .map(this::convertOrderToListVO)
+                    .collect(Collectors.toList());
+                for (FsIntegralOrderListVO vo : list) {
+                    vo.setUserPhone(decryptAutoPhoneMk(vo.getUserPhone()));
+                }
+                return getDataTable(list);
+            } else {
+                // 原有逻辑:单个orderId或其他条件查询
+                List<FsIntegralOrderListVO> list = fsIntegralOrderService.selectFsIntegralOrderListByJn(fsIntegralOrder);
+                for (FsIntegralOrderListVO vo : list) {
+                    vo.setUserPhone(decryptAutoPhoneMk(vo.getUserPhone()));
+                }
+                return getDataTable(list);
             }
-            return getDataTable(list);
         }
         List<FsIntegralOrderListVO> list = fsIntegralOrderService.selectFsIntegralOrderListVO(fsIntegralOrder);
         for (FsIntegralOrderListVO vo : list) {
@@ -112,6 +130,37 @@ public class FsIntegralOrderController extends BaseController
             param.setStatus("1");
             param.setIsPush(0);
             List<FsIntegralOrderListVO> fsIntegralOrderListVOS = fsIntegralOrderService.selectFsIntegralOrderListByJn(param);
+
+            // 处理商品名称:解析item_json并设置goodsName
+            for (FsIntegralOrderListVO vo : fsIntegralOrderListVOS) {
+                if (StringUtils.isNotEmpty(vo.getItemJson())) {
+                    try {
+                        // 尝试解析JSON格式的商品信息
+                        if (vo.getItemJson().startsWith("[")) {
+                            // 数组格式,取第一个商品
+                            com.alibaba.fastjson.JSONArray jsonArray = com.alibaba.fastjson.JSONArray.parseArray(vo.getItemJson());
+                            if (jsonArray != null && !jsonArray.isEmpty()) {
+                                com.alibaba.fastjson.JSONObject goods = jsonArray.getJSONObject(0);
+                                if (goods != null && goods.getString("goodsName") != null) {
+                                    vo.setGoodsName(goods.getString("goodsName"));
+                                }
+                            }
+                        } else if (vo.getItemJson().startsWith("{")) {
+                            // 对象格式
+                            com.alibaba.fastjson.JSONObject goods = com.alibaba.fastjson.JSONObject.parseObject(vo.getItemJson());
+                            if (goods != null && goods.getString("goodsName") != null) {
+                                vo.setGoodsName(goods.getString("goodsName"));
+                            }
+                        }
+                    } catch (Exception e) {
+                        // 解析失败时保持goodsName为空,避免导出出错
+                        log.warn("解析商品信息失败,订单编号:{}, 商品信息:{}", vo.getOrderCode(), vo.getItemJson());
+                    }
+                }
+                // 解密手机号
+                vo.setUserPhone(decryptAutoPhoneMk(vo.getUserPhone()));
+            }
+
             ExcelUtil<FsIntegralOrderListVO> util = new ExcelUtil<>(FsIntegralOrderListVO.class);
             return util.exportExcel(new ArrayList<>(fsIntegralOrderListVOS), "积分商品订单数据");
         }
@@ -410,4 +459,33 @@ public class FsIntegralOrderController extends BaseController
         }
         return df;
     }
+
+    /**
+     * 将 FsIntegralOrder 转换为 FsIntegralOrderListVO
+     * @param order 积分订单实体
+     * @return 转换后的VO对象
+     */
+    private FsIntegralOrderListVO convertOrderToListVO(FsIntegralOrder order) {
+        FsIntegralOrderListVO vo = new FsIntegralOrderListVO();
+        vo.setOrderId(order.getOrderId());
+        vo.setOrderCode(order.getOrderCode());
+        vo.setUserId(order.getUserId());
+        vo.setUserName(order.getUserName());
+        vo.setUserPhone(order.getUserPhone());
+        vo.setUserAddress(order.getUserAddress());
+        vo.setItemJson(order.getItemJson());
+        vo.setIntegral(order.getIntegral());
+        vo.setStatus(order.getStatus() != null ? order.getStatus().toString() : null);
+        vo.setDeliveryCode(order.getDeliveryCode());
+        vo.setDeliveryName(order.getDeliveryName());
+        vo.setDeliverySn(order.getDeliverySn());
+        vo.setDeliveryTime(order.getDeliveryTime());
+        vo.setCreateTime(order.getCreateTime());
+        vo.setQwUserId(order.getQwUserId());
+        vo.setCompanyUserId(order.getCompanyUserId());
+        vo.setCompanyId(order.getCompanyId());
+        vo.setPayMoney(order.getPayMoney());
+        vo.setLoginAccount(order.getLoginAccount());
+        return vo;
+    }
 }

+ 2 - 0
fs-service/src/main/java/com/fs/his/mapper/FsIntegralOrderMapper.java

@@ -115,5 +115,7 @@ public interface FsIntegralOrderMapper extends BaseMapper<FsIntegralOrder>
 
     List<FsIntegralOrder> findOrderByIds(@Param("orderIds") List<Long> orderIds);
 
+    List<FsIntegralOrder> findOrderByIdsv2(@Param("orderIds") List<Long> orderIds);
+
     List<FsIntegralOrderListVO> selectFsIntegralOrderListJn(FsIntegralOrderParam fsIntegralOrder);
 }

+ 6 - 0
fs-service/src/main/java/com/fs/his/param/FsIntegralOrderParam.java

@@ -7,6 +7,7 @@ import lombok.Data;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.util.Date;
+import java.util.List;
 
 @Data
 public class FsIntegralOrderParam {
@@ -104,4 +105,9 @@ public class FsIntegralOrderParam {
     private String loginAccount;
 
     private Integer isPush;
+
+    /**
+     * 订单ID集合(用于批量查询)
+     */
+    private List<Long> orderCodes;
 }

+ 2 - 0
fs-service/src/main/java/com/fs/his/service/IFsIntegralOrderService.java

@@ -112,6 +112,8 @@ public interface IFsIntegralOrderService
 
     List<FsIntegralOrder> selectFsIntegralOrderByOrderIds(List<Long> orderIds);
 
+    List<FsIntegralOrder> selectFsIntegralOrderByOrderIdsv2(List<Long> orderIds);
+
     void createErpOrder(Long orderId) throws ParseException;
 
     String importOrderStatusData(List<FsIntegralOrderExcelVO> list);

+ 7 - 0
fs-service/src/main/java/com/fs/his/service/impl/FsIntegralOrderServiceImpl.java

@@ -800,6 +800,13 @@ public class FsIntegralOrderServiceImpl implements IFsIntegralOrderService
         return fsIntegralOrderMapper.findOrderByIds(orderIds);
     }
 
+    @Override
+    public List<FsIntegralOrder> selectFsIntegralOrderByOrderIdsv2(List<Long> orderIds) {
+        if (CollectionUtils.isEmpty(orderIds)) {
+            return Collections.emptyList();
+        }
+        return fsIntegralOrderMapper.findOrderByIdsv2(orderIds);
+    }
 
     @Override
 //    @Transactional(rollbackFor = Exception.class)

+ 4 - 0
fs-service/src/main/java/com/fs/his/vo/FsIntegralOrderListVO.java

@@ -1,5 +1,6 @@
 package com.fs.his.vo;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fs.common.annotation.Excel;
 import com.fs.common.utils.BigDecimalUtil;
@@ -36,6 +37,9 @@ public class FsIntegralOrderListVO {
     /** 商品信息 */
     @Excel(name = "商品信息")
     private String itemJson;
+    @TableField(exist = false)
+    @Excel(name = "商品名称")
+    private String goodsName;
 
     /** 支付积分 */
     @Excel(name = "支付积分")

+ 7 - 0
fs-service/src/main/resources/mapper/his/FsIntegralOrderMapper.xml

@@ -63,6 +63,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             #{orderId}
         </foreach>
     </select>
+    <select id="findOrderByIdsv2" resultType="com.fs.his.domain.FsIntegralOrder">
+        SELECT * FROM fs_integral_order
+        WHERE order_code IN
+        <foreach collection="orderIds" item="orderId" open="(" close=")" separator=",">
+            #{orderId}
+        </foreach>
+    </select>
     <select id="selectFsIntegralOrderListJn" resultType="com.fs.his.vo.FsIntegralOrderListVO">
         SELECT
         fio.order_id,