zhaowenxuan
2025-04-03 767e25b35c688a8642c299065e4fe8421534b7df
小程序接口
3个文件已修改
1个文件已添加
193 ■■■■■ 已修改文件
ltkj-admin/src/main/java/com/ltkj/web/controller/api/DefaultController.java 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-framework/src/main/java/com/ltkj/framework/config/SecurityConfig.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjCustomerMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/resources/mapper/TjCustomerMapper.xml 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/api/DefaultController.java
New file
@@ -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);
        }
    }
}
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()
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);
}
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>