Ver código fonte

Merge branch 'develop' of http://132.232.92.186:3000/XinXiBu/OA2023 into develop

jiangjc 2 anos atrás
pai
commit
d8ac0fd272
31 arquivos alterados com 1443 adições e 182 exclusões
  1. 1 0
      OASystem/EntitySync/Program.cs
  2. 25 18
      OASystem/OASystem.Api/Controllers/AuthController.cs
  3. 71 14
      OASystem/OASystem.Api/Controllers/GroupsController.cs
  4. 192 0
      OASystem/OASystem.Api/Controllers/ResourceController.cs
  5. 139 13
      OASystem/OASystem.Api/Controllers/SystemController.cs
  6. 4 0
      OASystem/OASystem.Api/GlobalUsings.cs
  7. 24 0
      OASystem/OASystem.Api/OAMethodLib/JsonConvertOverride.cs
  8. 11 0
      OASystem/OASystem.Domain/AutoMappers/_baseMappingProfile.cs
  9. 1 1
      OASystem/OASystem.Domain/Dtos/DtoBase.cs
  10. 24 6
      OASystem/OASystem.Domain/Dtos/Groups/GroupListDto.cs
  11. 311 0
      OASystem/OASystem.Domain/Dtos/Resource/CarDataDto.cs
  12. 61 0
      OASystem/OASystem.Domain/Dtos/System/MsgDto.cs
  13. 19 0
      OASystem/OASystem.Domain/Dtos/System/SetDataDto.cs
  14. 1 1
      OASystem/OASystem.Domain/Dtos/UserDto/LoginDto.cs
  15. 48 37
      OASystem/OASystem.Domain/Entities/Customer/Crm_DeleClient.cs
  16. 2 2
      OASystem/OASystem.Domain/Entities/Groups/Grp_DelegationInfo.cs
  17. 9 0
      OASystem/OASystem.Domain/Entities/System/Sys_JobPost.cs
  18. 1 1
      OASystem/OASystem.Domain/Result.cs
  19. 22 10
      OASystem/OASystem.Domain/ViewModels/Group/DelegationInfoView.cs
  20. 5 0
      OASystem/OASystem.Domain/ViewModels/LoginView.cs
  21. 13 0
      OASystem/OASystem.Domain/ViewModels/Resource/CarDataView.cs
  22. 15 0
      OASystem/OASystem.Domain/ViewModels/System/JobPostView.cs
  23. 54 0
      OASystem/OASystem.Domain/ViewModels/System/MessageView.cs
  24. 5 5
      OASystem/OASystem.Domain/ViewModels/System/UserInfoView.cs
  25. 11 0
      OASystem/OASystem.Infrastructure/Repositories/BaseRepository.cs
  26. 194 50
      OASystem/OASystem.Infrastructure/Repositories/Groups/DelegationInfoRepository.cs
  27. 17 2
      OASystem/OASystem.Infrastructure/Repositories/Login/LoginRepository.cs
  28. 12 0
      OASystem/OASystem.Infrastructure/Repositories/Resource/CarDataRepository.cs
  29. 10 1
      OASystem/OASystem.Infrastructure/Repositories/System/JobPostRepository.cs
  30. 130 20
      OASystem/OASystem.Infrastructure/Repositories/System/MessageRepository.cs
  31. 11 1
      OASystem/OASystem.Infrastructure/Repositories/System/UsersRepository.cs

+ 1 - 0
OASystem/EntitySync/Program.cs

@@ -80,5 +80,6 @@ db.CodeFirst.SetStringDefaultLength(50).BackupTable().InitTables(new Type[]
 
     //typeof(Sys_Message),
     //typeof(Sys_MessageReadAuth)
+    typeof(Crm_DeleClient)
 });
 Console.WriteLine("数据库结构同步完成!");

+ 25 - 18
OASystem/OASystem.Api/Controllers/AuthController.cs

@@ -6,6 +6,7 @@ using OASystem.Domain.Dtos.UserDto;
 using OASystem.API.OAMethodLib;
 using Serilog.Parsing;
 using OASystem.Domain.Dtos.System;
+using System.Drawing.Drawing2D;
 
 namespace OASystem.API.Controllers
 {
@@ -19,6 +20,7 @@ namespace OASystem.API.Controllers
         private readonly IConfiguration _config;
         private readonly LoginRepository _loginRep;
         private readonly MessageRepository _message; 
+
         public AuthController(IConfiguration config, LoginRepository loginRep, IMapper mapper,MessageRepository message)
         {
             _config = config;
@@ -38,22 +40,27 @@ namespace OASystem.API.Controllers
         public async Task<IActionResult> LoginAsync(LoginDto dto)
         {
             #region 校验用户信息 
-            var userData = _loginRep.Login(dto);
-            if (userData.Result.Code != 0)
+            var userData = _loginRep.Login(dto).Result;
+            if (userData.Code != 0)
             {
-                if (userData.Result.Code != 0) { return Ok(JsonView(false, userData.Result.Msg)); }
+                if (userData.Code != 0) { return Ok(JsonView(false, userData.Msg)); }
 
                 return Ok(JsonView(false, "暂无该员工信息!"));
             }
 
             #endregion
+
+
+            dynamic authData = null;
+
             var view = new LoginView
             {
-                UserInfo = userData.Result.Data
+                UserInfo = userData.Data,
+                AuthData = authData,
             };
 
 
-            DateTime createZebraTime = DateTime.UtcNow;
+            DateTime createZebraTime = DateTime.Now;
             string authorId = dto.Number + "Token";
             string authorToken = await RedisRepository.RedisFactory.CreateRedisRepository().StringGetAsync<string>(authorId);//string 取
             if (authorToken !=  null)
@@ -84,19 +91,19 @@ namespace OASystem.API.Controllers
 
             #region 测试添加系统消息
 
-            await _message.AddMsg(new MessageDto()
-            {
-                Type = 1,
-                IssuerId = 208,
-                Title = "测试添加消息标题",
-                Content = "消息体测试",
-                ReleaseTime = DateTime.Now,
-                UIdList = new List<int> {
-                    5,
-                    208,
-                    219
-                }
-            });
+            //await _message.AddMsg(new MessageDto()
+            //{
+            //    Type = 1,
+            //    IssuerId = 208,
+            //    Title = "测试添加消息标题",
+            //    Content = "消息体测试",
+            //    ReleaseTime = DateTime.Now,
+            //    UIdList = new List<int> {
+            //        5,
+            //        208,
+            //        219
+            //    }
+            //});
             #endregion
 
             return Ok(JsonView(view));

+ 71 - 14
OASystem/OASystem.Api/Controllers/GroupsController.cs

@@ -8,7 +8,7 @@ using OASystem.Infrastructure.Repositories.Groups;
 namespace OASystem.API.Controllers
 {
     /// <summary>
-    /// 团组
+    /// 团组相关
     /// </summary>
     //[Authorize]
     [Route("api/[controller]/[action]")]
@@ -17,6 +17,7 @@ namespace OASystem.API.Controllers
         private readonly GrpScheduleRepository _grpScheduleRep;
         private readonly IMapper _mapper;
         private readonly DelegationInfoRepository _groupRepository;
+
         public GroupsController(IMapper mapper, GrpScheduleRepository grpScheduleRep, DelegationInfoRepository groupRepository)
         {
             _mapper = mapper;
@@ -74,11 +75,10 @@ namespace OASystem.API.Controllers
 
         #endregion
 
-
         #region 团组基本信息
 
         /// <summary>
-        ///  接团信息 List
+        ///  接团信息列表
         /// </summary>
         /// <param name="dto">团组列表请求dto</param>
         /// <returns></returns>
@@ -91,11 +91,11 @@ namespace OASystem.API.Controllers
                 return Ok(JsonView(false, groupData.Msg));
             }
 
-            return Ok(JsonView(groupData.Data, groupData.Data.Count));
+            return Ok(JsonView(groupData.Data));
         }
 
         /// <summary>
-        ///  接团信息 Singe
+        ///  接团信息详情
         /// </summary>
         /// <param name="dto">团组info请求dto</param>
         /// <returns></returns>
@@ -108,7 +108,7 @@ namespace OASystem.API.Controllers
                 return Ok(JsonView(false, groupData.Msg));
             }
 
-            return Ok(JsonView(groupData.Data, groupData.Data.Count));
+            return Ok(JsonView(groupData.Data));
         }
 
         /// <summary>
@@ -118,35 +118,92 @@ namespace OASystem.API.Controllers
         /// <param name="dto"></param>
         /// <returns></returns>
         [HttpPost]
-        public async Task<IActionResult> GetGroupEditBasicSource(GroupListDto dto)
+        public async Task<IActionResult> GroupEditBasicSource(GroupListDto dto)
         {
-            var groupData = await _groupRepository.GetGroupEditBasicSource(dto);
+
+            var groupData = await _groupRepository.GroupEditBasicSource(dto);
             if (groupData.Code != 0)
             {
                 return Ok(JsonView(false, groupData.Msg));
             }
-
             return Ok(JsonView(groupData.Data));
+
         }
 
         /// <summary>
-        /// 接团信息 操作
-        /// 基础信息数据源
+        /// 接团信息 操作(增改)
         /// </summary>
         /// <param name="dto"></param>
         /// <returns></returns>
         [HttpPost]
         public async Task<IActionResult> GroupOperation(GroupOperationDto dto)
         {
-            var groupData = await _groupRepository.GroupOperation(dto);
+            try
+            {
+                var groupData = await _groupRepository.GroupOperation(dto);
+                if (groupData.Code != 0)
+                {
+                    return Ok(JsonView(false, groupData.Msg));
+                }
+
+                return Ok(JsonView(true));
+            }
+            catch (Exception ex)
+            {
+
+                Logs("[response]" +  JsonConvert.SerializeObject( dto));
+                Logs(ex.Message);
+                return Ok(JsonView(false, ex.Message));
+            }
+        }
+
+        /// <summary>
+        /// 接团信息 操作(删除)
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost]
+        public async Task<IActionResult> GroupDel(GroupDelDto dto)
+        {
+            try
+            {
+                var groupData = await _groupRepository.GroupDel(dto);
+                if (groupData.Code != 0)
+                {
+                    return Ok(JsonView(false, groupData.Msg));
+                }
+
+                return Ok(JsonView(true));
+            }
+            catch (Exception ex)
+            {
+
+                Logs("[response]" + JsonConvert.SerializeObject(dto));
+                Logs(ex.Message);
+                return Ok(JsonView(false, ex.Message));
+            }
+        }
+
+        /// <summary>
+        /// 获取团组销售报价号
+        /// 团组添加时 使用
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        public async Task<IActionResult> GetGroupSalesQuoteNo()
+        {
+            var groupData = await _groupRepository.GetGroupSalesQuoteNo();
             if (groupData.Code != 0)
             {
                 return Ok(JsonView(false, groupData.Msg));
             }
+            object salesQuoteNo = new
+            {
+                SalesQuoteNo = groupData.Data
+            };
 
-            return Ok(JsonView(true));
+            return Ok(JsonView(salesQuoteNo));
         }
-
         #endregion
     }
 }

+ 192 - 0
OASystem/OASystem.Api/Controllers/ResourceController.cs

@@ -0,0 +1,192 @@
+
+
+namespace OASystem.API.Controllers
+{
+    /// <summary>
+    /// 资料相关
+    /// </summary>
+    //[Authorize]
+    [Route("api/[controller]/[action]")]
+    public class ResourceController : ControllerBase
+    {
+        private readonly IMapper _mapper;
+        private readonly IConfiguration _config;
+        private readonly CarDataRepository _carDataRep;
+       
+        public ResourceController(IMapper mapper, IConfiguration config,CarDataRepository carDataRep)
+        {
+            _mapper = mapper;
+            _config = config;
+            _carDataRep = carDataRep;
+        }
+        #region 车公司资料板块
+
+        /// <summary>
+        /// 车公司信息查询
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> QuerCarData(DtoBase dto)
+        {
+            try
+            {
+                if (dto.PortType==1)
+                {
+                    var carDada = _carDataRep.QueryDto<Res_CarData, CarDataView>().ToList();
+                    if (carDada.Count == 0)
+                    {
+                        return Ok(JsonView(false, "暂无数据!"));
+                    }
+                    carDada = carDada.OrderByDescending(s => s.CreateTime).ToList();
+                    return Ok(JsonView(true, "查询成功", carDada));
+                }
+                else if(dto.PortType==2)
+                {
+                    var carDada = _carDataRep.QueryDto<Res_CarData, CarDataView>().ToList();
+                    if (carDada.Count == 0)
+                    {
+                        return Ok(JsonView(false, "暂无数据!"));
+                    }
+                    carDada=carDada.OrderByDescending(s=>s.CreateTime).ToList();
+                    return Ok(JsonView(true, "查询成功", carDada));
+                }
+                else
+                {
+                    return Ok(JsonView(false, "请传入PortType参数!1:Web,2:Android,3:IOS"));
+                }
+               
+            }
+            catch (Exception ex)
+            {
+                return Ok(JsonView(false, "程序错误!"));
+                throw;
+            }
+           
+            
+        }
+
+        /// <summary>
+        /// 车公司信息添加
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> AddCarData(AddCarDataDto dto)
+        {
+            try
+            {
+                if (dto.UnitArea == "")
+                {
+                    return Ok(JsonView(false, "请检查单位区域是否填写!"));
+                }
+                if (dto.UnitName == "")
+                {
+                    return Ok(JsonView(false, "请检查单位名称是否填写!"));
+                }
+                if (dto.Contact == "")
+                {
+                    return Ok(JsonView(false, "请检查单位联系人是否填写!"));
+                }
+                if (dto.ContactTel == "")
+                {
+                    return Ok(JsonView(false, "请检查联系方式是否填写正确!"));
+                }
+                Res_CarData _CarData = _mapper.Map<Res_CarData>(dto);
+                int id = await _carDataRep.AddAsyncReturnId(_CarData);
+                if (id == 0) 
+                {
+                    return Ok(JsonView(false, "添加失败!"));
+                }
+                return Ok(JsonView(true, "添加成功", new { Id = id }));
+            }
+            catch (Exception ex)
+            {
+                return Ok(JsonView(false, "程序错误!"));
+                throw;
+            }
+        }
+
+        /// <summary>
+        /// 车公司信息修改
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> UpCarData(UpCarDataDto dto)
+        {
+            try
+            {
+                if (dto.UnitArea == "")
+                {
+                    return Ok(JsonView(false, "请检查单位区域是否填写!"));
+                }
+                if (dto.UnitName == "")
+                {
+                    return Ok(JsonView(false, "请检查单位名称是否填写!"));
+                }
+                if (dto.Contact == "")
+                {
+                    return Ok(JsonView(false, "请检查单位联系人是否填写!"));
+                }
+                if (dto.ContactTel == "")
+                {
+                    return Ok(JsonView(false, "请检查联系方式是否填写正确!"));
+                }
+                bool res = await _carDataRep.UpdateAsync(a => a.Id == dto.Id, a => new Res_CarData
+                {
+                    UnitArea = dto.UnitArea,
+                    UnitName = dto.UnitName,
+                    Address = dto.Address,
+                    Contact = dto.Contact,
+                    ContactTel = dto.ContactTel,
+                    ContactEmail = dto.ContactEmail,
+                    ContactFax = dto.ContactFax,
+                    CarDes = dto.CarDes,
+                    CarPicPaths = dto.CarPicPaths,
+                    OtherInfo = dto.OtherInfo,
+                    Score = dto.Score,
+                    QualificationScore = dto.QualificationScore,
+                    CarAgeScore = dto.CarAgeScore,
+                    CleanImgScore = dto.CleanImgScore,
+                    SmellScore = dto.SmellScore,
+                    WaterPaperScore = dto.WaterPaperScore,
+                    HardwareScore = dto.HardwareScore,
+                    TimeScore = dto.TimeScore,
+                    SafetyScore = dto.SafetyScore,
+                    DrivingAgeScore = dto.DrivingAgeScore,
+                    Remark = dto.Remark,
+                });
+                if (!res) { return Ok(JsonView(false, "修改失败!")); }
+                return Ok(JsonView(true, "修改成功"));
+            }
+            catch (Exception ex)
+            {
+                return Ok(JsonView(false, "程序错误!"));
+                throw;
+            }
+        }
+        /// <summary>
+        /// 车公司信息修改
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> DelCarData(DelCarDataDto dto)
+        {
+            try
+            {
+                bool res = await _carDataRep.SoftDeleteByIdAsync<Res_CarData>(dto.Id.ToString(), dto.DeleteUserId);
+                if (!res) { return Ok(JsonView(false, "删除失败!")); }
+                return Ok(JsonView(true, "删除成功"));
+            }
+            catch (Exception ex)
+            {
+                return Ok(JsonView(false, "程序错误!"));
+                throw;
+            }
+        }
+        #endregion
+
+    }
+}

+ 139 - 13
OASystem/OASystem.Api/Controllers/SystemController.cs

@@ -1,4 +1,7 @@
-using System.Collections;
+
+using OASystem.Domain.Dtos.System;
+using Org.BouncyCastle.Asn1.Cms;
+using System.Collections;
 using static OpenAI.GPT3.ObjectModels.SharedModels.IOpenAiModels;
 
 namespace OASystem.API.Controllers
@@ -15,7 +18,7 @@ namespace OASystem.API.Controllers
         private readonly DepartmentRepository _sysDepRep;
         private readonly UsersRepository _userRep;
         private readonly IMapper _mapper;
-
+        private readonly MessageRepository _messageRep;
         private readonly SetDataRepository _setDataRepository;
         private readonly SystemMenuPermissionRepository _SystemMenuPermissionRepository;
         private readonly CompanyRepository _CompanyRepository;
@@ -23,17 +26,19 @@ namespace OASystem.API.Controllers
         private readonly SystemMenuAndFunctionRepository _SystemMenuAndFunctionRepository;
         private readonly JobPostAuthorityRepository _JobPostAuthorityRepository;
         private readonly JobPostRepository _jobRep;
+
         private readonly UserAuthorityRepository _UserAuthorityRepository;
 
         public SystemController( CompanyRepository syscom, DepartmentRepository sysDepRep, UsersRepository userRep,
             IMapper mapper, SetDataRepository setDataRepository, CompanyRepository companyRepository,
             SystemMenuPermissionRepository systemMenuPermissionRepository, PageFunctionPermissionRepository pageFunctionPermissionRepository,
-            SystemMenuAndFunctionRepository systemMenuAndFunctionRepository, JobPostAuthorityRepository jobPostAuthorityRepository, JobPostRepository jobRep
-            , UserAuthorityRepository userAuthorityRepository)
+            SystemMenuAndFunctionRepository systemMenuAndFunctionRepository, JobPostAuthorityRepository jobPostAuthorityRepository, 
+            JobPostRepository jobRep,UserAuthorityRepository userAuthorityRepository, MessageRepository messageRep)
             
         {
             _syscomRep = syscom;
             _sysDepRep = sysDepRep;
+            _messageRep = messageRep;
             _userRep = userRep;
             _mapper = mapper;
             _setDataRepository = setDataRepository;
@@ -43,7 +48,117 @@ namespace OASystem.API.Controllers
             _SystemMenuAndFunctionRepository = systemMenuAndFunctionRepository;
             _JobPostAuthorityRepository = jobPostAuthorityRepository;
             _UserAuthorityRepository = userAuthorityRepository;
+            _jobRep = jobRep;
         }
+        #region 消息
+
+        /// <summary>
+        /// 获取消息列表
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> GetMsgList(MsgDto dto)
+        {
+            var msgData = await _messageRep.GetMsgList(dto);
+
+            if (msgData.Code != 0)
+            {
+                return Ok(JsonView(false, msgData.Msg));
+            }
+
+            return Ok(JsonView(true, msgData.Data));
+        }
+
+        /// <summary>
+        /// 获取消息详细信息
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> GetMsgInfo(MsgInfoDto dto)
+        {
+            var msgData = await _messageRep.GetMsgInfo(dto);
+
+            if (msgData.Code != 0)
+            {
+                return Ok(JsonView(false, msgData.Msg));
+            }
+
+            return Ok(JsonView(true, msgData.Data));
+        }
+
+        /// <summary>
+        /// 消息设置已读
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> SetMessageRead(MsgSetReadDto dto)
+        {
+            var msgData = await _messageRep.SetMsgRead(dto);
+
+            if (msgData.Code != 0)
+            {
+                return Ok(JsonView(false, msgData.Msg));
+            }
+
+            return Ok(JsonView(true, msgData.Data));
+        }
+
+        /// <summary>
+        /// 消息设置已读
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> DeleMsg(MsgDeleteDto dto)
+        {
+            var msgData = await _messageRep.DelMsg(dto);
+
+            if (msgData.Code != 0)
+            {
+                return Ok(JsonView(false, msgData.Msg));
+            }
+
+            return Ok(JsonView(true, msgData.Data));
+        }
+        #endregion
+
+        #region 类型表
+        /// <summary>
+        /// 查询类型数据
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> QuerSetData(SetDataDto dto)
+        {
+            try
+            {
+                if (dto.DataType==0)
+                {
+                    return Ok(JsonView(false, "请传类型Id!"));
+                }
+                var setData = _setDataRepository.QueryDto<Sys_SetData, SetDataView>(s=>s.STid==dto.DataType).ToList();
+                if (setData.Count == 0)
+                {
+                    return Ok(JsonView(false, "暂无数据!"));
+                }
+                return Ok(JsonView(true, "查询成功!",setData));
+            }
+            catch (Exception ex)
+            {
+                return Ok(JsonView(false, "程序错误!"));
+                throw;
+            }
+        }
+        #endregion
 
         #region 企业操作
         /// <summary>
@@ -434,12 +549,28 @@ namespace OASystem.API.Controllers
             {
                 if (dto.PortType == 1)
                 {
-                    var result = _sysDepRep.QueryDto<Sys_JobPost, JobPostView>(s => s.CompanyId == dto.CompanyId && s.DepId == dto.DepId).ToList();
-                    if (result.Count == 0)
+                    string sqlWhere = string.Empty;
+                    if (dto.CompanyId != 0)
+                    {
+                        sqlWhere += string.Format(@" And jp.CompanyId={0}", dto.CompanyId);
+                    }
+                    if (dto.DepId != 0)
+                    {
+                        sqlWhere += string.Format(@" And jp.DepId={0}", dto.DepId);
+                    }
+                    if (!string.IsNullOrEmpty(sqlWhere.Trim()))
+                    {
+                        Regex r = new Regex("And");
+                        sqlWhere = r.Replace(sqlWhere, "Where", 1);
+                    }
+                    List<Sys_JobPostI> jobList = await _jobRep.QueryJobPost(sqlWhere);
+
+                    List<JobPostView> List = _mapper.Map<List<JobPostView>>(jobList);
+                    if (jobList.Count == 0)
                     {
                         return Ok(JsonView(false, "暂无数据!"));
                     }
-                    return Ok(JsonView(true, "查询成功!", result));
+                    return Ok(JsonView(true, "查询成功!", jobList));
                 }
                 else if (dto.PortType == 2)
                 {
@@ -603,14 +734,9 @@ namespace OASystem.API.Controllers
                     Regex r = new Regex("And");
                     sqlWhere = r.Replace(sqlWhere, "Where", 1);
                 }
-                string userSqlWhere = string.Format(@"Select sc.CompanyName,sd.DepName,sjp.JobName,su.* From Sys_Users su 
-                                                        Inner Join Sys_Company sc On su.CompanyId = sc.Id
-                                                        Inner Join Sys_Department sd On su.DepId = sd.Id
-                                                        Inner Join Sys_JobPost sjp On su.JobPostId = sjp.Id {0}", sqlWhere);
-                var _userList =_userRep.GetListBySqlWithNolock(userSqlWhere);
+                List<UserInfo> _userList =await _userRep.QueryUser(sqlWhere);
                 if (_userList.Count == 0)
                 {
-                    
                     return Ok(JsonView(false, "暂无数据!"));
                 }
                 List<UserInfoWebView> userList = _mapper.Map<List<UserInfoWebView>>(_userList);

+ 4 - 0
OASystem/OASystem.Api/GlobalUsings.cs

@@ -51,5 +51,9 @@ global using OASystem.Domain.Dtos.System;
 global using OASystem.Domain.Entities.System;
 global using OASystem.Domain.ViewModels.System;
 global using OASystem.Infrastructure.Repositories.System;
+global using OASystem.Domain.Dtos.Resource;
+global using OASystem.Domain.Entities.Resource;
+global using OASystem.Domain.ViewModels.Resource;
+global using OASystem.Infrastructure.Repositories.Resource;
 
 

+ 24 - 0
OASystem/OASystem.Api/OAMethodLib/JsonConvertOverride.cs

@@ -48,4 +48,28 @@ namespace OASystem.API.OAMethodLib
 
     #endregion
 
+
+    #region String null值转换(读/写)
+
+
+    //public class Int32JsonConverter : System.Text.Json.Serialization.JsonConverter<int?>
+    //{
+    //    private readonly string Format;
+    //    public Int32JsonConverter(string format)
+    //    {
+    //        Format = format;
+    //    }
+    //    public override void Write(Utf8JsonWriter writer, int? value, JsonSerializerOptions options)
+    //    {
+    //        writer.WriteStringValue((value ?? 0).ToString());
+    //    }
+    //    public override int Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+    //    {
+    //        return Convert.ToInt32(reader.GetString()) ?? 0; 
+    //    }
+
+    //}
+
+    #endregion
+
 }

+ 11 - 0
OASystem/OASystem.Domain/AutoMappers/_baseMappingProfile.cs

@@ -1,10 +1,13 @@
 using OASystem.Domain.Dtos.Groups;
+using OASystem.Domain.Dtos.Resource;
 using OASystem.Domain.Dtos.System;
 using OASystem.Domain.Dtos.UserDto;
 using OASystem.Domain.Entities;
 using OASystem.Domain.Entities.Groups;
+using OASystem.Domain.Entities.Resource;
 using OASystem.Domain.Entities.System;
 using OASystem.Domain.ViewModels;
+using OASystem.Domain.ViewModels.Resource;
 using OASystem.Domain.ViewModels.System;
 
 namespace OASystem.Domain.AutoMappers
@@ -40,6 +43,7 @@ namespace OASystem.Domain.AutoMappers
             #region 岗位板块
             CreateMap<Sys_JobPost, JobPostView>();
             CreateMap<AddJobPostDto,Sys_JobPost>();
+            CreateMap<Sys_JobPostI, JobPostView>();
             #endregion
 
             #region 用户板块
@@ -55,6 +59,13 @@ namespace OASystem.Domain.AutoMappers
 
             CreateMap<GroupListDto, Grp_DelegationInfo>();
             #endregion
+
+            #region Resource
+            #region 车公司资料
+            CreateMap<Res_CarData, CarDataView>();
+            CreateMap<AddCarDataDto, Res_CarData>();
+            #endregion
+            #endregion
         }
     }
 }

+ 1 - 1
OASystem/OASystem.Domain/Dtos/DtoBase.cs

@@ -15,7 +15,7 @@ namespace OASystem.Domain.Dtos
         /// 请求端口分类
         /// 1 Web 2 Android 3 IOS
         /// </summary>
-        public int PortType { get; set; }
+        public int PortType { get; set; } = 1;
 
         public int PageIndex { get; set; }
         public int PageSize { get; set; }

+ 24 - 6
OASystem/OASystem.Domain/Dtos/Groups/GroupListDto.cs

@@ -1,5 +1,7 @@
-using System;
+using Newtonsoft.Json;
+using System;
 using System.Collections.Generic;
+using System.ComponentModel;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
@@ -32,7 +34,9 @@ namespace OASystem.Domain.Dtos.Groups
     {
         /// <summary>
         /// 操作状态
-        /// 1 添加 2 修改
+        /// 1 添加 
+        /// 2 修改 
+        /// 3 删除
         /// </summary>
         public int Status { get; set; }
 
@@ -92,7 +96,7 @@ namespace OASystem.Domain.Dtos.Groups
         /// <summary>
         /// 出访时间
         /// </summary>
-        public DateTime VisitDate { get; set; }
+        public string VisitDate { get; set; }
 
         /// <summary>
         /// 出访天数
@@ -107,12 +111,12 @@ namespace OASystem.Domain.Dtos.Groups
         /// <summary>
         /// 合同时间
         /// </summary>
-        public DateTime TontractTime { get; set; }
+        public string TontractTime { get; set; }
 
         /// <summary>
         /// 预付期限
         /// </summary>
-        public DateTime PayDay { get; set; }
+        public int PayDay { get; set; }
 
         /// <summary>
         /// 支付款项(预付)
@@ -165,5 +169,19 @@ namespace OASystem.Domain.Dtos.Groups
         public string Remark { get; set; }
     }
 
-    
+    /// <summary>
+    /// 团组信息删除
+    /// </summary>
+    public class GroupDelDto:DtoBase
+    {
+        /// <summary>
+        /// 团组Id
+        /// </summary>
+        public int Id { get; set; }
+
+        /// <summary>
+        /// 用户Id
+        /// </summary>
+        public int UserId { get; set; }
+    }
 }

+ 311 - 0
OASystem/OASystem.Domain/Dtos/Resource/CarDataDto.cs

@@ -0,0 +1,311 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Text.RegularExpressions;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Dtos.Resource
+{
+    /// <summary>
+    /// 添加车公司数据参数
+    /// </summary>
+    public class AddCarDataDto
+    {
+        /// <summary>
+        /// 区域
+        /// </summary>
+        public string UnitArea { get; set; }
+
+        /// <summary>
+        /// 公司名称
+        /// </summary>
+        public string UnitName { get; set; }
+
+        /// <summary>
+        /// 地址
+        /// </summary>
+        public string Address { get; set; }
+
+        /// <summary>
+        /// 联系人
+        /// </summary>
+        public string Contact { get; set; }
+
+        /// <summary>
+        /// 联系人手机号
+        /// </summary>
+        private string contactTel;
+        public string ContactTel
+        {
+            get
+            {
+                return contactTel;
+            }
+            set
+            {
+                if (Regex.IsMatch(value, @"^[1]+[2,3,4,5,6,7,8,9]+\d{9}"))
+                {
+                    contactTel = value;
+                }
+                else
+                {
+                    contactTel = "";
+                }
+
+            }
+        }
+
+        /// <summary>
+        /// 联系人邮箱
+        /// </summary>
+        public string ContactEmail { get; set; }
+
+        /// <summary>
+        /// 联系人传真
+        /// </summary>
+        public string ContactFax { get; set; }
+
+        /// <summary>
+        /// 车描述
+        /// </summary>
+        public string CarDes { get; set; }
+
+        /// <summary>
+        /// 车图片路径
+        /// 存储多个 使用/r/n
+        /// </summary>
+        public string CarPicPaths { get; set; }
+
+
+        /// <summary>
+        /// 其他信息
+        /// </summary>
+        public string OtherInfo { get; set; }
+
+        /// <summary>
+        /// 服务评分
+        /// </summary>
+        public int Score { get; set; }
+
+        /// <summary>
+        /// 相关的车辆资质
+        /// A B C  选择
+        /// </summary>
+        public string QualificationScore { get; set; }
+
+        /// <summary>
+        /// 车辆2-4年新,VIP及以上需要2年新
+        /// A B C  选择
+        /// </summary>
+        public string CarAgeScore { get; set; }
+
+        /// <summary>
+        /// 车身干净,无文字图片等
+        /// A B C  选择
+        /// </summary>
+        public string CleanImgScore { get; set; }
+
+        /// <summary>
+        /// 车内整洁、无异味
+        /// A B C  选择
+        /// </summary>
+        public string SmellScore { get; set; }
+
+        /// <summary>
+        /// 提前备水,纸巾等
+        /// A B C  选择
+        /// </summary>
+        public string WaterPaperScore { get; set; }
+
+        /// <summary>
+        /// 车辆配置高(皮座椅等)
+        /// A B C  选择
+        /// </summary>
+        public string HardwareScore { get; set; }
+
+        /// <summary>
+        /// 时间概念强
+        /// A B C  选择
+        /// </summary>
+        public string TimeScore { get; set; }
+
+        /// <summary>
+        /// 安全意识高
+        /// A B C  选择
+        /// </summary>
+        public string SafetyScore { get; set; }
+
+        /// <summary>
+        /// 司机驾龄时间长,提前熟悉路线
+        /// A B C  选择
+        /// </summary>
+        public string DrivingAgeScore { get; set; }
+        /// <summary>
+        /// 创建者Id
+        /// </summary>
+        public int CreateUserId { get; set; }
+        /// <summary>
+        /// 备注
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(500)")]
+        public string Remark { get; set; }
+    }
+    /// <summary>
+    /// 修改车公司数据参数
+    /// </summary>
+    public class UpCarDataDto
+    {
+        /// <summary>
+        /// Id
+        /// </summary>
+        public int Id { get; set; }
+        /// <summary>
+        /// 区域
+        /// </summary>
+        public string UnitArea { get; set; }
+
+        /// <summary>
+        /// 公司名称
+        /// </summary>
+        public string UnitName { get; set; }
+
+        /// <summary>
+        /// 地址
+        /// </summary>
+        public string Address { get; set; }
+
+        /// <summary>
+        /// 联系人
+        /// </summary>
+        public string Contact { get; set; }
+
+        /// <summary>
+        /// 联系人手机号
+        /// </summary>
+        private string contactTel;
+        public string ContactTel
+        {
+            get
+            {
+                return contactTel;
+            }
+            set
+            {
+                if (Regex.IsMatch(value, @"^[1]+[2,3,4,5,6,7,8,9]+\d{9}"))
+                {
+                    contactTel = value;
+                }
+                else
+                {
+                    contactTel = "";
+                }
+
+            }
+        }
+
+        /// <summary>
+        /// 联系人邮箱
+        /// </summary>
+        public string ContactEmail { get; set; }
+
+        /// <summary>
+        /// 联系人传真
+        /// </summary>
+        public string ContactFax { get; set; }
+
+        /// <summary>
+        /// 车描述
+        /// </summary>
+        public string CarDes { get; set; }
+
+        /// <summary>
+        /// 车图片路径
+        /// 存储多个 使用/r/n
+        /// </summary>
+        public string CarPicPaths { get; set; }
+
+
+        /// <summary>
+        /// 其他信息
+        /// </summary>
+        public string OtherInfo { get; set; }
+
+        /// <summary>
+        /// 服务评分
+        /// </summary>
+        public int Score { get; set; }
+
+        /// <summary>
+        /// 相关的车辆资质
+        /// A B C  选择
+        /// </summary>
+        public string QualificationScore { get; set; }
+
+        /// <summary>
+        /// 车辆2-4年新,VIP及以上需要2年新
+        /// A B C  选择
+        /// </summary>
+        public string CarAgeScore { get; set; }
+
+        /// <summary>
+        /// 车身干净,无文字图片等
+        /// A B C  选择
+        /// </summary>
+        public string CleanImgScore { get; set; }
+
+        /// <summary>
+        /// 车内整洁、无异味
+        /// A B C  选择
+        /// </summary>
+        public string SmellScore { get; set; }
+
+        /// <summary>
+        /// 提前备水,纸巾等
+        /// A B C  选择
+        /// </summary>
+        public string WaterPaperScore { get; set; }
+
+        /// <summary>
+        /// 车辆配置高(皮座椅等)
+        /// A B C  选择
+        /// </summary>
+        public string HardwareScore { get; set; }
+
+        /// <summary>
+        /// 时间概念强
+        /// A B C  选择
+        /// </summary>
+        public string TimeScore { get; set; }
+
+        /// <summary>
+        /// 安全意识高
+        /// A B C  选择
+        /// </summary>
+        public string SafetyScore { get; set; }
+
+        /// <summary>
+        /// 司机驾龄时间长,提前熟悉路线
+        /// A B C  选择
+        /// </summary>
+        public string DrivingAgeScore { get; set; }
+       
+        /// <summary>
+        /// 备注
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(500)")]
+        public string Remark { get; set; }
+    }
+
+    public class DelCarDataDto
+    {
+        /// <summary>
+        /// 删除Id
+        /// </summary>
+        public int Id { get; set; }
+        /// <summary>
+        /// 删除人Id
+        /// </summary>
+        public int DeleteUserId { get; set; }
+    }
+}

+ 61 - 0
OASystem/OASystem.Domain/Dtos/System/MsgDto.cs

@@ -0,0 +1,61 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Dtos.System
+{
+    /// <summary>
+    /// 消息列表
+    /// 请求dto
+    /// </summary>
+    public class MsgDto:DtoBase
+    {
+        /// <summary>
+        /// 用户ID
+        /// </summary>
+        public int UserId { get; set; }
+    }
+
+    /// <summary>
+    /// 消息详细信息
+    /// 请求dto
+    /// </summary>
+    public class MsgInfoDto : DtoBase
+    {
+        /// <summary>
+        /// 消息Id
+        /// </summary>
+        public int MsgId { get; set; }
+    }
+
+    /// <summary>
+    /// 消息设置已读
+    /// 请求dto
+    /// </summary>
+    public class MsgSetReadDto : DtoBase
+    {
+        /// <summary>
+        /// MsgAnthId
+        /// </summary>
+        public int MsgAnthId { get; set; }
+    }
+
+    /// <summary>
+    /// 消息删除
+    /// 请求dto
+    /// </summary>
+    public class MsgDeleteDto : DtoBase
+    {
+        /// <summary>
+        /// MsgId
+        /// </summary>
+        public int MsgId { get; set; }
+
+        /// <summary>
+        /// userId
+        /// </summary>
+        public int UserId { get; set; }
+    }
+}

+ 19 - 0
OASystem/OASystem.Domain/Dtos/System/SetDataDto.cs

@@ -0,0 +1,19 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Dtos.System
+{
+    /// <summary>
+    /// 类型表参数
+    /// </summary>
+    public class SetDataDto
+    {
+        /// <summary>
+        /// 数据类型
+        /// </summary>
+        public int DataType { get; set; }
+    }
+}

+ 1 - 1
OASystem/OASystem.Domain/Dtos/UserDto/LoginDto.cs

@@ -6,7 +6,7 @@ namespace OASystem.Domain.Dtos.UserDto;
 /// 用户登录
 /// 提交DTO
 /// </summary>
-public class LoginDto
+public class LoginDto:DtoBase
 {
     /// <summary>
     /// 登录账号

+ 48 - 37
OASystem/OASystem.Domain/Entities/Customer/Crm_DeleClient.cs

@@ -13,36 +13,6 @@ namespace OASystem.Domain.Entities.Customer
     [SugarTable("Crm_DeleClient")]
     public class Crm_DeleClient:EntityBase
     {
-        /// <summary>
-        /// 客户公司表Id
-        /// </summary>
-        [SugarColumn(IsNullable =true,ColumnDataType ="int")]
-        public int CompanyId { get; set; }
-        /// <summary>
-        /// 机票喜好舱位
-        /// </summary>
-        [SugarColumn(IsNullable =true,ColumnDataType = "varchar(300)")]
-        public string AirType { get; set; }
-        /// <summary>
-        /// 是否靠窗
-        /// </summary>
-        [SugarColumn(IsNullable =true,ColumnDataType ="int")]
-        public int SeatPref { get; set; }
-        /// <summary>
-        /// 机票备注
-        /// </summary>
-        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(300)")]
-        public string AirRemark { get; set; }
-        /// <summary>
-        /// 酒店喜好房型
-        /// </summary>
-        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(300)")]
-        public string RoomType { get; set; }
-        /// <summary>
-        /// 酒店需求
-        /// </summary>
-        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(300)")]
-        public string RoomPref { get; set; }
         /// <summary>
         /// 中文姓名
         /// </summary>
@@ -69,11 +39,11 @@ namespace OASystem.Domain.Entities.Customer
         [SugarColumn(IsNullable = true, ColumnDataType = "int")]
         public int Sex { get; set; }
         /// <summary>
-        /// 婚姻状况 0、1、2 (已婚、未婚、离异等)
+        /// 婚姻状况 0、1、2、3、4 (未设置、未婚、已婚、离异、丧偶)
         /// </summary>
         [SugarColumn(IsNullable = true, ColumnDataType = "int")]
         public int Marriage { get; set; }
-        /// <summary>
+
         /// 客户手机号
         /// </summary>
         [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
@@ -93,6 +63,33 @@ namespace OASystem.Domain.Entities.Customer
         /// </summary>
         [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
         public string BirthDay { get; set; }
+
+        /// <summary>
+        /// 机票喜好舱位
+        /// </summary>
+        [SugarColumn(IsNullable =true,ColumnDataType = "varchar(300)")]
+        public string AirType { get; set; }
+        /// <summary>
+        /// 是否靠窗
+        /// </summary>
+        [SugarColumn(IsNullable =true,ColumnDataType ="int")]
+        public int SeatPref { get; set; }
+        /// <summary>
+        /// 机票备注
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(300)")]
+        public string AirRemark { get; set; }
+        /// <summary>
+        /// 酒店喜好房型
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(300)")]
+        public string RoomType { get; set; }
+        /// <summary>
+        /// 酒店需求
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(300)")]
+        public string RoomPref { get; set; }
+       
         /// <summary>
         /// 客户联系方式
         /// </summary>
@@ -118,6 +115,13 @@ namespace OASystem.Domain.Entities.Customer
         /// </summary>
         [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
         public string PostCodes { get; set; }
+
+        /// <summary>
+        /// 客户公司Id
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public string CrmCompanyId { get; set; }
+
         /// <summary>
         /// 职位
         /// </summary>
@@ -164,7 +168,8 @@ namespace OASystem.Domain.Entities.Customer
         [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
         public string ClientLeaderJob { get; set; }
         /// <summary>
-        /// 是否有获批的申根签证 0否1是
+        /// 是否有获批的申根签证 
+        /// 0否1是
         /// </summary>
         [SugarColumn(IsNullable = true, ColumnDataType = "int")]
         public int IsGetSchengen { get; set; }
@@ -179,7 +184,8 @@ namespace OASystem.Domain.Entities.Customer
         [SugarColumn(IsNullable = true, ColumnDataType = "Datetime")]
         public DateTime EndTime { get; set; }
         /// <summary>
-        /// 申根是否在使馆有指纹记录 0否1是
+        /// 申根是否在使馆有指纹记录 
+        /// 0否1是
         /// </summary>
         [SugarColumn(IsNullable =true,ColumnDataType ="int")]
         public int IsFinger { get; set; }
@@ -190,6 +196,7 @@ namespace OASystem.Domain.Entities.Customer
         public DateTime FingerDate { get; set; }
         /// <summary>
         /// 是否因公去过美国/加拿大
+        /// 0否1是
         /// </summary>
         [SugarColumn(IsNullable = true, ColumnDataType = "int")]
         public int IsVisitUC { get; set; }
@@ -220,6 +227,7 @@ namespace OASystem.Domain.Entities.Customer
         public int IsUSAVia { get; set; }
         /// <summary>
         /// 因公美国签证最近获得时间
+        /// 0否1是
         /// </summary>
         [SugarColumn(IsNullable =true,ColumnDataType ="DateTime")]
         public DateTime GetUSAVisaDate { get; set; }
@@ -289,7 +297,8 @@ namespace OASystem.Domain.Entities.Customer
         [SugarColumn(IsNullable = true, ColumnDataType = "int")]
         public int IsUSAVisa { get; set; }
         /// <summary>
-        /// 夫/妻是否已在美国 0否1是
+        /// 夫/妻是否已在美国 
+        /// 0否1是
         /// </summary>
         [SugarColumn(IsNullable = true, ColumnDataType = "int")]
         public int MateUSA { get; set; }
@@ -309,7 +318,8 @@ namespace OASystem.Domain.Entities.Customer
         [SugarColumn(IsNullable =true,ColumnDataType ="varchar(50)")]
         public string WHIden { get; set; }
         /// <summary>
-        /// 父/母是否已在美国 0否1是
+        /// 父/母是否已在美国
+        /// 0否1是
         /// </summary>
         [SugarColumn(IsNullable = true, ColumnDataType = "int")]
         public int ParentUSA { get; set; }
@@ -344,7 +354,8 @@ namespace OASystem.Domain.Entities.Customer
         [SugarColumn(IsNullable = true, ColumnDataType = "varchar(500)")]
         public string Social { get; set; }
         /// <summary> 
-        /// 是否参军  0否1是
+        /// 是否参军  
+        /// 0否1是
         /// </summary>
         [SugarColumn(IsNullable = true, ColumnDataType = "int")]
         public string IsArmy { get; set; }

+ 2 - 2
OASystem/OASystem.Domain/Entities/Groups/Grp_DelegationInfo.cs

@@ -192,8 +192,8 @@ namespace OASystem.Domain.Entities.Groups
         /// <summary>
         /// 预付期限
         /// </summary>
-        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
-        public DateTime PayDay { get; set; }
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int PayDay { get; set; }
         /// <summary>
         /// 出国任务审批部门名称
         /// </summary>

+ 9 - 0
OASystem/OASystem.Domain/Entities/System/Sys_JobPost.cs

@@ -24,5 +24,14 @@ namespace OASystem.Domain.Entities.System
         public string JobName { get; set; }
        
     }
+    #region 附加字段
+
+    #endregion
+    public class Sys_JobPostI:Sys_JobPost
+    {
+        public string CompanyName { get; set; }
+
+        public string DepName { get; set; }
+    }
 
 }

+ 1 - 1
OASystem/OASystem.Domain/Result.cs

@@ -10,6 +10,6 @@ namespace OASystem.Domain
     {
         public int Code { get; set; } = -1;
         public string Msg { get; set; } = "未知错误";
-        public dynamic Data { get; set; } = null;
+        public dynamic? Data { get; set; } = null;
     }
 }

+ 22 - 10
OASystem/OASystem.Domain/ViewModels/Group/DelegationInfoView.cs

@@ -1,7 +1,9 @@
-using OASystem.Domain.Dtos;
+using Newtonsoft.Json;
+using OASystem.Domain.Dtos;
 using OASystem.Domain.Entities.Groups;
 using System;
 using System.Collections.Generic;
+using System.ComponentModel;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
@@ -15,7 +17,7 @@ namespace OASystem.Domain.ViewModels.Group
     public class DelegationInfoView : Grp_DelegationInfo { }
     
     /// <summary>
-    /// 接团信息列表
+    /// 接团信息详情
     /// 返回视图
     /// </summary>
     public class DelegationInfoWebView
@@ -30,16 +32,22 @@ namespace OASystem.Domain.ViewModels.Group
         /// </summary>
         public string SalesQuoteNo { get; set; }
 
+
         /// <summary>
-        /// 团组类型
+        /// 接团人ID
         /// </summary>
-        public int TeamDid { get; set; }
+        public int JietuanOperator { get; set; }
 
         /// <summary>
         /// 团组等级
         /// </summary>
         public int TeamLevSId { get; set; }
 
+        /// <summary>
+        /// 团组类型
+        /// </summary>
+        public int TeamDid { get; set; }
+
         /// <summary>
         /// 团组名称
         /// </summary>
@@ -79,11 +87,10 @@ namespace OASystem.Domain.ViewModels.Group
         /// 合同时间
         /// </summary>
         public DateTime TontractTime { get; set; }
-
         /// <summary>
-        /// 预付
+        /// 预付期
         /// </summary>
-        public DateTime PayDay { get; set; }
+        public int PayDay { get; set; }
 
         /// <summary>
         /// 预付金额
@@ -137,7 +144,7 @@ namespace OASystem.Domain.ViewModels.Group
     /// 接团信息列表
     /// 返回视图
     /// </summary>
-    public class DelegationListView :DtoBase
+    public class DelegationListView 
     {
         /// <summary>
         /// 主键Id
@@ -149,6 +156,11 @@ namespace OASystem.Domain.ViewModels.Group
         /// </summary>
         public string SalesQuoteNo { get; set; }
 
+        /// <summary>
+        /// 团号
+        /// </summary>
+        public string TourCode { get; set; }
+
         /// <summary>
         /// 接团操作人
         /// </summary>
@@ -157,12 +169,12 @@ namespace OASystem.Domain.ViewModels.Group
         /// <summary>
         /// 团组等级 
         /// </summary>
-        public int TeamLevSId { get; set; }
+        public string TeamLev { get; set; }
 
         /// <summary>
         /// 团组类型
         /// </summary>
-        public int TeamDid { get; set; }
+        public string TeamType { get; set; }
 
         /// <summary>
         /// 团组名称

+ 5 - 0
OASystem/OASystem.Domain/ViewModels/LoginView.cs

@@ -19,4 +19,9 @@ public class LoginView
     /// 返回用户信息
     /// </summary>
     public object? UserInfo { get; set; }
+
+    /// <summary>
+    /// 返回用户权限信息
+    /// </summary>
+    public object? AuthData { get; set; }
 }

+ 13 - 0
OASystem/OASystem.Domain/ViewModels/Resource/CarDataView.cs

@@ -0,0 +1,13 @@
+using OASystem.Domain.Entities.Resource;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.ViewModels.Resource
+{
+    public class CarDataView:Res_CarData
+    {
+    }
+}

+ 15 - 0
OASystem/OASystem.Domain/ViewModels/System/JobPostView.cs

@@ -24,8 +24,23 @@ namespace OASystem.Domain.ViewModels.System
         /// </summary>
         public int CompanyId { get; set; }
         /// <summary>
+        /// 公司名称
+        /// </summary>
+        public string CompanyName { get; set; }
+        /// <summary>
         /// 部门Id
         /// </summary>
         public int DepId { get; set; }
+        /// <summary>
+        /// 部门Id
+        /// </summary>
+        public string DepName { get; set; }
+
+        /// <summary>
+        /// 备注
+        /// </summary>
+        public string Remark { get; set; }
     }
+
+
 }

+ 54 - 0
OASystem/OASystem.Domain/ViewModels/System/MessageView.cs

@@ -67,4 +67,58 @@ namespace OASystem.Domain.ViewModels.System
         public DateTime? ReadTime { get; set; }
     }
 
+    public class MessageInfoView 
+    {
+        /// <summary>
+        /// 消息类型
+        /// </summary>
+        public int Type { get; set; }
+
+        /// <summary>
+        /// 公司名称
+        /// </summary>
+        public string CompanyName { get; set; }
+
+        /// <summary>
+        /// 部门名称
+        /// </summary>
+        public string DepName { get; set; }
+
+        /// <summary>
+        /// 岗位名称
+        /// </summary>
+        public string JobName { get; set; }
+
+        /// <summary>
+        /// 发布人
+        /// </summary>
+        public string CnName { get; set; }
+
+        /// <summary>
+        /// 发布时间
+        /// </summary>
+        public DateTime ReleaseTime { get; set; }
+
+        /// <summary>
+        /// 消息标题
+        /// </summary>
+        public string Title { get; set; }
+
+        /// <summary>
+        /// 消息内容
+        /// </summary>
+        public string Content { get; set; }
+
+        /// <summary>
+        /// 是否已读
+        /// 0 未读 1 已读
+        /// </summary>
+        public int IsRead { get; set; }
+
+        /// <summary>
+        /// 已读时间
+        /// 1990-01-01 00:00:000 未读
+        /// </summary>
+        public DateTime ReadTime { get; set; }
+    }
 }

+ 5 - 5
OASystem/OASystem.Domain/ViewModels/System/UserInfoView.cs

@@ -94,10 +94,10 @@ namespace OASystem.Domain.ViewModels.System
     /// </summary>
     public class UserLoginInfoView
     {
-        ///// <summary>
-        ///// 工号
-        ///// </summary>
-        ////public string Number { get; set; }
+        /// <summary>
+        /// 工号
+        /// </summary>
+        //public string Number { get; set; }
 
         /// <summary>
         /// 用户Id
@@ -127,7 +127,7 @@ namespace OASystem.Domain.ViewModels.System
         /// <summary>
         /// 邮箱
         /// </summary>
-        public int DepId { get; set; }
+        public string Email { get; set; }
 
     }
     /// <summary>

+ 11 - 0
OASystem/OASystem.Infrastructure/Repositories/BaseRepository.cs

@@ -177,6 +177,7 @@ namespace OASystem.Infrastructure.Repositories
             }).ExecuteCommandAsync();
             return result > 0;
         }
+       
         public virtual async Task<bool> SoftDeleteAsync(Expression<Func<TEntity, bool>> wherexp)
         {
             var result = await _sqlSugar.Updateable<TEntity>().Where(wherexp).SetColumns(a => new TEntity()
@@ -244,6 +245,16 @@ namespace OASystem.Infrastructure.Repositories
             }).ExecuteCommandAsync();
             return result > 0;
         }
+        public virtual async Task<bool> SoftDeleteByIdAsync<T>(string id,int DeleteUserId) where T : EntityBase, new()
+        {
+            var result = await _sqlSugar.Updateable<TEntity>().Where(a => a.Id.Equals(id)).SetColumns(a => new TEntity()
+            {
+                IsDel = 1,
+                DeleteUserId = DeleteUserId,
+                DeleteTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
+            }).ExecuteCommandAsync();
+            return result > 0;
+        }
         public virtual async Task<bool> SoftDeleteAsync<T>(Expression<Func<TEntity, bool>> wherexp) where T : EntityBase, new()
         {
             var result = await _sqlSugar.Updateable<TEntity>().Where(wherexp).SetColumns(a => new TEntity()

+ 194 - 50
OASystem/OASystem.Infrastructure/Repositories/Groups/DelegationInfoRepository.cs

@@ -6,6 +6,7 @@ using OASystem.Domain.Entities.Groups;
 using OASystem.Domain.ViewModels.Group;
 using OASystem.Infrastructure.Repositories.System;
 using Org.BouncyCastle.Utilities.Collections;
+using Serilog;
 using SqlSugar;
 using System;
 using System.Collections.Generic;
@@ -22,9 +23,10 @@ namespace OASystem.Infrastructure.Repositories.Groups
     {
         private readonly SetDataRepository _setDataRepository;
         private readonly UsersRepository _usersRepository;
+        //public readonly Logs _logs;
 
-        public DelegationInfoRepository(SqlSugarClient sqlSugar, SetDataRepository setDataRepository, UsersRepository usersRepository) 
-            : base(sqlSugar) 
+        public DelegationInfoRepository(SqlSugarClient sqlSugar, SetDataRepository setDataRepository, UsersRepository usersRepository)
+            : base(sqlSugar)
         {
             this._setDataRepository = setDataRepository;
             this._usersRepository = usersRepository;
@@ -37,9 +39,9 @@ namespace OASystem.Infrastructure.Repositories.Groups
         /// <returns></returns>
         public async Task<Result> GetGroupList(GroupListDto dto)
         {
-            Result result = new Result() { Code = -2,Msg="未知错误" };
+            Result result = new Result() { Code = -2, Msg = "未知错误" };
 
-            if (dto.PortType == 1) //web
+            if (dto.PortType == 1 || dto.PortType == 2) //web
             {
                 string sql = string.Format(@"Select gdi.Id,SalesQuoteNo,TourCode,ssd.Name TeamType,ssd1.Name TeamLev,TeamName,ClientName,
                                                     ClientUnit,VisitDate,VisitDays,VisitPNumber,su.CnName JietuanOperator,IsSure
@@ -49,7 +51,7 @@ namespace OASystem.Infrastructure.Repositories.Groups
                                              Left Join Sys_Users su On gdi.JietuanOperator = su.Id
                                              Where gdi.IsDel = 0 
                                              Order By VisitDate Desc");
-                    
+
                 var _DelegationList = await _sqlSugar.SqlQueryable<DelegationListView>(sql).ToListAsync();
                 if (_DelegationList.Count > 0)
                 {
@@ -63,13 +65,11 @@ namespace OASystem.Infrastructure.Repositories.Groups
                 }
             }
 
-            
-            
+
             return result;
 
         }
 
-
         /// <summary>
         /// 获取接团信息Info
         /// </summary>
@@ -79,15 +79,15 @@ namespace OASystem.Infrastructure.Repositories.Groups
         {
             Result result = new Result() { Code = -2, Msg = "未知错误" };
 
-            if (dto.PortType == 1) //web
+            if (dto.PortType == 1 || dto.PortType == 2) //web
             {
                 string sql = string.Format(@"Select Id,SalesQuoteNo,JietuanOperator,TeamLevSId,TeamDid,TeamName,ClientName,
 	                                                ClientUnit,VisitCountry,VisitDate,VisitDays,VisitPNumber,TontractTime,
 	                                                PayDay,PaymentMoney,VisitPurpose,SpecialNeeds,OtherNeeds,CGRWSPBMMC,CGRWSPWH,
 	                                                ZZSCBMMC,ZZSCSPWH,Remark,TellPhone
-                                             From Grp_DelegationInfo Where Id = {0} And IsDel=0",dto.Id);
+                                             From Grp_DelegationInfo Where Id = {0} And IsDel = 0", dto.Id);
 
-                var _DelegationInfo = await _sqlSugar.SqlQueryable<DelegationInfoWebView>(sql).ToListAsync();
+                var _DelegationInfo = await _sqlSugar.SqlQueryable<DelegationInfoWebView>(sql).FirstAsync();
                 if (_DelegationInfo != null)
                 {
                     result.Code = 0;
@@ -110,44 +110,54 @@ namespace OASystem.Infrastructure.Repositories.Groups
         /// </summary>
         /// <param name="dto"></param>
         /// <returns></returns>
-        public async Task<Result> GetGroupEditBasicSource(GroupListDto dto)
+        public async Task<Result> GroupEditBasicSource(GroupListDto dto)
         {
             Result result = new Result() { Code = -2, Msg = "未知错误" };
 
-            if (dto.PortType == 1) //web
+            try
             {
-                dynamic? teamTypeData1 = null;
-                string teamTypeSql = string.Format(@"Select Id,Name From  Sys_SetData Where STid = {0} And IsDel = {1}", 10, 0);
-                var teamTypeData = await _sqlSugar.SqlQueryable<SetDataInfoView>(teamTypeSql).ToListAsync(); ;  //团组分类 10
-                if (teamTypeData.Count > 0)
+                if (dto.PortType == 1 || dto.PortType == 2) //web
                 {
-                    teamTypeData1 = teamTypeData;
-                }
+                    dynamic? teamTypeData1 = null;
+                    string teamTypeSql = string.Format(@"Select Id,Name From  Sys_SetData Where STid = {0} And IsDel = {1}", 10, 0);
+                    var teamTypeData = await _sqlSugar.SqlQueryable<SetDataInfoView>(teamTypeSql).ToListAsync(); ;  //团组分类 10
+                    if (teamTypeData.Count > 0)
+                    {
+                        teamTypeData1 = teamTypeData;
+                    }
 
-                dynamic? teamLevData1 = null;
-                string teamLevSql = string.Format(@"Select Id,Name From  Sys_SetData Where STid = {0} And IsDel = {1}", 56, 0);
-                var teamLevData = await _sqlSugar.SqlQueryable<SetDataInfoView>(teamLevSql).ToListAsync(); ;  //团组等级 56
-                if (teamLevData.Count > 0)
-                {
-                    teamLevData1 = teamLevData;
-                }
+                    dynamic? teamLevData1 = null;
+                    string teamLevSql = string.Format(@"Select Id,Name From  Sys_SetData Where STid = {0} And IsDel = {1}", 56, 0);
+                    var teamLevData = await _sqlSugar.SqlQueryable<SetDataInfoView>(teamLevSql).ToListAsync(); ;  //团组等级 56
+                    if (teamLevData.Count > 0)
+                    {
+                        teamLevData1 = teamLevData;
+                    }
 
-                dynamic? userData1 = null;
-                string userSql = string.Format(@"Select Id,CnName From  Sys_Users Where IsDel = {0}", 0);
-                var userData = await _sqlSugar.SqlQueryable<UserNameView>(userSql).ToListAsync(); ;
-                if (userData.Count > 0)
-                {
-                    userData1 = userData;
+                    dynamic? userData1 = null;
+                    string userSql = string.Format(@"Select Id,CnName From  Sys_Users Where IsDel = {0}", 0);
+                    var userData = await _sqlSugar.SqlQueryable<UserNameView>(userSql).ToListAsync(); ;
+                    if (userData.Count > 0)
+                    {
+                        userData1 = userData;
+                    }
+
+                    result.Code = 0;
+                    result.Msg = "成功!";
+                    result.Data = new
+                    {
+                        teamTypeData = teamTypeData1,
+                        teamLevData = teamLevData1,
+                        userData = userData1
+                    };
                 }
+            }
+            catch (Exception)
+            {
 
-                result.Code = 0;
-                result.Msg = "成功!";
-                result.Data = new {
-                    teamTypeData = teamTypeData1,
-                    teamLevData = teamLevData1,
-                    userData = userData1
-                };
+                throw;
             }
+            
 
             return result;
         }
@@ -161,7 +171,7 @@ namespace OASystem.Infrastructure.Repositories.Groups
         {
             Result result = new Result() { Code = -2, Msg = "未知错误" };
 
-            if (dto.PortType == 1) //web
+            if (dto.PortType == 1 || dto.PortType == 2) //web
             {
                 Grp_DelegationInfo groupInfo = new Grp_DelegationInfo()
                 {
@@ -171,7 +181,7 @@ namespace OASystem.Infrastructure.Repositories.Groups
                     ClientUnit = dto.ClientUnit,
                     TeamName = dto.TeamName,
                     TeamDid = dto.TeamDid,
-                    VisitDate = dto.VisitDate,
+                    VisitDate = Convert.ToDateTime(dto.VisitDate),
                     VisitCountry = dto.VisitCountry,
                     VisitPurpose = dto.VisitPurpose,
                     VisitDays = dto.VisitDays,
@@ -185,7 +195,7 @@ namespace OASystem.Infrastructure.Repositories.Groups
                     CGRWSPWH = dto.CGRWSPWH,
                     ZZSCBMMC = dto.ZZSCBMMC,
                     ZZSCSPWH = dto.ZZSCSPWH,
-                    TontractTime = dto.TontractTime,
+                    TontractTime = Convert.ToDateTime(dto.TontractTime),
                     PaymentMoney = dto.PaymentMoney,
                     PayDay = dto.PayDay
                 };
@@ -199,7 +209,7 @@ namespace OASystem.Infrastructure.Repositories.Groups
                                                    And TeamName = '{1}'
                                                    And ClientName = '{2}'
                                                    And ClientUnit ='{3}'
-                                                   And VisitDate ='{4}'",dto.SalesQuoteNo,dto.TeamName,dto.ClientName,dto.ClientUnit,dto.VisitDate);
+                                                   And VisitDate ='{4}'", dto.SalesQuoteNo, dto.TeamName, dto.ClientName, dto.ClientUnit, dto.VisitDate);
                     var selectGroupInfo = await _sqlSugar.SqlQueryable<Grp_DelegationInfo>(selectSql).FirstAsync();
                     if (selectGroupInfo != null)
                     {
@@ -208,13 +218,13 @@ namespace OASystem.Infrastructure.Repositories.Groups
                     }
 
                     string teamCodeSql = string.Format("Select TourCode From Grp_DelegationInfo");
-                   var teamCodeItem = await _sqlSugar.SqlQueryable<TeamCodeView>(teamCodeSql).FirstAsync();
+                    var teamCodeItem = await _sqlSugar.SqlQueryable<TeamCodeView>(teamCodeSql).ToListAsync();
 
                     string teamCode = "";
                     while (true)
                     {
-                        teamCode = Tools.CommonFun.GetRandomAllStr(6);
-                        
+                        teamCode = Tools.CommonFun.GetRandomStr(6);
+
                         if (!teamCodeItem.Equals(teamCode))
                         {
                             break;
@@ -249,10 +259,34 @@ namespace OASystem.Infrastructure.Repositories.Groups
                     }
 
 
-                }
-                else if (dto.Status == 2)  //修改
+                }  //增加
+                else if (dto.Status == 2)     //修改
                 {
-                    var updateStatus = await UpdateAsync(a => a.Id == dto.Id,a=> groupInfo);
+                    var updateStatus = await UpdateAsync(a => a.Id == dto.Id, a => new Grp_DelegationInfo {
+                        SalesQuoteNo = dto.SalesQuoteNo,
+                        TeamLevSId = dto.TeamLevSId,
+                        ClientName = dto.ClientName,
+                        ClientUnit = dto.ClientUnit,
+                        TeamName = dto.TeamName,
+                        TeamDid = dto.TeamDid,
+                        VisitDate = Convert.ToDateTime(dto.VisitDate),
+                        VisitCountry = dto.VisitCountry,
+                        VisitPurpose = dto.VisitPurpose,
+                        VisitDays = dto.VisitDays,
+                        VisitPNumber = dto.VisitPNumber,
+                        SpecialNeeds = dto.SpecialNeeds,
+                        OtherNeeds = dto.OtherNeeds,
+                        Remark = dto.Remark,
+                        JietuanOperator = dto.UserId,
+                        TellPhone = dto.TellPhone,
+                        CGRWSPBMMC = dto.CGRWSPBMMC,
+                        CGRWSPWH = dto.CGRWSPWH,
+                        ZZSCBMMC = dto.ZZSCBMMC,
+                        ZZSCSPWH = dto.ZZSCSPWH,
+                        TontractTime = Convert.ToDateTime(dto.TontractTime),
+                        PaymentMoney = dto.PaymentMoney,
+                        PayDay = dto.PayDay
+                    });
 
                     if (updateStatus)
                     {
@@ -264,9 +298,119 @@ namespace OASystem.Infrastructure.Repositories.Groups
                         result.Msg = "修改失败!";
                     }
                 }
+                else if (dto.Status == 3)  //删除
+                {
+                    var deleteStatus = await UpdateAsync(a => a.Id == dto.Id, a => new Grp_DelegationInfo { 
+                        DeleteUserId = dto.UserId,
+                        DeleteTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
+                        IsDel = 1
+                    });
+
+                    if (deleteStatus)
+                    {
+                        result.Code = 0;
+                        result.Msg = "删除成功!";
+                    }
+                    else
+                    {
+                        result.Msg = "删除失败!";
+                    }
+                }
             }
-            
+
+            return result;
+        }
+
+
+        /// <summary>
+        /// 团组信息操作
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        public async Task<Result> GroupDel(GroupDelDto dto)
+        {
+            Result result = new Result() { Code = -2, Msg = "未知错误" };
+
+            if (dto.PortType == 1 || dto.PortType == 2) //web
+            {
+                var deleteStatus = await UpdateAsync(a => a.Id == dto.Id, a => new Grp_DelegationInfo
+                {
+                    DeleteUserId = dto.UserId,
+                    DeleteTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
+                    IsDel = 1
+                });
+
+                if (deleteStatus)
+                {
+                    result.Code = 0;
+                    result.Msg = "删除成功!";
+                }
+                else
+                {
+                    result.Msg = "删除失败!";
+                }
+                
+            }
+
             return result;
         }
+
+        /// <summary>
+        /// 获取销售报价号
+        /// </summary>
+        /// <returns></returns>
+        public async Task<Result> GetGroupSalesQuoteNo()
+        {
+            Result result = new Result() { Code = -2, Msg = "未知错误" };
+
+            string teamCodeSql = string.Format("Select TourCode From Grp_DelegationInfo");
+            var teamCodeItem = await _sqlSugar.SqlQueryable<TeamCodeView>(teamCodeSql).ToListAsync();
+
+            string teamCode = "";
+            while (true)
+            {
+                teamCode = Tools.CommonFun.GetRandomAllStr(6);
+
+                if (!teamCodeItem.Equals(teamCode))
+                {
+                    break;
+                }
+            }
+
+            result.Code = 0;
+            result.Msg = "成功!";
+            result.Data = teamCode;
+            return result;
+        }
+
+        /// <summary>
+        /// 团组删除
+        /// </summary>
+        /// <returns></returns>
+        public async Task<Result> GroupDeleteById()
+        {
+            Result result = new Result() { Code = -2, Msg = "未知错误" };
+
+            string teamCodeSql = string.Format("Select TourCode From Grp_DelegationInfo");
+            var teamCodeItem = await _sqlSugar.SqlQueryable<TeamCodeView>(teamCodeSql).ToListAsync();
+
+            string teamCode = "";
+            while (true)
+            {
+                teamCode = Tools.CommonFun.GetRandomAllStr(6);
+
+                if (!teamCodeItem.Equals(teamCode))
+                {
+                    break;
+                }
+            }
+
+            result.Code = 0;
+            result.Msg = "成功!";
+            result.Data = teamCode;
+            return result;
+        }
+
+
     }
 }

+ 17 - 2
OASystem/OASystem.Infrastructure/Repositories/Login/LoginRepository.cs

@@ -57,6 +57,8 @@ namespace OASystem.Infrastructure.Repositories.Login
                 return result;
             }
 
+            //portType 处理端口 
+            dynamic longinData = null;
 
             //员工数据
             string sqlWhere = string.Format(" Where su.Id={0}", _entity.Id);
@@ -65,11 +67,24 @@ namespace OASystem.Infrastructure.Repositories.Login
                                                   Inner Join Sys_Company sc On su.CompanyId = sc.Id
                                                   Inner Join Sys_Department sd On su.DepId = sd.Id
                                                   Inner Join Sys_JobPost sjp On su.JobPostId = sjp.Id {0}", sqlWhere);
-            var _userBasicInfo = await _sqlSugar.SqlQueryable<UserLoginInfoView>(userSqlWhere).FirstAsync();
+           
+
+            if (loginDto.PortType == 1) //web
+            {
+                var _userBasicInfo = await _sqlSugar.SqlQueryable<UserLoginInfoView>(userSqlWhere).FirstAsync();
+
+                longinData = _userBasicInfo;
+
+            }
+            else if (loginDto.PortType == 2) // Android
+            {
+                var _userBasicInfo = await _sqlSugar.SqlQueryable<UserLoginInfoView>(userSqlWhere).FirstAsync();
+                longinData = _userBasicInfo;
+            }
 
             result.Code = 0;
             result.Msg = "登录成功!";
-            result.Data = _userBasicInfo;
+            result.Data = longinData;
             return result;
 
         }

+ 12 - 0
OASystem/OASystem.Infrastructure/Repositories/Resource/CarDataRepository.cs

@@ -0,0 +1,12 @@
+using OASystem.Domain.Entities.Resource;
+using OASystem.Domain.ViewModels.Resource;
+namespace OASystem.Infrastructure.Repositories.Resource
+{
+    public class CarDataRepository: BaseRepository<Res_CarData, CarDataView>
+    {
+        public CarDataRepository(SqlSugarClient sqlSugar) : base(sqlSugar)
+        {
+
+        }
+    }
+}

+ 10 - 1
OASystem/OASystem.Infrastructure/Repositories/System/JobPostRepository.cs

@@ -1,4 +1,5 @@
 using OASystem.Domain.Dtos.System;
+using SqlSugar;
 using System;
 using System.Collections.Generic;
 using System.Linq;
@@ -7,11 +8,19 @@ using System.Threading.Tasks;
 
 namespace OASystem.Infrastructure.Repositories.System
 {
-    public class JobPostRepository : BaseRepository<Sys_JobPost, QueryJobPostDto>
+    public class JobPostRepository : BaseRepository<Sys_JobPost, JobPostView>
     {
         public JobPostRepository(SqlSugarClient sqlSugar) : base(sqlSugar)
         {
 
         }
+
+        public async Task<List<Sys_JobPostI>> QueryJobPost(string sqlWhere)
+        {
+            string sql = string.Format(@"select jp.*,dep.DepName as 'DepName',cmp.CompanyName as 'CompanyName' from Sys_JobPost jp left join 
+                                                 Sys_Company cmp on jp.CompanyId=cmp.Id left join Sys_Department dep on jp.DepId=dep.Id  {0}", sqlWhere);
+            return await _sqlSugar.SqlQueryable<Sys_JobPostI>(sql).ToListAsync();
+        }
+
     }
 }

+ 130 - 20
OASystem/OASystem.Infrastructure/Repositories/System/MessageRepository.cs

@@ -3,6 +3,7 @@ using OASystem.Domain.Dtos.System;
 using System;
 using System.Collections.Generic;
 using System.Linq;
+using System.Security.Cryptography;
 using System.Text;
 using System.Threading.Tasks;
 
@@ -12,7 +13,6 @@ namespace OASystem.Infrastructure.Repositories.System
     {
         public MessageRepository(SqlSugarClient sqlSugar) : base(sqlSugar) { }
 
-
         /// <summary>
         /// 发布消息
         /// </summary>
@@ -86,34 +86,144 @@ namespace OASystem.Infrastructure.Repositories.System
         }
 
         /// <summary>
-        /// 获取消息 List
+        /// 获取消息列表
         /// </summary>
         /// <param name="uId">可读用户Id</param>
         /// <returns></returns>
-        public async Task<Result> GetMsgList(int uId)
+        public async Task<Result> GetMsgList(MsgDto dto)
         {
             Result result = new Result() { Code = -1, Msg = "未知错误", Data = null };
 
-            string msgSqlWhere = string.Format(@"Select sm.Type,sm.Title,sm.Content,sd.DepName issuerDep,su.CnName issuerUser, 
-                                                        sm.ReleaseTime,smra.Id AuthId,smra.ReadableUId,smra.IsRead,smra.ReadTime 
-                                                 From Sys_Message sm 
-                                                 Inner Join Sys_MessageReadAuth smra On sm.Id = smra.MsgId
-                                                 Inner Join Sys_Users su On sm.IssuerId = su.Id
-                                                 Inner Join Sys_Department sd On su.DepId = sd.Id
-                                                 Inner Join Sys_Users suAuth On smra.ReadableUId = suAuth.Id
-                                                 Where sm.IsDel = 0
-                                                 And smra.IsDel = 0 
-                                                 And smra.ReadableUId = {0}", uId);
-            var _readableMsgList = await _sqlSugar.SqlQueryable<ReadbleMessageView>(msgSqlWhere).ToListAsync();
-            if (_readableMsgList.Count > 0)
+            if (dto.PortType == 1 || dto.PortType == 2)  // web/android
             {
-                result.Code = 0;
-                result.Msg = "成功!";
-                result.Data = _readableMsgList;
+                string msgSqlWhere = string.Format(@"Select sm.Type,sm.Title,sm.Content,sd.DepName issuerDep,su.CnName issuerUser, 
+                                                            sm.ReleaseTime,smra.Id AuthId,smra.ReadableUId,smra.IsRead,smra.ReadTime 
+                                                     From Sys_Message sm 
+                                                     Inner Join Sys_MessageReadAuth smra On sm.Id = smra.MsgId
+                                                     Inner Join Sys_Users su On sm.IssuerId = su.Id
+                                                     Inner Join Sys_Department sd On su.DepId = sd.Id
+                                                     Inner Join Sys_Users suAuth On smra.ReadableUId = suAuth.Id
+                                                     Where sm.IsDel = 0
+                                                     And smra.IsDel = 0 
+                                                     And smra.ReadableUId = {0}
+                                                     Order By ReleaseTime Desc ", dto.UserId);
+                var _readableMsgList = await _sqlSugar.SqlQueryable<ReadbleMessageView>(msgSqlWhere).ToListAsync();
+                if (_readableMsgList.Count > 0)
+                {
+                    result.Code = 0;
+                    result.Msg = "成功!";
+                    result.Data = _readableMsgList;
+                }
+                else
+                {
+                    result.Msg = "暂无该用户的消息!";
+                }
             }
-            else
+
+            return result;
+        }
+
+        /// <summary>
+        /// 获取消息详细
+        /// </summary>
+        /// <param name="dto">msgInfo请求dto</param>
+        /// <returns></returns>
+        public async Task<Result> GetMsgInfo(MsgInfoDto dto)
+        {
+            Result result = new Result() { Code = -1, Msg = "未知错误", Data = null };
+
+            if (dto.PortType == 1 || dto.PortType == 2)
             {
-                result.Msg = "暂无该用户消息";
+                string msgSqlWhere = string.Format(@"Select sm.Type,sc.CompanyName,sd.DepName,sjp.JobName,su.CnName,sm.ReleaseTime,
+	                                                        sm.Title,sm.Content,smra.IsRead,smra.ReadTime
+                                                     From Sys_Message sm
+                                                     Inner Join Sys_MessageReadAuth smra On sm.Id = smra.MsgId
+                                                     Inner Join Sys_Users su On sm.IssuerId = su.id
+                                                     Inner Join Sys_JobPost sjp On su.JobPostId = sjp.Id
+                                                     Inner Join Sys_Department sd On su.DepId = sd.Id
+                                                     Inner Join Sys_Company sc On su.CompanyId = sc.Id
+                                                     Where sm.IsDel = 0 
+                                                     And sm.Id = {0}
+                                                     And smra.IsDel = 0", dto.MsgId);
+                var _readableMsgInfo = await _sqlSugar.SqlQueryable<MessageInfoView>(msgSqlWhere).FirstAsync();
+                if (_readableMsgInfo != null)
+                {
+                    result.Code = 0;
+                    result.Msg = "成功!";
+                    result.Data = _readableMsgInfo;
+                }
+                else
+                {
+                    result.Msg = "暂无该用户的消息!";
+                }
+            }
+
+            return result;
+        }
+
+        /// <summary>
+        /// 消息设置已读
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        public async Task<Result> SetMsgRead(MsgSetReadDto dto)
+        {
+            Result result = new Result() { Code = -1, Msg = "未知错误", Data = null };
+
+            if (dto.PortType == 1 || dto.PortType == 2)
+            {
+
+                  var msgReadStatus = await _sqlSugar.Updateable<Sys_MessageReadAuth>()
+                                      .Where(a => a.Id == dto.MsgAnthId)
+                                      .SetColumns(a => new Sys_MessageReadAuth
+                                      {
+                                          IsRead = 1
+                                      }).ExecuteCommandAsync();
+
+                if (msgReadStatus > 0)
+                {
+                    result.Code = 0;
+                    result.Msg = "成功!";
+                }
+                else
+                {
+                    result.Msg = "失败!";
+                }
+            }
+
+            return result;
+        }
+
+        /// <summary>
+        /// 消息设置已读
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        public async Task<Result> DelMsg(MsgDeleteDto dto)
+        {
+            Result result = new Result() { Code = -1, Msg = "未知错误", Data = null };
+
+            if (dto.PortType == 1 || dto.PortType == 2)
+            {
+
+                var msgReadStatus = await _sqlSugar.Updateable<Sys_Message>()
+                                    .Where(a => a.Id == dto.MsgId)
+                                    .SetColumns(a => new Sys_Message
+                                    {
+                                        IsDel = 1,
+                                        DeleteUserId = dto.UserId,
+                                        DeleteTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
+                                    }).ExecuteCommandAsync();
+
+                if (msgReadStatus > 0)
+                {
+                    result.Code = 0;
+                    result.Msg = "成功!";
+                }
+                else
+                {
+                    result.Msg = "操作失败!";
+                }
             }
 
             return result;

+ 11 - 1
OASystem/OASystem.Infrastructure/Repositories/System/UsersRepository.cs

@@ -2,6 +2,7 @@
 using OASystem.Domain;
 using OASystem.Domain.Entities.System;
 using OASystem.Domain.ViewModels.System;
+using SqlSugar;
 using StackExchange.Redis;
 using System;
 using System.Collections.Generic;
@@ -112,7 +113,7 @@ namespace OASystem.Infrastructure.Repositories.System
         {
             Result result = new Result() { Code = -2 };
 
-            if (portType == 1) //web
+            if (portType == 1 || portType == 2) //web
             {
                 string sql = string.Format(@"Select Id,CnName From  Sys_Users");
                 var _userList = await _sqlSugar.SqlQueryable<UserNameView>(sql).ToListAsync();
@@ -142,5 +143,14 @@ namespace OASystem.Infrastructure.Repositories.System
 
             return result;
         }
+        public async Task<List<UserInfo>> QueryUser(string sqlWhere)
+        {
+            string sql = string.Format(@"Select sc.CompanyName,sd.DepName,sjp.JobName,su.* From Sys_Users su 
+                                                        Inner Join Sys_Company sc On su.CompanyId = sc.Id
+                                                        Inner Join Sys_Department sd On su.DepId = sd.Id
+                                                        Inner Join Sys_JobPost sjp On su.JobPostId = sjp.Id {0}", sqlWhere);
+            return await _sqlSugar.SqlQueryable<UserInfo>(sql).ToListAsync();
+
+        }
     }
 }