小程序首页做完后的备份

This commit is contained in:
lym
2026-03-29 01:05:28 +08:00
parent ab0d429a4a
commit 14203dad93
18 changed files with 2029 additions and 853 deletions

View File

@@ -98,6 +98,13 @@ namespace Mtxfw.DAL
if (ttype == 0)
{
uplevel = UpdteSelfuLevel(gtype, umodel, config, ptype, pv);
//升到2级及以上后要审视是业绩达到升到更高级标准防止因为一开始低于二级导致错过业绩升级
if (uplevel>1)
{
umodel.uLevel = uplevel;
ReviseselfLevel(gtype, umodel, config, uplevel);
}
}
@@ -106,6 +113,8 @@ namespace Mtxfw.DAL
int uds = 1, uds0 = 1, uds1 = 1;
int YContactID = umodel.ContactID;
//直接推荐人等级
int ContactLevel = 0;
string YContactIDS = umodel.ContactIDS;
ASuperiorsIDS = (umodel.ContactIDS).Split(',');
Double yfbl = 0;
@@ -115,34 +124,52 @@ namespace Mtxfw.DAL
{
//
DataSet ds = daoUser.GetList1("ID,ContactIDS,ContactID,umoney17,umoney18,uLevel", "gtype=" + gtype + " and UserState='正常' And IFStores=0 And uLevel17=0 And id=" + ASuperiorsIDS[ak]);
if (ds.Tables[0].Rows.Count > 0)
{
int dID = Convert.ToInt32(ds.Tables[0].Rows[0]["ID"].ToString());
//string YContactID = ds.Tables[0].Rows[0]["ContactID"].ToString();
//string YContactIDS = ds.Tables[0].Rows[0]["ContactIDS"].ToString();
Double umoney18 = Convert.ToDouble((Convert.ToDouble(ds.Tables[0].Rows[0]["umoney18"]) + pv).ToString("f2"));
//Double Yumoney19 = Convert.ToDouble((Convert.ToDouble(ds.Tables[0].Rows[0]["umoney19"]) + pv).ToString("f2"));
int YuLevel = Convert.ToInt32(ds.Tables[0].Rows[0]["uLevel"].ToString());
//int YuLevel4 = Convert.ToInt32(ds.Tables[0].Rows[0]["uLevel4"].ToString());
//int YuLevel11 = Convert.ToInt32(ds.Tables[0].Rows[0]["uLevel11"].ToString());
//int YIFBecomeAgents = Convert.ToInt32(ds.Tables[0].Rows[0]["IFBecomeAgents"].ToString());
//已分的奖金比例
//推荐链条中的人等级比被推荐人等级高,才可以分奖金
if (umodel.uLevel < (YuLevel))
{
daoUser.UpdateMoney("umoney18", pv, dID);
daoUser.UpdateMoney("umoney19", pv, dID);
var isLast = ak == 1;
//热卖商品,且遍历到当前会员是付款仁直接推荐人,则计算佣金
if(ttype == 0 && YuLevel == YContactID)
///总业绩(排除自己购买)
daoUser.UpdateMoney("umoney18", pv, dID);
//本月业绩
daoUser.UpdateMoney("umoney19", pv, dID);
//遍历到当前会员是付款人直接推荐人
if (dID == YContactID && YuLevel>0)
{
//获取直接推荐人的等级
ContactLevel = YuLevel;
//直接推荐人,且大于普通会员级别
if (YuLevel > 0)
{
//计算佣金
YongJinJS(config, umodel, ds.Tables[0].Rows[0], YContactID, YContactIDS, pv, xfz, yfbl, ttype);
}
}
//推荐链条中的人等级比直接推荐人等级高,或者是购买者直接推荐人,才可以分奖金
if ((ContactLevel < YuLevel && ContactLevel > 0)|| dID == YContactID)
{
var isLast = ak == 1;
////遍历到当前会员是付款仁直接推荐人,则计算佣金
//if (dID == YContactID)
//{
// //计算佣金
// YongJinJS(config, umodel, ds.Tables[0].Rows[0], YContactID, YContactIDS, pv, xfz, yfbl, ttype);
//}
//结算奖金(按等级算批发差价)
yfbl = JiangJinJS(config, umodel, ds.Tables[0].Rows[0], YContactID, YContactIDS, pv, xfz, yfbl, ttype);
@@ -153,10 +180,11 @@ namespace Mtxfw.DAL
/////如果符合条件更新自己的等级 移到上面了,这里 注释掉了,如果今后没影响,记得删掉,留着没意义
//var uplevel = UpdteSelfuLevel(gtype, umodel, config, ptype, pv);
///如果热卖商城的商品,更新上级的等级
if (uplevel > 0 && ttype == 0)
/////如果热卖商城的商品,更新上级的等级
//if (uplevel > 0 && ttype == 0)
if ( ttype == 0)
{
UpdteContacttLevel(gtype, umodel, config, ds.Tables[0].Rows[0], YContactID, YContactIDS, uplevel);
UpdteContacttLevel(gtype, umodel, config, ds.Tables[0].Rows[0], YContactID, YContactIDS, uplevel,umoney18);
///上面更新金额和等级的几个方法顺序不能颠倒,否则会出错
}
@@ -206,43 +234,73 @@ namespace Mtxfw.DAL
var uplevel3_amount = config.direct_upgrade_level3_amount_condition;
var uplevel4_amount = config.direct_upgrade_level4_amount_condition;
var uplevel5_amount = config.direct_upgrade_level5_amount_condition;
if (duLevel < ptype)
{
var flag = daoUser.UpdateuLevel("uLevel", ptype, dID);
if (ptype == 1)
{
//买1级商品提升到1级会员并加积分
daoUser.UpdateMoney("umoney30", pv, dID);
}
return flag ? 1 : 0;
}
else if (uplevel1_amount > 0 && pv >= uplevel1_amount && duLevel < 1)
//if (duLevel < ptype)
//{
// var flag = daoUser.UpdateuLevel("uLevel", ptype, dID);
// if (ptype == 1)
// {
// //买1级商品提升到1级会员并加积分
// daoUser.UpdateMoney("umoney30", pv, dID);
// }
// return flag ? 1 : 0;
//}
//else
//必须先判断大的,再判断小的,否则只算小的,不算大的
if (uplevel5_amount > 0 && pv >= uplevel5_amount && duLevel <5)
{
//买1级商品提升到1级会员并加积分
daoUser.UpdateMoney("umoney30", pv, dID);
var flag = daoUser.UpdateuLevel("uLevel", 1, dID);
return flag ? 1 : 0;
//daoUser.UpdateMoney("umoney30", pv, dID);
var flag = daoUser.UpdateuLevel("uLevel", 5, dID);
return flag ? 5 : 0;
}
else if (uplevel2_amount > 0 && pv >= uplevel2_amount && duLevel < 2)
else if (uplevel4_amount > 0 && pv >= uplevel4_amount && duLevel < 4)
{
var flag = daoUser.UpdateuLevel("uLevel", 2, dID);
return flag ? 2 : 0;
var flag = daoUser.UpdateuLevel("uLevel", 4, dID);
return flag ? 4 : 0;
}
else if (uplevel3_amount > 0 && pv >= uplevel3_amount && duLevel < 3)
{
var flag = daoUser.UpdateuLevel("uLevel", 3, dID);
return flag ? 3 : 0;
}
else if (uplevel4_amount > 0 && pv >= uplevel4_amount && duLevel < 4)
else if (uplevel2_amount > 0 && pv >= uplevel2_amount && duLevel < 2)
{
var flag = daoUser.UpdateuLevel("uLevel", 4, dID);
return flag ? 4 : 0;
var flag = daoUser.UpdateuLevel("uLevel", 2, dID);
return flag ? 2 : 0;
}
else if (uplevel5_amount > 0 && pv >= uplevel5_amount && duLevel < 4)
else if (uplevel1_amount > 0 && pv >= uplevel1_amount && duLevel < 1)
{
var flag = daoUser.UpdateuLevel("uLevel", 5, dID);
return flag ? 3 : 0;
var flag = daoUser.UpdateuLevel("uLevel", 1, dID);
return flag ? 1 : 0;
}
//if (uplevel1_amount > 0 && pv >= uplevel1_amount && duLevel < 1)
//{
// //买1级商品提升到1级会员并加积分
// //daoUser.UpdateMoney("umoney30", pv, dID);
// var flag = daoUser.UpdateuLevel("uLevel", 1, dID);
// return flag ? 1 : 0;
//}
//else if (uplevel2_amount > 0 && pv >= uplevel2_amount && duLevel < 2)
//{
// var flag = daoUser.UpdateuLevel("uLevel", 2, dID);
// return flag ? 2 : 0;
//}
//else if (uplevel3_amount > 0 && pv >= uplevel3_amount && duLevel < 3)
//{
// var flag = daoUser.UpdateuLevel("uLevel", 3, dID);
// return flag ? 3 : 0;
//}
//else if (uplevel4_amount > 0 && pv >= uplevel4_amount && duLevel < 4)
//{
// var flag = daoUser.UpdateuLevel("uLevel", 4, dID);
// return flag ? 4 : 0;
//}
//else if (uplevel5_amount > 0 && pv >= uplevel5_amount && duLevel < 4)
//{
// var flag = daoUser.UpdateuLevel("uLevel", 5, dID);
// return flag ? 3 : 0;
//}
}
}
@@ -272,7 +330,8 @@ namespace Mtxfw.DAL
/// <param name="YContactID">直属上级</param>
/// <param name="YContactIDS">上级链条</param>
/// <param name="selflevel">我当前上升到的等级</param>
public static void UpdteContacttLevel(int gtype, Model.user_info umodel, Mtxfw.Utility.Config config, DataRow Rows,int YContactID, string YContactIDS,int selflevel)
/// <param name="zyj">团队总业绩</param>
public static void UpdteContacttLevel(int gtype, Model.user_info umodel, Mtxfw.Utility.Config config, DataRow Rows,int YContactID, string YContactIDS,int selflevel,Double zyj)
{
Model.User_Errlog mo;
DateTime dt = DateTime.Now;
@@ -281,23 +340,23 @@ namespace Mtxfw.DAL
{
var rowid = Convert.ToInt32(Rows["ID"].ToString());
var rowlevel = Convert.ToInt32(Rows["uLevel"].ToString());
//只给直属上级升级,如果不是直属上级就不升级了
if (YContactID != rowid)
{
return;
}
////只给直属上级升级,如果不是直属上级就不升级了
//if (YContactID != rowid)
//{
// return;
//}
//如果直接上级等级小于1,就不升级了.从第1级开始这种类别的升级
if (rowlevel < 1)
{
return;
}
////如果直接上级等级小2,就不升级了.从第2级开始这种类别的升级
//if (rowlevel < 2)
//{
// return;
//}
//如果当前级别超过直接上级,直接上级就不能通过他不升级了
if (selflevel> rowlevel)
{
return;
}
////如果当前级别超过直接上级,直接上级就不能通过他不升级了
//if (selflevel> rowlevel)
//{
// return;
//}
if (umodel != null)
{
var uplevel5_amount = config.upgrade_level5_amount_condition;
@@ -306,74 +365,72 @@ namespace Mtxfw.DAL
var upgrade_level5 = config.upgrade_level5_person_condition;
var upgrade_level3 = config.upgrade_level3_person_condition;
var upgrade_level4 = config.upgrade_level4_person_condition;
var umoneyyjze = umodel.umoney18;
var umoneyyjze = zyj;// umodel.umoney18;
var uplevel = 0;
var tjcount = 0;
switch (selflevel)
tjcount = daoUser.GetCount("gtype=" + gtype + " and IFStores=0 And userstate='正常' and ContactID=" + rowid + " and uLevel > 1");
switch (rowlevel)
{
//case 2:
// if (rowlevel == 2)
// {
// // rowlevel是否升到2级的条件
// if (uplevel2_amount>0 && upgrade_level2>0)
// {
// tjcount = daoUser.GetCount("gtype=" + gtype + " and IFStores=0 And userstate='正常' and ContactID=" + rowid + " and uLevel=" + rowlevel + "");
// if (tjcount >= upgrade_level2 && umoneyyjze >= uplevel2_amount)
// {
// uplevel = 2;
// }
// }
// }
// break;
case 3:
//
if (rowlevel == 3)
{
case 2:
// rowlevel是否升到3级的条件
if (uplevel3_amount > 0 && upgrade_level3 > 0)
{
tjcount = daoUser.GetCount("gtype=" + gtype + " and IFStores=0 And userstate='正常' and ContactID=" + rowid + " and uLevel=" + rowlevel + "");
//tjcount = daoUser.GetCount("gtype=" + gtype + " and IFStores=0 And userstate='正常' and ContactID=" + rowid + " and uLevel=" + rowlevel + "");
if (tjcount >= upgrade_level3 && umoneyyjze >= uplevel3_amount)
{
uplevel = 3;
}
}
}
break;
case 4:
if (rowlevel == 4)
{
case 3:
//
// rowlevel是否升到4级的条件
if (uplevel4_amount > 0 && upgrade_level4 > 0)
{
tjcount = daoUser.GetCount("gtype=" + gtype + " and IFStores=0 And userstate='正常' and ContactID=" + rowid + " and uLevel=" + rowlevel + "");
// tjcount = daoUser.GetCount("gtype=" + gtype + " and IFStores=0 And userstate='正常' and ContactID=" + rowid + " and uLevel=" + rowlevel + "");
if (tjcount >= upgrade_level4 && umoneyyjze >= uplevel4_amount)
{
uplevel = 4;
}
}
}
break;
case 5:
if (rowlevel == 4)
{
case 4:
// rowlevel是否升到5级的条件
if (uplevel5_amount > 0 && upgrade_level5 > 0)
{
tjcount = daoUser.GetCount("gtype=" + gtype + " and IFStores=0 And userstate='正常' and ContactID=" + rowid + " and uLevel=" + rowlevel + "");
// tjcount = daoUser.GetCount("gtype=" + gtype + " and IFStores=0 And userstate='正常' and ContactID=" + rowid + " and uLevel=" + rowlevel + "");
if (tjcount >= upgrade_level5 && umoneyyjze >= uplevel5_amount)
{
uplevel = 5;
}
}
}
break;
//case 5:
// // rowlevel是否升到5级的条件
// if (uplevel5_amount > 0 && upgrade_level5 > 0)
// {
// // tjcount = daoUser.GetCount("gtype=" + gtype + " and IFStores=0 And userstate='正常' and ContactID=" + rowid + " and uLevel=" + rowlevel + "");
// if (tjcount >= upgrade_level5 && umoneyyjze >= uplevel5_amount)
// {
// uplevel = 5;
// }
// }
// break;
}
if (uplevel > 0)
{
@@ -396,6 +453,121 @@ namespace Mtxfw.DAL
}
/// <summary>
/// 补充因级别低时错过的业绩奖励当升级到2级时补上业绩升级
/// </summary>
/// <param name="gtype"></param>
/// <param name="umodel"></param>
/// <param name="config"></param>
/// <param name="selflevel"></param>
public static void ReviseselfLevel(int gtype, Model.user_info umodel, Mtxfw.Utility.Config config, int selflevel)
{
Model.User_Errlog mo;
DateTime dt = DateTime.Now;
try
{
var rowid = umodel.Id;
var rowlevel = selflevel;
if (umodel != null)
{
var uplevel5_amount = config.upgrade_level5_amount_condition;
var uplevel3_amount = config.upgrade_level3_amount_condition;
var uplevel4_amount = config.upgrade_level4_amount_condition;
var upgrade_level5 = config.upgrade_level5_person_condition;
var upgrade_level3 = config.upgrade_level3_person_condition;
var upgrade_level4 = config.upgrade_level4_person_condition;
//总业绩
var umoneyyjze = umodel.umoney18;
var uplevel = 0;
var tjcount = 0;
//健康大使及以上级别人数
tjcount = daoUser.GetCount("gtype=" + gtype + " and IFStores=0 And userstate='正常' and ContactID=" + rowid + " and uLevel > 1");
switch (rowlevel)
{
case 2:
// rowlevel是否升到3级的条件
if (uplevel3_amount > 0 && upgrade_level3 > 0)
{
//tjcount = daoUser.GetCount("gtype=" + gtype + " and IFStores=0 And userstate='正常' and ContactID=" + rowid + " and uLevel=" + rowlevel + "");
if (tjcount >= upgrade_level3 && umoneyyjze >= uplevel3_amount)
{
uplevel = 3;
}
}
break;
case 3:
//
// rowlevel是否升到4级的条件
if (uplevel4_amount > 0 && upgrade_level4 > 0)
{
// tjcount = daoUser.GetCount("gtype=" + gtype + " and IFStores=0 And userstate='正常' and ContactID=" + rowid + " and uLevel=" + rowlevel + "");
if (tjcount >= upgrade_level4 && umoneyyjze >= uplevel4_amount)
{
uplevel = 4;
}
}
break;
case 4:
// rowlevel是否升到5级的条件
if (uplevel5_amount > 0 && upgrade_level5 > 0)
{
// tjcount = daoUser.GetCount("gtype=" + gtype + " and IFStores=0 And userstate='正常' and ContactID=" + rowid + " and uLevel=" + rowlevel + "");
if (tjcount >= upgrade_level5 && umoneyyjze >= uplevel5_amount)
{
uplevel = 5;
}
}
break;
//case 5:
// // rowlevel是否升到5级的条件
// if (uplevel5_amount > 0 && upgrade_level5 > 0)
// {
// // tjcount = daoUser.GetCount("gtype=" + gtype + " and IFStores=0 And userstate='正常' and ContactID=" + rowid + " and uLevel=" + rowlevel + "");
// if (tjcount >= upgrade_level5 && umoneyyjze >= uplevel5_amount)
// {
// uplevel = 5;
// }
// }
// break;
}
if (uplevel > 0)
{
daoUser.UpdateuLevel("uLevel", uplevel, rowid);
}
}
}
catch (Exception ex)
{
mo = new Model.User_Errlog();
mo.DLID = 0;
mo.ErrType = "更新自身会员级别";
mo.addtime = dt;
mo.ErrBody = ex.ToString();
mo.ErrBody2 = ex.Message;
new DAL.User_Errlog().Add(mo);
}
}
public static void UpdteuLevel(int gtype, Mtxfw.Utility.Config config, int dID, string YContactIDS, int YuLevel, int YuLevel4, int YuLevel11, int YIFBecomeAgents, Double Yumoney18, Double Yumoney19, DateTime dt)
{
int duLevel = YuLevel;
@@ -945,6 +1117,7 @@ namespace Mtxfw.DAL
Model.User_Errlog mo;
DateTime dt = DateTime.Now;
double result = yfbl;
Double jfje = xfz;
try
{
@@ -958,59 +1131,80 @@ namespace Mtxfw.DAL
var BZContent = "";//备注
if (ttype == 0)
{
// jfje = pv;
BZContent = "热卖商品批发差价";
}
else
{
// jfje = xfz;
BZContent = "商城商品批发差价";
}
//当前奖金比例
Double fixed_bonus = 0;
//当前级别对应的最大奖金比例 - 下级已分比例 等于当前等级剩余可分奖金比例
//热卖商品分配方案
if (ttype == 0)
//if (ttype == 0)
//{
// switch (ContactLevel)
// {
// case 1:
// fixed_bonus = config.level1_fixed_bonus - yfbl;
// break;
// case 2:
// fixed_bonus = config.level2_fixed_bonus - yfbl;
// break;
// case 3:
// fixed_bonus = config.level3_fixed_bonus - yfbl;
// break;
// case 4:
// fixed_bonus = config.level4_fixed_bonus - yfbl;
// break;
// }
//}
////商城商品分配方案
//else
//{
// switch (ContactLevel)
// {
// case 1:
// fixed_bonus = config.level1_fixed_bonus - yfbl;
// break;
// case 2:
// fixed_bonus = config.level2_fixed_bonus - yfbl;
// break;
// case 3:
// fixed_bonus = config.level3_fixed_bonus - yfbl;
// break;
// case 4:
// fixed_bonus = config.level4_fixed_bonus - yfbl;
// break;
// }
//}
switch (ContactLevel)
{
switch (ContactLevel)
{
case 1:
fixed_bonus = config.level1_fixed_bonus - yfbl;
break;
case 2:
fixed_bonus = config.level2_fixed_bonus - yfbl;
break;
case 3:
fixed_bonus = config.level3_fixed_bonus - yfbl;
break;
case 4:
fixed_bonus = config.level4_fixed_bonus - yfbl;
break;
}
}
//商城商品分配方案
else
{
switch (ContactLevel)
{
case 1:
fixed_bonus = config.level1_fixed_bonus - yfbl;
break;
case 2:
fixed_bonus = config.level2_fixed_bonus - yfbl;
break;
case 3:
fixed_bonus = config.level3_fixed_bonus - yfbl;
break;
case 4:
fixed_bonus = config.level4_fixed_bonus - yfbl;
break;
}
case 1:
fixed_bonus = config.level1_fixed_bonus - yfbl;
break;
case 2:
fixed_bonus = config.level2_fixed_bonus - yfbl;
break;
case 3:
fixed_bonus = config.level3_fixed_bonus - yfbl;
break;
case 4:
fixed_bonus = config.level4_fixed_bonus - yfbl;
break;
case 5:
fixed_bonus = config.level5_fixed_bonus - yfbl;
break;
}
if (fixed_bonus > 0)
{
if (pv > 0)
if (jfje > 0)
{
Double jaingjin = Convert.ToDouble((fixed_bonus * pv).ToString("f4"));
Double jaingjin = Convert.ToDouble((fixed_bonus * jfje).ToString("f4"));
if (jaingjin > 0.0000)
{
var mjl2 = new Model.user_Results_jl2();
@@ -1074,15 +1268,25 @@ namespace Mtxfw.DAL
{
Model.User_Errlog mo;
DateTime dt = DateTime.Now;
double result = yfbl;
Double result = yfbl;
Double jsje = 0;
// 热卖商品按 金额计算佣金 ,商城商品按消费值计算佣金
if (ttype == 0)
{
jsje = pv;
}
else
{
jsje = xfz;
}
try
{
var uplevel2_amount = config.direct_upgrade_level2_amount_condition;
//var uplevel2_amount = config.direct_upgrade_level2_amount_condition;
///热卖商品只有到达升级到2级金额的才能拿佣金
if (pv < uplevel2_amount)
{
result = 0;
}
//if (pv < uplevel2_amount)
//{
// result = 0;
//}
int dID = Convert.ToInt32(ContactRow["ID"].ToString());
//Yumoney17就是余额而且写成负数
Double Yumoney17 = Convert.ToDouble(Convert.ToDouble(ContactRow["umoney17"]).ToString("f4"));
@@ -1091,13 +1295,13 @@ namespace Mtxfw.DAL
var buyerlevelname = Mtxfw.Utility.Common.GetuLevelname(buyerlevel);
var Contactlevelname = Mtxfw.Utility.Common.GetuLevelname(ContactLevel); ;
var BZContent = "业务佣金";//备注
Double fixed_bonus = 0;//config.level3_fixed_bonus
//获取业务佣金比例
Double fixed_bonus = config.level0_direct_superior_bonus_ratio;
if (fixed_bonus > 0)
{
if (pv > 0)
if (jsje > 0)
{
Double jaingjin = Convert.ToDouble((fixed_bonus * pv).ToString("f4"));
Double jaingjin = Convert.ToDouble((fixed_bonus * jsje).ToString("f4"));
if (jaingjin > 0.0000)
{
var mjl2 = new Model.user_Results_jl2();

View File

@@ -341,6 +341,33 @@ namespace Mtxfw.DAL
parameters[2].Value = OID;
return Mtxfw.Utility.SqlDbHelper_U.ExecuteCmd(strSql.ToString(), parameters);
}
/// <summary>
/// 核销订单
/// </summary>
public int UpdateHxState(DateTime SelValue2, string OID,string hxm)
{
string SelValue = "2";
StringBuilder strSql = new StringBuilder();
strSql.Append("update order_info set ");
strSql.Append("O_Payed=@SelValue,O_Payed_Date=@SelValue2");
strSql.Append(" where id=@OID and orderhxm =@hxm");
SqlParameter[] parameters = {
new SqlParameter("@SelValue", SqlDbType.VarChar,50),
new SqlParameter("@SelValue2", SqlDbType.DateTime),
new SqlParameter("@OID", SqlDbType.VarChar,50),
new SqlParameter("@hxm", SqlDbType.VarChar, 50)};
parameters[0].Value = SelValue;
parameters[1].Value = SelValue2;
parameters[2].Value = OID;
parameters[3].Value = hxm;
return Mtxfw.Utility.SqlDbHelper_U.ExecuteCmd(strSql.ToString(), parameters);
}
/// <summary>
/// 更新运单号
/// </summary>

View File

@@ -1980,7 +1980,7 @@ namespace Mtxfw.Utility
{
Dictionary<int, string> dic = new Dictionary<int, string>();
dic.Add(0, "普通会员");
dic.Add(1, "准健康大使");
dic.Add(1, "VIP");
dic.Add(2, "健康大使");
dic.Add(3, "健康合伙人");
dic.Add(4, "健康执行官");

View File

@@ -2631,6 +2631,63 @@ namespace Mtxfw.Utility
set
{ setData("webMoney153", value); }
}
/// <summary>
/// 小程序商户号
/// </summary>
public string webXMchid
{
get
{ return getData("webXMchid"); }
set
{ setData("webXMchid", value); }
}
/// <summary>
/// 小程序ApiV3Key
/// </summary>
public string webXApiV3Key
{
get
{ return getData("webXApiV3Key"); }
set
{ setData("webXApiV3Key", value); }
}
/// <summary>
/// 小程序商户证书序列号
/// </summary>
public string webXMchSerialNo
{
get
{ return getData("webXMchSerialNo"); }
set
{ setData("webXMchSerialNo", value); }
}
/// <summary>
/// 小程序商户私钥(PEM格式)从微信商户平台下载的apiclient_key.pem文件内容
/// </summary>
public string webXPrivateKey
{
get
{ return getData("webXPrivateKey"); }
set
{ setData("webXPrivateKey", value); }
}
/// <summary>
/// 微信支付V3商户私钥文件路径
/// </summary>
public string webXPrivateKeyPath
{
get
{ return getData("webXPrivateKeyPath"); }
set
{ setData("webXPrivateKeyPath", value); }
}
public string webMoney154
{
get

View File

@@ -14,7 +14,7 @@ namespace Mtxfw.Utility
{
get
{
string connection = ConfigurationManager.AppSettings["ConnStr0"].ToString(); //ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
string connection = ConfigurationManager.AppSettings["ConnStr"].ToString(); //string connection = ConfigurationManager.AppSettings["ConnStr0"].ToString(); //ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
if (Encrypt == true)
{
return connection;

View File

@@ -240,6 +240,9 @@
<Compile Include="WXPay.StreamReaderUtils.cs" />
<Compile Include="WXPay.StringUtils.cs" />
<Compile Include="WXPay.WxPayApi.cs" />
<Compile Include="WXPay\WxPayV3Config.cs" />
<Compile Include="WXPay\WxPayV3NotifyHandler.cs" />
<Compile Include="WXPay\WxPayV3Service.cs" />
<Compile Include="XmlClass.cs" />
<Compile Include="XmlHelper.cs" />
</ItemGroup>

View File

@@ -532,7 +532,7 @@
var len = 1;
function onaddgg() {//<li class="textjg"><input id="textjg3" type="text" /></li><li><input id="textjg0" type="text" /></li><li><input id="textjg1" type="text" /></li><li><input id="textjf" type="text" /></li>
//var html = '<ul class="addggbox_box" id="addggbox_box' + len + '"><li class="textgg"><input id="textgg" type="text" /></li><li class="textjg2"><input id="textjg2" type="text" /></li><li class="textjg"><input id="textjg" type="text" /></li><li class="textjg"><input id="textjg0" type="text" /></li><li class="textjg"><input id="textjg1" type="text" /></li>';
var html = '<ul class="addggbox_box" id="addggbox_box' + len + '"><li class="textgg"><input id="textgg" type="text" /></li><li class="textjg"><input id="textjg" type="text" /></li><li class="textjg"><input id="textjg2" type="text" /></li></li><li class="textjg"><input id="textjg4" type="text" /></li>';
var html = '<ul class="addggbox_box" id="addggbox_box' + len + '"><li class="textgg"><input id="textgg" type="text" /></li><li class="textjg"><input id="textjg" type="text" /></li><li class="textjg"><input id="textjg2" type="text" /></li></li><li class="textjg"><input id="textjg4" type="text" /></li><li class="textjg"><input id="textjg3" type="text" /></li>';
@@ -571,7 +571,7 @@
var jg2 = fTrim($("#addggbox_box" + id + " #textjg2").val());
var jg1 = "";// fTrim($("#addggbox_box" + id + " #textjg1").val());
var jg3 = "";// fTrim($("#addggbox_box" + id + " #textjg3").val());
var jg3 = fTrim($("#addggbox_box" + id + " #textjg3").val());
var jg4 = fTrim($("#addggbox_box" + id + " #textjg4").val());
var jg5 = "";
var jg6 = "";
@@ -595,6 +595,12 @@
alert("零售价不能为空")
}
}
if (b) {
if (jg3 == "") {
b = false;
alert("成本价不能为空")
}
}
if (b) {
if (jg4 == "") {
b = false;
@@ -1080,13 +1086,13 @@
<td>
<div class="addggbox">
<ul class="addggbox_title"><li class="textgg">规格</li><!--<li>零售价</li>--><li>价</li><li>零售价</li><li>消费值</li>
<ul class="addggbox_title"><li class="textgg">规格</li><!--<li>零售价</li>--><li>会员价</li><li>零售价</li><li>消费值</li><li>成本价</li>
<li>重量</li><li>库存</li><li>颜色</li><li>图片</li><li class="textcz"><input id="addbtn" class="abtn" type="button" value="添加" onclick="onaddgg()" /></li></ul>
<%=guige%>
<%if (guige == "")
{%>
<ul class="addggbox_box" id="addggbox_box0"><li class="textgg"><input id="textgg" type="text" /></li><li class="textjg"><input id="textjg" type="text" /></li><li class="textjg"><input id="textjg2" type="text" /></li><li class="textjg"><input id="textjg4" type="text" /></li>
<ul class="addggbox_box" id="addggbox_box0"><li class="textgg"><input id="textgg" type="text" /></li><li class="textjg"><input id="textjg" type="text" /></li><li class="textjg"><input id="textjg2" type="text" /></li><li class="textjg"><input id="textjg4" type="text" /></li><li class="textjg"><input id="textjg3" type="text" /></li>
<li class="textzl"><input id="textzl" type="text" /></li><li class="textkc"><input id="textkc" type="text" /></li><li class="textcolor" colors="" onclick="showcolor(0)">#颜色#</li><li class="texttp" tps="" onclick="showtp(0)">#图片#</li><li class="textcz"><input id="editbtn" class="abtn" type="button" value="保存" onclick="showedit(0)" /><input id="delbtn" class="abtn" type="button" value="删除" onclick="ondelgg(0)" /><input id="ggids" type="hidden" value="" runat="server" /></li></ul>

View File

@@ -107,7 +107,7 @@ namespace Mtxfw.VipSite
string tps = Dr["G_Images"].ToString();
//guige += "<ul class=\"addggbox_box addggbox_boxed\" id=\"addggbox_box" + G_ID + "\"><li class=\"textgg\"><input id=\"textgg\" type=\"text\" value=\"" + G_Name + "\" /></li><li class=\"textjg2\" style=\"display:none;\"><input id=\"textjg2\" type=\"text\"value=\"" + G_JG2 + "\" /></li><li class=\"textjg\"><input id=\"textjg\" type=\"text\" value=\"" + G_JG + "\" /></li><li class=\"textjg\"><input id=\"textjg0\" type=\"text\" value=\"" + G_JG0 + "\" /></li><li class=\"textjg\"><input id=\"textjg1\" type=\"text\" value=\"" + G_JG1 + "\" /></li>";
//guige += "<li class=\"textzl\"><input id=\"textzl\" type=\"text\" value=\"" + G_ZL + "\" /></li><li class=\"textkc\"><input id=\"textkc\" type=\"text\" value=\"" + G_KC + "\" /></li><li class=\"textcolor\" colors=\"" + colors + "\" onclick=\"showcolor(" + G_ID + ")\">#颜色#</li><li class=\"texttp\" tps=\"" + tps + "\" onclick=\"showtp(" + G_ID + ")\">#图片#</li><li class=\"textcz\"><input id=\"editbtn\" class=\"abtn\" onclick=\"showedit(" + G_ID + ")\" type=\"button\" value=\"编辑\" /><input id=\"delbtn\" onclick=\"ondelgg(" + G_ID + ")\" class=\"abtn\" type=\"button\" value=\"删除\" /></li></ul>";
guige += "<ul class=\"addggbox_box addggbox_boxed\" id=\"addggbox_box" + G_ID + "\"><li class=\"textgg\"><input id=\"textgg\" type=\"text\" value=\"" + G_Name + "\" /></li><li class=\"textjg\"><input id=\"textjg\" type=\"text\"value=\"" + G_JG + "\" /></li><li class=\"textjg\"><input id=\"textjg2\" type=\"text\" value=\"" + G_JG2 + "\" /></li><li class=\"textjg\"><input id=\"textjg4\" type=\"text\" value=\"" + G_JG4 + "\" /></li>";
guige += "<ul class=\"addggbox_box addggbox_boxed\" id=\"addggbox_box" + G_ID + "\"><li class=\"textgg\"><input id=\"textgg\" type=\"text\" value=\"" + G_Name + "\" /></li><li class=\"textjg\"><input id=\"textjg\" type=\"text\"value=\"" + G_JG + "\" /></li><li class=\"textjg\"><input id=\"textjg2\" type=\"text\" value=\"" + G_JG2 + "\" /></li><li class=\"textjg\"><input id=\"textjg4\" type=\"text\" value=\"" + G_JG4 + "\" /></li><li class=\"textjg\"><input id=\"textjg3\" type=\"text\" value=\"" + G_JG3 + "\" /></li>";
guige += "<li class=\"textzl\"><input id=\"textzl\" type=\"text\" value=\"" + G_ZL + "\" /></li><li class=\"textkc\"><input id=\"textkc\" type=\"text\" value=\"" + G_KC + "\" /></li><li class=\"textcolor\" colors=\"" + colors + "\" onclick=\"showcolor(" + G_ID + ")\">#颜色#</li><li class=\"texttp\" tps=\"" + tps + "\" onclick=\"showtp(" + G_ID + ")\">#图片#</li><li class=\"textcz\"><input id=\"editbtn\" class=\"abtn\" onclick=\"showedit(" + G_ID + ")\" type=\"button\" value=\"编辑\" /><input id=\"delbtn\" onclick=\"ondelgg(" + G_ID + ")\" class=\"abtn\" type=\"button\" value=\"删除\" /></li></ul>";
}
}
@@ -213,7 +213,7 @@ namespace Mtxfw.VipSite
int G_KC = int.Parse(Dr["G_KC"].ToString());
string colors = Dr["G_Color"].ToString();
string tps = Dr["G_Images"].ToString();
guige += "<ul class=\"addggbox_box addggbox_boxed\" id=\"addggbox_box" + G_ID + "\"><li class=\"textgg\"><input id=\"textgg\" type=\"text\" value=\"" + G_Name + "\" /></li><li class=\"textjg2\"><input id=\"textjg\" type=\"text\"value=\"" + G_JG + "\" /></li><li class=\"textjg\"><input id=\"textjg2\" type=\"text\" value=\"" + G_JG2 + "\" /></li><li class=\"textjg\"><input id=\"textjg4\" type=\"text\" value=\"" + G_JG4 + "\" /></li>";
guige += "<ul class=\"addggbox_box addggbox_boxed\" id=\"addggbox_box" + G_ID + "\"><li class=\"textgg\"><input id=\"textgg\" type=\"text\" value=\"" + G_Name + "\" /></li><li class=\"textjg2\"><input id=\"textjg\" type=\"text\"value=\"" + G_JG + "\" /></li><li class=\"textjg\"><input id=\"textjg2\" type=\"text\" value=\"" + G_JG2 + "\" /></li><li class=\"textjg\"><input id=\"textjg4\" type=\"text\" value=\"" + G_JG4 + "\" /></li><li class=\"textjg\"><input id=\"textjg3\" type=\"text\" value=\"" + G_JG3 + "\" /></li>";
guige += "<li class=\"textzl\"><input id=\"textzl\" type=\"text\" value=\"" + G_ZL + "\" /></li><li class=\"textkc\"><input id=\"textkc\" type=\"text\" value=\"" + G_KC + "\" /></li><li class=\"textcolor\" colors=\"" + colors + "\" onclick=\"showcolor(" + G_ID + ")\">#颜色#</li><li class=\"texttp\" tps=\"" + tps + "\" onclick=\"showtp(" + G_ID + ")\">#图片#</li><li class=\"textcz\"><input id=\"editbtn\" class=\"abtn\" onclick=\"showedit(" + G_ID + ")\" type=\"button\" value=\"编辑\" /><input id=\"delbtn\" onclick=\"ondelgg(" + G_ID + ")\" class=\"abtn\" type=\"button\" value=\"删除\" /></li></ul>";

View File

@@ -461,7 +461,7 @@
var len = 1;
function onaddgg() {
//var html = '<ul class="addggbox_box" id="addggbox_box' + len + '"><li class="textgg"><input id="textgg" type="text" /></li><li class="textjg"><input id="textjg" type="text" /></li><li class="textjg"><input id="textjg2" type="text" /></li><li class="textjg"><input id="textjg0" type="text" /></li><li class="textjg"><input id="textjg1" type="text" /></li>';
var html = '<ul class="addggbox_box" id="addggbox_box' + len + '"><li class="textgg"><input id="textgg" type="text" /></li><li class="textjg"><input id="textjg" type="text" /></li><li class="textjg"><input id="textjg2" type="text" /></li><li class="textjg"><input id="textjg4" type="text" /></li>';
var html = '<ul class="addggbox_box" id="addggbox_box' + len + '"><li class="textgg"><input id="textgg" type="text" /></li><li class="textjg"><input id="textjg" type="text" /></li><li class="textjg"><input id="textjg2" type="text" /></li><li class="textjg"><input id="textjg4" type="text" /></li><li class="textjg"><input id="textjg3" type="text" /></li>';
html += '<li class="textzl"><input id="textzl" type="text" /></li><li class="textkc"><input id="textkc" type="text" /></li><li class="textcolor" colors="" onclick="showcolor(' + len + ')">#颜色#</li><li class="texttp" tps="" onclick="showtp(' + len + ')">#图片#</li><li class="textcz"><input id="editbtn" class="abtn" type="button" value="保存" onclick="showedit(' + len + ')" /><input id="delbtn" class="abtn" type="button" value="删除" onclick="ondelgg(' + len + ')" /></div></li></ul>';
@@ -499,7 +499,7 @@
var jg2 = fTrim($("#addggbox_box" + id + " #textjg2").val());
var jg0 = "";
var jg1 = "";//fTrim($("#addggbox_box" + id + " #textjg1").val());
var jg3 = "";
var jg3 = fTrim($("#addggbox_box" + id + " #textjg3").val());
jg4 = fTrim($("#addggbox_box" + id + " #textjg4").val());
var jg5 = "";
var jg6 = "";
@@ -541,12 +541,12 @@
// alert("直推奖励不能为空")
// }
// }
//if (b) {
// if (jg1== "") {
// b = false;
// alert("复购直推奖励不能为空")
// }
//}
if (b) {
if (jg3== "") {
b = false;
alert("成本价不能为空")
}
}
if (b) {
@@ -1005,13 +1005,13 @@
<td>
<div class="addggbox">
<ul class="addggbox_title"><li class="textgg">规格</li><li>会员价</li><li>零售价</li><li>消费值</li>
<ul class="addggbox_title"><li class="textgg">规格</li><li>优惠价</li><li>零售价</li><li>消费值</li><li>成本价</li>
<li>重量</li><li>库存</li><li>颜色</li><li>图片</li><li class="textcz"><input id="addbtn" class="abtn" type="button" value="添加" onclick="onaddgg()" /></li></ul>
<%=guige%>
<%if (guige == "")
{%>
<ul class="addggbox_box" id="addggbox_box0"><li class="textgg"><input id="textgg" type="text" /></li><li class="textjg2"><input id="textjg" type="text" /></li><li class="textjg"><input id="textjg2" type="text" /></li><li class="textjg"><input id="textjg4" type="text" /></li>
<ul class="addggbox_box" id="addggbox_box0"><li class="textgg"><input id="textgg" type="text" /></li><li class="textjg2"><input id="textjg" type="text" /></li><li class="textjg"><input id="textjg2" type="text" /></li><li class="textjg"><input id="textjg4" type="text" /></li><li class="textjg"><input id="textjg3" type="text" /></li>
<li class="textzl"><input id="textzl" type="text" /></li><li class="textkc"><input id="textkc" type="text" /></li><li class="textcolor" colors="" onclick="showcolor(0)">#颜色#</li><li class="texttp" tps="" onclick="showtp(0)">#图片#</li><li class="textcz"><input id="editbtn" class="abtn" type="button" value="保存" onclick="showedit(0)" /><input id="delbtn" class="abtn" type="button" value="删除" onclick="ondelgg(0)" /><input id="ggids" type="hidden" value="" runat="server" /></li></ul>
<%} %>

View File

@@ -106,7 +106,7 @@ namespace Mtxfw.VipSite
int G_KC = int.Parse(Dr["G_KC"].ToString());
string colors = Dr["G_Color"].ToString();
string tps = Dr["G_Images"].ToString();
guige += "<ul class=\"addggbox_box addggbox_boxed\" id=\"addggbox_box" + G_ID + "\"><li class=\"textgg\"><input id=\"textgg\" type=\"text\" value=\"" + G_Name + "\" /></li><li class=\"textjg2\"><input id=\"textjg\" type=\"text\"value=\"" + G_JG + "\" /></li><li class=\"textjg\"><input id=\"textjg2\" type=\"text\" value=\"" + G_JG2 + "\" /></li><li class=\"textjg\"><input id=\"textjg4\" type=\"text\" value=\"" + G_JG4+ "\" /></li>";
guige += "<ul class=\"addggbox_box addggbox_boxed\" id=\"addggbox_box" + G_ID + "\"><li class=\"textgg\"><input id=\"textgg\" type=\"text\" value=\"" + G_Name + "\" /></li><li class=\"textjg2\"><input id=\"textjg\" type=\"text\"value=\"" + G_JG + "\" /></li><li class=\"textjg\"><input id=\"textjg2\" type=\"text\" value=\"" + G_JG2 + "\" /></li><li class=\"textjg\"><input id=\"textjg4\" type=\"text\" value=\"" + G_JG4+ "\" /></li><li class=\"textjg\"><input id=\"textjg3\" type=\"text\" value=\"" + G_JG3+ "\" /></li>";
@@ -213,7 +213,7 @@ namespace Mtxfw.VipSite
string colors = Dr["G_Color"].ToString();
string tps = Dr["G_Images"].ToString();
//guige += "<ul class=\"addggbox_box addggbox_boxed\" id=\"addggbox_box" + G_ID + "\"><li class=\"textgg\"><input id=\"textgg\" type=\"text\" value=\"" + G_Name + "\" /></li><li class=\"textjg2\"><input id=\"textjg\" type=\"text\"value=\"" + G_JG + "\" /></li><li class=\"textjg\"><input id=\"textjg2\" type=\"text\" value=\"" + G_JG2 + "\" /></li><li class=\"textjg\"><input id=\"textjg0\" type=\"text\" value=\"" + G_JG0 + "\" /></li><li class=\"textjg\"><input id=\"textjg1\" type=\"text\" value=\"" + G_JG1 + "\" /></li>";
guige += "<ul class=\"addggbox_box addggbox_boxed\" id=\"addggbox_box" + G_ID + "\"><li class=\"textgg\"><input id=\"textgg\" type=\"text\" value=\"" + G_Name + "\" /></li><li class=\"textjg2\"><input id=\"textjg\" type=\"text\"value=\"" + G_JG + "\" /></li><li class=\"textjg\"><input id=\"textjg2\" type=\"text\" value=\"" + G_JG2 + "\" /></li><li class=\"textjg\"><input id=\"textjg4\" type=\"text\" value=\"" + G_JG4 + "\" /></li>";
guige += "<ul class=\"addggbox_box addggbox_boxed\" id=\"addggbox_box" + G_ID + "\"><li class=\"textgg\"><input id=\"textgg\" type=\"text\" value=\"" + G_Name + "\" /></li><li class=\"textjg2\"><input id=\"textjg\" type=\"text\"value=\"" + G_JG + "\" /></li><li class=\"textjg\"><input id=\"textjg2\" type=\"text\" value=\"" + G_JG2 + "\" /></li><li class=\"textjg\"><input id=\"textjg4\" type=\"text\" value=\"" + G_JG4 + "\" /></li><li class=\"textjg\"><input id=\"textjg3\" type=\"text\" value=\"" + G_JG3 + "\" /></li>";

View File

@@ -229,8 +229,13 @@
<aliPAY_PUBLIC_KEY0 value="MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCnxj/9qwVfgoUh/y2W89L6BkRAFljhNhgPdyPuBV64bfQNN1PjbCzkIM6qRdKBoLPXmKKMiFYnkd6rAoprih3/PrQEB/VsW8OoM8fxn67UDYuyBTqA23MML9q1+ilIZwBC2AQ2UBVOrFXfFl75p6/B5KsiNG9zpgmLCUYuLkxpLQIDAQAB" des="开发者应用公钥" />
<webXAppID value="wx7899fda6c28b65ee" des="微信小程序AppID" />
<webXAppSecret value="75a052a32fddee48e7a95b3d908cee8d" des="微信小程序AppSecret" />
<webXaccess_token value="102_WFrjA2RSg0iVP_OQ_VO7vPt_YK624fy15giG5ZCkWPca0jksUC6AJsjqKKAaffWbqkG0_kzkP4rlPd7QjEHkq0kv4pccPEEfBX30us6LxFnGS1uXN815ROG6Hq0LJTaAFABZJ" des="小程序access_token" />
<webXaccess_token_time value="2026-03-19 16:53:29" des="小程序access_token_time" />
<webXaccess_token value="102_gzn_fPjYYSRbiIAZeqEK20oxIVcsCfdm9zGtVCsjcsLen2bSDiaUXIG45uXRUfns7mMjo8VpnhS9ent3WTidG7gvFcBuSPPK0TMMhdIstsMM43Sd7FhW2id-_3oGBJbADAQLT" des="小程序access_token" />
<webXaccess_token_time value="2026-03-28 03:09:30" des="小程序access_token_time" />
<webXMchid value="1730304447" des="小程序商户号" />
<webXApiV3Key value="75a052a32fddee48e7a95b3d908cee8d" des="小程序ApiV3Key" />
<webXMchSerialNo value="2CA7BD51CADA642B49C509E03F65BA156CA0DF57" des="小程序商户证书序列号" />
<webXPrivateKey value="MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC8rpjGBnSQNCn4&#xD;&#xA;RmY9L7y1WReayIJ4dRZtplbqDwe62cTLO18ujgSAI0lSA58eF4pu/1SF5gEO7qJM&#xD;&#xA;PBbV6j1whQt58zmMcs4yD/NSa7/Q7KO5+wkrSVebkNGlM+vF9zD8937LC1ltH5Az&#xD;&#xA;5nE5qW1oUnaNul1b+wCY5KnCWfLj1Tla+earxrzSujAKrMOk6dxcKMdsNY1yMF8g&#xD;&#xA;6U73HYi8LFWXAwgTC0nU3vtbQb4v/DaRlVBSYzosuu6QLD0A877GHpHeJDij9VNA&#xD;&#xA;C453c+0wjNXMHizfVcOYD/tiSq97s6OMcsYrT1r3zINUgc6OAuBJ5M5nrpGANwyT&#xD;&#xA;6TYp9JOBAgMBAAECggEAGxyXdTTuQN5N/Y/YFwip/ADuRF51aOuiKmVRbdZ1DONH&#xD;&#xA;xNAmMCFWAjePzIoarg9B5AsqUQcotcWSapPj0B8VbvqfGInbhhPlDwp9syUqbdHj&#xD;&#xA;ANFSkva58O+RQETCpzKKxn6lqHVcBzMW3G5LbLassuXOhTT3P0VE47NPtU6JeTUm&#xD;&#xA;CcLAx9dlg7At6Y7R9rDhvn/kyfZGZ6I9PQNuCu4c/ExkubA3J3QAgrXHzab74qO6&#xD;&#xA;PsyiinNSzzhguYtEd8F3HDq/c2laRGrBHb4otO0GzHyGSCkwfbN3gLqghGjA12XQ&#xD;&#xA;9tAjcHV+NU5NaD2MPXN4d+x+2QMiuFM+6Rf6Y+hW9QKBgQDmnlb9OIFNng1+zewC&#xD;&#xA;IEnYUDKF5UAwbijy9anrM+V6mVQXguL11hgGK+tmrAHNUr/fGJ7gDGQn4TUFzbLz&#xD;&#xA;4eUCYxAqdm0fqEa/khKuQoxXsIfmc0J3NpInZgOL9FdQRrFJefz8U7piWzI6rw59&#xD;&#xA;e9BfQYrCcn9vVOvP6rXCb0NWIwKBgQDRcrL9mvTSUcxDzFLVUms2AI3bslEMR3UJ&#xD;&#xA;ErxiXcm2zp2apBIhMuM56I5ifVEiYMs6gZxWsKxsIFI7dUvOFPlKaLbugnhx9yst&#xD;&#xA;iFBKR511U5AupF1x/8HBis29gOQkPSyIbrIT4KLmGrMOl4F+fz5i0crsrmwdzpgp&#xD;&#xA;69yAbX6gCwKBgB7vSG3pIXce52KGDs1uNVmd0Fkjmkukyztj9qoFKRgb7yrENNuT&#xD;&#xA;H1/cjlQUaJ15JyGu9MjLALhUvj8MC6ApQgXi8e0wO40Ojobt+jGD3b15gZFJDrZd&#xD;&#xA;DJfaWElyui+be/aGNYhHVu4Qm5lBmCj+7cGJUiqpHyz48DTQoBb3w8mPAoGARM3S&#xD;&#xA;IN97l2/Jk2gWuf8mOwo5j7dnSopa1w0xl3rJ3eTH/1nwnrlRzd8ojxAtzAZSHLkh&#xD;&#xA;O5U0PxzrBp9EtMFNF3WIypdPq9iPdZi3D3+xKS63SaszC1UCOGs5pQwnZgQ2kecT&#xD;&#xA;VtZPjRmuQpfgsUZpnxrd95xg5fXNJNBXklTl6PsCgYEA45dnym313OpVTY7aQi3j&#xD;&#xA;Mof4tK7UT2ak2UbP6moI25oIoL1y2YxF5wc0ZtOlqZdzmXtjf5vINmxCIaOCHxPR&#xD;&#xA;e31e876AX1CUOZGYD7Za2VongfCaCFwZXFjzKZtmaE80jaI76RBAO7JO+4EUjvQ/&#xD;&#xA;B4Gy6kAEZeySQxf1ImZJfcs=&#xD;&#xA;" des="小程序商户私钥(PEM格式)" />
<webXPrivateKeyPath value="D:\renyi_workspace\RenyiServer\Mtxfw.VipSite\App_Data\apiclient_key.pem" des="微信支付V3商户私钥文件路径" />
<webToken value="hxgcandgengliu" des="微信Token" />
<webappKey value="wxf5f9acddc8ccc1b8" des="微信appKey" />
<webappSecret value="f1f3b86546204455d841159ca38af0fe" des="微信appSecret" />
@@ -238,7 +243,7 @@
<webappSecret0 value="1051789ae8650add0bb0bea894047f79" des="微信appSecret" />
<weixinAPP_ID value="wx82024f0471acda32" des="微信开发平台appKey" />
<weixinAPP_Secret value="9758dc050e4bf2e74e6c5b842fedf40c" des="微信开发平台appSecret" />
<webPARTNER value="1658269780" des="商户号" />
<webPARTNER value="1730304447" des="商户号" />
<webIP value="211.149.154.154" des="服务器IP" />
<webpushdomain value="87988.livepush.myqcloud.com" des="推流域名" />
<weblivedomain value="zb.fuanmei.cn" des="直播域名" />
@@ -287,20 +292,20 @@
<IM_SDKSecretkey value="f72a3331a005ffefc478a5605ad472ead8f4720eafcd33cf38329360446b4aca" des="即时通讯 IM Secretkey" />
<level0_direct_superior_bonus_ratio value="0.25" des="等级0的直接上级奖金比例(业务佣金)" />
<level1_fixed_bonus value="0" des="等级1的最大奖金比例" />
<level2_fixed_bonus value="0.25" des="等级2的最大奖金比例" />
<level3_fixed_bonus value="0.45" des="等级3的最大奖金比例" />
<level4_fixed_bonus value="0.55" des="等级4的最大奖金比例" />
<level5_fixed_bonus value="0.65" des="等级5的最大奖金比例" />
<level2_fixed_bonus value="0" des="等级2的最大奖金比例" />
<level3_fixed_bonus value="0.2" des="等级3的最大奖金比例" />
<level4_fixed_bonus value="0.3" des="等级4的最大奖金比例" />
<level5_fixed_bonus value="0.4" des="等级5的最大奖金比例" />
<upgrade_level3_amount_condition value="50000" des="升级到等级3的金额条件" />
<upgrade_level4_amount_condition value="200000" des="升级到等级4的金额条件" />
<upgrade_level5_amount_condition value="1000000" des="升级到等级5的金额条件" />
<upgrade_level3_person_condition value="2" des="升级到等级3的拉人条件" />
<upgrade_level4_person_condition value="4" des="升级到等级4的拉人条件" />
<upgrade_level5_person_condition value="8" des="升级到等级5的拉人条件" />
<direct_upgrade_level1_amount_condition value="875" des="直接升级到等级1的金额条件" />
<direct_upgrade_level1_amount_condition value="980" des="直接升级到等级1的金额条件" />
<direct_upgrade_level2_amount_condition value="2000" des="直接升级到等级2的金额条件" />
<direct_upgrade_level3_amount_condition value="0" des="直接升级到等级3的金额条件" />
<direct_upgrade_level4_amount_condition value="0" des="直接升级到等级4的金额条件" />
<direct_upgrade_level5_amount_condition value="0" des="直接升级到等级5的金额条件" />
<direct_upgrade_level3_amount_condition value="5000" des="直接升级到等级3的金额条件" />
<direct_upgrade_level4_amount_condition value="20000" des="直接升级到等级4的金额条件" />
<direct_upgrade_level5_amount_condition value="100000" des="直接升级到等级5的金额条件" />
<vouchervalue value="800" des="赠送兑换卷值" />
</config>

View File

@@ -1,25 +1,25 @@
-----BEGIN CERTIFICATE-----
MIIEKzCCAxOgAwIBAgIUPMkWMvsvvpeHvYW6wIG+dmulQuAwDQYJKoZIhvcNAQEL
MIIENDCCAxygAwIBAgIULKe9UcraZCtJxQngP2W6FWyg31cwDQYJKoZIhvcNAQEL
BQAwXjELMAkGA1UEBhMCQ04xEzARBgNVBAoTClRlbnBheS5jb20xHTAbBgNVBAsT
FFRlbnBheS5jb20gQ0EgQ2VudGVyMRswGQYDVQQDExJUZW5wYXkuY29tIFJvb3Qg
Q0EwHhcNMjQwOTMwMTIyMjUyWhcNMjkwOTI5MTIyMjUyWjCBhDETMBEGA1UEAwwK
MTY5MzQyNjk4NDEbMBkGA1UECgwS5b6u5L+h5ZWG5oi357O757ufMTAwLgYDVQQL
DCfmsZ/oi4/mma7msJHmhafmlbDlrZfnp5HmioDmnInpmZDlhazlj7gxCzAJBgNV
BAYTAkNOMREwDwYDVQQHDAhTaGVuWmhlbjCCASIwDQYJKoZIhvcNAQEBBQADggEP
ADCCAQoCggEBAOPeN5TW/ENyICvrQ+iSzHWLOpyoJpcr15SWVRkP3+AugO48Mmc8
GP0zRZPKWU8QZrECSYWqIXcAy0ZEbYD+vLj9inLoyJoc0Z3aNgXHulsgb6Ge6Dlh
PFf6ibyC1GvPf1FgOzFYVFkPVIFLcLVzOkDmS2tU2Yetpx7wW67axAnWRAigUSdH
Y1GYNBVpDPoAu7LkgdrtzPWeukeCMfwVxfNI+PNjr0Hxv/c4EfHL4AlcUDX3GZBQ
z7kzOtSHEe3mL2+W5uZgjt9o8TMIUlc9KujJypw5uYuA1viSwCW+T6B0XIhoOAGW
jLMQwJo2Tf8Uy+Gm8EUyh5izEFlcMnGhsh8CAwEAAaOBuTCBtjAJBgNVHRMEAjAA
MAsGA1UdDwQEAwID+DCBmwYDVR0fBIGTMIGQMIGNoIGKoIGHhoGEaHR0cDovL2V2
Y2EuaXRydXMuY29tLmNuL3B1YmxpYy9pdHJ1c2NybD9DQT0xQkQ0MjIwRTUwREJD
MDRCMDZBRDM5NzU0OTg0NkMwMUMzRThFQkQyJnNnPUhBQ0M0NzFCNjU0MjJFMTJC
MjdBOUQzM0E4N0FEMUNERjU5MjZFMTQwMzcxMA0GCSqGSIb3DQEBCwUAA4IBAQCt
Y4b0d/mUO1Nu5E4MNTD5bPTVvo+y1HSSb5qA8I5wojzqK6sbgRb6pfUpebKKF6Co
WrVOuceKW+Q6MYLBdGOA+rCQ5R9q6va75j2Hva51c3nEs7N2V/UmTA0JNXJgxu4z
mL6E0pKSsAQI6cAwgGIhqHGPRRcWPbDNuRfsJIK5ALgxNP4akL5D5DBGRyegPHYA
a7WZJPmlLz/ZQHSIgNZHvdlfCScw2A6Yo2mQjupUFhPRcm3j+EUDLt/NRxOP+ctM
YXkvxYwU0ClV2uqhWvdY+a8X+wGe6hMqNXXPpoL3u8F43qQ7cxmFJhGWzLmzho3N
jxMTqWtMi7ejjtmlZCHW
Q0EwHhcNMjUxMDMwMTIyMDMzWhcNMzAxMDI5MTIyMDMzWjCBjTETMBEGA1UEAwwK
MTczMDMwNDQ0NzEbMBkGA1UECgwS5b6u5L+h5ZWG5oi357O757ufMTkwNwYDVQQL
DDDlqITlupXlqITmmJ/ljLrlgaXkuYvnv7zlgaXlurfnrqHnkIbmnInpmZDlhazl
j7gxCzAJBgNVBAYTAkNOMREwDwYDVQQHDAhTaGVuWmhlbjCCASIwDQYJKoZIhvcN
AQEBBQADggEPADCCAQoCggEBALyumMYGdJA0KfhGZj0vvLVZF5rIgnh1Fm2mVuoP
B7rZxMs7Xy6OBIAjSVIDnx4Xim7/VIXmAQ7uokw8FtXqPXCFC3nzOYxyzjIP81Jr
v9Dso7n7CStJV5uQ0aUz68X3MPz3fssLWW0fkDPmcTmpbWhSdo26XVv7AJjkqcJZ
8uPVOVr55qvGvNK6MAqsw6Tp3Fwox2w1jXIwXyDpTvcdiLwsVZcDCBMLSdTe+1tB
vi/8NpGVUFJjOiy67pAsPQDzvsYekd4kOKP1U0ALjndz7TCM1cweLN9Vw5gP+2JK
r3uzo4xyxitPWvfMg1SBzo4C4EnkzmeukYA3DJPpNin0k4ECAwEAAaOBuTCBtjAJ
BgNVHRMEAjAAMAsGA1UdDwQEAwID+DCBmwYDVR0fBIGTMIGQMIGNoIGKoIGHhoGE
aHR0cDovL2V2Y2EuaXRydXMuY29tLmNuL3B1YmxpYy9pdHJ1c2NybD9DQT0xQkQ0
MjIwRTUwREJDMDRCMDZBRDM5NzU0OTg0NkMwMUMzRThFQkQyJnNnPUhBQ0M0NzFC
NjU0MjJFMTJCMjdBOUQzM0E4N0FEMUNERjU5MjZFMTQwMzcxMA0GCSqGSIb3DQEB
CwUAA4IBAQB7OnuXiMBzru5H5jgeP+ozpGfkYgOU54qoWmTJowC0V4NGgah0fC/k
43twxMu2VNqw4Szoqdk+eHRYiH1W/H3p5B7rRrk86Zxk5euIBrPLDmdTOMdDHvmi
FHOBL3jaq40xmfWMx3A5drSA6D/nRNHk0MmwOLTXfDXblDigi1guyDVOGZL0jfru
GZYsMEUd85DSL1UWUJHopYCmAFjlCJbKO3ooSf8xXre/uR4VekauG95aGpMqRtN/
4H9derW2z40SFmq0Pe508UC3f3r+B+DtD6NBi/HYwI+JOe0CM3voeA09RoTEjSLX
hZ1qfqik0Y2vImW9PwapzwI6H5WF0TrY
-----END CERTIFICATE-----

View File

@@ -1,28 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDj3jeU1vxDciAr
60Poksx1izqcqCaXK9eUllUZD9/gLoDuPDJnPBj9M0WTyllPEGaxAkmFqiF3AMtG
RG2A/ry4/Ypy6MiaHNGd2jYFx7pbIG+hnug5YTxX+om8gtRrz39RYDsxWFRZD1SB
S3C1czpA5ktrVNmHrace8Fuu2sQJ1kQIoFEnR2NRmDQVaQz6ALuy5IHa7cz1nrpH
gjH8FcXzSPjzY69B8b/3OBHxy+AJXFA19xmQUM+5MzrUhxHt5i9vlubmYI7faPEz
CFJXPSroycqcObmLgNb4ksAlvk+gdFyIaDgBloyzEMCaNk3/FMvhpvBFMoeYsxBZ
XDJxobIfAgMBAAECggEAdeDsIexBXea5K98uJy9h4+DdtlLqe8OrZ2uJpEhpCUEl
Y5jyfiNBziJq+PRx1QvoA+PqAuKrIzPe9H/LojKlkJFgwOcZd1g3PBC5Z64WArQ5
64MYIS7jF6Q9Aq8vkoIqG//LP1Cxec0La0OKj+OHHDHGjES9r4mu7btrwn3bcjZS
gbG9qSVYdMmu7N6cM7tzK3BdVG12o2IDWxA3Y6AMtuENo+lH24Qg2CfbhSiCVxZ4
rRjBDDpBIbukygXYucmIkbSIAiY0IvHr7TAzqrC1TBYBahdzboiR5TKR9uBEEN9H
Szbc/49SVZCB+gDzl0naYKkqmnp++B78wYIq95HbMQKBgQD/HqdNj9i6rB76bBYx
KO5+ZmCWtHMxxBpjVm4J8SpZ7mYRbhC7lEbS8LnReb8fkE/oumfNiarvKc/22Yxo
1BmDDCFzBJoyXwzn9N2s/KBTKDKfr3xdASoMkPf5W1Lw8p5TrEoHgnZO39M7h3rW
hn1hFfaN8jAbl0ug5HeiEOSXlwKBgQDkp34DjA2MiH3ugKpQMmu4ECn++R81f5Lk
bGGp3g5bjvzM29AxmQYCpD/9NmTgEa9TTV4IkN2rITDZ966f1LqdymxADfn+GxXv
G7AeH+5uUeQnRuQ8xg1NMGGGItTwrunLUNrAETY7DgiCDnWAqpNP3XW3/hVH4nXn
aEaYLCXKuQKBgAGSms1rmZZtATPh/rEG45F76BSFwEAKSW9bVQpSpkQvqAlreEbv
vxAF099qtLbpGNUCcSlfM+KNi26mIKt0w0N/i6U93gV5eIblh4hNdl+M2+MIHegk
3bF+I0kyOuypUjiJ01sAfuI1lwPC7grsgVFb5U0ytQE2iYzQW7xwBji5AoGBALsL
lNb7+51pjnLLSAdgp6OjfWc5jWErIhO/4UifAOm/F2fRrQbVoggJKttNYsm1TdH8
KR8iumKiPR8hMPVIhPxNOa5QgJ9wssmtwa1y+429acEDifN5JCpvmGetGLpmq5QJ
aVjS+6Tlfuo9P7voTad4hzLjI69xPnf1YkJbYvLpAoGABZ8itwHLBuvOYFoYgWOf
wUxplsOWO/wcltH0o1bj8OpdgdurACtXF8P3sMwtP2o0YaKU4QOOhCaYEE0EHQOQ
lzQf3LwNqiyfdpgIRg8gjAkKcyVp8Ci7Tb3dE5Iro4CXJcwtrxkPsXkUAMsKiPeE
QW3LJmlxOdz/YdVgUC4Y8wo=
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC8rpjGBnSQNCn4
RmY9L7y1WReayIJ4dRZtplbqDwe62cTLO18ujgSAI0lSA58eF4pu/1SF5gEO7qJM
PBbV6j1whQt58zmMcs4yD/NSa7/Q7KO5+wkrSVebkNGlM+vF9zD8937LC1ltH5Az
5nE5qW1oUnaNul1b+wCY5KnCWfLj1Tla+earxrzSujAKrMOk6dxcKMdsNY1yMF8g
6U73HYi8LFWXAwgTC0nU3vtbQb4v/DaRlVBSYzosuu6QLD0A877GHpHeJDij9VNA
C453c+0wjNXMHizfVcOYD/tiSq97s6OMcsYrT1r3zINUgc6OAuBJ5M5nrpGANwyT
6TYp9JOBAgMBAAECggEAGxyXdTTuQN5N/Y/YFwip/ADuRF51aOuiKmVRbdZ1DONH
xNAmMCFWAjePzIoarg9B5AsqUQcotcWSapPj0B8VbvqfGInbhhPlDwp9syUqbdHj
ANFSkva58O+RQETCpzKKxn6lqHVcBzMW3G5LbLassuXOhTT3P0VE47NPtU6JeTUm
CcLAx9dlg7At6Y7R9rDhvn/kyfZGZ6I9PQNuCu4c/ExkubA3J3QAgrXHzab74qO6
PsyiinNSzzhguYtEd8F3HDq/c2laRGrBHb4otO0GzHyGSCkwfbN3gLqghGjA12XQ
9tAjcHV+NU5NaD2MPXN4d+x+2QMiuFM+6Rf6Y+hW9QKBgQDmnlb9OIFNng1+zewC
IEnYUDKF5UAwbijy9anrM+V6mVQXguL11hgGK+tmrAHNUr/fGJ7gDGQn4TUFzbLz
4eUCYxAqdm0fqEa/khKuQoxXsIfmc0J3NpInZgOL9FdQRrFJefz8U7piWzI6rw59
e9BfQYrCcn9vVOvP6rXCb0NWIwKBgQDRcrL9mvTSUcxDzFLVUms2AI3bslEMR3UJ
ErxiXcm2zp2apBIhMuM56I5ifVEiYMs6gZxWsKxsIFI7dUvOFPlKaLbugnhx9yst
iFBKR511U5AupF1x/8HBis29gOQkPSyIbrIT4KLmGrMOl4F+fz5i0crsrmwdzpgp
69yAbX6gCwKBgB7vSG3pIXce52KGDs1uNVmd0Fkjmkukyztj9qoFKRgb7yrENNuT
H1/cjlQUaJ15JyGu9MjLALhUvj8MC6ApQgXi8e0wO40Ojobt+jGD3b15gZFJDrZd
DJfaWElyui+be/aGNYhHVu4Qm5lBmCj+7cGJUiqpHyz48DTQoBb3w8mPAoGARM3S
IN97l2/Jk2gWuf8mOwo5j7dnSopa1w0xl3rJ3eTH/1nwnrlRzd8ojxAtzAZSHLkh
O5U0PxzrBp9EtMFNF3WIypdPq9iPdZi3D3+xKS63SaszC1UCOGs5pQwnZgQ2kecT
VtZPjRmuQpfgsUZpnxrd95xg5fXNJNBXklTl6PsCgYEA45dnym313OpVTY7aQi3j
Mof4tK7UT2ak2UbP6moI25oIoL1y2YxF5wc0ZtOlqZdzmXtjf5vINmxCIaOCHxPR
e31e876AX1CUOZGYD7Za2VongfCaCFwZXFjzKZtmaE80jaI76RBAO7JO+4EUjvQ/
B4Gy6kAEZeySQxf1ImZJfcs=
-----END PRIVATE KEY-----

File diff suppressed because it is too large Load Diff

View File

@@ -1,9 +1,4 @@
System.Data.SqlClient.SqlException (0x80131904): 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: TCP Provider, error: 0 - 等待的操作过时。) ---> System.ComponentModel.Win32Exception (0x80004005): 等待的操作过时。
在 System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, DbConnectionPool pool, String accessToken, Boolean applyTransientFaultHandling, SqlAuthenticationProviderManager sqlAuthProviderManager)
在 System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)
在 System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions)
在 System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
在 System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
在 System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)
在 System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)
在 System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)

View File

@@ -1,3 +1,4 @@
using Aop.Api.Domain;
using Mtxfw.Utility;
using Mtxfw.VipSite.api;
using Newtonsoft.Json;
@@ -11,6 +12,7 @@ using System.Data.SqlClient;
using System.Drawing;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Net;
using System.Security.Cryptography;
using System.Text;
@@ -275,6 +277,8 @@ namespace Mtxfw.VipSite
case "getqiandao": data = getqiandao(context); break;
case "qiandao": data = qiandao(context); break;
case "getmytgm": data = getmytgm2(context); break;
case "getmyhxm": data = getmyhxm(context); break;
case "orderhx": data = orderhx(context); break;
case "appdeclaration": data = appdeclaration(context); break;
case "kttgy": data = kttgy(context); break;
case "getkttgylist": data = getkttgylist(context); break;
@@ -2779,10 +2783,10 @@ namespace Mtxfw.VipSite
/// </summary>
/// <param name="byt">要转换的字节流</param>
/// <returns>转换得到的Image对象</returns>
public static Image BytToImg(byte[] byt)
public static System.Drawing.Image BytToImg(byte[] byt)
{
MemoryStream ms = new MemoryStream(byt);
Image img = Image.FromStream(ms);
System.Drawing.Image img = System.Drawing.Image.FromStream(ms);
return img;
}
public byte[] StreamToBytes(Stream stream)
@@ -8727,6 +8731,9 @@ namespace Mtxfw.VipSite
Int32 Recount = 0;//
//System.Data.DataSet Ds_ = daobusiness.GetDataSet(groupby, strOrder, "id,UserId,CompanyName,picture,Companyaddress,ycoo,xcoo,dbo.GetDistance(" + latitude + "," + longitude + ",xcoo,ycoo) as distance", "", "utype='0' and (seef=1 or seef0=1) and showpic=0" + strsql + "", Start, Limit, out Recount);
System.Data.DataSet Ds_ = daobusiness.GetDataSet(groupby, strOrder, "id,UserId,CompanyName,picture,Companyaddress,ycoo,xcoo,ContactPhone,dbo.GetDistance(" + latitude + "," + longitude + ",xcoo,ycoo) as distance", "", "utype='2' and (seef=1 or seef0=1) and showpic=0" + strsql + "", Start, Limit, out Recount);
//打印上一行执行的sql语句
if (Ds_.Tables[1].Rows.Count > 0)
{
int j = 0;
@@ -10962,6 +10969,184 @@ namespace Mtxfw.VipSite
#endregion
#region //获取我的核销码-----------------------------------------------------------------------------------------
/// <summary>
/// 获取我的核销码
/// </summary>
protected string getmyhxm(HttpContext context)
{
string data = "{\"status\":0}";
int userId = 0;
if (!String.IsNullOrEmpty(context.Request["userId"]) && !String.IsNullOrEmpty(context.Request["LoginId"]) && !String.IsNullOrEmpty(context.Request["orderid"]) && !String.IsNullOrEmpty(context.Request["hxm"]))
{
userId = Convert.ToInt32(context.Request["userId"].ToString());
if (userId == 0)
{
data = "{\"status\":0,\"msg\":\"参数错误\"}";
return data;
}
string LoginId = HttpUtility.UrlDecode(context.Request["LoginId"].ToString());
string hxm = HttpUtility.UrlDecode(context.Request["hxm"].ToString());
string orderid = HttpUtility.UrlDecode(context.Request["orderid"].ToString());
Mtxfw.Model.user_info umodel = daoUser.GetModel(userId);
if (umodel != null)
{
if (umodel.LoginId2 == LoginId)
{
bool ifb = true;
DateTime dt1 = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
if (config.webXaccess_token != "" && config.webXaccess_token_time != "")
{
DateTime dt2 = Convert.ToDateTime(Convert.ToDateTime(config.webXaccess_token_time).AddMinutes(10).ToString("yyyy-MM-dd HH:mm:ss"));
if (dt1 > dt2)
{
ifb = false;
}
}
else
{
ifb = false;
}
if (!ifb)
{
Mtxfw.Utility.WXaccess_token ac = Mtxfw.Utility.Common.getxaccess_token(config.webXAppID, config.webXAppSecret);
config.webXaccess_token = ac.access_token;
config.webXaccess_token_time = dt1.ToString("yyyy-MM-dd HH:mm:ss");
config.Save();
}
//string URL = "https://api.weixin.qq.com/wxa/getwxacode?access_token=" + config.webXaccess_token;
//string json = "{\"path\":\"pages/index/index?tguid=" + Mtxfw.Utility.Security.encrypt(umodel.Id) + "\"}";
string URL = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + config.webXaccess_token;
var requestData = new
{
scene = $"orderid={orderid}&hxm={hxm}", // 启动参数最大32字符
page = "pages/index/index",
Check_path = false // 开发阶段设为false避免页面未发布报错
};
string json = Newtonsoft.Json.JsonConvert.SerializeObject(requestData);
json = "{\"scene\":\"" + $"orderid={orderid}&hxm={hxm}" + "\",\"page\":\"pages/hxorderinfo/index\"}";
//json = "{\"scene\":\"" + $"orderid={orderid}&hxm={hxm}" + "\",\"page\":\"pages/index/index\"}";
//json = "{\"scene\":\"" + Mtxfw.Utility.Security.encrypt(111) + "\",\"page\":\"pages/index/index\"}";
//json = "{\"scene\":\"" + "111" + "\",\"page\":\"pages/index/index\"}";
byte[] bytes = Mtxfw.Utility.Common.GetResponsebyte(json, URL);
string str = System.Text.Encoding.Default.GetString(bytes);
//Mtxfw.Utility.Common.WriteHtml("/weixin/errcode.txt", str);
if (str.IndexOf("errcode") != -1)
{
Mtxfw.Utility.WXaccess_token ac = Mtxfw.Utility.Common.getxaccess_token(config.webXAppID, config.webXAppSecret);
config.webXaccess_token = ac.access_token;
config.webXaccess_token_time = dt1.ToString("yyyy-MM-dd HH:mm:ss");
config.Save();
URL = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + ac.access_token;
bytes = Mtxfw.Utility.Common.GetResponsebyte(json, URL);
str = BitConverter.ToString(bytes);
string ewmpic = "data:image/png;base64," + Convert.ToBase64String(bytes);
// new Mtxfw.DAL.user_info().UpdatePassword("EWMPic2", ewmpic, umodel.Id);
Mtxfw.Utility.Common.WriteHtml("/weixin/EWMPic.txt", ewmpic);
data = "{\"status\":1,\"QRcode\":\"" + ewmpic + "\",\"minQRcode\":\"" + ewmpic + "\",\"hxm\":\"" + hxm + "\"}";
}
else
{
data = "{\"status\":0,\"msg\":\"生成二维码失败\"}";
}
}
else
{
data = "{\"status\":0,\"msg\":\"您未登录\"}";
}
}
else
{
data = "{\"status\":0,\"msg\":\"参数错误\"}";
return data;
}
}
else
{
data = "{\"status\":0,\"msg\":\"参数为空\"}";
return data;
}
return data;
}
#endregion
#region //核销订单-----------------------------------------------------------------------------------------
/// <summary>
/// 核销订单
/// </summary>
protected string orderhx(HttpContext context)
{
string data = "{\"status\":0}";
int userId = 0;
if (!String.IsNullOrEmpty(context.Request["userId"]) && !String.IsNullOrEmpty(context.Request["LoginId"]) && !String.IsNullOrEmpty(context.Request["id"]) && !String.IsNullOrEmpty(context.Request["hxm"]))
{
userId = Convert.ToInt32(context.Request["userId"].ToString());
if (userId == 0)
{
data = "{\"status\":0,\"msg\":\"参数错误\"}";
return data;
}
string LoginId = HttpUtility.UrlDecode(context.Request["LoginId"].ToString());
string hxm = HttpUtility.UrlDecode(context.Request["hxm"].ToString());
string id = HttpUtility.UrlDecode(context.Request["id"].ToString());
//string orderid = HttpUtility.UrlDecode(context.Request["orderid"].ToString());
Mtxfw.Model.user_info umodel = daoUser.GetModel(userId);
if (umodel != null)
{
if (umodel.LoginId2 == LoginId)
{
try
{
DateTime dt = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
var execount = new Mtxfw.DAL.order_info().UpdateHxState(dt, id, hxm);
if (execount>0)
{
var msg = "核销成功";
data = "{\"status\":1,\"msg\":\"" + msg + "\"}";
}
else
{
data = "{\"status\":0,\"msg\":\"核销订单失败\"}";
}
}
catch (Exception ex )
{
data = "{\"status\":0,\"msg\":\""+ ex .Message+ "\"}";
}
}
else
{
data = "{\"status\":0,\"msg\":\"您未登录\"}";
}
}
else
{
data = "{\"status\":0,\"msg\":\"参数错误\"}";
return data;
}
}
else
{
data = "{\"status\":0,\"msg\":\"参数为空\"}";
return data;
}
return data;
}
#endregion
#region //申请代理-----------------------------------------------------------------------------------------
/// <summary>
/// 申请代理
@@ -14951,6 +15136,8 @@ namespace Mtxfw.VipSite
}
int poid = 0;
int agentid = 0, agenttype = 0, ZTUserID = 0;
//自提订单核销码
string orderhxm = "";
string contact = "";
string tel = "";
string province = "";
@@ -15106,6 +15293,7 @@ namespace Mtxfw.VipSite
if (!String.IsNullOrEmpty(context.Request["agentid"]))
{
agentid = Convert.ToInt32(context.Request["agentid"].ToString());
orderhxm = orderhxm = GenerateRandomString(6);
if (!String.IsNullOrEmpty(context.Request["agenttype"]))
{
agenttype = Convert.ToInt32(context.Request["agenttype"].ToString());
@@ -16207,6 +16395,7 @@ namespace Mtxfw.VipSite
Modelorder.ifxhpt = 1;//0任E森命订单1任E森命订单
Modelorder.peitype = peitype;
Modelorder.gtype = gtype;
Modelorder.orderhxm = orderhxm;
int OrderID = daoorder.Add(Modelorder);
daoorder.Updateopenid(openid, OrderID);
string Address0 = province0 + "|" + city0 + "|" + county0 + "|" + IFFill0 + "|" + Tradingarea0;
@@ -16667,36 +16856,60 @@ namespace Mtxfw.VipSite
Mtxfw.Utility.Common.WriteHtml("/weixin/xapiajaxstrstart3.txt", data);
}
}
else
else
{
// ========================================
// 微信小程序支付 - 创建JSAPI支付订单
// 功能: 调用微信统一下单接口,获取小程序调起支付所需的参数
// 微信小程序支付 - 创建JSAPI支付订单(V3版)
// 功能: 调用微信V3统一下单接口,获取小程序调起支付所需的参数
// ========================================
try
{
// 步骤1: 创建微信小程序支付类实例
// config参数包含: appid、商户号、密钥等配置信息
Mtxfw.Utility.MiniProgramPay miniPay = new Mtxfw.Utility.MiniProgramPay(config);
// 步骤1: 初始化V3配置
// 从配置中心读取V3支付所需参数
Mtxfw.Utility.WxPayV3Config.ApiV3Key = config.webXApiV3Key; // APIv3密钥
Mtxfw.Utility.WxPayV3Config.MchSerialNo = config.webXMchSerialNo; // 商户证书序列号
// 步骤2: 金额转换
// 从文件读取商户私钥(PEM格式)
string privateKeyPath = config.webXPrivateKeyPath; // 从配置中读取私钥文件路径
if (string.IsNullOrEmpty(privateKeyPath))
{
// 默认路径
privateKeyPath = context.Server.MapPath("~/App_Data/apiclient_key.pem");
}
if (File.Exists(privateKeyPath))
{
Mtxfw.Utility.WxPayV3Config.PrivateKey = File.ReadAllText(privateKeyPath);
}
else
{
// 如果文件不存在,使用配置中的私钥作为备用
Mtxfw.Utility.WxPayV3Config.PrivateKey = config.webXPrivateKey;
}
// 步骤2: 创建V3支付服务实例
var v3PayService = new Mtxfw.Utility.WxPayV3Service(
config,
Mtxfw.Utility.WxPayV3Config.ApiV3Key,
Mtxfw.Utility.WxPayV3Config.MchSerialNo,
Mtxfw.Utility.WxPayV3Config.PrivateKey);
// 步骤3: 金额转换
// PayZSubTotal单位为元需转换为分(乘以100)
// 微信支付接口要求金额单位为分
int totalFee = (int)(PayZSubTotal * 100);
// 步骤3: 设置支付回调通知地址
// 支付成功后微信会向此地址发送异步通知
string notifyUrl = config.webUrl + "/pay/wxpaynotify_url.aspx";
// 步骤4: 调用创建JSAPI支付订单接口
// openid: 用户在小程序中的唯一标识
// PayID: 商户订单号,需保证唯一性
// totalFee: 订单金额,单位: 分
// body: 商品描述
// notifyUrl: 支付结果通知回调地址
Mtxfw.Utility.MiniProgramPayResult payResult = miniPay.CreateJsApiOrder(openid, PayID, totalFee, body, "", notifyUrl);
// 步骤5: 处理支付订单创建结果
// 步骤4: 设置支付回调通知地址
string notifyUrl = config.webUrl + "/pay/weixinnotify_url.aspx";
// 步骤5: 调用V3版创建JSAPI支付订单接口
var payResult = v3PayService.CreateJsApiOrderV3(
openId: openid,
outTradeNo: PayID,
totalFee: totalFee,
description: body,
notifyUrl: notifyUrl);
// 步骤6: 处理支付订单创建结果
if (payResult.Success)
{
// 创建成功,设置小程序调起支付所需的参数
@@ -16704,24 +16917,26 @@ namespace Mtxfw.VipSite
// nonceStr: 随机字符串,用于签名计算
// package: 订单详情格式为prepay_id=xxx
// paySign: 签名,用于安全校验
// signType: 签名类型,固定为MD5
// signType: 签名类型,V3版使用RSA
timestamp = payResult.TimeStamp;
nonceStr = payResult.NonceStr;
package = payResult.Package;
paySign = payResult.PaySign;
signType = payResult.SignType;
// 记录成功日志,便于问题排查
Mtxfw.Utility.Common.WriteHtml("/weixin/miniProgramPaySuccess.txt", miniPay.GetPayResultJson(payResult));
Mtxfw.Utility.Common.WriteHtml("/weixin/miniProgramPayV3Success.txt",
$"PayID:{PayID}, PrepayId:{payResult.PrepayId}, TimeStamp:{timestamp}, NonceStr:{nonceStr}");
}
else
{
// 创建失败,返回错误信息给前端
b = false;
data = "{\"status\":0,\"msg\":\"" + payResult.Message + "\"}";
// 记录失败日志,包含错误码和错误描述
Mtxfw.Utility.Common.WriteHtml("/weixin/miniProgramPayError.txt", miniPay.GetPayResultJson(payResult));
Mtxfw.Utility.Common.WriteHtml("/weixin/miniProgramPayV3Error.txt",
$"PayID:{PayID}, Error:{payResult.Message}");
}
}
catch (Exception exPay)
@@ -16731,12 +16946,12 @@ namespace Mtxfw.VipSite
data = "{\"status\":0,\"msg\":\"支付创建失败\"}";
// 记录异常详情到日志文件
Mtxfw.Utility.Common.WriteHtml("/weixin/miniProgramPayException.txt", exPay.ToString());
Mtxfw.Utility.Common.WriteHtml("/weixin/miniProgramPayV3Exception.txt", exPay.ToString());
// 记录错误日志到数据库,便于后续排查
Model.User_Errlog errLog = new Model.User_Errlog();
errLog.DLID = 0;
errLog.ErrType = "微信小程序支付异常";
errLog.ErrType = "微信小程序支付V3异常";
errLog.addtime = DateTime.Now;
errLog.ErrBody = openid + "|" + PayID + "|" + PayZSubTotal; // 记录关键参数
errLog.ErrBody2 = exPay.ToString(); // 记录异常详情
@@ -20806,7 +21021,7 @@ namespace Mtxfw.VipSite
Start = Convert.ToInt32(HttpUtility.UrlDecode(context.Request["Start"].ToString()));
}
Int32 Recount = 0;
DataSet ds = new DAL.order_info().GetDataSet(groupby, strOrder, "ttype,ptype,peitype,id,pid,poid,orderid,Totalnum,pcount,ypcount,ypznum,ifxhpt,ifpd,ifbhzshy,Totalprice,O_Payed,O_Payed_Date,O_Shipped,O_Shipped_Date,O_received,O_received_Date,O_SubmitDate,Contactname,Contacttel,Province,City,County,Address,kdcompay,yundanhao,Guests,wlremarks, refundstatus, refund_channel, user_received_account, success_time,O_Seef, O_ReturnReason" + strfill, "", "ttype IN(0,1) and IFDelete=0" + strsql + "", Start, Limit, out Recount);
DataSet ds = new DAL.order_info().GetDataSet(groupby, strOrder, "orderhxm,ttype,ptype,peitype,id,pid,poid,orderid,Totalnum,pcount,ypcount,ypznum,ifxhpt,ifpd,ifbhzshy,Totalprice,O_Payed,O_Payed_Date,O_Shipped,O_Shipped_Date,O_received,O_received_Date,O_SubmitDate,Contactname,Contacttel,Province,City,County,Address,kdcompay,yundanhao,Guests,wlremarks, refundstatus, refund_channel, user_received_account, success_time,O_Seef, O_ReturnReason" + strfill, "", "ttype IN(0,1) and IFDelete=0" + strsql + "", Start, Limit, out Recount);
int dtcount = Recount;
if (ds.Tables[1].Rows.Count > 0)
@@ -20848,9 +21063,10 @@ namespace Mtxfw.VipSite
string wlremarks = Mtxfw.Utility.Common.ReplaceString(Dr["wlremarks"].ToString());
int O_Seef = Convert.ToInt32(Dr["O_Seef"].ToString());
string O_ReturnReason = Dr["O_ReturnReason"].ToString();
string orderhxm = Dr["orderhxm"].ToString();
string[] strStatus = Mtxfw.Utility.Common.GetOrderStatus(utype, O_Id, orderid, ptype, peitype, O_SubmitDate, O_Payed, O_Payed_Date, O_Shipped, O_Shipped_Date, O_received, O_received_Date, kdcompay, yundanhao, Contacttel, wlremarks, refundstatus, refund_channel, user_received_account, success_time, O_Seef, Totalprice, O_ReturnReason, 0);
strdata += "{\"O_Id\":\"" + O_Id + "\",\"Payed\":\"" + O_Payed + "\",\"orderid\":\"" + orderid + "\",\"Totalnum\":\"" + Totalnum + "\",\"Totalprice\":\"" + Totalprice + "\",\"SubmitDate\":\"" + O_SubmitDate + "\",\"Contactname\":\"" + Contactname + "\",\"Contacttel\":\"" + Contacttel + "\",\"Province\":\"" + Province + "\",\"City\":\"" + City + "\",\"County\":\"" + County + "\",\"Address\":\"" + Address + "\",\"kdgs\":\"" + kdcompay + "\",\"kdgsmc\":\"" + Mtxfw.Utility.Common.Getkdcompay(kdcompay) + "\",\"ydh\":\"" + yundanhao + "\",\"status0\":\"" + strStatus[0] + "\",\"status1\":\"" + strStatus[1] + "\",\"Guests\":\"" + Mtxfw.Utility.Common.ReplaceString(Guests) + "\",\"pics\":[";
strdata += "{\"O_Id\":\"" + O_Id + "\",\"Payed\":\"" + O_Payed + "\",\"orderhxm\":\"" + orderhxm + "\",\"orderid\":\"" + orderid + "\",\"Totalnum\":\"" + Totalnum + "\",\"Totalprice\":\"" + Totalprice + "\",\"SubmitDate\":\"" + O_SubmitDate + "\",\"Contactname\":\"" + Contactname + "\",\"Contacttel\":\"" + Contacttel + "\",\"Province\":\"" + Province + "\",\"City\":\"" + City + "\",\"County\":\"" + County + "\",\"Address\":\"" + Address + "\",\"kdgs\":\"" + kdcompay + "\",\"kdgsmc\":\"" + Mtxfw.Utility.Common.Getkdcompay(kdcompay) + "\",\"ydh\":\"" + yundanhao + "\",\"status0\":\"" + strStatus[0] + "\",\"status1\":\"" + strStatus[1] + "\",\"Guests\":\"" + Mtxfw.Utility.Common.ReplaceString(Guests) + "\",\"pics\":[";
System.Data.DataSet Ds_op = new DAL.order_product_info().GetList("(Select utype from P_Product b where b.P_ID=a.pid) as cutype,(Select P_NAME from P_Product b where b.P_ID=a.pid) as prodName,(Select P_bianhao from P_Product b where b.P_ID=a.pid) as bianhao,(Select P_images from P_Product b where b.P_ID=a.pid) as prodimg,(Select selcolor from P_Product b where b.P_ID=a.pid) as cselcolor,", "orderid=" + O_Id + " And UserID=" + model.Id + " And IFDelete=0 Order By SubmitTime asc");
if (Ds_op.Tables[0].Rows.Count > 0)
{
@@ -20971,10 +21187,10 @@ namespace Mtxfw.VipSite
string strdata = "";
string strsql = "";
strsql = (strid != "" ? "out_trade_no='" + strid + "'" : " And Id=" + orderId);
string utype = "";
DataSet ds = new DAL.order_info().GetList1("ttype,ptype,peitype,id,pid,poid,orderid,Totalnum,pcount,ypcount,ypznum,ifxhpt,ifpd,ifbhzshy,Totalprice,O_Payed,O_Payed_Date,O_Shipped,O_Shipped_Date,O_received,O_received_Date,O_SubmitDate,Contactname,Contacttel,Address,Address0,Zipcode,kdcompay,yundanhao,guests,wlremarks,Province,City,County, refundstatus, refund_channel, user_received_account, success_time,O_Seef, O_ReturnReason", "IFDelete=0" + strsql + " Order By addtime Desc");
//strsql = (strid != "" ? "out_trade_no='" + strid + "'" : " And Id=" + orderId);
strsql = (strid != "" ? "And orderid='" + strid + "'" : " And Id=" + orderId);
string utype = "";
DataSet ds = new DAL.order_info().GetList1("orderhxm,ttype,ptype,peitype,id,pid,poid,orderid,Totalnum,pcount,ypcount,ypznum,ifxhpt,ifpd,ifbhzshy,Totalprice,O_Payed,O_Payed_Date,O_Shipped,O_Shipped_Date,O_received,O_received_Date,O_SubmitDate,Contactname,Contacttel,Address,Address0,Zipcode,kdcompay,yundanhao,guests,wlremarks,Province,City,County, refundstatus, refund_channel, user_received_account, success_time,O_Seef, O_ReturnReason", "IFDelete=0" + strsql + " Order By addtime Desc");
if (ds.Tables[0].Rows.Count > 0)
{
int i = 0;
@@ -23876,7 +24092,21 @@ namespace Mtxfw.VipSite
}
return strdata;
}
public object FromProvincedataJson(string json)
/// <summary>
/// 随机生成数字加小写字母
/// </summary>
/// <param name="length"></param>
/// <returns></returns>
private string GenerateRandomString(int length)
{
const string chars = "abcdefghijklmnopqrstuvwxyz0123456789";
var random = new Random();
return new string(Enumerable.Repeat(chars, length)
.Select(s => s[random.Next(s.Length)]).ToArray());
}
public object FromProvincedataJson(string json)
{
JavaScriptSerializer js = new JavaScriptSerializer();
return js.Deserialize<returnProvincedata>(json);
@@ -24073,4 +24303,6 @@ namespace Mtxfw.VipSite
public String signType { get; set; }
public String paySign { get; set; }
}
}

View File

@@ -17,40 +17,114 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TencentCloud", "TencentClou
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "COSXML", "COSXML\COSXML.csproj", "{FC694C68-F0E3-411F-8E6C-2E9F94826016}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mtxfw.Utility.Tests", "Mtxfw.Utility.Tests\Mtxfw.Utility.Tests.csproj", "{D6F2400A-6576-4028-8136-212C4176546D}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{61F0C4B0-35BD-4D88-95F8-C2FBEB91EDB4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{61F0C4B0-35BD-4D88-95F8-C2FBEB91EDB4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{61F0C4B0-35BD-4D88-95F8-C2FBEB91EDB4}.Debug|x64.ActiveCfg = Debug|Any CPU
{61F0C4B0-35BD-4D88-95F8-C2FBEB91EDB4}.Debug|x64.Build.0 = Debug|Any CPU
{61F0C4B0-35BD-4D88-95F8-C2FBEB91EDB4}.Debug|x86.ActiveCfg = Debug|Any CPU
{61F0C4B0-35BD-4D88-95F8-C2FBEB91EDB4}.Debug|x86.Build.0 = Debug|Any CPU
{61F0C4B0-35BD-4D88-95F8-C2FBEB91EDB4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{61F0C4B0-35BD-4D88-95F8-C2FBEB91EDB4}.Release|Any CPU.Build.0 = Release|Any CPU
{61F0C4B0-35BD-4D88-95F8-C2FBEB91EDB4}.Release|x64.ActiveCfg = Release|Any CPU
{61F0C4B0-35BD-4D88-95F8-C2FBEB91EDB4}.Release|x64.Build.0 = Release|Any CPU
{61F0C4B0-35BD-4D88-95F8-C2FBEB91EDB4}.Release|x86.ActiveCfg = Release|Any CPU
{61F0C4B0-35BD-4D88-95F8-C2FBEB91EDB4}.Release|x86.Build.0 = Release|Any CPU
{1D0B9E05-919D-4AA0-A0D1-CBA71C001013}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1D0B9E05-919D-4AA0-A0D1-CBA71C001013}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1D0B9E05-919D-4AA0-A0D1-CBA71C001013}.Debug|x64.ActiveCfg = Debug|Any CPU
{1D0B9E05-919D-4AA0-A0D1-CBA71C001013}.Debug|x64.Build.0 = Debug|Any CPU
{1D0B9E05-919D-4AA0-A0D1-CBA71C001013}.Debug|x86.ActiveCfg = Debug|Any CPU
{1D0B9E05-919D-4AA0-A0D1-CBA71C001013}.Debug|x86.Build.0 = Debug|Any CPU
{1D0B9E05-919D-4AA0-A0D1-CBA71C001013}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1D0B9E05-919D-4AA0-A0D1-CBA71C001013}.Release|Any CPU.Build.0 = Release|Any CPU
{1D0B9E05-919D-4AA0-A0D1-CBA71C001013}.Release|x64.ActiveCfg = Release|Any CPU
{1D0B9E05-919D-4AA0-A0D1-CBA71C001013}.Release|x64.Build.0 = Release|Any CPU
{1D0B9E05-919D-4AA0-A0D1-CBA71C001013}.Release|x86.ActiveCfg = Release|Any CPU
{1D0B9E05-919D-4AA0-A0D1-CBA71C001013}.Release|x86.Build.0 = Release|Any CPU
{CCF81F42-9163-4046-8712-D9D31AE27E07}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CCF81F42-9163-4046-8712-D9D31AE27E07}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CCF81F42-9163-4046-8712-D9D31AE27E07}.Debug|x64.ActiveCfg = Debug|Any CPU
{CCF81F42-9163-4046-8712-D9D31AE27E07}.Debug|x64.Build.0 = Debug|Any CPU
{CCF81F42-9163-4046-8712-D9D31AE27E07}.Debug|x86.ActiveCfg = Debug|Any CPU
{CCF81F42-9163-4046-8712-D9D31AE27E07}.Debug|x86.Build.0 = Debug|Any CPU
{CCF81F42-9163-4046-8712-D9D31AE27E07}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CCF81F42-9163-4046-8712-D9D31AE27E07}.Release|Any CPU.Build.0 = Release|Any CPU
{CCF81F42-9163-4046-8712-D9D31AE27E07}.Release|x64.ActiveCfg = Release|Any CPU
{CCF81F42-9163-4046-8712-D9D31AE27E07}.Release|x64.Build.0 = Release|Any CPU
{CCF81F42-9163-4046-8712-D9D31AE27E07}.Release|x86.ActiveCfg = Release|Any CPU
{CCF81F42-9163-4046-8712-D9D31AE27E07}.Release|x86.Build.0 = Release|Any CPU
{30ADCF42-5D3E-4519-8E04-CA0C7213A556}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{30ADCF42-5D3E-4519-8E04-CA0C7213A556}.Debug|Any CPU.Build.0 = Debug|Any CPU
{30ADCF42-5D3E-4519-8E04-CA0C7213A556}.Debug|x64.ActiveCfg = Debug|Any CPU
{30ADCF42-5D3E-4519-8E04-CA0C7213A556}.Debug|x64.Build.0 = Debug|Any CPU
{30ADCF42-5D3E-4519-8E04-CA0C7213A556}.Debug|x86.ActiveCfg = Debug|Any CPU
{30ADCF42-5D3E-4519-8E04-CA0C7213A556}.Debug|x86.Build.0 = Debug|Any CPU
{30ADCF42-5D3E-4519-8E04-CA0C7213A556}.Release|Any CPU.ActiveCfg = Release|Any CPU
{30ADCF42-5D3E-4519-8E04-CA0C7213A556}.Release|Any CPU.Build.0 = Release|Any CPU
{30ADCF42-5D3E-4519-8E04-CA0C7213A556}.Release|x64.ActiveCfg = Release|Any CPU
{30ADCF42-5D3E-4519-8E04-CA0C7213A556}.Release|x64.Build.0 = Release|Any CPU
{30ADCF42-5D3E-4519-8E04-CA0C7213A556}.Release|x86.ActiveCfg = Release|Any CPU
{30ADCF42-5D3E-4519-8E04-CA0C7213A556}.Release|x86.Build.0 = Release|Any CPU
{D4CA5ACC-8E5B-4E54-A057-2F80B7566266}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D4CA5ACC-8E5B-4E54-A057-2F80B7566266}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D4CA5ACC-8E5B-4E54-A057-2F80B7566266}.Debug|x64.ActiveCfg = Debug|Any CPU
{D4CA5ACC-8E5B-4E54-A057-2F80B7566266}.Debug|x64.Build.0 = Debug|Any CPU
{D4CA5ACC-8E5B-4E54-A057-2F80B7566266}.Debug|x86.ActiveCfg = Debug|Any CPU
{D4CA5ACC-8E5B-4E54-A057-2F80B7566266}.Debug|x86.Build.0 = Debug|Any CPU
{D4CA5ACC-8E5B-4E54-A057-2F80B7566266}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D4CA5ACC-8E5B-4E54-A057-2F80B7566266}.Release|Any CPU.Build.0 = Release|Any CPU
{D4CA5ACC-8E5B-4E54-A057-2F80B7566266}.Release|x64.ActiveCfg = Release|Any CPU
{D4CA5ACC-8E5B-4E54-A057-2F80B7566266}.Release|x64.Build.0 = Release|Any CPU
{D4CA5ACC-8E5B-4E54-A057-2F80B7566266}.Release|x86.ActiveCfg = Release|Any CPU
{D4CA5ACC-8E5B-4E54-A057-2F80B7566266}.Release|x86.Build.0 = Release|Any CPU
{ED552C75-4EE5-47F2-834D-317DC0CBE60E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{ED552C75-4EE5-47F2-834D-317DC0CBE60E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{ED552C75-4EE5-47F2-834D-317DC0CBE60E}.Debug|x64.ActiveCfg = Debug|Any CPU
{ED552C75-4EE5-47F2-834D-317DC0CBE60E}.Debug|x64.Build.0 = Debug|Any CPU
{ED552C75-4EE5-47F2-834D-317DC0CBE60E}.Debug|x86.ActiveCfg = Debug|Any CPU
{ED552C75-4EE5-47F2-834D-317DC0CBE60E}.Debug|x86.Build.0 = Debug|Any CPU
{ED552C75-4EE5-47F2-834D-317DC0CBE60E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{ED552C75-4EE5-47F2-834D-317DC0CBE60E}.Release|Any CPU.Build.0 = Release|Any CPU
{ED552C75-4EE5-47F2-834D-317DC0CBE60E}.Release|x64.ActiveCfg = Release|Any CPU
{ED552C75-4EE5-47F2-834D-317DC0CBE60E}.Release|x64.Build.0 = Release|Any CPU
{ED552C75-4EE5-47F2-834D-317DC0CBE60E}.Release|x86.ActiveCfg = Release|Any CPU
{ED552C75-4EE5-47F2-834D-317DC0CBE60E}.Release|x86.Build.0 = Release|Any CPU
{FC694C68-F0E3-411F-8E6C-2E9F94826016}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FC694C68-F0E3-411F-8E6C-2E9F94826016}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FC694C68-F0E3-411F-8E6C-2E9F94826016}.Debug|x64.ActiveCfg = Debug|Any CPU
{FC694C68-F0E3-411F-8E6C-2E9F94826016}.Debug|x64.Build.0 = Debug|Any CPU
{FC694C68-F0E3-411F-8E6C-2E9F94826016}.Debug|x86.ActiveCfg = Debug|Any CPU
{FC694C68-F0E3-411F-8E6C-2E9F94826016}.Debug|x86.Build.0 = Debug|Any CPU
{FC694C68-F0E3-411F-8E6C-2E9F94826016}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FC694C68-F0E3-411F-8E6C-2E9F94826016}.Release|Any CPU.Build.0 = Release|Any CPU
{FC694C68-F0E3-411F-8E6C-2E9F94826016}.Release|x64.ActiveCfg = Release|Any CPU
{FC694C68-F0E3-411F-8E6C-2E9F94826016}.Release|x64.Build.0 = Release|Any CPU
{FC694C68-F0E3-411F-8E6C-2E9F94826016}.Release|x86.ActiveCfg = Release|Any CPU
{FC694C68-F0E3-411F-8E6C-2E9F94826016}.Release|x86.Build.0 = Release|Any CPU
{D6F2400A-6576-4028-8136-212C4176546D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D6F2400A-6576-4028-8136-212C4176546D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D6F2400A-6576-4028-8136-212C4176546D}.Debug|x64.ActiveCfg = Debug|Any CPU
{D6F2400A-6576-4028-8136-212C4176546D}.Debug|x64.Build.0 = Debug|Any CPU
{D6F2400A-6576-4028-8136-212C4176546D}.Debug|x86.ActiveCfg = Debug|Any CPU
{D6F2400A-6576-4028-8136-212C4176546D}.Debug|x86.Build.0 = Debug|Any CPU
{D6F2400A-6576-4028-8136-212C4176546D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D6F2400A-6576-4028-8136-212C4176546D}.Release|Any CPU.Build.0 = Release|Any CPU
{D6F2400A-6576-4028-8136-212C4176546D}.Release|x64.ActiveCfg = Release|Any CPU
{D6F2400A-6576-4028-8136-212C4176546D}.Release|x64.Build.0 = Release|Any CPU
{D6F2400A-6576-4028-8136-212C4176546D}.Release|x86.ActiveCfg = Release|Any CPU
{D6F2400A-6576-4028-8136-212C4176546D}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE