Files
LWLT-AI/api_inventory.md
2026-07-13 19:57:46 +08:00

13 KiB

LTJT Business Module API Inventory

Date: 2026-07-07

Scope

Authorized browser session for the 业务操作 module on https://ltjt.yunzhi.run/.

This inventory records endpoint shapes and parameter names only. It intentionally avoids storing business data rows, cookie values, passwords, CAPTCHA values, or other secrets.

Integration Model Observed

  • The app is a classic ASP/IIS back office.
  • Business screens are HTML pages under /System/Business/*.asp.
  • List data is usually loaded by jQuery XHR from /System/dat/*.asp with POST form encoding.
  • Most list endpoints return text/html; Charset=UTF-8, not JSON.
  • Common pagination keys: Act, Tpage, P_Size, then the page's SearchForm.serialize() fields.
  • The UI opens modules as extra iframes/tabs inside System/Mainlt.asp, not as a single replaced iframe.
  • A direct unauthenticated or expired call returns JavaScript such as alert('登陆失效,请重新登陆!').

Core List Endpoints

Module Page List endpoint Act Notes
产品管理 /System/Business/Product.asp POST /System/dat/product.asp PrintGridList Confirmed by real menu click.
独立团计划表 /System/Business/orders.asp POST /System/dat/orders.asp JH_OrderList Confirmed by real menu click.
散拼团计划表 /System/Business/plan.asp POST /System/dat/plan.asp SP_OrderList Confirmed by real menu click.
团队安排 /System/Business/teams.asp POST /System/dat/team.asp PrintGridLists Confirmed by real menu click.
航班控位表 /System/Business/tickets.asp POST /System/dat/tickets.asp PrintGridListh Confirmed from page JS; initial load also calls AjaxPublicFun.asp?Act=Probaowei.
团队备案表 /System/Business/teams_beians.asp POST /System/dat/team.asp PrintGridListb Confirmed by real menu click.
退货管理 /System/Business/teams_return.asp POST /System/dat/team_return.asp PrintGridLists Confirmed by real menu click.
客服回访 /System/Business/kefu.asp POST /System/dat/team.asp PrintGridListk Confirmed by real menu click.
酒店用房表 /System/Business/Hotels.asp POST /System/dat/hotels.asp TBD Page references confirmed; exact Act still needs a stable-login script capture.

Parameter Shapes

产品管理

Endpoint: POST /System/dat/product.asp

Observed body keys: Act=PrintGridList, Tpage, P_Size, S_fabudanwei, S_chanpinming, S_tianshu, S_kehu, S_caozuoren, S_zhuanxianming, S_zhuangtai.

Related endpoints:

  • POST /System/dat/AjaxPublicFun.asp?Act=ProGetTableZD&tb=Product&zd=chanpinming&s_fabudanwei=...
  • GET /System/Business/product_list.asp?ID=...
  • GET /System/Business/product_add.asp?cp=...
  • POST ../DAT/product.asp and POST ../dat/product.asp are referenced for product actions.

独立团计划表

Endpoint: POST /System/dat/orders.asp

Observed list body keys: Act=JH_OrderList, Tpage, P_Size, riqi, S_chufariqi, S_chufarizhi, S_fabudanwei, S_tuanxuhao, S_kehuming, S_chanpinming, S_gendanren, S_youkexinxi, S_daoyou, S_lingdui, S_querenshu, S_zhuanxianming, S_zhuangtai.

Other actions referenced:

  • Act=JH_OrderList_one
  • Act=DelRecord
  • Act=JH_Ordercopy
  • Act=JH_set_quxiao

Related pages:

  • /System/Business/orders_list.asp?did=...
  • /System/Business/orders_add.asp?fabudanwei=...
  • /System/Business/orders_adds.asp?fabudanwei=...
  • /System/Business/cash_shou_add.asp?...
  • /System/Business/teams_shoudaoyou.asp?tdid=...
  • orders_excel.asp

独立团下单 / 新增订单

Full extracted field schema:

Entry point:

  • The 下单 button on /System/Business/orders.asp has onclick=OPEN_update(0,0,0).
  • It opens a dialog iframe: /system/Business/orders_add.asp?fabudanwei=<分公司>&copy=0&ddid=0&_=<timestamp>
  • The page title is 计划下单/修改.

Save endpoint:

  • Form id/name: ListForm
  • Form action: /System/DAT/orders.asp?Act=DoInfoJH
  • JavaScript submit call: POST /System/DAT/orders.asp
  • Submit payload: Act=DoInfoJH& + $("#ListForm").serialize()
  • Response type: JavaScript (dataType: "script"), so success/failure is probably returned as executable script/alerts rather than JSON.

Submit behavior observed:

  • SubmitInfoForm() first checks that the total large/small passenger counts are not both zero.
  • It then calls Vidy.CheckMastInput("ListForm") to enforce required fields and basic input filtering.
  • Only after those checks does it call $.ajax({ type: "POST", url: "/System/DAT/orders.asp", dataType: "script", data: "Act=DoInfoJH&" + $("#ListForm").serialize() }).
  • The loaded add form contained about 825 input/select/textarea fields, because it includes repeated itinerary, receivable, flight, restaurant, hotel, attraction, attachment, and hidden metadata rows.

Primary required fields observed on the add form:

  • chufa_ri - 出发日期
  • zhuanxianming - 专线名称
  • TianShu - 行程天数
  • zutuanshe plus hidden zutuansheid, zutuanshegzr, bizhong - 预订客户/customer metadata
  • chanpinming plus hidden baojia - 产品名称/pricing metadata
  • gendanren - 跟单人
  • tuanxuhao1, tuanxuhao2 - 团号 parts
  • darenshu, xiaorenshu, ertrenshu, yingrenshu, quanrenshu - adult/child/infant/leader counts
  • xiaoshouren - 销售人

Other form field groups observed:

  • lianxiren, keyuandi, xiadanbeizhu, yaobeian, danzhuangtai
  • frenshu* traveler-count breakdown fields
  • Text*_N and shuomingN itinerary/explanation blocks
  • PicFile0, PicFile1 upload attachment references
  • ys_* receivable/charge rows, including unit, item, currency, quantity, unit price, amount, payment-state metadata, remarks, operator/reviewer fields
  • ban* flight rows, up to 4 observed row groups
  • zao*, zhong*, wan*, zhusu*, jingdian* itinerary/service arrangement rows, up to 15 day rows and repeated attraction slots
  • hidden operational fields including ddid, tdid, quanxian, fabudanwei, caozuoren, ys_shenhe, yingfu_jing, yingfu_can, zhusuanpai, daoyoujiesuan, youyingshoukuan, session_id

Lookup/support endpoints loaded by the add page:

  • POST /system/dat/AjaxPublicFun.asp?Act=GetInformation&fl=1&fabudanwei=...
  • POST /system/dat/AjaxPublicFun.asp?Act=ProTravel&fabudanwei=...
  • POST /system/dat/AjaxPublicFun.asp?Act=GetSFXiangMu&sf=0
  • POST /system/dat/AjaxPublicFun.asp?Act=Probaowei&fabudanwei=...
  • POST /system/dat/AjaxPublicFun.asp?Act=GetProucttextes&fabudanwei=...
  • POST /system/dat/AjaxPublicFun.asp?Act=ProDanweiZCxm&leibie=3&fabudanwei=...
  • POST /system/dat/AjaxPublicFun.asp?Act=ProDanweiZCxm&leibie=4&fabudanwei=...
  • POST /system/dat/AjaxPublicFun.asp?Act=ProDanweiZCxm&leibie=1&fabudanwei=...
  • POST /system/dat/AjaxPublicFun.asp?Act=GetInformation&fl=3&fls=1&fabudanwei=...
  • POST /system/dat/AjaxPublicFun.asp?Act=ProGetProductname&fls=1&fabudanwei=...
  • POST ../dat/AjaxPublicFun.asp?Act=Find_danweixinxi&...
  • POST ../DAT/AjaxPublicFun.asp?Act=Find_qiankuan&...
  • POST ../dat/AjaxPublicFun.asp?Act=GetProduct&cpm=...

Attachment helper pages:

  • /Inc/UpLoadImg.asp?InputID=PicFile0&Exe=jpg|jpeg|bmp|png|gif|tif|doc|xls|xlsx|docx|pdf&oldval=...
  • /Inc/UpLoadImg.asp?InputID=PicFile1&Exe=jpg|jpeg|bmp|png|gif|tif|doc|xls|xlsx|docx|pdf&oldval=...

Feasibility note:

  • The down-order operation is technically addressable through Act=DoInfoJH, but it is a large browser-form contract rather than a small API call.
  • Building a reliable adapter requires reproducing the page's client-side construction of ListForm: lookup fills, hidden IDs, currency/unit metadata, itinerary rows, receivable rows, uploaded attachment references, and validation.
  • It should be developed first as a dry-run serializer that opens orders_add.asp, fills fields in a controlled browser/page context, serializes ListForm, and compares the payload without pressing submit.
  • Actual Act=DoInfoJH submission should wait for explicit owner approval and a test/sandbox order or rollback policy.

散拼团计划表

Endpoint: POST /System/dat/plan.asp

Observed list body keys: Act=SP_OrderList, Tpage, P_Size, riqi, S_chufariqi, S_chufarizhi, S_fabudanwei, S_tuanxuhao, S_kehuming, S_chanpinming, S_gendanren, S_youkexinxi, S_daoyou, S_querenshu, S_zhuanxianming, S_zhuangtai.

Other actions referenced:

  • Act=SP_OrderList_one
  • Act=SP_Plancopy
  • Act=DelRecord
  • Act=JH_set_quxiao

Related pages:

  • /System/Business/plan_List.asp?tid=...
  • /System/Business/plan_order.asp?tdid=...
  • /System/Business/plan_add.asp?fabudanwei=...
  • /System/Business/plan_update.asp?tid=...

团队安排

Endpoint: POST /System/dat/team.asp

Observed body keys: Act=PrintGridLists, Tpage, P_Size, riqi, S_chufariqi, S_chufarizhi, S_fabudanwei, S_chanpinming, S_fatuanren, S_daoyou, S_kehu, S_jiudian, S_chedui, S_tuanxuhao, S_Guide, S_Car, S_Hotel, S_Train, S_Other, S_youke, S_tuanbao, S_zhuanxianming, S_zhuanxianlei, S_zhuangtai.

Related pages:

  • /System/Business/plan_List.asp?tid=...
  • /System/Business/orders_list.asp?tid=...
  • /System/Business/teams_daoyou.asp?tdid=...
  • /System/Business/teams_cheliang.asp?tdid=...
  • /System/Business/teams_jiudian.asp?tdid=...
  • /System/Business/teams_piao.asp?tdid=...
  • /System/Business/teams_qita.asp?tdid=...
  • teams_excel.asp

航班控位表

Endpoint: POST /System/dat/tickets.asp

Observed list body keys: Act=PrintGridListh, Tpage, P_Size, S_chufariqi, S_chufarizhi, S_fabudanwei, S_picihao, S_kehu, S_danweiid, S_danwei, S_zhuanxianlei.

Related endpoints/pages:

  • POST /System/dat/AjaxPublicFun.asp?Act=Probaowei&fabudanwei=...
  • /System/Business/tickets_add.asp?...
  • /System/Business/tickets_one.asp?hangbanhao=...
  • tickets_excel.asp

团队备案表

Endpoint: POST /System/dat/team.asp

Observed body keys: Act=PrintGridListb, Tpage, P_Size, riqi, S_chufariqi, S_chufarizhi, S_fabudanwei, S_chanpinming, S_jidiaoren, S_daoyou, S_kehu, S_beianhao, S_tuanxuhao, S_Other, S_youke, S_zhuanxianming, S_zhuanxianlei, S_zhuangtai.

Related page:

  • /System/Business/teams_qita.asp?tdid=...

退货管理

Endpoint: POST /System/dat/team_return.asp

Observed body keys: Act=PrintGridLists, Tpage, P_Size, riqilei, S_chufariqi, S_chufarizhi, S_fabudanwei, S_tuanxuhao, S_chanpinming, S_gouwudian, S_daoyou, S_kehu, S_youke, S_fatuanren, S_zhuanxianming, S_zhuangtai.

Related pages:

  • /System/Business/teams_return_add.asp?fabudanwei=...
  • teams_return_excel.asp

客服回访

Endpoint: POST /System/dat/team.asp

Observed body keys: Act=PrintGridListk, Tpage, P_Size, riqi, S_chufariqi, S_chufarizhi, S_fabudanwei, S_tuanxuhao, S_chanpinming, S_fatuanren, S_daoyou, S_zhuanxianlei, S_zhuanxianming, S_zhuangtai.

Related actions/pages:

  • /System/Business/kefu_add.asp?tdid=...
  • Act=del_kefu on POST /System/DAT/team.asp

Permission or Session-Sensitive Pages

The following business-menu items showed permission alerts, empty frames, or session invalidation during capture and should be rechecked after a fresh login if they are needed:

  • /System/Business/Cash_fu.asp - 我的付款单
  • /System/Business/Cash_shou.asp - 我的收款单
  • /System/Business/Cash_zhi.asp - 我的费用报销单
  • /System/Business/Invoice.asp - 我的发票申请
  • /System/Business/Bill_out.asp - 我发放的签单
  • /System/Business/Arrears.asp - 我的客户欠款

Practical Feasibility

Direct integration appears feasible, but not as a clean public API. The practical path is to build an adapter that:

  • Logs in through an approved account/session strategy.
  • Replays the same application/x-www-form-urlencoded XHR calls used by each page.
  • Parses HTML fragments, not JSON.
  • Handles session expiry scripts and permission-alert scripts as first-class errors.
  • Keeps writes disabled until each write endpoint is separately reviewed and authorized.

Runtime must not depend on AI/LLM decisions. AI is only acceptable for discovery and mapping drafts. The production adapter should be deterministic: standard data object -> explicit field mapping -> lookup resolution -> dry-run serialization -> validated submit.

See adapter_design.md for the recommended non-AI runtime architecture.

Open items before production:

  • Confirm stable login/session renewal with the system owner.
  • Capture response-body structure for successful list calls after a fresh login.
  • Confirm whether dat endpoints require a page-opened iframe context, Referer, or additional cookies.
  • Define allowed read/write operations for the integration account.