Commit d6d990ac authored by liudong1993's avatar liudong1993

no message

parents a7a5bcdd 0663f08f
...@@ -138,5 +138,10 @@ namespace Mall.Model.Entity.User ...@@ -138,5 +138,10 @@ namespace Mall.Model.Entity.User
get; get;
set; set;
} }
/// <summary>
/// 粉象Vip的有效期
/// </summary>
public DateTime? VipExpiryDate { get; set; }
} }
} }
...@@ -13,6 +13,9 @@ namespace Mall.Model.Extend.User ...@@ -13,6 +13,9 @@ namespace Mall.Model.Extend.User
[DB(ConnectionName = "DefaultConnection")] [DB(ConnectionName = "DefaultConnection")]
public class RB_Vip_Buy_Extend : RB_Vip_Buy public class RB_Vip_Buy_Extend : RB_Vip_Buy
{ {
/// <summary>
/// 购买人姓名
/// </summary>
public string UserName { get; set; }
} }
} }
...@@ -392,6 +392,12 @@ namespace Mall.Module.User ...@@ -392,6 +392,12 @@ namespace Mall.Module.User
//判断订单状态是否是待支付 //判断订单状态是否是待支付
var buyList = vipBuyRepository.GetVipBuyList(new RB_Vip_Buy_Extend { UserId = BuyUserId }); var buyList = vipBuyRepository.GetVipBuyList(new RB_Vip_Buy_Extend { UserId = BuyUserId });
//获取会员分销商的信息
var distributorModel = distributor_InfoRepository.GetList(new RB_Distributor_Info_Extend { TenantId = uModel.TenantId, MallBaseId = uModel.MallBaseId, UserId = uModel.Id }).FirstOrDefault();
if (distributorModel == null)
{
return false;
}
if (buyList.Where(x => x.PayState == 1).Count() == 0) if (buyList.Where(x => x.PayState == 1).Count() == 0)
{ {
IsFristBuy = 1; IsFristBuy = 1;
...@@ -411,6 +417,54 @@ namespace Mall.Module.User ...@@ -411,6 +417,54 @@ namespace Mall.Module.User
} }
TenantId = model.TenantId; TenantId = model.TenantId;
MallBaseId = model.MallBaseId; MallBaseId = model.MallBaseId;
var trans = vipBuyRepository.DbTransaction;
//2020-07-17 Add By:W
Dictionary<string, object> keyValuesVip = new Dictionary<string, object>() {
{ nameof(RB_Vip_Buy.PayTime),Time_End},
{ nameof(RB_Vip_Buy.PayState),1},
{ nameof(RB_Vip_Buy.MerchantsNo),Out_Trade_No}
};
List<WhereHelper> wheresVip = new List<WhereHelper>() {
new WhereHelper{
FiledName=nameof(RB_Vip_Buy.Id),
FiledValue=OrderId,
OperatorEnum=OperatorEnum.Equal
}
};
flag = vipBuyRepository.Update(keyValuesVip, wheresVip, trans);//更新会员购买记录 2020-07-17 Add By: W End
//判断返佣的过期时间
if (distributorModel.VipExpiryDate.HasValue)
{
if (distributorModel.VipExpiryDate.Value > System.DateTime.Now)
{
int year = model.ExpiryDate.Value.Year - model.CreateDate.Year;
distributorModel.VipExpiryDate = distributorModel.VipExpiryDate.Value.AddYears((year == 0 ? 1 : year));
}
else
{
distributorModel.VipExpiryDate = model.ExpiryDate;
}
}
else
{
distributorModel.VipExpiryDate = model.ExpiryDate;
}
//2020-07-20 Add By:W
Dictionary<string, object> keyValuesDistributor = new Dictionary<string, object>() {
{ nameof(RB_Distributor_Info.VipExpiryDate),distributorModel.VipExpiryDate}
};
List<WhereHelper> wheresDistributor = new List<WhereHelper>() {
new WhereHelper{
FiledName=nameof(RB_Distributor_Info.Id),
FiledValue=distributorModel.Id,
OperatorEnum=OperatorEnum.Equal
}
};
distributor_InfoRepository.Update(keyValuesDistributor, wheresDistributor, trans);//更新会员分销商vip过期时间 2020-07-20 Add By: W End
//获取用户当前分销商 //获取用户当前分销商
var basicModel = distributor_BasicsRepository.GetList(new RB_Distributor_Basics_Extend() { TenantId = TenantId, MallBaseId = MallBaseId }).FirstOrDefault(); var basicModel = distributor_BasicsRepository.GetList(new RB_Distributor_Basics_Extend() { TenantId = TenantId, MallBaseId = MallBaseId }).FirstOrDefault();
...@@ -622,71 +676,48 @@ namespace Mall.Module.User ...@@ -622,71 +676,48 @@ namespace Mall.Module.User
} }
} }
try if (gocList.Any())
{ {
var trans = vipBuy_CommissionRepository.DbTransaction; string FUserIds = string.Join(",", gocList.Select(x => x.UserId).Distinct());
//最后再次查询分销商 便于返佣金
var fdlist = distributor_InfoRepository.GetListForSingle(new RB_Distributor_Info_Extend() { UserIds = FUserIds, AuditStatus = Common.Enum.User.DistributorAuditStatusEnum.Audited, TenantId = TenantId, MallBaseId = MallBaseId });
if (gocList.Any()) foreach (var qitem in gocList)
{ {
string FUserIds = string.Join(",", gocList.Select(x => x.UserId).Distinct()); if (qitem.Commission > 0)
//最后再次查询分销商 便于返佣金
var fdlist = distributor_InfoRepository.GetListForSingle(new RB_Distributor_Info_Extend() { UserIds = FUserIds, AuditStatus = Common.Enum.User.DistributorAuditStatusEnum.Audited, TenantId = TenantId, MallBaseId = MallBaseId });
//2020-07-17 Add By:W
Dictionary<string, object> keyValuesVip = new Dictionary<string, object>() {
{ nameof(RB_Vip_Buy.PayTime),Time_End},
{ nameof(RB_Vip_Buy.PayState),1},
{ nameof(RB_Vip_Buy.MerchantsNo),Out_Trade_No}
};
List<WhereHelper> wheresVip = new List<WhereHelper>() {
new WhereHelper{
FiledName=nameof(RB_Vip_Buy.Id),
FiledValue=OrderId,
OperatorEnum=OperatorEnum.Equal
}
};
flag = vipBuyRepository.Update(keyValuesVip, wheresVip, trans);//更新会员购买记录 2020-07-17 Add By: W End
foreach (var qitem in gocList)
{ {
if (qitem.Commission > 0) flag = vipBuy_CommissionRepository.Insert(qitem, trans) > 0;
if (flag)
{ {
flag = vipBuy_CommissionRepository.Insert(qitem, trans) > 0; //分销商增加相应的佣金
if (flag) var numodel = ulist.Where(x => x.Id == qitem.UserId).FirstOrDefault();
var fmodel = fdlist.Where(x => x.UserId == (numodel?.Id ?? 0)).FirstOrDefault();
if (fmodel != null)
{ {
//分销商增加相应的佣金 //分销商增加佣金
var numodel = ulist.Where(x => x.Id == qitem.UserId).FirstOrDefault(); Dictionary<string, object> keyValues = new Dictionary<string, object>() {
var fmodel = fdlist.Where(x => x.UserId == (numodel?.Id ?? 0)).FirstOrDefault();
if (fmodel != null)
{
//分销商增加佣金
Dictionary<string, object> keyValues = new Dictionary<string, object>() {
{ nameof(RB_Distributor_Info.TotalCommission),(fmodel.TotalCommission??0)+(qitem.Commission??0)}, { nameof(RB_Distributor_Info.TotalCommission),(fmodel.TotalCommission??0)+(qitem.Commission??0)},
{ nameof(RB_Distributor_Info.CommissionWithdrawal),(fmodel.CommissionWithdrawal??0)+(qitem.Commission??0)}, { nameof(RB_Distributor_Info.CommissionWithdrawal),(fmodel.CommissionWithdrawal??0)+(qitem.Commission??0)},
}; };
List<WhereHelper> wheres = new List<WhereHelper>() { List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper(){ new WhereHelper(){
FiledName=nameof(RB_Distributor_Info.Id), FiledName=nameof(RB_Distributor_Info.Id),
FiledValue=fmodel.Id, FiledValue=fmodel.Id,
OperatorEnum=OperatorEnum.Equal OperatorEnum=OperatorEnum.Equal
} }
}; };
distributor_InfoRepository.Update(keyValues, wheres, trans); distributor_InfoRepository.Update(keyValues, wheres, trans);
}
} }
} }
} }
} }
vipBuy_CommissionRepository.DBSession.Commit();
}
catch (Exception ex)
{
LogHelper.Write(ex, "InsertVipBuyCommission");
vipBuy_CommissionRepository.DBSession.Rollback();
} }
} }
} }
}
vipBuyRepository.DBSession.Commit();
if (basicModel.IsEnableFXGrade == 1) {
//购买vip之后 其上级验证 如果满足升级 将自动升级为更高级别的分销商 //购买vip之后 其上级验证 如果满足升级 将自动升级为更高级别的分销商
System.Threading.Tasks.Task.Run(() => FXAutoUpgradeUserDistributorGrade(BuyUserId, TenantId, MallBaseId)); System.Threading.Tasks.Task.Run(() => FXAutoUpgradeUserDistributorGrade(BuyUserId, TenantId, MallBaseId));
} }
...@@ -694,7 +725,9 @@ namespace Mall.Module.User ...@@ -694,7 +725,9 @@ namespace Mall.Module.User
} }
catch (Exception ex) catch (Exception ex)
{ {
LogHelper.Write(ex, "InsertVipBuyCommission"); LogHelper.Write(ex, "InsertVipBuyCommission");
vipBuyRepository.DBSession.Rollback();
return false; return false;
} }
} }
......
...@@ -80,7 +80,10 @@ namespace Mall.Repository.User ...@@ -80,7 +80,10 @@ namespace Mall.Repository.User
{ {
where += $@" and {nameof(RB_Distributor_FXGrade.IsGuest)}={dmodel.IsGuest}"; where += $@" and {nameof(RB_Distributor_FXGrade.IsGuest)}={dmodel.IsGuest}";
} }
if (dmodel.IsCanBuy > 0)
{
where += $@" and {nameof(RB_Distributor_FXGrade.IsCanBuy)}={dmodel.IsCanBuy}";
}
string sql = $@"select * from RB_Distributor_FXGrade where {where} order by Grade asc"; string sql = $@"select * from RB_Distributor_FXGrade where {where} order by Grade asc";
return Get<RB_Distributor_FXGrade_Extend>(sql).ToList(); return Get<RB_Distributor_FXGrade_Extend>(sql).ToList();
} }
......
...@@ -24,20 +24,20 @@ namespace Mall.Repository.User ...@@ -24,20 +24,20 @@ namespace Mall.Repository.User
public List<RB_Vip_Buy_Extend> GetVipBuyPageList(int pageIndex, int pageSize, out long rowCount, RB_Vip_Buy_Extend query) public List<RB_Vip_Buy_Extend> GetVipBuyPageList(int pageIndex, int pageSize, out long rowCount, RB_Vip_Buy_Extend query)
{ {
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.Append($" SELECT * FROM {TableName} WHERE {nameof(RB_Vip_Buy_Extend.Status)}=0"); builder.Append($" SELECT a.*,b.`Name` as UserName FROM rb_vip_buy as a LEFT JOIN rb_member_user as b on a.UserId=b.Id WHERE a.{nameof(RB_Vip_Buy_Extend.Status)}=0");
if (query != null) if (query != null)
{ {
if (query.TenantId > 0) if (query.TenantId > 0)
{ {
builder.Append($" AND {nameof(RB_Vip_Buy_Extend.TenantId)}={query.TenantId}"); builder.Append($" AND a.{nameof(RB_Vip_Buy_Extend.TenantId)}={query.TenantId}");
} }
if (query.TenantId > 0) if (query.TenantId > 0)
{ {
builder.Append($" AND {nameof(RB_Vip_Buy_Extend.MallBaseId)}={query.MallBaseId}"); builder.Append($" AND a.{nameof(RB_Vip_Buy_Extend.MallBaseId)}={query.MallBaseId}");
} }
if (query.Id > 0) if (query.Id > 0)
{ {
builder.Append($" AND {nameof(RB_Vip_Buy_Extend.Id)}={query.Id}"); builder.Append($" AND a.{nameof(RB_Vip_Buy_Extend.Id)}={query.Id}");
} }
} }
return GetPage<RB_Vip_Buy_Extend>(pageIndex, pageSize, out rowCount, builder.ToString()).ToList(); return GetPage<RB_Vip_Buy_Extend>(pageIndex, pageSize, out rowCount, builder.ToString()).ToList();
......
...@@ -343,6 +343,18 @@ namespace Mall.WebApi.Controllers.AppletWeChat ...@@ -343,6 +343,18 @@ namespace Mall.WebApi.Controllers.AppletWeChat
{ {
return ApiResult.Failed("当前会员等级不能购买"); return ApiResult.Failed("当前会员等级不能购买");
} }
//判断订单状态是否是待支付
var buyList = userVipModule.GetVipBuyList(new RB_Vip_Buy_Extend { UserId = userInfo.UserId, TenantId = userInfo.TenantId, MallBaseId = userInfo.MallBaseId });
if (buyList.Where(x => x.PayState == 1).Count() == 0)
{
demodel.Remark = "购买";
}
else
{
demodel.Remark = "续费";
}
Random R = new Random(); Random R = new Random();
int Rstr = R.Next(111, 999); int Rstr = R.Next(111, 999);
demodel.OrderNo = DateTime.Now.ToString("yyyyMMddHHmmssfff") + Rstr; demodel.OrderNo = DateTime.Now.ToString("yyyyMMddHHmmssfff") + Rstr;
...@@ -352,6 +364,7 @@ namespace Mall.WebApi.Controllers.AppletWeChat ...@@ -352,6 +364,7 @@ namespace Mall.WebApi.Controllers.AppletWeChat
demodel.PayState = 0; demodel.PayState = 0;
demodel.Status = 0; demodel.Status = 0;
demodel.CreateDate = DateTime.Now; demodel.CreateDate = DateTime.Now;
demodel.ExpiryDate = DateTime.Now.AddYears(rechargeRulesModel.Year ?? 1);
//新增充值记录 //新增充值记录
int memberBuyId = userVipModule.AddVipBuy(demodel); int memberBuyId = userVipModule.AddVipBuy(demodel);
if (memberBuyId == 0) if (memberBuyId == 0)
......
...@@ -31,8 +31,7 @@ namespace Mall.WebApi.Controllers.User ...@@ -31,8 +31,7 @@ namespace Mall.WebApi.Controllers.User
private readonly UserModule userModule = new UserModule(); private readonly UserModule userModule = new UserModule();
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 UserVipModule userVipModule = new UserVipModule();
#region 收货地址 #region 收货地址
/// <summary> /// <summary>
...@@ -665,7 +664,8 @@ namespace Mall.WebApi.Controllers.User ...@@ -665,7 +664,8 @@ namespace Mall.WebApi.Controllers.User
/// 获取我的团队 粉象返佣列表 /// 获取我的团队 粉象返佣列表
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
public ApiResult GetUserMyTeamPageListForFX() { public ApiResult GetUserMyTeamPageListForFX()
{
var req = RequestParm; var req = RequestParm;
var userInfo = AppletUserInfo; var userInfo = AppletUserInfo;
ResultPageModel pageModel = JsonConvert.DeserializeObject<ResultPageModel>(req.msg.ToString()); ResultPageModel pageModel = JsonConvert.DeserializeObject<ResultPageModel>(req.msg.ToString());
...@@ -1020,7 +1020,7 @@ namespace Mall.WebApi.Controllers.User ...@@ -1020,7 +1020,7 @@ namespace Mall.WebApi.Controllers.User
if (oldLogisticsModel.IndateType == Common.Enum.MarketingCenter.IndateTypeEnum.DayHorizon) if (oldLogisticsModel.IndateType == Common.Enum.MarketingCenter.IndateTypeEnum.DayHorizon)
{ {
memberCoupon.StartDate = System.DateTime.Now; memberCoupon.StartDate = System.DateTime.Now;
LogHelper.WriteInfo(userInfo.Name+"优惠券领取时间:" + memberCoupon.StartDate); LogHelper.WriteInfo(userInfo.Name + "优惠券领取时间:" + memberCoupon.StartDate);
memberCoupon.EndDate = memberCoupon.StartDate.Value.AddDays(oldLogisticsModel.IndateDay); memberCoupon.EndDate = memberCoupon.StartDate.Value.AddDays(oldLogisticsModel.IndateDay);
} }
else else
...@@ -1239,11 +1239,34 @@ namespace Mall.WebApi.Controllers.User ...@@ -1239,11 +1239,34 @@ namespace Mall.WebApi.Controllers.User
var rechargeRules = rechargeModule.GetRechargeRulesList(new RB_Recharge_Rules_Extend { TenantId = userInfo.TenantId, MallBaseId = userInfo.MallBaseId }); var rechargeRules = rechargeModule.GetRechargeRulesList(new RB_Recharge_Rules_Extend { TenantId = userInfo.TenantId, MallBaseId = userInfo.MallBaseId });
//获取充值规则 //获取充值规则
var rechargeSettings = rechargeModule.GetRechargeSettingsList(new Model.Entity.MarketingCenter.RB_Recharge_Settings { TenantId = userInfo.TenantId, MallBaseId = userInfo.MallBaseId }); var rechargeSettings = rechargeModule.GetRechargeSettingsList(new Model.Entity.MarketingCenter.RB_Recharge_Settings { TenantId = userInfo.TenantId, MallBaseId = userInfo.MallBaseId });
return ApiResult.Success("",new { rechargeRules , rechargeSettings }); return ApiResult.Success("", new { rechargeRules, rechargeSettings });
} }
#endregion #endregion
#region vip购买
/// <summary>
/// 个人中心- 用户充值设置与规则
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetUserVipSettings()
{
var req = RequestParm;
var userInfo = AppletUserInfo;
RB_Member_User_Extend demodel = JsonConvert.DeserializeObject<RB_Member_User_Extend>(req.msg.ToString());
demodel.Id = userInfo.UserId;
demodel.TenantId = userInfo.TenantId;
demodel.MallBaseId = userInfo.MallBaseId;
//获取自定义购买vip页面设置
var fxGradeCustom = userVipModule.GetGradeCustomList(new RB_Distributor_FXGradeCustom_Extend { TenantId = userInfo.TenantId, MallBaseId = userInfo.MallBaseId }).FirstOrDefault();
//获取购买vip列表
var fxGrade = userModule.GetFXDistributorGradeList(new RB_Distributor_FXGrade_Extend { TenantId = userInfo.TenantId, MallBaseId = userInfo.MallBaseId, IsCanBuy = 1, IsGuest = 3 });
return ApiResult.Success("", new { fxGradeCustom, fxGrade });
}
#endregion
} }
} }
\ No newline at end of file
...@@ -100,5 +100,39 @@ namespace Mall.WebApi.Controllers.User ...@@ -100,5 +100,39 @@ namespace Mall.WebApi.Controllers.User
} }
} }
#endregion #endregion
#region Vip购买记录
/// <summary>
/// 获取vip购买记录
/// </summary>
/// <param name="requestMsg"></param>
/// <returns></returns>
[HttpPost]
public ApiResult GetVipBuyPageList(object requestMsg)
{
var requestParm = JsonConvert.DeserializeObject<RequestParm>(requestMsg.ToString());
ResultPageModel pagelist = JsonConvert.DeserializeObject<ResultPageModel>(requestParm.msg.ToString());
RB_Vip_Buy_Extend demodel = JsonConvert.DeserializeObject<RB_Vip_Buy_Extend>(requestParm.msg.ToString());
demodel.TenantId = requestParm.TenantId;
demodel.MallBaseId = requestParm.MallBaseId;
var list = userVipModule.GetVipBuyPageList(pagelist.pageIndex, pagelist.pageSize, out long count, demodel);
pagelist.count = Convert.ToInt32(count);
pagelist.pageData = list.Select(x => new
{
x.Id,
x.UserName,
x.Money,
ExpiryDateStr = x.ExpiryDate.HasValue ? x.ExpiryDate.Value.ToString("yyyy-MM-dd HH:mm:ss") : "",
x.GradeName,
x.PayState,
x.PayWay,
PayTimeStr= x.PayTime.HasValue ? x.PayTime.Value.ToString("yyyy-MM-dd HH:mm:ss") : ""
});
return ApiResult.Success("", pagelist);
}
#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