You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

491 lines
22 KiB

  1. namespace CounsellorBL.GROUP.ConstDefinition
  2. {
  3. using MonumentDefine;
  4. using OT.COM.ArsenalDB;
  5. using OT.COM.ArsenalDB.SQL;
  6. using SoldierData.EnterprizeV4;
  7. using System;
  8. using System.Collections.Generic;
  9. using System.Reflection;
  10. using static MonumentDefine.Enums;
  11. public class SQLLib : DirectSQLLibBase
  12. {
  13. public enum Action
  14. {
  15. SELECT_IDONLY = 0,
  16. SELECT_ALL = 1,
  17. DELETE = 2
  18. }
  19. public delegate string DE_Gen_tb_grp_group(Action i_aAction, List<object> i_asGroupName, ADirectCmdParameter cp);
  20. #region
  21. public SQLLib(ADirectSQLHelper i_sqlLibBase) : base(i_sqlLibBase) { }
  22. public virtual string GetArticleInRange(out Command o_cResult)
  23. {
  24. ADirectCmdParameter cp = GetParamter();
  25. DateTime dtNow = DateTime.Now;
  26. string sSQL = $@"SELECT a.{tb_grp_article.CN_UID},
  27. a.{tb_grp_article.CN_RETRY},
  28. a.{tb_grp_article.CN_NAME},
  29. a.{tb_grp_article.CN_FB_ARTICLE_ID},
  30. a.{tb_grp_article.CN_POST_STATUS},
  31. a.{tb_grp_article.CN_POST_DATE},
  32. a.{tb_grp_article.CN_RPA_STATUS},
  33. a.{tb_grp_article.CN_GROUP_USER_UID}
  34. FROM {GetFormalTableName<tb_grp_article>()} a
  35. WHERE a.{tb_grp_article.CN_STATUS_FLAG} = {cp.Add(BLWording.STATUS_FLAG_ON)} AND
  36. ((a.{tb_grp_article.CN_RELEASE_DATE} IS NULL AND a.{tb_grp_article.CN_POST_STATUS} = {cp.Add((int)EPostStatus.EPS_ARTICLE_AND_PHOTO)})
  37. OR
  38. (a.{tb_grp_article.CN_RETRY} < {cp.Add(5)} AND a.{tb_grp_article.CN_POST_STATUS} = {cp.Add((int)EPostStatus.EPS_FAIL)} AND (a.{tb_grp_article.CN_UPDATE_DATE} <= {cp.Add(dtNow)} AND
  39. a.{tb_grp_article.CN_UPDATE_DATE} > {cp.Add(dtNow.AddMinutes(-30))} ))
  40. OR
  41. (a.{tb_grp_article.CN_POST_STATUS} IN {cp.In(new List<object>() { (int)EPostStatus.EPS_SCHEDULE_WAITING, (int)EPostStatus.EPS_ARTICLE_AND_PHOTO }) }) AND (a.{tb_grp_article.CN_RELEASE_DATE} <= {cp.Add(dtNow)} AND
  42. a.{tb_grp_article.CN_RELEASE_DATE} > {cp.Add(dtNow.AddMinutes(-30))} ))";
  43. return GenerateCommand<tb_prd_product>(sSQL, cp, out o_cResult);
  44. }
  45. public virtual string GetScheduleWaitingArticleInRange(out Command o_cResult)
  46. {
  47. ADirectCmdParameter cp = GetParamter();
  48. DateTime dtNow = DateTime.Now;
  49. string sSQL = $@"SELECT a.{tb_grp_article.CN_UID},
  50. a.{tb_grp_article.CN_RETRY},
  51. a.{tb_grp_article.CN_NAME},
  52. a.{tb_grp_article.CN_FB_ARTICLE_ID},
  53. a.{tb_grp_article.CN_POST_STATUS},
  54. a.{tb_grp_article.CN_POST_DATE},
  55. a.{tb_grp_article.CN_RPA_STATUS},
  56. a.{tb_grp_article.CN_GROUP_USER_UID},
  57. a.{tb_grp_article.CN_GROUP_UID}
  58. FROM {GetFormalTableName<tb_grp_article>()} a
  59. WHERE
  60. a.{tb_grp_article.CN_POST_STATUS} = {cp.Add((int)EPostStatus.EPS_SCHEDULE_WAITING)} AND
  61. (a.{tb_grp_article.CN_RELEASE_DATE} <= {cp.Add(dtNow)} AND a.{tb_grp_article.CN_RELEASE_DATE} > {cp.Add(dtNow.AddMinutes(-30))} ) AND
  62. a.{tb_grp_article.CN_STATUS_FLAG} = {cp.Add((int)BLWording.STATUS_FLAG_ON)}";
  63. return GenerateCommand<tb_prd_product>(sSQL, cp, out o_cResult);
  64. }
  65. public virtual string GetMediadWaitingArticleInRange(out Command o_cResult)
  66. {
  67. ADirectCmdParameter cp = GetParamter();
  68. DateTime dtNow = DateTime.Now;
  69. string sSQL = $@"SELECT a.{tb_grp_article.CN_UID},
  70. a.{tb_grp_article.CN_RETRY},
  71. a.{tb_grp_article.CN_NAME},
  72. a.{tb_grp_article.CN_FB_ARTICLE_ID},
  73. a.{tb_grp_article.CN_POST_STATUS},
  74. a.{tb_grp_article.CN_POST_DATE},
  75. a.{tb_grp_article.CN_RPA_STATUS},
  76. a.{tb_grp_article.CN_GROUP_USER_UID},
  77. a.{tb_grp_article.CN_GROUP_UID}
  78. FROM {GetFormalTableName<tb_grp_article>()} a
  79. WHERE
  80. a.{tb_grp_article.CN_FB_ARTICLE_ID} IS NOT NULL AND
  81. a.{tb_grp_article.CN_POST_STATUS} = {cp.Add((int)EPostStatus.EPS_COMPLETE)} AND
  82. a.{tb_grp_article.CN_RPA_STATUS} = {cp.Add(0)} AND
  83. a.{tb_grp_article.CN_RETRY} < {cp.Add(5)} AND
  84. (a.{tb_grp_article.CN_POST_DATE} <= {cp.Add(dtNow)} AND a.{tb_grp_article.CN_POST_DATE} > {cp.Add(dtNow.AddMinutes(-30))} ) AND
  85. a.{tb_grp_article.CN_STATUS_FLAG} = {cp.Add((int)BLWording.STATUS_FLAG_ON)}";
  86. return GenerateCommand<tb_prd_product>(sSQL, cp, out o_cResult);
  87. }
  88. public virtual string GetFailWaitingArticleInRange(out Command o_cResult)
  89. {
  90. ADirectCmdParameter cp = GetParamter();
  91. DateTime dtNow = DateTime.Now;
  92. string sSQL = $@"SELECT a.{tb_grp_article.CN_UID},
  93. a.{tb_grp_article.CN_RETRY},
  94. a.{tb_grp_article.CN_NAME},
  95. a.{tb_grp_article.CN_FB_ARTICLE_ID},
  96. a.{tb_grp_article.CN_POST_STATUS},
  97. a.{tb_grp_article.CN_POST_DATE},
  98. a.{tb_grp_article.CN_RPA_STATUS},
  99. a.{tb_grp_article.CN_GROUP_USER_UID},
  100. a.{tb_grp_article.CN_GROUP_UID}
  101. FROM {GetFormalTableName<tb_grp_article>()} a
  102. WHERE
  103. a.{tb_grp_article.CN_POST_STATUS} = {cp.Add((int)EPostStatus.EPS_FAIL)} AND
  104. a.{tb_grp_article.CN_RPA_STATUS} = {cp.Add(0)} AND
  105. a.{tb_grp_article.CN_RETRY} < {cp.Add(5)} AND
  106. (
  107. (a.{tb_grp_article.CN_FB_ARTICLE_ID} IS NULL)
  108. OR
  109. (a.{tb_grp_article.CN_FB_ARTICLE_ID} IS NOT NULL AND (a.{tb_grp_article.CN_POST_DATE} <= {cp.Add(dtNow)} AND a.{tb_grp_article.CN_POST_DATE} > {cp.Add(dtNow.AddMinutes(-30))} ))
  110. ) AND
  111. a.{tb_grp_article.CN_STATUS_FLAG} = {cp.Add((int)BLWording.STATUS_FLAG_ON)}";
  112. return GenerateCommand<tb_prd_product>(sSQL, cp, out o_cResult);
  113. }
  114. public virtual string GetArticleInRangeTest(out Command o_cResult)
  115. {
  116. ADirectCmdParameter cp = GetParamter();
  117. string sSQL = $@"SELECT a.{tb_grp_article.CN_UID},
  118. a.{tb_grp_article.CN_RETRY},
  119. a.{tb_grp_article.CN_NAME},
  120. a.{tb_grp_article.CN_FB_ARTICLE_ID},
  121. a.{tb_grp_article.CN_POST_STATUS},
  122. a.{tb_grp_article.CN_POST_DATE},
  123. a.{tb_grp_article.CN_RPA_STATUS},
  124. a.{tb_grp_article.CN_GROUP_USER_UID}
  125. FROM {GetFormalTableName<tb_grp_article>()} a
  126. a.{tb_grp_article.CN_GROUP_USER_UID} IS NOT NULL AND
  127. WHERE a.{tb_grp_article.CN_FB_ARTICLE_ID} in ('274962260394168_378697063354020', '274962260394168_378746420015751')";
  128. return GenerateCommand<tb_prd_product>(sSQL, cp, out o_cResult);
  129. }
  130. #endregion
  131. public virtual string GetUIDs(Action i_aAction, string sFunctionName, List<object> i_asGroupName, out Command o_cResult)
  132. {
  133. string sMsg = null;
  134. Command cResultTemp = null;
  135. try
  136. {
  137. do
  138. {
  139. MethodInfo mi = this.GetType().GetMethod(sFunctionName);
  140. ADirectCmdParameter cp = GetParamter();
  141. string sSQL = (string)mi.Invoke(this, new object[] { i_aAction, i_asGroupName, cp });
  142. sMsg = GenerateCommand(typeof(tb_meb_member), sSQL, cp, out cResultTemp);
  143. if(sMsg != null)
  144. {
  145. break;
  146. }
  147. }
  148. while (false);
  149. }
  150. catch (Exception ex)
  151. {
  152. sMsg = ex.Message;
  153. }
  154. o_cResult = cResultTemp;
  155. return sMsg;
  156. }
  157. #region
  158. public string Gen_tb_sys_user2role(Action i_aAction, List<object> i_asGroupName, ADirectCmdParameter cp)
  159. {
  160. return GenIDsSQLByGroupName<tb_sys_user2role>(i_aAction,
  161. tb_sys_user2role.CN_UID,
  162. tb_sys_user2role.CN_ROLE_UID,
  163. i_asGroupName, cp, i_dgFunc: Gen_tb_sys_role);
  164. }
  165. public string Gen_tb_sys_role2org(Action i_aAction, List<object> i_asGroupName, ADirectCmdParameter cp)
  166. {
  167. return GenIDsSQLByGroupName<tb_sys_role2org>(i_aAction,
  168. tb_sys_role2org.CN_UID,
  169. tb_sys_role2org.CN_ROLE_UID,
  170. i_asGroupName, cp, i_dgFunc: Gen_tb_sys_role);
  171. }
  172. public string Gen_tb_sys_role(Action i_aAction, List<object> i_asGroupName, ADirectCmdParameter cp)
  173. {
  174. return GenIDsSQLByGroupName<tb_sys_role>(i_aAction,
  175. tb_sys_role.CN_UID,
  176. tb_sys_role.CN_GROUP_UID,
  177. i_asGroupName, cp);
  178. }
  179. public string Gen_tb_sys_user2entercode(Action i_aAction, List<object> i_asGroupName, ADirectCmdParameter cp)
  180. {
  181. return GenIDsSQLByGroupName<tb_sys_user2entercode>(i_aAction,
  182. tb_sys_user2entercode.CN_UID,
  183. tb_sys_user2entercode.CN_USER_UID,
  184. i_asGroupName, cp, i_dgFunc: Gen_tb_hr_employee);
  185. }
  186. public string Gen_tb_sys_user(Action i_aAction, List<object> i_asGroupName, ADirectCmdParameter cp)
  187. {
  188. return GenIDsSQLByGroupName<tb_sys_user>(i_aAction,
  189. tb_sys_user.CN_UID,
  190. tb_sys_user.CN_UID,
  191. i_asGroupName, cp, i_dgFunc: Gen_tb_hr_employee);
  192. }
  193. public string Gen_tb_grp_group2user(Action i_aAction, List<object> i_asGroupName, ADirectCmdParameter cp)
  194. {
  195. return GenIDsSQLByGroupName<tb_grp_group2user>(i_aAction,
  196. tb_grp_group2user.CN_UID,
  197. tb_grp_group2user.CN_GROUP_UID,
  198. i_asGroupName, cp);
  199. }
  200. public string Gen_tb_ord_message_log_record(Action i_aAction, List<object> i_asGroupName, ADirectCmdParameter cp)
  201. {
  202. return GenIDsSQLByGroupName<tb_ord_message_log_record>(i_aAction,
  203. tb_ord_message_log_record.CN_UID,
  204. tb_ord_message_log_record.CN_MEMBER_UID,
  205. i_asGroupName, cp, i_dgFunc: Gen_tb_meb_member);
  206. }
  207. public string Gen_tb_ord_message_log(Action i_aAction, List<object> i_asGroupName, ADirectCmdParameter cp)
  208. {
  209. return GenIDsSQLByGroupName<tb_ord_message_log>(i_aAction,
  210. tb_ord_message_log.CN_UID,
  211. tb_ord_message_log.CN_BRANCH_UID,
  212. i_asGroupName, cp, false, Gen_tb_grp_branch);
  213. }
  214. public string Gen_tb_ord_purchase_detail(Action i_aAction, List<object> i_asGroupName, ADirectCmdParameter cp)
  215. {
  216. return GenIDsSQLByGroupName<tb_ord_purchase_detail>(i_aAction,
  217. tb_ord_purchase_detail.CN_UID,
  218. tb_ord_purchase_detail.CN_BRANCH_UID,
  219. i_asGroupName, cp, false, Gen_tb_grp_branch);
  220. }
  221. public string Gen_tb_prd_product(Action i_aAction, List<object> i_asGroupName, ADirectCmdParameter cp)
  222. {
  223. return GenIDsSQLByGroupName<tb_prd_product>(i_aAction,
  224. tb_prd_product.CN_UID,
  225. tb_prd_product.CN_GROUP_ID,
  226. i_asGroupName, cp);
  227. }
  228. public string Gen_tb_sys_uploadlog(Action i_aAction, List<object> i_asGroupName, ADirectCmdParameter cp)
  229. {
  230. return GenIDsSQLByGroupName<tb_sys_uploadlog>(i_aAction,
  231. tb_sys_uploadlog.CN_UID,
  232. tb_sys_uploadlog.CN_UID,
  233. i_asGroupName, cp, false, GenArticleMediaMediaIDsSQLByGroupName);
  234. }
  235. public string GenArticleMediaMediaIDsSQLByGroupName(Action i_aAction, List<object> i_asGroupName, ADirectCmdParameter cp)
  236. {
  237. return GenIDsSQLByGroupName<tb_grp_article_media>(i_aAction,
  238. tb_grp_article_media.CN_MEDIA_ID,
  239. tb_grp_article_media.CN_ARTICLE_UID,
  240. i_asGroupName, cp, false, Gen_tb_grp_article);
  241. }
  242. public string Gen_tb_grp_article_media(Action i_aAction, List<object> i_asGroupName, ADirectCmdParameter cp)
  243. {
  244. return GenIDsSQLByGroupName<tb_grp_article_media>(i_aAction,
  245. tb_grp_article_media.CN_UID,
  246. tb_grp_article_media.CN_ARTICLE_UID,
  247. i_asGroupName, cp, true, Gen_tb_grp_article);
  248. }
  249. public string Gen_tb_ord_purchase(Action i_aAction, List<object> i_asGroupName, ADirectCmdParameter cp)
  250. {
  251. return GenIDsSQLByGroupName<tb_ord_purchase>(i_aAction,
  252. tb_ord_purchase.CN_UID,
  253. tb_ord_purchase.CN_MEMBER_UID,
  254. i_asGroupName, cp, i_dgFunc: Gen_tb_meb_member);
  255. }
  256. public string Gen_tb_prd_article2product(Action i_aAction, List<object> i_asGroupName, ADirectCmdParameter cp)
  257. {
  258. string sTarget = _ActionToSQL(i_aAction, false, tb_prd_article2product.CN_UID);
  259. string sTableAlias = (i_aAction == Action.SELECT_ALL) || (i_aAction == Action.SELECT_IDONLY) ? "a01" : "";
  260. return $@"{sTarget}
  261. FROM {GetFormalTableName<tb_prd_article2product>()} {sTableAlias}
  262. WHERE {tb_prd_article2product.CN_ARTICLE_UID} IN ( {Gen_tb_grp_article(Action.SELECT_IDONLY, i_asGroupName, cp)})
  263. OR {tb_prd_article2product.CN_PRD_UID} IN ( {Gen_tb_prd_product(Action.SELECT_IDONLY, i_asGroupName, cp)})
  264. ";
  265. /*return GenIDsSQLByGroupName<tb_prd_article2product>(i_aAction,
  266. tb_prd_article2product.CN_UID,
  267. tb_prd_article2product.CN_ARTICLE_UID,
  268. i_asGroupName, cp, false, Gen_tb_grp_article);*/
  269. }
  270. public string Gen_tb_grp_comment(Action i_aAction, List<object> i_asGroupName, ADirectCmdParameter cp)
  271. {
  272. return GenIDsSQLByGroupName<tb_grp_comment>(i_aAction,
  273. tb_grp_comment.CN_UID,
  274. tb_grp_comment.CN_ARTICLE_UID,
  275. i_asGroupName, cp, false, Gen_tb_grp_article);
  276. }
  277. public string Gen_tb_meb_shopping_points_record(Action i_aAction, List<object> i_asGroupName, ADirectCmdParameter cp)
  278. {
  279. return GenIDsSQLByGroupName<tb_meb_shopping_points_record>(i_aAction,
  280. tb_meb_shopping_points_record.CN_UID,
  281. tb_meb_shopping_points_record.CN_MEMBER_UID,
  282. i_asGroupName, cp, i_dgFunc: Gen_tb_meb_member);
  283. }
  284. protected string GenIDsSQLByGroupName<T>(Action i_aAction,
  285. string i_sDisplayTarget,
  286. string i_sWhereTarget,
  287. List<object> i_asGroupName,
  288. ADirectCmdParameter cp,
  289. bool i_bDistinct = false,
  290. DE_Gen_tb_grp_group i_dgFunc = null)
  291. {
  292. string sINCondition = (i_dgFunc == null) ? Gen_tb_grp_group(Action.SELECT_IDONLY, i_asGroupName, cp) : i_dgFunc(Action.SELECT_IDONLY, i_asGroupName, cp);
  293. // string sTarget = i_aAction ? "DELETE" : (i_bDistinct ? $"SELECT distinct a01.{i_sDisplayTarget} " : $"SELECT a01.{i_sDisplayTarget} ");
  294. string sTarget = _ActionToSQL(i_aAction, i_bDistinct, i_sDisplayTarget);
  295. string sTableAlias = (i_aAction == Action.SELECT_ALL) || (i_aAction == Action.SELECT_IDONLY) ? "a01" : "";
  296. return $@"{sTarget}
  297. FROM {GetFormalTableName<T>()} {sTableAlias}
  298. WHERE {i_sWhereTarget} IN ( {sINCondition})";
  299. }
  300. public string Gen_tb_ord_checkout_list_master(Action i_aAction, List<object> i_asGroupName, ADirectCmdParameter cp)
  301. {
  302. return GenIDsSQLByGroupName<tb_ord_checkout_list_master>(i_aAction,
  303. tb_ord_checkout_list_master.CN_UID,
  304. tb_ord_checkout_list_master.CN_GROUP_UID,
  305. i_asGroupName, cp);
  306. }
  307. public string Gen_tb_ord_checkout_list_detail(Action i_aAction, List<object> i_asGroupName, ADirectCmdParameter cp)
  308. {
  309. return GenIDsSQLByGroupName<tb_ord_checkout_list_detail>(i_aAction,
  310. tb_ord_checkout_list_detail.CN_UID,
  311. tb_ord_checkout_list_detail.CN_MEMBER_UID,
  312. i_asGroupName, cp, i_dgFunc: Gen_tb_meb_member);
  313. }
  314. public string Gen_tb_ord_order_master(Action i_aAction, List<object> i_asGroupName, ADirectCmdParameter cp)
  315. {
  316. return GenIDsSQLByGroupName<tb_ord_order_master>(i_aAction,
  317. tb_ord_order_master.CN_UID,
  318. tb_ord_order_master.CN_GROUP_UID,
  319. i_asGroupName, cp);
  320. }
  321. public string Gen_tb_ord_order_detail(Action i_aAction, List<object> i_asGroupName, ADirectCmdParameter cp)
  322. {
  323. return GenIDsSQLByGroupName<tb_ord_order_detail>(i_aAction,
  324. tb_ord_order_detail.CN_UID,
  325. tb_ord_order_detail.CN_MEMBER_UID,
  326. i_asGroupName, cp, i_dgFunc: Gen_tb_meb_member);
  327. }
  328. public string Gen_tb_hr_employee(Action i_aAction, List<object> i_asGroupName, ADirectCmdParameter cp)
  329. {
  330. return GenIDsSQLByGroupName<tb_hr_employee>(i_aAction,
  331. tb_hr_employee.CN_UID,
  332. tb_hr_employee.CN_RECEIVE_BRANCH_UID,
  333. i_asGroupName, cp, false, Gen_tb_grp_branch);
  334. }
  335. public string Gen_tb_hr_employee2branch(Action i_aAction, List<object> i_asGroupName, ADirectCmdParameter cp)
  336. {
  337. return GenIDsSQLByGroupName<tb_hr_employee2branch>(i_aAction,
  338. tb_hr_employee2branch.CN_UID,
  339. tb_hr_employee2branch.CN_BRANCH_UID,
  340. i_asGroupName, cp, false, Gen_tb_grp_branch);
  341. }
  342. public string Gen_tb_ord_incoming_return_record(Action i_aAction, List<object> i_asGroupName, ADirectCmdParameter cp)
  343. {
  344. string sTarget = _ActionToSQL(i_aAction, false, tb_ord_incoming_return_record.CN_UID);
  345. string sTableAlias = (i_aAction == Action.SELECT_ALL) || (i_aAction == Action.SELECT_IDONLY) ? "a01" : "";
  346. return $@"{sTarget}
  347. FROM {GetFormalTableName<tb_ord_incoming_return_record>()} {sTableAlias}
  348. WHERE {tb_ord_incoming_return_record.CN_ORDER_UID} IN ( {Gen_tb_ord_order_master(Action.SELECT_IDONLY, i_asGroupName, cp)})
  349. OR {tb_ord_incoming_return_record.CN_ARTICLE2PRODUCT_UID} IN ( {Gen_tb_prd_article2product(Action.SELECT_IDONLY, i_asGroupName, cp)})
  350. ";
  351. /*return GenIDsSQLByGroupName<tb_ord_incoming_return_record>(i_aAction,
  352. tb_ord_incoming_return_record.CN_UID,
  353. tb_ord_incoming_return_record.CN_ORDER_UID,
  354. i_asGroupName, cp, true, Gen_tb_ord_order_master);*/
  355. }
  356. /*
  357. public string Gen2_tb_ord_incoming_return_record(Action i_aAction, List<object> i_asGroupName, ADirectCmdParameter cp)
  358. {
  359. return GenIDsSQLByGroupName<tb_ord_incoming_return_record>(i_aAction,
  360. tb_ord_incoming_return_record.CN_UID,
  361. tb_ord_incoming_return_record.CN_ARTICLE2PRODUCT_UID,
  362. i_asGroupName, cp, false, Gen_tb_prd_article2product);
  363. }*/
  364. #endregion
  365. public string Gen_tb_meb_member(Action i_aAction, List<object> i_asGroupName, ADirectCmdParameter cp)
  366. {
  367. return GenIDsSQLByGroupName<tb_meb_member>(i_aAction,
  368. tb_meb_member.CN_UID,
  369. tb_meb_member.CN_GROUP_ID,
  370. i_asGroupName, cp, i_dgFunc: GenFBIDsSQLByGroupName);
  371. }
  372. public string Gen_tb_grp_branch(Action i_aAction, List<object> i_asGroupName, ADirectCmdParameter cp)
  373. {
  374. return GenIDsSQLByGroupName<tb_grp_branch>(i_aAction,
  375. tb_grp_branch.CN_UID,
  376. tb_grp_branch.CN_GROUP_UID,
  377. i_asGroupName, cp);
  378. }
  379. public string Gen_tb_grp_article(Action i_aAction, List<object> i_asGroupName, ADirectCmdParameter cp)
  380. {
  381. return GenIDsSQLByGroupName<tb_grp_article>(i_aAction,
  382. tb_grp_article.CN_UID,
  383. tb_grp_article.CN_GROUP_UID,
  384. i_asGroupName, cp);
  385. }
  386. private string _ActionToSQL(Action i_aAction, bool i_bDistinct, string i_sSpecificIDName = BLWording.UID)
  387. {
  388. string sRes = null;
  389. switch(i_aAction)
  390. {
  391. case Action.SELECT_ALL:
  392. sRes = $"SELECT * ";
  393. break;
  394. case Action.DELETE:
  395. sRes = "DELETE ";
  396. break;
  397. case Action.SELECT_IDONLY:
  398. sRes = i_bDistinct ? $"SELECT distinct a01.{i_sSpecificIDName} " : $"SELECT a01.{i_sSpecificIDName} ";
  399. break;
  400. }
  401. return sRes;
  402. }
  403. public string GenFBIDsSQLByGroupName(Action i_aAction, List<object> i_asGroupName, ADirectCmdParameter cp)
  404. {
  405. string sTarget = _ActionToSQL(i_aAction, false, tb_grp_group.CN_FB_GROUP_ID);
  406. string sTableAlias = (i_aAction == Action.SELECT_ALL) || (i_aAction == Action.SELECT_IDONLY) ? "a01" : "";
  407. return $@"{sTarget}
  408. FROM {GetFormalTableName<tb_grp_group>()} {sTableAlias}
  409. WHERE {tb_grp_group.CN_NAME} IN {cp.In(i_asGroupName)}";
  410. }
  411. public string Gen_tb_grp_group(Action i_aAction, List<object> i_asGroupName, ADirectCmdParameter cp)
  412. {
  413. string sTarget = _ActionToSQL(i_aAction, false, tb_grp_group.CN_UID);
  414. string sTableAlias = (i_aAction == Action.SELECT_ALL) || (i_aAction == Action.SELECT_IDONLY) ? "a01" : "";
  415. return $@"{sTarget}
  416. FROM {GetFormalTableName<tb_grp_group>()} {sTableAlias}
  417. WHERE {tb_grp_group.CN_NAME} IN {cp.In(i_asGroupName)}";
  418. }
  419. }
  420. }