643 lines
32 KiB
C#
643 lines
32 KiB
C#
using StackExchange.Redis;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data.Entity;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using WX.CRM.BLL.Application.UserComBox;
|
|
using WX.CRM.BLL.Res;
|
|
using WX.CRM.BLL.Util;
|
|
using WX.CRM.Common;
|
|
using WX.CRM.IBLL.Res;
|
|
using WX.CRM.Model.DTO;
|
|
using WX.CRM.Model.Entity;
|
|
using WX.CRM.Model.MAP;
|
|
|
|
namespace WX.CRM.BLL.Deliver
|
|
{
|
|
public class DELIVER_BLL
|
|
{
|
|
private CACHE_BL cache_BL = new CACHE_BL();
|
|
private static IRES_CUSTOMER _customer = new RES_CUSTOMER_BL();
|
|
/// <summary>
|
|
/// 插入或者更新一条 交付数据
|
|
/// </summary>
|
|
/// <param name="data"></param>
|
|
/// <returns></returns>
|
|
public bool InserOrUpdate(WX_SZZYORDER_DELIVER_METHOD data) {
|
|
try
|
|
{
|
|
using (var db = new crmContext())
|
|
{
|
|
var model = db.WX_SZZYORDER_DELIVER_METHOD.FirstOrDefault(m => m.ORDER_ID == data.ORDER_ID);
|
|
if (model == null)
|
|
{
|
|
if (data.MAIL_PHONE.IndexOf("_") == 0)
|
|
{ //首位下划线 为简易加密后的手机号//并且为第一次入库
|
|
var phone = (Convert.ToInt64(data.MAIL_PHONE.Replace("_", "")) / 7 - 555).ToString();
|
|
var sw = new StringWriter();
|
|
_customer.ResgisterCustomer(phone, data.MAIL_RESID, "deliver", sw.ToString());//注册
|
|
data.MAIL_PHONE= phone.Substring(0, 3) + "****" + phone.Substring(7, 4);
|
|
}
|
|
db.WX_SZZYORDER_DELIVER_METHOD.Add(data);
|
|
}
|
|
else {
|
|
//由于 数据提交存在 前后顺序出现问题的情况
|
|
//已经提交的数据又会被修改回交付前
|
|
if (data.DELIVER_STATUS == 0 && model.DELIVER_STATUS != 0) return false;//不做回退更新
|
|
model.DELIVER_STATUS = data.DELIVER_STATUS;
|
|
model.MAIL_NAME = data.MAIL_NAME;
|
|
model.MAIL_RESID = data.MAIL_RESID;
|
|
model.MAIL_PHONE = data.MAIL_PHONE;
|
|
model.PROVINCE = data.PROVINCE;
|
|
model.CITY = data.CITY;
|
|
model.AREA = data.AREA;
|
|
model.ADDRESS = data.ADDRESS;
|
|
model.DELIVER_TIME = data.DELIVER_TIME;
|
|
}
|
|
return db.SaveChanges().GetResult();
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Error(ex);
|
|
return false;
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 插入日志
|
|
/// </summary>
|
|
/// <param name="log"></param>
|
|
/// <returns></returns>
|
|
public bool InserLog(WX_SZZYORDER_DELIVER_LOG log) {
|
|
try
|
|
{
|
|
using (var db = new crmContext())
|
|
{
|
|
if (db.WX_SZZYORDER_DELIVER_LOG.Any(m => m.DELIVER_PICTURE_ID == log.DELIVER_PICTURE_ID)) return false;
|
|
if (log.ORDER_ID == 0) return false;
|
|
//20220913 更新邮寄记录只保留一条
|
|
if (log.DELIVER_TYPE == (int)DELIVER_TYPE_ENUM.邮寄交付)
|
|
{
|
|
if (!string.IsNullOrEmpty(log.FILE_PATH))
|
|
{ //上传回执
|
|
var old = db.WX_SZZYORDER_DELIVER_LOG.FirstOrDefault(m => m.ORDER_ID == log.ORDER_ID && m.DELIVER_TYPE == (int)DELIVER_TYPE_ENUM.邮寄交付 && string.IsNullOrEmpty(m.FILE_PATH));
|
|
if (old != null)
|
|
{
|
|
old.FILE_PATH = log.FILE_PATH;
|
|
old.FILE_NAME = log.FILE_NAME;
|
|
}
|
|
else
|
|
{
|
|
db.WX_SZZYORDER_DELIVER_LOG.Add(log);
|
|
}
|
|
}
|
|
else
|
|
{ //上传快递单号
|
|
var old = db.WX_SZZYORDER_DELIVER_LOG.FirstOrDefault(m => m.ORDER_ID == log.ORDER_ID && m.DELIVER_TYPE == (int)DELIVER_TYPE_ENUM.邮寄交付 && string.IsNullOrEmpty(m.MAIL_NUMBER));
|
|
if (old != null)
|
|
{
|
|
old.MAIL_NUMBER = log.MAIL_NUMBER;
|
|
old.MAIL_TYPE = log.MAIL_TYPE;
|
|
}
|
|
else
|
|
{
|
|
db.WX_SZZYORDER_DELIVER_LOG.Add(log);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
db.WX_SZZYORDER_DELIVER_LOG.Add(log);
|
|
}
|
|
return db.SaveChanges().GetResult();
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Error(ex);
|
|
return false;
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 列表查询
|
|
/// </summary>
|
|
/// <param name="pager"></param>
|
|
/// <param name="querydto"></param>
|
|
/// <param name="usercomboDto"></param>
|
|
/// <returns></returns>
|
|
public List<DeliverOrderView> GetList(ref Pager pager, DeliverOrderListDto querydto, QueryUserComboDto usercomboDto) {
|
|
List<DeliverOrderView> reslut = new List<DeliverOrderView>();
|
|
try
|
|
{
|
|
using (var db = new crmContext())
|
|
{
|
|
// var queryData = db.WX_SZZYORDER.AsQueryable();
|
|
//只展示 当期交付
|
|
// queryData = (from a in queryData
|
|
// join b in db.WX_SZZYSUBPRODUCT on a.SUBPRODUCTID equals b.SUBPRODUCTID
|
|
// where b.DELIVER_TYPE == 0 //当期交付
|
|
// select a);
|
|
var queryData = (from M in db.WX_SZZYORDER.AsQueryable()
|
|
join d in db.RES_CUSTOMER on M.RESID equals d.RESID
|
|
join b in db.WX_SZZYSUBPRODUCT on M.SUBPRODUCTID equals b.SUBPRODUCTID
|
|
where b.DELIVER_TYPE == 0 //当期交付
|
|
select new WX_SZZYORDERDTO
|
|
{
|
|
ORDERID = M.ORDERID,
|
|
EMPLOYEEID = M.EMPLOYEEID,
|
|
PASSWORD = M.PASSWORD,
|
|
USERID = M.USERID,
|
|
PRODUCTID = M.PRODUCTID,
|
|
PRODUCTNAME = M.PRODUCTNAME,
|
|
SUBPRODUCTID = M.SUBPRODUCTID,
|
|
SUBPRODUCTNAME = M.SUBPRODUCTNAME,
|
|
ORDERTYPE = M.ORDERTYPE,
|
|
UPGRADEORDERIDS = M.UPGRADEORDERIDS,
|
|
TOTALUPGRADEVALUE = M.TOTALUPGRADEVALUE,
|
|
NEEDPAY = M.NEEDPAY,
|
|
OPENORDER = M.OPENORDER,
|
|
SZZYORDERID = M.SZZYORDERID,
|
|
ORDERSTATUS = M.ORDERSTATUS,
|
|
CTIME = M.CTIME,
|
|
RETURNNEEDPAY = M.RETURNNEEDPAY,
|
|
CONTRACTCODE = M.CONTRACTCODE,
|
|
RET = M.RET,
|
|
RETP = M.RETP,
|
|
MSG = M.MSG,
|
|
RETURNDETAIL = M.RETURNDETAIL,
|
|
INNERUSERID = M.INNERUSERID,
|
|
OTIME = M.OTIME,
|
|
ENDTIME = M.ENDTIME,
|
|
RESID = d.UMID,
|
|
REQUESTSTATUS = M.REQUESTSTATUS,
|
|
ISFINANCEPAY = M.ISFINANCEPAY,
|
|
FINACEPAYDATE = M.FINACEPAYDATE,
|
|
REMARK = M.REMARK,
|
|
FINALPAY = M.FINALPAY,
|
|
ORDERSTATUSNAME = M.ORDERSTATUSNAME,
|
|
OPERATETIME = M.OPERATETIME,
|
|
STIME = M.STIME,
|
|
ETIME = M.ETIME,
|
|
SUSPENDCOMMENT = M.SUSPENDCOMMENT,
|
|
UPDATEORDERTIME = M.UPDATEORDERTIME,
|
|
ISOPEN = M.ISOPEN,
|
|
TEAMSERVE = M.TEAMSERVE,
|
|
FCTEXT = M.FCTEXT,
|
|
CUSTOMERUSERNAME = M.CUSTOMERUSERNAME,
|
|
ARRIVALPAY = M.ARRIVALPAY,
|
|
ARRIVALTIME = M.ARRIVALTIME,
|
|
SOURCE = M.SOURCE,
|
|
CNAME = M.CNAME,
|
|
OPENDAYS = M.OPENDAYS,
|
|
CUSTOMERCLASSIFY = M.CUSTOMERCLASSIFY,
|
|
SALEDEPTID = M.SALEDEPTID,
|
|
RISKCTRLSTATUS = M.RISKCTRLSTATUS,
|
|
ACTIVEPRODUCTCODE = M.ACTIVEPRODUCTCODE,
|
|
ACTIVEPRODUCTEXT = M.ACTIVEPRODUCTEXT,
|
|
ISTEST = M.ISTEST,
|
|
HASHGRECORD = M.HASHGRECORD,
|
|
OUTORDERO = M.OUTORDERO,
|
|
GIFTDAYS = M.GIFTDAYS,
|
|
GIFTDAYS2 = M.GIFTDAYS2,
|
|
REJECTREMARK = M.REJECTREMARK,
|
|
EXTERNAL_USERID = M.EXTERNAL_USERID,
|
|
WEWORK_REMOTEID = M.WEWORK_REMOTEID,
|
|
FUJIAN = M.FUJIAN,
|
|
DEPTCODE = M.DEPTCODE,
|
|
ESTIMATEOTIME = M.ESTIMATEOTIME,
|
|
EID = M.EID,
|
|
}
|
|
);
|
|
|
|
if (usercomboDto.userId.HasValue)
|
|
{
|
|
queryData = queryData.Where(m => m.INNERUSERID == usercomboDto.userId.Value);
|
|
}
|
|
else if (!string.IsNullOrEmpty(usercomboDto.groupIds))
|
|
{
|
|
var _groupids = OperationUtil.ConvertToDecimal(usercomboDto.groupIds.Split(','));
|
|
queryData = (from a in queryData
|
|
join b in db.BAS_INNERUSERGROUP on a.INNERUSERID equals b.INNERUSERID
|
|
where _groupids.Contains(b.GID.Value)
|
|
select a);
|
|
}
|
|
else if (!string.IsNullOrEmpty(usercomboDto.deptId))
|
|
{
|
|
//queryData = (from a in queryData
|
|
// join b in db.BAS_INNERUSERGROUP on a.INNERUSERID equals b.INNERUSERID
|
|
// join g in db.BAS_INNERGROUP on b.GID equals g.GID
|
|
// where depts.Contains(g.SALEDEPTID.Value)
|
|
// select a);
|
|
var depts = OperationUtil.ConvertToDecimal(usercomboDto.deptId.Split(','));
|
|
List<decimal> ALLdeptIDS = new List<decimal>();
|
|
List<decimal> ALLgidS = new List<decimal>();
|
|
UserServices userservices = new UserServices(cache_BL);
|
|
foreach (var item in depts)
|
|
{
|
|
List<decimal> deptIDS = new List<decimal>();
|
|
List<decimal> gidS = new List<decimal>();
|
|
userservices.GetAllDeptIDOrGidByDeptId(item, ref deptIDS, ref gidS);//获取所有的组别和gid
|
|
ALLdeptIDS.AddRange(deptIDS);
|
|
ALLgidS.AddRange(gidS);
|
|
}
|
|
queryData = (from a in queryData
|
|
join b in db.BAS_INNERUSERGROUP on a.INNERUSERID equals b.INNERUSERID
|
|
where ALLdeptIDS.Contains(b.DEPTID.Value) || ALLgidS.Contains(b.GID.Value)
|
|
select a);
|
|
}
|
|
else if (usercomboDto.companyId.HasValue)
|
|
{
|
|
queryData = (from a in queryData
|
|
join b in db.BAS_INNERUSERGROUP on a.INNERUSERID equals b.INNERUSERID
|
|
join g in db.BAS_INNERGROUP on b.GID equals g.GID
|
|
join m in db.BAS_SALESDEPARTMENT on g.SALEDEPTID equals m.SALEDEPTID
|
|
where m.COMPANYID == usercomboDto.companyId.Value
|
|
select a);
|
|
}
|
|
//客户id
|
|
if (!string.IsNullOrWhiteSpace(querydto.resId))
|
|
{
|
|
querydto.resId = querydto.resId.Trim();
|
|
queryData = queryData.Where(m => m.RESID == querydto.resId);
|
|
}
|
|
//客户姓名
|
|
if (!string.IsNullOrEmpty(querydto.cName))
|
|
{
|
|
queryData = queryData.Where(m => m.CNAME.Contains(querydto.cName));
|
|
}
|
|
//订单id
|
|
if (querydto.szzyOrderId.HasValue)
|
|
{
|
|
queryData = queryData.Where(m => m.ORDERID == querydto.szzyOrderId.Value);
|
|
}
|
|
//订单状态
|
|
if (!string.IsNullOrWhiteSpace(querydto.orderStatus))
|
|
{
|
|
var orderStatusArr = querydto.orderStatus.Split(',');
|
|
queryData = queryData.Where(m => orderStatusArr.Contains(m.ORDERSTATUS));
|
|
}
|
|
//订单开通时间
|
|
if (!string.IsNullOrWhiteSpace(querydto.ostime))
|
|
{
|
|
DateTime time = Convert.ToDateTime(querydto.ostime);
|
|
queryData = queryData.Where(m => m.OTIME >= time);
|
|
}
|
|
//订单开通时间
|
|
if (!string.IsNullOrWhiteSpace(querydto.oetime))
|
|
{
|
|
DateTime time = Convert.ToDateTime(querydto.oetime).AddDays(1).AddSeconds(-1);
|
|
queryData = queryData.Where(m => m.OTIME <= time);
|
|
}
|
|
//交付方式
|
|
if (querydto.orderDeliverType.HasValue)
|
|
{
|
|
if (querydto.orderDeliverType == -1)
|
|
{
|
|
//无记录 为未选择交付
|
|
queryData = (from a in queryData
|
|
join b in db.WX_SZZYORDER_DELIVER_METHOD on a.ORDERID equals b.ORDER_ID into temp
|
|
from t in temp.DefaultIfEmpty()
|
|
where t == null
|
|
select a);
|
|
}
|
|
else {
|
|
queryData = (from a in queryData
|
|
join b in db.WX_SZZYORDER_DELIVER_METHOD on a.ORDERID equals b.ORDER_ID
|
|
where b.DELIVER_TYPE == querydto.orderDeliverType.Value
|
|
select a);
|
|
}
|
|
}
|
|
//交付状态
|
|
// 0未选择交付 1已在线交付 2已邮寄交付 3已在线且邮寄交付
|
|
if (querydto.orderDeliverStatus.HasValue) {
|
|
if (querydto.orderDeliverStatus.Value == 0)
|
|
{
|
|
//无记录 为未选择交付
|
|
queryData = (from a in queryData
|
|
join b in db.WX_SZZYORDER_DELIVER_METHOD on a.ORDERID equals b.ORDER_ID into temp
|
|
from t in temp.DefaultIfEmpty()
|
|
where t == null || t.DELIVER_STATUS == querydto.orderDeliverStatus.Value
|
|
select a);
|
|
}
|
|
else {
|
|
queryData = (from a in queryData
|
|
join b in db.WX_SZZYORDER_DELIVER_METHOD on a.ORDERID equals b.ORDER_ID
|
|
where b.DELIVER_STATUS == querydto.orderDeliverStatus.Value
|
|
select a);
|
|
}
|
|
|
|
//if (querydto.orderDeliverStatus == 1) {//待交付
|
|
// queryData = (from a in queryData
|
|
// join b in db.WX_SZZYORDER_DELIVER_METHOD on a.ORDERID equals b.ORDER_ID
|
|
// where b.DELIVER_STATUS == (int)DELIVER_STATUS_ENUM.未交付
|
|
// select a);
|
|
//}
|
|
//else {
|
|
// queryData = (from a in queryData
|
|
// join b in db.WX_SZZYORDER_DELIVER_METHOD on a.ORDERID equals b.ORDER_ID
|
|
// where b.DELIVER_STATUS == (int)DELIVER_STATUS_ENUM.已在线交付
|
|
// || b.DELIVER_STATUS == (int)DELIVER_STATUS_ENUM.已邮寄交付
|
|
// || b.DELIVER_STATUS == (int)DELIVER_STATUS_ENUM.已在线且邮寄交付//暂时不存在并列情况
|
|
// select a);
|
|
//}
|
|
}
|
|
|
|
//收件人名称
|
|
if (!string.IsNullOrEmpty(querydto.mailName)) {
|
|
|
|
queryData = (from a in queryData
|
|
join b in db.WX_SZZYORDER_DELIVER_METHOD on a.ORDERID equals b.ORDER_ID
|
|
where b.DELIVER_TYPE == (int)DELIVER_TYPE_ENUM.邮寄交付 && b.MAIL_NAME.Contains(querydto.mailName.Trim())
|
|
select a);
|
|
|
|
}
|
|
//收货地址
|
|
if (!string.IsNullOrEmpty(querydto.addressInfo))
|
|
{
|
|
queryData = (from a in queryData
|
|
join b in db.WX_SZZYORDER_DELIVER_METHOD on a.ORDERID equals b.ORDER_ID
|
|
where b.DELIVER_TYPE == (int)DELIVER_TYPE_ENUM.邮寄交付
|
|
&& (b.PROVINCE.Contains(querydto.addressInfo.Trim())
|
|
|| b.CITY.Contains(querydto.addressInfo.Trim())
|
|
|| b.AREA.Contains(querydto.addressInfo.Trim())
|
|
|| b.ADDRESS.Contains(querydto.addressInfo.Trim()))
|
|
select a);
|
|
|
|
}
|
|
//快递单号
|
|
if (!string.IsNullOrEmpty(querydto.mailNumber))
|
|
{
|
|
queryData = (from a in queryData
|
|
join b in db.WX_SZZYORDER_DELIVER_METHOD on a.ORDERID equals b.ORDER_ID
|
|
join c in db.WX_SZZYORDER_DELIVER_LOG on a.ORDERID equals c.ORDER_ID into temp
|
|
from t in temp.DefaultIfEmpty()
|
|
where b.DELIVER_TYPE == (int)DELIVER_TYPE_ENUM.邮寄交付
|
|
&& t!=null && t.MAIL_NUMBER.Contains(querydto.mailNumber.Trim())
|
|
// && t.OrderByDescending(m => m.CTIME).FirstOrDefault(m => !string.IsNullOrEmpty(m.MAIL_NUMBER)).MAIL_NUMBER.Contains(querydto.mailNumber.Trim())
|
|
select a);
|
|
|
|
}
|
|
//交付开始时间
|
|
if (querydto.dstime.HasValue)
|
|
{
|
|
queryData = (from a in queryData
|
|
join b in db.WX_SZZYORDER_DELIVER_METHOD on a.ORDERID equals b.ORDER_ID
|
|
where b.DELIVER_TIME >= querydto.dstime.Value
|
|
select a);
|
|
}
|
|
//交付结束时间
|
|
if (querydto.detime.HasValue)
|
|
{
|
|
queryData = (from a in queryData
|
|
join b in db.WX_SZZYORDER_DELIVER_METHOD on a.ORDERID equals b.ORDER_ID
|
|
where b.DELIVER_TIME <= querydto.detime.Value.AddDays(1).AddSeconds(-1)
|
|
select a);
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
queryData = queryData.OrderByDescending(m => m.CTIME);
|
|
#region 分页与合并
|
|
|
|
|
|
//分页
|
|
PagerUtil.SetPager<WX_SZZYORDERDTO>(ref queryData, ref pager);
|
|
//组合结果
|
|
foreach (var item in queryData.ToList())
|
|
{
|
|
DeliverOrderView r = new DeliverOrderView();
|
|
r.RESID = item.RESID;
|
|
r.DEPTCODE = item.DEPTCODE;
|
|
r.CNAME = item.CNAME;
|
|
r.INNERUSERID = item.INNERUSERID.ToString();
|
|
r.SUBPRODUCTNAME = item.SUBPRODUCTNAME;
|
|
r.ORDERID = item.ORDERID;
|
|
r.ORDERSTATUS = item.ORDERSTATUS;
|
|
r.ORDERSTATUSNAME = item.ORDERSTATUSNAME;
|
|
r.OPENDAYS = item.OPENDAYS;
|
|
r.OTIME = item.OTIME?.ToString("yyyy-MM-dd HH:mm:ss");
|
|
r.DELIVERSTATUS = "未选择交付";
|
|
r.DELIVERTYPE = "未选择交付";
|
|
r.MAILNAME = "--";
|
|
r.ADDRESSINFO = "--";
|
|
r.MAILPHONE = "--";
|
|
r.MAILNUMBER = "--";
|
|
r.MAILFIlE = "--";
|
|
r.MAILTYPE = "--";//快递公司
|
|
r.MAILRESID = "";
|
|
|
|
var deliver = db.WX_SZZYORDER_DELIVER_METHOD.FirstOrDefault(m => m.ORDER_ID == item.ORDERID);
|
|
if (deliver != null) {
|
|
|
|
r.DELIVERSTATUS = ((DELIVER_STATUS_ENUM)deliver.DELIVER_STATUS).ToString();
|
|
r.DELIVERTYPE = ((DELIVER_TYPE_ENUM)deliver.DELIVER_TYPE).ToString();
|
|
r.DTIME=deliver.DELIVER_TIME?.ToString("yyyy-MM-dd HH:mm:ss");
|
|
if (deliver.DELIVER_TYPE == (int)DELIVER_TYPE_ENUM.邮寄交付)
|
|
{
|
|
r.MAILNAME = deliver.MAIL_NAME;
|
|
r.ADDRESSINFO = string.Format("{0} {1} {2} {3}", deliver.PROVINCE, deliver.CITY, deliver.AREA, deliver.ADDRESS);
|
|
r.MAILPHONE = deliver.MAIL_PHONE;
|
|
r.MAILRESID = deliver.MAIL_RESID;
|
|
if (deliver.DELIVER_STATUS == (int)DELIVER_STATUS_ENUM.已在线且邮寄交付 || deliver.DELIVER_STATUS == (int)DELIVER_STATUS_ENUM.已邮寄交付)
|
|
{
|
|
var log = db.WX_SZZYORDER_DELIVER_LOG.Where(m => m.ORDER_ID == item.ORDERID && m.DELIVER_TYPE == (int)DELIVER_TYPE_ENUM.邮寄交付).OrderByDescending(m => m.CTIME).ToList();
|
|
var numberLog = log.FirstOrDefault(m => !string.IsNullOrEmpty(m.MAIL_NUMBER));//最新一条邮寄单号
|
|
var fileLog = log.FirstOrDefault(m => !string.IsNullOrEmpty(m.FILE_PATH));//最新一条邮寄回执
|
|
if (numberLog != null) { //找到了交付日志
|
|
r.MAILNUMBER = numberLog.MAIL_NUMBER;
|
|
r.MAILTYPE= numberLog.MAIL_TYPE==null? "" : ((MAIL_TYPE_ENUM)Convert.ToInt32(numberLog.MAIL_TYPE)).ToString();
|
|
}
|
|
if (fileLog!=null) {
|
|
r.MAILFIlE = "<a style='color:blue;cursor: pointer;' onclick='ShowFile(\"" + fileLog.FILE_PATH + "\")'>查看</a>";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
reslut.Add(r);
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Error(ex);
|
|
}
|
|
return reslut;
|
|
}
|
|
/// <summary>
|
|
/// 获取产品 交付连接
|
|
/// </summary>
|
|
/// <param name="ORDERID"></param>
|
|
/// <returns></returns>
|
|
public string GetOrderDeliverLink(decimal? ORDERID) {
|
|
try
|
|
{
|
|
using (var db = new crmContext())
|
|
{
|
|
var link = (from a in db.WX_SZZYORDER
|
|
join b in db.WX_SZZYSUBPRODUCT on a.SUBPRODUCTID equals b.SUBPRODUCTID
|
|
where a.ORDERID == ORDERID
|
|
select b.DELIVER_URL).FirstOrDefault();
|
|
return link;
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Error(ex);
|
|
return "";
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 获取产品 交付连接
|
|
/// </summary>
|
|
/// <param name="ORDERID"></param>
|
|
/// <returns></returns>
|
|
public WX_SZZYORDER_DELIVER_METHOD GetDeliverInfo(decimal? ORDERID)
|
|
{
|
|
try
|
|
{
|
|
using (var db = new crmContext())
|
|
{
|
|
var info = (from a in db.WX_SZZYORDER
|
|
join b in db.WX_SZZYORDER_DELIVER_METHOD on a.ORDERID equals b.ORDER_ID
|
|
where a.ORDERID == ORDERID && b.DELIVER_TYPE==(int)DELIVER_TYPE_ENUM.邮寄交付
|
|
select b).FirstOrDefault();
|
|
return info;
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Error(ex);
|
|
return null;
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 获取手机号
|
|
/// </summary>
|
|
/// <param name="ORDERID"></param>
|
|
/// <returns></returns>
|
|
public string GetPhone(decimal? ORDERID) {
|
|
try
|
|
{
|
|
using (var db = new crmContext())
|
|
{
|
|
var method = db.WX_SZZYORDER_DELIVER_METHOD.FirstOrDefault(m=>m.ORDER_ID== ORDERID);
|
|
return method.MAIL_RESID;
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Error(ex);
|
|
return "";
|
|
}
|
|
}
|
|
public WX_SZZYORDER_DELIVER_METHOD GetOrderDeliver(decimal? ORDERID) {
|
|
try
|
|
{
|
|
using (var db = new crmContext())
|
|
{
|
|
return db.WX_SZZYORDER_DELIVER_METHOD.FirstOrDefault(m => m.ORDER_ID == ORDERID);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Error(ex);
|
|
return null;
|
|
}
|
|
}
|
|
public List<WX_SZZYORDER_DELIVER_LOG> GetOrderDeliverLog(decimal? ORDERID) {
|
|
try
|
|
{
|
|
using (var db = new crmContext())
|
|
{
|
|
return db.WX_SZZYORDER_DELIVER_LOG.Where(m => m.ORDER_ID == ORDERID).ToList();
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Error(ex);
|
|
return null;
|
|
}
|
|
}
|
|
|
|
public List<string> GetEIds(string txt_deptId, string txt_userId)
|
|
{
|
|
using (var db = new crmContext())
|
|
{
|
|
var query = db.BAS_INNERUSER.AsQueryable();
|
|
if (!string.IsNullOrEmpty(txt_userId))
|
|
{
|
|
query.Where(w => w.PKID.ToString() == txt_userId);
|
|
}
|
|
|
|
return query.Select(o => o.EID.ToString()).ToList();
|
|
}
|
|
}
|
|
|
|
public List<BindListDto> GetInfoByEid(params int[] EIds)
|
|
{
|
|
using (var db = new crmContext())
|
|
{
|
|
var query = db.BAS_INNERUSER.AsQueryable();
|
|
if (EIds!=null && EIds.Any())
|
|
{
|
|
var items = EIds.Select(o => Convert.ToDecimal(o)).ToList();
|
|
query.Where(w=> items.Contains(w.EID));
|
|
}
|
|
|
|
return query.ToList().Select(o => new BindListDto
|
|
{
|
|
EId = Convert.ToInt32(o.EID),
|
|
EName = o.UNAME
|
|
}).ToList();
|
|
}
|
|
}
|
|
}
|
|
public class DeliverOrderView {
|
|
public string RESID { get; set; }
|
|
public string DEPTCODE { get; set; }
|
|
public string CNAME { get; set; }
|
|
public string GNAME { get; set; }
|
|
public string INNERUSERID { get; set; }
|
|
public string SUBPRODUCTNAME { get; set; }
|
|
public decimal ORDERID { get; set; }
|
|
public string ORDERSTATUS { get; set; }
|
|
public string ORDERSTATUSNAME { get; set; }
|
|
public decimal? OPENDAYS { get; set; }
|
|
public string DELIVERTYPE { get; set; }
|
|
public string DELIVERSTATUS { get; set; }
|
|
public string MAILNAME { get; set; }
|
|
public string ADDRESSINFO { get; set; }
|
|
public string MAILPHONE { get; set; }
|
|
public string MAILRESID { get; set; }
|
|
public string MAILTYPE { get; set; }
|
|
public string MAILNUMBER { get; set; }
|
|
public string MAILFIlE { get; set; }
|
|
public string OTIME { get; set; }
|
|
public string DTIME { get; set; }
|
|
}
|
|
public class DeliverOrderListDto
|
|
{
|
|
public string resId { get; set; }
|
|
public string cName { get; set; }
|
|
public decimal? szzyOrderId { get; set; }
|
|
public string orderStatus { get; set; }
|
|
public int? orderDeliverStatus { get; set; }
|
|
public int? orderDeliverType { get; set; }
|
|
public string mailName { get; set; }
|
|
public string addressInfo { get; set; }
|
|
public string mailNumber { get; set; }
|
|
public string ostime { get; set; }
|
|
public string oetime { get; set; }
|
|
public string showPhone { get; set; }
|
|
public DateTime? dstime { get; set; }
|
|
public DateTime? detime { get; set; }
|
|
}
|
|
}
|