vue做企業(yè)網(wǎng)站上海百度推廣平臺
業(yè)務需求:
投注站信息保存在表A里,投注站下的設備信息保存在表B里, 一個投注站會有多個設備,要在一個表單里進行投注站和設備信息的填寫,保存,回填,修改。
思路:
1)將子表作為一個表單的組件,可配置/拖拽生成表單;
2)點擊保存,先保存主表的記錄,主表記錄保存成功后,將主表的主鍵作為子表的外鍵,保存子表數(shù)據(jù)。
RuoYi實現(xiàn):
?參考文檔:?后臺手冊 | RuoYi
1)按照文檔里的sql,新建顧客表和商品表
2)在 系統(tǒng)工具 - 代碼生成 菜單下,導入新建的表;
3)編輯顧客表的配置, 生成信息 - 生成模板選擇主子表,點擊確定生成代碼到項目里, 重啟項目,添加菜單,測試驗證能進行信息的維護。
代碼邏輯:
使用 $('#form-customer-add').serialize() 獲取表單上的參數(shù),接口使用 實體類?SysCustomer 接收參數(shù),使用@Transactional 保障事務。
新增:先新增顧客記錄,將新增得到的顧客標識設置到商品實體類,批量新增商品記錄;
修改:先刪除這個顧客下已有的商品記錄,再批量新增商品記錄,最后修改顧客記錄;
刪除:根據(jù)顧客標識刪除商品記錄和顧客記錄;
查詢單個顧客信息:關聯(lián)sys_customer和sys_good表,查詢出的數(shù)據(jù),使用resultMap將信息添加到實體類里;
列表查詢:使用mybatis的分頁,查詢列表數(shù)據(jù),使用if標簽,判斷實體參數(shù) SysCustomer 里的屬性有值,進行條件查詢;
其他:
1)RuoYi使用的MyBatis,在添加記錄處理處理參數(shù)時,會忽略那些值為?null
?的參數(shù),批量添加商品時,item.goodsId為null, 數(shù)據(jù)庫使用默認的的自增主鍵作為id。
2)類似的代碼生成還有 eladmin、jeecg。eladmin 持久層使用的?Spring Boot Jpa ,jeecg 支持了表單上一個主表配置多個子表。
功能待完善的點:
1)主鍵使用的默認自增策略,需要改為使用隨機字符串uunid
2)這里主表和子表的業(yè)務場景比較廣泛,考慮使用通用代碼的維護方式,不用重啟項目就能生效
3)表單上添加上傳圖片、附件的功能
4)補充維護多個子表的功能
5)這里子表展示的列表內(nèi)容, 取得商品表配置,商品日期展示的文本輸入框,應該調(diào)整為日期選擇框
6)配置為所見即所得,考慮結(jié)合表單生成