From c2cf0a2b83b1890cfb5a3aea1a8f95b83ef29f4a Mon Sep 17 00:00:00 2001 From: shicf <shi_chongfu@163.com> Date: 星期六, 31 五月 2025 10:48:17 +0800 Subject: [PATCH] 添加允许get请求的地址配置 --- doc/系统设计 | 1016 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 1,016 insertions(+), 0 deletions(-) diff --git "a/doc/\347\263\273\347\273\237\350\256\276\350\256\241" "b/doc/\347\263\273\347\273\237\350\256\276\350\256\241" new file mode 100644 index 0000000..625af50 --- /dev/null +++ "b/doc/\347\263\273\347\273\237\350\256\276\350\256\241" @@ -0,0 +1,1016 @@ +锘跨増鏈帶鍒讹細 + 褰撳墠浜у搧鐗堟湰1.0.0 + 琛嶇敓椤圭洰鐗堟湰 + 1.1.0 picc锛堢坏闃充汉淇濓級 + 1.2.0 xn + 璇︾粏瑙i噴 + 锛�1锛夌洰鍓嶇殑鐗堟湰鍙峰叡鏈�3绾э紝鏍囧噯鐗堟寜鐓�1.0.0 + 锛�2锛夌涓�浣嶄綔涓轰骇鍝佸ぇ鐗堟湰 + 锛�3锛夌浜屼綅浣滀负瀵瑰簲椤圭洰鐨勭増鏈� + 锛�4锛夌涓変綅浣滀负灏忕増鏈崌绾� + 锛�5锛変緥濡傦紝褰撳墠鐗堟湰涓�1.0.0锛岀敱璇ョ増鏈鐢熺殑A椤圭洰锛屽垯A椤圭洰鐗堟湰涓�1.1.0锛涚户缁鐢熺殑B椤圭洰锛岀増鏈负1.2.0锛涜嫢鏄疉椤圭洰鍗囩骇锛屽垯鍙互灏嗙増鏈洿鏂颁负1.1.1銆� + 锛�6锛変絾鍑¢」鐩崰鐢ㄤ箣鍚庯紝璇ユ暟瀛楀氨涓�鐩村綊璇ラ」鐩娇鐢� + 锛�7锛夊綋浜у搧鐗堟湰鍗囩骇鍒�2.0.0涔嬪悗锛岃鐢熺殑椤圭洰鐗堟湰鍒欎负2.x.0 + +1.鏁版嵁婧� + 蹇呴』閰嶇疆榛樿鐨勬暟鎹簮锛屽悕绉板繀椤讳负default,瑙乤pplication.properties + sourceName=default +2.琛ㄨ璁� + id瀛楁: 绫诲瀷=bigint 锛岄暱搴�11 + uuid瀛楁銆乽uid寮曠敤瀛楁锛氾紝闀垮害閮芥槸80 + 瀛楁绫诲瀷闄や簡閫氱敤String...澶栵紝杩樻湁涓�涓被鍨�:parentuuid,鐢ㄦ瀛楁琛ㄧず涓诲瓙琛ㄧ殑鍏崇郴锛� + 鍚屾椂杩樺繀椤婚厤鍏宠仈鐨勭埗琛ㄥ悕绉帮紝鍚屼竴涓叧鑱旂埗琛紝鍙兘閰嶄竴涓猵arentuuid绫诲瀷鐨勫瓧娈碉紝濡傛灉鏄櫘閫氫富澶栭敭鍏宠仈锛屽氨涓嶇敤parentuuid + 姣斿锛歜utton琛� 鐨勫瓧娈靛畾涔夛紝鐖惰〃function + 瀛楁鍚� 瀛楁绫诲瀷 鍏宠仈涓昏〃 + id + uuid + ...... + function_uuid parentuuid mrbase_sys_datamodel_table(淇濆瓨琛ㄧ殑uuid锛屾樉绀鸿〃鐨勫悕绉帮紝榛樿鍏宠仈涓昏〃鐨剈uid) + 瀛楁鐨勯暱搴︿负涓嬫媺閫夋嫨锛屾牴鎹笉鍚岀殑鏁版嵁绫诲瀷锛屽畾涔変笉鍚岀殑闀垮害閫夐」锛屽锛�10銆�20銆�50銆�100绛� + + 瀛楁绫诲瀷锛� + 闄ゆ爣鍑嗙殑string datetime int double ,杩樻湁鐗规畩锛歱arentuuid(涓诲瓙琛ㄥ叧绯伙紝璁板綍鐖惰〃uuid)銆乧ode(缂栫爜瀛楁 000-000-002)銆乻erialNumber(GXD201209020001) + 瀛楁绫诲瀷=parentuuid鏃讹紝蹇呴』field_relation_table瀛楁濉啓鐖惰〃鐨剈uid鍚﹀垯涔熶笉鑳戒綔涓轰富瀛愯〃淇濆瓨 + + 鎵�鏈夌被鍨嬶細string銆乮nt銆乶umber(灏忔暟)銆乨atetime銆乸arentuuid銆乧ode銆乻erialNumber銆乮dcard銆乽rl銆乮p銆乵ac銆乪mail銆乽serid銆乷rgUuid銆乫ile銆乫lowStatus銆乼able_name + +3.缂撳瓨鏁版嵁 + * 缂撳瓨閰嶇疆琛細SYS_CACHE_CONFIG + * 瀛楁锛欼D銆乽uid銆乧ache_name銆乀ABLENAME(S200)銆丆ACHEFIELD(鍒嗙骇缂撳瓨瀛楁锛岄�楀彿鍒嗛殧),FIELDS(S4000,瀛楁鍚嶏紝閫楀彿鍒嗛殧)銆乫ilter(S4000)銆佸娉ㄨ鏄�.... + * cache_name:鍞竴 + * 甯哥敤鏁版嵁銆佸熀纭�鏁版嵁缂撳瓨 + * 閫氱敤缂撳瓨锛氶�氳繃閰嶇疆琛ㄣ�佸瓧娈碉紙澶氫釜锛夈�佹煡璇㈡潯浠舵潵鎸囧畾瑕佺紦瀛樼殑鏁版嵁鍐呭锛岄噰鐢∕ap灏佽锛宬ey=cache_name锛屽��=DataTableEntity + * 鐗规畩缂撳瓨锛氬崟鐙啓鏂规硶鍔犺浇鏁版嵁骞跺鐞嗘暟鎹紝灏佽鍚岄�氱敤缂撳瓨涓�鏍� + * 鏀寔鍒嗙粍缂撳瓨锛屾棤闄愮骇,鍒嗙粍瀛楁蹇呴』鍦ㄧ紦瀛樺瓧娈甸噷闈� + 鏀寔鍔犺浇瀛愯〃鏁版嵁 + * 缂撳瓨鏁版嵁锛屽瓨鍦ㄦ暟鎹笉涓�鑷撮棶棰橈紝褰撲袱涓繘绋嬪悓鏃跺涓�涓〃鐨勭紦瀛樿繘琛岃鍜屽啓鏃�--------------- + * 鏂板銆佷慨鏀广�佸垹闄ょ紦瀛樿〃鏃讹紝瑕佹洿鏂扮紦瀛�------------------------------------- + * 鍒濆鏁版嵁 + table_name=mrbase_sys_datamodel_table + table_name=mrbase_sys_datamodel_field | cache_fields=* | group_field=table_uuid + table_name=mrbase_sys_datamodel_field | cache_fields=* | filter=field_type='parentUuid' + table_name=mrbase_function_permission | cache_fields=role_uuid,function_uuid,button_uuid | group_field=role_uuid + +*缂撳瓨鍒锋柊锛屾暟鎹柊澧炪�佷慨鏀广�佸垹闄ゆ椂閮戒細鍒锋柊瀵瑰簲鐨勮琛ㄧ殑鎵�鏈夌紦瀛橀厤缃紝杩樺彲浠ヨ皟鑷畾涔夌殑浠g爜杩涜鍒锋柊锛坆ean_name銆乥ean_method(String uuid) 鍙傛暟鏄搷浣滄暟鎹殑uuid ,bean_method() 鍚姩鏃朵細璋冩鏂规硶锛屽繀椤诲畾涔変袱涓柟娉� 锛� +*缂撳瓨鐨勪娇鐢ㄦ煡璇㈡柟娉曪細 + 鏈夊垎缁勶紝鍒嗙粍瀛楁锛屽搴斿�� + 瀵瑰簲缂撳瓨涓搴旂殑鍒嗙粍瀛楁锛屾暣涓弬鏁颁负杩欙紝琛ㄧず娌℃湁鍒嗙粍锛屽彧鑳藉悗闈笉涓虹┖锛屼笉鑳藉墠闈负绌猴紝渚嬪锛� + 缂撳瓨鐨勫垎缁勫瓧娈碉細field1銆乫ield2銆乫ield3 ,鑾峰彇鏃跺弬鏁板�硷紝鍙兘涓夌鎯呭喌锛歿value1,null,null}銆亄value1,value2,null}銆亄value1,value2,value2}, + 涓嶈兘鍑虹幇 {value1,null,value3} 銆亄null,null,value3} 銆亄null,value2,value3} 绛夋儏鍐� + 濡傦細 + DataTableEntity dt=DataPoolCacheImpl.getInstance().getCacheData("鎵�鏈夊瓧娈典俊鎭苟鎸夎〃鍒嗙粍",new String[] {tableUuid}); + 鏈垎缁勶細 + DataTableEntity table=DataPoolCacheImpl.getInstance().getCacheData("鎵�鏈夎〃淇℃伅"); + + 锛�1锛塺edis宸ュ叿绫� + 閰嶇疆鏂囦欢锛歭x-base-server\lx-base-server-cache\src\main\resource\cache.properties + 绫伙細com.lx.base.cache.util.RedisUtil + 浠嬬粛锛� + 鍏ㄩ儴涓洪潤鎬佹柟娉曪紝鏃犻渶娉ㄥ叆锛屽寘鍚簡瀵筴ey浠ュ強5绉嶅熀鏈被鍨嬶紙string,hash,list,set,zset锛夌殑鎿嶄綔锛屾柟娉曞悕绉扮粡杩囩畝鍖栧拰褰掍竴鍖栵紝涓庡師鐢熷懡浠ょ◢鏈変笉鍚岋紱 + 鎸夌収key,string,hash,list,set,zset鐨勯『搴忔帓鍒楁柟娉曪紝涓嶅悓绫诲瀷闂村瓨鍦ㄦ敞閲婂垎鍓诧紝鑻ユ槸鍚庣画鏈夋柊澧烇紝搴斿綋鍐欏湪瀵瑰簲鐨勮寖鍥村唴锛� + 鏂板/淇敼绫荤殑鏂规硶浠dd/set寮�澶达紝鍚庨潰绱ц窡绫诲瀷锛屾渶鍚庤窡鏂规硶鐗规�э紱 + 鑾峰彇绫绘柟娉曚互get寮�澶达紝鍚庨潰绱ц窡绫诲瀷锛屾渶鍚庤窡鏂规硶鐗规�э紱锛堢壒娈婄殑锛屾眰鍙栦氦宸苟闆嗗苟瀛樺偍杩斿洖鐨勬槸涓暟锛夛紱 + 鍒ゅ畾鏄惁瀛樺湪涓篹xists寮�澶达紝鍚庨潰绱ц窡绫诲瀷锛� + 鍒犻櫎绫绘柟娉曚互del寮�澶达紝鍚庨潰绱ц窡绫诲瀷锛屾渶鍚庤窡鏂规硶鐗规�э紱 + 鐩稿鐗规畩鐨勫懡鍚�-clearOutTime锛堢Щ闄よ秴鏃舵椂闂达級锛宺eplaceListAimValue锛坙ist-鏇挎崲鎸囧畾涓嬫爣鐨勫�硷級锛宮oveSet锛坰et-绉诲姩鍊煎埌鎸囧畾key鐨剆et涓級 + 娴嬭瘯绫伙細com.lx.base.cache.TestRedisUtil + 浠嬬粛锛� + 闄ょ涓�涓负鑾峰彇鏁版嵁鏂规硶澶栵紝鍚庨潰鍧囦负鍗曞厓娴嬭瘯锛屽彲浠ュ湪杩欓噷鎵惧埌瀵瑰簲鐨勭ず渚嬩唬鐮侊紱 + 闄ら儴鍒嗙被杞崲鐨勯噸杞芥柟娉曟病鏈夊啓鍗曞厓娴嬭瘯锛屾湁浜涢噸杞界殑鏂规硶鏀惧湪涓�涓崟鍏冩祴璇曞唴锛屽熀纭�鐨勮幏鍙栫被鏂规硶娌℃湁鍗曠嫭鍐欏崟鍏冩祴璇曪紱 + 姣忎竴涓崟鍏冩祴璇曞潎宸查�氳繃锛屼絾鏄竴娆℃�у叏寮�鏃讹紝鏈湴鍗″湪绾︿竴鍗婂锛� + 鍗曞厓娴嬭瘯鐨勬柟娉曞悕涓簍est + 瀹為檯鏂规硶鍚嶏紙棣栧瓧姣嶈浆澶у啓锛夛紱 + 闄edisUtil鏂板鏂规硶鎴栬�呮祴璇曟柟娉曞瓨鍦ㄩ敊璇紝灏介噺涓嶆洿鏂拌绫伙紝鏇存柊鏃讹紝闇�瑕佹敞閲婃墍鏈夊崟鍏冩祴璇曟柟娉曪紱 + +4.json鏁版嵁涓紝瀛楁~type~锛屼笉鏄瓧娈靛悕锛屾槸瀛愯〃鏁版嵁鍦ㄤ慨鏀规椂鍊欑殑鎿嶄綔绫诲瀷锛屾柊澧炪�佷慨鏀广�佸垹闄� + 鏂板锛寀uid娌℃湁鍊硷紝 鍙兘涓嶅啓~type~=xxx + 淇敼,uuid鏈夊�硷紝 鍙兘涓嶅啓~type~=xxx + 鍙湁鍒犻櫎鏃剁敤杩欎釜瀛楁鏉ュ尯鍒�,鍗硚type~=del + 淇敼涓诲瓙琛ㄦ暟鎹� 涓昏〃蹇呴』鏈塽uid瀛楁锛屽瓙琛ㄦ暟鎹腑涓変釜绉嶆儏鍐碉細鏂板 ~type~="",uuid="",淇敼锛殈type~="",uuid="涓嶄负绌�"锛屽垹闄わ細~type~="del",uuid="涓嶄负绌�" + 瀛愯〃鍒楁暟瑕佷竴鑷� + +5.鎵�鏈夊疄浣撶被鍨嬶紝閮藉繀椤绘湁涓瓧娈� table_name锛屽瓨琛ㄥ悕绉� ,鍙互瀹炰綋绫讳腑瀹氫箟鎴愬父閲� + +6.API璇锋眰鍙傛暟 + API璇锋眰json鐨勫弬鏁板悕绉帮細formData锛� Token鍙傛暟灏佽鍦╦son涓紝鍚嶇О锛歛ccessToken + RequestParameterEntity 灏佽鎵�鏈夊弬鏁拌姹傦紝璇︾粏瑙佽绫� + Object bean=request.getAttribute("requestPara"); + String accessToken = null; + if(bean !=null) { + RequestParameterEntity reqp=(RequestParameterEntity)bean; + accessToken=reqp.getToken(); + } + -----鑾峰彇琛ㄥ崟鏁版嵁------ + public FieldSetEntity getFormData() { + return formData; + } + +7.鎵�鏈塩ontroller 蹇呴』缁ф壙 AbstractBaseController + 淇敼銆佸垹闄� 杩斿洖 + OK() + 鐧诲綍杩斿洖 + OK_login + 鏂板杩斿洖 + OK_Add(String uuid) + 鏌ヨ杩斿洖 + OK_List(FieldSetEntity fs) + OK_List(DataTableEntity dt) + + 閫氱敤閿欒杩斿洖锛� 鏂板銆佷慨鏀广�佸垹闄ゃ�佹煡璇㈠け璐� + public String error(String code,String msg ) + +9.鎵�鏈塻ervice 蹇呴』缁ф壙 AbstractBaseService + /** + * 鏁版嵁鏌ヨ ,spring 娉ㄥ叆 + */ + @Autowired + public BaseDao baseDao = null; + +10.~table~ 鍙傛暟鍦ㄦ柊澧炪�佷慨鏀规帴鍙f椂蹇呴』鏀惧埌鏁版嵁鐨勫墠闈紝浠ユ鏉ラ鍏堣幏鍙栧埌 + +13.楂樼骇鍙傜収涓嬫媺妗嗘帴鍙f暟鎹� +{ + "code":200, + "~table~":"xxxxx", + "data":[{"value_field":"xxxx","view_fields":"xxxx","f1":"xxx","f2":"xxxx","f3":"xxx","code":"xxx"} + ,{"value_field":"xxxx","view_fields":"xxxx","f1":"xxx","f2":"xxxx","f3":"xxx","code":"xxx"}], + "pagesize":20, + "cpage":4, + "totalCount":343, + "status":"success", + "msg":"鎴愬姛" +} +鏅�氫笅鎷夋鎺ュ彛 +{ + "code":200, + "~table~":"mrbase_sys_dict", + "data":[{"dict_value":"xxxx","dict_label":"xxxx"} + ,{"dict_value":"xxxx","dict_label":"xxxx"}], + "pagesize":0, + "cpage":0, + "totalCount":0, + "status":"success", + "msg":"鎴愬姛" +} + +14.涓嬫媺鍙傜収閰嶇疆锛屼繚瀛樻椂select_fields蹇呴』澶勭悊鐢熸垚锛寁alue_field+" value_field,"+view_fields+" view_fields "+prompt_fieldxxxxx + prompt_fieldxxxxx,鏄敱prompt_field瀛楁澶勭悊鑰屾垚锛屽锛歠ield1,field2,field3 ,澶勭悊鍚庡彉鎴� ,field1 f1,field2 f2,field3 f3,org_level_code code + 鏈�鍚巗elect_fields=xxxx value_field,xxxx view_fields,field1 f1,field2 f2,field3 f3,鍏朵腑 value_field銆乿iew_fields銆乫1銆乫2銆乫3 鏄浐瀹氬瓧娈� + 鍏朵腑filter瀛楁锛屾槸閰嶇疆浜哄憳鎵嬪啓鐨剆ql鏉′欢锛屽瓧绗︿覆涓彲鑳介厤缃姩鎬佸弬鏁帮紝鏍煎紡涓猴細~鍙傛暟鍚嶇О~锛屽墠绔皟鐢ㄦ鍙傜収鏃讹紝涔熷繀椤讳紶瀵瑰簲鐨勫弬鏁板�� 锛屼緥濡傦細 + 閰嶇疆filter: uuid=~cust_uuid~ and name like '%~cust_name~%' + 鍓嶇鍙傛暟锛歿cust_uuid="sdgeasge",cust_name="涓浗"} + + filter瀛楁涓繕鍙互閰嶇疆绯荤粺鍙橀噺锛屽锛歩s_used=1 and uuid in (select language_uuid from mrbase_sys_company_language where org_level_uuid='{{COMPANY_UUID}}') + {{COMPANY_UUID}}:褰撳墠鐧诲綍浜哄憳鐨勫叕鍙窾UID. + + display_type锛� 1:鍒楄〃 2:鏍戠粨鏋勶紝褰撶瓑浜�2琛ㄧず姝ゅ弬鐓ф暟鎹樉绀烘爲鍨嬶紝鍚屾椂 code_field銆乸arent_code_field 銆乨elay_load瑕佸繀濉紝 + code_field锛氫笂涓嬬骇鍏崇郴琛ㄤ腑鐨� 缂栫爜瀛楁锛�001锛屾瀛楁涔熷鐞嗗悗鏀惧埌select_fields瀛楁涓幓锛氱敓鎴� xxxxx code,姝ゅ墠绔湪鐐瑰嚮涓�涓妭鐐规椂锛屽彇code鐨勫�间紶缁欐帴鍙o紝鎺ヨ繑鍥炲叾涓嬮潰鐨勫瓙鏁版嵁 + parent_code_field锛氱埗缂栫爜瀛楁锛�001 + org_filter_field锛氭牴鎹〃涓殑鍏徃瀛楁杩涜鏁版嵁杩囨护锛屽涓互閫楀彿鍒嗛殧 + usr_filter_field锛氫汉鍛樻暟鎹繃婊ゆ潯浠跺瓧娈碉紝蹇呴』鏄暟鎹簮琛ㄤ腑鐨勪汉鍛樺瓧娈碉紝鍙互澶氫釜锛岄�楀彿鍒嗛殧锛� + +14.1 涓嬫媺鍙傜収(楂樼骇鍙傜収銆佹暟鎹瓧鍏�)鍦ㄥ垪琛ㄤ腑鏄剧ず锛� + 閰嶇疆mrbase_sys_datamodel_field.field_reference瀛楁锛岄厤鍙傜収鍚嶇О鎴栨暟鎹瓧鍏稿悕绉帮紝濡傛灉鏄暟鎹瓧鍏稿悕绉板姞涔﹀悕鍙锋嫭璧锋潵,濡傦細銆奼ender銆� + 鍦ㄥ垪琛ㄧ殑鏌ヨ鏂规硶锛屽鍒楄〃鏁版嵁杩涜灏佽涓�娆★細baseDao.loadPromptData(dt); + +15.token鍙傛暟 token=xxxxxxxx,鏀惧埌json鏁版嵁涓紝鏁翠釜json浣滀负涓�涓弬鏁� formData={"token"="xxxxxxxx",xxxxxxxxx} + +16.鍒涘缓鍗曚綅绠$悊鍛橈紝浣跨敤mrbase_sys_user琛紝is_manamger榛樿涓烘槸 + 鍒涘缓绠$悊鍛樻椂锛屽垎閰嶏紝鍙兘缁欎笅绾х鐞嗗憳鍒嗛厤鑷凡鑼冨洿鍐呯殑鏉冮檺锛屽垵濮嬩竴涓秴绾х鐞嗗憳锛屽垵濮嬩竴涓秴绾х鐞嗗憳瑙掕壊銆傚垎缁欒秴绾х鍛� + 鍒涘缓鍗曚綅绠$悊鍛橈紝鍙兘鍒涘缓涓嬬骇鍗曚綅鐨勭鐞嗗憳锛屽彲浠ュ叧鑱斿涓笅绾у崟浣嶏紝瀵规瘡涓崟浣嶈繘琛屽崟鐙殑鏉冮檺璁剧疆锛屽繀椤诲厛閫夎鑹叉潈闄愶紝 + 鍔熻兘涓爣璇嗘槸鍚︽槸鍚庡彴绠$悊鍔熻兘 锛岀鐞嗗憳鑷韩鐨勬潈闄愬繀椤绘槸鍚庡彴鍔熻兘锛屼负鏅�氫汉鍛樺垎閰嶆潈闄愭椂锛屽繀椤绘槸闈炲悗鍙扮鐞嗗姛鑳� +17.鍔熻兘涓庢寜閽產pi鍚堟垚涓�涓紝閲囩敤涓诲瓙琛ㄦ柟寮忔搷浣� +18.寮�鍙戝姛鑳藉弬鐓ystem宸ョ▼涓殑浠g爜 +19.鑾峰彇application涓殑閰嶇疆鍙傛暟锛屼娇鐢細 + String path = Global.getSystemConfig("upload.file.path", "d:"); +20.寮�鍙戞ā寮� + 涓�涓礋璐d竴涓姛鑳芥ā鍧楃殑寮�鍙戯紝鍖呮嫭鎺ュ彛灞傘�佹湇鍔″眰 +20.鍖呭悕瑙勫垯锛屼互com.lx.+妯″潡鍚嶇О+.controller(service銆乪ntity) + +21.鍏ㄩ儴鍦╨x__Server涓嬮潰鍒涘缓maven妯″潡锛屼笉鏄痬aven宸ョ▼ + <groupId>com.lx</groupId> 涓嶇敤鏀� + <artifactId>-server</artifactId> 浠ュ紑澶达紝鍚庨潰鏄ā鍧楀悕绉� + <version>1.0.0-SNAPSHOT</version> 涓嶇敤鏀� +22.濡傛灉瑕佸紩鐢╦ar锛屽崟鐙湪pom涓坊鍔犱緷璧栵紝鍐呴儴宸ョ▼ 涔熸槸杩欎箞鐩稿紩 +23.spring bean寮曠敤 +private static MenuService menuService = SpringContextHolder.getBean(MenuService.class); + +24.鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛 + SystemUser user = SpringMVCContextHolder.getCurrentUser(); +25.鑾峰彇褰撳墠request銆乺eponse銆乻ession绛� + SpringMVCContextHolder.getHttpxxxx() + +26.瀵规暟鎹殑鎿嶄綔锛屽彲浠ュ弬鑰冧唬鐮侊細JsonUtil锛屽浣曠敓鎴愮殑 FieldSetEnttiy,濡備綍鍦╢s涓幏鍙栧瓙琛紙DataTableEntity锛夛紝濡備綍鑾峰彇fs涓殑瀛楁鍊硷紝濡備綍鍦―ataTableEntity涓幏鍙栦竴鏉¤褰曪紝鍜屼竴鏉¤褰曚腑鐨勫瓧娈靛�� + +27.瀵逛竴鏉¤褰曠殑璇诲啓鎿嶄綔 + +28.瀵规暟鎹泦鐨勮鍐欐搷浣� + 浠庣紦瀛樹腑鑾峰彇鍒版暟鎹泦 + DataTableEntity dt=DataPoolCacheImpl.getInstance().getCacheData("鎵�鏈夊瓧娈典俊鎭苟鎸夎〃鍒嗙粍"); + + DataTableEntity table=DataPoolCacheImpl.getInstance().getCacheData("mrbase_sys_datamodel_table"); + String tableUuid=null; + String subTableUUid=null; + 寰幆姣忎竴鏉℃暟鎹� + for(int i=0;i<table.getRows();i++) { + if(tableUuid != null && subTableUUid != null ) + break; + 鑾峰彇涓�鏉¤褰曚腑鐨勪竴涓瓧娈靛�� + if(tableName.equals(table.getString(i,"table_name"))){ + tableUuid=table.getString(i, "uuid"); + } + if(subTableName.equals(table.getString(i,"table_name"))){ + subTableUUid=table.getString(i, "uuid"); + } + } +29.浜嬪姟鎿嶄綔 + 鎵�鏈夋柊澧炪�佷慨鏀广�佸垹闄ら兘瑕佸仛浜嬪姟 + 鐞嗚涓婁簨鍔″缓绔嬪湪Service灞傦紝涓嶅湪controller灞� + 瀹炵幇鏂瑰紡锛� + ---------------------------------------------------------------- + service绫讳腑瑕佸仛浜嬪姟鐨勬柟娉曟坊鍔犳敞瑙o細@Transactional锛屽涓嬶細 + /*** + * 鏂板瀹㈡埛鏁版嵁浜嬪姟澶勭悊(骞朵笖鍦ㄧ粍缁囨灦鏋勪腑鏂板涓�鏉℃渶椤剁骇鐨勬暟鎹�) + * @param fse 瀹㈡埛鍗曚綅鏁版嵁 + * @return + * @throws BaseException + */ + @Transactional + public String addClient(FieldSetEntity fse) throws BaseException{ + ----------------------------------------------------------------- + 娣诲姞service绫荤殑鎺ュ彛绫伙紝鎺ュ彛绫诲繀椤诲畾涔夎鍋氫簨鍔$殑鏂规硶 + controller蹇呴』缁ф壙AbstractBaseController + ----------------------------------------------------------------- + controller涓殑鍏蜂綋璋冪敤锛� + 鎶� systemClientsService.addClient(fse); 鏀规垚浠ヤ笅浠g爜 + + /**浜嬪姟澶勭悊瀹炵幇**/ + ISystemClientsService service=(ISystemClientsService)getProxyInstance(systemClientsService); + String uuid = service.addClient(fse); + + ISystemClientsService 锛歴ervice绫荤殑鎺ュ彛绫� + systemClientsService锛歴pring娉ㄥ叆鐨剆ervice绫� + ------------------------------------------------------------------- + +30.鏌ヨ鍒楄〃涓寘鍚瓙琛ㄦ暟鎹� + /** + * + * @param tableName + * @param filter + * @param para + * @param fields + * @param orderby + * @param psize + * @param pindex + * @param isMoreSubData 鏄惁鍚屾椂鏌ヨ鎵�鏈夊瓙琛ㄧ殑瀵瑰簲鏁版嵁 + * @return + * @throws BaseException + */ + public DataTableEntity listTable(String tableName,String filter,Object para[],String fields[],String orderby, int psize,int pindex,boolean isMoreSubData) + + + /** + * @ 鏌ヨ鍒楄〃鏁版嵁鐨勬墍鏈夊瓙琛ㄦ暟鎹� String 1=姣忔潯璁板綍uuid锛孲tring 2= 瀛愯〃鍚嶇О + * @param uuids 閫楀彿鍒嗛殧 鐖跺垪琛╱uids + * @param table_name + * @return + */ + public Map <String,Map<String,DataTableEntity>> listSubData(String uuids,String tableName ) throws BaseException; +31.鍏充簬闄勪欢鑾峰彇鎿嶄綔 + RequestParameterEntity.getFormData().getString(闄勪欢瀛楁);//涓婁紶鐨勫師濮嬫枃浠跺悕锛屽涓互閫楀彿鍒嗛殧 + RequestParameterEntity.getFiles().get(鍘熷鏂囦欢鍚�); //瀵瑰簲鐨勬枃浠讹紝鏂囦欢鍚嶏細uuid+"_"+鏂囦欢鐨勫師濮嬪悕绉� 锛屼竴娆″彧鑳借幏鍙栦竴涓� + +32.鍏充簬鎵嬪啓sql璇彞鏌ヨ鍜屽垎椤电殑瑕佹眰 + select TIMESTAMPDIFF(YEAR,aciwe.start_datetime,aciwe.end_datetime) AS start_datetime from a,b where f1=f2 鎴� a left join b on f1=f2 + 瀛楁鍒悕蹇呴』鏄〃涓殑瀛楁锛屽惁鍒欐棤娉曡幏鍙栧埌瀵瑰簲瀛楁鐨勮〃鍚嶅拰瀛楁淇℃伅瀹氫箟锛屽锛� + start_datetime 蹇呴』鏄� a琛ㄦ垨b琛ㄤ腑鐨勪竴涓瓧娈� + + 澶氳〃鍏宠仈鏌ヨ锛岃〃瀹氫箟锛歛,b 鎴� a left join b on f1=f2 鏁翠釜鍋氫负琛� + 鏉′欢瀹氫箟锛寃here 鍚庨潰 锛� f1=f2 + 33.濡傛煡sql璇彞涓病鏈塽uid瀛楁锛屾棤娉曟煡璇㈠嚭瀛愯〃 + + 34.绯荤粺閿欒璇存槑 + + 绯荤粺閿欒鍒嗕负涓ょ锛氫富鍔ㄦ姏鍑洪敊璇�佹崟鑾烽敊璇� + 涓诲姩鎶涘嚭锛� + /** + * 鏋勯�犲嚱鏁�---涓诲姩鎶涘嚭鐨勯敊璇� + * @param code 閿欒鐮佷唬鐮� + * @param error 閿欒淇℃伅 + * @param c 閿欒鍙戠敓鐨勭被 + * @param method 閿欒鍙戠敓鏂规硶 + */ + public BaseException(String code,String error,Class c,String method); + + 鎹曡幏閿欒: + /** + * 鏋勯�犲嚱鏁帮紝璁板綍閿欒鍒板簱---鎹曡幏鐨勯敊璇� + * @param code 閿欒鐮佷唬鐮� + * @param exc 鎹曡幏鐨勯敊璇� + */ + public BaseException(String code,String error,Class c,String method,Exception sysExc) + +35.licese鏀寔 + 纭欢淇℃伅璇诲彇搴撴枃浠讹紝涓嬭浇鍦板潃锛歨ttp://sigar.hyperic.com/ + windows鐗� mac鐗� linux鐗� + sigar-x86-winnt.dll xxxxx xxxxxxxxxx + sigar-amd64-winnt.dll xxxxxx xxxxxxxxx + 鍚屾椂灏嗗搴旂殑dll鏂囦欢鎴栬�卻o鏂囦欢娣诲姞鍒扮郴缁熺洰褰曘�備緥濡傦細windows涓嬫妸sigar-x86-winnt.dll娣诲姞鍒癱:\WINDOWS\system32鎴栬�卝dk鐨刡in鐩綍銆� + +36.鍏充簬閫氱敤缂栫爜 001-002-003 + 琛ㄤ腑瀛樻斁缂栫爜鐨勫瓧娈碉紝蹇呴』鍦╩rbase_sys_datamodel_field琛ㄤ腑璇ュ瓧娈电殑field_type=code + 鐣岄潰璋冪敤鎺ュ彛鑾峰彇缂栫爜锛�/api/common/createCode锛岃娴嬭瘯绫籆odeTest + 濡傛灉鐣岄潰娌℃湁璋冪敤鎺ュ彛鐢熸垚缂栫爜锛屽垯鍙互鍦ㄤ笟鍔ontroller涓彲璋冧互涓嬩唬鐮佽幏鍙� + String code=codeService.createCode(fse.getString("table_name"), fse.getString("field_name"), fse.getString("parentCode")==null?"":fse.getString("parentCode")); + 鍦ㄦ柊澧炵殑controller涓皟鐢紝鍦ㄥ簳灞侱ao涓殑淇濆瓨鏂规硶涓幏鍙栬幏鍙栫殑涓存椂缂栫爜鍘婚獙璇佹槸鍚﹁鍗犵敤锛屽崰鐢ㄥ垯閲嶆柊鐢熸垚锛屼繚璇佸敮涓�鎬� + 杩斿洖json鍊间腑code鐨勫�煎嵆涓虹敓鎴愮殑缂栫爜鍊� + +37.閫氱敤鍙傛暟楠岃瘉銆佹暟鎹繚瀛橀獙璇� + 鍙傛暟楠岃瘉锛歝om.lx..module.sys.config.RegistValidate绫� + 鍦╮egistValidateParameter鏂规硶涓坊鍔犻獙璇佷唬鐮侊紝濡傦細 + DataValidateInterceptor.registValidatPara("/api/prompt/findPrompt","client_uuid",VerifyRegularUtil.VALIDATE_REQUIRED); + 鍙傛暟1锛氭帴鍙� + 鍙傛暟2锛氶獙璇佸瓧娈� + 鍙傛暟3锛氶獙璇佺被鍨� + 鏁版嵁淇濆瓨楠岃瘉锛屽湪core鍖呬腑鐨刣ao涓嚜鍔ㄦ牴鎹暟鎹〃瀛楁鐨勯厤缃獙璇侊紝閫氬父涓嶇敤閰嶏紝浣嗗鏋滄湁鍏跺畠楠岃瘉锛屼篃鍙互鍦ㄤ繚瀛樺拰淇敼鎺ュ彛涓厤缃紝鍚﹀垯淇濆瓨鍜屼慨鏀规帴鍙d笉鐢ㄩ厤 + 鏍规嵁瀛楁绫诲瀷杩涜楠岃瘉锛屽锛氬瓧娈垫槸mail锛宮rbase_sys_datamodel_field.field_type=email,鐜板彧鏀寔锛� + int銆乶umber(灏忔暟)銆乮dcard銆乽rl銆乮p銆乵ac銆乨atetime銆乴ength銆乪mail + +38.properties閰嶇疆鏂囦欢鍙傛暟鑾峰彇 + 璋冪敤锛� + Global.getPropertyToBoolean("druid.datasource.testOnBorrow", "false") + 鏂规硶锛� + /** + * 鑾峰彇閰嶇疆,濡傛灉鑾峰彇涓嶅埌閰嶇疆锛屽垯浼犻粯璁ゅ�� + * @key key鍊� + * @defaultValue 涓虹┖鏃剁殑榛樿鍊� + */ + public static String getSystemConfig(String key,String defaultValue) + public static Integer getPropertyToInteger(String key, String defValue) + public static Long getPropertyToLong(String key, String defValue) + public static Boolean getPropertyToBoolean(String key, String defValue) +39.鏁版嵁鏉冮檺 + 鍦ㄥ垪琛ㄤ腑娣诲姞鏁版嵁鏉冮檺鏉′欢鐨勮幏鍙栵紝娣诲姞鍒板垪琛ㄦ煡璇㈡柟娉曚腑銆� + /** + * 鑾峰彇浜哄憳鐨勬暟鎹潈闄愶紝鎬诲叆鍙� 锛屼笉杩囨护浜哄憳锛屽彧杩囨护鍏徃 + * 鎸囧畾瑕佽繃婊ょ殑 鍏徃瀛楁 浣跨敤榛樿鍏徃瀛楁杩涜杩囨护-org_level_uuid + * @return + */ + public String getDataFilter(); + /** + * 鑾峰彇浜哄憳鐨勬暟鎹潈闄愶紝鎬诲叆鍙� 锛屼笉杩囨护浜哄憳锛屽彧杩囨护鍏徃 + * @param org_fields 鎸囧畾瑕佽繃婊ょ殑鍏徃瀛楁锛屼负绌哄垯锛屼娇鐢ㄩ粯璁ゅ叕鍙稿瓧娈佃繘琛岃繃婊�-org_level_uuid + * @return + */ + public String getDataFilter(String org_fields) + /** + * 鑾峰彇浜哄憳鐨勬暟鎹潈闄愶紝鎬诲叆鍙� 锛岃繃婊ゆ寚瀹氫汉鍛樺瓧娈碉紝浣跨敤榛樿鍏徃瀛楁杩涜杩囨护-org_level_uuid + * @tableName 浜哄憳杩囨护鐨勮〃 + * @param staff_fields + * @return + */ + public String getDataFilter(String tableName,String staff_fields) + /** + * 鑾峰彇浜哄憳鐨勬暟鎹潈闄愶紝鎬诲叆鍙� ,浜哄憳 鍏徃鍚屾椂杩囨护 + * @param tableName 鎸囧畾鏄摢寮犺〃鐨勬暟鎹� 鏉冮檺杩囨护 + * @param staff_fields 鎸囧畾瑕佽繃婊ょ殑浜哄憳瀛楁 锛屼负绌哄垯锛屼笉鐢ㄤ汉鍛樿繃婊� + * @param org_fields 鎸囧畾瑕佽繃婊ょ殑 鍏徃瀛楁锛屼负绌哄垯锛屼娇鐢ㄩ粯璁ゅ叕鍙稿瓧娈佃繘琛岃繃婊�-org_level_uuid + * @return + */ + public String getDataFilter(String tableName,String staff_fields,String org_fields) + + 40.鍏充簬娴佹按鍙� + 鍙渶瑕佸湪閰嶇疆涓厤缃祦姘村彿,瑙佽〃mrbase_sys_swift_config + 琛ㄤ腑瀛樻斁娴佹按鍙风殑瀛楁锛屽繀椤诲湪mrbase_sys_datamodel_field琛ㄤ腑璇ュ瓧娈电殑field_type=serialNumber 锛岀ず渚嬭test琛� + 鐣岄潰璋冪敤鎺ュ彛鑾峰彇缂栫爜锛�/api/common/createSerialNumber锛岃娴嬭瘯绫籆odeTest锛屽繀浼犲弬鏁帮細serialNumberName锛屽搴旇〃娴佹按鍙烽厤缃〃涓殑swift_config_name瀛楁鍊� + 杩斿洖json鍊间腑serialNumber鐨勫�煎嵆涓虹敓鎴愮殑娴佹按鍙� + 濡傛灉鐣岄潰娌℃湁璋冪敤鎺ュ彛鐢熸垚缂栫爜锛屽垯鍙互鍦ㄤ笟鍔ontroller涓彲璋冧互涓嬩唬鐮佽幏鍙� + String serialNumber=serialNumberService.createSerialNumber(serialNumberName); + 鍦ㄦ柊澧炵殑controller涓皟鐢紝鍦ㄥ簳灞侱ao涓殑淇濆瓨鏂规硶涓幏鍙栬幏鍙栫殑涓存椂缂栫爜鍘婚獙璇佹槸鍚﹁鍗犵敤锛屽崰鐢ㄥ垯閲嶆柊鐢熸垚锛屼繚璇佸敮涓�鎬� + 鎺� + 閰嶇疆鏀寔鏍煎紡锛� + [YYYY]锛氬勾 + [MM] 锛氭湀 + [DD] 锛氭棩 + [COMPANY_NAME]锛氬叕鍙稿悕绉�,瀵瑰簲org_level_name + [COMPANY_CODE]锛氬叕鍙哥紪鐮� org_level_code + [DEPT_NAME]锛氶儴闂ㄥ悕绉皁rg_level_name + [DEPT_CODE]锛氶儴闂ㄧ紪鐮乷rg_level_code +41.鎺ュ彛绛惧悕璁よ瘉 + 绯荤粺鍙傛暟鏂囦欢涓彲閰嶇疆锛� + #鏄惁鍚敤鎺ュ彛绛惧悕璁よ瘉 + signature.isEnable=false + #鍦ㄥ惎鐢ㄦ帴鍙g鍚嶈璇佹椂锛屾帓闄ゆ寚瀹氭帴鍙f棤闇�绛惧悕璁よ瘉 + signature.exclude.path=/login,/logout,/relogin + #鎺ュ彛绛惧悕璁よ瘉鏈夋晥鏈燂紝鍗曚綅绉掞紝绛惧悕璁よ瘉鏈夋晥鏈�=绌烘垨0锛屽垯琛ㄧず涓嶉獙璇� + signature.expire=10 + ------------- + 浣跨敤MD5鍔犲瘑锛屽姞瀵嗗唴瀹癸細鍙傛暟formData鐨勫��+KEY(鍗曠嫭鎸囧畾) + 鍓嶇鍔犲瘑鍚庣殑瀛楃涓茶澶у啓锛歴ign=GEGSTLLSEGEL + formData涓鍖呭惈timestamp鏃堕棿鎴崇殑鍊硷紝鏍煎紡涓猴細yyyyMMddHHmmss +42.閫氱敤鍒犻櫎楠岃瘉 + 璋冪敤锛� + 妯″潡 system + 绫� SystemDeleteValidationService + 鏂规硶 public boolean deleteValidation(String tableName, String uuids,String delete_filter) throws BaseException { + 鍙傛暟璇存槑锛� + tableName鍒犻櫎鏁版嵁琛ㄨ〃鍚� + uuids瑕佸垹闄ゆ暟鎹殑uuid,澶氫釜鐢ㄩ�楀彿鍒嗛殧 + delete_filter鍒犻櫎鏉′欢 fields='name' + 杩斿洖璇存槑锛� + 楠岃瘉閫氳繃娌℃湁鍏宠仈浠讳綍鏁版嵁杩斿洖true + 鍙傛暟缂哄け杩斿洖false + 楠岃瘉娌¢�氳繃鍏宠仈浜嗗叾浠栬〃鏁版嵁鎶涘嚭寮傚父锛屽紓甯镐俊鎭腑鎻愮ず鍏宠仈鏁版嵁琛紝澶氫釜鐢ㄩ�楀彿鍒嗛殧 +43.鍥介檯鍖� + label: + 鐢ㄦ埛鐧诲綍鎴愬姛鍚庯紝璋冩帴鍙�: + /api/language/load-international-info/{version} + 鍔犺浇鎸囧畾瀹㈡埛绔�佺増鏈彿銆侀粯璁よ瑷�鐨勬墍鏈夊浗闄呭寲鏁版嵁 + 瀹㈡埛绔�佺増鏈彿銆侀粯璁よ瑷�鎺ュ彛鍙傛暟涓婁紶 + + value: + 1銆侀鍏堥厤缃〃銆佸瓧娈典负鍥介檯鍖栧瓧娈� + 2銆佸墠绔皟鎺ュ彛鑾峰彇鍝簺琛ㄦ湁鍝簺鍥介檯鍖栧瓧娈碉紝鍦ㄧ晫闈㈢殑涓搴斿厓绱犲悗闈㈡坊鍔犲湴鐞冨浘鏍囷紝鐐瑰浘鏍囧脊鍑哄浗闄呭寲褰曞叆 + 鎺ュ彛:/api/language/list-international-fields-info/{version} + 3銆佹柊澧炰繚瀛樻暟鎹甹son鏍煎紡锛� + { + 聽聽聽聽"token":"11111-鏂板鎻愪氦鏁版嵁", + 聽聽聽聽"system_language_code":"ZH", + 聽聽聽聽"system_client_type":"PC", + 聽聽聽聽"system_client_version":"iphome聽X聽13.1.3", + 聽聽聽聽"app_version":"V2.0.0", + 聽聽聽聽"time_zone_offset":"240", + 聽聽聽聽"sign":"eyJhbGciOiJIUzI1N", + 聽聽聽聽"~table~":"mrbase_sys_users", + 聽聽聽聽"name":[ + 聽聽聽聽聽聽聽聽{ + 聽聽聽聽聽聽聽聽聽聽聽聽"en":"internationalization" + 聽聽聽聽聽聽聽聽}, + 聽聽聽聽聽聽聽聽{ + 聽聽聽聽聽聽聽聽聽聽聽聽"zh":"鍥介檯鍖�" + 聽聽聽聽聽聽聽聽} + 聽聽聽聽], + 聽聽聽聽"address":[ + 聽聽聽聽聽聽聽聽{ + 聽聽聽聽聽聽聽聽聽聽聽聽"en":"zhuhai" + 聽聽聽聽聽聽聽聽}, + 聽聽聽聽聽聽聽聽{ + 聽聽聽聽聽聽聽聽聽聽聽聽"zh":"鐝犳捣" + 聽聽聽聽聽聽聽聽} + 聽聽聽聽], + 聽聽聽聽"phone":"18123938722", + 聽聽聽聽"sub_table_name":[ + 聽聽聽聽聽聽聽聽{ + 聽聽聽聽聽聽聽聽聽聽聽聽"filed1":"value1", + 聽聽聽聽聽聽聽聽聽聽聽聽"filed2":"value2", + 聽聽聽聽聽聽聽聽聽聽聽聽"name":[ + 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{ + 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽"en":"internationalization" + 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}, + 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{ + 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽"zh":"鍥介檯鍖�" + 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽} + 聽聽聽聽聽聽聽聽聽聽聽聽], + 聽聽聽聽聽聽聽聽聽聽聽聽"address":[ + 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{ + 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽"en":"zhuhai" + 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}, + 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{ + 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽"zh":"鐝犳捣" + 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽} + 聽聽聽聽聽聽聽聽聽聽聽聽] + 聽聽聽聽聽聽聽聽} + 聽聽聽聽] + } + 4銆佹煡璇㈠垪琛ㄦ暟鎹� + 棣栧厛鏌ヨ鍑烘墍鏈変笟鍔℃暟鎹紝鍐嶈皟 + /** + * 涓氬姟浠g爜灞傝皟鐢� + * 鑾峰彇涓氬姟瀵瑰簲瀛楁鐨勫浗闄呭寲鏁版嵁,濡傛灉language_code涓嶄负绌猴紝琛ㄦ槑鏄墜鏈虹 + * @param dt 涓氬姟琛ㄦ暟鎹� + * @param language_code 涓嶄负绌哄垯涓烘墜鏈虹 + * @return + */ + DataTableEntity baseDao.listInternationDataTable(DataTableEntity dt,String language_code ) 灏佽鍥介檯鍖栨暟鎹埌姣忔潯璁板綍鐨勬瘡涓浗闄呭寲瀛楁銆� + FieldSetEntity baseDao.listInternationDataTable(FieldSetEntity fs,String language_code ) 灏佽鍥介檯鍖栨暟鎹埌鍗曟潯璁板綍鐨勬瘡涓浗闄呭寲瀛楁銆� + + //baseDao.processInternationDataTable(DataTableEntity dt,String language_code ),鍥介檯鍖栧瓧娈典笉鏄暟缁勬牸寮� + //baseDao.processInternationDataTable(FieldSetEntity fs,String language_code ) 鍥介檯鍖栧瓧娈典笉鏄暟缁勬牸寮� + 杩斿洖json鏍煎紡锛� + + { + 聽聽聽聽"code":"200", + 聽聽聽聽"data":[ + 聽聽聽聽聽聽聽聽{ + 聽聽聽聽聽聽聽聽聽聽聽聽"uuid":"100001", + 聽聽聽聽聽聽聽聽聽聽聽聽"name":[ + 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{ + 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽"uuid":"xxxxx", + 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽"en":"internat" + 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}, + 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{ + 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽"uuid":"xxxxx", + 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽"zh":"鍥介檯鍖�" + 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽} + 聽聽聽聽聽聽聽聽聽聽聽聽], + 聽聽聽聽聽聽聽聽聽聽聽聽"address":[ + 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{ + 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽"uuid":"xxxxx", + 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽"en":"zhuhai" + 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}, + 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{ + 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽"uuid":"xxxxx", + 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽"zh":"鐝犳捣" + 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽} + 聽聽聽聽聽聽聽聽聽聽聽聽], + 聽聽聽聽聽聽聽聽聽聽聽聽"phone":"18123938729" + 聽聽聽聽聽聽聽聽} + 聽聽聽聽], + 聽聽聽聽"msg":"鎴愬姛", + 聽聽聽聽"status":"success" + } + + 5銆佷慨鏀逛繚瀛樻暟鎹甹son鏍煎紡锛� + { + 聽聽聽聽"token":"11111-鏂板鎻愪氦鏁版嵁", + 聽聽聽聽"language_code":"zh", + 聽聽聽聽"client_type":"PC", + 聽聽聽聽"client_version":"iphome聽X聽13.1.3", + 聽聽聽聽"app_version":"V2.0.0", + 聽聽聽聽"time_zone_offset":"240", + 聽聽聽聽"sign":"eyJhbGciOiJIUzI1N", + 聽聽聽聽"~table~":"mrbase_sys_users", + 聽聽聽聽"uuid":"100001", + 聽聽聽聽"name":[ + 聽聽聽聽聽聽聽聽{ + 聽聽聽聽聽聽聽聽聽聽聽聽"uuid":"xxxxx", + 聽聽聽聽聽聽聽聽聽聽聽聽"en":"internationalization" + 聽聽聽聽聽聽聽聽}, + 聽聽聽聽聽聽聽聽{ + 聽聽聽聽聽聽聽聽聽聽聽聽"uuid":"xxxxx", + 聽聽聽聽聽聽聽聽聽聽聽聽"zh":"鍥介檯鍖�" + 聽聽聽聽聽聽聽聽} + 聽聽聽聽], + 聽聽聽聽"address":[ + 聽聽聽聽聽聽聽聽{ + 聽聽聽聽聽聽聽聽聽聽聽聽"uuid":"xxxxx", + 聽聽聽聽聽聽聽聽聽聽聽聽"en":"zhuhai" + 聽聽聽聽聽聽聽聽}, + 聽聽聽聽聽聽聽聽{ + 聽聽聽聽聽聽聽聽聽聽聽聽"uuid":"xxxxx", + 聽聽聽聽聽聽聽聽聽聽聽聽"zh":"鐝犳捣" + 聽聽聽聽聽聽聽聽} + 聽聽聽聽], + 聽聽聽聽"phone":"18123938722" + } + + 6.涓嶈兘鍥介檯鍖栫殑琛細 + mrbase_sys_cache_config 缂撳瓨閰嶇疆 + mrbase_sys_data_sources 鏁版嵁搴撹繛鎺ラ厤缃� + mrbase_sys_datamodel_field 鏁版嵁缁撴瀯瀛楁淇℃伅 + mrbase_sys_datamodel_table 鏁版嵁缁撴瀯琛ㄤ俊鎭� + mrbase_sys_language_code + mrbase_sys_language_cont_values + mrbase_sys_language_master + mrbase_sys_language_values + mrbase_sys_message_exchange + mrbase_sys_message_message_exchange + mrbase_sys_message_template + mrbase_sys_message_template_language + mrbase_sys_message_user_exchange + mrbase_sys_prompt + mrbase_sys_swift_config + mrbase_sys_tree_config + mrbase_sys_version_buttons_mapping + 瀹氭椂浠诲姟鎵�鏈夎〃 +44.鏂囦欢涓婁紶--绗笁鏂规枃浠舵湇鍔″櫒 + 1锛夎幏鍙栧鎴蜂笂浼犵殑鏂囦欢鎬诲ぇ灏忥細com.lx.base.file.service.FileManagerService + /** + * 鑾峰彇瀹㈡埛涓婁紶鐨勬枃浠舵�诲ぇ灏� + * @param clientUUID 瀹㈡埛UUID + * @return 宸蹭笂浼犳枃浠舵�诲ぇ灏� + * @throws BaseException 鍩烘湰寮傚父 + */ + public int findClientFileUsedCapacity(String clientUUID) throws BaseException + 2锛夎幏鍙栧鎴峰墿浣欑殑鏂囦欢鎬诲ぇ灏忥細com.lx.base.file.service.FileManagerService + /** + * 鑾峰彇瀹㈡埛鍓╀綑鐨勬枃浠舵�诲ぇ灏� + * @param clientUUID 瀹㈡埛UUID + * @return 鍓╀綑绌洪棿澶у皬 + */ + public int findClientFileResidueCapacity(String clientUUID) throws BaseException + + /** + * 鑾峰彇瀹㈡埛鍓╀綑鐨勬枃浠舵�诲ぇ灏� + * @param fse 瀹㈡埛fse + * @return 鍓╀綑绌洪棿澶у皬 + */ + public int findClientFileResidueCapacity(FieldSetEntity fse) throws BaseException + 3锛変笂浼犳枃浠� + 1>鍓嶇涓婁紶鏂囦欢锛岃繑鍥炴枃浠朵俊鎭粰鍚庣锛岃皟鐢ㄨ姹傚墠缂�/api/fileManager/add-file-record-plan/{version}锛岃鎯呰showdoc涓�14-1銆佹枃浠舵柊澧炲噯澶囷紝鍚庣杩斿洖fse + 浼犲叆json绀轰緥锛� + { + "org_level_uuid": "b8631dad-6cc1-4d5a-9f6f-e8c76e6a5464", + "~table~": "mrbase_sys_attachments", + "attachment_title": "test_202006221036.doc", + "client_uuid": "06f959c8-4f41-407c-9bcc-8137a8b22f50", + "language": "mslc1112", + "function_uuid": "97779f8b-9657-47e7-8915-2f51113210fe", + "client_type": "web", + "attachment_data_table": "test_project", + "version": "v1", + "token": "eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJhZG1pbiIsImlhdCI6MTU5Mjc5MzY3OSwic3ViIjoic2hpX2Nob25nZnVAMTYzLmNvbSIsImlzcyI6Ind3dy5tcmMuY29tIiwiZXhwIjoxNTkyODY1Njc5fQ.kgffR0iYgjKhFSNI-ak5hPCf3453aOYXIrwHte7pRAY", + "product_uuid": "001", + "staff_uuid": "e2f158ec-a6c7-40e0-a201-4fd7eb2e0e98", + "attachment_data_field": "attachment", + "attachment_size": "1" + } + 2>鍓嶇寰楀埌鍚庣杩斿洖鍚庢嫾鎺rl锛岃皟鐢ㄨ嚦鏈嶅姟鍣ㄧ涓婁紶鏂囦欢锛屾牴鎹湇鍔″櫒绔姸鎬佽繑鍥炶皟鐢ㄨ姹傚墠缂�/api/fileManager/add-file-callback/{version}锛岃鎯呰showdoc涓�14-2銆佹枃浠舵柊澧炵粨鏋滃洖璋冦�傛湇鍔$鏂板鎴愬姛鏈湴鎵ц淇敼锛屽彉鏇存枃浠惰褰曠姸鎬佷负涓婁紶鎴愬姛锛岃繑鍥瀠pdate锛涙湇鍔$鏂板澶辫触鏈湴鎵ц鍒犻櫎锛岃繕鍘熻褰曪紝杩斿洖del + 浼犲叆json绀轰緥锛� + { + "result": "1", + "uuid": "c48c0147-8b2f-4a8d-9d5b-46c55ceb725b", + "token": "eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJhZG1pbiIsImlhdCI6MTU5Mjc5NjMzNiwic3ViIjoic2hpX2Nob25nZnVAMTYzLmNvbSIsImlzcyI6Ind3dy5tcmMuY29tIiwiZXhwIjoxNTkyODY4MzM2fQ.LiUeajNzZAHWuT5O_YdPh5IOp7geVjklBGrWUBz79fo" + } + 4锛夊垹闄ゆ枃浠� + 1>鍓嶇鍒犻櫎鏂囦欢锛岃繑鍥炴枃浠朵俊鎭粰鍚庣锛岃皟鐢ㄨ姹傚墠缂�/api/fileManager/del-file-record-plan/{version}锛岃鎯呰showdoc涓�14-3銆佹枃浠跺垹闄ゅ噯澶囷紝鍚庣杩斿洖fse + 浼犲叆json绀轰緥锛� + { + "uuid": "c48c0147-8b2f-4a8d-9d5b-46c55ceb725b", + "token": "eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJhZG1pbiIsImlhdCI6MTU5MjgwNDMyOSwic3ViIjoic2hpX2Nob25nZnVAMTYzLmNvbSIsImlzcyI6Ind3dy5tcmMuY29tIiwiZXhwIjoxNTkyODc2MzI5fQ.Fsau5aHByePG7E-p68Y8_Py6yGAcYwbxQLwhkz20MGQ" + } + 2>鍓嶇寰楀埌鍚庣杩斿洖鍚庢嫾鎺rl锛岃皟鐢ㄨ嚦鏈嶅姟鍣ㄧ鍒犻櫎鏂囦欢锛屾牴鎹湇鍔″櫒绔姸鎬佽繑鍥炶皟鐢ㄨ姹傚墠缂�/api/fileManager/del-file-callback/{version}锛岃鎯呰showdoc涓�14-4銆佹枃浠跺垹闄ょ粨鏋滃洖璋冦�傛湇鍔$鍒犻櫎鎴愬姛鏈湴鎵ц鍒犻櫎锛岃繑鍥瀌el锛涙湇鍔$鍒犻櫎澶辫触鏈湴鎵ц淇敼锛岃繕鍘熸枃浠惰褰曠姸鎬侊紝杩斿洖update + 浼犲叆json绀轰緥锛� + { + "result": "0", + "uuid": "c48c0147-8b2f-4a8d-9d5b-46c55ceb725b", + "token": "eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJhZG1pbiIsImlhdCI6MTU5MjgwNTg4OSwic3ViIjoic2hpX2Nob25nZnVAMTYzLmNvbSIsImlzcyI6Ind3dy5tcmMuY29tIiwiZXhwIjoxNTkyODc3ODg5fQ.0x7xmEM2G8qXq7jiYQiy6iDm48tYEqVS9UqhlHUB9xk" + } +45.鏈湴鏂囦欢涓婁紶--绯荤粺鏈嶅姟鍣� + 鏍稿績锛氶渶瑕乻igar-amd64-winnt.dll鎴栬�卻igar-x86-winnt.dll鏂囦欢缃簬jdk鐨刡in涓垨鑰卌鐩榳indows/system32 + 涓婁紶鐩綍閰嶇疆锛岃properties鏂囦欢涓殑upload.file銆倄xxx 鍑犱釜鐩稿叧鍙傛暟 + 涓婁紶鏂囦欢鑷姩瀛樺埌鐩綍涓嬶紝鍦╟ontroller鎴杝ervice灞備腑璇诲彇鎿嶄綔銆� + +46.娑堟伅鏈嶅姟 + 1.鏂板缓闃熷垪 + public static void createQueue(String queue_name) + 鏃犺繑鍥炲�� + 2.鍒犻櫎闃熷垪 + public static void deleteQueue(String queue_name) + 鏃犺繑鍥炲�� + 3.鏂板缓浜ゆ崲鏈� + messageService.addExchange + 鍙傛暟 + "exchange_uuid":"鏂板缓浜ゆ崲鏈�" + 杩斿洖鍊硷細浜ゆ崲鏈簎uid + 4.缁戝畾浜ゆ崲鏈� + messageService.bindExchange + 鍙傛暟锛� + {"user_uuid":"鐢ㄦ埛uuid", + "exchange_uuid":"浜ゆ崲鏈簎uid"} + 杩斿洖鍊硷細Boolean + 5.瑙g粦浜ゆ崲鏈� + messageService.unbindExchange + 鍙傛暟锛� + {"user_uuid":"鐢ㄦ埛uuid", + "exchange_uuid":"浜ゆ崲鏈簎uid"} + 杩斿洖鍊硷細boolean + 6.娣诲姞娑堟伅涓旀坊鍔犳秷鎭褰� + messageService.addMessage + 鍙傛暟锛� + { + "exchange_uuid":"浜ゆ崲鏈簎uid" + "message_uuid"锛�"鐢ㄦ埛uuid" + "message":"娑堟伅鍐呭" + "template_id":"妯℃澘id" + "create_by":"鎿嶄綔浜簎uid" + "virtual_hosts":"铏氭嫙鏈哄悕" + } +47.缁煎悎鎼滅储锛� + findService.listUuid + 鍙傛暟锛� + { + ~table~锛歔鈥溾��,鈥濃��,鈥濃��,鈥濃�漖 //鏁版嵁搴撹〃 + Conditions:[{condition:value},{},{}...] //鏉′欢 + language:value //鍥介檯鍖栬瑷� + } + 杩斿洖鍊硷細list<String> uuids + + 褰撴煡璇㈣鍚嶏紝浣跨敤澶氳〃鑱斿悎鏌ヨ锛屽苟浣跨敤浜嗗埆鍚嶆椂锛岄渶瑕佹坊鍔犺〃鍒悕銆佸瓧娈靛埆鍚嶈缃紝骞舵妸sql璇彞浣跨敤select * from (鏌ヨ璇彞+鏁版嵁鏉冮檺鏉′欢+楂樼骇鏌ヨ鏉′欢) b 鎷捣鏉ワ紝娉ㄦ剰 + 48.浠ヤ笅鍐呭鍙樻洿 + 1.core鍖呭紩鍏ュ彉鏇� +<dependency> + <groupId>com.lx</groupId> + <artifactId>base-server-core</artifactId> + <version>1.0.0-releases</version> +</dependency> +2.鎵�鏈夊紩鍏ore鍖呬腑绫荤殑璺緞鍚湁鍏ㄩ儴鏇挎崲鎴恇ase,濡傦細 +import com.product..core.dao.BaseDao; -> import com.product.base.core.dao.BaseDao; + +3.鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛瀵瑰簲鍛樺伐淇℃伅锛� + 鏀规垚getCurrentStaff() FieldSetEntity + +4.鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛瀵瑰簲鍛樺伐鎵�灞炲叕鍙镐俊鎭� + getCurrentCompany() FieldSetEntity +鍗曠嫭鑾峰彇鍏徃鐨剈uid銆乷rg_level_name(鍏徃鍚嶇О) org_level_code(鍏徃缂栫爜) + +4.鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛瀵瑰簲鍛樺伐鎵�灞為儴闂ㄤ俊鎭� + getCurrentDept() FieldSetEntity +鍗曠嫭鑾峰彇閮ㄩ棬uuid + +5.鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛瀵瑰簲鍛樺伐鎵�灞炲鎴蜂俊鎭� + getCurrentCustomer() +鍗曠嫭鑾峰彇瀹㈡埛uuid 銆佸鎴峰悕绉般�佸鎴风紪鐮� + +6.鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛瀵瑰簲绠$悊鍛樹俊鎭� + getCurrentManager() + +7.鑾峰彇鏌ヨ鏁版嵁闆嗙殑鎵�鏈塽uid + public String DataTableEntity.getUuids() 鍘� 锛屾敼涓轰互涓� + + 鎸囧畾琛ㄧ殑鎵�鏈塽uid,杩斿洖鏁扮粍 + -> public Object[] getUuids(Object tableName) + 鎸囧畾琛ㄧ殑鎵�鏈塽uid锛岃繑鍥為�楀彿鍒嗛殧鐨勫瓧绗︿覆 + -> public String getUuidsToString(Object tableName) + 杩斿洖榛樿琛ㄧ殑鎵�鏈塽uid,杩斿洖鏁扮粍 + -> public Object[] getUuids() + 杩斿洖榛樿琛ㄧ殑鎵�鏈塽uid,杩斿洖閫楀彿鍒嗛殧鐨勫瓧绗︿覆 + -> public String getUuidsToString() +8.鐧诲綍涓婁紶鍥哄畾鍙傛暟 + system_language_code 璇█缂栫爜 zh en + system_client_type 瀹㈡埛绫诲瀷 + system_client_version 浠g爜鐗堟湰 + +9.鎺ュ彛鐗堟湰鍙峰ぇ鍐橵鍐嶅姞3涓暟瀛楀涓嬶細 +鎵�鏈夋帴鍙e繀椤讳笂浼犵増鏈彿 +http://{IP}:{PORT}/{ProjectName}/api/app/homepage/get-home-page-list/v1 鎴杤2 + +10.new FieldSetEntity()鍚庯紝棣栧厛瑕佽缃〃鍚嶏紝鎵嶈兘璋僺etValue(String fieldName,Object fieldValue)锛� 鍚﹀垯鍙兘璋僺etValue(String fieldName,Object fieldValue,Object tableName) + +11.public FieldSetEntity getLeaderStaff() throws BaseException SystemUser.getLeaderStaff()鑾峰彇褰撳墠浜烘墍鐩村睘棰嗗淇℃伅 + +12.public FieldSetEntity getJobPost() throws BaseException SystemUser.getJobPost()鑾峰彇褰撳墠浜烘墍宀椾綅淇℃伅 + +13.public DataTableEntity loadDirectSubordinate(String staffUuid) throws BaseException StaffManagerService.loadDirectSubordinate() 鑾峰彇鎸囧畾浜哄憳鐨勭洿鎺ヤ笅灞� + +14.public DataTableEntity loadAllSubordinate(String staffUuid) throws BaseException StaffManagerService.loadAllSubordinate() 鑾峰彇鎸囧畾浜哄憳鐨勬墍鏈夌洿鎺ヤ笅灞� + +15.public FieldSetEntity loadStaffLeader(Integer userid) StaffManagerService.loadStaffLeader() 鑾峰彇浜哄憳鐨勭洿灞為瀵� + +16.public FieldSetEntity loadStaffLeader(String staffUuid) StaffManagerService.loadStaffLeader() 鑾峰彇浜哄憳鐨勭洿灞為瀵� + +17.鏌ヨ鍑烘潵鐨勬暟鎹泦DataTableEntity 鎴朏ieldSetEntity 涓幏鍙栧埌FieldMetaEntity,璋僷ublic void addAliasField(String tableName_fieldName,String alias)娣诲姞鏌ヨ涓娇鐢ㄧ殑鍥介檯鍖栬繖娈靛埆鍚嶃�� +tableName_fieldName锛� 琛ㄥ悕涓庡瓧娈靛悕缁勫悎锛屼腑闂翠互鐐瑰垎闅� table.field +Alias锛� sql涓搴旂殑瀛楁鍒悕 + +18.濡傛灉澶氳〃鑱斿悎鏌ヨ锛岃鍙栧浗闄呭寲鍊肩殑琛紝蹇呴』鍙栬琛╱uid瀛楁锛屾湁閲嶅uuid锛岃嚜鍔ㄦ坊鍔犲埆鍚嶏紝鏌ヨ鍑烘潵鐨剈uid浼氬湪鍚庨潰娣诲姞鏁版嵁閫掑锛屽锛歶uid1,uuid2,绗竴涓猽uid涓嶄細鍙橈紝濡傛灉瑕佹墜鍔ㄥ閲嶅鐨剈uid鍙栧埆鍚嶏紝涔熷簲鎸夋瑙勫垯杩涜锛屽惁鍒欏彲鑳藉嚭鐜板浗闄呰幏鍙栦笉鍒版暟鎹瓑鎯呭喌 +19.濡傛灉澶氳〃鑱斿悎鏌ヨ锛屽叾瀹冨瓧娈甸噸澶嶄笌uuid閲嶅绫讳技, +澶氳〃鑱斿悎鏌ヨ锛屽悓涓�涓〃锛屽悓涓�涓瓧娈碉紝浣跨敤涓ゆ锛岄渶瑕乻elect * from () b 鎶婃煡璇富浣撴嫭璧锋潵鍚屾椂琛ㄥ繀椤昏缃埆鍚� +20.FeildSetEntity涓幏鍙朞bject鏃舵湁涓や釜鏂规硶锛歡etValue(String fieldName)鍜実etObject(String fieldName),鍖哄埆鍦ㄤ簬锛実etValue锛圫tring fieldName锛変細鎶婂浗闄呭寲瀛楁鍊艰浆鎴怞SONObject瀵硅薄锛岃�実etObject(String fieldName)鍙槸杩斿洖鍩虹鏁版嵁 + +48.鎵嬫満绔疛SON鏁版嵁鏍煎紡鐨勮皟鐢� + 璇█缂栫爜鑾峰彇 + String language_code=reqp.getOther().get(com.lx.base.core.config.CmnConst.SYSTEM_LANGUAGE_CODE ).toString(); + String client_type=reqp.getOther().get(com.lx.base.core.config.CmnConst.SYSTEM_CLIENT_TYPE ).toString(); + 鏁版嵁淇濆瓨锛� + baseDao.add(FieldSetEntityfse,String language_code); + baseDao.add(FieldSetEntity fs,boolean subData,String language_code) + baseDao.add(DataTableEntity fs,String language_code) + 鏁版嵁淇敼锛� + baseDao.update(FieldSetEntity fs,String language_code) + baseDao.update(FieldSetEntity fs,boolean subData,String language_code) + baseDao.update(DataTableEntity fs,String language_code) + 鏁版嵁鏌ヨ锛� + FieldSetEntity listInternationDataTable(FieldSetEntity fs,String language_code ) + DataTableEntity listInternationDataTable(DataTableEntity dt,String language_code ) +49.鍚庣閿欒淇℃伅鍥介檯鍖� + 1)閿欒淇℃伅鏋氫妇绫绘敞鍏ワ紝鍚姩绫讳腑娣诲姞娉ㄥ叆浠g爜锛� + DataPoolCacheImpl.getInstance() + .appendErrorEnumClass("com.lx.base.core.config.ErrorCode") + .appendErrorEnumClass("com.lx.base.module.sys.config.SystemCode") + .appendErrorEnumClass("com.lx.base.module.sys.config.SystemErrorCode"); + 2)鐗规畩鎯呭喌璋冪敤锛圓bstractBaseController.error()銆丅aseException.getMessage()銆乬etMessageInfo()宸插疄鐜帮級 + String message=DataPoolCacheImpl.getInstance().getErrorLanguageInternation(code, language_code); + +50.楂樼骇鍙傜収鏁版嵁杩斿洖瑙勫垯 + 1)鎵�鏈夊崟浣嶉珮绾у弬鐓ф暟鎹� f1 鍏ㄧО f2 鐭紪鐮� + 2)鎵�鏈夐儴闂ㄩ珮绾у弬鐓ф暟鎹� f1 鍏ㄧО f2 鐭紪鐮� + 3)鎵�鏈夊矖浣嶉珮绾у弬鐓ф暟鎹� f1 鍏ㄧО + 4)鎵�鏈夊矖浣嶇瓑绾ч珮绾у弬鐓ф暟鎹� f1 绛夌骇绾у埆 f2 缁勫悕 + 5)鎵�鏈夋ā鍧楅珮绾у弬鐓ф暟鎹� f1 鐭紪鐮� + 6)鎵�鏈夊姛鑳介珮绾у弬鐓ф暟鎹� f1 鐭紪鐮� + 7)鎵�鏈夊鎴烽珮绾у弬鐓ф暟鎹� f1 鐭紪鐮� +51.楂樼骇鍙傜収閰嶇疆 + 鏁版嵁婧愯〃瀛楁鏇存敼涓哄悗绔帴鍙o紝浠嶥ataPoolCacheImpl.getInstance().getCacheData("鎵�鏈夎〃淇℃伅");涓幏鍙栨墍鏈夎〃 + 琛ㄥ埆鍚嶏細浠� "a"+table_id涓鸿〃鍒悕 + 閲嶅鍏宠仈琛ㄩ厤缃細SystemPromptService.getPromptRepetitionJoinTable() 锛屽満鏅� 鍏徃 join 閮ㄩ棬 銆佸憳宸oin涓嬪睘 + 鍏宠仈绫诲瀷 left join , inner join , right join + 鍗曡〃锛� + 鏁版嵁婧愯〃澶氬嚭鍒悕 + 瀛楁锛氳〃鍒悕 "."瀛楁鍚� + 澶氳〃 + is_multiple = 1 + relate_filter(澶氳〃鍏宠仈鏉′欢锛� + relate_type(鍏宠仈绫诲瀷锛� + 鍦ㄩ�夋嫨浜嗘暟鎹簮琛� a 锛宐锛� c , d琛ㄥ埆鍚嶅垎鍒负 a1,a2,a3,a4 + 鍏宠仈绫诲瀷= left join锛堟牴鎹笟鍔¢渶姹傚畾锛岀洰鍓嶅彧鑳介�夋嫨1绉嶅叧鑱旀柟寮�) + 澶氳〃鍏宠仈鏉′欢 = a1.uuid=a2.uuid,a3.uuid=a1.uuid,a2.uuid=a4.uuid 澶氫釜琛ㄧ殑鍏宠仈鏉′欢 鐢� "," 鍒嗛殧锛� + 澶氳〃鍏宠仈鏉′欢濉啓椤哄簭搴斾笌琛ㄩ『搴忓搴斾笉鍙鍊� + 姣忎釜琛ㄥ叧鑱斿繀椤诲湪瀵瑰簲鐨勪竴缁勫叧鑱旀潯浠朵腑鐢ㄥ埌 琛ㄥ埆鍚�"."瀛楁 + 閿欒绀鸿寖锛氣�渁1.uuid=a2.uuid,a3.uuid=a1.uuid鈥� 锛岄珮绾у弬鐓ц〃鍏宠仈涓暟涓庢潯浠朵釜鏁颁笉鍖归厤 +52.鍔熻兘鏉冮檺楠岃瘉 + 蹇呴』閰嶇疆mrbase_sys_function_buttons.api_url閰嶇疆鎸夐挳瀵瑰簲鍚庣鎺ュ彛鍦板潃锛屽涓�楀彿鍒嗛殧,涓嶈兘鍚増鏈彿锛屽锛� + 鎺ュ彛鍦板潃锛�/api/management/delete-user/v1 閰嶇疆鍦板潃锛�/api/management/delete-user + +53.鏁版嵁鎿嶄綔鏉冮檺楠岃瘉 + 涓昏閽堝鍗曟潯鏁版嵁鐨勫垹 銆佹敼 銆佹煡鎿嶄綔锛屽湪鍒� 銆佹敼 銆佹煡鐨勭浉搴旀帴鍙h皟鐢� + 蹇呴』璁剧疆mrbase_sys_datamodel_field.field_type,userid锛氬瓨鏀句汉鍛樼殑瀛楁绫诲瀷锛宱rgUuid锛氬瓨鏀剧粍缁囨満鏋勭殑瀛楁绫诲瀷 + 1)Controller鎺ュ彛灞傝皟鐢� + 2)璋冩硶 + /** + * 瀵瑰崟鏉℃暟鎹繘琛屾搷浣滅殑鏉冮檺楠岃瘉 + * @param tableName 琛ㄥ悕 + * @param uuid uuid + * @param type 楠岃瘉绫诲瀷 1=浜哄憳楠岃瘉 2= 缁勭粐鏈烘瀯楠岃瘉 3 涓よ�呴兘楠岃瘉 + * @return + */ + public boolean validDataPermission(String tableName,String uuid ,int type) + /** + * 瀵瑰崟鏉℃暟鎹繘琛屾搷浣滅殑鏉冮檺楠岃瘉 + * @param fs 涓婁紶鏁版嵁锛屽繀椤诲寘鍚〃鍚� uuid ,鍚︿竴寰嬮�氳繃 + * @param type 楠岃瘉绫诲瀷 1=浜哄憳楠岃瘉 2= 绾х粐鏈烘瀯楠岃瘉 3 涓よ�呴兘楠岃瘉 + * @return + */ + public boolean validDataPermission(FieldSetEntity fs ,int type) + /** + * 瀵瑰崟鏉℃暟鎹繘琛屾搷浣滅殑鏉冮檺楠岃瘉 ,鐗规畩鏉冮檺鏉′欢 锛屼笉鏍规嵁浜� 缁勭粐鏈烘瀯杩囨护 + * @param tableName 琛ㄥ悕 + * @param uuid uuid + * @param filter 鐗规畩鏉冮檺鏉′欢 + * @return + */ + public boolean validDataPermission(String tableName,String uuid,String filter) + /** + * 瀵瑰崟鏉℃暟鎹繘琛屾搷浣滅殑鏉冮檺楠岃瘉 ,鐗规畩鏉冮檺鏉′欢 锛屼笉鏍规嵁浜� 缁勭粐鏈烘瀯杩囨护 + * @param fs 涓婁紶鏁版嵁锛屽繀椤诲寘鍚〃鍚� uuid ,鍚︿竴寰嬮�氳繃 + * @param filter 鐗规畩鏉冮檺鏉′欢 + * @return + */ + public boolean validDataPermission(FieldSetEntity fs ,String filter) + 3)鏁版嵁鎿嶄綔鐨勬潈闄愰獙璇�,鐗规畩鏉′欢璋冪敤绀轰緥 + if(!permissionService.validDataPermission(fse, "(client_uuid is null or client_uuid='') or client_uuid='" + +SpringMVCContextHolder.getCurrentUser().getClient_uuid()+"'")) { + SpringMVCContextHolder.getSystemLogger().error(SystemErrorCode.SYSTEM_NOT_OPER_PERMISSION.getValue(), + SystemErrorCode.SYSTEM_NOT_OPER_PERMISSION.getText()); + return this.error(SystemErrorCode.SYSTEM_NOT_OPER_PERMISSION.getValue(), SystemErrorCode.SYSTEM_NOT_OPER_PERMISSION.getText()); + } + + 4)鎸変汉鍛樸�佺粍缁囨満鏋勯獙璇佹暟鎹潈闄愯皟鐢ㄧず渚� + 蹇呴』璁剧疆mrbase_sys_datamodel_field.field_type,userid锛氬瓨鏀句汉鍛樼殑瀛楁绫诲瀷锛宱rgUuid锛氬瓨鏀剧粍缁囨満鏋勭殑瀛楁绫诲瀷 + if(!permissionService.validDataPermission(fse,CoreConst.DATA_PERMISSION_VALID_TYPE_ALL)) { + SpringMVCContextHolder.getSystemLogger().error(SystemErrorCode.SYSTEM_NOT_OPER_PERMISSION.getValue(), + SystemErrorCode.SYSTEM_NOT_OPER_PERMISSION.getText()); + return this.error(SystemErrorCode.SYSTEM_NOT_OPER_PERMISSION.getValue(), SystemErrorCode.SYSTEM_NOT_OPER_PERMISSION.getText()); + } +54.涓氬姟浠g爜閫昏緫澶勭悊 + 瑙勫垯鏄笟鍔′唬鐮佺被蹇呴』娉ㄥ唽鎴恠pring鐨刡ean,琚皟鐢ㄧ殑鏂规硶鍙兘鏈変竴涓狥ieldSetEntity鍙傛暟锛岄噷闈㈠皝瑁呬笟鍔′唬鐮佷腑闇�瑕佺殑鍊硷紝濡傦細 + public void addBalance(FieldSetEntity fs) + { + this.logger.info(" "); + this.staffBusinessService.addBalance(fs); + this.logger.info(" "); + } + +54.娑堟伅鐢熸垚 + /** + * 涓嶆敮鎸佹墜鏈虹 + * 鎵�鏈夊簲鐢ㄦ湇鍔$敓鎴愭秷鎭皟浜涙柟娉曞幓娣诲姞娑堟伅 + * 鏍规嵁message.server.ip鍙傛暟鍒ゆ柇鏄惁绛変簬127.0.0.1 + * 鏄細鍒欑洿鎺ヨ皟writeUserMessage鏈満鏂规硶娣诲姞娑堟伅 + * 鍚︼細鍒欒皟娑堟伅鏈嶅姟鍣ㄦ帴鍙f坊鍔犳秷鎭� + * @param userids 娑堟伅鎺ユ敹浜� 蹇呭~ + * @param content 娑堟伅鍐呭 涓嶅繀濉� + * @param title 娑堟伅鏍囬 蹇呭~ + * @param send_user_id 娑堟伅鍙戦�佷汉 蹇呭~ + * @param message_type 娑堟伅绫诲瀷 蹇呭~ + * @param url 娑堟伅閾炬帴鍦板潃 涓嶅繀濉� + * @param source_table 涓氬姟鏁版嵁琛� 涓嶅繀濉� + * @param source_uuid 涓氬姟鏁版嵁琛╱uid 涓嶅繀濉� + * @param create_by 鍒涘缓浜� userid 蹇呭~ + * @param is_send_mail 鏄惁鍙戦�侀偖浠� 0:鍚� 1锛氭槸 蹇呭~ + * @param is_send_sms 鏄惁鍙戦�佺煭淇� 0:鍚� 1锛氭槸 蹇呭~ + */ + WebsocketMesssageServiceThread.getInstance().appendMessage(String ....); + /** + * 鏀寔鎵嬫満绔紝鏂规硶閲嶈浇锛屽浜嗕竴涓猰obile_url鍙傛暟 + * 鎵�鏈夊簲鐢ㄦ湇鍔$敓鎴愭秷鎭皟浜涙柟娉曞幓娣诲姞娑堟伅 + * 鏍规嵁message.server.ip鍙傛暟鍒ゆ柇鏄惁绛変簬127.0.0.1 + * 鏄細鍒欑洿鎺ヨ皟writeUserMessage鏈満鏂规硶娣诲姞娑堟伅 + * 鍚︼細鍒欒皟娑堟伅鏈嶅姟鍣ㄦ帴鍙f坊鍔犳秷鎭� + * @param userids 娑堟伅鎺ユ敹浜� + * @param content 娑堟伅鍐呭 + * @param title 娑堟伅鏍囬 + * @param send_user_id 娑堟伅鍙戦�佷汉 + * @param message_type 娑堟伅绫诲瀷 + * @param url 娑堟伅閾炬帴鍦板潃 + * @param source_table 鏁版嵁琛� + * @param source_uuid 鏁版嵁琛╱uid + * @param create_by 鍒涘缓浜� + * @param is_send_mail 鏄惁鍙戦�侀偖浠� + * @param is_send_sms 鏄惁鍙戦�佺煭淇� + * @param mobile_url 鎵嬫満绔疷RL + * @throws BaseException + */ + WebsocketMesssageServiceThread.getInstance().appendMessage(String ....); + + //娑堟伅绫诲瀷 + //琛ㄥ悕甯搁噺瀹氫箟 + public static final int MESSAGE_TOP_TYPE_SYSTEM =1; //"绯荤粺娑堟伅"; + public static final int MESSAGE_TYPE_ANNOUNCEMENT =11; //"鍏憡娑堟伅"; + + public static final int MESSAGE_TOP_TYPE_TASK =2; //"浠诲姟娑堟伅"; + public static final int MESSAGE_TYPE_APPROVE =21; //"寰呭姙娑堟伅"; + public static final int MESSAGE_TYPE_COORDINATION =22; //"鍗忓悓娑堟伅"; + public static final int MESSAGE_TYPE_TASK = 23;// "浠诲姟妯″潡娑堟伅"; + + public static final int MESSAGE_TOP_TYPE_WARNING =3; //"棰勮娑堟伅"; + public static final int MESSAGE_TYPE_WARNING =31; //"棰勮娑堟伅"; + +55.瀛愯〃鎺掑簭瑙勫垯,涓嫭鍙峰唴琛ㄧず瀛愯〃鎺掑簭 鏀惧埌orderby鍙傛暟涓� +String s="main_field1,main_field2,{sub_table1:sub_table1_field1 desc,sub_table1_field2},{sub_table2:sub_table2_field1 desc,sub_table2_field2}" +56.閿欒淇℃伅涓殑鍔ㄦ�佸彉閲忔浛鎹� +鏇垮垯浣跨敤{}鎶婂彉閲忓悕鎷捣鏉ワ紝姝ゅ彉閲忓悕灏嗗湪Exception涓幏鍙栵細DATA_VERIFY_UNIQUE_ERROR("鏁版嵁涓嶆槸鍞竴锛歿value}", ModuleEnum.CORE.getValue() + "097"), +绀轰緥锛� + be.setMessagePara("fieldxxxx","鏈幏鍙栧埌鐧诲綍Token淇℃伅"); + be.setMessagePara("fieldxxxx",fs.getString("field")); +"fieldxxxx"瀵瑰簲閿欒瀹氫箟涓殑{fieldxxxx} + +56.鍙嶅皠寮曠敤bean :com.product.core.util.ReflectUtil + /** + * + * @param beanName 琚唬鐞嗗鍍廱ean 鍚嶇О + * @param methodName 鏂规硶鍚嶇О + * @param objects 鍙傛暟 + * @return + * @throws BaseException + */ + public static Object invoke(String beanName,String methodName,Object[] objects) throws BaseException + +57.浜х敓娑堟伅鐨勮〃锛屽繀椤诲湪瀵瑰簲琛ㄧ殑produce_msg瀛楁涓�间负1 + +58.鑷姩鍙戣捣娴佺▼ + com.lx.tool.flow.service.FlowService#autoSendFlow + + 鎻忚堪锛� + 锛�1锛塻ervice鏂规硶锛岄潪鎺ュ彛鏂规硶 + 锛�2锛夋牴鎹紶鍏ョ殑鍙傛暟锛岃嚜鍔ㄥ彂璧锋祦绋嬶紝鍒涘缓娴佺▼鐨勭涓�姝ワ紝鐩存帴鍒般�愬紑濮嬨�戠幆鑺� + + 浼犲叆鍙傛暟锛歠se + { + "type_code"锛� "5a1dd74e-5b69-479c-afa0-a7db3e7fd6b2", + "~table~": "lx_oa_conference_apply", + "accepters": "376", + "uuid": "5aadc03d-6ae3-470c-8507-4aaf660d9495", + "flow_title": "6c娴嬭瘯鑷姩鍙戣捣娴佺▼" + } + + 鍙傛暟鎻忚堪锛� + 锛�1锛塼ype_code锛氱被鍨媢uid锛岀被鍨嬪敮涓�璇嗗埆 + 锛�2锛墌table~锛氫笟鍔¤〃鍚� + 锛�3锛塧ccepters锛氭帴鏀朵汉锛屽彧鑳戒负涓�涓� + 锛�4锛塽uid锛氫笟鍔¤〃uuid + 锛�5锛塮low_title锛氭祦绋嬫爣棰� +59.浜т腑鎵撳寘閮ㄧ讲 + jar閮ㄧ讲锛氭墦寮�宸ョ▼鐨刾om.mxl,鍙抽敭->Run as -> Maven install->杩涘叆宸ョ▼鐩綍->target鐩綍->copy 鎶婂畬鍖呯殑宸ョ▼jar锛屾斁鍒版湇鍔″櫒鐨勮繍琛岀洰褰曚笅鐨刲ib鐩綍涓嬶紙渚嬪200涓婏細D:\LXServer\product-server\lib锛� + 鍓嶇鏂囦欢閮ㄧ讲锛氳繘鍏x-web骞惰繍琛宲acked.bat锛岄噸鏂扮敓鎴恉ist鐩綍->杩涘叆dist鐩綍copy闄aseUrl.js浠ュ鐨勬墍鏈夋枃浠讹紝鏀惧埌鏈嶅姟鍣ㄧ殑杩愯鐩綍涓嬬殑web鐩綍涓嬨�� + 閲嶅惎锛堣繍琛屾闈㈠揩鎹烽敭锛� + +60.鍒嗛〉鏌ヨsql + select '6973' as staff_uuid 杩欑娌℃湁from鐨勮鍙�,瑕佹坊鍔� from dual锛屽惁鍒欏垎椤垫煡璇細鍑洪敊 + +61.鏌ヨ鍗曟潯璁板綍锛実etFieldSet... 涓� getFieldSetEntity...鐨勫尯鍒細 鍓嶉潰鏂规硶鍦ㄦ病鏈夋煡鍒版暟鎹椂杩斿洖涓嶄负绌猴紝鍚庨潰鏂规硶鍦ㄦ病鏈夋煡鍒版暟鎹椂杩斿洖null + +62.閰嶇疆鎶ヨ〃 + 鍋囪杩囨护鏉′欢涓�"start_time>=('2021-12-01 00:00:00','%Y-%m-%d %H:%i:%s')" + {$$} 绫诲瀷涓�0锛屽彧鍙栧�硷紝鍗充负"2021-12-01 00:00:00" + {^^} 绫诲瀷涓�1锛屽彇闄ゅ紑瀛楁澶栫殑鎵�鏈夊唴瀹癸紝鍗充负">=('2021-12-01 00:00:00','%Y-%m-%d %H:%i:%s')" + {&&} 绫诲瀷涓�2锛屽彇鎵�鏈夊唴瀹癸紝鍖呭惈瀛楁锛屽嵆涓�"start_time>=('2021-12-01 00:00:00','%Y-%m-%d %H:%i:%s')" + [[]] 鑻ユ槸鏍规嵁涓婇潰鐨勬墍鏈夋柟寮忔浛鎹箣鍚庝緷鐒跺瓨鍦ㄤ换鎰忎竴绉嶏紝鍓旈櫎鍖呭惈鍦ㄥ唴鐨勮繃婊ゆ潯浠� + +63.鏈夋湭鐭ラ敊璇啓娉� + catch (BaseException e) { + throw e; + } + catch (Exception e) { + BaseException be=new BaseException(FlowCode.SIGN_FAIL); + //SIGN_FAIL("绛剧珷澶辫触:{error}", ModuleEnum.ADMINISTRAT.getValue() + "080"), + //鍘熼敊璇殑淇℃伅浣滀负鍙傛暟浼犺繃鍘伙紝涓�骞舵樉绀� + be.setMessagePara("error", e.getMessage()); + throw be; + } +64.鏁版嵁寤烘ā瑙勫垯 + 瀛楁鏄剧ず鍚嶇О锛�4-6涓瓧锛岀簿缁冿紝鎻忚堪鎵嶆槸鍐欏娉ㄧ被鍨嬫枃瀛� + 瀛楁绫诲瀷锛岀敤鎴烽�塙serId锛屽浜洪�塙serIds,缁勭粐鏈烘瀯閫塷rgUuid,澶氫釜閫塷rgUuids锛屼笉鑳介�塖tring, 涓婚敭pk锛屽紩鐢ㄥ閿〃瀛楁閫塽uid + 鏄弬鐓х殑锛屼竴瀹氳鍔犱笂鍙傜収鍚嶏紝楂樼骇鍙傜収鍚嶅拰鏁版嵁瀛楀吀鍚嶏紝鏁版嵁瀛楀吀瑕佸姞銆妜xx銆嬫潵鍖哄垎 + 寮曠敤澶栭敭琛紝涓�瀹氳閫夛紝涓斿搴旂殑瀛楁绫诲瀷涓�瀹氳鏄疷UID + + \ No newline at end of file -- Gitblit v1.9.2