From 767e25b35c688a8642c299065e4fe8421534b7df Mon Sep 17 00:00:00 2001
From: zhaowenxuan <chacca165@163.com>
Date: 星期四, 03 四月 2025 17:56:12 +0800
Subject: [PATCH] 小程序接口

---
 ltkj-framework/src/main/java/com/ltkj/framework/config/SecurityConfig.java  |    1 
 ltkj-hosp/src/main/resources/mapper/TjCustomerMapper.xml                    |   60 +++++++++++++++
 ltkj-admin/src/main/java/com/ltkj/web/controller/api/DefaultController.java |  128 ++++++++++++++++++++++++++++++++
 ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjCustomerMapper.java          |    4 +
 4 files changed, 193 insertions(+), 0 deletions(-)

diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/api/DefaultController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/api/DefaultController.java
new file mode 100644
index 0000000..399ea2e
--- /dev/null
+++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/api/DefaultController.java
@@ -0,0 +1,128 @@
+package com.ltkj.web.controller.api;
+
+import cn.hutool.json.JSONArray;
+import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
+import com.ltkj.common.core.domain.AjaxResult;
+import com.ltkj.hosp.mapper.TjCustomerMapper;
+import com.ltkj.web.controller.system.TjCheckController;
+import com.ltkj.web.controller.system.TjReportController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Company: 瑗垮畨璺嘲绉戞妧鏈夐檺鍏徃
+ * @Author: zhaowenxuan
+ * @Date: 2025/2/18 10:59
+ */
+@RequestMapping("/api")
+@RestController
+public class DefaultController {
+
+    @Autowired
+    private TjReportController tjReportController;
+    @Autowired
+    private TjCheckController tjCheckController;
+    @Autowired
+    private TjCustomerMapper tjCustomerMapper;
+
+    /**
+     * 鎻愪緵缁欎笁鏂硅皟鐢ㄧ殑鎶ュ憡鏌ョ湅鎺ュ彛
+     * @param response
+     * @param json
+     */
+    @PostMapping("/viewReport")
+    public void viewReport(HttpServletResponse response, @RequestBody String json){
+        JSONObject entries = JSONUtil.parseObj(json);
+        String tjNum = entries.getStr("tjNum");
+        tjReportController.preview(response,true,tjNum);
+    }
+
+    /**
+     * 鎻愪緵缁欎笁鏂硅皟鐢ㄧ殑鎶ュ憡鏁版嵁鎺ュ彛
+     * @param json
+     * @return
+     */
+    @PostMapping("/reportData")
+    public AjaxResult reportData(@RequestBody String json){
+        String tjNum = JSONUtil.parseObj(json).getStr("tjNum");
+        JSONObject entries = JSONUtil.parseObj(tjCheckController.updateCheckType(tjNum));
+        removeNullFields(entries);
+        return JSONUtil.toBean(entries, AjaxResult.class);
+    }
+
+    /**
+     * 瀵逛簬HIS鎻愪緵
+     * 鏍规嵁韬唤璇佸彿鏌ヨ杩斿洖浣撴璁板綍锛氬寘鍚鍚嶃�佽韩浠借瘉鍙枫�佹�у埆銆佸嚭鐢熸棩鏈熴�佸勾榫勩�佷綋妫�鍙枫�佽仈绯荤數璇濓紝浣撴鏃ユ湡锛屾姤鍛婄姸鎬�
+     * @param json
+     * @return
+     */
+    @PostMapping("/getInfo")
+    public AjaxResult getInfo(@RequestBody String json){
+        JSONObject entries = JSONUtil.parseObj(json);
+        String card = entries.getStr("card");
+//        TjCustomer customer = tjCustomerMapper.getCusInfo(card);
+        List<Map<String ,Object>> customer = tjCustomerMapper.getCusInfoList(card);
+        return AjaxResult.success(customer);
+    }
+
+    /**
+     * 瀵逛簬灏忕▼搴忔彁渚�
+     * 鏍规嵁韬唤璇佸彿鏌ヨ杩斿洖浣撴璁板綍锛氬寘鍚鍚嶃�佽韩浠借瘉鍙枫�佹�у埆銆佸嚭鐢熸棩鏈熴�佸勾榫勩�佷綋妫�鍙枫�佽仈绯荤數璇濓紝浣撴鏃ユ湡锛屾姤鍛婄姸鎬�
+     * @param json
+     * @return
+     */
+    @PostMapping("/getCusInfo")
+    public AjaxResult getInfoCus(@RequestBody String json){
+        JSONObject entries = JSONUtil.parseObj(json);
+        String card = entries.getStr("card");
+        String name = entries.getStr("name");
+        List<Map<String ,Object>> customer = tjCustomerMapper.getCusInfoListByCardAndName(card,name);
+        return AjaxResult.success(customer);
+    }
+
+    public static void removeNullFields(JSONObject jsonObject) {
+        ArrayList<String> strings = new ArrayList<>();
+        strings.add("orderId");
+        strings.add("updateTime");
+        strings.add("orderDetailId");
+        strings.add("flowingWaterId");
+        strings.add("createBy");
+        strings.add("deleted");
+        strings.add("createTime");
+        strings.add("updateBy");
+        strings.add("createId");
+        strings.add("prosId");
+        strings.add("params");
+
+        List<String> keysToRemove = new ArrayList<>();
+        jsonObject.forEach((key, value) -> {
+            if (strings.contains(key)) {
+                keysToRemove.add(key);
+            } else if (value == null) {
+                keysToRemove.add(key);
+            } else if (value instanceof JSONObject) {
+                removeNullFields((JSONObject) value);
+            } else if (value instanceof JSONArray) {
+                JSONArray jsonArray = (JSONArray) value;
+                for (Object arrayItem : jsonArray) {
+                    if (arrayItem instanceof JSONObject) {
+                        removeNullFields((JSONObject) arrayItem);
+                    }
+                }
+            }
+        });
+        for (String key : keysToRemove) {
+            jsonObject.remove(key);
+        }
+    }
+
+}
diff --git a/ltkj-framework/src/main/java/com/ltkj/framework/config/SecurityConfig.java b/ltkj-framework/src/main/java/com/ltkj/framework/config/SecurityConfig.java
index 23c0d40..b4b8eeb 100644
--- a/ltkj-framework/src/main/java/com/ltkj/framework/config/SecurityConfig.java
+++ b/ltkj-framework/src/main/java/com/ltkj/framework/config/SecurityConfig.java
@@ -117,6 +117,7 @@
                 // 闈欐�佽祫婧愶紝鍙尶鍚嶈闂�
                 .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll()
                 .antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll()
+                .antMatchers("/api/viewReport","/api/reportData","/api/getInfo").permitAll()
                 .antMatchers("/jmreport/**","/lis/**","/pacs/**","/callBack/**","/hosp/order/signOrderInfo").anonymous()
                 // 闄や笂闈㈠鐨勬墍鏈夎姹傚叏閮ㄩ渶瑕侀壌鏉冭璇�
                 .anyRequest().authenticated()
diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjCustomerMapper.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjCustomerMapper.java
index e8a7e94..cba88aa 100644
--- a/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjCustomerMapper.java
+++ b/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjCustomerMapper.java
@@ -104,4 +104,8 @@
     List<Map<String, Object>> vcustomerlist(@Param("name")String name, @Param("sjh")String sjh, @Param("sfzh") String sfzh);
 
     List<TjCustomer> getcusList(TjCustomer tjCustomer);
+
+    List<Map<String ,Object >> getCusInfoList(String card);
+
+    List<Map<String ,Object >> getCusInfoListByCardAndName(@Param("card") String card,@Param("name") String name);
 }
diff --git a/ltkj-hosp/src/main/resources/mapper/TjCustomerMapper.xml b/ltkj-hosp/src/main/resources/mapper/TjCustomerMapper.xml
index c821a51..8fbc575 100644
--- a/ltkj-hosp/src/main/resources/mapper/TjCustomerMapper.xml
+++ b/ltkj-hosp/src/main/resources/mapper/TjCustomerMapper.xml
@@ -251,4 +251,64 @@
             and deleted =0
         </where>
     </select>
+    <select id="getCusInfoList" resultType="java.util.Map">
+        SELECT
+            c.cus_name as name,
+            c.cus_idcard as card,
+            CASE c.cus_sex
+                WHEN 0 THEN '鐢�'
+                WHEN 1 THEN '濂�'
+                ELSE '鏈煡'
+                END AS sex,
+            c.cus_brithday as csrq,
+            o.tj_number as tjNum,
+            c.cus_phone as phone,
+            DATE_FORMAT(o.create_time, '%Y-%m-%d %H:%i:%s') as time,
+  TIMESTAMPDIFF(YEAR, c.cus_brithday, CURDATE()) -
+    CASE
+      WHEN MONTH(c.cus_brithday) > MONTH(CURDATE())
+        OR (MONTH(c.cus_brithday) = MONTH(CURDATE()) AND DAY(c.cus_brithday) > DAY(CURDATE()))
+      THEN 1
+      ELSE 0
+        END AS age,
+      CASE WHEN r.re_id IS NOT NULL THEN 1 ELSE 0 END AS type
+FROM
+  tj_order o
+  JOIN tj_customer c ON o.user_id = c.cus_id
+  LEFT JOIN tj_report r ON o.tj_number = r.tj_number
+WHERE
+  c.cus_idcard = #{card}
+        ORDER BY
+        o.create_time DESC
+    </select>
+    <select id="getCusInfoListByCardAndName" resultType="java.util.Map">
+        SELECT
+            c.cus_name as name,
+            c.cus_idcard as card,
+            CASE c.cus_sex
+                WHEN 0 THEN '鐢�'
+                WHEN 1 THEN '濂�'
+                ELSE '鏈煡'
+                END AS sex,
+            c.cus_brithday as csrq,
+            o.tj_number as tjNum,
+            c.cus_phone as phone,
+            DATE_FORMAT(o.create_time, '%Y-%m-%d %H:%i:%s') as time,
+  TIMESTAMPDIFF(YEAR, c.cus_brithday, CURDATE()) -
+    CASE
+      WHEN MONTH(c.cus_brithday) > MONTH(CURDATE())
+        OR (MONTH(c.cus_brithday) = MONTH(CURDATE()) AND DAY(c.cus_brithday) > DAY(CURDATE()))
+      THEN 1
+      ELSE 0
+        END AS age,
+      CASE WHEN r.re_id IS NOT NULL THEN 1 ELSE 0 END AS type
+FROM
+  tj_order o
+  JOIN tj_customer c ON o.user_id = c.cus_id
+  LEFT JOIN tj_report r ON o.tj_number = r.tj_number
+WHERE
+  c.cus_idcard = #{card} AND c.cus_name = #{name} AND c.deleted = 0
+        ORDER BY
+        o.create_time DESC
+    </select>
 </mapper>

--
Gitblit v1.8.0