Commit 37783a20 authored by liudong1993's avatar liudong1993

微店代码

parent e154f05b
......@@ -372,4 +372,121 @@ namespace Mall.Common.Enum.Goods
[EnumField("佣金金额")]
YJJE = 25
}
/// <summary>
/// 微店订单导出
/// </summary>
public enum SmallShopsOrdersExportEnum
{
/// <summary>
/// 所属平台
/// </summary>
[EnumField("所属平台")]
SSPT = 1,
/// <summary>
/// 订单号
/// </summary>
[EnumField("订单号")]
DDH = 2,
/// <summary>
/// 下单用户
/// </summary>
[EnumField("下单用户")]
XDYH = 4,
/// <summary>
/// 商品名
/// </summary>
[EnumField("商品名")]
SPM = 5,
/// <summary>
/// 规格
/// </summary>
[EnumField("规格")]
GG = 6,
/// <summary>
/// 数量
/// </summary>
[EnumField("数量")]
SL = 7,
/// <summary>
/// 货号
/// </summary>
[EnumField("货号")]
HH = 8,
/// <summary>
/// 收件人
/// </summary>
[EnumField("收件人")]
SJR = 10,
/// <summary>
/// 收件人电话
/// </summary>
[EnumField("收件人电话")]
SJRDH = 11,
/// <summary>
/// 收件人地址
/// </summary>
[EnumField("收件人地址")]
SJRDZ = 12,
/// <summary>
/// 总金额
/// </summary>
[EnumField("总金额")]
ZJE = 13,
/// <summary>
/// 实际付款
/// </summary>
[EnumField("实际付款")]
SJFK = 14,
/// <summary>
/// 下单时间
/// </summary>
[EnumField("下单时间")]
XDSJ = 16,
/// <summary>
/// 订单状态
/// </summary>
[EnumField("订单状态")]
DDZT = 17,
/// <summary>
/// 支付方式
/// </summary>
[EnumField("支付方式")]
ZFFS = 18,
/// <summary>
/// 付款状态
/// </summary>
[EnumField("支付状态")]
FKZT = 19,
/// <summary>
/// 付款时间
/// </summary>
[EnumField("支付时间")]
FKSJ = 20,
/// <summary>
/// 备注/表单
/// </summary>
[EnumField("备注/表单")]
BZBD = 21,
/// <summary>
/// 买家留言
/// </summary>
[EnumField("买家留言")]
MJLY = 22,
/// <summary>
/// 微店名称
/// </summary>
[EnumField("微店名称")]
WDMC = 23,
/// <summary>
/// 用户昵称
/// </summary>
[EnumField("用户昵称")]
NCXM = 24,
/// <summary>
/// 佣金金额
/// </summary>
[EnumField("佣金金额")]
YJJE = 25
}
}
......@@ -37,5 +37,10 @@ namespace Mall.Common.Enum.User
/// </summary>
[EnumField("余额提现")]
YETX = 5,
/// <summary>
/// 自动现结
/// </summary>
[EnumField("自动现结(微信)")]
ZDXJ = 6
}
}

using Mall.WeChat.Helper;
using Mall.Common.Pay.WeChatPat.Model;
using System;
using System.Globalization;
using System.IO;
using System.Text;
using System.Web;
using System.Xml.Linq;
using Microsoft.AspNetCore.Http;
using Mall.Common.Plugin;
namespace Mall.Common.Pay
{
/// <summary>
/// 支付帮助类
/// </summary>
public class PayUtilWeiXin
{
public PayUtilWeiXin() { }
/// <summary>
/// 企业付款
/// </summary>
/// <param name="sOrderNo"></param>
/// <param name="sProductName"></param>
/// <param name="dPrice"></param>
/// <param name="CustomerId"></param>
/// <param name="openid"></param>
/// <returns></returns>
public static bool GetTransfersOrder(string sOrderNo, decimal dPrice, string openid, string WeChatPayCertificateUrl,string WeChatApiSecret,string WeChatPayMerchants, string MiniAppId, IHttpContextAccessor _accessor, string Remark = "")
{
if (!System.IO.File.Exists(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "App_Data/Certs/WeChatApp/" + WeChatPayCertificateUrl)))
{
return false;
}
var req = new Common.Pay.WeChatPat.RequestHandler();
req.SetKey(WeChatApiSecret);
//
req.SetParameter("mch_appid", MiniAppId);//微信开放平台审核通过的应用APPID
req.SetParameter("mchid", WeChatPayMerchants);//微信支付分配的商户号
req.SetParameter("nonce_str", GetNoncestr());//随机字符串,不长于32位
req.SetParameter("partner_trade_no", sOrderNo);//商户订单号,需保持唯一性(只能是字母或者数字,不能包含有其它字符)
req.SetParameter("openid", openid);
req.SetParameter("check_name", "NO_CHECK");
req.SetParameter("amount", (dPrice * 100).ToString("f0"));
req.SetParameter("desc", Remark == "" ? "赞羊商城佣金提现" : Remark);
req.SetParameter("sign", req.CreateMd5Sign(_accessor, WeChatApiSecret));
var reqXml = req.ParseXml();
var result = Common.Pay.WeChatPat.HttpHelper.Post(new HttpParam()
{
Url = "https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers",
PostParam = reqXml,
Encoding = Common.Pay.WeChatPat.HttpHelper.GetRequestEncoding(_accessor.HttpContext.Request),
CertPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "App_Data/Certs/WeChatApp/" + WeChatPayCertificateUrl),//"App_Data/Certs/WeChatApp/apiclient_cert.p12"),// model.WeChatPayCertificateUrl,
CertPwd = WeChatPayMerchants//证书密码默认为您的商户ID
});
var xe = XElement.Parse(result, LoadOptions.SetLineInfo);
var returnCode = xe.GetElement("return_code").Value;
var resultCode = xe.GetElement("result_code").Value;
if (returnCode.Equals("SUCCESS") && resultCode.Equals("SUCCESS"))
{
return true;
}
return false;
}
/// <summary>
/// 获取随机字符串
/// </summary>
/// <returns></returns>
public static string GetNoncestr()
{
var random = new Random();
return SecurityHelper.MD5EncryptWeChat(random.Next(1000).ToString(CultureInfo.InvariantCulture), "GBK");
}
/// <summary>
/// 获取时间戳
/// </summary>
/// <returns></returns>
public static string GetTimestamp()
{
var ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
return Convert.ToInt64(ts.TotalSeconds).ToString(CultureInfo.InvariantCulture);
}
/// <summary>
/// 对字符串进行URL编码
/// </summary>
/// <param name="instr"></param>
/// <param name="charset">默认值:utf-8</param>
/// <returns></returns>
public static string UrlEncode(string instr, string charset)
{
if (instr == null || instr.Trim() == "")
return "";
var res = HttpUtility.UrlEncode(instr, !string.IsNullOrWhiteSpace(charset)
? Encoding.GetEncoding(charset)
: Encoding.GetEncoding("utf-8"));
return res;
}
}
}
......@@ -2,6 +2,7 @@
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Net;
......@@ -329,6 +330,36 @@ namespace Mall.Common.Plugin
}
}
/// <summary>
/// 获取微店小程序码
/// </summary>
/// <param name="url"></param>
/// <param name="postDataStr"></param>
/// <param name="path"></param>
/// <returns></returns>
public static string HttpPostForGetWXQRCodePathSmallShops(string url, string postDataStr, string path,string ssPhoto)
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "POST";
req.ContentType = "application/octet-stream";
req.ContentLength = Encoding.UTF8.GetByteCount(postDataStr);
Stream myRequestStream = req.GetRequestStream();
StreamWriter myStreamWriter = new StreamWriter(myRequestStream, Encoding.GetEncoding("gb2312"));
myStreamWriter.Write(postDataStr);
myStreamWriter.Close();
HttpWebResponse rsp = (HttpWebResponse)req.GetResponse();
if (string.IsNullOrWhiteSpace(rsp.CharacterSet))
{
return GetResponseAsStringBase64_V3(rsp, Encoding.UTF8, path, ssPhoto);
}
else
{
Encoding encoding = Encoding.GetEncoding(rsp.CharacterSet);
return GetResponseAsStringBase64_V3(rsp, encoding, path, ssPhoto);
}
}
/// <summary>
/// 把响应流转换为文本
......@@ -385,6 +416,34 @@ namespace Mall.Common.Plugin
}
}
/// <summary>
/// 把响应流转换为文本
/// </summary>
/// <param name="rsp"></param>
/// <param name="encoding"></param>
/// <returns></returns>
private static string GetResponseAsStringBase64_V3(HttpWebResponse rsp, Encoding encoding, string path,string ssPhoto)
{
System.IO.Stream stream = null;
try
{
// 以字符流的方式读取HTTP响应
stream = rsp.GetResponseStream();
return ReadImageForStream_V3(stream, path, ssPhoto);
}
catch (Exception ex)
{
LogHelper.Write(ex, "GetResponseAsStringBase64_V3");
return "";
}
finally
{
// 释放资源
if (stream != null) stream.Close();
if (rsp != null) rsp.Close();
}
}
/// <summary>
/// 获取
/// </summary>
......@@ -435,5 +494,105 @@ namespace Mall.Common.Plugin
}
return UserPhoto;
}
/// <summary>
/// 获取小程序码 并且替换中间图标
/// </summary>
/// <param name="imgstream"></param>
/// <returns></returns>
public static string ReadImageForStream_V3(Stream imgstream, string path, string ssPhoto)
{
System.Drawing.Image result = System.Drawing.Image.FromStream(imgstream);
if (!string.IsNullOrEmpty(ssPhoto)) {
WebRequest wreq = WebRequest.Create(ssPhoto);
HttpWebResponse wresp = (HttpWebResponse)wreq.GetResponse();
Stream s = wresp.GetResponseStream();
var img = System.Drawing.Image.FromStream(s);
result = CombinImage(result, img);
}
System.Drawing.Bitmap bit = new System.Drawing.Bitmap(result);
bit.Save(path, System.Drawing.Imaging.ImageFormat.Jpeg);
return path;
}
/// <summary>
/// 图片处理为圆形
/// </summary>
/// <param name="img"></param>
/// <param name="rec"></param>
/// <param name="size"></param>
/// <returns></returns>
public static Image CutEllipse(Image img, Rectangle rec, Size size)
{
Bitmap bitmap = new Bitmap(size.Width, size.Height);
try
{
using (Graphics g = Graphics.FromImage(bitmap))
{
using (TextureBrush br = new TextureBrush(img, System.Drawing.Drawing2D.WrapMode.Clamp, rec))
{
br.ScaleTransform(bitmap.Width / (float)rec.Width, bitmap.Height / (float)rec.Height);
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
g.FillEllipse(br, new Rectangle(Point.Empty, size));
}
}
}
catch (Exception)
{
return img;
}
return bitmap;
}
/// <summary>
/// 调用此函数后使此两种图片合并,类似相册,有个
/// 背景图,中间贴自己的目标图片
/// </summary>
/// <param name="imgBack">粘贴的源图片</param>
/// <param name="destImg">粘贴的目标图片</param>
public static Image CombinImage(Image imgBack, Image img)
{
int Size = img.Width;
if (img.Height < img.Width)
{
Size = img.Height;
}
if (Size > imgBack.Width) {
Size = imgBack.Width;
}
img = CutEllipse(img, new Rectangle(0, 0, Size, Size), new Size(Size, Size));
Graphics g = Graphics.FromImage(imgBack);
g.DrawImage(imgBack, 0, 0, imgBack.Width, imgBack.Height); //g.DrawImage(imgBack, 0, 0, 相框宽, 相框高);
//g.FillRectangle(System.Drawing.Brushes.White, imgBack.Width / 2 - img.Width / 2 - 1, imgBack.Width / 2 - img.Width / 2 - 1,1,1);//相片四周刷一层黑色边框
//g.DrawImage(img, 照片与相框的左边距, 照片与相框的上边距, 照片宽, 照片高);
g.DrawImage(img, imgBack.Width / 2 - Size / 2, imgBack.Width / 2 - Size / 2, Size, Size);
GC.Collect();
return imgBack;
}
public static string CombinImage2()
{
var imgBack = Image.FromFile("E:/LDWork/LiuDongWork/MallFB/upfile/temporary/123.jpg");
//var img = Image.FromFile("https://wx.qlogo.cn/mmopen/vi_32/6d2FEzo0bpq8NcQ5sica1EictZLcaeCMboVnxdSqnaxuVPdp0GVuDDRJicfIUQnDibEJSEApbQ81icvBtSU80Pwkddw/132"); //微店图片
WebRequest wreq = WebRequest.Create("https://wx.qlogo.cn/mmopen/vi_32/6d2FEzo0bpq8NcQ5sica1EictZLcaeCMboVnxdSqnaxuVPdp0GVuDDRJicfIUQnDibEJSEApbQ81icvBtSU80Pwkddw/132");
HttpWebResponse wresp = (HttpWebResponse)wreq.GetResponse();
Stream s = wresp.GetResponseStream();
var img = System.Drawing.Image.FromStream(s);
//img = CutEllipse(img, new Rectangle(120, 120, r, r), new Size(r, r));
img = CutEllipse(img, new Rectangle(0, 0, img.Width, img.Height), new Size(img.Width, img.Height));
Graphics g = Graphics.FromImage(imgBack);
g.DrawImage(imgBack, 0, 0, imgBack.Width, imgBack.Height); //g.DrawImage(imgBack, 0, 0, 相框宽, 相框高);
//g.FillRectangle(System.Drawing.Brushes.White, imgBack.Width / 2 - img.Width / 2 - 1, imgBack.Width / 2 - img.Width / 2 - 1,1,1);//相片四周刷一层黑色边框
//g.DrawImage(img, 照片与相框的左边距, 照片与相框的上边距, 照片宽, 照片高);
g.DrawImage(img, imgBack.Width / 2 - img.Width / 2, imgBack.Width / 2 - img.Width / 2, img.Width, img.Height);
GC.Collect();
System.Drawing.Bitmap bit = new System.Drawing.Bitmap(imgBack);
bit.Save("E:/LDWork/LiuDongWork/MallFB/upfile/temporary/123333333.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
return "";
}
}
}
......@@ -31,7 +31,7 @@ namespace Mall.Model.Entity.Product
set;
}
/// <summary>
/// 来源类型 1订单 2商品 3推荐返佣
/// 来源类型 1订单 2商品 3推荐返佣 4微店返佣
/// </summary>
public int? Type
{
......
......@@ -104,7 +104,9 @@ namespace Mall.Model.Entity.Product
get;
set;
}
/// <summary>
/// 是否已提现 1是 2否
/// </summary>
public int? IsRemit { get; set; }
/// <summary>
......
......@@ -30,6 +30,10 @@ namespace Mall.Model.Extend.Product
/// </summary>
public RB_Goods_OrderIntroduction_Extend OrderIntroduction { get; set; }
/// <summary>
/// 微店返佣
/// </summary>
public RB_SmallShops_Commission_Extend SmallShopsCommission { get; set; }
/// <summary>
/// 返佣的总金额
/// </summary>
public decimal TCommissionMoney { get; set; }
......
......@@ -120,7 +120,10 @@ namespace Mall.Model.Extend.Product
/// 使用优惠卷id
/// </summary>
public int? User_Coupon_Id { get; set; }
/// <summary>
/// 优惠券描述
/// </summary>
public string CouponDestription { get; set; }
/// <summary>
/// 支付方式
......
......@@ -43,5 +43,7 @@ namespace Mall.Model.Extend.User
/// </summary>
public string OrderIds { get; set; }
public int? ReOrderId { get; set; }
}
}
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -2214,7 +2214,43 @@ namespace Mall.Module.User
OperatorEnum=OperatorEnum.Equal
}
};
distributor_RemitRepository.Update(keyValues, wheres);
bool flag = distributor_RemitRepository.Update(keyValues, wheres);
if (flag) {
var remodel = distributor_RemitRepository.GetEntity<RB_Distributor_Remit_Extend>(remitId);
if (remodel.WithdrawalWay == DistrbutorWithdrawWayEnum.YETX) {
var umodel = member_UserRepository.GetEntity(remodel.UserId);
if (umodel != null) {
Dictionary<string, object> keyValues1 = new Dictionary<string, object>() {
{ nameof(RB_Member_User.Balance),(umodel.Balance??0)+(remodel.RemitMoney??0)}
};
List<WhereHelper> wheres1 = new List<WhereHelper>() {
new WhereHelper(){
FiledName=nameof(RB_Member_User.Id),
FiledValue=umodel.Id,
OperatorEnum=OperatorEnum.Equal
}
};
bool flag1 = member_UserRepository.Update(keyValues1, wheres1);
if (flag1) {
//插入余额明细
member_BalanceRepository.Insert(new RB_Member_Balance()
{
Id = 0,
Balance = (remodel.RemitMoney ?? 0),
CreateDate = DateTime.Now,
Description = "",
Image = 0,
MallBaseId = umodel.MallBaseId,
PlatformType = umodel.Source,
Remarks = "分销佣金提现转入余额,RemitId:" + remodel.Id,
TenantId = umodel.TenantId,
Type = Common.Enum.MarketingCenter.RecordTypeEnum.Income,
UserId = umodel.Id
});
}
}
}
}
}
else if (type == 3)
{
......@@ -3597,9 +3633,13 @@ namespace Mall.Module.User
if (clist.Any() || viplist.Any())
{
//获取订单列表
string OrderIds = string.Join(",", clist.Select(x => x.OrderId).Distinct());
var olist = goods_OrderRepository.GetOrderList(new RB_Goods_Order_Extend() { OrderIds = OrderIds });
olist = olist.OrderByDescending(x => x.CreateDate).ToList();
List<RB_Goods_Order_Extend> olist = new List<RB_Goods_Order_Extend>();
if (clist.Any())
{
string OrderIds = string.Join(",", clist.Select(x => x.OrderId).Distinct());
olist = goods_OrderRepository.GetOrderList(new RB_Goods_Order_Extend() { OrderIds = OrderIds });
olist = olist.OrderByDescending(x => x.CreateDate).ToList();
}
List<int> OrderIdList = new List<int>();
List<int> VipIdList = new List<int>();
string OrderNos = "";
......@@ -3607,6 +3647,13 @@ namespace Mall.Module.User
//首先查询 vip购买返佣,有的话 优先提vip返佣的
if (viplist.Any())
{
//获取订单列表
string vipoIds = string.Join(",", viplist.Where(x => x.ReOrderId > 0));
List<RB_Goods_Order_Extend> vipolist = new List<RB_Goods_Order_Extend>();
if (!string.IsNullOrEmpty(vipoIds))
{
vipolist = goods_OrderRepository.GetOrderList(new RB_Goods_Order_Extend() { OrderIds = vipoIds });
}
foreach (var item in viplist)
{
if (TMoney > 0)
......@@ -3623,8 +3670,12 @@ namespace Mall.Module.User
}
};
vipBuy_CommissionRepository.Update(keyValues2, wheres2, trans);
OrderNos += "\"VIP " + item.OrderNo + "\":" + (item.Commission ?? 0) + "元,";
string OrderNo = item.OrderNo;
var vipoModel = vipolist.Where(x => x.OrderId == item.ReOrderId).FirstOrDefault();
if (vipoModel != null) {
OrderNo = vipoModel.OrderNo ?? "";
}
OrderNos += "\"VIP " + OrderNo + "\":" + (item.Commission ?? 0) + "元,";
VipIdList.Add(item.Id);
}
}
......@@ -5455,6 +5506,51 @@ namespace Mall.Module.User
return "";
}
/// <summary>
/// 获取微店小程序码
/// </summary>
/// <param name="path"></param>
/// <param name="width"></param>
/// <param name="mallBaseId"></param>
/// <param name="userId"></param>
/// <returns></returns>
public string GetWeiXinQRCodeForSmallShops(string path, int width, int mallBaseId,int userId)
{
var appletWeChatModel = miniProgramRepository.GetEntity(mallBaseId);
string token = CacheManager.AppletWeChat.WeiXinReidsCache.Get(appletWeChatModel.MiniAppId);
int IsNormalServer = Convert.ToInt32(new ConfigurationBuilder().Add(new JsonConfigurationSource { Path = "appsettings.json" }).Build().GetSection("IsNormalServer").Value);
if (IsNormalServer != 1)
{
token = "36_7plNC5YmFK1u5gYfNLO54mfqfF60wdmxHMMzdK1R7Br1hCPAPLP5VZqYj3Iasj1sv1DS4kTlnmHbhxP86NLoaANmHxVZLwC8wGtEn3FZkepvq-bU9nH1laKKM6dgxafaRKEcehQH9F_lSMRwWIIfABAKWW";
}
if (string.IsNullOrEmpty(token))
{
token = Mall.Common.Pay.WeChatPat.TokenHelper.GetLXYToken(token, appletWeChatModel.MiniAppId, appletWeChatModel.MiniAppSecret);
System.Threading.Tasks.Task.Run(() => CacheManager.AppletWeChat.WeiXinReidsCache.Set(appletWeChatModel.MiniAppId, token));
}
if (!string.IsNullOrEmpty(token))
{
//string GetImageUrl = "https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=" + token;//获取二维码
string GetImageUrl = "https://api.weixin.qq.com/wxa/getwxacode?access_token=" + token;//获取小程序码
var postData = new
{
path,
width
};
string pathName = Guid.NewGuid().ToString() + ".jpg";
string basepath = AppContext.BaseDirectory;
string path_server = basepath + "\\upfile\\temporary\\" + pathName;
#region 微店头像
var ssmodel = smallShopsInfoRepository.GetListForSingle(new RB_SmallShops_Info_Extend() { MallBaseId = mallBaseId, UserId = userId }).FirstOrDefault();
string ssPhoto = ssmodel?.Photo ?? "";
#endregion
var Robj = HttpHelper.HttpPostForGetWXQRCodePathSmallShops(GetImageUrl, JsonHelper.Serialize(postData), path_server, ssPhoto);
return "/upfile/temporary/" + pathName;
}
return "";
}
#endregion
#region 推荐返佣账单
......
......@@ -442,6 +442,108 @@ where {where} group by o.OrderId order by o.CreateDate desc";
}
/// <summary>
/// 微店订单
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="count"></param>
/// <param name="dmodel"></param>
/// <returns></returns>
public List<RB_Goods_Order_Extend> GetSmallShopsOrdersPageList(int pageIndex, int pageSize, out long count, RB_Goods_Order_Extend dmodel)
{
string where = $" 1=1 and o.{nameof(RB_Goods_Order.Status)}=0";
where += $@" and o.{nameof(RB_Goods_Order.OrderStatus)} in(1,2,3,4,5,6)";
if (dmodel.TenantId > 0)
{
where += $@" and o.{nameof(RB_Goods_Order.TenantId)}={dmodel.TenantId}";
}
if (dmodel.MallBaseId > 0)
{
where += $@" and o.{nameof(RB_Goods_Order.MallBaseId)}={dmodel.MallBaseId}";
}
if (dmodel.OrderId > 0)
{
where += $@" and o.{nameof(RB_Goods_Order.OrderId)}={dmodel.OrderId}";
}
if (dmodel.OrderSource > 0)
{
where += $@" and o.{nameof(RB_Goods_Order.OrderSource)}={(int)dmodel.OrderSource}";
}
if (dmodel.OrderType > 0)
{
where += $@" and od.{nameof(RB_Goods_OrderDetail.OrderType)}={dmodel.OrderType}";
}
if (dmodel.DeliveryMethod > 0)
{
where += $@" and o.{nameof(RB_Goods_Order.DeliveryMethod)}={(int)dmodel.DeliveryMethod}";
}
if (!string.IsNullOrEmpty(dmodel.StartTime))
{
where += $@" and o.{nameof(RB_Goods_Order.CreateDate)} >='{dmodel.StartTime}'";
}
if (!string.IsNullOrEmpty(dmodel.EndTime))
{
where += $@" and o.{nameof(RB_Goods_Order.CreateDate)} <='{dmodel.EndTime} 23:59:59'";
}
if (dmodel.OrderStatus > 0)
{
where += $@" and o.{nameof(RB_Goods_Order.OrderStatus)}={(int)dmodel.OrderStatus}";
}
if (!string.IsNullOrEmpty(dmodel.OrderNo))
{
where += $@" and o.{nameof(RB_Goods_Order.OrderNo)} like '%{dmodel.OrderNo}%'";
}
if (!string.IsNullOrEmpty(dmodel.MerchantsNo))
{
where += $@" and o.{nameof(RB_Goods_Order.MerchantsNo)} like '%{dmodel.MerchantsNo}%'";
}
if (!string.IsNullOrEmpty(dmodel.UserName))
{
where += $@" and u.{nameof(RB_Member_User.Name)} like '%{dmodel.UserName}%'";
}
if (dmodel.UserId > 0)
{
where += $@" and o.{nameof(RB_Goods_Order.UserId)}={(int)dmodel.UserId}";
}
if (!string.IsNullOrEmpty(dmodel.GoodsName))
{
where += $@" and od.{nameof(RB_Goods_OrderDetail.GoodsName)} like '%{dmodel.GoodsName}%'";
}
if (!string.IsNullOrEmpty(dmodel.Consignee))
{
where += $@" and o.{nameof(RB_Goods_Order.Consignee)} like '%{dmodel.Consignee}%'";
}
if (!string.IsNullOrEmpty(dmodel.Mobile))
{
where += $@" and o.{nameof(RB_Goods_Order.Mobile)} like '%{dmodel.Mobile}%'";
}
if (!string.IsNullOrEmpty(dmodel.ProductCode))
{
where += $@" and od.{nameof(RB_Goods_OrderDetail.ProductCode)} like '%{dmodel.ProductCode}%'";
}
if (dmodel.Recycled > 0)
{
where += $@" and o.{nameof(RB_Goods_Order.Recycled)}={(int)dmodel.Recycled}";
}
if (dmodel.DistributionUserId > 0)
{
where += $@" and oc.{nameof(RB_SmallShops_Commission.UserId)}={dmodel.DistributionUserId}";
}
if (dmodel.SmallShopsId > 0)
{
where += $@" and o.{nameof(RB_Goods_Order.SmallShopsId)}={(int)dmodel.SmallShopsId}";
}
string sql = $@"SELECT o.*,u.Name as UserName FROM rb_goods_order o
INNER JOIN rb_goods_orderdetail od on o.OrderId=od.OrderId
INNER JOIN rb_member_user u on o.UserId=u.Id
inner JOIN rb_smallshops_commission oc on o.OrderId = oc.OrderId
where {where} group by o.OrderId order by o.CreateDate desc";
return GetPage<RB_Goods_Order_Extend>(pageIndex, pageSize, out count, sql).ToList();
}
/// <summary>
/// 清空回收站
/// </summary>
......
......@@ -14,10 +14,68 @@ namespace Mall.Repository.Product
/// </summary>
public class RB_SmallShops_CommissionRepository : BaseRepository<RB_SmallShops_Commission>
{
/// <summary>
/// 获取微店返佣列表
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="count"></param>
/// <param name="dmodel"></param>
/// <returns></returns>
public List<RB_SmallShops_Commission_Extend> GetList(RB_SmallShops_Commission_Extend dmodel)
{
string where = $" 1=1 and o.Recycled=2 and oa.ReOrderId is null";
if (dmodel.TenantId > 0)
{
where += $@" and oc.{nameof(RB_SmallShops_Commission.TenantId)}={dmodel.TenantId}";
}
if (dmodel.MallBaseId > 0)
{
where += $@" and oc.{nameof(RB_SmallShops_Commission.MallBaseId)}={dmodel.MallBaseId}";
}
if (dmodel.OrderId > 0)
{
where += $@" and oc.{nameof(RB_SmallShops_Commission.OrderId)}={dmodel.OrderId}";
}
if (dmodel.OrderDetailId > 0)
{
where += $@" and oc.{nameof(RB_SmallShops_Commission.OrderDetailId)}={dmodel.OrderDetailId}";
}
if (dmodel.UserId > 0)
{
where += $@" and oc.{nameof(RB_SmallShops_Commission.UserId)}={dmodel.UserId}";
}
if (dmodel.SmallShopsId > 0)
{
where += $@" and o.{nameof(RB_Goods_Order.SmallShopsId)}={dmodel.SmallShopsId}";
}
if (!string.IsNullOrEmpty(dmodel.OrderIds))
{
where += $@" and oc.{nameof(RB_SmallShops_Commission.OrderId)} in({dmodel.OrderIds})";
}
if (dmodel.DistrbutionOrderSelectStatus > 0)
{
switch (dmodel.DistrbutionOrderSelectStatus)
{
case 1: where += $@" and o.{nameof(RB_Goods_Order.OrderStatus)}={(int)OrderStatusEnum.NonPayment}"; break;
case 2: where += $@" and o.{nameof(RB_Goods_Order.OrderStatus)} in(2,3,4,6)"; break;
case 3: where += $@" and o.{nameof(RB_Goods_Order.OrderStatus)}={(int)OrderStatusEnum.Completed}"; break;
}
}
else
{
where += $@" and o.{nameof(RB_Goods_Order.OrderStatus)} in(1,2,3,4,5,6)";
}
string sql = $@"SELECT oc.*
FROM RB_SmallShops_Commission oc
inner join rb_goods_orderdetail od on oc.OrderDetailId = od.Id
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} order by oc.OrderId desc";
return Get<RB_SmallShops_Commission_Extend>(sql).ToList();
}
/// <summary>
/// 获取用户返佣
......@@ -98,5 +156,28 @@ left join rb_goods_orderaftersale oa on oc.OrderDetailId= oa.OrderDetialId and o
}
return 0;
}
/// <summary>
/// 获取未提现的佣金列表
/// </summary>
/// <param name="UserId"></param>
/// <returns></returns>
public List<RB_Goods_OrderCommission_Extend> GetUserCommissionRemit(int UserId)
{
string sql = $@"SELECT * FROM RB_SmallShops_Commission oc WHERE oc.CommissionState=2 and oc.UserId={UserId} and oc.IsRemit <> 1";
return Get<RB_Goods_OrderCommission_Extend>(sql).ToList();
}
/// <summary>
/// 获取已标记提现的佣金列表
/// </summary>
/// <param name="UserId"></param>
/// <param name="OrderIds"></param>
/// <returns></returns>
public List<RB_Goods_OrderCommission_Extend> GetUserCommissionRemitedList(int UserId, string OrderIds)
{
string sql = $@"SELECT * FROM RB_SmallShops_Commission oc WHERE oc.CommissionState=2 and oc.UserId={UserId} and oc.OrderId in ({OrderIds}) and oc.IsRemit = 1";
return Get<RB_Goods_OrderCommission_Extend>(sql).ToList();
}
}
}
......@@ -98,7 +98,7 @@ where {where} order by v.Id desc";
where += $@" and v.{nameof(RB_VipBuy_Commission.IsRemit)} <> 1";
}
string sql = $@"select v.*,vb.OrderNo from RB_VipBuy_Commission v
string sql = $@"select v.*,vb.OrderNo,vb.ReOrderId from RB_VipBuy_Commission v
inner join rb_vip_buy vb on v.OrderId = vb.Id
where {where} order by v.Id asc";
return Get<RB_VipBuy_Commission_Extend>(sql).ToList();
......
......@@ -42,6 +42,7 @@ namespace Mall.WebApi.Controllers.Finance
private readonly UserModule userModule = new UserModule();
private readonly OrderModule orderModule = new OrderModule();
private readonly SmallShopsModule smallShopsModule = new SmallShopsModule();
#region erp查询分销情况
......@@ -179,7 +180,8 @@ namespace Mall.WebApi.Controllers.Finance
return ApiResult.Failed("支付失败");
}
}
else {
else
{
string msg1 = userModule.SetDistributorRemitAudit(RemitId, 2, Remark, TenantId.ToString(), MallBaseId, 0);
if (msg1 != "")
{
......@@ -188,6 +190,104 @@ namespace Mall.WebApi.Controllers.Finance
return ApiResult.Success();
}
}
else if (model.WithdrawalWay == DistrbutorWithdrawWayEnum.YETX)
{
string msg1 = userModule.SetDistributorRemitAudit(RemitId, 2, Remark, TenantId.ToString(), MallBaseId, 0);
if (msg1 != "")
{
return ApiResult.Failed("提现:" + RemitId + ",失败");
}
return ApiResult.Success();
}
else
{
return ApiResult.Failed("暂不支持该类型打款");
}
}
#endregion
#region erp微店打款
/// <summary>
/// 微店打款
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult SetSmallShopsRemitAudit(object request)
{
JObject parms1 = JObject.Parse(request.ToString());
string msg = EncryptionHelper.AesDecrypt(parms1.GetStringValue("msg"), Config.FinanceKey);
var parms = JObject.Parse(msg.ToString());
int RemitId = parms.GetInt("RemitId", 0);
string Remark = parms.GetStringValue("Remark");
int TenantId = Convert.ToInt32(new ConfigurationBuilder().Add(new JsonConfigurationSource { Path = "appsettings.json" }).Build().GetSection("FinanceSetting")["TenantId"]);
int MallBaseId = Convert.ToInt32(new ConfigurationBuilder().Add(new JsonConfigurationSource { Path = "appsettings.json" }).Build().GetSection("FinanceSetting")["MallBaseId"]);
if (RemitId <= 0)
{
return ApiResult.ParamIsNull("请传递分销提现id");
}
var model = smallShopsModule.GetSmallShopsRemitInfo(RemitId);
if (model == null)
{
return ApiResult.Failed("该提现不存在,请核实后再试");
}
if (model.TenantId != Convert.ToInt32(TenantId))
{
return ApiResult.Failed("未查询到提现信息");
}
if (model.MallBaseId != MallBaseId)
{
return ApiResult.Failed("未查询到提现信息");
}
if (model.AuditStatus != Common.Enum.User.DistributorRemitAuditStatusEnum.ToPlayWith)
{
return ApiResult.Failed("状态不对,请核实后再试");
}
//执行发放金额
if (model.WithdrawalWay == DistrbutorWithdrawWayEnum.ZDDK)
{
int IsNormalServer = Convert.ToInt32(new ConfigurationBuilder().Add(new JsonConfigurationSource { Path = "appsettings.json" }).Build().GetSection("IsNormalServer").Value);
if (IsNormalServer == 1)
{
var mallModel = userModule.GetMiniProgramExtend(MallBaseId);
var umodel = userModule.GetMemberUserInfo(model.UserId ?? 0);
var flag = App_Code.PayUtil.GetTransfersOrder(model.OrderNum, model.RemitMoney ?? 0, (model.UserId ?? 0).ToString(), umodel.OpenId, mallModel, _accessor);
if (flag)
{
string msg1 = smallShopsModule.SetSmallShopsRemitAudit(RemitId, 2, Remark, TenantId.ToString(), MallBaseId, 0);
if (msg1 != "")
{
LogHelper.Write("提现:" + RemitId + ",失败");
}
return ApiResult.Success();
}
else
{
smallShopsModule.SetSmallShopsRemitRemark(RemitId, "ERP财务审核打款失败,请手动操作打款");
return ApiResult.Failed("支付失败");
}
}
else
{
string msg1 = smallShopsModule.SetSmallShopsRemitAudit(RemitId, 2, Remark, TenantId.ToString(), MallBaseId, 0);
if (msg1 != "")
{
return ApiResult.Failed("提现:" + RemitId + ",失败");
}
return ApiResult.Success();
}
}
else if (model.WithdrawalWay == DistrbutorWithdrawWayEnum.YETX) {
string msg1 = smallShopsModule.SetSmallShopsRemitAudit(RemitId, 2, Remark, TenantId.ToString(), MallBaseId, 0);
if (msg1 != "")
{
return ApiResult.Failed("提现:" + RemitId + ",失败");
}
return ApiResult.Success();
}
else
{
return ApiResult.Failed("暂不支持该类型打款");
......
......@@ -94,7 +94,7 @@ namespace Mall.WebApi.Controllers.MallBase
Common.Plugin.LogHelper.Error("MallController_GetHome", ex);
}
int page_id = parms.GetInt("page_id");
int page_id = parms.GetInt("page_id");
//首页数据
var homePage = new object();
//底部导航
......@@ -161,7 +161,7 @@ namespace Mall.WebApi.Controllers.MallBase
{
foreach (var subItem in templateModel.ComponentDataList)
{
templateData.data.Add(MallHelper.PlusDataToObject(subItem, (miniProgram?.TenantId ?? 0), miniProgram.MallBaseId));
templateData.data.Add(MallHelper.PlusDataToObject(subItem, (miniProgram?.TenantId ?? 0), miniProgram.MallBaseId, RequestParm.SmallShopsId));
}
}
var tempObj = new
......@@ -248,7 +248,7 @@ namespace Mall.WebApi.Controllers.MallBase
{
foreach (var subItem in templateModel.ComponentDataList)
{
templateData.data.Add(MallHelper.PlusDataToObject(subItem, (miniProgram?.TenantId ?? 0), miniProgram.MallBaseId));
templateData.data.Add(MallHelper.PlusDataToObject(subItem, (miniProgram?.TenantId ?? 0), miniProgram.MallBaseId, RequestParm.SmallShopsId));
}
}
var tempObj = new
......
This diff is collapsed.
......@@ -173,8 +173,7 @@ namespace Mall.WebApi.Controllers.MallBase
demodel.TenantId = parms.TenantId;
demodel.MallBaseId = parms.MallBaseId;
demodel.GoodsStatus = 1;//只查询销售中的
var list = productModule.GetAppletGoodsPageListForZY(pagelist.pageIndex, pagelist.pageSize, out long count, demodel);
List<object> RList = new List<object>();
demodel.SmallShopsId = parms.SmallShopsId;
int UserId = parms.UserId;
RB_Member_User_Extend userModel = new RB_Member_User_Extend();
RB_Member_Grade_Extend memberGrade = new RB_Member_Grade_Extend();
......@@ -185,7 +184,12 @@ namespace Mall.WebApi.Controllers.MallBase
{
memberGrade = productModule.GetMemberGradeList(new RB_Member_Grade_Extend() { Id = userModel.MemberGrade ?? 0, Enabled = 1, TenantId = demodel.TenantId, MallBaseId = demodel.MallBaseId }).FirstOrDefault();
}
if (demodel.SmallShopsId == 0) {
demodel.SmallShopsId = userModel.SmallShopId;
}
}
var list = productModule.GetAppletGoodsPageListForZY(pagelist.pageIndex, pagelist.pageSize, out long count, demodel);
List<object> RList = new List<object>();
if (list.Any())
{
foreach (var model in list)
......@@ -374,7 +378,7 @@ namespace Mall.WebApi.Controllers.MallBase
}
int UserId = req.UserId;
var Robj = productModule.GetAppletGoodsInfo_V2(GoodsId, UserId, req.TenantId, req.MallBaseId);
var Robj = productModule.GetAppletGoodsInfo_V2(GoodsId, UserId, req.SmallShopsId, req.TenantId, req.MallBaseId);
return ApiResult.Success("", Robj);
}
......@@ -962,8 +966,7 @@ namespace Mall.WebApi.Controllers.MallBase
demodel.TenantId = parms.TenantId;
demodel.MallBaseId = parms.MallBaseId;
demodel.GoodsStatus = 1;//只查询销售中的
var list = productModule.GetAppletGoodsRecommendListForZY(1, 10, out int RecommendStatus, demodel);
List<object> RList = new List<object>();
demodel.SmallShopsId = parms.SmallShopsId;
int UserId = demodel.UserId ?? 0;
RB_Member_User_Extend userModel = new RB_Member_User_Extend();
RB_Member_Grade_Extend memberGrade = new RB_Member_Grade_Extend();
......@@ -974,7 +977,12 @@ namespace Mall.WebApi.Controllers.MallBase
{
memberGrade = productModule.GetMemberGradeList(new RB_Member_Grade_Extend() { Id = userModel.MemberGrade ?? 0, Enabled = 1, TenantId = demodel.TenantId, MallBaseId = demodel.MallBaseId }).FirstOrDefault();
}
if (demodel.SmallShopsId == 0) {
demodel.SmallShopsId = userModel.SmallShopId;
}
}
var list = productModule.GetAppletGoodsRecommendListForZY(1, 10, out int RecommendStatus, demodel);
List<object> RList = new List<object>();
if (list.Any())
{
foreach (var model in list)
......
......@@ -17,6 +17,7 @@ using Mall.Common;
using Mall.Module.Product;
using Mall.Model.Extend.User;
using Mall.Model.Entity.BaseSetUp;
using Microsoft.AspNetCore.Http;
namespace Mall.WebApi.Controllers.MallBase
{
......@@ -26,6 +27,16 @@ namespace Mall.WebApi.Controllers.MallBase
[EnableCors("AllowCors")]
public class AppletOrderController : BaseController
{
private readonly IHttpContextAccessor _accessor;
/// <summary>
/// 构造函数
/// </summary>
/// <param name="accessor"></param>
public AppletOrderController(IHttpContextAccessor accessor)
{
_accessor = accessor;
}
private readonly OrderModule orderModule = new OrderModule();
private readonly Module.User.MiniProgramModule programModule = new Module.User.MiniProgramModule();
......@@ -46,6 +57,7 @@ namespace Mall.WebApi.Controllers.MallBase
demodel.TenantId = userInfo.TenantId;
demodel.MallBaseId = userInfo.MallBaseId;
demodel.UserId = userInfo.UserId;
demodel.SmallShopsId = parms.SmallShopsId;
var list = orderModule.GetGoodsShoppingCartPageList(pagelist.pageIndex, pagelist.pageSize, out long count, demodel);
pagelist.count = Convert.ToInt32(count);
var MallModel = orderModule.GetMiniProgramExtend(userInfo.MallBaseId);
......@@ -361,6 +373,7 @@ namespace Mall.WebApi.Controllers.MallBase
demodel.TenantId = userInfo.TenantId;
demodel.MallBaseId = userInfo.MallBaseId;
demodel.UserId = userInfo.UserId;
demodel.SmallShopsId = req.SmallShopsId;
return orderModule.GetAppletGoodsSettlementInfoForZY(demodel);
}
......@@ -482,6 +495,7 @@ namespace Mall.WebApi.Controllers.MallBase
demodel.AnchorName ??= "";
demodel.UpdateDate = DateTime.Now;
demodel.UserId = userInfo.UserId;
demodel.SmallShopsId = req.SmallShopsId;
#endregion
return orderModule.SetAppletGoodsOrderInfo(demodel);
......@@ -580,7 +594,7 @@ namespace Mall.WebApi.Controllers.MallBase
return ApiResult.ParamIsNull();
}
bool flag = orderModule.SetAppletOrderGoodsReceiving(OrderId, userInfo.UserId, userInfo.TenantId, userInfo.MallBaseId);
bool flag = orderModule.SetAppletOrderGoodsReceiving(OrderId, userInfo.UserId, userInfo.TenantId, userInfo.MallBaseId, _accessor);
if (flag) { return ApiResult.Success(); } else { return ApiResult.Failed(); }
}
......
......@@ -30,6 +30,75 @@ namespace Mall.WebApi.Controllers.User
{
private readonly SmallShopsModule smallShopsModule = new SmallShopsModule();
#region 微店提现
/// <summary>
/// 获取提现余额
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetSmallShopsWithdrawDepositBalance()
{
var userInfo = AppletUserInfo;
var obj = smallShopsModule.GetSmallShopsWithdrawDepositBalance(userInfo);
return ApiResult.Success("", obj);
}
/// <summary>
/// 分销提现
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult SetSmallShopsWithdrawDeposit()
{
var req = RequestParm;
var userInfo = AppletUserInfo;
RB_SmallShops_Remit_Extend demodel = JsonConvert.DeserializeObject<RB_SmallShops_Remit_Extend>(req.msg.ToString());
if ((demodel.AppliedMoney ?? 0) <= 0)
{
return ApiResult.ParamIsNull("提现金额不能小于0");
}
if (demodel.WithdrawalWay == DistrbutorWithdrawWayEnum.WXZZ || demodel.WithdrawalWay == DistrbutorWithdrawWayEnum.YYKZZ || demodel.WithdrawalWay == DistrbutorWithdrawWayEnum.ZFBZZ)
{
if (string.IsNullOrEmpty(demodel.AccountName))
{
return ApiResult.ParamIsNull("请输入账户名称");
}
if (string.IsNullOrEmpty(demodel.AccountNumber))
{
return ApiResult.ParamIsNull("请输入账号");
}
if (demodel.WithdrawalWay == DistrbutorWithdrawWayEnum.YYKZZ)
{
if (string.IsNullOrEmpty(demodel.BankName))
{
return ApiResult.ParamIsNull("请输入银行名称");
}
}
}
demodel.TenantId = userInfo.TenantId;
demodel.MallBaseId = userInfo.MallBaseId;
demodel.UserId = userInfo.UserId;
demodel.AuditStatus = DistributorRemitAuditStatusEnum.Auditing;
demodel.CreateDate = DateTime.Now;
Random R = new Random();
int Rstr = R.Next(111, 999);
demodel.OrderNum = DateTime.Now.ToString("yyyyMMddHHmmssfff") + Rstr;
string msg = smallShopsModule.SetSmallShopsWithdrawDeposit(demodel);
if (msg == "")
{
return ApiResult.Success();
}
else
{
return ApiResult.Failed(msg);
}
}
#endregion
#region 微店价格设置
/// <summary>
......@@ -189,5 +258,6 @@ namespace Mall.WebApi.Controllers.User
}
#endregion
}
}
\ No newline at end of file
......@@ -1215,6 +1215,27 @@ namespace Mall.WebApi.Controllers.User
return ApiResult.Success("", base64Img);
}
/// <summary>
/// 获取微信小程序码(微店)
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetWeiXinQRCodeForAppletSmallShops()
{
var req = RequestParm;
var userInfo = AppletUserInfo;
JObject parms = JObject.Parse(req.msg.ToString());
string Path = parms.GetStringValue("Path");//路径
int With = parms.GetInt("With", 430);//大小
if (string.IsNullOrEmpty(Path))
{
return ApiResult.ParamIsNull("请传递路径");
}
string base64Img = userModule.GetWeiXinQRCodeForSmallShops(Path, With, userInfo.MallBaseId, userInfo.UserId);
return ApiResult.Success("", base64Img);
}
#endregion
#region 获取分销海报
......
......@@ -30,6 +30,17 @@ namespace Mall.WebApi.Controllers.User
public class SmallShopsController : BaseController
{
private readonly SmallShopsModule smallShopsModule = new SmallShopsModule();
private readonly UserModule userModule = new UserModule();
private readonly IHttpContextAccessor _accessor;
/// <summary>
/// 构造函数
/// </summary>
/// <param name="accessor"></param>
public SmallShopsController(IHttpContextAccessor accessor)
{
_accessor = accessor;
}
#region 微店管理
/// <summary>
......@@ -142,7 +153,7 @@ namespace Mall.WebApi.Controllers.User
var req = RequestParm;
JObject prams = JObject.Parse(req.msg.ToString());
int SmallShopsId = prams.GetInt("SmallShopsId", 0);
int Type = prams.GetInt("Type", 1);//类型 1审核通过 2审核拒绝 3修改备注
int Type = prams.GetInt("Type", 1);//类型 1审核通过 2审核拒绝 3修改备注 4删除
string Remark = prams.GetStringValue("Remark");
if (SmallShopsId <= 0)
......@@ -212,6 +223,124 @@ namespace Mall.WebApi.Controllers.User
#endregion
#region 微店提现
/// <summary>
/// 微店提现申请审核
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult SetSmallShopsRemitAudit()
{
var re = RequestParm;
var parms = JObject.Parse(re.msg.ToString());
int RemitId = parms.GetInt("RemitId", 0);
int ErpEmpId = parms.GetInt("ErpEmpId", 0);//erp用户id
int Type = parms.GetInt("Type", 0);//1审核通过 2打款 3驳回
string Remark = parms.GetStringValue("Remark");
if (RemitId <= 0)
{
return ApiResult.ParamIsNull("请传递分销提现id");
}
var model = smallShopsModule.GetSmallShopsRemitInfo(RemitId);
if (model == null)
{
return ApiResult.Failed("该提现不存在,请核实后再试");
}
if (model.TenantId != Convert.ToInt32(re.uid))
{
return ApiResult.Failed("未查询到提现信息");
}
if (model.MallBaseId != re.MallBaseId)
{
return ApiResult.Failed("未查询到提现信息");
}
if (Type == 1)
{
if (model.AuditStatus != Common.Enum.User.DistributorRemitAuditStatusEnum.Auditing)
{
return ApiResult.Failed("状态不对,请核实后再试");
}
}
else if (Type == 2)
{
if (model.AuditStatus != Common.Enum.User.DistributorRemitAuditStatusEnum.ToPlayWith)
{
return ApiResult.Failed("状态不对,请核实后再试");
}
//执行发放金额
if (model.WithdrawalWay == DistrbutorWithdrawWayEnum.ZDDK)
{
int IsNormalServer = Convert.ToInt32(new ConfigurationBuilder().Add(new JsonConfigurationSource { Path = "appsettings.json" }).Build().GetSection("IsNormalServer").Value);
if (IsNormalServer == 1)
{
var mallModel = userModule.GetMiniProgramExtend(re.MallBaseId);
var umodel = userModule.GetMemberUserInfo(model.UserId ?? 0);
var flag = App_Code.PayUtil.GetTransfersOrder(model.OrderNum, model.RemitMoney ?? 0, (model.UserId ?? 0).ToString(), umodel.OpenId, mallModel, _accessor);
if (flag)
{
string msg1 = smallShopsModule.SetSmallShopsRemitAudit(RemitId, Type, Remark, re.uid, re.MallBaseId, ErpEmpId);
if (msg1 != "")
{
LogHelper.Write("提现:" + RemitId + ",失败");
}
new MiniProgramMsgModule().SendWithdrawSucceedMsg(model.TenantId, model.MallBaseId, umodel.OpenId, (model.RemitMoney ?? 0).ToString(), (model.Fee ?? 0).ToString(), (model.WithdrawalWay.GetEnumName()), "已发放佣金,请注意查收");
return ApiResult.Success();
}
else
{
LogHelper.Write("企业付款失败RemitId:" + RemitId);
return ApiResult.Failed("支付失败");
}
}
else
{
string msg1 = smallShopsModule.SetSmallShopsRemitAudit(RemitId, Type, Remark, re.uid, re.MallBaseId, ErpEmpId);
if (msg1 != "")
{
return ApiResult.Failed("提现:" + RemitId + ",失败");
}
return ApiResult.Success();
}
}
else if (model.WithdrawalWay == DistrbutorWithdrawWayEnum.YETX) {
//余额提现
}
else
{
return ApiResult.Failed("暂不支持该类型打款");
}
}
else if (Type == 3)
{
if (model.AuditStatus != Common.Enum.User.DistributorRemitAuditStatusEnum.Auditing && model.AuditStatus != Common.Enum.User.DistributorRemitAuditStatusEnum.ToPlayWith)
{
return ApiResult.Failed("状态不对,请核实后再试");
}
}
else
{
return ApiResult.Failed("暂不支持该类型");
}
string msg = smallShopsModule.SetSmallShopsRemitAudit(RemitId, Type, Remark, re.uid, re.MallBaseId, ErpEmpId);
if (msg == "")
{
if (Type == 3)
{
var umodel = userModule.GetMemberUserInfo(model.UserId ?? 0);
new MiniProgramMsgModule().SendWithdrawFailMsg(model.TenantId, model.MallBaseId, umodel.OpenId, (model.RemitMoney ?? 0).ToString(), "提现申请已被拒绝");
}
return ApiResult.Success();
}
else
{
return ApiResult.Failed(msg);
}
}
#endregion
#region 微店自定义
......
......@@ -1941,6 +1941,11 @@ namespace Mall.WebApi.Controllers.User
return ApiResult.Success();
}
}
else if (model.WithdrawalWay == DistrbutorWithdrawWayEnum.YETX)
{
//把钱充值到余额里 在更新完提现表状态后 发放到余额
}
else
{
return ApiResult.Failed("暂不支持该类型打款");
......
This diff is collapsed.
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