用户反馈接口初步完成
parent
fd9af47606
commit
f9fc79d3aa
|
@ -0,0 +1,97 @@
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
// 此代码由T4模板自动生成 byzhouhang 20210918
|
||||||
|
// 生成时间 2024-07-30 10:39:12
|
||||||
|
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
using System;
|
||||||
|
using IRaCIS.Core.Domain.Share;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
namespace IRaCIS.Core.Application.ViewModel
|
||||||
|
{
|
||||||
|
/// <summary> UserFeedBackView 列表视图模型 </summary>
|
||||||
|
public class UserFeedBackView : UserFeedBackAddOrEdit
|
||||||
|
{
|
||||||
|
public string TrialCode { get; set; }
|
||||||
|
|
||||||
|
public string ExperimentName { get; set; }
|
||||||
|
|
||||||
|
public string SubjectCode { get; set; }
|
||||||
|
|
||||||
|
public string TrialSiteCode { get; set; }
|
||||||
|
|
||||||
|
public string SubjectVisitName { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
public string FeedBackUserName { get; set; }
|
||||||
|
|
||||||
|
public string FeedBackFullName { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
public DateTime CreateTime { get; set; }
|
||||||
|
public DateTime UpdateTime { get; set; }
|
||||||
|
|
||||||
|
public UserTypeEnum UserTypeEnum { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
///<summary>UserFeedBackQuery 列表查询参数模型</summary>
|
||||||
|
public class UserFeedBackQuery : PageInput
|
||||||
|
{
|
||||||
|
|
||||||
|
public string? TrialKeyInfo { get; set; }
|
||||||
|
|
||||||
|
public string? SubejctAndVisitKeyInfo { get; set; }
|
||||||
|
|
||||||
|
public UserTypeEnum? UserTypeEnum { get; set; }
|
||||||
|
|
||||||
|
public string FeedBackKeyInfo { get; set; }
|
||||||
|
|
||||||
|
public string? QuestionDescription { get; set; }
|
||||||
|
|
||||||
|
public int? QuestionType { get; set; }
|
||||||
|
|
||||||
|
public int? State { get; set; }
|
||||||
|
|
||||||
|
public string? TrialSiteCode { get; set; }
|
||||||
|
|
||||||
|
public DateTime? BeginCreatime { get; set; }
|
||||||
|
|
||||||
|
public DateTime? EndCreatime { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
///<summary> UserFeedBackAddOrEdit 列表查询参数模型</summary>
|
||||||
|
public class UserFeedBackAddOrEdit
|
||||||
|
{
|
||||||
|
public Guid? Id { get; set; }
|
||||||
|
public Guid? SubjectId { get; set; }
|
||||||
|
public Guid? SubjectVisitId { get; set; }
|
||||||
|
public int QuestionType { get; set; }
|
||||||
|
public string QuestionDescription { get; set; }
|
||||||
|
|
||||||
|
public int State { get; set; }
|
||||||
|
public Guid? TrialSiteId { get; set; }
|
||||||
|
|
||||||
|
[NotDefault]
|
||||||
|
public Guid TrialId { get; set; }
|
||||||
|
|
||||||
|
public List<string> ScreenshotList { get; set; }
|
||||||
|
|
||||||
|
[JsonIgnore]
|
||||||
|
public string ScreenshotListStr { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public class BatchUpdateCommand
|
||||||
|
{
|
||||||
|
public List<Guid> IdList { get; set; }
|
||||||
|
|
||||||
|
public int State { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
// 此代码由T4模板自动生成 byzhouhang 20210918
|
||||||
|
// 生成时间 2024-07-30 10:39:05
|
||||||
|
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
|
||||||
|
using IRaCIS.Core.Application.ViewModel;
|
||||||
|
namespace IRaCIS.Core.Application.Interfaces
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// IUserFeedBackService
|
||||||
|
/// </summary>
|
||||||
|
public interface IUserFeedBackService
|
||||||
|
{
|
||||||
|
|
||||||
|
Task<PageOutput<UserFeedBackView>> GetUserFeedBackList(UserFeedBackQuery inQuery);
|
||||||
|
|
||||||
|
Task<IResponseOutput> AddOrUpdateUserFeedBack(UserFeedBackAddOrEdit addOrEditUserFeedBack);
|
||||||
|
|
||||||
|
Task<IResponseOutput> DeleteUserFeedBack(Guid userFeedBackId);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,89 @@
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
// 此代码由T4模板自动生成 byzhouhang 20210918
|
||||||
|
// 生成时间 2024-07-30 10:39:09
|
||||||
|
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
|
||||||
|
using IRaCIS.Core.Domain.Models;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using IRaCIS.Core.Application.Interfaces;
|
||||||
|
using IRaCIS.Core.Application.ViewModel;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
namespace IRaCIS.Core.Application.Service
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// UserFeedBackService
|
||||||
|
/// </summary>
|
||||||
|
[ApiExplorerSettings(GroupName = "Management")]
|
||||||
|
public class UserFeedBackService : BaseService, IUserFeedBackService
|
||||||
|
{
|
||||||
|
|
||||||
|
private readonly IRepository<UserFeedBack> _userFeedBackRepository;
|
||||||
|
|
||||||
|
public UserFeedBackService(IRepository<UserFeedBack> userFeedBackRepository)
|
||||||
|
{
|
||||||
|
_userFeedBackRepository = userFeedBackRepository;
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost]
|
||||||
|
public async Task<PageOutput<UserFeedBackView>> GetUserFeedBackList(UserFeedBackQuery inQuery)
|
||||||
|
{
|
||||||
|
|
||||||
|
var userFeedBackQueryable = _userFeedBackRepository
|
||||||
|
.WhereIf(inQuery.State != null, t => t.State == inQuery.State)
|
||||||
|
.WhereIf(inQuery.QuestionType != null, t => t.QuestionType == inQuery.QuestionType)
|
||||||
|
.WhereIf(inQuery.BeginCreatime != null, t => t.CreateTime >= inQuery.BeginCreatime)
|
||||||
|
|
||||||
|
.WhereIf(inQuery.EndCreatime != null, t => t.CreateTime == inQuery.EndCreatime)
|
||||||
|
.WhereIf(inQuery.UserTypeEnum != null, t => t.CreateUser.UserTypeEnum == inQuery.UserTypeEnum)
|
||||||
|
.WhereIf(!string.IsNullOrEmpty(inQuery.QuestionDescription), t => t.QuestionDescription.Contains(inQuery.QuestionDescription) )
|
||||||
|
.WhereIf(!string.IsNullOrEmpty(inQuery.TrialKeyInfo), t => t.Trial.ExperimentName.Contains(inQuery.TrialKeyInfo) || t.Trial.TrialCode.Contains(inQuery.TrialKeyInfo))
|
||||||
|
.WhereIf(!string.IsNullOrEmpty(inQuery.SubejctAndVisitKeyInfo), t => t.Subject.Code.Contains(inQuery.SubejctAndVisitKeyInfo) || t.SubjectVisit.VisitName.Contains(inQuery.SubejctAndVisitKeyInfo))
|
||||||
|
.WhereIf(!string.IsNullOrEmpty(inQuery.TrialSiteCode), t => t.TrialSite.TrialSiteCode.Contains(inQuery.TrialSiteCode) )
|
||||||
|
|
||||||
|
.ProjectTo<UserFeedBackView>(_mapper.ConfigurationProvider);
|
||||||
|
|
||||||
|
var pageList = await userFeedBackQueryable
|
||||||
|
|
||||||
|
.ToPagedListAsync(inQuery.PageIndex, inQuery.PageSize, string.IsNullOrWhiteSpace(inQuery.SortField) ? nameof(UserFeedBackView.Id) : inQuery.SortField,
|
||||||
|
inQuery.Asc);
|
||||||
|
|
||||||
|
return pageList;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public async Task<IResponseOutput> AddOrUpdateUserFeedBack(UserFeedBackAddOrEdit addOrEditUserFeedBack)
|
||||||
|
{
|
||||||
|
addOrEditUserFeedBack.ScreenshotListStr = JsonConvert.SerializeObject(addOrEditUserFeedBack.ScreenshotList);
|
||||||
|
|
||||||
|
|
||||||
|
var entity = await _userFeedBackRepository.InsertOrUpdateAsync(addOrEditUserFeedBack, true);
|
||||||
|
|
||||||
|
return ResponseOutput.Ok(entity.Id.ToString());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 批量更新状态
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="batchUpdateCommand"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPut]
|
||||||
|
public async Task<IResponseOutput> BatchUpdateFeedBackState(BatchUpdateCommand batchUpdateCommand)
|
||||||
|
{
|
||||||
|
await _userFeedBackRepository.BatchUpdateNoTrackingAsync(t => batchUpdateCommand.IdList.Contains(t.Id), u => new UserFeedBack() { State = batchUpdateCommand.State });
|
||||||
|
|
||||||
|
return ResponseOutput.Ok();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
[HttpDelete("{userFeedBackId:guid}")]
|
||||||
|
public async Task<IResponseOutput> DeleteUserFeedBack(Guid userFeedBackId)
|
||||||
|
{
|
||||||
|
var success = await _userFeedBackRepository.DeleteFromQueryAsync(t => t.Id == userFeedBackId, true);
|
||||||
|
return ResponseOutput.Ok();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -125,6 +125,18 @@ namespace IRaCIS.Core.Application.Service
|
||||||
.ForMember(d => d.OptUserName, c => c.MapFrom(t => t.OptUser.UserName))
|
.ForMember(d => d.OptUserName, c => c.MapFrom(t => t.OptUser.UserName))
|
||||||
.ForMember(d => d.OptUserTypeEnum, c => c.MapFrom(t => t.OptUser.UserTypeEnum))
|
.ForMember(d => d.OptUserTypeEnum, c => c.MapFrom(t => t.OptUser.UserTypeEnum))
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
|
CreateMap<UserFeedBack, UserFeedBackView>()
|
||||||
|
.ForMember(d => d.ExperimentName, c => c.MapFrom(t => t.Trial.ExperimentName))
|
||||||
|
.ForMember(d => d.TrialCode, c => c.MapFrom(t => t.Trial.TrialCode))
|
||||||
|
.ForMember(d => d.SubjectCode, c => c.MapFrom(t => t.Subject.Code))
|
||||||
|
.ForMember(d => d.TrialSiteCode, c => c.MapFrom(t => t.TrialSite.TrialSiteCode))
|
||||||
|
.ForMember(d => d.SubjectVisitName, c => c.MapFrom(t => t.SubjectVisit.VisitName))
|
||||||
|
.ForMember(d => d.FeedBackUserName, c => c.MapFrom(t => t.CreateUser.UserName))
|
||||||
|
.ForMember(d => d.FeedBackFullName, c => c.MapFrom(t => t.CreateUser.FullName))
|
||||||
|
.ForMember(d => d.UserTypeEnum, c => c.MapFrom(t => t.CreateUser.UserTypeEnum));
|
||||||
|
CreateMap<UserFeedBack, UserFeedBackAddOrEdit>().ReverseMap();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,77 @@
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
// 此代码由T4模板自动生成 byzhouhang 20210918
|
||||||
|
// 生成时间 2024-07-30 10:39:01
|
||||||
|
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
|
||||||
|
using System;
|
||||||
|
using IRaCIS.Core.Domain.Share;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
namespace IRaCIS.Core.Domain.Models
|
||||||
|
{
|
||||||
|
///<summary>
|
||||||
|
///UserFeedBack
|
||||||
|
///</summary>
|
||||||
|
[Table("UserFeedBack")]
|
||||||
|
public class UserFeedBack : Entity, IAuditUpdate, IAuditAdd
|
||||||
|
{
|
||||||
|
[JsonIgnore]
|
||||||
|
public Trial Trial { get; set; }
|
||||||
|
[JsonIgnore]
|
||||||
|
public Subject Subject { get; set; }
|
||||||
|
[JsonIgnore]
|
||||||
|
public SubjectVisit SubjectVisit { get; set; }
|
||||||
|
[JsonIgnore]
|
||||||
|
public TrialSite TrialSite { get; set; }
|
||||||
|
[JsonIgnore]
|
||||||
|
public User CreateUser { get; set; }
|
||||||
|
|
||||||
|
public Guid? SubjectId { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
public Guid? SubjectVisitId { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
public int QuestionType { get; set; }
|
||||||
|
|
||||||
|
public string QuestionDescription { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
public Guid CreateUserId { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
public DateTime CreateTime { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
public Guid UpdateUserId { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
public DateTime UpdateTime { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
public int State { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
public Guid? TrialSiteId { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
public Guid TrialId { get; set; }
|
||||||
|
|
||||||
|
public string ScreenshotListStr { get; set; }
|
||||||
|
|
||||||
|
//
|
||||||
|
[NotMapped]
|
||||||
|
public List<string> ScreenshotList => JsonConvert.DeserializeObject<List<string>>(ScreenshotListStr);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//public class ScreenshotInfo
|
||||||
|
//{
|
||||||
|
// public string Path { get; set; }
|
||||||
|
|
||||||
|
// public string Name { get; set; }
|
||||||
|
//}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -495,6 +495,8 @@ namespace IRaCIS.Core.Infra.EFCore
|
||||||
|
|
||||||
public virtual DbSet<SCPImageUpload> SCPImageUpload { get; set; }
|
public virtual DbSet<SCPImageUpload> SCPImageUpload { get; set; }
|
||||||
|
|
||||||
|
public virtual DbSet<UserFeedBack> UserFeedBack { get; set; }
|
||||||
|
|
||||||
|
|
||||||
public override async Task<int> SaveChangesAsync(CancellationToken cancellationToken = new CancellationToken())
|
public override async Task<int> SaveChangesAsync(CancellationToken cancellationToken = new CancellationToken())
|
||||||
{
|
{
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
public static readonly string ConnectionString = "Server=106.14.89.110,1435;Database=Test_IRC;User ID=sa;Password=xc@123456;TrustServerCertificate=true";
|
public static readonly string ConnectionString = "Server=106.14.89.110,1435;Database=Test_IRC;User ID=sa;Password=xc@123456;TrustServerCertificate=true";
|
||||||
public static readonly string DbDatabase = "Test_IRC";
|
public static readonly string DbDatabase = "Test_IRC";
|
||||||
//表名称用字符串,拼接
|
//表名称用字符串,拼接
|
||||||
public static readonly string TableName = "TrialSiteDicomAE";
|
public static readonly string TableName = "UserFeedBack";
|
||||||
//具体文件里面 例如service 可以配置是否分页
|
//具体文件里面 例如service 可以配置是否分页
|
||||||
}
|
}
|
||||||
#>
|
#>
|
||||||
|
|
Loading…
Reference in New Issue