Commit 22451ba6 authored by 吴春's avatar 吴春

提交代码,会员购买记录

parent 98413f2d
...@@ -351,6 +351,18 @@ namespace Mall.Common ...@@ -351,6 +351,18 @@ namespace Mall.Common
return new ConfigurationBuilder().Add(new JsonConfigurationSource { Path = "appsettings.json" }).Build().GetSection("sTenpayRechargeNotify").Value; return new ConfigurationBuilder().Add(new JsonConfigurationSource { Path = "appsettings.json" }).Build().GetSection("sTenpayRechargeNotify").Value;
} }
} }
/// <summary>
/// 微信购买支付成功接口处理地址
/// </summary>
public static string sTenpayMemberBuyNotify
{
get
{
return new ConfigurationBuilder().Add(new JsonConfigurationSource { Path = "appsettings.json" }).Build().GetSection("sTenpayMemberBuyNotify").Value;
}
}
/// <summary> /// <summary>
/// 网络主管的id,用于新建供应商账户的时候的创建人 /// 网络主管的id,用于新建供应商账户的时候的创建人
/// </summary> /// </summary>
......
...@@ -108,5 +108,15 @@ namespace Mall.Model.Entity.User ...@@ -108,5 +108,15 @@ namespace Mall.Model.Entity.User
get; get;
set; set;
} }
/// <summary>
/// 支付类型 枚举 1微信 2支付宝 3银行卡
/// </summary>
public Common.Enum.Goods.OrderPayTypeEnum? PayWay
{
get;
set;
}
} }
} }
...@@ -56,6 +56,8 @@ namespace Mall.Module.User ...@@ -56,6 +56,8 @@ namespace Mall.Module.User
private readonly MiniProgramMsgModule appletWeChatModule = new MiniProgramMsgModule(); private readonly MiniProgramMsgModule appletWeChatModule = new MiniProgramMsgModule();
/// <summary> /// <summary>
/// 初始化分销基础配置 /// 初始化分销基础配置
/// </summary> /// </summary>
......
...@@ -19,6 +19,7 @@ using Mall.Common.API; ...@@ -19,6 +19,7 @@ using Mall.Common.API;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System.Threading; using System.Threading;
using Mall.Repository.Finance; using Mall.Repository.Finance;
using NPOI.SS.Formula.Functions;
namespace Mall.Module.User namespace Mall.Module.User
{ {
...@@ -1418,7 +1419,8 @@ namespace Mall.Module.User ...@@ -1418,7 +1419,8 @@ namespace Mall.Module.User
} }
}; };
bool flag = distributor_InfoRepository.Update(keyValues, wheres); bool flag = distributor_InfoRepository.Update(keyValues, wheres);
if (flag) { if (flag)
{
//修改用户表状态 //修改用户表状态
Dictionary<string, object> keyValues1 = new Dictionary<string, object>() { Dictionary<string, object> keyValues1 = new Dictionary<string, object>() {
{ nameof(RB_Member_User.IsDistributor),1} { nameof(RB_Member_User.IsDistributor),1}
...@@ -1455,7 +1457,8 @@ namespace Mall.Module.User ...@@ -1455,7 +1457,8 @@ namespace Mall.Module.User
} }
}; };
bool flag = distributor_InfoRepository.Update(keyValues, wheres); bool flag = distributor_InfoRepository.Update(keyValues, wheres);
if (flag) { if (flag)
{
var umodel = GetMemberUserInfo(disModel.UserId ?? 0); var umodel = GetMemberUserInfo(disModel.UserId ?? 0);
if (umodel != null) if (umodel != null)
{ {
...@@ -1677,7 +1680,7 @@ namespace Mall.Module.User ...@@ -1677,7 +1680,7 @@ namespace Mall.Module.User
} }
}; };
member_UserRepository.Update(keyValues1, wheres1, trans); member_UserRepository.Update(keyValues1, wheres1, trans);
} }
} }
} }
...@@ -4368,7 +4371,7 @@ namespace Mall.Module.User ...@@ -4368,7 +4371,7 @@ namespace Mall.Module.User
/// <param name="rowCount">总条数</param> /// <param name="rowCount">总条数</param>
/// <param name="dmodel">查询条件</param> /// <param name="dmodel">查询条件</param>
/// <returns></returns> /// <returns></returns>
public List<RB_Member_Buy_Extend> GetPageList(int pageIndex, int pageSize, out long rowCount, RB_Member_Buy_Extend dmodel) public List<RB_Member_Buy_Extend> GetMemberBuyPageList(int pageIndex, int pageSize, out long rowCount, RB_Member_Buy_Extend dmodel)
{ {
return memberBuyRepository.GetPageList(pageIndex, pageSize, out rowCount, dmodel); return memberBuyRepository.GetPageList(pageIndex, pageSize, out rowCount, dmodel);
} }
...@@ -4379,39 +4382,84 @@ namespace Mall.Module.User ...@@ -4379,39 +4382,84 @@ namespace Mall.Module.User
/// </summary> /// </summary>
/// <param name="model"></param> /// <param name="model"></param>
/// <returns></returns> /// <returns></returns>
public bool AddMemberBuy(RB_Member_Buy_Extend model) public int AddMemberBuy(RB_Member_Buy_Extend model)
{ {
int id = 0;
if (model.Id == 0) if (model.Id == 0)
{ {
return memberBuyRepository.Insert(model); id = memberBuyRepository.Insert(model);
} }
return false; return id;
} }
/// <summary> /// <summary>
/// 更新会员购买记录 /// 修改会员购买
/// </summary> /// </summary>
/// <param name="payTime"></param> /// <param name="model"></param>
/// <param name="orderId"></param>
/// <returns></returns> /// <returns></returns>
public bool UpdateMemberBuy(DateTime payTime, int orderId) public bool UpdateMemberBuy(int UserId, int OrderId, string Out_Trade_No, string Transaction_Id, Common.Enum.Goods.OrderPayTypeEnum PayWay, decimal Money, DateTime Time_End)
{ {
if (orderId > 0) bool flag = false;
var umodel = member_UserRepository.GetEntity(UserId);
if (umodel == null)
{
return false;
}
//判断订单状态是否是待支付 2020-06-16 Add By:W
var model = memberBuyRepository.GetEntity(OrderId);
if (model == null)
{
return false;
}
if (model.PayState != 0)
{
return false;
}
if (model.Money != Money)
{
return false;
}
var trans = memberBuyRepository.DbTransaction;
try
{ {
Dictionary<string, object> keyValues = new Dictionary<string, object>() { Dictionary<string, object> keyValues = new Dictionary<string, object>() {
{ nameof(RB_Member_Buy.PayTime),payTime}, { nameof(RB_Member_Buy.PayTime),Time_End},
{ nameof(RB_Member_Buy.PayState),1} { nameof(RB_Member_Buy.PayState),1}
}; };
List<WhereHelper> wheres = new List<WhereHelper>() { List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper{ new WhereHelper{
FiledName=nameof(RB_Member_Footmark.Id), FiledName=nameof(RB_Member_Footmark.Id),
FiledValue=orderId, FiledValue=OrderId,
OperatorEnum=OperatorEnum.Equal OperatorEnum=OperatorEnum.Equal
} }
}; };
return memberBuyRepository.Update(keyValues, wheres); flag = memberBuyRepository.Update(keyValues, wheres, trans);//更新会员购买记录
Dictionary<string, object> keyValuesMember = new Dictionary<string, object>() {
{ nameof(RB_Member_User.MemberGrade),model.GradeId}
};
List<WhereHelper> wheresMember = new List<WhereHelper>() {
new WhereHelper{
FiledName=nameof(RB_Member_User.Id),
FiledValue=model.UserId,
OperatorEnum=OperatorEnum.Equal
}
};
flag = member_UserRepository.Update(keyValuesMember, wheresMember, trans);//更新会员购买记录
memberBuyRepository.DBSession.Commit();
} }
return false; catch (Exception ex)
{
LogHelper.Write(ex, "UpdateMemberBuy");
memberBuyRepository.DBSession.Rollback("UpdateMemberBuy");
return false;
}
return flag;
} }
#endregion #endregion
......
...@@ -35,15 +35,20 @@ namespace Mall.Repository.User ...@@ -35,15 +35,20 @@ namespace Mall.Repository.User
{ {
where += $@" and b.{nameof(RB_Member_Buy_Extend.Id)}={dmodel.Id}"; where += $@" and b.{nameof(RB_Member_Buy_Extend.Id)}={dmodel.Id}";
} }
if (dmodel.PayState > -1)
{
where += $@" and b.{nameof(RB_Member_Buy_Extend.PayState)}={dmodel.PayState}";
}
if (dmodel.UserId > 0) if (dmodel.UserId > 0)
{ {
where += $@" and b.{nameof(RB_Member_Buy_Extend.UserId)}={dmodel.UserId}"; where += $@" and b.{nameof(RB_Member_Buy_Extend.UserId)}={dmodel.UserId}";
} }
if (!string.IsNullOrEmpty(dmodel.UserName)) if (!string.IsNullOrEmpty(dmodel.UserName))
{ {
where += $@" and u.{nameof(RB_Member_User.Name)} like '%{dmodel.UserName}%'"; where += $@" and u.{nameof(RB_Member_User.Name)} like '%{dmodel.UserName}%'";
} }
if (!string.IsNullOrEmpty(dmodel.StartTime)) { if (!string.IsNullOrEmpty(dmodel.StartTime))
{
where += $@" and b.{nameof(RB_Member_Buy_Extend.PayTime)} >= '{dmodel.StartTime}'"; where += $@" and b.{nameof(RB_Member_Buy_Extend.PayTime)} >= '{dmodel.StartTime}'";
} }
if (!string.IsNullOrEmpty(dmodel.EndTime)) if (!string.IsNullOrEmpty(dmodel.EndTime))
......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Mall.Common;
using Mall.Common.API;
using Mall.Common.Plugin;
using Mall.Model.Extend.User;
using Mall.Model.Query;
using Mall.Module.MarketingCenter;
using Mall.Module.User;
using Mall.WebApi.Filter;
using Microsoft.AspNetCore.Cors;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
namespace Mall.WebApi.Controllers.AppletWeChat
{
[Route("api/[controller]/[action]")]
[ApiExceptionFilter]
[ApiController]
[EnableCors("AllowCors")]
public class LiveHouseController : ControllerBase
{
public readonly StatisticsModule statisticsModule = new StatisticsModule();
private readonly MiniProgramModule appletWeChatModule = new MiniProgramModule();
private readonly SupplierModule supplierModule = new SupplierModule();
#region 直播房间信息
[HttpPost]
[Obsolete]
public ApiResult GetLiveHouseList(object requestMsg)
{
var requestParm = JsonConvert.DeserializeObject<RequestParm>(requestMsg.ToString());
ResultPageModel pagelist = JsonConvert.DeserializeObject<ResultPageModel>(requestParm.msg.ToString());
Model.Entity.AppletWeChat.RB_Live_House demodel = JsonConvert.DeserializeObject<Model.Entity.AppletWeChat.RB_Live_House>(requestParm.msg.ToString());
demodel.TenantId = requestParm.TenantId;
demodel.MallBaseId = requestParm.MallBaseId;
var list = appletWeChatModule.GetLiveHousePageList(pagelist.pageIndex, pagelist.pageSize, out long count, demodel);
pagelist.count = Convert.ToInt32(count);
pagelist.pageData = list.Select(x => new
{
x.ID,
x.roomid,
x.name,
x.anchor_img,
x.anchor_name,
x.cover_img,
x.live_status,
start_time = GetTime(x.start_time),
end_time = GetTime(x.end_time),
});
return ApiResult.Success("", pagelist);
}
/// <summary>
/// 时间戳转为C#格式时间
/// </summary>
/// <param name="timeStamp">Unix时间戳格式</param>
/// <returns>C#格式时间</returns>
[Obsolete]
public static string GetTime(string timeStamp)
{
try
{
DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
long lTime = long.Parse(timeStamp + "0000000");
TimeSpan toNow = new TimeSpan(lTime);
return dtStart.Add(toNow).ToString("yyyy-MM-dd HH:mm:ss");
}
catch (Exception)
{
return "";
}
}
#endregion
#region 损益核算表
/// <summary>
/// 获取供应商下拉列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetSupplierAllList(object requestMsg)
{
var requestParm = JsonConvert.DeserializeObject<RequestParm>(requestMsg.ToString());
var query = JsonConvert.DeserializeObject<RB_Supplier_Extend>(requestParm.msg.ToString());
query.TenantId = requestParm.TenantId;
query.MallBaseId = requestParm.MallBaseId;
var oldLogisticsList = supplierModule.GetList(query);
return ApiResult.Success("", oldLogisticsList);
}
[HttpPost]
public ApiResult GetOrderProfitLossList(object requestMsg)
{
var requestParm = JsonConvert.DeserializeObject<RequestParm>(requestMsg.ToString());
ResultPageModel pagelist = JsonConvert.DeserializeObject<ResultPageModel>(requestParm.msg.ToString());
OrderStatistics_Query demodel = JsonConvert.DeserializeObject<OrderStatistics_Query>(requestParm.msg.ToString());
demodel.TenantId = requestParm.TenantId;
demodel.MallBaseId = requestParm.MallBaseId;
var list = statisticsModule.GetOrderProfitLossList(pagelist.pageIndex, pagelist.pageSize, out long count, demodel);
foreach (var item in list)
{
item.ALLCommission = item.CostFreight + item.CostMoney + item.PackingMoney + item.GoodsFreight + item.OneCommission + item.TwoCommission + item.OtherPrice;
item.NoPaid = item.ALLCommission - item.Paid;
item.GrossProfit = item.AllPrice - item.ALLCommission;
item.GrossProfitRate = item.AllPrice == 0 ? 0 : item.GrossProfit / item.AllPrice;
}
pagelist.count = Convert.ToInt32(count);
pagelist.pageData = list;
return ApiResult.Success("", pagelist);
}
/// <summary>
/// 导出订单损益核算
/// </summary>
/// <returns></returns>
[HttpPost]
public FileContentResult GetOrderProfitLossExcel(object requestMsg)
{
var requestParm = JsonConvert.DeserializeObject<RequestParm>(requestMsg.ToString());
OrderStatistics_Query demodel = JsonConvert.DeserializeObject<OrderStatistics_Query>(requestParm.msg.ToString());
string ExcelName = "订单损益核算" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";
List<ExcelDataSource> slist = new List<ExcelDataSource>();
ExcelDataSource header = new ExcelDataSource()
{
ExcelRows = new List<ExcelColumn>(30) {
new ExcelColumn(value: "序号") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "订单号") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "数量") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "规格") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "数量") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "供应商") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "结算款") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "运费") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "已收") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "未收款") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "合计数") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "采购成本") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "包装费摊销") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "快递费") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "商品运费摊销") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "一级返佣") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "二级返佣") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "其他") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "合计数") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "已付") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "应付") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "毛利") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "毛利率") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER }
},
};
slist.Add(header);
try
{
demodel.TenantId = requestParm.TenantId;
demodel.MallBaseId = requestParm.MallBaseId;
var list = statisticsModule.GetAllOrderProfitLossList(demodel);
foreach (var item in list)
{
item.ALLCommission = item.CostFreight + item.CostMoney + item.PackingMoney + item.GoodsFreight + item.OneCommission + item.TwoCommission + item.OtherPrice;
item.NoPaid = item.ALLCommission - item.Paid;
item.GrossProfit = item.AllPrice - item.ALLCommission;
item.GrossProfitRate = item.AllPrice == 0 ? 0 : item.GrossProfit / item.AllPrice;
}
#region 组装数据
int Num = 0;
foreach (var item in list)
{
Num++;
ExcelDataSource datarow = new ExcelDataSource()
{
ExcelRows = new List<ExcelColumn>(30) {
new ExcelColumn(value:Num.ToString()){ },
}
};
datarow.ExcelRows.Add(new ExcelColumn(value: item.OrderNo) { });
datarow.ExcelRows.Add(new ExcelColumn(value: item.GoodsName + item.Specification) { });
datarow.ExcelRows.Add(new ExcelColumn(value: item.Unit_Price.ToString("#0.00")) { });
datarow.ExcelRows.Add(new ExcelColumn(value: item.Number.ToString()) { });
datarow.ExcelRows.Add(new ExcelColumn(value: item.SupplierName) { });
datarow.ExcelRows.Add(new ExcelColumn(value: item.Final_Price.ToString("#0.00")) { });
datarow.ExcelRows.Add(new ExcelColumn(value: item.FreightMoney) { });
datarow.ExcelRows.Add(new ExcelColumn(value: item.AllPrice.ToString("#0.00")) { });
datarow.ExcelRows.Add(new ExcelColumn(value: "0") { });
datarow.ExcelRows.Add(new ExcelColumn(value: item.AllPrice.ToString("#0.00")) { });
datarow.ExcelRows.Add(new ExcelColumn(value: item.CostMoney.ToString("#0.00")) { });
datarow.ExcelRows.Add(new ExcelColumn(value: item.PackingMoney.ToString("#0.00")) { });
datarow.ExcelRows.Add(new ExcelColumn(value: item.CostFreight.ToString("#0.00")) { });
datarow.ExcelRows.Add(new ExcelColumn(value: item.GoodsFreight.ToString("#0.00")) { });
datarow.ExcelRows.Add(new ExcelColumn(value: item.OneCommission.ToString("#0.00")) { });
datarow.ExcelRows.Add(new ExcelColumn(value: item.TwoCommission.ToString("#0.00")) { });
datarow.ExcelRows.Add(new ExcelColumn(value: item.OtherPrice.ToString("#0.00")) { });
datarow.ExcelRows.Add(new ExcelColumn(value: item.ALLCommission.ToString("#0.00")) { });
datarow.ExcelRows.Add(new ExcelColumn(value: item.Paid.ToString("#0.00")) { });
datarow.ExcelRows.Add(new ExcelColumn(value: item.NoPaid.ToString("#0.00")) { });
datarow.ExcelRows.Add(new ExcelColumn(value: item.GrossProfit.ToString("#0.00")) { });
datarow.ExcelRows.Add(new ExcelColumn(value: item.GrossProfitRate.ToString("#0.00")) { });
slist.Add(datarow);
}
#endregion
var byteData = ExcelTempLateHelper.ToExcelExtend(slist);
return File(byteData, "application/octet-stream", ExcelName);
}
catch (Exception ex)
{
LogHelper.Write(ex, string.Format("GetFileFromWebApi_requestData: {0}", JsonHelper.Serialize(requestMsg.ToString())));
var byteData1 = ExcelTempLateHelper.ToExcelExtend(slist);
return File(byteData1, "application/octet-stream", ExcelName);
}
}
#endregion
}
}
\ No newline at end of file
...@@ -27,6 +27,7 @@ namespace Mall.WebApi.Controllers.AppletWeChat ...@@ -27,6 +27,7 @@ namespace Mall.WebApi.Controllers.AppletWeChat
UserCommonModule userCommonModule = new UserCommonModule(); UserCommonModule userCommonModule = new UserCommonModule();
//public UserModule userModule = new UserModule();
Module.MarketingCenter.RechargeModule rechargeModule = new Module.MarketingCenter.RechargeModule(); Module.MarketingCenter.RechargeModule rechargeModule = new Module.MarketingCenter.RechargeModule();
private IHttpContextAccessor _accessor; private IHttpContextAccessor _accessor;
...@@ -68,7 +69,7 @@ namespace Mall.WebApi.Controllers.AppletWeChat ...@@ -68,7 +69,7 @@ namespace Mall.WebApi.Controllers.AppletWeChat
#region 新增订单支付信息 #region 新增订单支付信息
userCommonModule.InsertOrderPayInfo(UserId, OrderId, sOrderNo, TransactionId, Common.Enum.Goods.OrderPayTypeEnum.WeChatPay, PayType, dPaid, PayDate, 0); userCommonModule.InsertOrderPayInfo(UserId, OrderId, sOrderNo, TransactionId, Common.Enum.Goods.OrderPayTypeEnum.WeChatPay, PayType, dPaid, PayDate, 0);
#endregion #endregion
} }
...@@ -92,7 +93,7 @@ namespace Mall.WebApi.Controllers.AppletWeChat ...@@ -92,7 +93,7 @@ namespace Mall.WebApi.Controllers.AppletWeChat
/// <summary> /// <summary>
/// 订单支付回调 /// 会员充值支付回调
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[HttpGet] [HttpGet]
...@@ -142,5 +143,57 @@ namespace Mall.WebApi.Controllers.AppletWeChat ...@@ -142,5 +143,57 @@ namespace Mall.WebApi.Controllers.AppletWeChat
// return ApiResult.Failed("", reqXmlFAIL); // return ApiResult.Failed("", reqXmlFAIL);
} }
} }
///// <summary>
///// 会员购买支付回调
///// </summary>
///// <returns></returns>
//[HttpGet]
//[HttpPost]
//public string MemberBuyNotify()
//{
// var req = new RequestHandler();
// App_Code.PayUtil PayUtil = new App_Code.PayUtil();
// var result = PayUtil.Notify(_accessor);
// if (result.IsSuccess)
// {
// var dic = ((Dictionary<string, string>)result.Data);
// //开始回写订单状态
// lock (_lock)
// {
// string sOrderNo = dic["sOrderNo"];//订单号 时间挫+OrderId
// int OrderId = Convert.ToInt32(sOrderNo[17..]);
// decimal dPaid = Convert.ToDecimal(dic["dPrice"]) / 100;
// string sPayerOpenID = dic["sPayerOpenID"];
// int UserId = Convert.ToInt32(dic["bIsRecharge"]);
// string TransactionId = dic["sTradeNo"];
// string PayType = dic["OrderPayType"];
// DateTime PayDate = DateTime.ParseExact(dic["PayDate"], "yyyyMMddHHmmss", System.Globalization.CultureInfo.CurrentCulture);//转换时间
// #region 修改会员购买支付信息
// userModule.UpdateMemberBuy(UserId, OrderId, sOrderNo, TransactionId, Common.Enum.Goods.OrderPayTypeEnum.WeChatPay, dPaid, PayDate);
// #endregion
// }
// //告诉微信我们已经处理成功,不需要再调用我们的接口了
// req.SetParameter("return_code", "SUCCESS");
// req.SetParameter("return_msg", "OK");
// var reqXml = req.ParseXml();
// return reqXml;
// // return ApiResult.Success("", reqXml);
// }
// else
// {
// req.SetParameter("return_code", "FAIL");
// req.SetParameter("return_msg", "订单失败");
// var reqXmlFAIL = req.ParseXml();
// LogHelper.Write(null, "Notify返回信息:" + reqXmlFAIL);
// return reqXmlFAIL;
// // return ApiResult.Failed("", reqXmlFAIL);
// }
//}
} }
} }
\ No newline at end of file
...@@ -194,6 +194,92 @@ namespace Mall.WebApi.Controllers.AppletWeChat ...@@ -194,6 +194,92 @@ namespace Mall.WebApi.Controllers.AppletWeChat
#region 会员购买 #region 会员购买
/// <summary>
/// 微信支付
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public ApiResult GetMemberBuyPayInfo()
{
var request = RequestParm;
var userInfo = AppletUserInfo;
if (userInfo == null)
{
return ApiResult.Failed("请登录");
}
RB_Member_Buy_Extend demodel = JsonConvert.DeserializeObject<RB_Member_Buy_Extend>(request.msg.ToString());
string sPayInfo = string.Empty;
if (!demodel.PayWay.HasValue)
{
return ApiResult.Failed("请选择支付方式");
}
//查询充值信息
if (!demodel.GradeId.HasValue)
{
return ApiResult.Failed("请选择您需要购买的会员等级");
}
//查询用户的openId
var userModel = userModule.GetMemberUserEntityModule(new RB_Member_User_Extend { MallBaseId = userInfo.MallBaseId, TenantId = userInfo.TenantId, Id = userInfo.UserId });
if (userModel == null)
{
return ApiResult.Failed("用户不存在");
}
string payGoodsName = "会员等级购买";
var rechargeRulesModel = userModule.GetMemberGradeList(new RB_Member_Grade_Extend { MallBaseId = userInfo.MallBaseId, TenantId = userInfo.TenantId, Grade = demodel.GradeId }).FirstOrDefault();
if (rechargeRulesModel == null)
{
return ApiResult.Failed("您选择的会员等级不存在");
}
if (userModel.MemberGrade >= rechargeRulesModel.Grade)
{
return ApiResult.Failed("购买会员等级低于您当前会员等级");
}
if (rechargeRulesModel.IsMemberBuy == 1)
{
if (rechargeRulesModel.MemberBuyMoney != demodel.Money)
{
return ApiResult.Failed("会员购买支付金额有误,请稍后重试");
}
demodel.GradeName = rechargeRulesModel.Name;
}
else
{
return ApiResult.Failed("当前会员等级不能购买");
}
Random R = new Random();
int Rstr = R.Next(111, 999);
demodel.OrderNo = DateTime.Now.ToString("yyyyMMddHHmmssfff") + Rstr;
demodel.UserId = userInfo.UserId;
demodel.MallBaseId = userInfo.MallBaseId;
demodel.TenantId = userInfo.TenantId;
demodel.PayState = 0;
demodel.Status = 0;
demodel.CreateDate = DateTime.Now;
//新增充值记录
int memberBuyId = userModule.AddMemberBuy(demodel);
if (memberBuyId == 0)
{
return ApiResult.Failed("购买会员失败");
}
string sOrderNo = (System.DateTime.Now.ToString("yyyyMMddHHmmssfff")) + memberBuyId;
//根据订单号获取微信支付配置信息
RB_MiniProgram_Extend miniProgram = new RB_MiniProgram_Extend(); //2020年5月26号新增
miniProgram = programModule.GetMiniProgramModule(new RB_MiniProgram_Extend { MallBaseId = userInfo.MallBaseId, TenantId = userInfo.TenantId });
App_Code.PayUtil payUtil = new App_Code.PayUtil();
switch ((int)demodel.PayWay)
{
case 1://微信支付
sPayInfo = App_Code.PayUtil.GetMinUnifiedOrder(sOrderNo, payGoodsName, Convert.ToDecimal(rechargeRulesModel.MemberBuyMoney), userInfo.UserId.ToString(), userModel.OpenId, Config.sTenpayMemberBuyNotify, miniProgram, _accessor, System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName()).AddressList.FirstOrDefault(address => address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)?.ToString());
break;
default:
break;
}
return ApiResult.Success("", sPayInfo);
}
#endregion #endregion
......
...@@ -9,6 +9,7 @@ using Mall.Model.Query; ...@@ -9,6 +9,7 @@ using Mall.Model.Query;
using System; using System;
using Mall.Common.Plugin; using Mall.Common.Plugin;
using System.Collections.Generic; using System.Collections.Generic;
using Mall.Module.User;
namespace Mall.WebApi.Controllers.MarketingCenter namespace Mall.WebApi.Controllers.MarketingCenter
{ {
...@@ -19,7 +20,6 @@ namespace Mall.WebApi.Controllers.MarketingCenter ...@@ -19,7 +20,6 @@ namespace Mall.WebApi.Controllers.MarketingCenter
public class StatisticsController : BaseController public class StatisticsController : BaseController
{ {
public StatisticsModule statisticsModule = new StatisticsModule(); public StatisticsModule statisticsModule = new StatisticsModule();
#region 数据统计 #region 数据统计
/// <summary> /// <summary>
/// 数据概况 /// 数据概况
......
...@@ -32,7 +32,7 @@ namespace Mall.WebApi.Controllers.User ...@@ -32,7 +32,7 @@ namespace Mall.WebApi.Controllers.User
private readonly Module.MarketingCenter.CouponModule couponModule = new Module.MarketingCenter.CouponModule(); private readonly Module.MarketingCenter.CouponModule couponModule = new Module.MarketingCenter.CouponModule();
private readonly Module.MarketingCenter.RechargeModule rechargeModule = new Module.MarketingCenter.RechargeModule(); private readonly Module.MarketingCenter.RechargeModule rechargeModule = new Module.MarketingCenter.RechargeModule();
private readonly MiniProgramModule appletWeChatModule = new MiniProgramModule();
#region 收货地址 #region 收货地址
/// <summary> /// <summary>
...@@ -1119,56 +1119,6 @@ namespace Mall.WebApi.Controllers.User ...@@ -1119,56 +1119,6 @@ namespace Mall.WebApi.Controllers.User
#endregion #endregion
#region 直播房间信息
[HttpPost]
[Obsolete]
public ApiResult GetLiveHouseList()
{
var req = RequestParm;
var userInfo = AppletUserInfo;
ResultPageModel pagelist = JsonConvert.DeserializeObject<ResultPageModel>(RequestParm.msg.ToString());
Model.Entity.AppletWeChat.RB_Live_House demodel = JsonConvert.DeserializeObject<Model.Entity.AppletWeChat.RB_Live_House>(RequestParm.msg.ToString());
demodel.TenantId = userInfo.TenantId;
demodel.MallBaseId = userInfo.MallBaseId;
var list = appletWeChatModule.GetLiveHousePageList(pagelist.pageIndex, pagelist.pageSize, out long count, demodel);
pagelist.count = Convert.ToInt32(count);
pagelist.pageData = list.Select(x => new
{
x.ID,
x.roomid,
x.name,
x.anchor_img,
x.anchor_name,
x.cover_img,
x.live_status,
start_time = GetTime(x.start_time),
end_time = GetTime(x.end_time),
});
return ApiResult.Success("", pagelist);
}
/// <summary>
/// 时间戳转为C#格式时间
/// </summary>
/// <param name="timeStamp">Unix时间戳格式</param>
/// <returns>C#格式时间</returns>
[Obsolete]
public static string GetTime(string timeStamp)
{
try
{
DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
long lTime = long.Parse(timeStamp + "0000000");
TimeSpan toNow = new TimeSpan(lTime);
return dtStart.Add(toNow).ToString("yyyy-MM-dd HH:mm:ss");
}
catch (Exception)
{
return "";
}
}
#endregion
} }
} }
\ No newline at end of file
...@@ -705,6 +705,36 @@ namespace Mall.WebApi.Controllers.User ...@@ -705,6 +705,36 @@ namespace Mall.WebApi.Controllers.User
} }
} }
/// <summary>
/// 获取用户分页列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetMemberBuyUserPageList()
{
var parms = RequestParm;
ResultPageModel pagelist = JsonConvert.DeserializeObject<ResultPageModel>(parms.msg.ToString());
RB_Member_Buy_Extend demodel = JsonConvert.DeserializeObject<RB_Member_Buy_Extend>(parms.msg.ToString());
demodel.TenantId = Convert.ToInt32(parms.uid);
demodel.MallBaseId = parms.MallBaseId;
demodel.PayState = 1;
var list = userModule.GetMemberBuyPageList(pagelist.pageIndex, pagelist.pageSize, out long count, demodel);
pagelist.count = Convert.ToInt32(count);
pagelist.pageData = list.Select(x => new
{
x.Id,
x.OrderNo,
x.UserName,
x.Money,
x.GradeName,
PayTime = x.PayTime.HasValue ? x.PayTime.Value.ToString("yyyy-MM-dd HH:mm:ss") : ""
});
return ApiResult.Success("", pagelist);
}
#endregion #endregion
#region 分销商基础 #region 分销商基础
...@@ -1362,6 +1392,7 @@ namespace Mall.WebApi.Controllers.User ...@@ -1362,6 +1392,7 @@ namespace Mall.WebApi.Controllers.User
})); }));
} }
#endregion #endregion
#region 分销商申请管理 #region 分销商申请管理
...@@ -1874,7 +1905,8 @@ namespace Mall.WebApi.Controllers.User ...@@ -1874,7 +1905,8 @@ namespace Mall.WebApi.Controllers.User
string msg = userModule.SetDistributorRemitAudit(RemitId, Type, Remark, re.uid, re.MallBaseId); string msg = userModule.SetDistributorRemitAudit(RemitId, Type, Remark, re.uid, re.MallBaseId);
if (msg == "") if (msg == "")
{ {
if (Type == 3) { if (Type == 3)
{
var umodel = userModule.GetMemberUserInfo(model.UserId ?? 0); var umodel = userModule.GetMemberUserInfo(model.UserId ?? 0);
new MiniProgramMsgModule().SendWithdrawFailMsg(model.TenantId, model.MallBaseId, umodel.OpenId, (model.RemitMoney ?? 0).ToString(), "提现申请已被拒绝"); new MiniProgramMsgModule().SendWithdrawFailMsg(model.TenantId, model.MallBaseId, umodel.OpenId, (model.RemitMoney ?? 0).ToString(), "提现申请已被拒绝");
} }
...@@ -2082,7 +2114,7 @@ namespace Mall.WebApi.Controllers.User ...@@ -2082,7 +2114,7 @@ namespace Mall.WebApi.Controllers.User
pagelist.pageData = list.Select(x => new pagelist.pageData = list.Select(x => new
{ {
x.Id, x.Id,
AliasName= x.Name, AliasName = x.Name,
x.Photo, x.Photo,
x.Price, x.Price,
x.Source, x.Source,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment