Commit 31d20edf authored by 吴春's avatar 吴春

提交代码

parents 609f67f5 e6788bf5
......@@ -573,6 +573,17 @@ namespace Mall.Common
}
}
/// <summary>
/// 电商erp订单 原路退款
/// </summary>
public static string ZYRefundFinanceApi
{
get
{
return ReadConfigKey("ZYRefundFinanceApi");
}
}
/// <summary>
/// 微信支付结算率0.60%
/// </summary>
......
......@@ -36,6 +36,11 @@ namespace Mall.Common.Enum.User
/// H5站点
/// </summary>
[EnumField("H5")]
H5 = 5
H5 = 5,
/// <summary>
/// ERP订单
/// </summary>
[EnumField("ERP")]
ERP =6,
}
}
......@@ -70,6 +70,11 @@ namespace Mall.Model.Query
/// </summary>
public int RepurchaseNum { get; set; }
/// <summary>
/// 当天购买人id
/// </summary>
public string UserIds { get; set; }
/// <summary>
/// 支付人数
......
......@@ -361,7 +361,42 @@ namespace Mall.Module.MarketingCenter
/// <returns></returns>
public List<DataStatistics_Query> GetSellPageList(int pageIndex, int pageSize, out long count, DataStatistics_Query dmodel)
{
return orderRepository.GetSellPageList(pageIndex, pageSize, out count, dmodel);
var list = orderRepository.GetSellPageList(pageIndex, pageSize, out count, dmodel);
if (dmodel.OrderStatus == 0 || dmodel.OrderStatus == 1 || dmodel.OrderStatus == 2 || dmodel.OrderStatus == 3)
{
if (list != null && list.Any())
{
dmodel.RepurchaseNum = 0;
dmodel.UserIds = string.Join(",", list.Select(x => x.UserIds));
var allOrderList = orderRepository.GetOrderByUserIds(dmodel);
foreach (var item in list)
{
if (!string.IsNullOrWhiteSpace(item.UserIds))
{
try
{
DateTime nowTime = Convert.ToDateTime(item.CreateDate + " 23:59:59");
var userIdList = item.UserIds.Split(",").Distinct().ToArray();
foreach (var itemUserId in userIdList)
{
int orderNum = allOrderList.Where(x => x.UserId.ToString() == itemUserId && x.CreateDate <= nowTime).Count();
if (orderNum > 1)
{
item.RepurchaseNum += 1;
}
}
}
catch (Exception)
{
}
}
}
}
}
return list;
}
......
This diff is collapsed.
using Mall.Model.Entity.Finance;
using System;
using System.Collections.Generic;
using System.Text;
namespace Mall.Repository.Finance
{
/// <summary>
/// 财务单据关联表
/// </summary>
public class RB_ECFinanceId_RelationRepository : BaseRepository<RB_ECFinanceId_Relation>
{
}
}
......@@ -203,5 +203,68 @@ INNER JOIN rb_member_user mu on mu.Id=oas.UserId
string sql = $@"SELECT oas.* FROM rb_goods_orderaftersale oas {where} order by oas.ReOrderId desc";
return Get<RB_Goods_OrderAfterSale_Extend>(sql).ToList();
}
/// <summary>
/// 获取列表
/// </summary>
/// <param name="dmodel"></param>
/// <returns></returns>
public List<RB_Goods_OrderAfterSale_Extend> GetList_V2(RB_Goods_OrderAfterSale_Extend dmodel, bool IsNormal = true)
{
string where = $" where 1=1 and oas.{nameof(RB_Goods_OrderAfterSale.Status)}=0 and o.OrderSource<>6";
if (IsNormal)
{
where += $" and oas.{nameof(RB_Goods_OrderAfterSale.ReOrderStatus)} <> {(int)Common.Enum.Goods.OrderAfterSaleStatusEnum.Rejected}";
}
if (dmodel.TenantId > 0)
{
where += $" and oas.{nameof(RB_Goods_OrderAfterSale.TenantId)}={dmodel.TenantId}";
}
if (dmodel.MallBaseId > 0)
{
where += $" and oas.{nameof(RB_Goods_OrderAfterSale.MallBaseId)}={dmodel.MallBaseId}";
}
if (dmodel.UserId > 0)
{
where += $" and oas.{nameof(RB_Goods_OrderAfterSale.UserId)}={dmodel.UserId}";
}
if (dmodel.OrderId > 0)
{
where += $" and oas.{nameof(RB_Goods_OrderAfterSale.OrderId)}={dmodel.OrderId}";
}
if (dmodel.OrderDetialId > 0)
{
where += $" and oas.{nameof(RB_Goods_OrderAfterSale.OrderDetialId)}={dmodel.OrderDetialId}";
}
if (dmodel.Type > 0)
{
where += $" and oas.{nameof(RB_Goods_OrderAfterSale.Type)}={dmodel.Type}";
}
if (dmodel.ReOrderStatus > 0)
{
where += $" and oas.{nameof(RB_Goods_OrderAfterSale.ReOrderStatus)}={(int)dmodel.ReOrderStatus}";
}
if (!string.IsNullOrEmpty(dmodel.ReOrderNo))
{
where += $" and oas.{nameof(RB_Goods_OrderAfterSale.ReOrderNo)} like '%{dmodel.ReOrderNo}%'";
}
if (!string.IsNullOrEmpty(dmodel.OrderDetailIds))
{
where += $" and oas.{nameof(RB_Goods_OrderAfterSale.OrderDetialId)} in({dmodel.OrderDetailIds})";
}
if (!string.IsNullOrEmpty(dmodel.FStartTime))
{
where += $" and oas.{nameof(RB_Goods_OrderAfterSale.FinishTime)}>='{dmodel.FStartTime}'";
}
if (!string.IsNullOrEmpty(dmodel.FEndTime))
{
where += $" and oas.{nameof(RB_Goods_OrderAfterSale.FinishTime)}<='{dmodel.FEndTime} 23:59:59'";
}
string sql = $@"SELECT oas.* FROM rb_goods_orderaftersale oas
INNER JOIN rb_goods_order o on oas.OrderId=o.OrderId
{where} order by oas.ReOrderId desc";
return Get<RB_Goods_OrderAfterSale_Extend>(sql).ToList();
}
}
}
......@@ -777,7 +777,7 @@ GROUP BY oc.OrderId";
public List<RB_Goods_Order_Extend> GetOrderRefunedCreateList(int tenantId, int mallBaseId, string startTime, string endTime)
{
string sql = $@"SELECT * FROM rb_goods_order o
WHERE o.TenantId={tenantId} and o.MallBaseId={mallBaseId} and o.OrderStatus = 7 AND o.PaymentTime IS NOT NULL AND DATE_FORMAT(o.PaymentTime,'%Y-%m-%d') <> DATE_FORMAT(o.CancelTime,'%Y-%m-%d') AND o.CancelTime>='{startTime}' AND o.CancelTime <'{endTime}'";
WHERE o.TenantId={tenantId} and o.MallBaseId={mallBaseId} and o.OrderStatus = 7 and o.OrderSource <> 6 AND o.PaymentTime IS NOT NULL AND DATE_FORMAT(o.PaymentTime,'%Y-%m-%d') <> DATE_FORMAT(o.CancelTime,'%Y-%m-%d') AND o.CancelTime>='{startTime}' AND o.CancelTime <'{endTime}'";
return Get<RB_Goods_Order_Extend>(sql).ToList();
}
......@@ -1003,17 +1003,25 @@ LEFT JOIN rb_member_user as c on b.UserId=c.Id
}
if (dmodel.OrderStatus == 0 || dmodel.OrderStatus == 1 || dmodel.OrderStatus == 2 || dmodel.OrderStatus == 3)
{
sql = $@"SELECT t.CreateDate,SUM(t.GoodsNum)as GoodsNum ,COUNT(t.OrderId)as OrderNum ,SUM(t.Income)as PayMoney,MAX(t.PayMemerNum) as PayMemerNum,MAX(t.RepurchaseNum) as RepurchaseNum
from (SELECT DATE_FORMAT(a.CreateDate,'%Y-%m-%d' )as CreateDate,b.GoodsNum,a.UserId,a.Income,a.OrderId,c.PayMemerNum,d.RepurchaseNum from rb_goods_order as a
// sql = $@"SELECT t.CreateDate,SUM(t.GoodsNum)as GoodsNum ,COUNT(t.OrderId)as OrderNum ,SUM(t.Income)as PayMoney,MAX(t.PayMemerNum) as PayMemerNum,MAX(t.RepurchaseNum) as RepurchaseNum
//from (SELECT DATE_FORMAT(a.CreateDate,'%Y-%m-%d' )as CreateDate,b.GoodsNum,a.UserId,a.Income,a.OrderId,c.PayMemerNum,d.RepurchaseNum from rb_goods_order as a
// LEFT JOIN (SELECT OrderId,SUM(Number)as GoodsNum from rb_goods_orderdetail where 1=1 {orderTypeWhere} GROUP BY OrderId)as b on a.OrderId=b.OrderId
//LEFT JOIN (SELECT COUNT(DISTINCT UserId) as PayMemerNum, DATE_FORMAT(CreateDate,'%Y-%m-%d' ) as CreateDate from rb_goods_order where 1=1 {payMemerNumWhere} GROUP BY DATE_FORMAT(CreateDate,'%Y-%m-%d' ))
//as c on c.CreateDate=DATE_FORMAT(a.CreateDate,'%Y-%m-%d' )
//LEFT JOIN (SELECT temp.CreateDate,COUNT(UserId) as RepurchaseNum from (SELECT UserId,COUNT(DISTINCT UserId) as RepurchaseNum, DATE_FORMAT(CreateDate,'%Y-%m-%d' ) as CreateDate from rb_goods_order where 1=1
//{payMemerNumWhere} GROUP BY UserId,DATE_FORMAT(CreateDate,'%Y-%m-%d' ) having count(UserId) > 1) as temp GROUP BY temp.CreateDate
//)
//as d on d.CreateDate=DATE_FORMAT(a.CreateDate,'%Y-%m-%d' )
//{where} )
//as t GROUP BY t.CreateDate desc";
sql = $@"SELECT t.CreateDate,SUM(t.GoodsNum)as GoodsNum ,COUNT(t.OrderId)as OrderNum ,SUM(t.Income)as PayMoney,MAX(t.PayMemerNum) as PayMemerNum,GROUP_CONCAT(DISTINCT t.UserId) as UserIds
from (SELECT DATE_FORMAT(a.CreateDate,'%Y-%m-%d' )as CreateDate,b.GoodsNum,a.UserId,a.Income,a.OrderId,c.PayMemerNum from rb_goods_order as a
LEFT JOIN (SELECT OrderId,SUM(Number)as GoodsNum from rb_goods_orderdetail where 1=1 {orderTypeWhere} GROUP BY OrderId)as b on a.OrderId=b.OrderId
LEFT JOIN (SELECT COUNT(DISTINCT UserId) as PayMemerNum, DATE_FORMAT(CreateDate,'%Y-%m-%d' ) as CreateDate from rb_goods_order where 1=1 {payMemerNumWhere} GROUP BY DATE_FORMAT(CreateDate,'%Y-%m-%d' ))
as c on c.CreateDate=DATE_FORMAT(a.CreateDate,'%Y-%m-%d' )
LEFT JOIN (SELECT temp.CreateDate,COUNT(UserId) as RepurchaseNum from (SELECT UserId,COUNT(DISTINCT UserId) as RepurchaseNum, DATE_FORMAT(CreateDate,'%Y-%m-%d' ) as CreateDate from rb_goods_order where 1=1
{payMemerNumWhere} GROUP BY UserId,DATE_FORMAT(CreateDate,'%Y-%m-%d' ) having count(UserId) > 1) as temp GROUP BY temp.CreateDate
)
as d on d.CreateDate=DATE_FORMAT(a.CreateDate,'%Y-%m-%d' )
{where} )
as c on c.CreateDate=DATE_FORMAT(a.CreateDate,'%Y-%m-%d' ) {where} )
as t GROUP BY t.CreateDate desc";
}
else
{
......@@ -1028,10 +1036,58 @@ from
)
as t GROUP BY t.CreateDate desc";
}
return GetPage<DataStatistics_Query>(pageIndex, pageSize, out count, sql).ToList();
}
/// <summary>
/// 获取已退款 待制单的订单列表
/// </summary>
/// <param name="tenantId"></param>
/// <param name="mallBaseId"></param>
/// <param name="startTime"></param>
/// <param name="endTime"></param>
/// <returns></returns>
public List<RB_Goods_Order_Extend> GetOrderByUserIds(DataStatistics_Query dmodel)
{
string payMemerNumWhere = " where 1=1 ";
if (dmodel.TenantId > 0)
{
payMemerNumWhere += $@" and {nameof(RB_Goods_Order.TenantId)}={dmodel.TenantId}";
}
if (dmodel.MallBaseId > 0)
{
payMemerNumWhere += $@" and {nameof(RB_Goods_Order.MallBaseId)}={dmodel.MallBaseId}";
}
if (dmodel.PlatformType > 0)
{
payMemerNumWhere += $@" and {nameof(RB_Goods_Order.OrderSource)}={(int)dmodel.PlatformType}";
}
if (!string.IsNullOrWhiteSpace(dmodel.UserIds))
{
payMemerNumWhere += $@" and {nameof(RB_Goods_Order.UserId)} in({dmodel.UserIds})";
}
if (dmodel.OrderStatus == 1 || dmodel.OrderStatus == 0)
{
payMemerNumWhere += $@" and {nameof(RB_Goods_Order.OrderStatus)} in (2,4,5,3,6)";
}
else if (dmodel.OrderStatus == 2)
{
payMemerNumWhere += $@" and {nameof(RB_Goods_Order.OrderStatus)}=5";
}
else if (dmodel.OrderStatus == 3)
{
payMemerNumWhere += $@" and {nameof(RB_Goods_Order.OrderStatus)}=7";
}
string sql = $@"SELECT * from rb_goods_order {payMemerNumWhere}";
return Get<RB_Goods_Order_Extend>(sql).ToList();
}
/// <summary>
/// 销售统计导出
/// </summary>
......
......@@ -665,7 +665,7 @@ namespace Mall.WebApi.Controllers.MallBase
return ApiResult.Failed("该订单已无法取消");
}
int IsNormalServer = Convert.ToInt32(new ConfigurationBuilder().Add(new JsonConfigurationSource { Path = "appsettings.json" }).Build().GetSection("IsNormalServer").Value);
if (IsNormalServer == 1 && omodel.OrderStatus == OrderStatusEnum.WaitSendGoods)
if (IsNormalServer == 1 && omodel.OrderStatus == OrderStatusEnum.WaitSendGoods && omodel.OrderSource != UserSourceEnum.ERP)
{
//获取小程序信息
var mallModel = orderModule.GetMiniProgramExtend(req.MallBaseId);
......@@ -883,7 +883,7 @@ namespace Mall.WebApi.Controllers.MallBase
return ApiResult.Failed("该订单未申请取消该订单");
}
int IsNormalServer = Convert.ToInt32(new ConfigurationBuilder().Add(new JsonConfigurationSource { Path = "appsettings.json" }).Build().GetSection("IsNormalServer").Value);
if (Type == 1 && IsNormalServer == 1)
if (Type == 1 && IsNormalServer == 1 && omodel.OrderSource != UserSourceEnum.ERP)
{
//获取小程序信息
var mallModel = orderModule.GetMiniProgramExtend(req.MallBaseId);
......@@ -2492,6 +2492,7 @@ namespace Mall.WebApi.Controllers.MallBase
x.ReOrderStatus,
ReOrderStatusName = x.ReOrderStatus.GetEnumName(),
x.ReRemark,
x.FinanceId,
x.TenantId,
x.MallBaseId,
CreateDate = x.CreateDate.HasValue ? x.CreateDate.Value.ToString("yyyy-MM-dd HH:mm:ss") : ""
......@@ -2745,7 +2746,7 @@ namespace Mall.WebApi.Controllers.MallBase
var omodel = orderModule.GetOrderInfo(ReModel.OrderId ?? 0);
int IsNormalServer = Convert.ToInt32(new ConfigurationBuilder().Add(new JsonConfigurationSource { Path = "appsettings.json" }).Build().GetSection("IsNormalServer").Value);
if (IsNormalServer == 1)
if (IsNormalServer == 1 && omodel.OrderSource != UserSourceEnum.ERP)
{
//获取小程序信息
var mallModel = orderModule.GetMiniProgramExtend(req.MallBaseId);
......@@ -2789,6 +2790,25 @@ namespace Mall.WebApi.Controllers.MallBase
return ApiResult.Failed();
}
}
else if (IsNormalServer == 1 && omodel.OrderSource == UserSourceEnum.ERP) {
bool refundflag = orderModule.SetMallOrderSalesTheWayRefund(omodel.OrderId, ReModel.FinanceId);
if (refundflag)
{
bool flag = orderModule.SetOrderAfterSaleForRefunds(omodel, ReOrderId, Refund, "", req.TenantId, req.MallBaseId, Common.Enum.Goods.OrderPayTypeEnum.WeChatPay, "", "", "", "");
if (flag)
{
return ApiResult.Success("");
}
else
{
return ApiResult.Failed();
}
}
else {
LogHelper.Write("调用erp退款接口失败");
return ApiResult.Failed();
}
}
else
{
bool flag = orderModule.SetOrderAfterSaleForRefunds(omodel, ReOrderId, Refund, "", req.TenantId, req.MallBaseId, Common.Enum.Goods.OrderPayTypeEnum.WeChatPay, "", "", "", "");
......
......@@ -50,8 +50,9 @@
"ExpendDepartment": 331,
"RebornDMC": "reborn_dmc",
"PropertyDB": "test_property",
"IncomeFinanceApi": "http://testapi.oytour.com/api/Mall/InsertFinanceBatchForMallIn",
"PaymentFinanceApi": "http://testapi.oytour.com/api/Mall/InsertFinanceBatchForMallOut",
"IncomeFinanceApi": "http://192.168.2.16:8083/api/Mall/InsertFinanceBatchForMallIn",
"PaymentFinanceApi": "http://192.168.2.16:8083/api/Mall/InsertFinanceBatchForMallOut",
"ZYRefundFinanceApi": "http://192.168.2.16:8083/api/Mall/SetMallOrderSalesTheWayRefund",
"PropertyApi": "http://192.168.2.16:8087/api/ECWorkFlow/SetECSuppliesStockInFlow",
"FinanceKey": "FinanceMallInsertToERPViitto2020",
"SettlementRate": "0.60",
......
......@@ -185,7 +185,7 @@ namespace Mall.WindowsService.Module
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat($@" SELECT a.*,b.OrderNo from rb_goods_orderdetail as a LEFT JOIN rb_goods_order as b on a.OrderId=b.OrderId
where b.TenantId={item.TenantId} and b.MallBaseId={item.MallBaseId} and DATE_FORMAT(b.PaymentTime,'%y-%m-%d')>= DATE_FORMAT('{startDate}','%y-%m-%d')
where b.TenantId={item.TenantId} and b.MallBaseId={item.MallBaseId} and b.OrderSource!=6 and DATE_FORMAT(b.PaymentTime,'%y-%m-%d')>= DATE_FORMAT('{startDate}','%y-%m-%d')
and DATE_FORMAT(b.PaymentTime,'%y-%m-%d')<DATE_FORMAT('{endDate}','%y-%m-%d') AND b.OrderStatus IN (2, 3, 4, 5, 6) ");
// builder.AppendFormat($@" SELECT a.*,b.OrderNo from rb_goods_orderdetail as a LEFT JOIN rb_goods_order as b on a.OrderId=b.OrderId
//where b.TenantId={item.TenantId} and b.MallBaseId={item.MallBaseId} and DATE_FORMAT(b.PaymentTime,'%y-%m-%d')>= DATE_FORMAT('{startDate}','%y-%m-%d')
......@@ -366,7 +366,7 @@ and DATE_FORMAT(b.PaymentTime,'%y-%m-%d')<DATE_FORMAT('{endDate}','%y-%m-%d') A
catch (Exception ex)
{
string str = financeConfigurineRepository.ConnectionStr;
Helper.LogHelper.Write("数据库连接1:" + str+"错误日志"+ ex.Message);
Helper.LogHelper.Write("数据库连接1:" + str + "错误日志" + ex.Message);
}
return flag;
......@@ -873,7 +873,7 @@ and DATE_FORMAT(b.PaymentTime,'%y-%m-%d')<DATE_FORMAT('{endDate}','%y-%m-%d') A
//更新微店返佣
var ssList = smallShops_CommissionRepository.GetList(new RB_SmallShops_Commission_Extend() { TenantId = tenantId, MallBaseId = mallBaseId, OrderId = orderModel.OrderId });
if (ssList.Where(x => x.CommissionState == 1).Any())
{
{
//验证是否是自动结算
var ssbaseModel = microShop_BasicsRepository.GetMicroShopBasicsList(new RB_MicroShop_Basics() { TenantId = tenantId, MallBaseId = mallBaseId }).FirstOrDefault();
if (("," + (ssbaseModel?.SettlementType ?? "") + ",").Contains("," + ((int)DistrbutorWithdrawWayEnum.ZDXJ).ToString() + ","))
......@@ -920,7 +920,7 @@ and DATE_FORMAT(b.PaymentTime,'%y-%m-%d')<DATE_FORMAT('{endDate}','%y-%m-%d') A
var flagpay = false;
if (IsNormalServer == 1)
{
flagpay = PayUtil.GetTransfersOrder(OrderNum, RemitMoney, (ssmodel.UserId ?? 0).ToString(), umodel.OpenId, minModel, "赞羊微店佣金打款");
flagpay = PayUtil.GetTransfersOrder(OrderNum, RemitMoney, (ssmodel.UserId ?? 0).ToString(), umodel.OpenId, minModel, "赞羊微店佣金打款");
}
if (flagpay)
{
......@@ -2105,7 +2105,7 @@ and DATE_FORMAT(b.PaymentTime,'%y-%m-%d')<DATE_FORMAT('{endDate}','%y-%m-%d') A
//查询所有的退款
var olist = goods_OrderRepository.GetOrderRefunedCreateList(item.TenantId, item.MallBaseId, startDate.ToString("yyyy-MM-dd"), endDate.ToString("yyyy-MM-dd"));
//查询所有的售后退款
var afterlist = goods_OrderAfterSaleRepository.GetList(new RB_Goods_OrderAfterSale_Extend() { FStartTime = startDate.ToString("yyyy-MM-dd"), FEndTime = endDate.AddDays(-1).ToString("yyyy-MM-dd"), TenantId = item.TenantId, MallBaseId = item.MallBaseId, Type = 1, ReOrderStatus = OrderAfterSaleStatusEnum.Completed });
var afterlist = goods_OrderAfterSaleRepository.GetList_V2(new RB_Goods_OrderAfterSale_Extend() { FStartTime = startDate.ToString("yyyy-MM-dd"), FEndTime = endDate.AddDays(-1).ToString("yyyy-MM-dd"), TenantId = item.TenantId, MallBaseId = item.MallBaseId, Type = 1, ReOrderStatus = OrderAfterSaleStatusEnum.Completed });
if (olist.Any() || afterlist.Any())
{
OrderRefundFinanceModule(olist, afterlist);
......@@ -2164,10 +2164,12 @@ and DATE_FORMAT(b.PaymentTime,'%y-%m-%d')<DATE_FORMAT('{endDate}','%y-%m-%d') A
var detailList = new List<object>();
#region 查询所有的订单
List<RB_ECFinanceId_Relation> ECList = new List<RB_ECFinanceId_Relation>();
if (oList.Any()) {
if (oList.Any())
{
string orderids = string.Join(",", oList.Select(x => x.OrderId));
var dlist = goodsOrderDetailRepository.GetOrderDetailList(new RB_Goods_OrderDetail_Extend() { OrderIds = orderids });
foreach (var qitem in dlist) {
foreach (var qitem in dlist)
{
ECList.Add(new RB_ECFinanceId_Relation()
{
ECOrderId = qitem.OrderId,
......
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