Commit 07f2c83a authored by 吴春's avatar 吴春
parents a17caffb c4396400
......@@ -34,6 +34,10 @@ namespace Mall.Model.Extend.Product
/// </summary>
public string Mobile { get; set; }
/// <summary>
/// 用户头像
/// </summary>
public string Photo { get; set; }
/// <summary>
/// 等级描述
/// </summary>
public string GradeDescription { get; set; }
......@@ -45,5 +49,9 @@ namespace Mall.Model.Extend.Product
/// 订单明细列表
/// </summary>
public List<RB_Goods_OrderDetail_Extend> OrderDetailList { get; set; }
/// <summary>
/// 待返佣金额
/// </summary>
public decimal WaitCommission { get; set; }
}
}
......@@ -58,6 +58,11 @@ namespace Mall.Model.Extend.User
/// </summary>
public decimal Price { get; set; }
/// <summary>
/// 待结算
/// </summary>
public decimal WaitCommission { get; set; }
/// <summary>
/// 总佣金
/// </summary>
......
......@@ -154,7 +154,7 @@ namespace Mall.Module.MarketingCenter
item.data = new rubikItem()
{
hotspot = new List<hotspotItem>(),
list = new List<rubikDetailItem>() { new rubikDetailItem() { link = new List<rubikLinkItem>() } },
list = new List<rubikDetailItem>() { new rubikDetailItem() { link = new List<rubikLinkItem>() { new rubikLinkItem ()} } },
};
}
break;
......
......@@ -63,6 +63,11 @@ namespace Mall.Module.Finance
};
}
else {
int TypeId = 0;
if (fmodel.Type == 1) {
var backModel = backAccountRepository.GetAccountList(new RB_BackAccount_Extend() { BankType = fmodel.AccountType, ID = fmodel.AccountId ?? 0, RB_Group_Id = 2 }).FirstOrDefault();
TypeId = backModel?.TypeId ?? 0;
}
return new
{
Status = 2,
......@@ -70,6 +75,7 @@ namespace Mall.Module.Finance
{
fmodel.Id,
fmodel.IsPublic,
TypeId,
fmodel.AccountType,
fmodel.AccountId,
fmodel.RemitterName,
......@@ -180,6 +186,7 @@ namespace Mall.Module.Finance
return list.Select(x => new
{
Id = x.ID,
x.IsPublic,
x.Name
});
}
......
......@@ -3969,12 +3969,116 @@ namespace Mall.Module.Product
}
}
var HpgradeList = new List<RB_Distributor_HPGradeInfo_Extend>();
if (oclist.Where(x => x.Type == 2).Any())
{
string gradeIds = string.Join(",", oclist.Where(x => x.Type == 2).Select(x => x.Grade).Distinct());
HpgradeList = distributor_HPGradeInfoRepository.GetList(new RB_Distributor_HPGradeInfo_Extend() { GradeIds = gradeIds, TenantId = demodel.TenantId, MallBaseId = demodel.MallBaseId }, true);
}
foreach (var item in oclist)
{
var umodel = ulist.Where(x => x.Id == item.UserId).FirstOrDefault();
item.UserName = umodel?.Name ?? "";
item.Mobile = umodel?.Moblie ?? "";
item.Photo = umodel?.Photo ?? "";
item.OrderDetailList = dlist.Where(x => x.OrderId == item.OrderId).ToList();
if (item.Type == 1)
{
if (item.Grade == 0)
{
item.GradeDescription = "自购返利";
}
else if (item.Grade == 1)
{
item.GradeDescription = "一级佣金";
}
else if (item.Grade == 2)
{
item.GradeDescription = "二级佣金";
}
else if (item.Grade == 3)
{
item.GradeDescription = "三级佣金";
}
}
else if (item.Type == 2)
{
var hpGModel = HpgradeList.Where(x => x.Id == item.Grade).FirstOrDefault();
item.GradeDescription = hpGModel?.GradeName ?? "暂无等级";
}
}
}
return oclist;
}
/// <summary>
/// 获取用户分销订单
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="count"></param>
/// <param name="demodel"></param>
/// <returns></returns>
public List<RB_Goods_OrderCommission_Extend> GetERPDistributionOrdersPageList(int pageIndex, int pageSize, out long count, RB_Goods_OrderCommission_Extend demodel)
{
var oclist = goods_OrderCommissionRepository.GetListGroupByUser_V3(pageIndex, pageSize, out count, demodel);
if (oclist.Any())
{
//获取用户
var ulist = member_UserRepository.GetList(new RB_Member_User_Extend() { TenantId = demodel.TenantId, MallBaseId = demodel.MallBaseId, UserIds = string.Join(",", oclist.Select(x => x.UserId).Distinct()) });
string orderIds = string.Join(",", oclist.Select(x => x.OrderId).Distinct());
//查询订单明细
var dlist = goods_OrderDetailRepository.GetOrderDetailList(new RB_Goods_OrderDetail_Extend() { TenantId = demodel.TenantId, MallBaseId = demodel.MallBaseId, OrderIds = orderIds });
//查询图片
List<RB_Material_Info_Extend> Mlist = new List<RB_Material_Info_Extend>();
if (dlist.Any())
{
foreach (var item in dlist)
{
item.CoverImagePath = item.CoverImage;
}
}
var HpgradeList = new List<RB_Distributor_HPGradeInfo_Extend>();
if (oclist.Where(x => x.Type == 2).Any())
{
string gradeIds = string.Join(",", oclist.Where(x => x.Type == 2).Select(x => x.Grade).Distinct());
HpgradeList = distributor_HPGradeInfoRepository.GetList(new RB_Distributor_HPGradeInfo_Extend() { GradeIds = gradeIds, TenantId = demodel.TenantId, MallBaseId = demodel.MallBaseId }, true);
}
foreach (var item in oclist)
{
var umodel = ulist.Where(x => x.Id == item.UserId).FirstOrDefault();
item.UserName = umodel?.Name ?? "";
item.Mobile = umodel?.Moblie ?? "";
item.OrderDetailList = dlist.Where(x => x.OrderId == item.OrderId).ToList();
if (item.Type == 1)
{
if (item.Grade == 0)
{
item.GradeDescription = "自购返利";
}
else if (item.Grade == 1)
{
item.GradeDescription = "一级佣金";
}
else if (item.Grade == 2)
{
item.GradeDescription = "二级佣金";
}
else if (item.Grade == 3)
{
item.GradeDescription = "三级佣金";
}
}
else if (item.Type == 2)
{
var hpGModel = HpgradeList.Where(x => x.Id == item.Grade).FirstOrDefault();
item.GradeDescription = hpGModel?.GradeName ?? "暂无等级";
}
}
}
......
This diff is collapsed.
......@@ -33,6 +33,9 @@ namespace Mall.Repository.Finance
{
where += string.Format(" AND t." + nameof(RB_BackAccount_Extend.TypeId) + " ={0}", model.TypeId);
}
if (model.BankType > 0) {
where += string.Format(" AND t." + nameof(RB_BackAccount_Extend.BankType) + " ={0}", model.BankType);
}
if (!string.IsNullOrEmpty(model.Alias))
{
where += string.Format(" AND t." + nameof(RB_BackAccount_Extend.Alias) + " like '%{0}%' ", model.Alias);
......
......@@ -128,6 +128,57 @@ where {where} group by oc.OrderId,o.OrderNo,oc.UserId,oc.Grade order by oc.Order
return GetPage<RB_Goods_OrderCommission_Extend>(pageIndex, pageSize, out count, sql).ToList();
}
/// <summary>
/// 获取用户返佣
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="count"></param>
/// <param name="dmodel"></param>
/// <returns></returns>
public List<RB_Goods_OrderCommission_Extend> GetListGroupByUser_V3(int pageIndex, int pageSize, out long count, RB_Goods_OrderCommission_Extend dmodel)
{
string where = $" 1=1 and o.Recycled=2 and oa.ReOrderId is null";
if (dmodel.TenantId > 0)
{
where += $@" and oc.{nameof(RB_Goods_OrderCommission.TenantId)}={dmodel.TenantId}";
}
if (dmodel.MallBaseId > 0)
{
where += $@" and oc.{nameof(RB_Goods_OrderCommission.MallBaseId)}={dmodel.MallBaseId}";
}
if (dmodel.OrderId > 0)
{
where += $@" and oc.{nameof(RB_Goods_OrderCommission.OrderId)}={dmodel.OrderId}";
}
if (dmodel.UserId > 0)
{
where += $@" and oc.{nameof(RB_Goods_OrderCommission.UserId)}={dmodel.UserId}";
}
if (!string.IsNullOrEmpty(dmodel.OrderIds))
{
where += $@" and oc.{nameof(RB_Goods_OrderCommission.OrderId)} in({dmodel.OrderIds})";
}
if (!string.IsNullOrEmpty(dmodel.OrderNo)) {
where += $@" and o.{nameof(RB_Goods_Order.OrderNo)}='{dmodel.OrderNo}'";
}
if (dmodel.CommissionState > 0)
{
switch (dmodel.CommissionState)
{
case 2: where += $@" and o.{nameof(RB_Goods_Order.OrderStatus)}={(int)OrderStatusEnum.Completed}"; break;
case 1: where += $@" and o.{nameof(RB_Goods_Order.OrderStatus)} in(1,2,3,4,6)"; break;
}
}
string sql = $@"SELECT oc.OrderId,o.OrderNo,o.UserId,oc.Grade,o.OrderStatus as DistrbutionOrderSelectStatus,SUM(oc.Commission) as Commission
FROM RB_Goods_OrderCommission oc
inner join rb_goods_order o on oc.OrderId = o.OrderId
left join rb_goods_orderaftersale oa on oc.OrderDetailId= oa.OrderDetialId and oa.Type=1 and oa.Status=0 and oa.ReOrderStatus in (2,3,4,5)
where {where} group by oc.OrderId,o.OrderNo,oc.UserId,oc.Grade order by oc.OrderId desc";
return GetPage<RB_Goods_OrderCommission_Extend>(pageIndex, pageSize, out count, sql).ToList();
}
/// <summary>
/// 订单返佣
/// </summary>
......@@ -145,5 +196,24 @@ INNER JOIN rb_goods_order o on oc.OrderId=o.OrderId
}
return 0;
}
/// <summary>
/// 订单返佣
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
public List<RB_Goods_OrderCommission_Extend> GetUserCommissionStatistics(string userIds)
{
string sql = $@"SELECT oc.UserId
,SUM(case when oc.CommissionState =1 then oc.Commission else 0 end) as WaitCommission
,SUM(case when oc.CommissionState =2 then oc.Commission else 0 end) as Commission
FROM rb_goods_ordercommission oc
INNER JOIN rb_goods_order o on oc.OrderId=o.OrderId
left join rb_goods_orderaftersale oa on oc.OrderDetailId= oa.OrderDetialId and oa.Type=1 and oa.Status=0 and oa.ReOrderStatus in (2,3,4,5)
WHERE oc.UserId in({userIds}) and o.OrderStatus in (1,2,3,4,5,6) and o.Recycled=2 and oa.ReOrderId is null
group by oc.UserId";
return Get<RB_Goods_OrderCommission_Extend>(sql).ToList();
}
}
}
......@@ -52,6 +52,9 @@ namespace Mall.Repository.User
if (dmodel.SuperiorId > 0) {
where += $@" and {nameof(RB_Member_User.SuperiorId)}={dmodel.SuperiorId}";
}
if (dmodel.IsDistributor > 0) {
where += $@" and {nameof(RB_Member_User.IsDistributor)}={dmodel.IsDistributor}";
}
if (dmodel.IsEmptyUserPhoto == 1) {
where += $@" and IFNULL({nameof(RB_Member_User.Photo)},'')=''";
}
......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Mall.Common.API;
using Mall.Model.Extend.User;
using Mall.Module.User;
using Mall.WebApi.Filter;
using Microsoft.AspNetCore.Cors;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using Mall.Common.Plugin;
using Mall.Common.Enum.User;
using Newtonsoft.Json.Linq;
using Mall.Common;
using Mall.Module.Finance;
using Mall.Model.Extend.Finance;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Configuration.Json;
using Mall.Model.Extend.Product;
using Mall.Module.Product;
namespace Mall.WebApi.Controllers.Finance
{
[Route("api/[controller]/[action]")]
[ApiExceptionFilter]
[ApiController]
[EnableCors("AllowCors")]
public class ERPOrderCommissionController : ControllerBase
{
private readonly UserModule userModule = new UserModule();
private readonly OrderModule orderModule = new OrderModule();
#region erp查询分销情况
/// <summary>
/// 用户返佣列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetDistributionCommissionPageList(object request)
{
//处理数据
//byte[] data = System.Text.ASCIIEncoding.ASCII.GetBytes(request.ToString());
//var parms = System.Text.ASCIIEncoding.ASCII.GetString(Mall.Common.Plugin.RSAHelper.DecryptData(data));
var requestParm = JsonConvert.DeserializeObject<RequestParm>(request.ToString());
ResultPageModel pagelist = JsonConvert.DeserializeObject<ResultPageModel>(requestParm.msg.ToString());
RB_Member_User_Extend demodel = JsonConvert.DeserializeObject<RB_Member_User_Extend>(requestParm.msg.ToString());
demodel.TenantId = Convert.ToInt32(new ConfigurationBuilder().Add(new JsonConfigurationSource { Path = "appsettings.json" }).Build().GetSection("FinanceSetting")["TenantId"]);
demodel.MallBaseId = Convert.ToInt32(new ConfigurationBuilder().Add(new JsonConfigurationSource { Path = "appsettings.json" }).Build().GetSection("FinanceSetting")["MallBaseId"]);
demodel.IsDistributor = 1;
var list = userModule.GetDistributionCommissionPageList(pagelist.pageIndex, pagelist.pageSize, out long count, demodel);
pagelist.count = Convert.ToInt32(count);
pagelist.pageData = list;
return ApiResult.Success("", pagelist);
}
/// <summary>
/// 用户订单返佣列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetDistributionOrderCommissionPageList(object request)
{
//处理数据
//byte[] data = System.Text.ASCIIEncoding.ASCII.GetBytes(request.ToString());
//var parms = System.Text.ASCIIEncoding.ASCII.GetString(Mall.Common.Plugin.RSAHelper.DecryptData(data));
var requestParm = JsonConvert.DeserializeObject<RequestParm>(request.ToString());
ResultPageModel pagelist = JsonConvert.DeserializeObject<ResultPageModel>(requestParm.msg.ToString());
RB_Goods_OrderCommission_Extend demodel = JsonConvert.DeserializeObject<RB_Goods_OrderCommission_Extend>(requestParm.msg.ToString());
if ((demodel.UserId ?? 0) <= 0) {
return ApiResult.ParamIsNull("请传递用户id");
}
demodel.TenantId = Convert.ToInt32(new ConfigurationBuilder().Add(new JsonConfigurationSource { Path = "appsettings.json" }).Build().GetSection("FinanceSetting")["TenantId"]);
demodel.MallBaseId = Convert.ToInt32(new ConfigurationBuilder().Add(new JsonConfigurationSource { Path = "appsettings.json" }).Build().GetSection("FinanceSetting")["MallBaseId"]);
var list = orderModule.GetERPDistributionOrdersPageList(pagelist.pageIndex, pagelist.pageSize, out long count, demodel);
pagelist.count = Convert.ToInt32(count);
pagelist.pageData = list.Select(x => new
{
x.OrderId,
x.OrderNo,
x.Grade,
x.GradeDescription,
DetailList = x.OrderDetailList.Select(y => new {
y.Id,
y.CoverImagePath,
y.OrderType,
OrderTypeName = y.OrderType.GetEnumName(),
y.GoodsName,
SpecificationList = JsonConvert.DeserializeObject<List<string>>(y.Specification),
y.ProductCode,
y.Final_Price,
y.Number
}),
x.UserId,
x.UserName,
x.Mobile,
x.Remark,
x.Commission,
x.CommissionState,
x.TenantId,
x.MallBaseId,
CreateDate = x.CreateDate.HasValue ? x.CreateDate.Value.ToString("yyyy-MM-dd HH:mm:ss") : ""
});
return ApiResult.Success("", pagelist);
}
#endregion
}
}
\ No newline at end of file
......@@ -2090,7 +2090,7 @@ namespace Mall.WebApi.Controllers.MallBase
if (RequestParm.OpenId != null && !string.IsNullOrWhiteSpace(RequestParm.OpenId))
{
var memberModel = userModule.GetAppletUserCenterStatistics(RequestParm.OpenId);
user_info = memberModel;
user_info = memberModel;
}
var data = new object();
......
......@@ -770,6 +770,7 @@ namespace Mall.WebApi.Controllers.MallBase
x.OrderId,
x.OrderNo,
x.Grade,
x.GradeDescription,
DetailList = x.OrderDetailList.Select(y => new {
y.Id,
y.CoverImagePath,
......@@ -783,8 +784,10 @@ namespace Mall.WebApi.Controllers.MallBase
}),
x.UserId,
x.UserName,
x.Photo,
x.Mobile,
x.Remark,
x.Commission,
x.CommissionState,
StatusName = x.DistrbutionOrderSelectStatus == 1 ? "待付款" : x.DistrbutionOrderSelectStatus == 5 ? "已完成" : "已付款",
x.TenantId,
......
......@@ -49,6 +49,9 @@ namespace Mall.WebApi
"http://localhost:8082",
"http://127.0.0.1:50512",
"http://127.0.0.1:20224",
"http://www.test.com:8080",
"http://www.test.com:8081",
"http://yx.oytour.com",
"http://mall.oytour.com",
"http://testmall.oytour.com"
};
......
......@@ -40,6 +40,10 @@
},
"VirtualDirectory": "WebFile",
"FileService": "2",
"FinanceSetting": {
"TenantId": 1,
"MallBaseId": 1
},
"InitializeImages": {
"GradeEntranceImage": "1234566778"
}
......
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