Commit 10114c2f authored by 吴春's avatar 吴春

提交代码

parent ed60c2a7
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
using Mall.Common.Enum.MarketingCenter;
using Mall.Common.Enum.User; using Mall.Common.Enum.User;
using VT.FW.DB; using VT.FW.DB;
...@@ -11,7 +12,7 @@ namespace Mall.Model.Entity.User ...@@ -11,7 +12,7 @@ namespace Mall.Model.Entity.User
/// </summary> /// </summary>
[Serializable] [Serializable]
[DB(ConnectionName = "DefaultConnection")] [DB(ConnectionName = "DefaultConnection")]
public class RB_Member_DepositMerge public class RB_Member_DepositBalance
{ {
/// <summary> /// <summary>
/// Id /// Id
...@@ -36,11 +37,7 @@ namespace Mall.Model.Entity.User ...@@ -36,11 +37,7 @@ namespace Mall.Model.Entity.User
/// 用户id /// 用户id
/// </summary> /// </summary>
public int? UserId { get; set; } public int? UserId { get; set; }
/// <summary>
/// 储值卡id
/// </summary>
public int DepositId { get; set; }
/// <summary> /// <summary>
/// 储值卡名称 /// 储值卡名称
...@@ -61,10 +58,35 @@ namespace Mall.Model.Entity.User ...@@ -61,10 +58,35 @@ namespace Mall.Model.Entity.User
/// </summary> /// </summary>
public decimal DepositPrice { get; set; } public decimal DepositPrice { get; set; }
/// <summary>
/// 类型 1增加 2减少
/// </summary>
public RecordTypeEnum? Type
{
get;
set;
}
/// <summary>
/// 使用之前金额
/// </summary>
public decimal? Balance
{
get;
set;
}
/// <summary>
/// 使用之后金额
/// </summary>
public decimal? Surplus
{
get;
set;
}
/// <summary> /// <summary>
/// 1-合并记录,2-赠送记录 /// 1-合并记录,2-赠送记录,3-消费
/// </summary> /// </summary>
public int MergeType { get; set; } public int MergeType { get; set; }
...@@ -77,6 +99,12 @@ namespace Mall.Model.Entity.User ...@@ -77,6 +99,12 @@ namespace Mall.Model.Entity.User
get; get;
set; set;
} }
/// <summary>
/// 状态
/// </summary>
public int Status { get; set; }
/// <summary> /// <summary>
/// 商户号id /// 商户号id
/// </summary> /// </summary>
...@@ -98,6 +126,6 @@ namespace Mall.Model.Entity.User ...@@ -98,6 +126,6 @@ namespace Mall.Model.Entity.User
/// 备注 /// 备注
/// </summary> /// </summary>
public string Remarks { get; set; } public string Remarks { get; set; }
} }
} }
...@@ -18,7 +18,22 @@ namespace Mall.Model.Entity.User ...@@ -18,7 +18,22 @@ namespace Mall.Model.Entity.User
get; get;
set; set;
} }
/// <summary>
/// 商户号id
/// </summary>
public int TenantId
{
get;
set;
}
/// <summary>
/// 小程序id
/// </summary>
public int MallBaseId
{
get;
set;
}
/// <summary> /// <summary>
/// 订单号 /// 订单号
/// </summary> /// </summary>
...@@ -51,6 +66,12 @@ namespace Mall.Model.Entity.User ...@@ -51,6 +66,12 @@ namespace Mall.Model.Entity.User
/// </summary> /// </summary>
public decimal DepositPrice { get; set; } public decimal DepositPrice { get; set; }
/// <summary>
/// 储值卡剩余金额
/// </summary>
public decimal SurplusPrice { get; set; }
/// <summary> /// <summary>
/// 有效天数 /// 有效天数
/// </summary> /// </summary>
...@@ -59,7 +80,7 @@ namespace Mall.Model.Entity.User ...@@ -59,7 +80,7 @@ namespace Mall.Model.Entity.User
/// <summary> /// <summary>
/// 储值卡过期时间 /// 储值卡过期时间
/// </summary> /// </summary>
public DateTime EndTime { get; set; } public DateTime? EndTime { get; set; }
/// <summary> /// <summary>
/// 状态 0-未支付 1-已支付 /// 状态 0-未支付 1-已支付
/// </summary> /// </summary>
...@@ -96,22 +117,8 @@ namespace Mall.Model.Entity.User ...@@ -96,22 +117,8 @@ namespace Mall.Model.Entity.User
get; get;
set; set;
} }
/// <summary>
/// 商户号id
/// </summary>
public int TenantId
{
get;
set;
}
/// <summary>
/// 小程序id
/// </summary>
public int MallBaseId
{
get;
set;
}
/// <summary> /// <summary>
/// 备注 /// 备注
......
...@@ -101,5 +101,7 @@ namespace Mall.Model.Extend.MarketingCenter ...@@ -101,5 +101,7 @@ namespace Mall.Model.Extend.MarketingCenter
/// 针对口令红包,口令关键字 /// 针对口令红包,口令关键字
/// </summary> /// </summary>
public string KeyWord { get; set; } public string KeyWord { get; set; }
} }
} }
...@@ -5,7 +5,7 @@ using Mall.Model.Entity.User; ...@@ -5,7 +5,7 @@ using Mall.Model.Entity.User;
namespace Mall.Model.Extend.User namespace Mall.Model.Extend.User
{ {
public class RB_Member_DepositMerge_Extend: RB_Member_DepositMerge public class RB_Member_DepositBalance_Extend: RB_Member_DepositBalance
{ {
} }
......
...@@ -7,6 +7,14 @@ namespace Mall.Model.Extend.User ...@@ -7,6 +7,14 @@ namespace Mall.Model.Extend.User
{ {
public class RB_Member_DepositBuy_Extend : RB_Member_DepositBuy public class RB_Member_DepositBuy_Extend : RB_Member_DepositBuy
{ {
/// <summary>
/// /编号ids
/// </summary>
public string Ids { get; set; }
/// <summary>
/// 是否过期 >0 查询没过期的
/// </summary>
public int IsOver { get; set; }
} }
} }
...@@ -38,6 +38,8 @@ namespace Mall.Module.MarketingCenter ...@@ -38,6 +38,8 @@ namespace Mall.Module.MarketingCenter
private readonly RB_Member_DepositBuyRepository member_DepositBuyRepository = new RB_Member_DepositBuyRepository(); private readonly RB_Member_DepositBuyRepository member_DepositBuyRepository = new RB_Member_DepositBuyRepository();
private readonly RB_Member_DepositBalanceRepository memberDepositMergeRepository = new RB_Member_DepositBalanceRepository();
#region 卡券列表 #region 卡券列表
/// <summary> /// <summary>
/// 卡券信息列表 /// 卡券信息列表
...@@ -1148,8 +1150,72 @@ namespace Mall.Module.MarketingCenter ...@@ -1148,8 +1150,72 @@ namespace Mall.Module.MarketingCenter
} }
/// <summary>
/// 更新储值卡领取状态
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public bool UpdateSendStatus(RB_Member_DepositBuy model)
{
//更新订单信息
Dictionary<string, object> keyValues = new Dictionary<string, object>() {
{ nameof(RB_Member_DepositBuy.SendStatus),2},
{ nameof(RB_Member_DepositBuy.SendTime),System.DateTime.Now.AddDays(3)}
};
List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper(){
FiledName=nameof(RB_Member_DepositBuy.Id),
FiledValue=model.Id,
OperatorEnum=OperatorEnum.Equal
}
};
return member_DepositBuyRepository.Update(keyValues, wheres);//更新储值卡赠送记录
}
/// <summary>
/// 领取储值卡
/// </summary>
/// <param name="oldModel"></param>
/// <param name="newModel"></param>
/// <returns></returns>
public bool ReceiveDeposit(RB_Member_DepositBuy oldModel, RB_Member_DepositBuy newModel, List<RB_Member_DepositBalance> mergeList)
{
bool flag = false;
var trans = member_DepositBuyRepository.DbTransaction;
try
{
//更新订单信息
Dictionary<string, object> keyValues = new Dictionary<string, object>() {
{ nameof(RB_Member_DepositBuy.SendStatus),1},
{ nameof(RB_Member_DepositBuy.SurplusPrice),0}
};
List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper(){
FiledName=nameof(RB_Member_DepositBuy.Id),
FiledValue=oldModel.Id,
OperatorEnum=OperatorEnum.Equal
}
};
flag = member_DepositBuyRepository.Update(keyValues, wheres, trans);//更新储值卡赠送记录
//新增一条储值卡信息
int newId = member_DepositBuyRepository.Insert(newModel, trans);
mergeList.ForEach(x => x.NewDepositBuyId = newId);
//储值卡流水记录
memberDepositMergeRepository.InsertBatch(mergeList, trans);
member_DepositBuyRepository.DBSession.Commit();
return flag;
}
catch (Exception ex)
{
LogHelper.Write(ex, "ReceiveDeposit");
member_DepositBuyRepository.DBSession.Rollback("ReceiveDeposit");
return false;
}
}
/// <summary> /// <summary>
/// 新增充值金额 /// 新增充值金额
...@@ -1188,6 +1254,7 @@ namespace Mall.Module.MarketingCenter ...@@ -1188,6 +1254,7 @@ namespace Mall.Module.MarketingCenter
{ nameof(RB_Member_DepositBuy.Status),1}, { nameof(RB_Member_DepositBuy.Status),1},
{ nameof(RB_Member_DepositBuy.Out_Trade_No),Out_Trade_No}, { nameof(RB_Member_DepositBuy.Out_Trade_No),Out_Trade_No},
{ nameof(RB_Member_DepositBuy.PayTime),Time_End}, { nameof(RB_Member_DepositBuy.PayTime),Time_End},
{ nameof(RB_Member_DepositBuy.EndTime),System.DateTime.Now.AddDays(model.IndateDay)},
{ nameof(RB_Member_DepositBuy.Transaction_Id),Transaction_Id} { nameof(RB_Member_DepositBuy.Transaction_Id),Transaction_Id}
}; };
List<WhereHelper> wheres = new List<WhereHelper>() { List<WhereHelper> wheres = new List<WhereHelper>() {
...@@ -1198,6 +1265,30 @@ namespace Mall.Module.MarketingCenter ...@@ -1198,6 +1265,30 @@ namespace Mall.Module.MarketingCenter
} }
}; };
flag = member_DepositBuyRepository.Update(keyValues, wheres);//更新储值卡购买记录 flag = member_DepositBuyRepository.Update(keyValues, wheres);//更新储值卡购买记录
if (flag)
{
Model.Entity.User.RB_Member_DepositBalance mergeIncomeModel = new Model.Entity.User.RB_Member_DepositBalance()
{
Id = 0,
OldDepositBuyId = model.Id,
NewDepositBuyId = 0,
UserId = model.UserId,
Name = model.Name,
CouponIco = model.CouponIco,
SalePrice = model.SalePrice,
DepositPrice = model.DepositPrice,
MergeType = 3,
CreateDate = System.DateTime.Now,
Status = 0,
TenantId = model.TenantId,
MallBaseId = model.MallBaseId,
Surplus = model.DepositPrice,
Balance = model.DepositPrice,
Type = Common.Enum.MarketingCenter.RecordTypeEnum.Income,
Remarks = "购买储值卡"
};
memberDepositMergeRepository.Insert(mergeIncomeModel);
}
} }
catch (Exception ex) catch (Exception ex)
{ {
...@@ -1210,7 +1301,73 @@ namespace Mall.Module.MarketingCenter ...@@ -1210,7 +1301,73 @@ namespace Mall.Module.MarketingCenter
#endregion /// <summary>
/// 合并储值卡
/// </summary>
/// <param name="oldModel"></param>
/// <param name="newModel"></param>
/// <returns></returns>
public bool MergeDeposit(List<RB_Member_DepositBuy_Extend> depositBuyList, List<RB_Member_DepositBalance> mergeList)
{
bool flag = false;
var trans = member_DepositBuyRepository.DbTransaction;
try
{
foreach (var item in depositBuyList)
{
//更新订单信息
Dictionary<string, object> keyValues = new Dictionary<string, object>() {
{ nameof(RB_Member_DepositBuy.SurplusPrice),item.SurplusPrice},
{ nameof(RB_Member_DepositBuy.Remarks),item.Remarks}
};
List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper(){
FiledName=nameof(RB_Member_DepositBuy.Id),
FiledValue=item.Id,
OperatorEnum=OperatorEnum.Equal
}
};
flag = member_DepositBuyRepository.Update(keyValues, wheres, trans);//更新储值卡赠送记录
}
memberDepositMergeRepository.InsertBatch(mergeList, trans);
member_DepositBuyRepository.DBSession.Commit();
return flag;
}
catch (Exception ex)
{
LogHelper.Write(ex, "MergeDeposit");
member_DepositBuyRepository.DBSession.Rollback("MergeDeposit");
return false;
}
}
}
/// <summary>
/// 储值卡余额信息列表
/// </summary>
/// <param name="pageIndex">页码</param>
/// <param name="pageSize">每页显示条数</param>
/// <param name="rowCount">总条数</param>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Member_DepositBalance_Extend> GetDepositBalancePageList(int pageIndex, int pageSize, out long rowCount, RB_Member_DepositBalance_Extend query)
{
return memberDepositMergeRepository.GetDepositBalancePageList(pageIndex, pageSize, out rowCount, query);
}
/// <summary>
/// 储值卡余额信息列表
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Member_DepositBalance_Extend> GetDepositBalanceList(RB_Member_DepositBalance_Extend query)
{
return memberDepositMergeRepository.GetDepositBalanceList(query);
}
#endregion
}
} }
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Mall.Model.Entity.User;
using Mall.Model.Extend.User;
namespace Mall.Repository.MarketingCenter
{
/// <summary>
/// 储值卡合并/赠送仓储层
/// </summary>
public class RB_Member_DepositBalanceRepository : BaseRepository<RB_Member_DepositBalance>
{
/// <summary>
/// 表名称
/// </summary>
public string TableName { get { return nameof(RB_Member_DepositBalance); } }
/// <summary>
/// 储值卡余额信息列表
/// </summary>
/// <param name="pageIndex">页码</param>
/// <param name="pageSize">每页显示条数</param>
/// <param name="rowCount">总条数</param>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Member_DepositBalance_Extend> GetDepositBalancePageList(int pageIndex, int pageSize, out long rowCount, RB_Member_DepositBalance_Extend query)
{
StringBuilder builder = new StringBuilder();
builder.Append($" SELECT * FROM {TableName} WHERE {nameof(RB_Member_DepositBalance_Extend.Status)}=0");
if (query != null)
{
if (query.TenantId > 0)
{
builder.Append($" AND {nameof(RB_Member_DepositBalance_Extend.TenantId)}={query.TenantId}");
}
if (query.MergeType > 0)
{
builder.Append($" AND {nameof(RB_Member_DepositBalance_Extend.MergeType)}={query.MergeType}");
}
if (query.MallBaseId > 0)
{
builder.Append($" AND {nameof(RB_Member_DepositBalance_Extend.MallBaseId)}={query.MallBaseId}");
}
if (!string.IsNullOrWhiteSpace(query.Name))
{
builder.Append($" AND {nameof(RB_Member_DepositBalance_Extend.Name)} like '%{query.Name}%'");
}
if (query.Type > 0)
{
builder.Append($" AND {nameof(RB_Member_DepositBalance_Extend.Type)}={query.Type}");
}
if (query.OldDepositBuyId > 0)
{
builder.Append($" AND {nameof(RB_Member_DepositBalance_Extend.OldDepositBuyId)}={query.OldDepositBuyId}");
}
if (query.UserId > 0)
{
builder.Append($" AND {nameof(RB_Member_DepositBalance_Extend.UserId)}={query.UserId}");
}
}
return GetPage<RB_Member_DepositBalance_Extend>(pageIndex, pageSize, out rowCount, builder.ToString()).ToList();
}
/// <summary>
/// 储值卡余额信息列表
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Member_DepositBalance_Extend> GetDepositBalanceList(RB_Member_DepositBalance_Extend query)
{
StringBuilder builder = new StringBuilder();
builder.Append($" SELECT * FROM {TableName} WHERE {nameof(RB_Member_DepositBalance_Extend.Status)}=0 ");
if (query != null)
{
if (query.TenantId > 0)
{
builder.Append($" AND {nameof(RB_Member_DepositBalance_Extend.TenantId)}={query.TenantId}");
}
if (query.Id > 0)
{
builder.Append($" AND {nameof(RB_Member_DepositBalance_Extend.Id)}={query.Id}");
}
if (query.MergeType > 0)
{
builder.Append($" AND {nameof(RB_Member_DepositBalance_Extend.MergeType)}={query.MergeType}");
}
if (query.Type > 0)
{
builder.Append($" AND {nameof(RB_Member_DepositBalance_Extend.Type)}={query.Type}");
}
if (query.MallBaseId > 0)
{
builder.Append($" AND {nameof(RB_Member_DepositBalance_Extend.MallBaseId)}={query.MallBaseId}");
}
if (!string.IsNullOrWhiteSpace(query.Name))
{
builder.Append($" AND {nameof(RB_Member_DepositBalance_Extend.Name)} like '%{query.Name}%'");
}
if (query.OldDepositBuyId > 0)
{
builder.Append($" AND {nameof(RB_Member_DepositBalance_Extend.OldDepositBuyId)}={query.OldDepositBuyId}");
}
}
return Get<RB_Member_DepositBalance_Extend>(builder.ToString()).ToList();
}
}
}
...@@ -79,11 +79,23 @@ namespace Mall.Repository.User ...@@ -79,11 +79,23 @@ namespace Mall.Repository.User
{ {
builder.Append($" AND {nameof(RB_Member_DepositBuy.Status)}={query.Status}"); builder.Append($" AND {nameof(RB_Member_DepositBuy.Status)}={query.Status}");
} }
if (!string.IsNullOrWhiteSpace(query.Ids))
{
builder.Append($" AND {nameof(RB_Member_DepositBuy.Id)} in({query.Ids})");
}
if (query.UserId > 0) if (query.UserId > 0)
{ {
builder.Append($" AND {nameof(RB_Member_DepositBuy.UserId)}={query.UserId}"); builder.Append($" AND {nameof(RB_Member_DepositBuy.UserId)}={query.UserId}");
} }
if (query.Id > 0)
{
builder.Append($" AND {nameof(RB_Member_DepositBuy.Id)}={query.Id}");
}
if (query.IsOver > 0)
{
builder.Append($" AND a.{nameof(RB_Member_DepositBuy.EndTime)}> NOW()");
}
// where += $" AND a.{nameof(RB_Member_DiscountCoupon_Extend.EndDate)}<NOW() AND a.{nameof(RB_Member_DiscountCoupon_Extend.UseState)}=0";
} }
return Get<RB_Member_DepositBuy_Extend>(builder.ToString()).ToList(); return Get<RB_Member_DepositBuy_Extend>(builder.ToString()).ToList();
} }
......
...@@ -590,6 +590,17 @@ namespace Mall.WebApi.Controllers.AppletWeChat ...@@ -590,6 +590,17 @@ namespace Mall.WebApi.Controllers.AppletWeChat
pointModule.UpdatePointOrder(demodel); pointModule.UpdatePointOrder(demodel);
return ApiResult.Success(""); return ApiResult.Success("");
} }
public ApiResult UpdateDepositBuy()
{
var request = RequestParm;
RB_Member_DepositBuy demodel = JsonConvert.DeserializeObject<RB_Member_DepositBuy>(request.msg.ToString());
couponModule.UpdateDepositBuy(demodel.UserId ?? 0, demodel.Id, demodel.OrderNo, demodel.Out_Trade_No, Common.Enum.Goods.OrderPayTypeEnum.WeChatPay, "", demodel.SalePrice, System.DateTime.Now);
// couponModule.UpdateDepositBuy(UserId, OrderId, sOrderNo, TransactionId, Common.Enum.Goods.OrderPayTypeEnum.WeChatPay, PayType, dPaid, PayDate);
return ApiResult.Success("");
}
#endregion #endregion
...@@ -709,7 +720,7 @@ namespace Mall.WebApi.Controllers.AppletWeChat ...@@ -709,7 +720,7 @@ namespace Mall.WebApi.Controllers.AppletWeChat
//查询充值信息 //查询充值信息
if (demodel.SalePrice <= 0) if (demodel.SalePrice <= 0)
{ {
return ApiResult.Failed("请输入充值金额"); return ApiResult.Failed("请输入购买金额");
} }
//查询用户的openId //查询用户的openId
var userModel = userModule.GetMemberUserEntityModule(new RB_Member_User_Extend { MallBaseId = userInfo.MallBaseId, TenantId = userInfo.TenantId, Id = userInfo.UserId }); var userModel = userModule.GetMemberUserEntityModule(new RB_Member_User_Extend { MallBaseId = userInfo.MallBaseId, TenantId = userInfo.TenantId, Id = userInfo.UserId });
...@@ -718,11 +729,11 @@ namespace Mall.WebApi.Controllers.AppletWeChat ...@@ -718,11 +729,11 @@ namespace Mall.WebApi.Controllers.AppletWeChat
{ {
return ApiResult.Failed("用户不存在"); return ApiResult.Failed("用户不存在");
} }
string payGoodsName = "余额充值"; string payGoodsName = "储值卡购买";
if (demodel.DepositId > 0) if (demodel.DepositId > 0)
{ {
var rechargeRulesModel = couponModule.GetDepositList(new Model.Extend.MarketingCenter.RB_Deposit_Extend { MallBaseId = userInfo.MallBaseId, TenantId = userInfo.TenantId, ID = demodel.DepositId }).FirstOrDefault(); var rechargeRulesModel = couponModule.GetDepositList(new Model.Extend.MarketingCenter.RB_Deposit_Extend { MallBaseId = userInfo.MallBaseId, TenantId = userInfo.TenantId, ID = demodel.DepositId, PickupCenter = 1 }).FirstOrDefault();
if (rechargeRulesModel == null) if (rechargeRulesModel == null)
{ {
return ApiResult.Failed("选择的储值卡不存在"); return ApiResult.Failed("选择的储值卡不存在");
...@@ -732,6 +743,7 @@ namespace Mall.WebApi.Controllers.AppletWeChat ...@@ -732,6 +743,7 @@ namespace Mall.WebApi.Controllers.AppletWeChat
return ApiResult.Failed("支付金额与设定的金额不符"); return ApiResult.Failed("支付金额与设定的金额不符");
} }
demodel.DepositPrice = rechargeRulesModel.DepositPrice; demodel.DepositPrice = rechargeRulesModel.DepositPrice;
demodel.SurplusPrice = rechargeRulesModel.DepositPrice;
demodel.Name = rechargeRulesModel.Name; demodel.Name = rechargeRulesModel.Name;
demodel.CouponIco = rechargeRulesModel.CouponIco; demodel.CouponIco = rechargeRulesModel.CouponIco;
demodel.IndateDay = rechargeRulesModel.IndateDay; demodel.IndateDay = rechargeRulesModel.IndateDay;
...@@ -765,7 +777,7 @@ namespace Mall.WebApi.Controllers.AppletWeChat ...@@ -765,7 +777,7 @@ namespace Mall.WebApi.Controllers.AppletWeChat
switch ((int)demodel.PayWay) switch ((int)demodel.PayWay)
{ {
case 1://微信支付 case 1://微信支付
sPayInfo = App_Code.PayUtil.GetMinUnifiedOrder(sOrderNo, payGoodsName, Convert.ToDecimal(demodel.SalePrice), userInfo.UserId.ToString(), userModel.OpenId, (Config.sTenpayRechargeNotify + "/" + demodel.MallBaseId + "/" + demodel.TenantId), miniProgram, _accessor, System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName()).AddressList.FirstOrDefault(address => address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)?.ToString()); sPayInfo = App_Code.PayUtil.GetMinUnifiedOrder(sOrderNo, payGoodsName, Convert.ToDecimal(demodel.SalePrice), userInfo.UserId.ToString(), userModel.OpenId, (Config.sTenpayDepositNotify + "/" + demodel.MallBaseId + "/" + demodel.TenantId), miniProgram, _accessor, System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName()).AddressList.FirstOrDefault(address => address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)?.ToString());
break; break;
default: default:
break; break;
......
...@@ -7,6 +7,7 @@ using Mall.Common.API; ...@@ -7,6 +7,7 @@ using Mall.Common.API;
using Mall.Common.Plugin; using Mall.Common.Plugin;
using Mall.Model.Extend.MarketingCenter; using Mall.Model.Extend.MarketingCenter;
using Mall.Model.Extend.Product; using Mall.Model.Extend.Product;
using Mall.Model.Extend.User;
using Mall.Module.MarketingCenter; using Mall.Module.MarketingCenter;
using Mall.Module.Product; using Mall.Module.Product;
using Mall.WebApi.Filter; using Mall.WebApi.Filter;
...@@ -99,6 +100,36 @@ namespace Mall.WebApi.Controllers.MarketingCenter ...@@ -99,6 +100,36 @@ namespace Mall.WebApi.Controllers.MarketingCenter
{ {
goodsList = new List<RB_Goods_Extend>(); goodsList = new List<RB_Goods_Extend>();
} }
int isBestId = 0;
decimal maxDiscountsPrice = 0;
foreach (var item in list)
{
if (item.CouponType == Common.Enum.MarketingCenter.CouponTypeEnum.Discount)
{
//decimal tempPrice = 0;
//foreach (var itemProduct in item.ProductList)
//{
// tempPrice += itemProduct.GoodsPrice;
//}
if (item.UseType == Common.Enum.MarketingCenter.UseTypeEnum.Category)//
{
}
}
else
{
if (maxDiscountsPrice < item.DiscountsPrice)
{
maxDiscountsPrice = item.DiscountsPrice;
isBestId = item.MemberCouponId;
}
}
}
var result = list.Select(x => new var result = list.Select(x => new
{ {
id = x.MemberCouponId, id = x.MemberCouponId,
...@@ -226,9 +257,353 @@ namespace Mall.WebApi.Controllers.MarketingCenter ...@@ -226,9 +257,353 @@ namespace Mall.WebApi.Controllers.MarketingCenter
} }
/// <summary>
/// 个人储值卡中心
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetDepositBuyPageList()
{
var req = RequestParm;
var userInfo = AppletUserInfo;
ResultPageModel pagelist = JsonConvert.DeserializeObject<ResultPageModel>(req.msg.ToString());
RB_Member_DepositBuy_Extend demodel = JsonConvert.DeserializeObject<RB_Member_DepositBuy_Extend>(req.msg.ToString());
demodel.TenantId = userInfo.TenantId;
demodel.MallBaseId = userInfo.MallBaseId;
demodel.UserId = userInfo.UserId;
demodel.Status = 1;
var list = couponModule.GetDepositBuyPageList(pagelist.pageIndex, pagelist.pageSize, out long count, demodel);
pagelist.count = Convert.ToInt32(count);
pagelist.pageData = list.Select(x => new
{
x.Name,
x.SendStatus,
x.DepositId,
x.DepositPrice,
x.SurplusPrice,
EndTime = x.EndTime.HasValue ? x.EndTime.Value.ToString("yyyy-MM-dd") : "",
SendTime = x.SendTime.HasValue ? x.SendTime.Value.ToString("yyyy-MM-dd") : "",
x.Id,
x.IndateDay,
x.OrderNo,
x.RechargeType,
x.SalePrice,
x.UserId,
x.CouponIco
});
return ApiResult.Success("", pagelist);
}
/// <summary>
/// 个人储值卡流水
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetDepositBalancePageList()
{
var req = RequestParm;
var userInfo = AppletUserInfo;
ResultPageModel pagelist = JsonConvert.DeserializeObject<ResultPageModel>(req.msg.ToString());
RB_Member_DepositBalance_Extend demodel = JsonConvert.DeserializeObject<RB_Member_DepositBalance_Extend>(req.msg.ToString());
demodel.TenantId = userInfo.TenantId;
demodel.MallBaseId = userInfo.MallBaseId;
demodel.UserId = userInfo.UserId;
demodel.Status = 0;
var list = couponModule.GetDepositBalancePageList(pagelist.pageIndex, pagelist.pageSize, out long count, demodel);
pagelist.count = Convert.ToInt32(count);
pagelist.pageData = list.Select(x => new
{
x.Name,
x.DepositPrice,
x.Balance,
x.CouponIco,
x.Type,
x.MergeType,
x.Surplus,
CreateDate = x.CreateDate.HasValue ? x.CreateDate.Value.ToString("yyyy-MM-dd HH:mm:ss") : "",
x.Id,
x.SalePrice,
x.UserId,
});
return ApiResult.Success("", pagelist);
}
/// <summary>
/// 储值卡合并
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetMergeDeposit()
{
var parms = RequestParm;
var userInfo = AppletUserInfo;
JObject parmsJob = JObject.Parse(RequestParm.msg.ToString());
string Ids = parmsJob.GetStringValue("Ids");
var depositList = couponModule.GetDepositBuyList(new Model.Extend.User.RB_Member_DepositBuy_Extend { TenantId = userInfo.TenantId, MallBaseId = userInfo.MallBaseId, Ids = Ids, UserId = userInfo.UserId, SendStatus = -1, Status = -1 });
foreach (var item in depositList)
{
if (item.Status == 0)
{
return ApiResult.Failed(item.Name + "储值卡未支付,不能合并");
}
if (item.SendStatus != 0)
{
return ApiResult.Failed(item.Name + "储值卡已赠送/分享中,不能合并");
}
if (item.SurplusPrice <= 0)
{
return ApiResult.Failed(item.Name + "储值卡剩余余额为0,不能合并");
}
if (item.EndTime.HasValue && item.EndTime.Value < System.DateTime.Now)
{
return ApiResult.Failed(item.Name + "储值卡已过期");
}
}
if (depositList.Count <= 1)
{
return ApiResult.Failed("单张储值卡不能合并");
}
var firstModel = depositList.OrderByDescending(x => x.EndTime).FirstOrDefault();
List<Model.Entity.User.RB_Member_DepositBalance> depositMergeList = new List<Model.Entity.User.RB_Member_DepositBalance>();
List<RB_Member_DepositBuy_Extend> depositBuyList = new List<RB_Member_DepositBuy_Extend>();
Model.Entity.User.RB_Member_DepositBalance mergeIncomeModel = new Model.Entity.User.RB_Member_DepositBalance()
{
Id = 0,
OldDepositBuyId = firstModel.Id,
NewDepositBuyId = 0,
UserId = firstModel.UserId,
Name = firstModel.Name,
CouponIco = firstModel.CouponIco,
SalePrice = firstModel.SalePrice,
DepositPrice = firstModel.DepositPrice,
MergeType = 1,
CreateDate = System.DateTime.Now,
Status = 0,
TenantId = userInfo.TenantId,
MallBaseId = userInfo.MallBaseId,
Balance = firstModel.SurplusPrice,
Type = Common.Enum.MarketingCenter.RecordTypeEnum.Income,
Remarks = "储值卡合并"
};
foreach (var item in depositList.Where(x => x.Id != firstModel.Id))
{
firstModel.SurplusPrice += item.SurplusPrice;
Model.Entity.User.RB_Member_DepositBalance mergeModel = new Model.Entity.User.RB_Member_DepositBalance()
{
Id = 0,
OldDepositBuyId = item.Id,
NewDepositBuyId = firstModel.Id,
UserId = item.UserId,
Name = item.Name,
CouponIco = item.CouponIco,
SalePrice = item.SalePrice,
DepositPrice = item.DepositPrice,
MergeType = 1,
CreateDate = System.DateTime.Now,
Status = 0,
TenantId = userInfo.TenantId,
MallBaseId = userInfo.MallBaseId,
Balance = item.SurplusPrice,
Surplus = 0,
Type = Common.Enum.MarketingCenter.RecordTypeEnum.Expend,
Remarks = "储值卡合并,合并后的储值卡id:" + firstModel.Id
};
item.SurplusPrice = 0;
item.Remarks = "储值卡合并,合并后的储值卡id:" + firstModel.Id;
depositMergeList.Add(mergeModel);
depositBuyList.Add(item);
}
depositBuyList.Add(firstModel);
mergeIncomeModel.Surplus = firstModel.SurplusPrice;
depositMergeList.Add(mergeIncomeModel);
bool result = couponModule.MergeDeposit(depositBuyList, depositMergeList);
if (result)
{
return ApiResult.Success("储值卡合并成功");
}
else
{
return ApiResult.Failed("储值卡合并失败");
}
}
/// <summary>
/// 判断储值卡是否可以分享
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetGiveDeposit()
{
var parms = RequestParm;
var userInfo = AppletUserInfo;
JObject parmsJob = JObject.Parse(RequestParm.msg.ToString());
int Id = parmsJob.GetInt("Id", 0);
//判断当前的储值卡是否可以被分享
var depositModel = couponModule.GetDepositBuyList(new Model.Extend.User.RB_Member_DepositBuy_Extend { TenantId = userInfo.TenantId, MallBaseId = userInfo.MallBaseId, Id = Id, UserId = userInfo.UserId, SendStatus = -1, Status = 1 }).FirstOrDefault();
if (depositModel == null || depositModel.Id == 0)
{
return ApiResult.Failed("储值卡不存在");
}
else if (depositModel.SendStatus == 1)
{
return ApiResult.Failed("储值卡已赠送他人");
}
else
{
//if (depositModel.DepositPrice != depositModel.SurplusPrice)
//{
// return ApiResult.Failed("已使用的储值卡不能赠送");
//}
var depositBalanceList = couponModule.GetDepositBalanceList(new RB_Member_DepositBalance_Extend { MallBaseId = userInfo.MallBaseId, OldDepositBuyId = depositModel.Id, TenantId = userInfo.TenantId, UserId = userInfo.UserId, Type = Common.Enum.MarketingCenter.RecordTypeEnum.Expend, MergeType = 3 });
if (depositBalanceList != null && depositBalanceList.Any())
{
return ApiResult.Failed("已使用的储值卡不能赠送");
}
//更新储值卡的状态
if (depositModel.SendStatus == 0)
{
bool result = couponModule.UpdateSendStatus(depositModel);
if (result)
{
return ApiResult.Success("");
}
else
{
return ApiResult.Failed("储值卡暂不支持分享,请稍后再试");
}
}
else
{
return ApiResult.Success("");
}
}
}
/// <summary>
/// 领取储值卡
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetReceiveDeposit()
{
var parms = RequestParm;
var userInfo = AppletUserInfo;
JObject parmsJob = JObject.Parse(RequestParm.msg.ToString());
int Id = parmsJob.GetInt("Id", 0);
var depositModel = couponModule.GetDepositBuyList(new Model.Extend.User.RB_Member_DepositBuy_Extend { TenantId = userInfo.TenantId, MallBaseId = userInfo.MallBaseId, Id = Id, SendStatus = -1, Status = 1 }).FirstOrDefault();
if (depositModel == null || depositModel.Id == 0)
{
return ApiResult.Failed("储值卡不存在");
}
else if (depositModel.SendStatus == 1)
{
return ApiResult.Failed("慢人一步,储值卡已被别人领取");
}
if (depositModel.UserId == userInfo.UserId)
{
return ApiResult.Failed("自己不能领取自己的储值卡");
}
if (depositModel.SendStatus == 2)
{
if (depositModel.SendTime.HasValue && depositModel.SendTime > System.DateTime.Now)
{
List<Model.Entity.User.RB_Member_DepositBalance> depositMergeList = new List<Model.Entity.User.RB_Member_DepositBalance>();
var newDepositModel = depositModel;
newDepositModel.Id = 0;
newDepositModel.CreateDate = System.DateTime.Now;
newDepositModel.EndTime = newDepositModel.CreateDate.Value.AddDays(newDepositModel.IndateDay);
newDepositModel.UserId = userInfo.UserId;
newDepositModel.RechargeType = 2;
newDepositModel.SendStatus = 0;
newDepositModel.SendTime = null;
Model.Entity.User.RB_Member_DepositBalance mergeModel = new Model.Entity.User.RB_Member_DepositBalance()
{
Id = 0,
OldDepositBuyId = depositModel.Id,
NewDepositBuyId = 0,
UserId = userInfo.UserId,
Name = depositModel.Name,
CouponIco = depositModel.CouponIco,
SalePrice = depositModel.SalePrice,
DepositPrice = depositModel.DepositPrice,
MergeType = 2,
CreateDate = System.DateTime.Now,
Status = 0,
Balance = 0,
Surplus = depositModel.DepositPrice,
Type = Common.Enum.MarketingCenter.RecordTypeEnum.Income,
TenantId = userInfo.TenantId,
MallBaseId = userInfo.MallBaseId,
Remarks = "用户id:" + userInfo.UserId + "将储值卡赠送给您",
};
depositMergeList.Add(mergeModel);
Model.Entity.User.RB_Member_DepositBalance oldDergeModel = new Model.Entity.User.RB_Member_DepositBalance()
{
Id = 0,
OldDepositBuyId = depositModel.Id,
NewDepositBuyId = 0,
UserId = depositModel.UserId,
Name = depositModel.Name,
CouponIco = depositModel.CouponIco,
SalePrice = depositModel.SalePrice,
DepositPrice = depositModel.DepositPrice,
MergeType = 2,
CreateDate = System.DateTime.Now,
Status = 0,
Balance = depositModel.DepositPrice,
Surplus = 0,
Type = Common.Enum.MarketingCenter.RecordTypeEnum.Expend,
TenantId = userInfo.TenantId,
MallBaseId = userInfo.MallBaseId,
Remarks = "将储值卡赠送给了" + userInfo.Name + ",用户id:" + userInfo.UserId
};
depositMergeList.Add(oldDergeModel);
bool flag = couponModule.ReceiveDeposit(depositModel, newDepositModel, depositMergeList);
if (flag)
{
return ApiResult.Success("储值卡领取成功");
}
else
{
return ApiResult.Failed("储值卡领取失败");
}
}
else
{
return ApiResult.Failed("储值卡领取时间已过,请赠送人再次分享");
}
}
return ApiResult.Success("储值卡领取失败");
}
/// <summary>
/// 获取用户购买的储值卡(剩余金额>0)
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetNoUseDeposit()
{
var parms = RequestParm;
var userInfo = AppletUserInfo;
var depositList = couponModule.GetDepositBuyList(new Model.Extend.User.RB_Member_DepositBuy_Extend { TenantId = userInfo.TenantId, IsOver = 1, MallBaseId = userInfo.MallBaseId, SendStatus = 0, Status = 1 });
var result = depositList.Where(x => x.SurplusPrice > 0).Select(x => new { x.Id, x.SurplusPrice, x.Name, x.CouponIco, EndTime = x.EndTime.HasValue ? x.EndTime.Value.ToString("yyyy-MM-dd HH:mm:ss") : "", });
return ApiResult.Success("", result);
}
#endregion #endregion
} }
} }
\ No newline at end of file
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