MoblieProblemservice.cs 52 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148
  1. /*以下代码由数据访问服务工具自动生成
  2. *如有需要请自行修改
  3. *
  4. */
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Text;
  9. using QWPlatform.DataIntface;
  10. using QWPlatform.IService;
  11. using PMS.EntityModels.MoblieProblemRegist;
  12. using PMS.BusinessModels.MobileProblem;
  13. using System.Data;
  14. using QWPlatform.SystemLibrary.LogManager;
  15. using QWPlatform.SystemLibrary.Utils;
  16. using PMS.EntityModels.WorkFlow;
  17. using PMS.BusinessModels.Account;
  18. using QWPlatform.SystemLibrary;
  19. using PMS.EntityModels.SysManager;
  20. using PMS.EntityModels.Product;
  21. namespace PMS.DBService.MoblieProblemRegist
  22. {
  23. public class Moblieproblemservice : DataServiceBase
  24. {
  25. /// <summary>
  26. /// 重写数据工厂
  27. /// </summary>
  28. /// <param name="conName"></param>
  29. protected override void DBFctory(string conName)
  30. {
  31. base.DBFctory(conName);
  32. }
  33. /// <summary>
  34. /// 增加数据记录
  35. /// </summary>
  36. /// <param name="model"></param>
  37. /// <returns></returns>
  38. public int Add(MoblieProblemModel model)
  39. {
  40. model.SetDataFactory(this.DataFactoryObject);
  41. return model.Insert();
  42. }
  43. /// <summary>
  44. /// 增加数据记录
  45. /// </summary>
  46. /// <param name="model"></param>
  47. /// <returns></returns>
  48. public int Add(MoblieProblemModel model, ITransaction trans)
  49. {
  50. model.SetDataFactory(this.DataFactoryObject);
  51. if (trans == null)
  52. {
  53. return model.Insert();
  54. }
  55. else
  56. {
  57. return model.Insert(trans);
  58. }
  59. }
  60. /// <summary>
  61. /// 更新数据库记录
  62. /// </summary>
  63. /// <param name="model"></param>
  64. /// <returns></returns>
  65. public int Update(MoblieProblemModel model)
  66. {
  67. model.SetDataFactory(this.DataFactoryObject);
  68. List<string> where = new List<string>();
  69. where.Add("ID");
  70. return model.Update(where, string.Empty);
  71. }
  72. /// <summary>
  73. /// 更新数据库记录
  74. /// </summary>
  75. /// <param name="model"></param>
  76. /// <returns></returns>
  77. public int Update(MoblieProblemModel model, ITransaction trans)
  78. {
  79. model.SetDataFactory(this.DataFactoryObject);
  80. List<string> where = new List<string>();
  81. where.Add("ID");
  82. if (trans == null)
  83. {
  84. return model.Update(where, string.Empty);
  85. }
  86. else
  87. {
  88. return model.Update(trans, where, string.Empty);
  89. }
  90. }
  91. /// <summary>
  92. /// 删除数据记录
  93. /// </summary>
  94. /// <param name="model"></param>
  95. /// <returns></returns>
  96. public int Delete(MoblieProblemModel model)
  97. {
  98. model.SetDataFactory(this.DataFactoryObject);
  99. return model.Delete("ID");
  100. }
  101. /// <summary>
  102. /// 删除数据记录
  103. /// </summary>
  104. /// <param name="model"></param>
  105. /// <returns></returns>
  106. public int Delete(MoblieProblemModel model, ITransaction trans)
  107. {
  108. model.SetDataFactory(this.DataFactoryObject);
  109. if (trans == null)
  110. {
  111. return model.Delete("ID");
  112. }
  113. else
  114. {
  115. return model.Delete(trans, "ID");
  116. }
  117. }
  118. /// <summary>
  119. /// 查询数据对象并进行赋值
  120. /// </summary>
  121. /// <returns></returns>
  122. public MoblieProblemModel Select(MoblieProblemModel model)
  123. {
  124. model.SetDataFactory(this.DataFactoryObject);
  125. model.Select();
  126. return model;
  127. }
  128. /// <summary>
  129. /// 列表查询
  130. /// </summary>
  131. /// <returns></returns>
  132. public List<MoblieProblemModel> SelectList(MoblieProblemModel model)
  133. {
  134. model.SetDataFactory(this.DataFactoryObject);
  135. return model.SelectList<MoblieProblemModel>();
  136. }
  137. /// <summary>
  138. /// 调用存储过程
  139. /// </summary>
  140. /// <returns></returns>
  141. public void CallProcedure(MoblieProblemModel model)
  142. {
  143. this.ProcedureBuilder
  144. .Procedure("p_PT_项目问题记录_INSERT")
  145. .Paramter("ID_IN", model.ID)
  146. .Paramter("编号_IN", model.BH)
  147. .Paramter("项目ID_IN", model.XMID)
  148. .Paramter("站点ID_IN", model.ZDID)
  149. .Paramter("产品ID_IN", model.CPID)
  150. .Paramter("科室名_IN", model.KSM)
  151. .Paramter("用户姓名_IN", model.YHXM)
  152. .Paramter("来源_IN", model.LY)
  153. .Paramter("问题描述_IN", model.WTMS)
  154. .Paramter("登记时间_IN", model.DJSJ)
  155. .Paramter("登记人ID_IN", model.DJRID)
  156. .Paramter("当前处理人_IN", model.DQCLR)
  157. .Paramter("处理说明_IN", model.CLSM)
  158. .Paramter("状态_IN", model.ZT)
  159. .Paramter("项目处理_IN", model.XMCL)
  160. .Paramter("技术支持_IN", model.JSZC)
  161. .Paramter("研发协助_IN", model.YFXZ)
  162. .Paramter("产品问题_IN", model.CPWT)
  163. .Paramter("BH问题_IN", model.BHWT)
  164. .Paramter("问题标题_IN", model.WTBT)
  165. .Paramter("处理时间_IN", model.CLSJ)
  166. .Paramter("预计时间_IN", model.YJSJ)
  167. .Paramter("版本号_IN", model.BBH)
  168. .Paramter("用户ID_IN", model.YHID)
  169. .Execute();
  170. }
  171. public string ZLSubmitProblem(SubmitProblemFormModel model)
  172. {
  173. var exe = this.ProcedureBuilder
  174. .Procedure("b_问题管理.P_ZL问题移动端登记")
  175. .Paramter("产品编码_In", model.ProductCode)
  176. .Paramter("机构ID_IN", model.InstitutionID)
  177. .Paramter("项目ID_IN", model.ProjectID)
  178. .Paramter("紧急程度_IN", model.ErginID)
  179. .Paramter("紧急描述_IN", model.urgentDetail)
  180. .Paramter("要求时间_IN", model.TRequireTime)
  181. .Paramter("登记进入流程ID_IN", model.NextProcessID)
  182. .Paramter("处理说明_In", model.DealDetail)
  183. .Paramter("问题描述_IN", model.detail)
  184. .Paramter("登记人_IN", model.registrant)
  185. .Paramter("登记人ID_IN", model.registrantID)
  186. .Paramter("登记人性质_IN", model.registrantProperty)
  187. .Paramter("登记日期_IN", this.DataBaseBuilder.GetDateTime)
  188. .Paramter("标题_IN", model.ProblemTitile)
  189. .Paramter("来源_In", model.Origin)
  190. .Paramter("问题性质_In", model.ProblemNature)
  191. .Paramter("处理状态_In", model.DealStatus)
  192. .ParamterOut("问题过程id_Out", DbType.String, 36)
  193. ;
  194. exe.Execute();
  195. var str = exe.ParameterValue<string>("问题过程id_Out");
  196. return str;
  197. }
  198. public string CustomerSubmitProblem(SubmitProblemFormModel model)
  199. {
  200. var exe = this.ProcedureBuilder
  201. .Procedure("b_问题管理.P_客户问题移动端登记")
  202. .Paramter("问题描述_IN", model.detail)
  203. .Paramter("登记人ID_IN", model.registrantID)
  204. .Paramter("登记日期_IN", this.DataBaseBuilder.GetDateTime)
  205. .Paramter("产品Code_IN", model.ProductCode)
  206. .Paramter("标题_IN", model.ProblemTitile)
  207. .Paramter("流程ID_In", model.ProcessID)
  208. .Paramter("进入流程ID_IN", model.NextProcessID)
  209. .ParamterOut("问题过程id_Out", DbType.String, 36);
  210. exe.Execute();
  211. var str = exe.ParameterValue<string>("问题过程id_Out");
  212. return str;
  213. }
  214. public string SubmitProblemBycode(SubmitProblemFormModel model)
  215. {
  216. try
  217. {
  218. ///如果未登陆,则按照扫描上的人员资源ID登记
  219. if (String.IsNullOrEmpty(model.registrantID))
  220. {
  221. //获取登记人信息
  222. var PersonDt = this.SelectBuilder.From("人员信息").Columns("ID,姓名").Where("资源ID", model.registrantSorID).Select();
  223. if (PersonDt != null && PersonDt.Rows.Count > 0)
  224. {
  225. model.registrantID = PersonDt.Rows[0].GetValueByName<string>("ID");
  226. model.registrant = PersonDt.Rows[0].GetValueByName<string>("姓名");
  227. }
  228. else
  229. {
  230. Logger.Instance.Error("调用SubmitProblemBycode查询用户不存在");
  231. return "";
  232. }
  233. }
  234. var exe = this.ProcedureBuilder
  235. .Procedure("b_问题管理.P_问题移动端扫码登记")
  236. .Paramter("问题描述_IN", model.detail)
  237. .Paramter("登记人_IN", model.registrant)
  238. .Paramter("登记人ID_IN", model.registrantID)
  239. .Paramter("机构ID_IN", model.InstitutionID)
  240. .Paramter("标题_IN", model.ProblemTitile)
  241. .Paramter("产品Code_IN", model.ProductCode)
  242. .Paramter("登记日期_IN", this.DataBaseBuilder.GetDateTime)
  243. .Paramter("流程ID_In", model.ProcessID)
  244. .Paramter("进入流程ID_IN", model.NextProcessID)
  245. .ParamterOut("问题过程id_Out", DbType.String, 36);
  246. exe.Execute();
  247. var ProcessId = exe.ParameterValue<string>("问题过程id_Out");
  248. return ProcessId;
  249. }
  250. catch (Exception ex)
  251. {
  252. Logger.Instance.Error(ex.Message);
  253. return "";
  254. }
  255. }
  256. public int ImageUpload(string ProblemID, string AnnexID, string Name, string fileType)
  257. {
  258. return this.InsertBuilder
  259. .Insert("产品问题附件")
  260. .Column("ID", Guid.NewGuid().ToString())
  261. .Column("问题ID", ProblemID)
  262. .Column("类型", fileType)
  263. .Column("附件ID", AnnexID)
  264. .Column("添加时间", this.DataBaseBuilder.GetDateTime)
  265. .Column("添加人", Name)
  266. .Execute();
  267. }
  268. public DataTable QueryMyProblem(QueryMyProblemModel model, out string toltal)
  269. {
  270. var pro = this.ProcedureBuilder;
  271. pro.Procedure("b_问题管理.P_客户移动端问题查询")
  272. .Paramter("登记人id_In", model.CurrentUserId)
  273. .Paramter("查询类型_In", model.SelectType)
  274. .Paramter("开始时间_In", model.StartTimeD)
  275. .Paramter("结束时间_In", model.EndTimeD)
  276. .Paramter("开始行_In", model.StartNum)
  277. .Paramter("结束行_In", model.EndNum)
  278. .Paramter("是否解决_In", model.ProblemStatus)
  279. .ParamterOut("Resultlist", true)
  280. .ParamterOut("总行数_Out", DbType.Double, 5);
  281. var Code = 0;
  282. if (int.TryParse(model.SelectConditon, out Code))
  283. {
  284. pro.Paramter("查询条件_In", null)
  285. .Paramter("搜索编号_In", Code);
  286. }
  287. else
  288. {
  289. pro.Paramter("查询条件_In", model.SelectConditon)
  290. .Paramter("搜索编号_In", null);
  291. }
  292. pro.Execute();
  293. var dt = pro.ParameterValue<DataTable>("Resultlist");
  294. toltal = Convert.ToString(pro.ParameterValue<decimal>("总行数_Out"));
  295. return dt;
  296. }
  297. public DataTable QueryProblemByProject(QueryProblemByProjectModel model)
  298. {
  299. var pro = this.ProcedureBuilder;
  300. pro.Procedure("b_问题管理.P_项目人员移动端问题查询")
  301. .Paramter("当前项目_In", model.Project)
  302. .Paramter("当前机构_In", model.Institution)
  303. .Paramter("审核单位_In", model.CurrentUnit)
  304. .Paramter("问题性质_In", model.Status)
  305. .Paramter("紧急程度_In", model.priority)
  306. .Paramter("产品类型_In", model.ProductType)
  307. .Paramter("开始时间_In", model.StartTimeD)
  308. .Paramter("结束时间_In", model.EndTimeD)
  309. .Paramter("选项卡_In", model.Tab)
  310. .Paramter("开始行_In", model.StartNum)
  311. .Paramter("结束行_In", model.EndNum)
  312. .Paramter("是否解决_In", model.DealStatus)
  313. .Paramter("终止状态_In", model.IsEnd)
  314. .Paramter("当前登陆人ID_In", model.CurrentUserId)
  315. .ParamterOut("Resultlist", true);
  316. var Code = 0;
  317. if (int.TryParse(model.SelectConditon, out Code))
  318. {
  319. pro.Paramter("搜索条件_In", null)
  320. .Paramter("搜索编号_In", Code);
  321. }
  322. else
  323. {
  324. pro.Paramter("搜索条件_In", model.SelectConditon)
  325. .Paramter("搜索编号_In", null);
  326. }
  327. pro.Execute();
  328. var dt = pro.ParameterValue<DataTable>("Resultlist");
  329. return dt;
  330. }
  331. public DataTable QuerckSearch(QueryMyProblemModel model)
  332. {
  333. if (String.IsNullOrEmpty(model.SelectConditon))
  334. {
  335. return new DataTable();
  336. }
  337. var dt = this.SelectBuilder.From("人员信息").Columns("性质,渠道ID,站点ID").Where("ID", model.CurrentUserId).Select();
  338. var Property = dt.Rows[0].GetValueByName<int>("性质");
  339. var ChannelId = dt.Rows[0].GetValueByName<string>("渠道ID");
  340. var Institution = dt.Rows[0].GetValueByName<string>("站点ID");
  341. var sql = @"Select to_char(t.登记日期,'YYYY/MM/DD HH24:MI') as 登记日期,t.登记人,t.问题描述,t.问题标题,t.是否解决,t.id,t.是否终止,
  342. ( select f.附件ID from 产品问题附件 f where f.问题ID = t.id and rownum = 1 and f.类型='1') as 附件路径,
  343. (Select bm.显示名 from 基础编码 bm where bm.分类ID='D3EDEA7A-7F07-4DD3-9A6B-34DB16A6E982' and bm.代码=s.性质) AS 性质
  344. from 问题记录 t,人员信息 s
  345. where t.登记人id=s.id(+)
  346. and t.是否删除=0 ";
  347. var sqlbuilder = this.SqlBuilder;
  348. sqlbuilder.Parameters("search", model.SelectConditon);
  349. int numberCode = 0;
  350. if (int.TryParse(model.SelectConditon, out numberCode))
  351. {
  352. sql += @" and t.编号 =:search";
  353. }
  354. else
  355. {
  356. sql += @" and(t.问题标题 Like '%' ||:search || '%' or t.问题描述 Like '%' ||:search || '%' or
  357. t.登记人 Like '%' ||:search || '%' ) ";
  358. }
  359. if (Property != 1)
  360. {
  361. sql += " and t.渠道ID=:Channel ";
  362. sqlbuilder.Parameters("Channel", ChannelId);
  363. }
  364. //如果为机构管理员
  365. if (Property == 4 || Property == 3)
  366. {
  367. sql += " and t.机构ID=:Institution ";
  368. sqlbuilder.Parameters("Institution", Institution);
  369. }
  370. sql += " Order By t.登记日期 desc";
  371. return sqlbuilder.SqlText(sql).Paging(model.Pages, model.rows).Select();
  372. }
  373. public DataTable GetPerson(string id)
  374. {
  375. var sql = "select b.id AS 项目ID,b.名称 AS 项目名称,a.性质,c.id AS 站点ID,c.名称 AS 站点名称 from 人员信息 a,项目信息 b, 站点信息 c where a.id = :id and a.项目ID = b.id and a.站点id = c.id";
  376. return this.SqlBuilder
  377. .SqlText(sql)
  378. .Parameters("id", id)
  379. .Select();
  380. }
  381. public DataTable ProblemDetail(string id)
  382. {
  383. var pro = this.ProcedureBuilder
  384. .Procedure("b_问题管理.P_移动端问题详细")
  385. .Paramter("问题ID_In", id)
  386. .ParamterOut("Resultlist", true);
  387. pro.Execute();
  388. var dt = pro.ParameterValue<DataTable>("Resultlist");
  389. return dt;
  390. }
  391. public int NewestStatus(string id)
  392. {
  393. return this.SelectBuilder.Columns("状态")
  394. .From("问题记录过程")
  395. .Where("问题ID", id)
  396. .OrderBy("记录时间 desc")
  397. .Select<int>();
  398. }
  399. /// <summary>
  400. /// 获取登记问题时所在的环节Id
  401. /// </summary>
  402. public int GetRegisLinkId(string id)
  403. {
  404. return this.SqlBuilder
  405. .SqlText("select s.环节id from 问题记录过程 t,问题工作流程 s where t.当前流程id=s.id and t.问题ID=:id and t.状态=1")
  406. .Parameters("id", id)
  407. .Select<int>();
  408. }
  409. public int GetUserLinkId(int PersonProperty, string JobCode)
  410. {
  411. var SelectBuilder = this.SqlBuilder;
  412. var sqlText = @"Select t.ID from 问题流程环节 t where t.人员性质=:人员性质";
  413. SelectBuilder.Parameters("人员性质", PersonProperty);
  414. ///如果为本部人员
  415. if (PersonProperty == 1)
  416. {
  417. sqlText += @" and Exists
  418. (select column_value from table(Select f_Split_String(x.职务代码1, ',') from 问题流程环节 x
  419. where id = t.Id)
  420. where Column_Value =:职务) ";
  421. SelectBuilder.Parameters("职务", Convert.ToInt32(JobCode));
  422. }
  423. SelectBuilder.SqlText(sqlText);
  424. return SelectBuilder.Select<int>();
  425. }
  426. public DataTable GetFileFormFTP(string id)
  427. {
  428. return this.SelectBuilder.Columns("a.附件ID,a.类型")
  429. .From("产品问题附件 a,问题记录过程 b")
  430. .Where("b.ID=a.过程ID")
  431. .Where("b.问题ID", id)
  432. .Where("b.状态", 1)
  433. .Select();
  434. }
  435. public ButtonAuthorityModel GetButtonauthority(int PersonProperty, string PersonID, string ProblemID)
  436. {
  437. var model = new ButtonAuthorityModel();
  438. model.Cancel = false;
  439. model.Confirm = false;
  440. model.Deal = false;
  441. model.Stop = false;
  442. model.Sub = false;
  443. return model;
  444. }
  445. public DataTable GetCount(string id)
  446. {
  447. var sql = @" with
  448. sql as
  449. (select Count(1) as djCount from 问题记录过程 a,问题记录 b
  450. where a.问题id=b.id
  451. and b.是否删除=0 and
  452. a.状态=1 and a.记录人id=:id ),
  453. sq as (select Count(distinct a.问题ID) as sqCount from 问题记录过程 a,问题记录 b where a.状态=5 and a.记录人id=:id and a.问题id=b.id and b.是否删除=0 ),
  454. cl as( select Count(distinct a.问题ID) as clCount from 问题记录过程 a,问题记录 b where a.状态 in (2,3,4,6,7,8) and a.记录人id=:id and a.问题id=b.id and b.是否删除=0 )
  455. Select djCount as 我登记的,sqCount as 我申请的,clCount as 我处理的 from
  456. sq, sql,cl ";
  457. return this.SqlBuilder.SqlText(sql).Parameters("id", id).Select();
  458. }
  459. public DataTable GetCountForCustom(string id)
  460. {
  461. var sql = @"select
  462. sum(1) AS 已登记,
  463. sum(case when t.是否解决=0 then 1 else 0 end ) AS 未解决,
  464. sum(case when t.是否解决=1 then 1 else 0 end ) AS 已解决
  465. from 问题记录 t
  466. where t.登记人id=:id
  467. and t.是否删除=0";
  468. return this.SqlBuilder.SqlText(sql).Parameters("id", id).Select();
  469. }
  470. public WorkFlowModel GetNewProblemWorkId(string InstitutionID, string ProjectID)
  471. {
  472. WorkFlowModel model = new WorkFlowModel();
  473. try
  474. {
  475. model.CategoryID = 1;
  476. //查询项目审核流程
  477. var ProjectCategoryID = this.SqlBuilder.SqlText("Select 工作流目录ID From 项目问题流程 Where 项目id=:ProjectID and 机构id is null")
  478. .Parameters("ProjectID", ProjectID).Select<int>();
  479. ///如果不为空则取项目流程
  480. if (ProjectCategoryID > 0)
  481. {
  482. model.CategoryID = ProjectCategoryID;
  483. }
  484. //判断传入机构是否为空
  485. if (!String.IsNullOrEmpty(InstitutionID))
  486. {
  487. var InstitutionCategoryID = this.SqlBuilder.SqlText("Select 工作流目录ID From 项目问题流程 Where 项目id=:ProjectID and 机构id=:InstitutionID")
  488. .Parameters("ProjectID", ProjectID).Parameters("InstitutionID", InstitutionID).Select<int>();
  489. ///如果不为空则取机构流程
  490. if (InstitutionCategoryID > 0)
  491. {
  492. model.CategoryID = InstitutionCategoryID;
  493. }
  494. }
  495. //取流程Id
  496. model.ID = this.SqlBuilder.SqlText("Select ID From 问题工作流程 Where 目录id = :CategoryID And 启用 = 1 And Rownum = 1 Order By 序号 Asc")
  497. .Parameters("CategoryID", model.CategoryID).Select<int>();
  498. return model;
  499. }
  500. catch (Exception ex)
  501. {
  502. Logger.Instance.Error("调用方法GetNewProblemWorkId异常", ex);
  503. return null;
  504. }
  505. }
  506. #region 用户注册
  507. public string UserCheck(string PersonResource_id)
  508. {
  509. var pro = this.ProcedureBuilder
  510. .Procedure("b_平台管理_登录管理.p_用户完整性判断")
  511. .Paramter("In_人员资源ID", PersonResource_id)
  512. .ParamterOut("Out_状态", DbType.String, 3);
  513. pro.Execute();
  514. var st = pro.ParameterValue<string>("Out_状态");
  515. return st;
  516. }
  517. public DataTable GetInstitutionsID(string id)
  518. {
  519. return this.SelectBuilder
  520. .From("站点信息")
  521. .Where("资源ID", id)
  522. .Columns("ID,名称,项目ID")
  523. .Select();
  524. }
  525. public string GetInstitutionsIDByUser(string UserId)
  526. {
  527. string id;
  528. id = this.SelectBuilder
  529. .From("人员信息")
  530. .Where("ID", UserId)
  531. .Columns("站点ID")
  532. .Select<string>();
  533. if (String.IsNullOrEmpty(id))
  534. {
  535. id = this.SelectBuilder
  536. .From("人员信息")
  537. .Where("资源ID", UserId)
  538. .Columns("站点ID")
  539. .Select<string>();
  540. }
  541. return id;
  542. }
  543. public DataTable GetExistInfo(string PersonResource_id)
  544. {
  545. var sql = @"select t.姓名,t.联系电话,t.部门名
  546. from 人员信息 t
  547. where t.资源ID =:PersonResource_id";
  548. return this.SqlBuilder.SqlText(sql).Parameters("PersonResource_id", PersonResource_id).Select();
  549. }
  550. public DataTable TeleGetUserInfo(string Tele)
  551. {
  552. var pro = this.ProcedureBuilder
  553. .Procedure("b_平台管理_登录管理.p_手机获取用户信息")
  554. .Paramter("In_手机号码", Tele)
  555. .ParamterOut("Resultlist", true);
  556. pro.Execute();
  557. var st = pro.ParameterValue<DataTable>("Resultlist");
  558. return st;
  559. }
  560. public string UpdateResourceID(string UserGetId, string Tele, string edType)
  561. {
  562. var pro = this.ProcedureBuilder
  563. .Procedure("b_平台管理_登录管理.p_更新用户资源ID")
  564. .Paramter("In_手机号码", Tele)
  565. .Paramter("In_资源ID", UserGetId)
  566. .Paramter("In_更新类型", edType)
  567. .ParamterOut("是否成功_Out", DbType.String, 3);
  568. pro.Execute();
  569. var st = pro.ParameterValue<string>("是否成功_Out");
  570. return st;
  571. }
  572. public bool GetSMSCode(string telephone, string code)
  573. {
  574. try
  575. {
  576. DateTime dtime = this.DataBaseBuilder.GetDateTime;
  577. DateTime timeEnd = new DateTime();
  578. timeEnd = dtime.AddMinutes(10);
  579. var t = this.ProcedureBuilder
  580. .Procedure("b_平台管理_登录管理.p_保存短信验证码")
  581. .Paramter("In_验证码", code)
  582. .Paramter("In_手机号", telephone)
  583. .Paramter("In_获取时间", dtime)
  584. .Paramter("In_过期时间", timeEnd).Execute();
  585. return t == -1;
  586. }
  587. catch (Exception ex)
  588. {
  589. Logger.Instance.Error("短信保存数据库错误!", ex);
  590. return false;
  591. }
  592. }
  593. public string UserRegist(MobileUserRegistModel Model)
  594. {
  595. try
  596. {
  597. //判断账户是否存在
  598. var t = this.SelectBuilder.Columns("1").From("系统账户").Where("账户", Model.telephone).Exists();
  599. if (t)
  600. return "4";
  601. var st = InsertBuilder.Insert("人员信息").Column("ID", Guid.NewGuid().ToString("N")).Column("渠道ID", Model.Channel).Column("姓名", Model.name).Column("联系电话", Model.telephone).Column("性质", 4).Column("状态", 1)
  602. .Column("简码", Model.simple).Column("说明", "自助注册").Column("职务", "9").Column("所属医院", Model.hospitalname).Column("添加时间", this.DataBaseBuilder.GetDateTime)
  603. .Execute();
  604. //var pro = this.ProcedureBuilder
  605. // .Procedure("b_平台管理_登录管理.p_投诉用户注册")
  606. // .Paramter("资源ID_IN", Model.UserGetId)
  607. // .Paramter("In_站点ID", Model.SiteID)
  608. // .Paramter("姓名_IN", Model.name)
  609. // .Paramter("联系电话_IN", Model.telephone)
  610. // .Paramter("部门名_IN", Model.Department)
  611. // .Paramter("密码_In", Strings.StrToMD5(Model.password))
  612. // .Paramter("验证码_In", Model.SMSCode)
  613. // .Paramter("系统时间_In", this.DataBaseBuilder.GetDateTime)
  614. // .ParamterOut("是否成功_Out", DbType.String, 3);
  615. //pro.Execute();
  616. //var st = pro.ParameterValue<string>("是否成功_Out");
  617. return st+"";
  618. }
  619. catch (Exception ex)
  620. {
  621. Logger.Instance.Error("调用UserRegist方法注册发生错误!", ex);
  622. return "1";
  623. }
  624. }
  625. /// <summary>
  626. /// 获取渠道信息
  627. /// </summary>
  628. /// <returns></returns>
  629. public DataTable GetChannel()
  630. {
  631. var dt = this.SelectBuilder.From("渠道信息").Where("状态",1).Columns("ID,名称").Select();
  632. return dt;
  633. }
  634. /// <summary>
  635. /// 获取渠道扩展信息
  636. /// </summary>
  637. /// <param name="id"></param>
  638. /// <returns></returns>
  639. public DataTable GetChannelExtend(string id)
  640. {
  641. var dt = this.SelectBuilder.From("渠道信息扩展表").Where("id", id).Where("状态", 1).Columns("手机号,微信ID").Select();
  642. return dt;
  643. }
  644. public string PasswordModifySubmit(string telephone, string Code, string password)
  645. {
  646. string status = string.Empty;
  647. //判断账户是否存在
  648. var accountExit = this.SelectBuilder.From("系统账户").Where("账户", telephone).Columns("ID").Select<int>();
  649. if (accountExit > 0)
  650. {
  651. /*判断验证码是否错误*/
  652. var CodeErr = this.SelectBuilder.From("短信验证码").Where("手机号", telephone).Where("验证码", Code).Columns("验证码").Select<int>();
  653. if (CodeErr < 1)
  654. {
  655. return "验证码错误";//
  656. }
  657. //判断验证码是否过期
  658. var CodeTime = this.SelectBuilder.From("短信验证码").Where("手机号", telephone).Where("验证码", Code).Columns("过期时间").Select<DateTime>();
  659. if (CodeTime < this.DataBaseBuilder.GetDateTime)
  660. {
  661. return "验证码过期";//
  662. }
  663. //修改密码
  664. var t = this.UpdateBuilder.Update("系统账户").Where("账户", telephone).Column("密码", Strings.MD5(password)).Execute();
  665. return t > 0 ? "1" : "修改失败";
  666. }
  667. else
  668. {
  669. return "用户不存在";//
  670. }
  671. }
  672. #endregion
  673. #region 问题操作相关业务
  674. public bool CrossJud(string ProblemId, int PersonProperty, string JobCode)
  675. {
  676. var Link = this.SelectBuilder.Columns("环节id").From("问题记录").Where("ID", ProblemId).Select<int>();
  677. var SelectBuilder = this.SelectBuilder.Columns("ID").From("问题流程环节").Where("人员性质", PersonProperty);
  678. if (PersonProperty == 1)
  679. {
  680. SelectBuilder.Where("职务代码", Convert.ToInt32(JobCode));
  681. }
  682. var UserLink = SelectBuilder.Select<int>();
  683. if (UserLink < Link)
  684. {
  685. return false;
  686. }
  687. return true;
  688. }
  689. public string IsMyProblem(string ProblemId, string PersonId)
  690. {
  691. var dt = this.SelectBuilder.Columns("受理人ID,指派人ID").From("问题记录").Where("ID", ProblemId).Select();
  692. var CurrentDealPersonId = dt.Rows[0].GetValueByName<string>("受理人ID");
  693. var CurrentAssginPersonId = dt.Rows[0].GetValueByName<string>("指派人ID");
  694. if (PersonId == CurrentDealPersonId || PersonId == CurrentAssginPersonId || (String.IsNullOrEmpty(CurrentDealPersonId) && String.IsNullOrEmpty(CurrentAssginPersonId)))
  695. {
  696. return "1";//为自己处理的问题
  697. }
  698. else
  699. {
  700. return "0";//不为自己处理的问题
  701. }
  702. }
  703. public DataTable GetPerson(string search, int PersonProperty, string ProblemId)
  704. {
  705. try
  706. {
  707. ///获取问题所在渠道和机构
  708. var Problemdt = this.SelectBuilder.From("问题记录").Where("ID", ProblemId).Columns("渠道ID,机构ID").Select();
  709. var companyID = Problemdt.Rows[0].GetValueByName<string>("渠道ID");
  710. var InstitutionID = Problemdt.Rows[0].GetValueByName<string>("机构ID");
  711. //查询人员
  712. var SqlBuilder = this.SqlBuilder;
  713. var sql = @" Select * From (Select s.ID,s.姓名,s.简码,(select t.显示名 from 基础编码 t where t.分类ID='56411293-988F-42CA-8B84-5A34DD37C7E6' and t.代码=s.职务) AS 职务,
  714. (select qd.名称 from 渠道信息 qd where qd.ID=s.渠道ID) AS 公司名称
  715. from 人员信息 s
  716. where s.状态='1' and s.是否删除=0
  717. ";
  718. var sql2 = " Union all ";
  719. var sql3 = @" Select s.ID,s.姓名,s.简码,(select t.显示名 from 基础编码 t where t.分类ID='56411293-988F-42CA-8B84-5A34DD37C7E6' and t.代码=s.职务) AS 职务 ,
  720. (select qd.名称 from 渠道信息 qd where qd.ID=s.渠道ID) AS 公司名称
  721. from 人员信息 s where s.站点ID = :站点ID_In
  722. and s.性质 = '4'
  723. and s.状态 = '1'
  724. and s.是否删除=0
  725. ";
  726. SqlBuilder.Parameters("站点ID_In", InstitutionID);
  727. string SQL = string.Empty;
  728. if (!String.IsNullOrEmpty(search.Trim()))
  729. {
  730. sql += " and (s.姓名 Like '%' ||:search || '%' or s.简码 Like '%' ||:search || '%' )";
  731. sql3 += " and (s.姓名 Like '%' ||:search || '%' or s.简码 Like '%' ||:search || '%' )";
  732. SqlBuilder.Parameters("search", search);
  733. }
  734. if (PersonProperty == 1)
  735. {
  736. sql += " and s.性质 in (1,2,5) and s.渠道id in(:CompanyID,'4A9B2065-65AB-4411-B528-968D26737EAE') order by s.性质 asc )";
  737. }
  738. else if (PersonProperty == 2)
  739. {
  740. sql += " and s.性质 in (2,5) and (s.渠道id=:CompanyID OR s.渠道id in( SELECT j.共享渠道ID FROM 渠道人员共享 j WHERE j.渠道ID=:CompanyID)))";
  741. }
  742. else if (PersonProperty == 5)
  743. {
  744. sql += " and s.性质 ='5' and s.渠道id=:CompanyID )";
  745. }
  746. SqlBuilder.Parameters("CompanyID", companyID);
  747. //判断是否为机构管理员
  748. if (PersonProperty == 4)
  749. {
  750. SQL = sql3;
  751. }
  752. else
  753. {
  754. SQL = sql + sql2 + sql3;
  755. }
  756. return SqlBuilder.SqlText(SQL).Select();
  757. }
  758. catch (Exception ex)
  759. {
  760. Logger.Instance.Error("获取人员信息调用数据库失败", ex);
  761. return new DataTable();
  762. }
  763. }
  764. public bool IsDealProcess(string ProblemId, int PersonProperty)
  765. {
  766. ///获取目录Id
  767. var categoryId = this.SelectBuilder.Columns("b.目录ID").From("问题记录 a,问题工作流程 b").Where("a.流程ID=b.ID").Where("a.ID", ProblemId).Select<int>();
  768. //获取环节ID
  769. var id = this.SelectBuilder.From("问题工作流程 a,问题流程环节 b").Columns("a.ID").Where("a.环节ID=b.ID").Where("a.目录ID", categoryId).Where("b.人员性质", PersonProperty)
  770. .Select<int>();
  771. return id > 0;
  772. }
  773. public UserInfo GetPersonProperty(string PersonID)
  774. {
  775. var dt = this.SelectBuilder.Columns("性质,职务").From("人员信息").Where("ID", PersonID).Select();
  776. var User = new UserInfo();
  777. User.PersonProperty = dt.Rows[0].GetValueByName<int>("性质");
  778. User.JobCode = dt.Rows[0].GetValueByName<string>("职务");
  779. return User;
  780. }
  781. public DataTable GetProblemVison(string ProblemId)
  782. {
  783. return this.SelectBuilder.From("问题记录 a,产品版本配置 b").Columns("b.ID,b.版本号").Where("a.产品ID=b.产品ID").Where("a.ID", ProblemId).Where("b.状态!=2").OrderBy("b.版本号 desc").Select();
  784. }
  785. public DataTable GetProblemInfomation(string id)
  786. {
  787. return this.SelectBuilder.From("问题记录").Columns(" * ").Where("ID", id).Select();
  788. }
  789. public string ModifySubmit(SubmitProblemFormModel model)
  790. {
  791. try
  792. {
  793. var ProcessId = String.Empty;
  794. var t = UpdateBuilder.Update("问题记录").Where("ID", model.ProblemId)
  795. .Column("问题标题", model.ProblemTitile)
  796. .Column("问题描述", model.detail)
  797. .Column("问题性质", model.ProblemNature)
  798. .Column("来源代码", model.Origin)
  799. .Column("紧急代码", model.ErginID)
  800. .Column("要求时间", model.TRequireTime)
  801. .Column("紧急描述", model.urgentDetail)
  802. .Column("解决方案", model.DealDetail)
  803. .Column("是否解决", model.DealStatus)
  804. .Execute();
  805. if (t > 0)
  806. {
  807. var dt = this.SqlBuilder.SqlText("select ID,当前流程ID,来源流程ID from 问题记录过程 where 问题ID=:id and 状态=1")
  808. .Parameters("id", model.ProblemId).Select();
  809. ///如果已解决
  810. if (model.DealStatus == "1")
  811. {
  812. var CurrenProcessId = dt.Rows[0].GetValueByName<int>("当前流程ID");
  813. InsertBuilder.Insert("问题记录过程").Column("ID", Guid.NewGuid().ToString())
  814. .Column("问题ID", model.ProblemId)
  815. .Column("记录人ID", model.registrantID)
  816. .Column("记录时间", this.DataBaseBuilder.GetDateTime)
  817. .Column("当前流程ID", CurrenProcessId)
  818. .Column("状态", 7)
  819. .Column("来源流程ID", CurrenProcessId)
  820. .Column("描述", model.DealDetail)
  821. .Execute();
  822. }
  823. ProcessId = dt.Rows[0].GetValueByName<string>("ID");
  824. }
  825. return ProcessId;
  826. }
  827. catch (Exception ex)
  828. {
  829. Logger.Instance.Error("调用ModifySubmit失败" + ex);
  830. return "";
  831. }
  832. }
  833. public string ModifySubmitForCustom(SubmitProblemFormModel model)
  834. {
  835. var ProcessId = String.Empty;
  836. var t = UpdateBuilder.Update("问题记录").Where("ID", model.ProblemId)
  837. .Column("问题标题", model.ProblemTitile)
  838. .Column("问题描述", model.detail)
  839. .Execute();
  840. if (t > 0)
  841. {
  842. ProcessId = this.SqlBuilder.SqlText("select ID from 问题记录过程 where 问题ID=:id and 状态=1")
  843. .Parameters("id", model.ProblemId).Select<string>();
  844. }
  845. return ProcessId;
  846. }
  847. public bool IsModifyMyProblem(string personId, string problemId)
  848. {
  849. var t = this.SelectBuilder.From("问题记录").Columns("ID").Where("ID", problemId).Where("登记人ID", personId).Select<string>();
  850. return !String.IsNullOrEmpty(t);
  851. }
  852. public DataTable GetProblemFlie(string id)
  853. {
  854. var sql = @"select b.id,b.附件id,b.类型 from 问题记录过程 a,产品问题附件 b
  855. where a.id=b.过程id
  856. and a.问题id=:id
  857. and a.状态=1";
  858. return this.SqlBuilder.SqlText(sql).Parameters("id", id).Select();
  859. }
  860. public int GetProblemByProcssId(string id)
  861. {
  862. var sql = @"select b.环节id from 问题记录过程 a,问题工作流程 b
  863. where a.当前流程ID=b.id
  864. and a.ID=:id";
  865. return this.SqlBuilder.SqlText(sql).Parameters("id", id).Select<int>();
  866. }
  867. public int GetProblemByWorkId(int id)
  868. {
  869. var sql = @"select 环节ID from 问题工作流程 where ID=:id";
  870. return this.SqlBuilder.SqlText(sql).Parameters("id", id).Select<int>();
  871. }
  872. #endregion
  873. #region 用户评论
  874. public bool ProblemReamrkSubmit(commentsModel model, out string CommentsId)
  875. {
  876. var ID = Guid.NewGuid().ToString();
  877. using (var tran = this.DBTransaction.BeginTrans())
  878. {
  879. try
  880. {
  881. var r = this.InsertBuilder.Insert("问题评价")
  882. .Column("ID", ID)
  883. .Column("问题ID", model.ProblemId)
  884. .Column("评论内容", model.Deatil)
  885. .Column("评论人", model.CommitPerson)
  886. .Column("评论人ID", model.CommitPersonId)
  887. .Column("评论时间", this.DataBaseBuilder.GetDateTime)
  888. .Column("处理速度", model.DealTime)
  889. .Column("服务态度", model.DealAttitude)
  890. .Column("处理质量", model.DealQuality)
  891. .Execute() > 0;
  892. var Update = this.UpdateBuilder.Update("问题记录")
  893. .Where("ID", model.ProblemId)
  894. .Column("是否评价", 1)
  895. .Execute() > 0;
  896. tran.CommitTrans();
  897. if (r && Update)
  898. {
  899. CommentsId = ID;
  900. return true;
  901. }
  902. else
  903. {
  904. CommentsId = string.Empty;
  905. return false;
  906. }
  907. }
  908. catch (Exception ex)
  909. {
  910. Logger.Instance.Error("调用方法ProblemReamrkSubmit失败,原因:", ex);
  911. CommentsId = string.Empty;
  912. tran.Rollback();
  913. return false;
  914. }
  915. }
  916. }
  917. public bool CommitFlieUplod(CommitFlie model)
  918. {
  919. return this.InsertBuilder.Insert("问题评价附件")
  920. .Column("ID", Guid.NewGuid().ToString())
  921. .Column("评价ID", model.CommitId)
  922. .Column("附件类型", model.FlieType)
  923. .Column("附件ID", model.FlieID)
  924. .Column("添加时间", this.DataBaseBuilder.GetDateTime)
  925. .Column("添加人", model.Name)
  926. .Execute() > 0;
  927. }
  928. public bool IsCommit(string ProblemId, string PersonId)
  929. {
  930. var sql = @"select ID from 问题记录 where ID=:id
  931. and 登记人ID=:personid
  932. and 是否评价=0
  933. and (是否解决=1 or 是否终止=1 )";
  934. return this.SqlBuilder.SqlText(sql).Parameters("id", ProblemId).Parameters("personid", PersonId).Exists();
  935. }
  936. public string getVersionPoblemExplain(string id)
  937. {
  938. try
  939. {
  940. var dt = this.SqlBuilder.SqlText("select 版本ID,说明 from 产品问题版本 where ID=:id").Parameters("id", id).Select();
  941. var mark = dt.Rows[0].GetValueByName<string>("说明");
  942. var VersionID = dt.Rows[0].GetValueByName<string>("版本ID");
  943. var dt2 = this.SqlBuilder.SqlText("select 附件说明,附件ID from 产品版本附件 where 产品版本ID=:VersionID").Parameters("VersionID", VersionID).Select();
  944. return Strings.ObjectToJson(new
  945. {
  946. mark = mark,
  947. File = dt2
  948. });
  949. }catch(Exception ex)
  950. {
  951. Logger.Instance.Error("获取产品版本附件失败,原因:" + ex);
  952. return "";
  953. }
  954. }
  955. public bool SaveLogger(string flieId, string flieVersionId, string personId)
  956. {
  957. return this.InsertBuilder.Insert("版本附件下载日志")
  958. .Column("ID", Guid.NewGuid().ToString())
  959. .Column("附件ID", flieId)
  960. .Column("版本附件ID", flieVersionId)
  961. .Column("下载人ID", personId)
  962. .Column("下载时间", this.DataBaseBuilder.GetDateTime)
  963. .Execute()>0;
  964. }
  965. /// <summary>
  966. /// 获取用户评价和待评价的问题
  967. /// </summary>
  968. /// <param name="PersonId">个人id</param>
  969. /// <param name="pageindex">开始页码</param>
  970. /// <param name="pagesize">页码大小</param>
  971. /// <param name="total">1</param>
  972. /// <returns></returns>
  973. public DataTable GetQuestionList(string PersonId, int pageindex, int pagesize,int Tab, out int total )
  974. {
  975. var type=0;//待评价
  976. if(Tab==2)//已评价
  977. {
  978. type = 1;
  979. }
  980. total = 0;
  981. var sql = @"
  982. select * from (
  983. select rownum rn, dt.*from (
  984. select t.ID, t.问题标题,t.问题描述,t.登记日期,t.编号,t.登记人,t.问题性质 ,t.修改说明 ,t.版本号 ,t.是否评价
  985. ,(Select Bm.显示名 From 基础编码 Bm Where Bm.分类id = 'D3EDEA7A-7F07-4DD3-9A6B-34DB16A6E982' And Bm.代码 = s.性质) As 性质 from 问题记录 t,人员信息 s
  986. where t.登记人ID=:personid and 是否评价=:type and t.登记人id = s.Id(+)
  987. and (是否解决=1 or 是否终止=1 ) order by t.登记日期 desc) dt where rownum <=:endsize) where rn >=:beginsize";
  988. var dt= this.SqlBuilder.SqlText(sql).Parameters("type", type).Parameters("personid", PersonId).Parameters("beginsize", (pageindex - 1) * pagesize + 1).Parameters("endsize", (pageindex* pagesize)).Select();
  989. if (dt != null)
  990. {
  991. //获取总条数
  992. string totalSql = @"
  993. select count(1) total from 问题记录 t ,人员信息 s where t.登记人ID=:personid and 是否评价=0 and t.登记人id = s.Id(+) and (是否解决=1 or 是否终止=1 ) ";
  994. //获取总数信息
  995. DataTable tdt = this.SqlBuilder.SqlText(totalSql).Parameters("personid", PersonId).Select();
  996. if (tdt != null && tdt.Rows.Count > 0)
  997. {
  998. total = Convert.ToInt32(tdt.Rows[0]["total"]);
  999. }
  1000. }
  1001. return dt;
  1002. }
  1003. /// <summary>
  1004. /// 获取评价的内容
  1005. /// </summary>
  1006. /// <param name="PersonId">个人id</param>
  1007. /// <param name="ProblemID">问题ID</param>
  1008. /// <returns></returns>
  1009. public DataTable GetEvaluationContent(string PersonId, string ProblemID)
  1010. {
  1011. var dt = this.SqlBuilder.SqlText(@"select t.id,
  1012. t.问题id ProblemId,
  1013. t.评论内容 Deatil,
  1014. t.评论人 CommitPerson,
  1015. t.评论人id CommitPersonId,
  1016. t.评论时间,
  1017. t.处理速度 DealTime,
  1018. t.服务态度 DealAttitude,
  1019. t.处理质量 DealQuality from 问题评价 t where t.问题id=:ProblemID and t.评论人id=:PersonId").Parameters("PersonId", PersonId).Parameters("ProblemID", ProblemID).Select();
  1020. return dt;
  1021. }
  1022. /// <summary>
  1023. /// 获取评价文件ID
  1024. /// </summary>
  1025. /// <param name="ID"></param>
  1026. /// <returns></returns>
  1027. public DataTable GetEvaluationFile( string ID)
  1028. {
  1029. var dt = this.SqlBuilder.SqlText(@"select
  1030. t.附件类型,
  1031. t.附件id
  1032. from 问题评价附件 t where t.评价id=:ID").Parameters("ID", ID).Select();
  1033. return dt;
  1034. }
  1035. #endregion
  1036. #region 微信登陆相关业务
  1037. public bool IsRegisteredWeChat(string openId, out string account, out string pwd)
  1038. {
  1039. bool isExist= this.SqlBuilder.SqlText("select ID from 系统账户 where 微信ID=:openId").Parameters("openId", openId).Exists();
  1040. if (isExist)
  1041. {
  1042. var model = new AccountModel(this.DataFactoryObject);
  1043. model.WXID = openId;
  1044. model.Select();
  1045. account = model.ZH;
  1046. pwd = model.MM;
  1047. return true;
  1048. }
  1049. else
  1050. {
  1051. account = "";
  1052. pwd = "";
  1053. return false;
  1054. }
  1055. }
  1056. public bool IsAccountExist(string tele)
  1057. {
  1058. return this.SqlBuilder.SqlText("Select ID from 系统账户 where 账户=:tele").Parameters("tele", tele).Exists();
  1059. }
  1060. public bool WechatVerification(string telephone, string Code, string OpenId, out string pwd, out string msg)
  1061. {
  1062. ///验证短信验证码
  1063. var ExpirationTime= this.SqlBuilder.SqlText("select 过期时间 from 短信验证码 where 手机号=:p and 验证码=:y")
  1064. .Parameters("p", telephone).Parameters("y", Code)
  1065. .Select<DateTime>();
  1066. if(ExpirationTime== DateTime.MinValue)
  1067. {
  1068. pwd = "";
  1069. msg = "验证码错误!";
  1070. return false;
  1071. }
  1072. if (ExpirationTime < this.DataBaseBuilder.GetDateTime)
  1073. {
  1074. pwd = "";
  1075. msg = "验证码已过期!";
  1076. return false;
  1077. }
  1078. var t= this.UpdateBuilder.Column("微信ID", OpenId)
  1079. .Where("账户", telephone)
  1080. .Update("系统账户")
  1081. .Execute()>0;
  1082. if (t )
  1083. {
  1084. pwd = this.SqlBuilder.SqlText("select 密码 from 系统账户 where 账户=:account").Parameters("account", telephone).Select<string>();
  1085. msg = "成功";
  1086. return true;
  1087. }
  1088. else
  1089. {
  1090. pwd = "";
  1091. msg = "手机号未关联账户,请联系管理员!";
  1092. return false;
  1093. }
  1094. }
  1095. #endregion
  1096. }
  1097. }