using Antlr.Runtime.Tree;
using Google.Protobuf.WellKnownTypes;
using Microsoft.Ajax.Utilities;
using Models;
using Models.ModelGoods;
using Models.ModelItems;
using MySqlX.XDevAPI.Common;
using Newtonsoft.Json;
using Org.BouncyCastle.Ocsp;
using Services.Api;
using Services.Manager;
using Services.Tool;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Reflection.Emit;
using System.Runtime.CompilerServices;
using System.Security.Cryptography;
using System.Security.Policy;
using System.Text;
using System.Web;
using System.Web.Mvc;
using System.Web.Razor.Tokenizer.Symbols;
using System.Web.Services.Description;
using System.Web.UI;
namespace WxApi.Controllers
{
public class uts_zongqing_tbl_importinfoall : uts_zongqing_tbl_importinfo
{
public string ProjectName { get; set; }
}
public class uts_johao_tbl_importinfoall : uts_johao_tbl_importinfo
{
public string ProjectName { get; set; }
}
public class WxController : Controller
{
// GET: Wx
public ActionResult Index()
{
return View();
}
//使用案例
// curl --request POST \
//--url https://localhost:44379/Wx/Wxlog \
//--header 'content-type: multipart/form-data' \
//--form UserName=hahah \
//--form appid=6571 \
//--form Password=123451116 \
//--form islong=false \
//--form openid=1211111
///
/// 用户验证登录
///
/// 用户名
/// app编号
/// 密码
/// 登录时间长短
///
[HttpPost]
public ActionResult Wxlog(string UserName = "", int appid = 0, string Password = "", bool islong = false, string openid = "")
{
//写日志
Logs.WriteTimingPlanLog("用户名:" + UserName + "密码:" + Password);
var result = new ReturnResult();
try
{
//获取信息
result = OTApi.Wxlog(UserName, Password, appid, null, openid, islong);
if (result != null)
{
if (result.Status == 200)
{
result.Status = 200;
result.Message = "请求成功。。。。";
}
else if (result.Status == 300)
{
result.Status = 300;
result.Message = "您的帐号没有激活,请联系管理员";
Logs.WriteLog("账号激活:" + result.Message);
}
}
}
catch (Exception ex)
{
Logs.WriteErrorLog("登录出问题了您来看看吧", ex);
result.Status = 500;
result.Message = "服务器错误";
result.Data = null;
}
return Json(result);
}
//使用案例
//curl --request POST \
//--url https://localhost:44379/Wx/LoginToken \
//--header 'content-type: multipart/form-data' \
//--form token = eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzM4NCJ9.eyJkYXRhIjpudWxsLCJleHAiOjQwNTUwMDIwMjAwLjB9.Oyr_dtY1C - 9atU5hU0isQPmsUoVEco0KInrWbXp-vIhFOTe4rbKbVYrOYHfYCIG4 \
//--form appid = 5
///
/// Token登录
///
/// Token值
/// app编号
///
[HttpPost]
public ActionResult LoginToken(string token, int appid = 5)
{
var info = new ReturnResult();
try
{
info = OTApi.WxlogToken(token, appid);
//info.Data = TokenHelper.CheckToken(token);
}
catch (Exception ex)
{
Logs.WriteLog("检查token时的Error:" + ex);
info.Status = 500;
info.Message = "服务器错误";
info.Data = null;
}
return Json(info);
}
///
/// 根据运货单号查询订单编号信息
///
/// 订单编号
///
/// 状态
///
[HttpPost]
public ActionResult GetOutList(string ShippingCode, int sqlid)
{
if (sqlid == 7)
{
List coos = SqlSugarGoodsBase.Db.Queryable()
.Where(x => x.ShippingCode == ShippingCode).OrderByDescending(x => x.ShippingDateTime).Select(x => new uts_zongqing_tbl_importinfoall
{
ID = x.ID,
ShippingCode = x.ShippingCode,
ProjectID = x.ProjectID,
Barcode = x.Barcode,
ImportDateTime = x.ImportDateTime,
UpdateTime = x.UpdateTime,
ColorBox_BarCode = x.ColorBox_BarCode,
OutBoxCode = x.OutBoxCode,
ShippingDateTime = x.ShippingDateTime,
ShippingLoader = x.ShippingLoader,
})
.ToList();
List retList = new List();
if (coos.Count <= 0)
{
return Json(retList);
}
else
{
foreach (uts_zongqing_tbl_importinfoall item in coos)
{
List g = SqlBase.Db.Queryable().Where(x => x.ProjectName != "Shipping").ToList();
List listsm = g.Where(x => x.ID == item.ProjectID).ToList();
if (listsm.Count > 0)
{
item.ProjectName = listsm[0].ProjectName;
}
//if item's outbox already in array, add colorbox to item's CCodeBCodeList
//else, create a outbox item to array, and add colorbox to iems CCodeBCodeList
bool isExistInList = false;
int matchPos = -1;
for (int i = 0; i < retList.Count; i++)
{
if (retList[i].OutBoxCode == item.OutBoxCode)
{
isExistInList = true;
matchPos = i;
break;
}
}
if (isExistInList)
{
retList[matchPos].CCodeBCodeList.Add(new ColorBarPair { ColorBox = item.ColorBox_BarCode, BarCode = item.Barcode });
}
else
{
jsonapi tmpObj = new jsonapi();
tmpObj.OutBoxCode = item.OutBoxCode;
tmpObj.ProjectID = item.ProjectID;
tmpObj.Operator = item.ShippingLoader;
tmpObj.ShippingDateTime = item.ShippingDateTime;
tmpObj.ShippingCode = item.ShippingCode;
tmpObj.Status = true;
tmpObj.ProjectName=item.ProjectName;
tmpObj.CCodeBCodeList = new List();
tmpObj.CCodeBCodeList.Add(new ColorBarPair { ColorBox = item.ColorBox_BarCode, BarCode = item.Barcode });
retList.Add(tmpObj);
}
}
return Json(retList);
}
}
else
{
List coos = SqlSugarGoodsBase.Db.Queryable()
.Where(x => x.ShippingCode == ShippingCode).OrderByDescending(x => x.ShippingDateTime).Select(x => new uts_johao_tbl_importinfoall
{
ID = x.ID,
ShippingCode = x.ShippingCode,
ProjectID = x.ProjectID,
Barcode = x.Barcode,
ImportDateTime = x.ImportDateTime,
UpdateTime = x.UpdateTime,
ColorBox_BarCode = x.ColorBox_BarCode,
OutBoxCode = x.OutBoxCode,
ShippingDateTime = x.ShippingDateTime,
ShippingLoader = x.ShippingLoader,
})
.ToList();
// List coos = SqlSugarGoodsBase.Db.Queryable()
//.Where(x => x.ShippingCode == ShippingCode)
//.OrderByDescending(x => x.ShippingDateTime).ToList();
List retList = new List();
if (coos.Count <= 0)
{
return Json(retList);
}
else
{
foreach (uts_johao_tbl_importinfoall item in coos)
{
List g = SqljohaoBase.Db.Queryable().ToList();
List listsm = g.Where(x => x.ID == item.ProjectID).ToList();
if (listsm.Count > 0)
{
item.ProjectName = listsm[0].ProjectName;
}
//if item's outbox already in array, add colorbox to item's CCodeBCodeList
//else, create a outbox item to array, and add colorbox to iems CCodeBCodeList
bool isExistInList = false;
int matchPos = -1;
for (int i = 0; i < retList.Count; i++)
{
if (retList[i].OutBoxCode == item.OutBoxCode)
{
isExistInList = true;
matchPos = i;
break;
}
}
if (isExistInList)
{
retList[matchPos].CCodeBCodeList.Add(new ColorBarPair { ColorBox = item.ColorBox_BarCode, BarCode = item.Barcode });
}
else
{
jsonapi tmpObj = new jsonapi();
tmpObj.OutBoxCode = item.OutBoxCode;
tmpObj.ProjectID = item.ProjectID;
tmpObj.Operator = item.ShippingLoader;
tmpObj.ShippingDateTime = item.ShippingDateTime;
tmpObj.ShippingCode = item.ShippingCode;
tmpObj.Status = true;
tmpObj.ProjectName = item.ProjectName;
tmpObj.CCodeBCodeList = new List();
tmpObj.CCodeBCodeList.Add(new ColorBarPair { ColorBox = item.ColorBox_BarCode, BarCode = item.Barcode });
retList.Add(tmpObj);
}
}
return Json(retList);
}
}
}
///
/// 根据运货单号查询订单编号信息
///
///
///
///
///
///
[HttpPost]
public ActionResult GetdingdanbyID(string ShippingCode, string token = "", int Status = 0, int ProjectListID = 0, int sqlid = 0)
{
var result = new ReturnResult();
// 检查Token值是否存在
string aa = TokenHelper.CheckToken(token);
if (aa != null)
{
TBL_UTS_Manage_User aas = JsonConvert.DeserializeObject(aa);
TBL_UTS_Manage_User user = SqlSugarBase.Db.Queryable().First(x => x.UserName == aas.UserName);
if (aas.IsValid == user.IsValid && aas.PlaintextPwd == user.PlaintextPwd)
{
Logs.WriteLog("根据运货单号查询订单编号信息,操作人是:" + aas.UserName);
try
{
if (sqlid == 7)
{
result = OTApi.GetdingdanbyID1(ShippingCode, Status, ProjectListID);
}
else if (sqlid == 2)
{
result = OTApi.GetdingdanbyID2(ShippingCode, Status, ProjectListID);
}
if (result != null)
{
result.IsAdmin = aas.IsAdmin;
result.Status = 200;
result.Message = "请求成功。。。。";
Logs.WriteLog("查询订单信息" + result.Message);
}
}
catch (Exception ex)
{
Logs.WriteLog("请检查根据运货单号和状态查询订单编号信息的Error:" + ex);
result.Status = 500;
result.Message = "服务器错误";
result.Data = null;
}
}
else
{
result.Status = 100;
}
}
else
{
Logs.WriteLog("token丢失,需要要重新登录!");
result.Status = 401;
result.Message = "服务器错误";
result.Data = null;
}
return Json(result);
}
///
/// 获取微信的openid
///
/// 小程序id
/// 如果重新生成了小程序密钥这个密钥需要修改成新的密钥
/// 小程序密钥
/// codeid
/// 授权类型
///
[HttpPost]
public ActionResult Getgetopenid(string appid = "wx5f9bb9191db4a415", string secret = "ff1a49ee953b87a67ad8b4d3a475b93b", string js_code = "", string grant_type = "authorization_code")
{
string strRlt = "";
try
{
//创建Get请求
string url = "https://api.weixin.qq.com/sns/jscode2session?appid=" + appid + "&secret=" + secret + "&js_code=" + js_code + "&grant_type=" + grant_type;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "GET";
request.ContentType = "text/html;charset=UTF-8";
//接受返回来的数据
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream stream = response.GetResponseStream();
StreamReader streamReader = new StreamReader(stream, Encoding.GetEncoding("utf-8"));
//后台发请求返回来的数据
strRlt = streamReader.ReadToEnd();
streamReader.Close();
stream.Close();
response.Close();
}
catch (Exception ex)
{
Logs.WriteLog("获取openid的Error:" + ex);
}
return Json(strRlt);
}
///
/// 获取外箱码信息
///
/// 外箱码
/// token值
///
[HttpPost]
public ActionResult GetBoxnumber(string goodid = "", string token = "", string dingdan = "")
{
var result = new ReturnResult();
// 检查Token值是否存在
string aa = TokenHelper.CheckToken(token);
if (aa != null)
{
TBL_UTS_Manage_User aas = JsonConvert.DeserializeObject(aa);
TBL_UTS_Manage_User user = SqlSugarBase.Db.Queryable().First(x => x.UserName == aas.UserName);
if (aas.IsValid == user.IsValid && aas.PlaintextPwd == user.PlaintextPwd)
{
Logs.WriteLog("查询外箱码信息,操作人是:" + aas.UserName);
try
{
result = OTApi.WxBoxnumber(goodid, dingdan);
if (result != null && result.Status == 200)
{
result.Status = 200;
result.Message = "请求成功。。。。";
}
else if (result.Status == 400)
{
result.Status = 400;
result.Message = "数量已经预订单匹配上了,可以休息一下";
}
else if (result.Status == 300)
{
result.Status = 300;
result.Message = "您扫的码没有匹配到相应的数据请重新扫码";
result.nums = 0;
}
}
catch (Exception ex)
{
Logs.WriteLog("请检查查询外箱码信息的Error:" + ex);
result.Status = 500;
result.Message = "服务器错误";
result.Data = null;
}
}
else
{
result.Status = 100;
}
}
else
{
Logs.WriteLog("token丢失,需要要重新登录!");
result.Status = 401;
result.Message = "服务器错误";
result.Data = null;
}
return Json(result);
}
///
/// 根据彩合信息查询物品经过了多少站
///
/// 彩盒ID
///
///
[HttpPost]
public ActionResult CHBYT(string CHID = "", string token = "")
{
var result = new ReturnResult();
// 检查Token值是否存在
string aa = TokenHelper.CheckToken(token);
if (aa != null)
{
TBL_UTS_Manage_User aas = JsonConvert.DeserializeObject(aa);
Logs.WriteLog("查询彩盒码信息,操作人是:" + aas.UserName);
try
{
result = OTApi.CHBYTs(CHID);
if (result != null)
{
result.Status = 200;
result.Message = "请求成功。。。。";
}
}
catch (Exception ex)
{
Logs.WriteLog("请检查查询彩盒码信息的Error:" + ex);
result.Status = 500;
result.Message = "服务器错误";
result.Data = null;
}
}
else
{
Logs.WriteLog("token丢失,需要要重新登录!");
result.Status = 401;
result.Message = "服务器错误";
result.Data = null;
}
return Json(result);
}
///
/// 根据订单号码查询订单信息
///
///
///
///
[HttpPost]
public ActionResult QrderInformation(string ShippingCode = "", string token = "", int sqlid = 0)
{
var result = new ReturnResult();
// 检查Token值是否存在
string aa = TokenHelper.CheckToken(token);
if (aa != null)
{
try
{
TBL_UTS_Manage_User aas = JsonConvert.DeserializeObject(aa);
Logs.WriteLog("页面数据更新,操作人是:" + aas.UserName);
if (sqlid == 7)
{
result = OTApi.GetQrderInformationByShippingCode(ShippingCode);
}
else if (sqlid == 2)
{
result = OTApi.GetQrderInformationByShippingCode1(ShippingCode);
}
}
catch (Exception ex)
{
result.Status = 401;
result.Message = "页面数据更新失败";
Logs.WriteLog("页面数据更新,操作人是:" + ex);
}
}
else
{
Logs.WriteLog("token丢失,需要要重新登录!");
result.Status = 401;
result.Message = "服务器错误";
result.Data = null;
}
return Json(result);
}
///
/// 绑定
///
///
///
///
///
[HttpPost]
public ActionResult AddAdds(string ShippingCode = "", string outid = "", string token = "", int sqlid = 0)
{
string aa = TokenHelper.CheckToken(token);
jsonapi result = new jsonapi();
if (aa != null)
{
try
{
TBL_UTS_Manage_User aas = JsonConvert.DeserializeObject(aa);
Logs.WriteLog("绑定,操作人是:" + aas.UserName);
if (sqlid == 7)
{
result = OTApi.Add2(ShippingCode, outid, aas.UserName);
}
else if (sqlid == 2)
{
result = OTApi.Add3(ShippingCode, outid, aas.UserName);
}
}
catch (Exception ex)
{
result.Message = "绑定失败";
Logs.WriteLog("绑定,操作人是:" + ex);
}
}
else
{
Logs.WriteLog("token丢失,需要要重新登录!");
}
return Json(result);
}
///
/// 外箱码和订单解绑
///
/// 订单编号
/// 外箱信息
///
///
[HttpPost]
public ActionResult EditEdit(string ShippingCode = "", string OutBoxCodeList = null, string token = "", int sqlid = 0)
{
jsonapi retList = new jsonapi();
// 检查Token值是否存在
string aa = TokenHelper.CheckToken(token);
if (aa != null)
{
TBL_UTS_Manage_User aas = JsonConvert.DeserializeObject(aa);
Logs.WriteLog("外箱码和订单解绑,操作人是:" + aas.UserName);
try
{
if (sqlid == 7)
{
retList = OTApi.Edit(ShippingCode, OutBoxCodeList, aas.UserName);
}
else if (sqlid == 2)
{
retList = OTApi.Edit1(ShippingCode, OutBoxCodeList, aas.UserName);
}
}
catch (Exception ex)
{
retList.Message = "外箱码和订单解绑失败";
Logs.WriteLog("外箱码和订单解绑:" + ex);
}
}
else
{
retList.Message = "token丢失,需要要重新登录!";
Logs.WriteLog("token丢失,需要要重新登录!");
}
return Json(retList);
}
///
/// 查询彩盒信息
///
/// 外箱码
///
///
[HttpPost]
public ActionResult GetoutIDbyID(string outCode = "", string token = "")
{
var result = new ReturnResult();
// 检查Token值是否存在
string aa = TokenHelper.CheckToken(token);
TBL_UTS_Manage_User aas = JsonConvert.DeserializeObject(TokenHelper.CheckToken(token));
if (aa != null)
{
TBL_UTS_Manage_User user = SqlSugarBase.Db.Queryable().First(x => x.UserName == aas.UserName);
if (aas.IsValid == user.IsValid && aas.PlaintextPwd == user.PlaintextPwd)
{
Logs.WriteLog("查询彩盒信息,操作人是:" + aas.UserName);
try
{
result = OTApi.GetoutIDbyIDs(outCode);
if (result != null && result.Status == 200)
{
result.Status = 200;
result.Message = "请求成功。。。。";
}
else if (result.Status == 400)
{
result.Status = 400;
result.Message = "数据不完整,请扫码后点击添加";
}
}
catch (Exception ex)
{
Logs.WriteLog("外箱码和订单解绑:" + ex);
result.Status = 500;
result.Message = "服务器错误";
result.Data = null;
}
}
else
{
result.Status = 100;
}
}
else
{
Logs.WriteLog("token丢失,需要要重新登录!");
result.Status = 401;
result.Message = "服务器错误";
result.Data = null;
}
return Json(result);
}
///
/// 将用户的openid写入数据库
///
/// 用户名称
/// 用户的openid
///
[HttpPost]
public ActionResult AddTelAndopenId(string Uid = "", string openid = "")
{
var result = new ReturnResult();
Logs.WriteLog("将用户的openid写入数据库");
try
{
result = OTApi.AddTelAndopenId(Uid, openid);
if (result != null && result.Status == 200)
{
result.Status = 200;
result.Message = "请求成功。。。。";
}
else if (result.Status == 400)
{
result.Status = 400;
result.Message = "你的微信号码已经绑定了,请换一个微信来注册";
}
else
{
result.Status = 300;
result.Message = "这个账号被绑定了";
}
}
catch (Exception ex)
{
Logs.WriteLog("数据库写入用户的openID的Error:" + ex);
result.Status = 500;
result.Message = "服务器错误";
result.Data = null;
}
return Json(result);
}
///
/// 结单
///
/// 订单号
///
///
[HttpPost]
public ActionResult SettleTheBill(string ShippingCode = "", string token = "", int sqlid = 0)
{
var result = new ReturnResult();
// 检查Token值是否存在
try
{
string aa = TokenHelper.CheckToken(token);
if (aa != null)
{
TBL_UTS_Manage_User aas = JsonConvert.DeserializeObject(aa);
TBL_UTS_Manage_User user = SqlSugarBase.Db.Queryable().First(x => x.UserName == aas.UserName);
if (aas.IsValid == user.IsValid && aas.PlaintextPwd == user.PlaintextPwd)
{
Logs.WriteLog("结单,操作人是:" + aas.UserName);
try
{
if (sqlid == 7)
{
result = OTApi.SettleTheBills(ShippingCode, aas.UserName);
}
else if (sqlid == 2)
{
result = OTApi.SettleTheBills1(ShippingCode, aas.UserName);
}
if (result.Status == 200)
{
result.Status = 200;
result.Message = "请求成功。。。。";
Logs.WriteLog("结单" + result.Message);
}
else
{
result.Status = 212;
Logs.WriteLog("结单" + result.Message);
}
}
catch (Exception ex)
{
Logs.WriteLog("结单Error:" + ex);
result.Status = 500;
result.Message = "服务器错误";
result.Data = null;
}
}
else
{
result.Status = 100;
}
}
else
{
Logs.WriteLog("token丢失,需要要重新登录!");
result.Status = 401;
result.Message = "服务器错误";
result.Data = null;
}
}
catch (Exception ex)
{
Logs.WriteLog("结单Error:" + ex);
result.Status = 500;
result.Message = "服务器错误";
result.Data = null;
}
return Json(result);
}
///
/// 查看日志
///
///
///
[HttpPost]
public ActionResult ShowLog(string starttime, string endtime, string ShippingCode = "", string Outcode = "", int czuo = 3, int jixing = 0, string token = "", int sqlid = 0)
{
var result = new ReturnResult();
try
{
string aa = TokenHelper.CheckToken(token);
if (aa != null)
{
TBL_UTS_Manage_User aas = JsonConvert.DeserializeObject(aa);
if (sqlid == 7)
{
result = OTApi.Viewlog(starttime, endtime, ShippingCode, Outcode, czuo, jixing);
}
else
{
result = OTApi.Viewlog1(starttime, endtime, ShippingCode, Outcode, czuo, jixing);
}
}
else
{
Logs.WriteLog("token丢失,需要要重新登录!");
result.Status = 401;
result.Message = "服务器错误";
result.Data = null;
}
}
catch (Exception)
{
throw;
}
// 检查Token值是否存在
return Json(result);
}
///
/// 添加方法
///
///
///
///
public ActionResult Addimgage(string filePath, string name)
{
var result = new ReturnResult();
try
{
if (!string.IsNullOrEmpty(filePath))
{
}
}
catch (Exception ex)
{
LogHelp.WriteExceptionLog(ex);
}
return Json(result);
}
///
/// 已结单后有权限的人修改状态
///
///
///
///
public ActionResult Eentstatus(string ShippingCodes, string token, int sqlid = 0)
{
var result = new ReturnResult();
try
{
string aa = TokenHelper.CheckToken(token);
if (aa != null)
{
TBL_UTS_Manage_User aas = JsonConvert.DeserializeObject(aa);
TBL_UTS_Manage_User user = SqlSugarBase.Db.Queryable().First(x => x.UserName == aas.UserName);
if (aas.IsValid == user.IsValid && aas.PlaintextPwd == user.PlaintextPwd)
{
Logs.WriteLog("已结单后有权限的人修改状态,操作人是:" + aas.UserName);
try
{
if (sqlid == 7)
{
result = OTApi.Eentstatus(ShippingCodes, aas.UserName);
}
else
{
result = OTApi.Eentstatus1(ShippingCodes, aas.UserName);
}
if (result.Status == 200)
{
result.Status = 200;
result.Message = "请求成功。。。。";
Logs.WriteLog("已结单后有权限的人修改状态" + result.Message);
}
}
catch (Exception ex)
{
Logs.WriteLog("已结单后有权限的人修改状态:" + ex);
result.Status = 500;
result.Message = "服务器错误";
result.Data = null;
}
}
else
{
result.Message = "你的账号没有激活";
result.Status = 100;
}
}
else
{
Logs.WriteLog("token丢失,需要要重新登录!");
result.Status = 401;
result.Message = "服务器错误";
result.Data = null;
}
}
catch (Exception ex)
{
Logs.WriteLog("结单Error:" + ex);
result.Status = 500;
result.Message = "服务器错误";
result.Data = null;
}
return Json(result);
}
///
/// 搜索权限
///
///
///
///
[HttpPost]
public ActionResult Shuruusernamebyquanxian(string Uid)
{
TBL_UTS_Manage_User unameid = SqlSugarBase.Db.Queryable().First(x => x.UserName == Uid);
if (unameid==null)
{
return Json("on");
}
List qx = SqlSugarBase.Db.Queryable().GroupBy(x=>x.DatabaseID).Where(x => x.UserID == unameid.ID && (x.DatabaseName== "uts_ZongQing" ||x.DatabaseName== "uts_johao")).ToList();
List asg = new List();
foreach (var item in qx)
{
ProbjectType tBL_Project = new ProbjectType();
tBL_Project.text = item.DatabaseName;
tBL_Project.value = item.DatabaseID;
asg.Add(tBL_Project);
}
return Json(asg);
}
}
}