|
|
using BookingWeb.DB;
|
|
|
using BookingWeb.DB.Model;
|
|
|
using BookingWeb.Helper;
|
|
|
using BookingWeb.Models;
|
|
|
using Resources;
|
|
|
using System;
|
|
|
using System.Collections.Generic;
|
|
|
using System.IO;
|
|
|
using System.Linq;
|
|
|
using System.Runtime.Caching;
|
|
|
using System.Text;
|
|
|
using System.Web;
|
|
|
using System.Web.Mvc;
|
|
|
using System.Web.Security;
|
|
|
|
|
|
namespace BookingWeb.Controllers
|
|
|
{
|
|
|
public class CommonController : Controller
|
|
|
{
|
|
|
private InfoDB infoDB = new InfoDB();
|
|
|
|
|
|
public ActionResult GetCaptcha()
|
|
|
{
|
|
|
DrawCaptchaHelper objDrawValidationCode = new DrawCaptchaHelper();
|
|
|
objDrawValidationCode.Width = 100;
|
|
|
objDrawValidationCode.Height = 30;
|
|
|
|
|
|
objDrawValidationCode.CaptchaLength = 4;//验证码字符个数
|
|
|
objDrawValidationCode.IsPixel = false;//随机噪点
|
|
|
|
|
|
objDrawValidationCode.RandomStringCount = 2; //干扰字符个数
|
|
|
objDrawValidationCode.RandomStringFontSize = 20;//干扰字符字体大小
|
|
|
|
|
|
objDrawValidationCode.FontMinSize = 20;//验证码字体的大小的最小值
|
|
|
objDrawValidationCode.FontMaxSize = 22; //验证码字体的大小的最大值
|
|
|
|
|
|
//objDrawValidationCode.GaussianDeviation = 3; //默认0,不使用高斯模糊算法处理图像。
|
|
|
//objDrawValidationCode.BrightnessValue = 5; //明暗度,默认0,是使用明暗度算法处理图像
|
|
|
|
|
|
objDrawValidationCode.LineCount = 1; //默认3条。
|
|
|
objDrawValidationCode.BezierCount = 1;//默认3条。
|
|
|
|
|
|
//边框样式
|
|
|
//objDrawValidationCode.Border = DrawCaptchaHelper.BorderStyle.RoundRectangle;
|
|
|
|
|
|
MemoryStream ms = new MemoryStream();
|
|
|
objDrawValidationCode.CreateImage(ms);
|
|
|
ms.Position = 0;
|
|
|
Session["ValidateCode"] = objDrawValidationCode.CaptchaStr;//将验证码字符串存入session,用于登录验证
|
|
|
return File(ms, "image/jpeg");
|
|
|
}
|
|
|
|
|
|
public ActionResult GetMobileCode(string mobile)
|
|
|
{
|
|
|
RespCommon resp = new RespCommon();
|
|
|
string key1 = $"REM_{mobile}";
|
|
|
string key2 = $"MC_{mobile}";
|
|
|
if (MemoryCache.Default.Contains(key1))
|
|
|
{
|
|
|
resp.Success = false;
|
|
|
resp.Message = LangCommon.MsgGetCodeFrequent;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
Random rnd = new Random();
|
|
|
string code = rnd.Next(1000, 10000).ToString();
|
|
|
MemoryCache.Default.Add(new CacheItem(key1, true), new CacheItemPolicy() { AbsoluteExpiration = DateTime.Now.AddSeconds(120) });
|
|
|
MemoryCache.Default.Remove(key2);
|
|
|
MemoryCache.Default.Add(new CacheItem(key2, code), new CacheItemPolicy() { AbsoluteExpiration = DateTime.Now.AddMinutes(5) });
|
|
|
AliMessageTools.SendSignCodeMsg(mobile, code);
|
|
|
resp.Success = true;
|
|
|
resp.Message = LangCommon.MsgMobileCodeSent;
|
|
|
}
|
|
|
|
|
|
return Json(resp);
|
|
|
}
|
|
|
|
|
|
//场站检索 Bootstrap Search Suggest
|
|
|
public ActionResult SuggestYard(string keyword)
|
|
|
{
|
|
|
RespSuggest resp = new RespSuggest();
|
|
|
if (!string.IsNullOrEmpty(keyword))
|
|
|
{
|
|
|
resp.value = infoDB.Yards.Where(y => y.CODENAME.IndexOf(keyword.ToLower()) > -1 || y.SHORTNAME.IndexOf(keyword) > -1).Select(y => new
|
|
|
{
|
|
|
y.CODENAME,
|
|
|
y.SHORTNAME
|
|
|
}).ToList();
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
resp.value = infoDB.Yards.Select(y => new
|
|
|
{
|
|
|
y.CODENAME,
|
|
|
y.SHORTNAME
|
|
|
}).ToList();
|
|
|
|
|
|
}
|
|
|
resp.code = 200;
|
|
|
return Json(resp, JsonRequestBehavior.AllowGet);
|
|
|
|
|
|
}
|
|
|
|
|
|
//船公司检索 Bootstrap Search Suggest
|
|
|
public ActionResult SuggestCarrier(string keyword)
|
|
|
{
|
|
|
RespSuggest resp = new RespSuggest();
|
|
|
if (!string.IsNullOrEmpty(keyword))
|
|
|
{
|
|
|
resp.value = infoDB.Carriers.Where(y => y.CODENAME.IndexOf(keyword.ToLower()) > -1 || y.SHORTNAME.IndexOf(keyword) > -1).Select(y => new
|
|
|
{
|
|
|
y.CODENAME,
|
|
|
y.SHORTNAME
|
|
|
}).ToList();
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
resp.value = infoDB.Carriers.Select(y => new
|
|
|
{
|
|
|
y.CODENAME,
|
|
|
y.SHORTNAME
|
|
|
}).ToList();
|
|
|
|
|
|
}
|
|
|
resp.code = 200;
|
|
|
return Json(resp, JsonRequestBehavior.AllowGet);
|
|
|
|
|
|
}
|
|
|
|
|
|
//装货港检索 Bootstrap Search Suggest
|
|
|
public ActionResult SuggestLoadport(string keyword)
|
|
|
{
|
|
|
RespSuggest resp = new RespSuggest();
|
|
|
if (!string.IsNullOrEmpty(keyword))
|
|
|
{
|
|
|
resp.value = infoDB.Loadports.Where(y => y.PORT.IndexOf(keyword.ToLower()) > -1 || y.EDICODE.IndexOf(keyword.ToLower()) > -1).Select(y => new
|
|
|
{
|
|
|
y.EDICODE,
|
|
|
y.PORT
|
|
|
}).ToList();
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
resp.value = infoDB.Loadports.Select(y => new
|
|
|
{
|
|
|
y.EDICODE,
|
|
|
y.PORT
|
|
|
}).ToList();
|
|
|
|
|
|
}
|
|
|
resp.code = 200;
|
|
|
return Json(resp, JsonRequestBehavior.AllowGet);
|
|
|
|
|
|
}
|
|
|
|
|
|
//卸货港检索 Bootstrap Search Suggest
|
|
|
public ActionResult SuggestDisport(string keyword)
|
|
|
{
|
|
|
RespSuggest resp = new RespSuggest();
|
|
|
if (!string.IsNullOrEmpty(keyword))
|
|
|
{
|
|
|
resp.value = infoDB.Disports.Where(y => y.PORT.IndexOf(keyword.ToLower()) > -1 || y.EDICODE.IndexOf(keyword.ToLower()) > -1).Select(y => new
|
|
|
{
|
|
|
y.EDICODE,
|
|
|
y.PORT
|
|
|
}).ToList();
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
resp.value = infoDB.Disports.Select(y => new
|
|
|
{
|
|
|
y.EDICODE,
|
|
|
y.PORT
|
|
|
}).ToList();
|
|
|
|
|
|
}
|
|
|
resp.code = 200;
|
|
|
return Json(resp, JsonRequestBehavior.AllowGet);
|
|
|
|
|
|
}
|
|
|
|
|
|
//签单方式检索 Bootstrap Search Suggest
|
|
|
public ActionResult SuggestIssuType(string keyword)
|
|
|
{
|
|
|
RespSuggest resp = new RespSuggest();
|
|
|
if (!string.IsNullOrEmpty(keyword))
|
|
|
{
|
|
|
resp.value = infoDB.IssuTypes.Where(y => y.BLTYPE.IndexOf(keyword.ToLower()) > -1).Select(y => new
|
|
|
{
|
|
|
y.GID,
|
|
|
y.BLTYPE
|
|
|
}).ToList();
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
resp.value = infoDB.IssuTypes.Select(y => new
|
|
|
{
|
|
|
y.GID,
|
|
|
y.BLTYPE
|
|
|
}).ToList();
|
|
|
|
|
|
}
|
|
|
resp.code = 200;
|
|
|
return Json(resp, JsonRequestBehavior.AllowGet);
|
|
|
|
|
|
}
|
|
|
|
|
|
//付费方式检索 Bootstrap Search Suggest
|
|
|
public ActionResult SuggestFRT(string keyword)
|
|
|
{
|
|
|
RespSuggest resp = new RespSuggest();
|
|
|
if (!string.IsNullOrEmpty(keyword))
|
|
|
{
|
|
|
resp.value = infoDB.Frts.Where(y => y.FRT.IndexOf(keyword.ToLower()) > -1 || y.FRTCNAME.IndexOf(keyword) > -1).Select(y => new
|
|
|
{
|
|
|
y.FRT,
|
|
|
y.FRTCNAME
|
|
|
}).ToList();
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
resp.value = infoDB.Frts.Select(y => new
|
|
|
{
|
|
|
y.FRT,
|
|
|
y.FRTCNAME
|
|
|
}).ToList();
|
|
|
|
|
|
}
|
|
|
resp.code = 200;
|
|
|
return Json(resp, JsonRequestBehavior.AllowGet);
|
|
|
|
|
|
}
|
|
|
|
|
|
//包装检索 Bootstrap Search Suggest
|
|
|
public ActionResult SuggestPackage(string keyword)
|
|
|
{
|
|
|
RespSuggest resp = new RespSuggest();
|
|
|
if (!string.IsNullOrEmpty(keyword))
|
|
|
{
|
|
|
resp.value = infoDB.Packages.Where(y => y.PKGS.IndexOf(keyword.ToLower()) > -1).Select(y => new
|
|
|
{
|
|
|
y.GID,
|
|
|
y.PKGS
|
|
|
}).ToList();
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
resp.value = infoDB.Packages.Select(y => new
|
|
|
{
|
|
|
y.GID,
|
|
|
y.PKGS
|
|
|
}).ToList();
|
|
|
|
|
|
}
|
|
|
resp.code = 200;
|
|
|
return Json(resp, JsonRequestBehavior.AllowGet);
|
|
|
|
|
|
}
|
|
|
|
|
|
//运输条款 Bootstrap Search Suggest
|
|
|
public ActionResult SuggestService(string keyword)
|
|
|
{
|
|
|
RespSuggest resp = new RespSuggest();
|
|
|
if (!string.IsNullOrEmpty(keyword))
|
|
|
{
|
|
|
resp.value = infoDB.Services.Where(y => y.SERVICE.IndexOf(keyword.ToLower()) > -1).Select(y => new
|
|
|
{
|
|
|
y.GID,
|
|
|
y.SERVICE
|
|
|
}).ToList();
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
resp.value = infoDB.Services.Select(y => new
|
|
|
{
|
|
|
y.GID,
|
|
|
y.SERVICE
|
|
|
}).ToList();
|
|
|
|
|
|
}
|
|
|
resp.code = 200;
|
|
|
return Json(resp, JsonRequestBehavior.AllowGet);
|
|
|
|
|
|
}
|
|
|
|
|
|
//船名 Bootstrap Search Suggest
|
|
|
public ActionResult SuggestVESSEL(string keyword)
|
|
|
{
|
|
|
RespSuggest resp = new RespSuggest();
|
|
|
if (!string.IsNullOrEmpty(keyword))
|
|
|
{
|
|
|
resp.value = infoDB.Vessels.Where(y => y.VESSEL.IndexOf(keyword.ToLower()) > -1).Select(y => new
|
|
|
{
|
|
|
y.VSID,
|
|
|
y.VESSEL
|
|
|
}).ToList();
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
resp.value = infoDB.Vessels.Select(y => new
|
|
|
{
|
|
|
y.VSID,
|
|
|
y.VESSEL
|
|
|
}).ToList();
|
|
|
|
|
|
}
|
|
|
resp.code = 200;
|
|
|
return Json(resp, JsonRequestBehavior.AllowGet);
|
|
|
|
|
|
}
|
|
|
|
|
|
//箱型 Bootstrap Search Suggest
|
|
|
public ActionResult SuggestCTN(string keyword)
|
|
|
{
|
|
|
RespSuggest resp = new RespSuggest();
|
|
|
if (!string.IsNullOrEmpty(keyword))
|
|
|
{
|
|
|
resp.value = infoDB.Ctns.Where(y => y.CTN.IndexOf(keyword.ToLower()) > -1).Select(y => new
|
|
|
{
|
|
|
y.CTNID,
|
|
|
y.CTN
|
|
|
}).ToList();
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
resp.value = infoDB.Ctns.Select(y => new
|
|
|
{
|
|
|
y.CTNID,
|
|
|
y.CTN
|
|
|
}).ToList();
|
|
|
|
|
|
}
|
|
|
resp.code = 200;
|
|
|
return Json(resp, JsonRequestBehavior.AllowGet);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|
|
|
} |