Commit 47744e02 authored by 吴春's avatar 吴春

提交和平商旅定金

parent a8e075cd
......@@ -647,7 +647,7 @@ namespace Mall.Model.Entity.Product
/// <summary>
/// 创建人1
/// </summary>
public int CreateBy { get => create_by; set => create_by= value; }
public int CreateBy { get => create_by; set => create_by = value; }
/// <summary>
/// 教育商品类型 0 正常商品 1咖啡劵 2耗材类 3教室类
......@@ -683,5 +683,10 @@ namespace Mall.Model.Entity.Product
///进阶小课堂 是否显示商品(1-显示,0-不显示)
/// </summary>
public int IsShow { get; set; }
/// <summary>
/// 定金比例 2024-02-21 add by:W
/// </summary>
public decimal DepositRatio { get; set; }
}
}
......@@ -80,6 +80,16 @@ namespace Mall.Model.Entity.Product
get;
set;
}
/// <summary>
/// 订单实际实收金额
/// </summary>
public decimal? PayIncome
{
get;
set;
}
/// <summary>
/// 运费
/// </summary>
......@@ -376,5 +386,7 @@ namespace Mall.Model.Entity.Product
/// 进阶思维rb_student表中StuId学生编号
/// </summary>
public int JJSWStuId { get; set; }
}
}
......@@ -384,6 +384,8 @@ namespace Mall.Model.Entity.Product
/// </summary>
public decimal DepositMoney { get; set; }
/// <summary>
/// 储值卡抵扣运费金额
/// </summary>
......@@ -424,5 +426,10 @@ namespace Mall.Model.Entity.Product
/// 和平商旅下单自定义表单内容
/// </summary>
public string CustomFormInfo { get; set; }
/// <summary>
/// 定金比例 2024-02-21 add by:W
/// </summary>
public decimal DepositRatio { get; set; }
}
}
......@@ -334,7 +334,16 @@ namespace Mall.Model.Extend.Product
/// 客户自定义表单填写内容 2024-01-30 add by:W
/// </summary>
public string CustomFormInfo { get; set; }
//public List<TradePavilion.FormDataItem> CustomFormInfo { get; set; }
/// <summary>
/// 定金金额 2024-02-22 add by:W
/// </summary>
public decimal GoodsDepositMoney { get; set; }
/// <summary>
/// 最终支付金额
/// </summary>
public decimal ResultPayMoney { get; set; }
}
/// <summary>
......
This diff is collapsed.
......@@ -3363,7 +3363,15 @@ namespace Mall.Module.Product
Dictionary<string, object> keyValues = new Dictionary<string, object>() { };
if (type == 1)
{ //通过
keyValues.Add(nameof(RB_Goods_OrderAfterSale.ReOrderStatus), OrderAfterSaleStatusEnum.DeliveryToBuyer);
if (model.TenantId == 29)
{
keyValues.Add(nameof(RB_Goods_OrderAfterSale.ReOrderStatus), OrderAfterSaleStatusEnum.RefundedBySeller);
}
else
{
keyValues.Add(nameof(RB_Goods_OrderAfterSale.ReOrderStatus), OrderAfterSaleStatusEnum.DeliveryToBuyer);
}
keyValues.Add(nameof(RB_Goods_OrderAfterSale.DeliveryId), DeliveryId);
keyValues.Add(nameof(RB_Goods_OrderAfterSale.AuditTime), DateTime.Now);
}
......@@ -3837,7 +3845,7 @@ namespace Mall.Module.Product
CreateDate = DateTime.Now,
IsRefund = 2,
MallBaseId = omodel.MallBaseId,
Money = omodel.Income,
Money = omodel?.TenantId == 29 ? omodel.PayIncome : omodel.Income,
OrderId = omodel.OrderId,
Out_Trade_No = outTradeNo,
PayType = "",
......@@ -4586,7 +4594,15 @@ namespace Mall.Module.Product
keyValues.Add(nameof(RB_Goods_Order.RefundOrderNo), RefundOrderNo);
if (omodel.OrderStatus != OrderStatusEnum.NonPayment)
{
keyValues.Add(nameof(RB_Goods_Order.Refund), omodel.Income);
if (omodel.TenantId == 29)
{
keyValues.Add(nameof(RB_Goods_Order.Refund), omodel.PayIncome);
}
else
{
keyValues.Add(nameof(RB_Goods_Order.Refund), omodel.Income);
}
}
List<WhereHelper> wheres = new List<WhereHelper>() {
......@@ -7002,6 +7018,7 @@ namespace Mall.Module.Product
FinishTime = model.FinishTime.HasValue ? model.FinishTime.Value.ToString("yyyy-MM-dd HH:mm:ss") : "",
CancelTime = model.CancelTime.HasValue ? model.CancelTime.Value.ToString("yyyy-MM-dd HH:mm:ss") : "",
model.Remark,
CancelRemark = model.CancelRemark ?? "",
model.BuyerMessage,
model.PreferPrice,
model.Income,
......@@ -8561,7 +8578,8 @@ namespace Mall.Module.Product
itemLabel.CommentNum += 1;
}
}
if (itemLabel.CommentNum > 0) {
if (itemLabel.CommentNum > 0)
{
RList.Add(new
{
Id = Convert.ToInt32(itemLabel.Id),
......
......@@ -2635,6 +2635,7 @@ namespace Mall.Module.Product
use_attr = model.IsCustomSpecification,
remark = model?.Remark ?? "",
edu_data = eduDataJson,
depositRatio = model?.DepositRatio ?? 0,
EduTeacherId = model?.EduTeacherId ?? 0,
//attr_groups = model.SpecificationList.Select(x => new
//{
......@@ -7436,7 +7437,8 @@ namespace Mall.Module.Product
{ nameof(RB_Goods.FatCode),demodel.FatCode },
{ nameof(RB_Goods.GoodsUrl),demodel.GoodsUrl },
{ nameof(RB_Goods.goodsLogo),demodel.goodsLogo },
{ nameof(RB_Goods.RetailStore),demodel.RetailStore }
{ nameof(RB_Goods.RetailStore),demodel.RetailStore },
{ nameof(RB_Goods.DepositRatio),demodel.DepositRatio }
};
if (goodsModel.IsProcurement == 1)
{
......
This diff is collapsed.
......@@ -37,8 +37,11 @@ namespace Mall.Repository.Product
if (dmodel.User_Id > 0)
{
where += $@" and {nameof(RB_Goods_Online_Trade.User_Id)}={dmodel.User_Id}";
}
}
if (dmodel.OrderId > 0)
{
where += $@" and {nameof(RB_Goods_Online_Trade.OrderId)}={dmodel.OrderId}";
}
string sql = $@"SELECT * FROM RB_Goods_Online_Trade where {where} order by Id asc";
return Get<RB_Goods_Online_Trade_Extend>(sql).ToList();
}
......
......@@ -64,7 +64,14 @@ namespace Mall.Repository.Product
}
if (dmodel.OrderStatus > 0)
{
where += $@" and o.{nameof(RB_Goods_Order.OrderStatus)}={(int)dmodel.OrderStatus}";
if ((int)dmodel.OrderStatus != 8)
{
where += $@" and o.{nameof(RB_Goods_Order.OrderStatus)}={(int)dmodel.OrderStatus}";
}
else
{
where += $@" and o.{nameof(RB_Goods_Order.OrderStatus)}={(int)OrderStatusEnum.WaitReceiving} and o.Income>o.PayIncome and o.PayIncome>0";
}
}
if (dmodel.IsOffline > -1)
{
......@@ -84,7 +91,7 @@ namespace Mall.Repository.Product
if (!string.IsNullOrEmpty(dmodel.OrderNo))
{
where += $@" and o.{nameof(RB_Goods_Order.OrderNo)} like @OrderNo ";
parameters.Add("OrderNo", "%" + Common.Plugin.StringHelper.ReplaceEmoji(dmodel.OrderNo.Trim())+ "%");
parameters.Add("OrderNo", "%" + Common.Plugin.StringHelper.ReplaceEmoji(dmodel.OrderNo.Trim()) + "%");
}
if (!string.IsNullOrEmpty(dmodel.MerchantsNo))
{
......@@ -149,7 +156,8 @@ namespace Mall.Repository.Product
//查询教育商品
where += $@" and o.{nameof(RB_Goods_Order.OrderEduType)}>0";
}
else {
else
{
//默认查询
where += $@" and o.{nameof(RB_Goods_Order.OrderEduType)} =0";
}
......
......@@ -23,6 +23,7 @@ using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using RabbitMQ.Client.Framing.Impl;
namespace Mall.WebApi.Controllers.AppletWeChat
{
......@@ -87,10 +88,20 @@ namespace Mall.WebApi.Controllers.AppletWeChat
{
return ApiResult.Failed("订单已取消");
}
if ((int)model.OrderStatus > 1)
if (model.MallBaseId == 19)//支付定金金额
{
return ApiResult.Failed("订单已支付");
if ((model?.Income ?? 0) <= (model?.PayIncome ?? 0))
{
return ApiResult.Failed("订单已支付");
}
}
else
{
if ((int)model.OrderStatus > 1)
{
return ApiResult.Failed("订单已支付");
}
}
string sOrderNo = (System.DateTime.Now.ToString("yyyyMMddHHmmssfff")) + model.OrderId;
//根据订单号获取微信支付配置信息
......@@ -100,8 +111,15 @@ namespace Mall.WebApi.Controllers.AppletWeChat
switch ((int)demodel.OrderPayType)
{
case 1://微信支付 _accessor.HttpContext.Connection.RemoteIpAddress.ToString()
//(model.MallBaseId==6&&model.TenantId==16)? "https://mallapi.oytour.com/api/WeChatNotify/NotifyZhouTian" :
sPayInfo = App_Code.PayUtil.GetMinUnifiedOrder(sOrderNo, demodel.GoodsName, model.Income.Value, model.UserId.ToString(), demodel.OpenId, (Config.sTenpayNotify + "/" + model.MallBaseId + "/" + model.TenantId), miniProgram, _accessor, System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName()).AddressList.FirstOrDefault(address => address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)?.ToString());
decimal payIncome = (model.Income.Value) - (model?.PayIncome ?? 0);//实际应付金额-已支付金额
if (model.TenantId == 29 && (model?.PayIncome ?? 0) == 0)//支付定金金额
{
var modelDetailList = new Module.Product.OrderModule().GetOrderDetailList(new RB_Goods_OrderDetail_Extend { OrderId = model.OrderId, TenantId = model.TenantId, MallBaseId = model.MallBaseId });
decimal depositMoney = modelDetailList.Where(x => x.DepositRatio > 0).Sum(x => (1 - (x.DepositRatio / 100)) * (x.Final_Price ?? 0));
payIncome = payIncome - depositMoney;//最终应付金额-定金-退款
}
sPayInfo = App_Code.PayUtil.GetMinUnifiedOrder(sOrderNo, demodel.GoodsName, payIncome, model.UserId.ToString(), demodel.OpenId, (Config.sTenpayNotify + "/" + model.MallBaseId + "/" + model.TenantId), miniProgram, _accessor, System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName()).AddressList.FirstOrDefault(address => address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)?.ToString());
break;
default:
break;
......@@ -575,12 +593,15 @@ namespace Mall.WebApi.Controllers.AppletWeChat
var Robj = userCommonModule.InsertVipBuyCommission(userId, orderId, orderNo, Convert.ToDecimal(365.00), System.DateTime.Now);
return ApiResult.Success("", Robj);
}
/// <summary>
/// 测试接口调用支付成功
/// </summary>
/// <returns></returns>
public ApiResult InsertOrderPayInfo()
{
var request = RequestParm;
RB_Goods_Order_Extend demodel = JsonConvert.DeserializeObject<RB_Goods_Order_Extend>(request.msg.ToString());
userCommonModule.InsertOrderPayInfo(demodel.UserId ?? 0, demodel.OrderId, demodel.OrderNo, "s1111111111111", Common.Enum.Goods.OrderPayTypeEnum.WeChatPay, "test", (demodel.Income ?? 0), System.DateTime.Now, 0);
userCommonModule.InsertOrderPayInfo(demodel.UserId ?? 0, demodel.OrderId, (System.DateTime.Now.ToString("yyyyMMddHHmmssfff")) + demodel.OrderId, demodel.MerchantsNo, Common.Enum.Goods.OrderPayTypeEnum.WeChatPay, demodel.StoreName, (demodel.Income ?? 0), System.DateTime.Now, 0);
return ApiResult.Success("");
}
......
......@@ -246,6 +246,9 @@ namespace Mall.WebApi.Controllers.MallBase
x.DeliveryMethod,
DeliveryMethodName = x.DeliveryMethod.GetEnumName(),
x.Income,
x.ResultPayMoney,
x.GoodsDepositMoney,
PayIncome = x.PayIncome ?? 0,
x.FreightMoney,
x.CouponMoney,
x.DepositId,
......@@ -586,6 +589,7 @@ namespace Mall.WebApi.Controllers.MallBase
demodel.UserId = userInfo.UserId;
demodel.SmallShopsId = req.SmallShopsId;
demodel.OrderClassify = 0;
demodel.PayIncome = 0;
if (userInfo != null)
{
if (userInfo.UserId.ToString() == Config.XuZongUserId)
......@@ -1161,17 +1165,26 @@ namespace Mall.WebApi.Controllers.MallBase
}
}
demodel.TenantId = userInfo.TenantId;
demodel.MallBaseId = userInfo.MallBaseId;
demodel.UserId = userInfo.UserId;
demodel.Status = 0;
demodel.ReOrderStatus = Common.Enum.Goods.OrderAfterSaleStatusEnum.Auditing;
if (demodel.VoucherList != null && demodel.VoucherList.Any())
if (omodel.TenantId == 29)
{
demodel.Voucher = JsonConvert.SerializeObject(demodel.VoucherList);
bool flag = orderModule.CancelAppletGoodsOrderInfo(omodel.OrderId, 2, demodel.Remark, userInfo.UserId, userInfo.TenantId, userInfo.MallBaseId);
if (flag) { return ApiResult.Success(); } else { return ApiResult.Failed(); }
}
bool flag = orderModule.SetAppletMyOrderAfterSale(demodel);
if (flag) { return ApiResult.Success(); } else { return ApiResult.Failed(); }
else {
demodel.TenantId = userInfo.TenantId;
demodel.MallBaseId = userInfo.MallBaseId;
demodel.UserId = userInfo.UserId;
demodel.Status = 0;
demodel.ReOrderStatus = Common.Enum.Goods.OrderAfterSaleStatusEnum.Auditing;
if (demodel.VoucherList != null && demodel.VoucherList.Any())
{
demodel.Voucher = JsonConvert.SerializeObject(demodel.VoucherList);
}
bool flag = orderModule.SetAppletMyOrderAfterSale(demodel);
if (flag) { return ApiResult.Success(); } else { return ApiResult.Failed(); }
}
}
/// <summary>
......
......@@ -1824,7 +1824,8 @@ namespace Mall.WebApi.Controllers.MallBase
model?.goodsLogo,
model?.GoodsEduType,
model?.MaterialId,
RelevanceList = model?.RelevanceList.Select(qitem => new { qitem.RelevanceId, qitem.RelevanceName, qitem.RelevancePrice, qitem.Unit })
RelevanceList = model?.RelevanceList.Select(qitem => new { qitem.RelevanceId, qitem.RelevanceName, qitem.RelevancePrice, qitem.Unit }),
DepositRatio = model?.DepositRatio ?? 0,
};
}
return ApiResult.Success("", obj);
......@@ -1900,7 +1901,8 @@ namespace Mall.WebApi.Controllers.MallBase
RetailStore = parms.GetInt("RetailStore"),
CreateBy = parms.GetInt("EmpId", 0),
GoodsEduType = parms.GetInt("GoodsEduType", 0),
MaterialId = parms.GetInt("MaterialId", 0)
MaterialId = parms.GetInt("MaterialId", 0),
DepositRatio = parms.GetInt("DepositRatio", 0)
};
if (!string.IsNullOrEmpty(parms.GetStringValue("ShelvesDate")))
{
......@@ -3325,6 +3327,6 @@ namespace Mall.WebApi.Controllers.MallBase
/// <summary>
/// 是否可编辑
/// </summary>
public bool IsEdit { get; set; }
public bool IsEdit { get; set; }
}
}
\ No newline at end of file
......@@ -21,7 +21,7 @@
}
},
"AliSms": {
"signName": "印象之旅",
"signName": ��֮��",
"accessKeyId": "LTAIwE7l9dImZSa3",
"accessKeySecret": "j47Ajn0d0WzUCIX8Biyj3P2r8QDltI"
},
......@@ -42,20 +42,20 @@
"DeveloperKitsPort": "15720",
"FirstPage": "pages/index/index.html",
"ByteDanceSendTemplate": "https://developer.toutiao.com/api/apps/game/template/send",
"sTenpayNotify": "http://mallapi.oytour.com/api/WeChatNotify/Notify", //微信商品回调地
"sTenpayRechargeNotify": "http://mallapi.oytour.com/api/WeChatNotify/RechargeNotify", //微信充值回调地
"sTenpayMemberBuyNotify": "http://mallapi.oytour.com/api/WeChatNotify/MemberBuyNotify", //微信充值回调地
"sTenpayVipBuyNotify": "http://mallapi.oytour.com/api/WeChatNotify/VipBuyNotify", //微信购买VIP回调地
"sTenpayActivityNotify": "http://mallapi.oytour.com/api/WeChatNotify/ActivityNotify", //赞羊教育活动在线支付回调地址
"NetworkDirector": 1756, //网络主管的id,用于新建供应商账户的时候的创建人
"RB_Branch_Id": 49, //所属公司id
"IncomeDirector": 1756, //财务收入创建人
"IncomeBranchId": 49, //财务收入创建人公
"sTenpayNotify": "http://mallapi.oytour.com/api/WeChatNotify/Notify", //΢����Ʒ�ص���ַ
"sTenpayRechargeNotify": "http://mallapi.oytour.com/api/WeChatNotify/RechargeNotify", //΢�ų�ֵ�ص���ַ
"sTenpayMemberBuyNotify": "http://mallapi.oytour.com/api/WeChatNotify/MemberBuyNotify", //΢�ų�ֵ�ص���ַ
"sTenpayVipBuyNotify": "http://mallapi.oytour.com/api/WeChatNotify/VipBuyNotify", //΢�Ź���VIP�ص���ַ
"sTenpayActivityNotify": "http://mallapi.oytour.com/api/WeChatNotify/ActivityNotify", //������������֧���ص���ַ
"NetworkDirector": 1756, //�������ܵ�id�������½���Ӧ���˻���ʱ��Ĵ�����
"RB_Branch_Id": 49, //�����˾id
"IncomeDirector": 1756, //�������봴����
"IncomeBranchId": 49, //�������봴���˹�˾
"IncomeDepartment": 331,
"ExpendDirector": 1756, //财务支出创建人
"ExpendBranchId": 49, //财务支出创建人公
"ExpendDirector": 1756, //����֧��������
"ExpendBranchId": 49, //����֧�������˹�˾
"ExpendDepartment": 331,
"XuZongUserId": 111790, //徐总的id,用于区分线下订单
"XuZongUserId": 111790, //���ܵ�id�������������¶���
"RebornDMC": "reborn_dmc",
"PropertyDB": "test_property",
"IncomeFinanceApi": "http://192.168.10.2:8083/api/Mall/InsertFinanceBatchForMallIn",
......@@ -68,7 +68,7 @@
"FinanceKey": "FinanceMallInsertToERPViitto2020",
"SettlementRate": "0.60",
"EduSettlementRate": "0.54",
"EduXuZongId": 2602, //徐总的id,用于区分线下订单
"EduXuZongId": 2602, //���ܵ�id�������������¶���
"EduActivityIncomeFinanceId": "9",
"EduActivityExpendFinanceId": "9",
"EduRollCallActionCode": "ActivityRollCall",
......@@ -80,13 +80,13 @@
"VirtualDirectory": "WebFile",
"FileService": "2",
"IsNormalServer": 2,
"IsFirtsShopAutoExamine": 1, //首店企业认证是否字段审核
"IsFirtsShopAutoExamine": 1, //�׵���ҵ��֤�Ƿ��ֶ����
"FinanceSetting": {
"TenantId": 1,
"MallBaseId": 1,
"RemitTypeId": 10,
"RemitAccountId": 3012,
"ProcurementCTId": 224, //以下采购
"ProcurementCTId": 224, //���²ɹ�
"ProcurementFWId": 127,
"ProcurementDirector": 1756,
"ProcurementBranchId": 49,
......@@ -102,6 +102,9 @@
"ShareConfig": {
"ShareImg": "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/zanyang.png"
},
//汇付天下回调进阶思维接口地址
"HPSLShareConfig": {
"ShareImg": "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1708660644000_869.jpg"
},
//�㸶���»ص�����˼ά�ӿڵ�ַ
"JJSWAdminApi": "http://192.168.10.128:5005"
}
\ 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