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 IntentionCustomerService : IIntentionCustomerService
|
{
|
private readonly zhengcaioaContext _context;
|
private readonly IMapper _mapper;
|
public IntentionCustomerService(zhengcaioaContext context, IMapper mapper)
|
{
|
_context = context;
|
_mapper = mapper;
|
}
|
|
public ResultEntity save(IntentionCustomerDTO intentionCustomerDTO)
|
{
|
ResultEntity resultEntity = new ResultEntity();
|
try
|
{
|
var checkUserSn = _context.IntentionCustomers.Where(x => x.Name == intentionCustomerDTO.Name && x.RecStatus == "A" && x.Id != intentionCustomerDTO.Id).FirstOrDefault();
|
if (checkUserSn != null && (string.IsNullOrWhiteSpace(intentionCustomerDTO.Id) || (!string.IsNullOrWhiteSpace(intentionCustomerDTO.Id) && checkUserSn.Id != intentionCustomerDTO.Id)))
|
{
|
resultEntity.Result = false;
|
resultEntity.Message = "客户单位重复";
|
return resultEntity;
|
}
|
|
var checkcooper = _context.CooperatecustomCustomers.Where(x => x.Name == intentionCustomerDTO.Name && x.RecStatus == "A" ).FirstOrDefault();
|
if (checkcooper != null )
|
{
|
resultEntity.Result = false;
|
resultEntity.Message = "已存在合作客户";
|
return resultEntity;
|
}
|
|
|
var intentionCustomer = _mapper.Map<IntentionCustomer>(intentionCustomerDTO);
|
|
|
if (String.IsNullOrEmpty(intentionCustomer.Id))
|
{
|
intentionCustomer.Id = Guid.NewGuid().ToString();
|
_context.IntentionCustomers.Add(intentionCustomer);
|
}
|
else
|
{
|
var updateproject = _context.IntentionCustomers.Find(intentionCustomer.Id);
|
|
updateproject.Sheng = intentionCustomer.Sheng;
|
updateproject.City = intentionCustomer.City;
|
updateproject.AreaId = intentionCustomer.AreaId;
|
updateproject.Khly = intentionCustomer.Khly;
|
updateproject.Hyfl = intentionCustomer.Hyfl;
|
updateproject.Khlx = intentionCustomer.Khlx;
|
updateproject.Ywjl = intentionCustomer.Ywjl;
|
updateproject.Name = intentionCustomer.Name;
|
updateproject.Postal = intentionCustomer.Postal;
|
updateproject.Address = intentionCustomer.Address;
|
updateproject.Url = intentionCustomer.Url;
|
updateproject.Tel = intentionCustomer.Tel;
|
|
updateproject.Phone = intentionCustomer.Phone;
|
updateproject.Qq = intentionCustomer.Qq;
|
updateproject.Email = intentionCustomer.Email;
|
updateproject.FName = intentionCustomer.FName;
|
updateproject.FTel = intentionCustomer.FTel;
|
|
updateproject.FQq = intentionCustomer.FQq;
|
updateproject.YwName = intentionCustomer.YwName;
|
updateproject.YwTel = intentionCustomer.YwTel;
|
updateproject.YwQq = intentionCustomer.YwQq;
|
updateproject.JgCode = intentionCustomer.JgCode;
|
updateproject.Khh = intentionCustomer.Khh;
|
updateproject.Count = intentionCustomer.Count;
|
updateproject.ShrName = intentionCustomer.ShrName;
|
updateproject.ShrTel = intentionCustomer.ShrTel;
|
updateproject.ShrAddress = intentionCustomer.ShrAddress;
|
updateproject.Remark = intentionCustomer.Remark;
|
|
updateproject.RecStatus = intentionCustomer.RecStatus;
|
updateproject.Modifier = intentionCustomer.Modifier;
|
updateproject.Modifytime = intentionCustomer.Modifytime;
|
|
updateproject.Yixiangtime = intentionCustomer.Yixiangtime;
|
updateproject.Yixiang = intentionCustomer.Yixiang;
|
updateproject.Dianxiaozhuanyuan = intentionCustomer.Dianxiaozhuanyuan;
|
updateproject.Zuijinzhuizongtime = intentionCustomer.Zuijinzhuizongtime;
|
|
updateproject.Weixin = intentionCustomer.Weixin;
|
updateproject.Shifoutianjiaweixin = intentionCustomer.Shifoutianjiaweixin;
|
|
}
|
|
_context.SaveChanges();
|
resultEntity.ReturnID = intentionCustomer.Id;
|
resultEntity.Result = true;
|
}
|
catch (Exception ex)
|
{
|
resultEntity.Result = false;
|
resultEntity.Message = "保存失败,请联系管理员";
|
|
}
|
return resultEntity;
|
}
|
|
public IntentionCustomerDTO Get(string id)
|
{
|
|
var entity = _context.IntentionCustomers.Find(id);
|
|
if (entity.RecStatus != "A")
|
{
|
entity = new IntentionCustomer();
|
}
|
|
var intentionCustomerDTO = _mapper.Map<IntentionCustomerDTO>(entity);
|
|
|
return intentionCustomerDTO;
|
}
|
|
public IntentionCustomerDTO GetByName(string name)
|
{
|
|
var entity = _context.IntentionCustomers.Where(x=>x.Name == name).FirstOrDefault();
|
|
if (entity==null || entity.RecStatus != "A")
|
{
|
entity = new IntentionCustomer();
|
}
|
|
var intentionCustomerDTO = _mapper.Map<IntentionCustomerDTO>(entity);
|
|
|
return intentionCustomerDTO;
|
}
|
|
|
public ResultDataEntity<IntentionCustomerDTO> SearchByPaging(IntentionCustomerDTOSearch searchEntity)
|
{
|
|
|
|
ResultDataEntity<IntentionCustomerDTO> data = new ResultDataEntity<IntentionCustomerDTO>();
|
List<IntentionCustomerDTO> list = new List<IntentionCustomerDTO>();
|
|
|
|
|
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
|
}
|
);
|
DateTime Createtimestart = DateTime.Now;
|
DateTime Createtimeend = DateTime.Now;
|
if (!string.IsNullOrWhiteSpace(searchEntity.Createtime))
|
{
|
string[] Createtimes = searchEntity.Createtime.Split("|");
|
DateTime.TryParse(Createtimes[0], out Createtimestart);
|
DateTime.TryParse(Createtimes[1], out Createtimeend);
|
Createtimeend = Createtimeend.AddDays(1);
|
}
|
DateTime Yixiangtimestart = DateTime.Now;
|
DateTime Yixiangtimeend = DateTime.Now;
|
if (!string.IsNullOrWhiteSpace(searchEntity.Yixiangtime))
|
{
|
string[] Yixiangtimes = searchEntity.Yixiangtime.Split("|");
|
DateTime.TryParse(Yixiangtimes[0], out Yixiangtimestart);
|
DateTime.TryParse(Yixiangtimes[1], out Yixiangtimeend);
|
// Yixiangtimeend = Yixiangtimeend.AddDays(1);
|
}
|
|
var query = (from a in _context.IntentionCustomers
|
join b in listCode.Where(x => x.CodeTable == "IntentionCustomer" && x.CodeField == "khly")
|
on a.Khly equals b.CodeSn
|
join c in listCode.Where(x => x.CodeTable == "CooperatecustomCustomer" && x.CodeField == "hyfl")
|
on a.Hyfl equals c.CodeSn
|
join d in listCode.Where(x => x.CodeTable == "CooperatecustomCustomer" && x.CodeField == "khlx")
|
on a.Khlx equals d.CodeSn
|
join e in _context.PltUsers.Where(x => x.RecStatus == "A" && x.Zhiwustatus == "A" && x.IsYwjl == "A")
|
on a.Ywjl equals e.Id
|
into esss
|
from abi in esss.DefaultIfEmpty()
|
|
join f in _context.PltUsers.Where(x => x.RecStatus == "A" && x.Zhiwustatus == "A" )
|
on a.Dianxiaozhuanyuan equals f.Id
|
into fsss
|
from fff in fsss.DefaultIfEmpty()
|
|
join f in _context.Areas on a.Sheng equals f.CodeId
|
join g in _context.Areas on a.City equals g.CodeId
|
join h in _context.Areas on a.AreaId equals h.CodeId
|
|
where a.RecStatus == "A"
|
&& (string.IsNullOrWhiteSpace(searchEntity.Createtime) || (a.Createtime >= Createtimestart && a.Createtime <= Createtimeend))
|
&& (string.IsNullOrWhiteSpace(searchEntity.Name) || a.Name.Contains(searchEntity.Name.Trim()))
|
&& (string.IsNullOrWhiteSpace(searchEntity.Khly) || a.Khly == searchEntity.Khly.Trim())
|
&& (string.IsNullOrWhiteSpace(searchEntity.Hyfl) || a.Hyfl == searchEntity.Hyfl.Trim())
|
&& (string.IsNullOrWhiteSpace(searchEntity.Khlx) || a.Khlx == searchEntity.Khlx.Trim())
|
&& (string.IsNullOrWhiteSpace(searchEntity.Ywjl) || a.Ywjl == searchEntity.Ywjl.Trim())
|
&& (string.IsNullOrWhiteSpace(searchEntity.Sheng) || a.Sheng == searchEntity.Sheng.Trim())
|
&& (string.IsNullOrWhiteSpace(searchEntity.City) || a.City == searchEntity.City.Trim())
|
&& (string.IsNullOrWhiteSpace(searchEntity.AreaId) || a.AreaId == searchEntity.AreaId.Trim())
|
&& (string.IsNullOrWhiteSpace(searchEntity.Creater) || a.Creater == searchEntity.Creater.Trim())
|
|
&& (string.IsNullOrWhiteSpace(searchEntity.Dianxiaozhuanyuan) || a.Dianxiaozhuanyuan == searchEntity.Dianxiaozhuanyuan.Trim())
|
|
&& (string.IsNullOrWhiteSpace(searchEntity.Yixiangtime) || (a.Yixiangtime >= Yixiangtimestart && a.Yixiangtime <= Yixiangtimeend))
|
&& (string.IsNullOrWhiteSpace(searchEntity.Yixiang) || ( a.Yixiang == searchEntity.Yixiang.Trim() && (a.Ywjl == null || a.Ywjl == searchEntity.YwjlYx) ))
|
&& (string.IsNullOrWhiteSpace(searchEntity.Shifouweixin) || (searchEntity.Shifouweixin == "A" && a.Weixin != null) || (searchEntity.Shifouweixin != "A" && a.Weixin == null))
|
select new IntentionCustomerDTO
|
{
|
Id = a.Id,
|
Sheng = a.Sheng,
|
City = a.City,
|
AreaId = a.AreaId,
|
Khly = a.Khly,
|
Hyfl = a.Hyfl,
|
Khlx = a.Khlx,
|
Ywjl = a.Ywjl,
|
ShengName = f.Name + "-" + g.Name + "-" + h.Name,
|
CityName = g.Name,
|
AreaIdName = h.Name,
|
KhlyName = b.Comments,
|
HyflName = c.Comments,
|
KhlxName = d.Comments,
|
YwjlName = abi.UserName,
|
Name = a.Name,
|
Postal = a.Postal,
|
Address = a.Address,
|
Url = a.Url,
|
Tel = a.Tel,
|
|
Phone = a.Phone,
|
Qq = a.Qq,
|
Email = a.Email,
|
FName = a.FName,
|
FTel = a.FTel,
|
|
FQq = a.FQq,
|
YwName = a.YwName,
|
YwTel = a.YwTel,
|
YwQq = a.YwQq,
|
JgCode = a.JgCode,
|
Khh = a.Khh,
|
Count = a.Count,
|
ShrName = a.ShrName,
|
ShrTel = a.ShrTel,
|
ShrAddress = a.ShrAddress,
|
Remark = a.Remark,
|
Weixin = a.Weixin,
|
Shifoutianjiaweixin = a.Shifoutianjiaweixin,
|
RecStatus = a.RecStatus,
|
Modifier = a.Modifier,
|
Modifytime = a.Modifytime,
|
CreatetimeName = a.Createtime.ToString("yyyy-MM-dd"),
|
Yixiangtime = a.Yixiangtime,
|
YixiangtimeName = a.Yixiangtime.HasValue? a.Yixiangtime.Value.ToString("yyyy-MM-dd"):"",
|
Yixiang = a.Yixiang,
|
Dianxiaozhuanyuan = a.Dianxiaozhuanyuan,
|
DianxiaozhuanyuanName = fff.UserName,
|
Zuijinzhuizongtime = a.Zuijinzhuizongtime,
|
ZuijinzhuizongtimeName = a.Zuijinzhuizongtime.HasValue ? a.Zuijinzhuizongtime.Value.ToString("yyyy-MM-dd") : "",
|
}
|
).OrderByDescending(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.IntentionCustomers.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<IntentionCustomerDTO> GetList()
|
{
|
|
|
var listPosition = _context.IntentionCustomers.Where(r => r.RecStatus == "A").ToList();
|
|
var list = _mapper.Map<List<IntentionCustomerDTO>>(listPosition);
|
return list;
|
}
|
|
/// <summary>
|
/// 获取所有有效意向客户
|
/// </summary>
|
/// <returns></returns>
|
public List<IntentionCustomerDTO> GetList(string[] id)
|
{
|
List<IntentionCustomerDTO> result = new List<IntentionCustomerDTO>();
|
if (id != null)
|
{
|
|
var listPosition = _context.IntentionCustomers.Where(r => id.Contains(r.Id) && r.RecStatus == "A").ToList();
|
|
result = _mapper.Map<List<IntentionCustomerDTO>>(listPosition);
|
}
|
|
|
|
|
return result;
|
}
|
|
public List<IntentionCustomerDTO> GetListsalary(string userid, DateTime datemin, DateTime datemax)
|
{
|
|
|
var listPosition = _context.IntentionCustomers.Where(r => r.RecStatus == "A" && r.Creater == userid && r.Createtime >= datemin && r.Createtime < datemax).ToList();
|
|
var list = _mapper.Map<List<IntentionCustomerDTO>>(listPosition);
|
return list;
|
}
|
}
|
}
|