业务层主要负责定义业务逻辑(规则、工作流、数据完整性等),接收来自表示层的数据请求,逻辑判断后,向数据访问层提交请求,并传递数据访问结果,业务逻辑层实际上是一个中间件,起着承上启下的重要作用。

在我们的项目中,所有的数据库语句和和逻辑判断尽量写在业务层(IA.Business)里面,这样既能规范层级的作用,同时也规范团队协作的标准,我们在业务层中的类都以实体类名称加上Bll来命名(如:Base_SysLogBll.cs)。

首先,我们需要创建业务类IA.Business:

创建好之后,我们需要引入Bobo.DataAccess.dll和Bobo.Repository.dll、Bobo.Utilities.dll程序集,以及IA.Entity实体。

然后我们需要根据实体类,创建对应的Bll业务类,如:

  1. using Bobo.Repository;
  2. using IA.Entity;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8.  
  9. namespace IA.Business
  10. {
  11. // <summary>
  12. /// 文章信息表
  13. /// <author>
  14. /// <name>YHB</name>
  15. /// <date>2018.10.18</date>
  16. /// </author>
  17. /// </summary>
  18. public class Com_ArticleBll : RepositoryFactory<Com_Article>
  19. {
  20. }
  21. }

  

这样我们依次把我们需要用的业务类建好,并通过业务仓储工厂继承IRepository接口(: RepositoryFactory<Com_Article>)   我们可以为不同的业务类创建不同的文件夹存放,比如系统的基础业务类,如Base_SysLogBll.cs、Base_DataDictionaryDetailBll.cs、Base_ProvinceCityBll.cs、Base_UserBll.cs等,我们把他放在SystemBusiness文件夹下,这样可以跟常规业务类划分开来。

下面,我们重点列出这几个业务类文件的方法内容,这些方法内容都是一般常规系统会用到的,其他一些特殊或者将会用到的,会在后续边用的过程中,在写入进去,包括其他常规的业务类。

(1)Base_SysLogBll

  1. using Bobo.DataAccess;
  2. using Bobo.DataAccess.DataBase;
  3. using Bobo.Repository;
  4. using Bobo.Utilities;
  5. using Bobo.Utilities.Membership;
  6. using IA.Entity;
  7. using System;
  8. using System.Collections.Generic;
  9. using System.Data.Common;
  10. using System.Linq;
  11. using System.Reflection;
  12. using System.Text;
  13. using System.Threading;
  14. using System.Threading.Tasks;
  15.  
  16. namespace IA.Business.SystemBusiness
  17. {
  18. /// <summary>
  19. /// 系统日志表
  20. /// <author>
  21. /// <name>YHB</name>
  22. /// <date>2018.08.18</date>
  23. /// </author>
  24. /// </summary>
  25. public class Base_SysLogBll : RepositoryFactory<Base_SysLog>
  26. {
  27. #region 静态实例化
  28. private static Base_SysLogBll item;
  29. public static Base_SysLogBll Instance
  30. {
  31. get
  32. {
  33. if (item == null)
  34. {
  35. item = new Base_SysLogBll();
  36. }
  37. return item;
  38. }
  39. }
  40. #endregion
  41.  
  42. public Base_SysLog SysLog = new Base_SysLog();
  43.  
  44. #region 写入操作日志
  45. /// <summary>
  46. /// 写入作业日志
  47. /// </summary>
  48. /// <param name="ObjectId">对象主键</param>
  49. /// <param name="OperationType">操作类型</param>
  50. /// <param name="State">状态</param>
  51. /// <param name="Remark">操作说明</param>
  52. /// <returns></returns>
  53. public void WriteLog(string ObjectId, OperationType OperationType, string State, string Remark = "")
  54. {
  55. SysLog.SysLogId = CommonHelper.GetGuid();
  56. SysLog.ObjectId = ObjectId;
  57. SysLog.LogType = CommonHelper.GetString((int)OperationType);
  58. if (ManageProvider.Provider.IsOverdue())
  59. {
  60. SysLog.IPAddress = ManageProvider.Provider.Current().IPAddress;
  61. SysLog.IPAddressName = ManageProvider.Provider.Current().IPAddressName;
  62. SysLog.CompanyId = ManageProvider.Provider.Current().CompanyId;
  63. SysLog.DepartmentId = ManageProvider.Provider.Current().DepartmentId;
  64. SysLog.CreateUserId = ManageProvider.Provider.Current().UserId;
  65. SysLog.CreateUserName = ManageProvider.Provider.Current().UserName;
  66. }
  67. SysLog.ModuleId = DESEncrypt.Decrypt(CookieHelper.GetCookie("ModuleId"));
  68. SysLog.Remark = Remark;
  69. SysLog.Status = State;
  70. ThreadPool.QueueUserWorkItem(new WaitCallback(WriteLogUsu), SysLog);//放入异步执行
  71. }
  72.  
  73. private void WriteLogUsu(object obSysLog)
  74. {
  75. Base_SysLog VSysLog = (Base_SysLog)obSysLog;
  76. DataFactory.Database().Insert(VSysLog);
  77. }
  78. /// <summary>
  79. /// 写入作业日志(新增操作)
  80. /// </summary>
  81. /// <param name="entity">实体对象</param>
  82. /// <param name="OperationType">操作类型</param>
  83. /// <param name="State">状态</param>
  84. /// <param name="Remark">操作说明</param>
  85. /// <returns></returns>
  86. public void WriteLog<T>(T entity, OperationType OperationType, string State, string Remark = "")
  87. {
  88. IDatabase database = DataFactory.Database();
  89. DbTransaction isOpenTrans = database.BeginTrans();
  90. try
  91. {
  92. SysLog.SysLogId = CommonHelper.GetGuid();
  93. SysLog.ObjectId = DatabaseCommon.GetKeyFieldValue(entity).ToString();
  94. SysLog.LogType = CommonHelper.GetString((int)OperationType);
  95. SysLog.IPAddress = ManageProvider.Provider.Current().IPAddress;
  96. SysLog.IPAddressName = ManageProvider.Provider.Current().IPAddressName;
  97. SysLog.CompanyId = ManageProvider.Provider.Current().CompanyId;
  98. SysLog.DepartmentId = ManageProvider.Provider.Current().DepartmentId;
  99. SysLog.CreateUserId = ManageProvider.Provider.Current().UserId;
  100. SysLog.CreateUserName = ManageProvider.Provider.Current().UserName;
  101. SysLog.ModuleId = DESEncrypt.Decrypt(CookieHelper.GetCookie("ModuleId"));
  102. if (Remark == "")
  103. {
  104. SysLog.Remark = DatabaseCommon.GetClassName<T>();
  105. }
  106. SysLog.Remark = Remark;
  107. SysLog.Status = State;
  108. database.Insert(SysLog, isOpenTrans);
  109. //添加日志详细信息
  110. Type objTye = typeof(T);
  111. foreach (PropertyInfo pi in objTye.GetProperties())
  112. {
  113. object value = pi.GetValue(entity, null);
  114. if (value != null && value.ToString() != " " && value.ToString() != "")
  115. {
  116.  
  117. Base_SysLogDetail syslogdetail = new Base_SysLogDetail();
  118. syslogdetail.SysLogDetailId = CommonHelper.GetGuid();
  119. //syslogdetail.SysLogId = SysLog.SysLogId;
  120. syslogdetail.PropertyField = pi.Name;
  121. syslogdetail.PropertyName = DatabaseCommon.GetFieldText(pi);
  122. syslogdetail.NewValue = "" + value + "";
  123. database.Insert(syslogdetail, isOpenTrans);
  124. }
  125. }
  126. database.Commit();
  127. }
  128. catch
  129. {
  130. database.Rollback();
  131. }
  132. }
  133. /// <summary>
  134. /// 写入作业日志(更新操作)
  135. /// </summary>
  136. /// <param name="oldObj">旧实体对象</param>
  137. /// <param name="newObj">新实体对象</param>
  138. /// <param name="OperationType">操作类型</param>
  139. /// <param name="State">状态</param>
  140. /// <param name="Remark">操作说明</param>
  141. /// <returns></returns>
  142. public void WriteLog<T>(T oldObj, T newObj, OperationType OperationType, string State, string Remark = "")
  143. {
  144. IDatabase database = DataFactory.Database();
  145. DbTransaction isOpenTrans = database.BeginTrans();
  146. try
  147. {
  148. SysLog.SysLogId = CommonHelper.GetGuid();
  149. SysLog.ObjectId = DatabaseCommon.GetKeyFieldValue(newObj).ToString();
  150. SysLog.LogType = CommonHelper.GetString((int)OperationType);
  151. SysLog.IPAddress = ManageProvider.Provider.Current().IPAddress;
  152. SysLog.IPAddressName = ManageProvider.Provider.Current().IPAddressName;
  153. SysLog.CompanyId = ManageProvider.Provider.Current().CompanyId;
  154. SysLog.DepartmentId = ManageProvider.Provider.Current().DepartmentId;
  155. SysLog.CreateUserId = ManageProvider.Provider.Current().UserId;
  156. SysLog.CreateUserName = ManageProvider.Provider.Current().UserName;
  157. SysLog.ModuleId = DESEncrypt.Decrypt(CookieHelper.GetCookie("ModuleId"));
  158. if (Remark == "")
  159. {
  160. SysLog.Remark = DatabaseCommon.GetClassName<T>();
  161. }
  162. SysLog.Remark = Remark;
  163. SysLog.Status = State;
  164. database.Insert(SysLog, isOpenTrans);
  165. //添加日志详细信息
  166. Type objTye = typeof(T);
  167. foreach (PropertyInfo pi in objTye.GetProperties())
  168. {
  169. object oldVal = pi.GetValue(oldObj, null);
  170. object newVal = pi.GetValue(newObj, null);
  171. if (!Equals(oldVal, newVal))
  172. {
  173. if (oldVal != null && oldVal.ToString() != " " && oldVal.ToString() != "" && newVal != null && newVal.ToString() != " " && newVal.ToString() != "")
  174. {
  175. Base_SysLogDetail syslogdetail = new Base_SysLogDetail();
  176. syslogdetail.SysLogDetailId = CommonHelper.GetGuid();
  177. //syslogdetail.SysLogId = SysLog.SysLogId;
  178. syslogdetail.PropertyField = pi.Name;
  179. syslogdetail.PropertyName = DatabaseCommon.GetFieldText(pi);
  180. syslogdetail.NewValue = "" + newVal + "";
  181. syslogdetail.OldValue = "" + oldVal + "";
  182. database.Insert(syslogdetail, isOpenTrans);
  183. }
  184. }
  185. }
  186. database.Commit();
  187. }
  188. catch
  189. {
  190. database.Rollback();
  191. }
  192. }
  193. /// <summary>
  194. /// 写入作业日志(删除操作)
  195. /// </summary>
  196. /// <param name="oldObj">旧实体对象</param>
  197. /// <param name="KeyValue">对象主键</param>
  198. /// <param name="State">状态</param>
  199. /// <param name="Remark">操作说明</param>
  200. public void WriteLog<T>(string[] KeyValue, string State, string Remark = "") where T : new()
  201. {
  202. IDatabase database = DataFactory.Database();
  203. DbTransaction isOpenTrans = database.BeginTrans();
  204. try
  205. {
  206. foreach (var item in KeyValue)
  207. {
  208. T Oldentity = database.FindEntity<T>(item.ToString());
  209. SysLog.SysLogId = CommonHelper.GetGuid();
  210. SysLog.ObjectId = item;
  211. SysLog.LogType = CommonHelper.GetString((int)OperationType.Delete);
  212. SysLog.IPAddress = ManageProvider.Provider.Current().IPAddress;
  213. SysLog.IPAddressName = ManageProvider.Provider.Current().IPAddressName;
  214. SysLog.CompanyId = ManageProvider.Provider.Current().CompanyId;
  215. SysLog.DepartmentId = ManageProvider.Provider.Current().DepartmentId;
  216. SysLog.CreateUserId = ManageProvider.Provider.Current().UserId;
  217. SysLog.CreateUserName = ManageProvider.Provider.Current().UserName;
  218. SysLog.ModuleId = DESEncrypt.Decrypt(CookieHelper.GetCookie("ModuleId"));
  219. if (Remark == "")
  220. {
  221. SysLog.Remark = DatabaseCommon.GetClassName<T>();
  222. }
  223. SysLog.Remark = Remark;
  224. SysLog.Status = State;
  225. database.Insert(SysLog, isOpenTrans);
  226. //添加日志详细信息
  227. Type objTye = typeof(T);
  228. foreach (PropertyInfo pi in objTye.GetProperties())
  229. {
  230. object value = pi.GetValue(Oldentity, null);
  231. if (value != null && value.ToString() != " " && value.ToString() != "")
  232. {
  233. Base_SysLogDetail syslogdetail = new Base_SysLogDetail();
  234. syslogdetail.SysLogDetailId = CommonHelper.GetGuid();
  235. //syslogdetail.SysLogId = SysLog.SysLogId;
  236. syslogdetail.PropertyField = pi.Name;
  237. syslogdetail.PropertyName = DatabaseCommon.GetFieldText(pi);
  238. syslogdetail.NewValue = "" + value + "";
  239. database.Insert(syslogdetail, isOpenTrans);
  240. }
  241. }
  242. }
  243. database.Commit();
  244. }
  245. catch
  246. {
  247. database.Rollback();
  248. }
  249. }
  250. #endregion
  251.  
  252. /// <summary>
  253. /// 清空操作日志
  254. /// </summary>
  255. /// <param name="CreateDate"></param>
  256. /// <returns></returns>
  257. public int RemoveLog(string KeepTime)
  258. {
  259. StringBuilder strSql = new StringBuilder();
  260. DateTime CreateDate = DateTime.Now;
  261. if (KeepTime == "7")//保留近一周
  262. {
  263. CreateDate = DateTime.Now.AddDays(-7);
  264. }
  265. else if (KeepTime == "1")//保留近一个月
  266. {
  267. CreateDate = DateTime.Now.AddMonths(-1);
  268. }
  269. else if (KeepTime == "3")//保留近三个月
  270. {
  271. CreateDate = DateTime.Now.AddMonths(-3);
  272. }
  273. if (KeepTime == "0")//不保留,全部删除
  274. {
  275. strSql.Append("DELETE FROM Base_SysLog");
  276. return DataFactory.Database().ExecuteBySql(strSql);
  277. }
  278. else
  279. {
  280. strSql.Append("DELETE FROM Base_SysLog WHERE 1=1 ");
  281. strSql.Append("AND CreateDate <= @CreateDate");
  282. List<DbParameter> parameter = new List<DbParameter>();
  283. parameter.Add(DbFactory.CreateDbParameter("@CreateDate", CreateDate));
  284. return DataFactory.Database().ExecuteBySql(strSql, parameter.ToArray());
  285. }
  286. }
  287. /// <summary>
  288. /// 获取系统日志列表
  289. /// </summary>
  290. /// <param name="ModuleId">模块ID</param>
  291. /// <param name="ParameterJson">搜索条件</param>
  292. /// <param name="jqgridparam">分页条件</param>
  293. /// <returns></returns>
  294. public List<Base_SysLog> GetPageList(string ModuleId, string ParameterJson, ref JqGridParam jqgridparam)
  295. {
  296. StringBuilder strSql = new StringBuilder();
  297. List<DbParameter> parameter = new List<DbParameter>();
  298. strSql.Append(@"SELECT *
  299. FROM ( SELECT l.SysLogId ,
  300. l.ObjectId ,
  301. l.LogType ,
  302. l.IPAddress ,
  303. l.IPAddressName ,
  304. l.CreateDate ,
  305. l.CreateUserId ,
  306. l.CreateUserName ,
  307. l.ModuleId AS Module,
  308. m.FullName AS ModuleId ,
  309. l.Remark ,
  310. l.State
  311. FROM Base_SysLog l
  312. LEFT JOIN Base_Module m ON m.ModuleId = l.ModuleId
  313. ) A WHERE 1 = 1");
  314. //strSql.Append(WhereSql);
  315. if (!string.IsNullOrEmpty(ModuleId))
  316. {
  317. strSql.Append(" AND Module = @ModuleId");
  318. parameter.Add(DbFactory.CreateDbParameter("@ModuleId", ModuleId));
  319. }
  320. return Repository().FindListPageBySql(strSql.ToString(), parameter.ToArray(), ref jqgridparam);
  321. }
  322. /// <summary>
  323. /// 获取系统日志明细列表
  324. /// </summary>
  325. /// <param name="SysLogId">系统日志主键</param>
  326. /// <returns></returns>
  327. public List<Base_SysLogDetail> GetSysLogDetailList(string SysLogId)
  328. {
  329. string WhereSql = " AND SysLogId = @SysLogId Order By CreateDate ASC";
  330. List<DbParameter> parameter = new List<DbParameter>();
  331. parameter.Add(DbFactory.CreateDbParameter("@SysLogId", SysLogId));
  332. return DataFactory.Database().FindList<Base_SysLogDetail>(WhereSql, parameter.ToArray());
  333. }
  334. }
  335. /// <summary>
  336. /// 操作类型
  337. /// </summary>
  338. public enum OperationType
  339. {
  340. /// <summary>
  341. /// 登陆
  342. /// </summary>
  343. Login = 0,
  344. /// <summary>
  345. /// 新增
  346. /// </summary>
  347. Add = 1,
  348. /// <summary>
  349. /// 修改
  350. /// </summary>
  351. Update = 2,
  352. /// <summary>
  353. /// 删除
  354. /// </summary>
  355. Delete = 3,
  356. /// <summary>
  357. /// 其他
  358. /// </summary>
  359. Other = 4,
  360. /// <summary>
  361. /// 访问
  362. /// </summary>
  363. Visit = 5,
  364. /// <summary>
  365. /// 离开
  366. /// </summary>
  367. Leave = 6,
  368. /// <summary>
  369. /// 查询
  370. /// </summary>
  371. Query = 7,
  372. /// <summary>
  373. /// 安全退出
  374. /// </summary>
  375. Exit = 8,
  376. }
  377. }

  

(2)Base_DataDictionaryDetailBll

  1. using Bobo.DataAccess;
  2. using Bobo.Repository;
  3. using Bobo.Utilities;
  4. using IA.Entity;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Data;
  8. using System.Data.Common;
  9. using System.Linq;
  10. using System.Text;
  11. using System.Threading.Tasks;
  12.  
  13. namespace IA.Business.SystemBusiness
  14. {
  15. // <summary>
  16. /// 数据字典表
  17. /// <author>
  18. /// <name>YHB</name>
  19. /// <date>2018.10.18</date>
  20. /// </author>
  21. /// </summary>
  22. public class Base_DataDictionaryDetailBll : RepositoryFactory<Base_DataDictionaryDetail>
  23. {
  24.  
  25. /// <summary>
  26. /// 根据字典类型和编码获取字典详细
  27. /// </summary>
  28. /// <param name="DataDictionaryType"></param>
  29. /// <param name="Code"></param>
  30. /// <returns></returns>
  31. public List<Base_DataDictionaryDetail> GetDataducListByTypeCode(string DataDictionaryType, string Code)
  32. {
  33.  
  34. StringBuilder Sql = new StringBuilder();
  35. List<DbParameter> param = new List<DbParameter>();
  36. Sql.Append(@"SELECT * FROM Base_DataDictionaryDetail WHERE DeleteMark<>1");
  37. if (!StringHelper.IsNullOrEmpty(DataDictionaryType))
  38. {
  39. Sql.Append(@" AND DataDictionaryType=@DataDictionaryType");
  40. param.Add(DbFactory.CreateDbParameter("@DataDictionaryType", DataDictionaryType));
  41. }
  42. if (!StringHelper.IsNullOrEmpty(Code))
  43. {
  44. Sql.Append(@" AND Code=@Code");
  45. param.Add(DbFactory.CreateDbParameter("@Code", Code));
  46. }
  47. return Factory.FindListBySql(Sql.ToString(), param.ToArray());
  48. }
  49. /// <summary>
  50. /// 获取类型关键字
  51. /// </summary>
  52. /// <param name="DataDictionaryTitle"></param>
  53. /// <param name="DataDictionaryType"></param>
  54. /// <returns></returns>
  55. public List<Base_DataDictionaryDetail> GetDataDictionaryList(string DataDictionaryTitle, string DataDictionaryType)
  56. {
  57.  
  58. StringBuilder Sql = new StringBuilder();
  59. List<DbParameter> param = new List<DbParameter>();
  60. Sql.Append(@"SELECT * FROM Base_DataDictionaryDetail WHERE DeleteMark<>1");
  61. if (!StringHelper.IsNullOrEmpty(DataDictionaryType))
  62. {
  63. Sql.Append(@" AND DataDictionaryType=@DataDictionaryType");
  64. param.Add(DbFactory.CreateDbParameter("@DataDictionaryType", DataDictionaryType));
  65. }
  66. if (!StringHelper.IsNullOrEmpty(DataDictionaryTitle))
  67. {
  68. Sql.Append(@" AND DataDictionaryTitle like @DataDictionaryTitle");
  69. param.Add(DbFactory.CreateDbParameter("@DataDictionaryTitle", '%' + DataDictionaryTitle + '%'));
  70. }
  71. return Factory.FindListBySql(Sql.ToString(), param.ToArray());
  72. }
  73.  
  74. /// <summary>
  75. /// 获取关于协会分页数据
  76. /// </summary>
  77. /// <param name="ArticleTitle"></param>
  78. /// <param name="jgp"></param>
  79. /// <returns></returns>
  80. public DataTable GetAboutTablePage(ref JqGridParam jgp)
  81. {
  82. StringBuilder Sql = new StringBuilder();
  83. List<DbParameter> param = new List<DbParameter>();
  84. Sql.Append(@"SELECT * FROM(
  85. SELECT X1.DataDictionaryTitle,X1.Code,X1.SortCode,X2.* from (SELECT * FROM dbo.Base_DataDictionaryDetail WHERE DeleteMark<>1 AND DataDictionaryType='About') X1
  86. LEFT JOIN (SELECT * FROM Com_Article WHERE DeleteMark<>1 AND State=1) X2
  87. ON X1.Code=x2.ArticleType) TT WHERE 1=1 ");
  88. return Factory.FindTablePageBySql(Sql.ToString(), param.ToArray(), ref jgp);
  89. }
  90. /// <summary>
  91. ///
  92. /// </summary>
  93. /// <param name="jgp"></param>
  94. /// <returns></returns>
  95. public DataTable GetAboutTableAllPage(ref JqGridParam jgp)
  96. {
  97. StringBuilder Sql = new StringBuilder();
  98. List<DbParameter> param = new List<DbParameter>();
  99. Sql.Append(@"SELECT * FROM(
  100. SELECT X1.DataDictionaryTitle,X1.Code,X1.SortCode,X2.* from (SELECT * FROM dbo.Base_DataDictionaryDetail WHERE DeleteMark<>1 AND DataDictionaryType='About') X1
  101. LEFT JOIN (SELECT * FROM Com_Article WHERE DeleteMark<>1) X2
  102. ON X1.Code=x2.ArticleType) TT WHERE 1=1 ");
  103. return Factory.FindTablePageBySql(Sql.ToString(), param.ToArray(), ref jgp);
  104. }
  105. /// <summary>
  106. /// 添加关键字
  107. /// </summary>
  108. /// <param name="ContentKey"></param>
  109. /// <returns></returns>
  110. public int SubContentKey(string ContentKey)
  111. {
  112. List<DbParameter> param = new List<DbParameter>();
  113. string[] ContentKeyArr = ContentKey.Split(',');
  114. int num = 0;
  115. try
  116. {
  117. if (ContentKeyArr.Length > 0)
  118. {
  119. foreach (var item in ContentKeyArr)
  120. {
  121. StringBuilder Sql = new StringBuilder();
  122. Sql.Append(@"DELETE Base_DataDictionaryDetail WHERE DeleteMark<>1 AND DataDictionaryType='ContentKey' AND DataDictionaryTitle='" + item + "'");
  123. Factory.ExecuteBySql(Sql);
  124. Base_DataDictionaryDetail entiy = new Base_DataDictionaryDetail();
  125. entiy.DataDictionaryTitle = item;
  126. entiy.DataDictionaryType = "ContentKey";
  127. entiy.Create();
  128. Factory.Insert(entiy);
  129. }
  130. num = 1;
  131. }
  132. else
  133. {
  134. num = 0;
  135. }
  136.  
  137. }
  138. catch
  139. {
  140. num= 0;
  141. }
  142. return num;
  143. }
  144.  
  145. /// <summary>
  146. /// 获取有数据的关键字
  147. /// </summary>
  148. /// <param name="Type">关键字类型</param>
  149. /// <returns></returns>
  150. public List<Base_DataDictionaryDetail> GetContentKeyList(string Type)
  151. {
  152. StringBuilder Sql = new StringBuilder();
  153. List<DbParameter> param = new List<DbParameter>();
  154.  
  155. if (!StringHelper.IsNullOrEmpty(Type))
  156. {
  157. Sql.Append(@"SELECT * FROM(
  158. SELECT
  159. (SELECT COUNT(FileID) FROM dbo.Com_Attachment
  160. WHERE DeleteMark<>1 AND ContentKey like '%'+x.DataDictionaryTitle+'%'
  161. AND FileType=@FileType) FileCount,
  162. x.DataDictionaryTitle,
  163. x.DataDictionaryType,
  164. '"+Type+@"' Code,
  165. x.DeleteMark
  166. FROM dbo.Base_DataDictionaryDetail x) T
  167. WHERE DataDictionaryType='ContentKey' AND DeleteMark<>1 AND FileCount>0");
  168. param.Add(DbFactory.CreateDbParameter("@FileType", Type));
  169. }
  170.  
  171. return Factory.FindListBySql(Sql.ToString(), param.ToArray());
  172. }
  173.  
  174. }
  175. }

  

(3)Base_ProvinceCityBll

  1. using Bobo.DataAccess;
  2. using Bobo.Repository;
  3. using Bobo.Utilities;
  4. using IA.Entity;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Data.Common;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11.  
  12. namespace IA.Business.SystemBusiness
  13. {
  14. // <summary>
  15. /// 省市区域表
  16. /// <author>
  17. /// <name>YHB</name>
  18. /// <date>2018.10.18</date>
  19. /// </author>
  20. /// </summary>
  21. public class Base_ProvinceCityBll : RepositoryFactory<Base_ProvinceCity>
  22. {
  23. /// <summary>
  24. /// 获取区域列表
  25. /// </summary>
  26. /// <param name="ParentId">附件ID</param>
  27. /// <param name="Category">区域类型(province,city)</param>
  28. /// <param name="Code">区划代码</param>
  29. /// <param name="FullName">区域名称</param>
  30. /// <returns></returns>
  31. public List<Base_ProvinceCity> GetProvinceCityList(string ParentId, string Category, string Code, string FullName)
  32. {
  33. StringBuilder whereSql = new StringBuilder();
  34. List<DbParameter> param = new List<DbParameter>();
  35.  
  36. whereSql.Append(@" AND DeleteMark<>1");
  37.  
  38. if (!StringHelper.IsNullOrEmpty(ParentId))
  39. {
  40. whereSql.Append(@" AND ParentId=@ParentId");
  41. param.Add(DbFactory.CreateDbParameter("@ParentId", ParentId));
  42. }
  43. if (!StringHelper.IsNullOrEmpty(Category))
  44. {
  45. whereSql.Append(@" AND Category=@Category");
  46. param.Add(DbFactory.CreateDbParameter("@Category", Category));
  47. }
  48. if (!StringHelper.IsNullOrEmpty(Code))
  49. {
  50. whereSql.Append(@" AND Code=@Code");
  51. param.Add(DbFactory.CreateDbParameter("@Code", Code));
  52. }
  53. if (!StringHelper.IsNullOrEmpty(FullName))
  54. {
  55. whereSql.Append(@" AND FullName like '%" + FullName + "%'");
  56. }
  57.  
  58. whereSql.Append(@" ORDER BY SortCode DESC");
  59. return Factory.FindList(whereSql.ToString(), param.ToArray());
  60. }
  61. }
  62. }

(4)Base_UserBll

  1. using Bobo.DataAccess.DebugLog;
  2. using Bobo.Repository;
  3. using Bobo.Utilities;
  4. using Bobo.Utilities.Membership;
  5. using IA.Entity;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Data;
  9. using System.Linq;
  10. using System.Text;
  11. using System.Threading.Tasks;
  12.  
  13. namespace IA.Business.SystemBusiness
  14. {
  15. /// <summary>
  16. /// 系统用户表
  17. /// </summary>
  18. public class Base_UserBll : RepositoryFactory<Base_User>
  19. {
  20. /// <summary>
  21. /// 用户登录
  22. /// </summary>
  23. /// <param name="Account"></param>
  24. /// <param name="Password"></param>
  25. /// <param name="IPAddressName"></param>
  26. /// <param name="IPAddress"></param>
  27. /// <returns></returns>
  28. public int UserLogin(string Account, string Password, string IPAddressName, string IPAddress)
  29. {
  30. if (!this.IsLinkServer())
  31. {
  32. throw new Exception("服务器连接不上," + DbResultMsg.ReturnMsg);
  33. }
  34. else
  35. {
  36. Base_User entity = Factory.FindEntity("Account", Account);
  37. if (!StringHelper.IsNullOrEmpty(entity) && !StringHelper.IsNullOrEmpty(entity.UserId))
  38. {
  39. if (entity.Password == Md5Helper.CreateMd5(DESEncrypt.Encrypt(Password, BaseFactory.BaseHelper().GetPwodKey()).ToLower(), 32).ToLower())
  40. {
  41.  
  42. IManageUser imanageuser = new IManageUser();
  43. imanageuser.UserId = entity.UserId;
  44. imanageuser.Account = entity.Account;
  45. imanageuser.UserName = entity.RealName;
  46. imanageuser.Gender = Convert.ToString(entity.Sex);
  47. imanageuser.Code = "System";
  48. imanageuser.LogTime = DateTime.Now;
  49. imanageuser.CompanyId = "系统";
  50. imanageuser.DepartmentId = "系统";
  51. imanageuser.IPAddress = IPAddress;
  52. imanageuser.IPAddressName = IPAddressName;
  53. imanageuser.IsSystem = true;
  54. imanageuser.Password = Md5Helper.CreateMd5(DESEncrypt.Encrypt(Password, BaseFactory.BaseHelper().GetPwodKey()).ToLower(), 32).ToLower();
  55. ManageProvider.Provider.AddCurrent(imanageuser, false);
  56. return 1;//登录成功
  57. }
  58. else
  59. {
  60. return 3;//密码错误
  61. }
  62. }
  63. else
  64. {
  65. return 2;//账户不存在
  66. }
  67. }
  68. }
  69.  
  70. /// <summary>
  71. /// 判断是否连接服务器
  72. /// </summary>
  73. /// <returns></returns>
  74. public bool IsLinkServer()
  75. {
  76. StringBuilder strSql = new StringBuilder();
  77. strSql.Append("SELECT GETDATE()");
  78. DataTable dt = Repository().FindTableBySql(strSql.ToString());
  79. if (dt != null && dt.Rows.Count > 0)
  80. {
  81. return true;
  82. }
  83. else
  84. {
  85. return false;
  86. }
  87. }
  88. }
  89. }

  

ASP.NET MVC 实现页落网资源分享网站+充值管理+后台管理(5)之业务层的更多相关文章

  1. ASP.NET MVC 实现页落网资源分享网站+充值管理+后台管理(13)之会员登录注册

    源码下载地址:http://www.yealuo.com/Sccnn/Detail?KeyValue=c891ffae-7441-4afb-9a75-c5fe000e3d1c 会员中心,是我们与用户交 ...

  2. ASP.NET MVC 实现页落网资源分享网站+充值管理+后台管理(1)之数据库设计

    本文主要讲解本项目网站所应用到的知识点,及数据库的相关设计: 一.知识点 (1)本项目主要采取ASP.NET MVC的编程模式,相信你已经了解到了MVC的具体含义是什么,这里不再赘述,有不了解的朋友, ...

  3. ASP.NET MVC 实现页落网资源分享网站+充值管理+后台管理(16)之轻博客

    源码下载地址:http://www.yealuo.com/Sccnn/Detail?KeyValue=c891ffae-7441-4afb-9a75-c5fe000e3d1c 项目到上面一步其实已经算 ...

  4. ASP.NET MVC 实现页落网资源分享网站+充值管理+后台管理(15)之前台网站页面

    源码下载地址:http://www.yealuo.com/Sccnn/Detail?KeyValue=c891ffae-7441-4afb-9a75-c5fe000e3d1c 本项目主要是一个素材的分 ...

  5. ASP.NET MVC 实现页落网资源分享网站+充值管理+后台管理(14)之会员中心管理

    源码下载地址:http://www.yealuo.com/Sccnn/Detail?KeyValue=c891ffae-7441-4afb-9a75-c5fe000e3d1c 会员中心,主要包含了会员 ...

  6. ASP.NET MVC 实现页落网资源分享网站+充值管理+后台管理(9)之系统登录

    前面我们已经做好了一个文章管理功能模块,接下来,我们回头来做登录窗口,登录不仅涉及到登录验证还涉及到登录日志还有缓存时长等. 对于缓存的相关设置,我们已经写好封装在Bobo.Utilities.dll ...

  7. ASP.NET MVC 实现页落网资源分享网站+充值管理+后台管理(7)之扩展基类和区域创建以及文本编辑配置

    一.扩展基类和区域创建 (1)在应用之前,我们先在表现层创建一个公共的系统扩展文件来(SystemExtension)存放我们需要延伸和扩展的方法类. 在常规的项目系统操作中,我们都需要用到增删查改的 ...

  8. ASP.NET MVC 实现页落网资源分享网站+充值管理+后台管理(2)之创建项目

    我们在创建项目的时候一定要遵循层次和命名的原则,同时也要有统一的规范,无论是多人项目还是单人项目,能够让人看着一目了然并赏析悦目,做一个有追求的程序员. 例如IA.WebApp是视图控制器层(表现层) ...

  9. ASP.NET MVC 实现页落网资源分享网站+充值管理+后台管理(8)之文章管理

    到这一步,我们整个项目的核心搭建已经算是完成了,接下来就是我们业务功能的实际应用,也就是表现层的设计和实现,如果你是一个项目负责人,到这一步,接下来的工作就可以交给下面的兄弟去完成了,在这里我们用文章 ...

  10. ASP.NET MVC 实现页落网资源分享网站+充值管理+后台管理(4)之业务仓储工厂

    在创建业务层之前,我们先来熟悉一下业务仓储工厂Bobo.Repository.dll程序集,后续的业务操作,我们都将通过这个程序集中的方法传递数据库操作,其介于数据库操作与业务层之间,详情可前往< ...

随机推荐

  1. 使用php封装APP接口

    php封装APP接口 我们先来介绍Json的封装方法 json_encode函数传递中文的话,输出后是乱码的,针对这个问题我觉得有必要做一个解释: 其实json_encode对中文那不是乱码,只是js ...

  2. rsa加解密的内容超长的问题解决

    一. 现象:      有一段老代码用来加密的,但是在使用key A的时候,抛出了异常:javax.crypto.IllegalBlockSizeException: Data must not be ...

  3. cmd 命令重启远程服务器

    今天,连接服务器突然无法连接远程桌面,更无法重新启动机器,先进行了ping  操作: 机器运行正常... 后通过远程软件发现,可以用命令...这是一个新发现  …^ .^ 1.输入cmd  运行正常. ...

  4. nodeJs学习-15 mysql中间件下载与使用、基本用法

    下载mysql中间件(客户端):cnpm install mysql 链接数据库.查询示例: const mysql=require('mysql'); //1.连接 //createConnecti ...

  5. hdu2044 dp

    /* 每一种情况都可以由周围2个点得出 */ #include<stdio.h> int main() { __int64 dp[]; int i,t,l,r; dp[]=; dp[]=; ...

  6. 通过JS操作CSS

    动态效果如图所示: 第一种实现方法: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " ...

  7. iOS7之后JavaScript与Objective-C之间的通信

    http://www.cocoachina.com/ios/20150906/13320.html 最近公司用Ping++集成了第三方支付,并且微信端也集成了这个功能,而微信付款时需要调用原生的支付宝 ...

  8. 《mysql必知必会》笔记3(插入、更新、删除、创建删除更新表、视图)

    十九:插入数据 1:insert语句用来将行插入数据表中,可以插入完整的行.行的一部分.插入多行.插入某些查询的结果. 2:不指定列名,可以这样插入: insert into customers va ...

  9. Python中的生产者消费者模型

    ---恢复内容开始--- 了解知识点: 1.守护进程: ·什么是守护进程: 守护进程其实就是一个‘子进程’,守护即伴随,守护进程会伴随主进程的代码运行完毕后而死掉 ·为何用守护进程: 当该子进程内的代 ...

  10. util.date

    package com.sxt.utils.date1; import java.util.Date; /* * util.date */ public class TestDate { public ...