TG.WXCRM.V4/CRMServices/Level2/L2SoftOrder.cs

671 lines
23 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Text;
using WX.CRM.BLL.Util;
using WX.CRM.Common;
using WX.CRM.IBLL.Util;
namespace WX.CRM.CRMServices.Level2
{
#region L2接口Json序列化数据
/// <summary>
/// L2订单信息
/// </summary>
[Serializable]
public class Soft_OrderDetail
{
[DisplayName("订单号:")]
public decimal ORDERID { get; set; }//模块id
[DisplayName("子类产品id:")]
public decimal PRODUCTID { get; set; }//子类产品Id
[DisplayName("子类代码:")]
public string PRODUCTCODE { get; set; }//子类代码
[DisplayName("大类代码:")]
public string BIGPRODUCTCODE { get; set; }//大类代码
[DisplayName("渠道:")]
public string CHANNEL { get; set; }//渠道
[DisplayName("客户ID:")]
public string L2RESID { get; set; }//客户ID
[DisplayName("套数:")]
public Nullable<decimal> BOOKNUM { get; set; }//套数
[DisplayName("开通天数:")]
public decimal TOTALDAYS { get; set; }//开通天数
[DisplayName("总金额:")]
public decimal TOTALPRICE { get; set; }//总金额
[DisplayName("手机App用户名:")]
public string USERNAME { get; set; }//手机app用户名
[DisplayName("pc用户名:")]
public string PcUserName { get; set; }//Pc用户名
[DisplayName("订单状态:")]
public decimal ORDERSTATUS { get; set; }//订单状态 :新订单180、已开通220、已取消70
public decimal ORDERSOURCE { get; set; }//订单来源1营业部座席订单、2网站接口订单
public string OPENUSER { get; set; }//开通用户(网上支付开通传用户名,营业部手工开通传营业部编码-工号)
[DisplayName("开通时间:")]
public Nullable<System.DateTime> OTIME { get; set; }//开通时间
public Nullable<decimal> OPENTYPE { get; set; }//开通方式1营业部客服工通、2网上支付开通
public string CANCELUSER { get; set; }//撤销用户(营业部编码-工号)
public Nullable<System.DateTime> CANCELTIME { get; set; }//撤销时间
public Nullable<decimal> COMPANYID { get; set; }//归属公司(用户所属营业部)
public string CREATEUSER { get; set; }//创建用户
public System.DateTime CTIME { get; set; }//创建时间
[DisplayName("支付状态:")]
public Nullable<short> ISPAYED { get; set; }//支付状态
[DisplayName("开通状态:")]
public Nullable<short> ISOPEN { get; set; }//开通状态
public Nullable<short> ISREFUND { get; set; }//退款状态
public List<Soft_OrderModule> orderModule { get; set; }
public List<Soft_OtderExtend> orderExt { get; set; }
public List<Soft_OrderWebPay> orderWebPay { get; set; }
}
/// <summary>
/// L2订单模块
/// </summary>
[Serializable]
public class Soft_OrderModule
{
public decimal MODULEID { get; set; }//模块id
}
public class Soft_OrderSt
{
public string PayDate { get; set; }
/// <summary>
/// 产品大类Code
/// </summary>
public string ProductCode { get; set; }
public string ProductName { get; set; }
public decimal RegCampainid { get; set; }
public decimal CountOrder { get; set; }
public decimal SumPaytotal { get; set; }
}
/// <summary>
/// L2订单支付
/// </summary>
[Serializable]
public class Soft_OrderWebPay
{
public string WEBPAYID { get; set; }//支付流水号
public decimal PAYTYPE { get; set; }//支付方式
public decimal PAYTOTAL { get; set; }//支付金额
}
[Serializable]
public class Soft_OtderExtend
{
public string USERCAMPAINID { get; set; }//用户的注册渠道
public string RESOURCETAG { get; set; }//引导下单的活动标签
public string FULLNAME { get; set; }//用户姓名
public string MOBILE { get; set; }//联系手机
public string CARDID { get; set; }//用户身份证
public string EMAIL { get; set; }//用户邮箱
public string ADDRESS { get; set; }//用户地址
public string MEMO { get; set; }//订单备注
public string IP { get; set; }//IP
}
/// <summary>
/// 支付列表
/// </summary>
public class Soft_OrderWebPayList
{
public decimal ORDERID { get; set; }
public string USERNAME { get; set; }
public decimal? RegCampainid { get; set; }
public string PcUserName { get; set; }//Pc用户名
public string PRODUCTCODE { get; set; }
public string BIGPRODUCTCODE { get; set; }
public string WEBPAYID { get; set; }
public decimal PAYTOTAL { get; set; }
public decimal PAYTYPE { get; set; }
public string PAYMEMO { get; set; }
public System.DateTime CTIME { get; set; }
}
#endregion
#region L2接口参数
#region
public class SOFT_USERHTDATA
{
public decimal PKID { get; set; }
public string USERNAME { get; set; }
public Nullable<System.DateTime> CTIME { get; set; }
}
/// <summary>
/// 修改互踢的model
/// </summary>
public class HtModel
{
[DisplayName("用户名:")]
[Required(ErrorMessage = "用户名不能为空")]
public string userName { get; set; }
[DisplayName("是否禁止互踢:")]
public string u { get; set; }
}
/// <summary>
/// 互踢modlelist
/// </summary>
public class GetHtModelList
{
public string username { get; set; }
public int pageIndex { get; set; }
public int pageSize { get; set; }
}
/// <summary>
/// 用户互踢getHtList
/// </summary>
public class Soft_CRMUserKickedModel
{
public int pageIndex { get; private set; }
public int pageSize { get; private set; }
public string username { get; private set; }
public Soft_CRMUserKickedModel(string username, int pageIndex, int pageSize)
{
this.username = username;
this.pageIndex = pageIndex;
this.pageSize = pageSize;
}
/// <summary>
/// 获取接用户是否禁止互踢的列表
/// </summary>
/// <param name="msg"></param>
/// <param name="total"></param>
/// <returns></returns>
public List<SOFT_USERHTDATA> GetHtList(out string msg, out int total, string apllay = "getHtList")
{
msg = "";
total = 0;
GetHtModelList htmodel = new GetHtModelList();
htmodel.username = this.username;
htmodel.pageIndex = this.pageIndex;
htmodel.pageSize = this.pageSize;
returnResult result = getResult(apllay, htmodel);
List<SOFT_USERHTDATA> _orderDetail = new List<SOFT_USERHTDATA>();
if (result.result)
{
total = result.total;
_orderDetail = Utility.JSONToObject<List<SOFT_USERHTDATA>>(result.retMessage);
}
else
{
msg = "接口数据:" + result.retMessage;
}
return _orderDetail;
}
private returnResult getResult(string apllay, GetHtModelList Htmodel)
{
string json = Utility.ObjectToJsonAndConvertTime<GetHtModelList>(Htmodel);
string url = Utility.GetSettingByKey("L2Order") + apllay;
ISecurityHelper sHelper = new SecurityHelper();
string key = sHelper.createSignEncodingStr(json);
string response = Utility.PostData(url + "?" + key, Encoding.UTF8);
string _retmsg = sHelper.decyptData("UPWEBSITE", response);
returnResult result = Utility.JSONToObject<returnResult>(_retmsg);
return result;
}
}
/// <summary>
/// 修改互踢 modHt
/// </summary>
public class Soft_CRMOperationKickedmodel
{
public bool UpdateHt(HtModel model)
{
returnResult result = UpdateHtResult(model);
return result.result;
}
/// <summary>
/// 修改互踢
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
private returnResult UpdateHtResult(HtModel model, string apllay = "modHt")
{
string json = Utility.ConvertToJSON<HtModel>(model);
string url = Utility.GetSettingByKey("L2Order") + apllay;
ISecurityHelper sHelper = new SecurityHelper();
string key = sHelper.createSignEncodingStr(json);
string response = Utility.PostData(url + "?" + key, Encoding.UTF8);
string _retmsg = sHelper.decyptData("UPWEBSITE", response);
returnResult result = Utility.JSONToObject<returnResult>(_retmsg);
return result;
}
}
#endregion
#region
public class CrmRetPass
{
public string UserName { get; set; }
public string mobile { get; set; }
}
public class Soft_CRMRetPwd
{
public returnResult Retpaw(string uname, string mobile)
{
CrmRetPass rp = new CrmRetPass();
rp.UserName = uname;
rp.mobile = mobile;
return UpdateRPResult(rp);
}
private returnResult UpdateRPResult(CrmRetPass rp)
{
string json = Utility.ConvertToJSON<CrmRetPass>(rp);
string url = Utility.GetSettingByKey("jrzdCrmRetpwd");
ISecurityHelper sHelper = new SecurityHelper();
string key = sHelper.createSignEncodingStr2(json);
string response = Utility.PostData(url + "?" + key, Encoding.UTF8);
string _retmsg = sHelper.decyptData("UPWEBSITE", response);
returnResult result = Utility.JSONToObject<returnResult>(_retmsg);
return result;
}
}
#endregion
/// <summary>
/// 退款申请
/// </summary>
[Serializable]
public class Soft_RefundOrder
{
[Required(ErrorMessage = "订单号不能为空")]
public string org_orderid { get; set; }
[Required(ErrorMessage = "用户名不能为空")]
public string org_username { get; set; }
}
/// <summary>
/// 获取订单信息
/// </summary>
public class Soft_CRMOrderModel
{
public int pageIndex { get; private set; }
public int pageSize { get; private set; }
public decimal companyId { get; private set; }
public string bigproductCode { get; private set; }
public string productCode { get; private set; }
public string username { get; private set; }
public decimal orderid { get; private set; }
public Nullable<decimal> isOpen { get; private set; }
public Nullable<DateTime> stime { get; private set; }
public Nullable<DateTime> etime { get; private set; }
public Nullable<DateTime> openstime { get; private set; }
public Nullable<DateTime> openetime { get; private set; }
public string resid { get; private set; }
public string payno { get; private set; }
//注册渠道号
public decimal? regCampainid { get; set; }
public Soft_CRMOrderModel(string orderid)
: this(orderid, "")
{
}
public Soft_CRMOrderModel(string orderid, string username)
: this(orderid, username, 1, 1000)
{
}
public Soft_CRMOrderModel(string orderid, string username, int pageindex, int pagesize)
: this("", "", "", username, orderid, "", "", "", "", "", "", pageindex, pagesize)
{
}
public Soft_CRMOrderModel(string payno, bool ispay)
: this("", "", "", "", "", "", "", "", "", "", "", payno, 1, 1000)
{
}
public Soft_CRMOrderModel(string comanyId,
string bigproductCode,
string productCode,
string username,
string orderid,
string isOpen,
string stime,
string etime,
string openstime,
string openetime,
string resid,
int pageIndex, int pageSize)
: this(comanyId, bigproductCode, productCode, username, orderid, isOpen, stime, etime, openstime, openetime, resid, "", pageIndex, pageSize)
{ }
public Soft_CRMOrderModel(string bigproductCode,
string stime,
string etime,
decimal? regCampainid,
int pageIndex, int pageSize)
: this("", bigproductCode, "", "", "", "", stime, etime, "", "", "", "", regCampainid, pageIndex, pageSize)
{ }
public Soft_CRMOrderModel(string comanyId,
string bigproductCode,
string productCode,
string username,
string orderid,
string isOpen,
string stime,
string etime,
string openstime,
string openetime,
string resid,
string payno,
int pageIndex, int pageSize)
: this(comanyId, bigproductCode, productCode, username, orderid, isOpen, stime, etime, openstime, openetime, resid, "", null, pageIndex, pageSize)
{ }
public Soft_CRMOrderModel(string comanyId,
string bigproductCode,
string productCode,
string username,
string orderid,
string isOpen,
string stime,
string etime,
string openstime,
string openetime,
string resid,
string payno,
decimal? regCampainid,
int pageIndex, int pageSize)
{
this.companyId = comanyId.GetDecimal(0);
this.bigproductCode = bigproductCode;
this.productCode = productCode;
this.username = username;
this.orderid = orderid.GetDecimal(0);
this.isOpen = isOpen.GetDecimal();
this.stime = stime.GetDateTime();
this.etime = etime.GetDateTime();
this.openstime = openstime.GetDateTime();
this.openetime = openetime.GetDateTime();
this.resid = resid;
this.payno = payno;
this.regCampainid = regCampainid;
this.pageIndex = pageIndex;
this.pageSize = pageSize;
}
/// <summary>
/// 获取接口订单信息
/// </summary>
/// <param name="msg"></param>
/// <param name="total"></param>
/// <returns></returns>
public List<Soft_OrderDetail> GetOderDetail(out string msg, out int total, string apllay = "GetApplyOrder")
{
msg = "";
total = 0;
returnResult result = getResult(apllay);
List<Soft_OrderDetail> _orderDetail = new List<Soft_OrderDetail>();
if (result.result)
{
total = result.total;
_orderDetail = Utility.MAXJSONToObject<List<Soft_OrderDetail>>(result.retMessage);
}
else
{
msg = "接口数据:" + result.retMessage;
}
return _orderDetail;
}
private returnResult getResult(string apllay)
{
string json = Utility.ObjectToJsonAndConvertTime<Soft_CRMOrderModel>(this);
string url = Utility.GetSettingByKey("L2Order") + apllay;
returnResult result = new returnResult();
result = result.getResult(json, url);
return result;
}
/// <summary>
/// 获取接口支付列表
/// </summary>
/// <param name="model"></param>
/// <param name="msg"></param>
/// <param name="total"></param>
/// <returns></returns>
public List<Soft_OrderWebPayList> GetOderPayList(out string msg, out int total, string apllay = "GetApplyOrderPayList")
{
msg = "";
total = 0;
returnResult result = getResult(apllay);
List<Soft_OrderWebPayList> _orderDetail = new List<Soft_OrderWebPayList>();
if (result.result)
{
total = result.total;
_orderDetail = Utility.MAXJSONToObject<List<Soft_OrderWebPayList>>(result.retMessage);
}
else
{
msg = "接口数据:" + result.retMessage;
}
return _orderDetail;
}
/// <summary>
/// 获取接口订单信息
/// </summary>
/// <param name="msg"></param>
/// <param name="total"></param>
/// <returns></returns>
public List<Soft_OrderSt> GetOrderSt(out string msg, string apllay = "GetOrderRPTForInCRM")
{
msg = "";
//total = 0;
returnResult result = getResult(apllay);
List<Soft_OrderSt> _orderDetail = new List<Soft_OrderSt>();
if (result.result)
{
//total = result.total;
_orderDetail = Utility.MAXJSONToObject<List<Soft_OrderSt>>(result.retMessage);
}
else
{
msg = "接口数据:" + result.retMessage;
}
return _orderDetail;
}
/// <summary>
/// 获取接口订单统计详情信息
/// </summary>
/// <param name="msg"></param>
/// <param name="total"></param>
/// <returns></returns>
public List<Soft_OrderWebPayList> GetOrderStDetail(out string msg, out int total, string apllay = "GetOrderListForInCRM")
{
msg = "";
total = 0;
returnResult result = getResult(apllay);
List<Soft_OrderWebPayList> _orderDetail = new List<Soft_OrderWebPayList>();
if (result.result)
{
total = result.total;
_orderDetail = Utility.MAXJSONToObject<List<Soft_OrderWebPayList>>(result.retMessage);
}
else
{
msg = "接口数据:" + result.retMessage;
}
return _orderDetail;
}
}
/// <summary>
///订单 操作
/// </summary>
public class Soft_CRMOperationordermodel
{
public returnResult AddOrdermodel(AddOrderModel model)
{
returnResult result = addResult(model);
return result;
}
public bool OpenOrdermodel(OpenOrderModel model)
{
returnResult result = openResult(model);
return result.result;
}
public bool CancelOrdermodel(CancelModel model)
{
returnResult result = cancelResult(model);
return result.result;
}
/// <summary>
/// 下单
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
private returnResult addResult(AddOrderModel model)
{
string json = Utility.ConvertToJSON<AddOrderModel>(model);
string url = Utility.GetSettingByKey("L2AddOrder");
ISecurityHelper sHelper = new SecurityHelper();
string key = sHelper.createSignEncodingStr(json);
string response = Utility.PostData(url + "?" + key, Encoding.UTF8);
string _retmsg = sHelper.decyptData("UPWEBSITE", response);
returnResult result = Utility.JSONToObject<returnResult>(_retmsg);
return result;
}
/// <summary>
/// 开通订单
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
private returnResult openResult(OpenOrderModel model)
{
string json = Utility.ConvertToJSON<OpenOrderModel>(model);
string url = Utility.GetSettingByKey("L2OpenOrder");
ISecurityHelper sHelper = new SecurityHelper();
string key = sHelper.createSignEncodingStr(json);
string response = Utility.PostData(url + "?" + key, Encoding.UTF8);
string _retmsg = sHelper.decyptData("UPWEBSITE", response);
returnResult result = Utility.JSONToObject<returnResult>(_retmsg);
return result;
}
/// <summary>
/// 取消订单
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
private returnResult cancelResult(CancelModel model)
{
string json = Utility.ConvertToJSON<CancelModel>(model);
string url = Utility.GetSettingByKey("L2CancelOrder");
ISecurityHelper sHelper = new SecurityHelper();
string key = sHelper.createSignEncodingStr(json);
string response = Utility.PostData(url + "?" + key, Encoding.UTF8);
string _retmsg = sHelper.decyptData("UPWEBSITE", response);
returnResult result = Utility.JSONToObject<returnResult>(_retmsg);
return result;
}
}
#endregion
public class AddOrderModel
{
[DisplayName("活动小类:")]
public string productCode { get; set; }
[DisplayName("用户名:")]
[Required(ErrorMessage = "*必填")]
public string userName { get; set; }
[DisplayName("用户卡号:")]
public string userCardNo { get; set; }
[DisplayName("身份证号码:")]
[Required(ErrorMessage = "*必填")]
[RegularExpression(@"\d{17}[\d|x]|\d{15}", ErrorMessage = "")]
public string cradNo { get; set; }
[DisplayName("手机号:")]
[Required(ErrorMessage = "*必填")]
[RegularExpression(@"\d{11}$", ErrorMessage = "请输入正确的手机电话号码")]
public string mobile { get; set; }
[DisplayName("备注:")]
public string mark { get; set; }
public int orderNum { get; set; }
public string campaignId { get; set; }
[DisplayName("活动id:")]
public string ActivityId { get; set; }
[DisplayName("用户姓名:")]
[Required(ErrorMessage = "*必填")]
public string fullName { get; set; }
public decimal campanyId { get; set; }
[DisplayName("限定IP")]
[RegularExpression(@"^((0|(?:[1-9]\d{0,1})|(?:1\d{2})|(?:2[0-4]\d)|(?:25[0-5]))\.){3}((?:[1-9]\d{0,1})|(?:1\d{2})|(?:2[0-4]\d)|(?:25[0-5]))$", ErrorMessage = "IP格式错误")]
public string IP { get; set; }
[DisplayName("创建用户名:")]
[Required(ErrorMessage = "*必填")]
public string CreateUser { get; set; }
}
public class OpenOrderModel
{
public string ApplyOrderId { get; set; }
public string UserName { get; set; }
public string PayNo { get; set; }
public decimal PayPrice { get; set; }
public string PayType { get; set; }
public string PayMark { get; set; }
public string PayExt1 { get; set; }
public string PayExt2 { get; set; }
}
public class CancelModel
{
public string ApplyOrderId { get; set; }
/// <summary>
/// 营业部编码-工号
/// </summary>
public string CancelUser { get; set; }
}
public class retResult
{
public bool result { get; set; }
public int retcode { get; set; }
public string ApplyOrderId { get; set; }
}
}