123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 |
- using Cksoft.Data;
- using Cksoft.Unity;
- using DllEapEntity;
- using DllEapEntity.Dtos;
- using DllEapEntity.Enums;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace DllEapDal
- {
- /// <summary>
- /// FAQ
- /// </summary>
- public class FrequentlyAskedQuestionDal
- {
- private readonly IDatabase CurrDb = null;
- public FrequentlyAskedQuestionDal(IDatabase db)
- {
- CurrDb = db;
- }
- /// <summary>
- /// /
- /// </summary>
- /// <param name="question"></param>
- /// <param name="visableRange"></param>
- /// <param name="pageIndex"></param>
- /// <param name="pageSize"></param>
- /// <returns></returns>
-
-
- public async Task<LayuiModel<FrequentlyAskedQuestion>> Get(string question,
- EnumQuestionVisableRange? visableRange, int pageIndex, int pageSize)
- {
- string errorinfo = string.Empty;
- var filter = string.Empty;
- if (!string.IsNullOrEmpty(question))
- {
- filter += $" and a.Question like '%{question}%'";
- }
- if (visableRange.HasValue)
- {
- filter += $" and a.VisableRange={visableRange}";
- }
- var datas = await CurrDb.FindListForConditionAsync<FrequentlyAskedQuestion>(
- $"{filter} order by id desc limit {(pageIndex - 1) * pageSize},{pageSize}",
- ref errorinfo);
- var sql = $"select count(1) from FrequentlyAskedQuestion a where 1=1 {filter}";
- var count = Convert.ToInt32(CurrDb.FindListAsync<string>(sql, null).Result
- .FirstOrDefault() ?? "0");
- return new LayuiModel<FrequentlyAskedQuestion>
- {
- code = 1,
- count = count,
- data = datas
- };
- }
- /// <summary>
- /// 详情
- /// </summary>
- /// <param name="id"></param>
- /// <returns></returns>
- public async Task<FrequentlyAskedQuestion> Get(int id)
- {
- var data = CurrDb.FindEntityFor<FrequentlyAskedQuestion>(id);
- await Task.CompletedTask;
- return data;
- }
- /// <summary>
- /// 新增
- /// </summary>
- /// <param name="question"></param>
- /// <returns></returns>
- public async Task<EapResponse> Add(FrequentlyAskedQuestionAdd question)
- {
-
- var res = CurrDb.InsertFor(question, question.RecCode);
- await Task.CompletedTask;
- return new EapResponse { Code = 1 };
- }
- /// <summary>
- /// 修改
- /// </summary>
- /// <param name="question"></param>
- /// <returns></returns>
- public async Task<EapResponse> Update(FrequentlyAskedQuestionAdd question)
- {
- var exist = CurrDb.FindEntityFor<FrequentlyAskedQuestionAdd>(question.Id);
- exist.Question = question.Question;
- exist.Answer = question.Answer;
- CurrDb.UpdateFor(exist, question.ModCode);
- await Task.CompletedTask;
- return new EapResponse { Code = 1 };
- }
- /// <summary>
- /// 删除
- /// </summary>
- /// <param name="id"></param>
- /// <returns></returns>
- public async Task<EapResponse> Delete(int id)
- {
- int m = CurrDb.DeleteFor<FrequentlyAskedQuestionAdd>(id);
- await Task.CompletedTask;
- if (m==0)
- {
- return new EapResponse { Code = 0, Msg = "删除失败" };
- }
- else
- {
- return new EapResponse { Code = 1, Msg = "删除成功" };
- }
- }
- /// <summary>
- /// 获取FAQ点踩汇总
- /// </summary>
- /// <param name="questionId"></param>
- /// <param name="staffCode"></param>
- /// <returns></returns>
- public async Task<FAQEvaluationDto> GetFAQEvaluation(int questionId, string staffCode)
- {
- string errorinfo = string.Empty;
- var sql = $"select count(1) from FrequentlyAskedQuestionEvaluation where " +
- $"questionId={questionId}";
- var usefulCount = Convert.ToInt32(CurrDb.FindObject(sql + $" and GradeCategory={EnumQuestionEvaluationCategory.Useful}"));
- var uselessCount = Convert.ToInt32(CurrDb.FindObject(sql + $" and GradeCategory={EnumQuestionEvaluationCategory.Useless}"));
- var currentUserEvaluation = (await CurrDb.FindListForConditionAsync<FrequentlyAskedQuestionEvaluation>
- ($" and a.questionId={questionId} and a.staffCode='{staffCode}'", ref errorinfo)).FirstOrDefault();
- return new FAQEvaluationDto
- {
- QuestionId = questionId,
- Evaluation = currentUserEvaluation,
- UsefullCount = usefulCount,
- UselessCount = uselessCount
- };
- }
- /// <summary>
- /// 评价
- /// </summary>
- /// <param name="evaluation"></param>
- /// <returns></returns>
- public async Task<EapResponse> Evaluate(FrequentlyAskedQuestionEvaluation evaluation)
- {
- string errorinfo = string.Empty;
- var question = CurrDb.FindEntityFor<FrequentlyAskedQuestion>(evaluation.QuestionId);
- var exist = (await CurrDb.FindListForConditionAsync<FrequentlyAskedQuestionEvaluation>($"" +
- $" and a.questionId={question.Id} and a.staffcode='{evaluation.StaffCode}'",
- ref errorinfo)).FirstOrDefault();
- if (exist != null)
- {
- CurrDb.DeleteFor<FrequentlyAskedQuestionEvaluation>(exist.Id);
- if(exist.GradeCategory== EnumQuestionEvaluationCategory.Useful)
- {
- question.Usefuls -= 1;
- }
- else
- {
- question.Useless -= 1;
- }
- }
- CurrDb.InsertFor(evaluation, evaluation.StaffCode);
- if (evaluation.GradeCategory == EnumQuestionEvaluationCategory.Useful)
- {
- question.Usefuls += 1;
- }
- else
- {
- question.Useless += 1;
- }
- CurrDb.UpdateFor(question, question.ModCode);
- return new EapResponse { Code = 1 };
- }
- }
- }
|