LR-20210131IOQH\Administrator
2021-08-10 d4a6d65f5e449c3e5464aa18ae97bf8953987217
zhengcaioa/Services/OrderBanciOrderService.cs
New file
@@ -0,0 +1,250 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using AutoMapper;
using DTO;
using IServices;
using Microsoft.AspNetCore.Mvc.Rendering;
using Microsoft.EntityFrameworkCore;
using zhengcaioa.Models;
namespace Services
{
    public class OrderBanciOrderService: IOrderBanciOrderService
    {
        private readonly zhengcaioaContext _context;
        private readonly IMapper _mapper;
        public OrderBanciOrderService(zhengcaioaContext context, IMapper mapper)
        {
            _context = context;
            _mapper = mapper;
        }
        public ResultEntity save(OrderBanciOrderDTO dto)
        {
            ResultEntity resultEntity = new ResultEntity();
            try
            {
                var entity = _mapper.Map<OrderBanciOrder>(dto);
                if (String.IsNullOrEmpty(entity.Id))
                {
                    entity.Id = Guid.NewGuid().ToString();
                    dto.Id = entity.Id;
                    _context.OrderBanciOrders.Add(entity);
                }
                else
                {
                    var updateproject = _context.OrderBanciOrders.Find(entity.Id);
                    updateproject.Baomingtime = entity.Baomingtime;
                    updateproject.BanciId = entity.BanciId;
                    updateproject.Peixunbanci = entity.Peixunbanci;
                    updateproject.KechengleixingId = entity.KechengleixingId;
                    updateproject.Kechengleixing = entity.Kechengleixing;
                    updateproject.PersonId = entity.PersonId;
                    updateproject.Xingming = entity.Xingming;
                    updateproject.Lianxidianhua = entity.Lianxidianhua;
                    updateproject.Xuefei = entity.Xuefei;
                    updateproject.Baomingrenshu = entity.Baomingrenshu;
                    updateproject.RecStatus = entity.RecStatus;
                    updateproject.Modifier = entity.Modifier;
                    updateproject.Modifytime = entity.Modifytime;
                    updateproject.Shenfenzheng = entity.Shenfenzheng;
                }
                _context.SaveChanges();
                resultEntity.ReturnID = entity.Id;
                resultEntity.Result = true;
            }
            catch (Exception ex)
            {
                resultEntity.Result = false;
                resultEntity.Message = "保存失败,请联系管理员";
            }
            return resultEntity;
        }
        public OrderBanciOrderDTO Get(string id)
        {
            var entity = _context.OrderBanciOrders.Find(id);
            if (entity.RecStatus != "A")
            {
                entity = new OrderBanciOrder();
            }
            var result = _mapper.Map<OrderBanciOrderDTO>(entity);
            return result;
        }
        public ResultDataEntity<OrderBanciOrderDTO> SearchByPaging(OrderBanciOrderDTOSearch searchEntity)
        {
            ResultDataEntity<OrderBanciOrderDTO> data = new ResultDataEntity<OrderBanciOrderDTO>();
            List<OrderBanciOrderDTO> list = new List<OrderBanciOrderDTO>();
            //var listCode = (from a in _context.SysCodeDtls
            //                join b in _context.SysCodes
            //                on a.CodeId equals b.Id
            //                where a.RecStatus == "A"
            //                              && b.RecStatus == "A"
            //                select new CodeDataEntity()
            //                {
            //                    CodeId = b.Id,
            //                    CodeTable = b.CodeTable,
            //                    CodeField = b.CodeField,
            //                    CodeSn = a.CodeSn,
            //                    Comments = a.Comments,
            //                    Contents = a.Contents,
            //                    RecStatus = a.RecStatus,
            //                    Sort = a.Sort
            //                }
            //);
            ///OrderBanciOrders
            ///
            DateTime Baomingtimestart = DateTime.Now;
            DateTime Baomingtimeend = DateTime.Now;
            if (!string.IsNullOrWhiteSpace(searchEntity.Baomingtime))
            {
                string[] Baomingtimes = searchEntity.Baomingtime.Split("|");
                DateTime.TryParse(Baomingtimes[0], out Baomingtimestart);
                DateTime.TryParse(Baomingtimes[1], out Baomingtimeend);
                Baomingtimeend = Baomingtimeend.AddDays(1);
            }
            var query = (from a in _context.OrderBanciOrders
                         where a.RecStatus == "A"
                              && (string.IsNullOrWhiteSpace(searchEntity.Baomingtime) || (a.Baomingtime >= Baomingtimestart && a.Baomingtime <= Baomingtimeend))
                          && (string.IsNullOrWhiteSpace(searchEntity.Peixunbanci) || a.Peixunbanci.Contains(searchEntity.Peixunbanci.Trim()))
                          && (string.IsNullOrWhiteSpace(searchEntity.Kechengleixing) || a.KechengleixingId == searchEntity.Kechengleixing.Trim())
                           && (string.IsNullOrWhiteSpace(searchEntity.Xingming) || a.Xingming.Contains(searchEntity.Xingming.Trim()))
                            && (string.IsNullOrWhiteSpace(searchEntity.Lianxidianhua) || a.Lianxidianhua.Contains(searchEntity.Lianxidianhua.Trim()))
                              && (string.IsNullOrWhiteSpace(searchEntity.BanciId) || a.BanciId == searchEntity.BanciId.Trim())
                         select new OrderBanciOrderDTO
                         {
                             Id = a.Id,
                             Baomingtime = a.Baomingtime,
                             BaomingtimeName =  a.Baomingtime.ToString("yyyy-MM-dd"),
                             BanciId = a.BanciId,
                             Peixunbanci = a.Peixunbanci,
                             KechengleixingId = a.KechengleixingId,
                             Kechengleixing = a.Kechengleixing,
                             PersonId = a.PersonId,
                             Xingming = a.Xingming,
                             Lianxidianhua = a.Lianxidianhua,
                             Xuefei = a.Xuefei??0,
                             Baomingrenshu = a.Baomingrenshu??0,
                             Jine = a.Jine??0,
                             Creater = a.Creater,
                             Createtime = a.Createtime,
                             RecStatus = a.RecStatus,
                             Modifier = a.Modifier,
                             Modifytime = a.Modifytime,
                             Shenfenzheng = a.Shenfenzheng,
                         }
                ).OrderByDescending(x => x.Baomingtime).ThenByDescending(x=>x.Modifytime).ToList();
            //if (searchEntity.totalrows == 0)
                searchEntity.totalrows = query.Count();
            var lianlist = query.Skip((searchEntity.page - 1) * searchEntity.rows).Take(searchEntity.rows).ToList();
            data.LoadData(searchEntity, lianlist);
            return data;
        }
        /// <summary>
        /// 修改主表状态
        /// </summary>
        /// <param name="id">主id</param>
        /// <param name="userid">用户</param>
        /// <returns></returns>
        public ResultEntity ModifyStatus(string id, string userid)
        {
            ResultEntity result = new ResultEntity();
            result.Result = true;
            var model = _context.OrderBanciOrders.Find(id);
            if (model != null)
            {
                model.RecStatus = "D";
                model.Modifier = userid;
                model.Modifytime = DateTime.Now;
                _context.SaveChanges();
            }
            return result;
        }
        /// <summary>
        /// 获取所有有效角色
        /// </summary>
        /// <returns></returns>
        public List<OrderBanciOrderDTO> GetList(string[] id)
        {
            List<OrderBanciOrderDTO> result = new List<OrderBanciOrderDTO>();
            if (id != null)
            {
                var listRole = _context.OrderBanciOrders.Where(r => r.RecStatus == "A" &&  id.Contains(r.Id)).ToList();
                result = _mapper.Map<List<OrderBanciOrderDTO>>(listRole);
            }
            return result;
        }
    }
}