Browse Source

common opinion

dss 2 years ago
parent
commit
adccfe21ca

+ 49 - 0
src/Hotline.Api/Controllers/CommonPController.cs

@@ -0,0 +1,49 @@
+using Hotline.Orders;
+using Hotline.Settings;
+using Hotline.Share.Dtos.Order;
+using MapsterMapper;
+using Microsoft.AspNetCore.Mvc;
+using MongoDB.Driver;
+
+namespace Hotline.Api.Controllers
+{
+    public class CommonPController: BaseController
+    {
+        private readonly ICommonOpinionDomainService _commonOpinionDomainService;
+        private readonly IMapper _mapper;
+
+        public CommonPController(ICommonOpinionDomainService commonOpinionDomainService,IMapper mapper)
+        {
+            _commonOpinionDomainService = commonOpinionDomainService;
+            _mapper = mapper;
+        }
+
+        #region 坐席常用意见
+
+        /// <summary>
+        /// 获取坐席常用意见
+        /// </summary>
+        /// <returns></returns>
+        [HttpGet("seat-common-list")]
+        public async Task<IReadOnlyList<CommonOpinion>> GetSeatCommon()
+        {
+            return await _commonOpinionDomainService.GetCommonOpinions(CommonOpinionTypeConsts.Seat);
+        }
+
+        /// <summary>
+        /// 新增坐席常用意见
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost("add-seat-common")]
+        public async Task AddSeatCommon([FromBody]AddCommonDto dto)
+        {
+            var entity = _mapper.Map<CommonOpinion>(dto);
+            entity.TypeCode = CommonOpinionTypeConsts.Seat;
+            await _commonOpinionDomainService.AddCommonOpinion(entity,HttpContext.RequestAborted);
+        }
+
+        #endregion
+
+    }
+}

+ 15 - 0
src/Hotline.Repository.SqlSugar/Orders/CommonOpinionRepository.cs

@@ -0,0 +1,15 @@
+using Hotline.Orders;
+using Hotline.Repository.SqlSugar.DataPermissions;
+using SqlSugar;
+using XF.Domain.Dependency;
+
+namespace Hotline.Repository.SqlSugar.Orders
+{
+    public class CommonOpinionRepository : BaseRepository<CommonOpinion>, ICommonOpinionRepository, IScopeDependency
+    {
+        public CommonOpinionRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
+        {
+
+        }
+    }
+}

+ 12 - 0
src/Hotline.Share/Dtos/Order/CommonDto.cs

@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Hotline.Share.Dtos.Order
+{
+    public class AddCommonDto
+    {
+    }
+}

+ 13 - 0
src/Hotline/Orders/CommonOpinion.cs

@@ -0,0 +1,13 @@
+using XF.Domain.Repository;
+
+namespace Hotline.Orders
+{
+    public class CommonOpinion: CreationEntity
+    {
+        public string TypeCode { get; set; }
+
+        public string Content { get; set; }
+
+        public int OrderBy { get; set; }
+    }
+}

+ 23 - 0
src/Hotline/Orders/CommonOpinionDomainService.cs

@@ -0,0 +1,23 @@
+using XF.Domain.Dependency;
+
+namespace Hotline.Orders
+{
+    public class CommonOpinionDomainService : ICommonOpinionDomainService, IScopeDependency
+    {
+        private readonly ICommonOpinionRepository _commonOpinionRepository;
+
+        public CommonOpinionDomainService(ICommonOpinionRepository commonOpinionRepository)
+        {
+            _commonOpinionRepository = commonOpinionRepository;
+        }
+        public async Task AddCommonOpinion(CommonOpinion entity,CancellationToken cancellationToken)
+        {
+            await _commonOpinionRepository.AddAsync(entity, cancellationToken);
+        }
+
+        public async Task<IReadOnlyList<CommonOpinion>> GetCommonOpinions(string code)
+        {
+            return await _commonOpinionRepository.Queryable(true).Where(x => x.TypeCode == code).ToListAsync();
+        }
+    }
+}

+ 61 - 0
src/Hotline/Orders/CommonOpinionTypeConsts.cs

@@ -0,0 +1,61 @@
+
+namespace Hotline.Orders
+{
+    public class CommonOpinionTypeConsts
+    {
+        /// <summary>
+        /// 甄别惯用语
+        /// </summary>
+        public const string Discriminate = "Discriminate";
+
+        /// <summary>
+        /// 退回惯用语
+        /// </summary>
+        public const string Return = "Return";
+
+        /// <summary>
+        /// 归档惯用语
+        /// </summary>
+        public const string Archive = "Archive";
+
+        /// <summary>
+        /// 特提惯用语
+        /// </summary>
+        public const string Teti = "Teti";
+
+        /// <summary>
+        /// 坐席惯用语
+        /// </summary>
+        public const string Seat = "Seat";
+
+        /// <summary>
+        /// 流转惯用语
+        /// </summary>
+        public const string Circulation = "Circulation";
+
+        /// <summary>
+        /// 回访惯用语
+        /// </summary>
+        public const string ReturnVisit = "ReturnVisit";
+
+        /// <summary>
+        /// 办理惯用语
+        /// </summary>
+        public const string HandleAgain = "HandleAgain";
+
+        /// <summary>
+        /// 延期惯用语
+        /// </summary>
+        public const string Delay = "Delay";
+
+        /// <summary>
+        /// 督办惯用语
+        /// </summary>
+        public const string Supervise = "Supervise";
+
+        /// <summary>
+        /// 知识诉求惯用语
+        /// </summary>
+        public const string KnowledgeLocution = "KnowledgeLocution";
+    }
+}

+ 15 - 0
src/Hotline/Orders/ICommonOpinionDomainService.cs

@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Hotline.Orders
+{
+    public interface ICommonOpinionDomainService
+    {
+        Task<IReadOnlyList<CommonOpinion>> GetCommonOpinions(string code);
+
+        Task AddCommonOpinion(CommonOpinion entity, CancellationToken cancellationToken);
+    }
+}

+ 9 - 0
src/Hotline/Orders/ICommonOpinionRepository.cs

@@ -0,0 +1,9 @@
+using XF.Domain.Repository;
+
+namespace Hotline.Orders
+{
+    public interface ICommonOpinionRepository : IRepository<CommonOpinion>
+    {
+
+    }
+}