You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

554 lines
18 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.Services;
using TradeData;
using NetLibrary.Data;
using System.Data;
using TradeModel;
using NetLibrary.ReportPrint;
using NetLibrary;
using NetLibrary.Express;
using System.Text.RegularExpressions;
using NetLibrary.OnlineTrade;
using System.Web.Script.Serialization;
using System.Text;
using NetLibrary.Log;
using System.Threading;
using ApiNew;
using PdfiumViewer;
using System.Drawing.Imaging;
namespace TradeManageNew.EBOOK
{
/// <summary>
/// EBookService 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。
[System.Web.Script.Services.ScriptService]
public class EBookService : System.Web.Services.WebService
{
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
[WebMethod(EnableSession = true)]
public string GetImg(string umgbase)
{
// Pages.Login(this.Session);
string strbase64 = umgbase.Substring(umgbase.IndexOf(',') + 1);
strbase64 = strbase64.Trim('\0');
var gg = new Guid();
string imgUrl = "attached/ebook/" + Guid.NewGuid().ToString().Substring(0, 20) + ".jpg";
Base64ToImage(strbase64, imgUrl);
// var imgUrl = "https://winwoo-file.oss-cn-hangzhou.aliyuncs.com/" + name;
// Product.AliyunOSSAPI.UploadFile(name, strbase64);
return "../"+imgUrl;
}
/// <summary>
/// base64 转 Image
/// </summary>
/// <param name="base64"></param>
public static void Base64ToImage(string base64,string url)
{
base64 = base64.Replace("data:image/png;base64,", "").Replace("data:image/jgp;base64,", "").Replace("data:image/jpg;base64,", "").Replace("data:image/jpeg;base64,", "");//将base64头部信息替换
byte[] bytes = Convert.FromBase64String(base64);
MemoryStream memStream = new MemoryStream(bytes);
Image mImage = Image.FromStream(memStream);
string iurl= System.AppDomain.CurrentDomain.BaseDirectory + url;
mImage.Save(iurl, System.Drawing.Imaging.ImageFormat.Jpeg);//注意保存路径
//Bitmap bp = new Bitmap(mImage);
//bp.Save("D:/资源/" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg);//注意保存路径
}
#region 保存
[WebMethod(EnableSession = true)]
public int Save_BooksImg(E_BookList model, List<E_BookPages> list2, List<E_BookPopedom> rolelist)
{
PagesNew.Login(this.Session);
if(model.id==0)
{
model.indate = DateTime.Now;
model.inname = Session["Name"].ToString();
}
if (list2 != null && list2.Count > 0)
{
model.fristimg = list2[0].pageimg;
model.pages = list2.Count;
}
// model.isuse = 1;
int id=EBookData.Save_BookList(model);
if (model.imgedit == 1)
{
EBookData.Delete_BookPagesAll(id,1);
if (list2 != null)
{
foreach (var md in list2)
{
md.id = 0;
md.bookid = id;
EBookData.Save_BookPages(md);
}
}
}
EBookData.DeleteBookPopedom(id);
if (rolelist != null&& model.popedom==1)
{
foreach (var md in rolelist)
{
md.bookid = id;
md.popedom = 1;
EBookData.Save_BookPopedom(md);
}
}
return 1;
}
#endregion
#region 保存
[WebMethod(EnableSession = true)]
public int Save_BooksImgPrice(E_BookList model, List<E_BookPages> list2)
{
PagesNew.Login(this.Session);
if (model.id == 0)
{
model.indate = DateTime.Now;
model.inname = Session["Name"].ToString();
}
//if (list2 != null && list2.Count > 0)
//{
// model.fristimg = list2[0].pageimg;
// model.pages = list2.Count;
//}
// model.isuse = 1;
int id = model.id.Value;// EBookData.Save_BookList(model);
EBookData.Delete_BookPagesAll(id,2);
if (list2 != null)
{
foreach (var md in list2)
{
md.id = 0;
md.bookid = id;
EBookData.Save_BookPages(md);
}
}
return 1;
}
#endregion
#region 分页查询书本
[WebMethod(EnableSession = true)]
public JsonModel<List<E_BookList>> GetListBookList(string name, string sortname,string gcname,string gccs,string gcxz, int PageIndex, int PageSize)
{
PagesNew.Login(this.Session);
if (sortname.Trim()== "")
sortname = "";
string where = "where isuse=1";
if (name != "")
where += " and bookname like '%" + name + "%' ";// + where.Substring(4);
if (sortname != "")
where += " and type_name like '%" + sortname + "%' ";
if (gcname != "")
where += " and type_name3 like '%" + gcname + "%' ";
var resultModel = new JsonModel<List<E_BookList>>();
int RowCount = 0;
resultModel.DataSource = EBookData.GetListBookList(where, PageIndex, PageSize, sortname, out RowCount);
resultModel.RowCount = RowCount;
return resultModel;
}
#endregion
#region 分页查询书本
[WebMethod(EnableSession = true)]
public JsonModel<List<E_BookList>> GetListBookMyList(string name, string sortname, string gcname, string gccs, string gcxz, int PageIndex, int PageSize)
{
PagesNew.Login(this.Session);
int UserId = Convert.ToInt32(Session["UserId"]);
string where = "where isuse=1";
if (name != "")
where += " and bookname like '%" + name + "%' ";// + where.Substring(4);
if (sortname != "-1")
where += " and type_name='" + sortname + "' ";
if (gcname != "-1")
where += " and type_name3='" + gcname + "' ";
if (gccs != "-1")
where += " and type_name4='" + gccs + "' ";
if (gcxz != "-1")
where += " and type_name5='" + gcxz + "' ";
var resultModel = new JsonModel<List<E_BookList>>();
int RowCount = 0;
resultModel.DataSource = EBookData.GetListMyBookList(where, UserId,PageIndex, PageSize, "sort,indate desc", out RowCount);
resultModel.RowCount = RowCount;
return resultModel;
}
#endregion
#region 分页查询书本
[WebMethod(EnableSession = true)]
public JsonModel<List<E_BookList>> GetListOutBookList(string code, int PageIndex, int PageSize)
{
// PagesNew.Login(this.Session);
// int UserId = Convert.ToInt32(Session["UserId"]);
string where = "where isuse=1";
var resultModel = new JsonModel<List<E_BookList>>();
int RowCount = 0;
resultModel.DataSource = EBookData.GetListOutBookList(where, code, PageIndex, PageSize, "sort", out RowCount);
resultModel.RowCount = RowCount;
return resultModel;
}
#endregion
#region 删除
[WebMethod(EnableSession = true)]
public bool Delete_BookList(int id)
{
PagesNew.Login(this.Session);
EBookData.Delete_BookList(id);
return true;
}
#endregion
#region 删除
[WebMethod(EnableSession = true)]
public bool Delete_BookPages(List<E_BookPages> plist)
{
PagesNew.Login(this.Session);
foreach (var md in plist)
{
EBookData.Delete_BookPages(md.id.Value);
}
return true;
}
#endregion
#region 返回Model
[WebMethod(EnableSession = true)]
public E_BookList GetModel_Book(int id)
{
PagesNew.Login(this.Session);
var Model = EBookData.GetModel_Book(id);
return Model;
}
#endregion
#region 普通查询列表
[WebMethod(EnableSession = true)]
public List<E_BookPages> GetListBookPages(int BookId)
{
PagesNew.Login(this.Session);
var ListModel = EBookData.GetListBookPages(BookId,1);
return ListModel;
}
#endregion
#region 普通查询列表
[WebMethod(EnableSession = true)]
public List<E_BookPages> GetListBookPagesPrice(int BookId)
{
PagesNew.Login(this.Session);
var ListModel = EBookData.GetListBookPages(BookId, 2);
return ListModel;
}
#endregion
#region 普通查询列表
[WebMethod(EnableSession = true)]
public List<E_BookPages> GetListBookPages2(string gocode)
{
// PagesNew.Login(this.Session);
var ListModel = EBookData.GetListBookPages2(gocode);
return ListModel;
}
#endregion
#region 普通查询列表
[WebMethod(EnableSession = true)]
public List<E_BookPages> GetListBookPagesInfo(string gocode,int type)
{
//PagesNew.Login(this.Session);
var ListModel = EBookData.GetListBookPagesImgs(gocode, type);
return ListModel;
}
#endregion
#region 普通查询列表
[WebMethod(EnableSession = true)]
public List<E_BookPages> GetListPDFImg(string url)
{
try
{
PagesNew.Login(this.Session);
if (Session["IsPdf"].ToString() == "1")
{
return null;
}
string ph = AppDomain.CurrentDomain.BaseDirectory + url;
string dd = DateTime.Today.ToString("yyyyMMdd");
string wph = AppDomain.CurrentDomain.BaseDirectory + "attached/ebook/"+ dd;
if (Directory.Exists(wph) == false) Directory.CreateDirectory(wph);
string oph = AppDomain.CurrentDomain.BaseDirectory + "attached/ebook/" + dd;
Session["IsPdf"] = "1";
var list = PDFConvertTo(ph, oph,dd, ImageFormat.Jpeg);
Session["IsPdf"] ="0";
return list;
}
catch (Exception ex)
{
ErrorFollow.TraceWrite("GetListPDFImg", "",ex.Message);
Session["IsPdf"] = "0";
return null;
}
}
#endregion
/// <summary>
/// 根据传入参数直接转换
/// </summary>
/// <param name="inFilePath">入参示例E:\\download\\1111.pdf</param>
/// <param name="outFilePath">入参示例E:\\download</param>
/// <param name="format">入参示例Jpeg 转换后文件格式JpegPng等</param>
public static List<E_BookPages> PDFConvertTo(string inFilePath, string outFilePath,string dd, ImageFormat format)
{
try
{
List<E_BookPages> plist = new List<E_BookPages>();
string fname = DateTime.Now.ToString("yyyyMMdd-HHmmss");
outFilePath = $"{outFilePath}\\{fname}";
using (var document = PdfDocument.Load(inFilePath))
{
var pageCount = document.PageCount;
for (int i = 0; i < pageCount; i++)
{
string s = (i + 1).ToString(); ;
string outFile = $"{outFilePath}({s}).{"jpg"}";
var dpi = 300;
using (var image = document.Render(i, dpi, dpi, PdfRenderFlags.CorrectFromDpi))
{
var encoder = ImageCodecInfo.GetImageEncoders()
.First(c => c.FormatID == format.Guid);
var encParams = new EncoderParameters(1);
encParams.Param[0] = new EncoderParameter(
System.Drawing.Imaging.Encoder.Quality, 10L);
image.Save(outFile, encoder, encParams);
E_BookPages emd = new E_BookPages();
emd.pageimg = "../attached/ebook/" + dd + "/" + fname + "(" + s + ").jpg";
plist.Add(emd);
}
}
}
return plist;
}
catch (Exception ex)
{
return null;
}
}
#region JC_BaseCodeDetail页
#region 保存
[WebMethod(EnableSession = true)]
public int Save_BaseCodeDetail(JC_BaseCodeDetailNew Model)
{
PagesNew.Login(this.Session);
return DataNew.Save_BaseCodeDetail(Model);
}
#endregion
#region 删除
[WebMethod(EnableSession = true)]
public bool Delete_BaseCodeDetail(int Code)
{
PagesNew.Login(this.Session);
DataNew.Delete_BaseCodeDetail(Code);
return true;
}
#endregion
#region 是否重复判断
[WebMethod(EnableSession = true)]
public bool CheckName_BaseCodeDetail(int Code, string Name)
{
PagesNew.Login(this.Session);
return DataNew.CheckName_BaseCodeDetail(Code, Name);
}
#endregion
#region 普通查询列表
[WebMethod(EnableSession = true)]
public List<JC_BaseCodeDetailNew> GetListBaseCodeDetail3(string keyname)
{
PagesNew.Login(this.Session);
var ListModel = DataNew.GetListBaseCodeDetail(keyname);
return ListModel;
}
#endregion
#region 分页查询
[WebMethod(EnableSession = true)]
public JsonModel<List<JC_BaseCodeDetailNew>> GetListBaseCodeDetail(string cs, int PageIndex, int PageSize)
{
PagesNew.Login(this.Session);
string where = CustomIO.Base64StringToString(cs);
if (where != "") where = "where " + where.Substring(4);
var resultModel = new JsonModel<List<JC_BaseCodeDetailNew>>();
int RowCount = 0;
resultModel.DataSource = DataNew.GetListBaseCodeDetail(where, PageIndex, PageSize, "", out RowCount);
resultModel.RowCount = RowCount;
return resultModel;
}
#endregion
#endregion
#region 多角色权限
[WebMethod(EnableSession = true)]
public List<E_BookPopedom> GetListBookPopedom2(int bookid)
{
PagesNew.Login(this.Session);
RefParameterCollection where = new RefParameterCollection();
var ListModel = EBookData.GetListJC_RoleInfo();
var list = EBookData.GetListBookPopedom(bookid);
List<E_BookPopedom> slist = new List<E_BookPopedom>();
if (ListModel != null)
{
foreach(var md in ListModel)
{
E_BookPopedom smd = new E_BookPopedom();
smd.roleid = md.RoleID;
smd.rolename = md.RoleName;
if (list != null)
{
var sssmd = list.Find(n => n.roleid == md.RoleID);
if (sssmd != null)
{
smd.ischeck = 1;
}
else
smd.ischeck = 0;
}
slist.Add(smd);
}
}
return slist;
}
#endregion
#region 保存
[WebMethod(EnableSession = true)]
public int Save_BookPopedom(List<E_BookPopedom> list)
{
PagesNew.Login(this.Session);
foreach (var md in list)
{
EBookData.Save_BookPopedom(md);
}
return 1;
}
#endregion
#region 保存外链
[WebMethod(EnableSession = true)]
public string Save_BookWebLink(List<E_BookList> list)
{
PagesNew.Login(this.Session);
string code= Guid.NewGuid().ToString();
foreach (var md in list)
{
E_BookPopedom smd = new E_BookPopedom();
smd.bookid = md.id;
smd.roleid = 0;
smd.popedom = 1;
smd.Code = code;
EBookData.Save_BookPopedom(smd);
}
return code;
}
#endregion
#region 工厂
[WebMethod(EnableSession = true)]
public List<E_BookList> GetListGC()
{
PagesNew.Login(this.Session);
var ListModel = EBookData.GetListGC();
return ListModel;
}
#endregion
#region 产地
[WebMethod(EnableSession = true)]
public List<E_BookList> GetListCD()
{
PagesNew.Login(this.Session);
var ListModel = EBookData.GetListCD();
return ListModel;
}
#endregion
#region 分类
[WebMethod(EnableSession = true)]
public List<E_BookList> GetListFL()
{
PagesNew.Login(this.Session);
var ListModel = EBookData.GetListFL();
return ListModel;
}
#endregion
#region 工厂性质
[WebMethod(EnableSession = true)]
public List<E_BookList> GetListGCXZ()
{
PagesNew.Login(this.Session);
var ListModel = EBookData.GetListGCXZ();
return ListModel;
}
#endregion
}
}