|
@@ -98,6 +98,47 @@ namespace MySystem.Areas.Api.Controllers.v1
|
|
|
|
|
|
|
|
|
|
|
|
+ #region 商户-经营数据-按月
|
|
|
+ [Authorize]
|
|
|
+ public JsonResult BussinessRecordForMonth(string value)
|
|
|
+ {
|
|
|
+ value = DesDecrypt(value);
|
|
|
+ JsonData data = JsonMapper.ToObject(value);
|
|
|
+ List<Dictionary<string, object>> dataList = BussinessRecordForMonthDo(value);
|
|
|
+ return Json(new AppResultJson() { Status = "1", Info = "", Data = dataList });
|
|
|
+ }
|
|
|
+ public List<Dictionary<string, object>> BussinessRecordForMonthDo(string value)
|
|
|
+ {
|
|
|
+ JsonData data = JsonMapper.ToObject(value);
|
|
|
+ int MerchantId = int.Parse(function.CheckInt(data["MerchantId"].ToString())); //商户
|
|
|
+ string Month = data["Month"].ToString(); //月份
|
|
|
+ int PageSize = int.Parse(function.CheckInt(data["PageSize"].ToString()));
|
|
|
+ int PageNum = int.Parse(function.CheckInt(data["PageNum"].ToString()));
|
|
|
+ List<Dictionary<string, object>> dataList = new List<Dictionary<string, object>>();
|
|
|
+ DataTable dt = MerchantAmountSummary.Instance.GetTradeListByDate(MerchantId, Month, PageNum, PageSize);
|
|
|
+ foreach (DataRow dr in dt.Rows)
|
|
|
+ {
|
|
|
+ string TradeDate = dr["TradeDate"].ToString();
|
|
|
+ Dictionary<string, object> curData = new Dictionary<string, object>();
|
|
|
+ curData.Add("Date", TradeDate.Substring(0, 4) + "-" + TradeDate.Substring(4, 2) + "-" + TradeDate.Substring(6, 2)); //日期
|
|
|
+ curData.Add("TotalAmount", dr[5].ToString()); //营收金额
|
|
|
+ curData.Add("TotalActual", dr[3].ToString()); //实收金额
|
|
|
+ curData.Add("WeChatAmount", dr[2].ToString()); //微信实收
|
|
|
+ curData.Add("AlipayAmount", dr[1].ToString()); //支付宝实收
|
|
|
+ curData.Add("OrderCount", dr[4].ToString()); //订单数
|
|
|
+ curData.Add("AddCount", 0); //新增会员
|
|
|
+ dataList.Add(curData);
|
|
|
+ }
|
|
|
+ return dataList;
|
|
|
+ }
|
|
|
+ #endregion
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
#region 商户-订单列表
|
|
|
[Authorize]
|
|
|
public JsonResult ForMer(string value)
|
|
@@ -200,8 +241,19 @@ namespace MySystem.Areas.Api.Controllers.v1
|
|
|
public AppResultJson PayDo(string value)
|
|
|
{
|
|
|
JsonData data = JsonMapper.ToObject(value);
|
|
|
- string SnNo = data["Sn"].ToString(); //商户
|
|
|
- string Machine = data["Machine"].ToString();
|
|
|
+ string SnNo = data["Sn"].ToString(); //码牌SN
|
|
|
+ // string Machine = data["Machine"].ToString();
|
|
|
+ if(SnNo.Length > 20)
|
|
|
+ {
|
|
|
+ SnNo = System.Web.HttpUtility.UrlDecode(SnNo);
|
|
|
+ if(!SnNo.EndsWith("="))
|
|
|
+ {
|
|
|
+ SnNo += "=";
|
|
|
+ }
|
|
|
+ SnNo = dbconn.Decrypt3DES(SnNo, "l2k0b2#3");
|
|
|
+ SnNo = SnNo.TrimEnd('\0');
|
|
|
+ SnNo = SnNo.Substring(0, SnNo.Length - 8);
|
|
|
+ }
|
|
|
int PayMode = int.Parse(function.CheckInt(data["PayMode"].ToString())); //支付方式
|
|
|
decimal PayMoney = decimal.Parse(function.CheckNum(data["PayMoney"].ToString())); //支付金额
|
|
|
string Code = data["Code"].ToString();
|
|
@@ -217,115 +269,122 @@ namespace MySystem.Areas.Api.Controllers.v1
|
|
|
{
|
|
|
return new AppResultJson() { Status = "-1", Info = "请填写正确的支付金额" };
|
|
|
}
|
|
|
-
|
|
|
+ Dictionary<string, object> Obj = new Dictionary<string, object>();
|
|
|
MerchantQrCode qrcode = MerchantQrCodeDbconn.Instance.Get(SnNo) ?? new MerchantQrCode();
|
|
|
-
|
|
|
+ PosMachinesTwo pos = PosMachinesTwoDbconn.Instance.Get(SnNo) ?? new PosMachinesTwo();
|
|
|
// PosMachines machine = PosMachinesDbconn.Instance.Get(qrcode.SnId) ?? new PosMachines();
|
|
|
// if (machine.BindMerchantId == 0) machine.BindMerchantId = 1; // TODO: 需要绑定二维码
|
|
|
- MerchantInfo merchant = MerchantInfoDbconn.Instance.Get(qrcode.MerchantId) ?? new MerchantInfo();
|
|
|
- MerchantAddInfo merchantAdd = MerchantAddInfoDbconn.Instance.Get(qrcode.MerchantId) ?? new MerchantAddInfo();
|
|
|
- MerchantParamSet merchantset = MerchantParamSetDbconn.Instance.Get(qrcode.MerchantId) ?? new MerchantParamSet();
|
|
|
- string openid = "";
|
|
|
- if (PayMode == 1)
|
|
|
- {
|
|
|
- openid = new AlipayFunction(_accessor.HttpContext).GetAlipayUserId(Code);
|
|
|
- if (openid.Contains("|"))
|
|
|
+ if(pos.OpId == 1)
|
|
|
+ {
|
|
|
+ MerchantInfo merchant = MerchantInfoDbconn.Instance.Get(qrcode.MerchantId) ?? new MerchantInfo();
|
|
|
+ MerchantAddInfo merchantAdd = MerchantAddInfoDbconn.Instance.Get(qrcode.MerchantId) ?? new MerchantAddInfo();
|
|
|
+ MerchantParamSet merchantset = MerchantParamSetDbconn.Instance.Get(qrcode.MerchantId) ?? new MerchantParamSet();
|
|
|
+ string openid = "";
|
|
|
+ if (PayMode == 1)
|
|
|
+ {
|
|
|
+ openid = new AlipayFunction(_accessor.HttpContext).GetAlipayUserId(Code);
|
|
|
+ if (openid.Contains("|"))
|
|
|
+ {
|
|
|
+ openid = openid.Split('|')[0];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
{
|
|
|
- openid = openid.Split('|')[0];
|
|
|
+ string result = function.GetWebRequest("https://api.weixin.qq.com/sns/jscode2session?appid=" + new WeChatFunction().AppId + "&secret=" + new WeChatFunction().AppSecret + "&js_code=" + Code + "&grant_type=authorization_code");
|
|
|
+ function.WriteLog(DateTime.Now.ToString() + "\n" + result, "微信小程序获取openid");
|
|
|
+ JsonData jsonObj = JsonMapper.ToObject(result);
|
|
|
+ openid = jsonObj["openid"].ToString();
|
|
|
}
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- string result = function.GetWebRequest("https://api.weixin.qq.com/sns/jscode2session?appid=" + new WeChatFunction().AppId + "&secret=" + new WeChatFunction().AppSecret + "&js_code=" + Code + "&grant_type=authorization_code");
|
|
|
- function.WriteLog(DateTime.Now.ToString() + "\n" + result, "微信小程序获取openid");
|
|
|
- JsonData jsonObj = JsonMapper.ToObject(result);
|
|
|
- openid = jsonObj["openid"].ToString();
|
|
|
- }
|
|
|
- int ConsumerId = 0;
|
|
|
- ConsumerOpenIds check = maindb.ConsumerOpenIds.FirstOrDefault(m => m.OpenId == openid);
|
|
|
- if (check == null)
|
|
|
- {
|
|
|
- // ConsumerId = PublicFunction.MakeConsumerId();
|
|
|
- Consumers consumer = maindb.Consumers.Add(new Consumers()
|
|
|
+ int ConsumerId = 0;
|
|
|
+ ConsumerOpenIds check = maindb.ConsumerOpenIds.FirstOrDefault(m => m.OpenId == openid);
|
|
|
+ if (check == null)
|
|
|
{
|
|
|
- Id = ConsumerId,
|
|
|
- CreateDate = DateTime.Now,
|
|
|
- WechatOpenId = openid,
|
|
|
- }).Entity;
|
|
|
+ // ConsumerId = PublicFunction.MakeConsumerId();
|
|
|
+ Consumers consumer = maindb.Consumers.Add(new Consumers()
|
|
|
+ {
|
|
|
+ Id = ConsumerId,
|
|
|
+ CreateDate = DateTime.Now,
|
|
|
+ WechatOpenId = openid,
|
|
|
+ }).Entity;
|
|
|
+ maindb.SaveChanges();
|
|
|
+ ConsumerId = consumer.Id;
|
|
|
+ check = maindb.ConsumerOpenIds.Add(new ConsumerOpenIds()
|
|
|
+ {
|
|
|
+ OpenId = openid,
|
|
|
+ ConsumerId = ConsumerId,
|
|
|
+ }).Entity;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ ConsumerId = check.ConsumerId;
|
|
|
+ }
|
|
|
maindb.SaveChanges();
|
|
|
- ConsumerId = consumer.Id;
|
|
|
- check = maindb.ConsumerOpenIds.Add(new ConsumerOpenIds()
|
|
|
+ string OrderNo = DateTime.Now.ToString("yyyyMMddHHmmssfff") + function.get_Random(8);
|
|
|
+ bool ActFlag = merchantset.IsAll == 1 ? false : true;
|
|
|
+ if(PayMoney < merchantset.MinPayMoney) //支付金额小于活动最小金额,则不分账
|
|
|
{
|
|
|
- OpenId = openid,
|
|
|
- ConsumerId = ConsumerId,
|
|
|
+ ActFlag = false;
|
|
|
+ }
|
|
|
+ ConsumerOrders order = maindb.ConsumerOrders.Add(new ConsumerOrders()
|
|
|
+ {
|
|
|
+ // Id = PublicFunction.MakeConsumerOrderId(),
|
|
|
+ CreateDate = DateTime.Now, //创建时间
|
|
|
+ MerchantId = qrcode.MerchantId, //商户
|
|
|
+ ConsumerId = ConsumerId, //消费者
|
|
|
+ UserId = merchant.UserId, //创客
|
|
|
+ PayMode = PayMode, //支付方式
|
|
|
+ PayMoney = PayMoney, //支付金额
|
|
|
+ SnNo = SnNo, //SN号
|
|
|
+ OrderNo = OrderNo,
|
|
|
+ MaxDivi = ActFlag ? PayMoney * merchantset.DiviPercent / 100 : 0,
|
|
|
+ IsAct = ActFlag ? 1u : 0u,
|
|
|
+ MerchantActualAmount = ActFlag ? PayMoney * merchantset.GetPercent / 100 : PayMoney,
|
|
|
+ SeoDescription = Newtonsoft.Json.JsonConvert.SerializeObject(merchantset),
|
|
|
}).Entity;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- ConsumerId = check.ConsumerId;
|
|
|
- }
|
|
|
- maindb.SaveChanges();
|
|
|
- Dictionary<string, object> Obj = new Dictionary<string, object>();
|
|
|
- string OrderNo = DateTime.Now.ToString("yyyyMMddHHmmssfff") + function.get_Random(8);
|
|
|
- bool ActFlag = merchantset.IsAll == 1 ? false : true;
|
|
|
- if(PayMoney < merchantset.MinPayMoney) //支付金额小于活动最小金额,则不分账
|
|
|
- {
|
|
|
- ActFlag = false;
|
|
|
- }
|
|
|
- ConsumerOrders order = maindb.ConsumerOrders.Add(new ConsumerOrders()
|
|
|
- {
|
|
|
- // Id = PublicFunction.MakeConsumerOrderId(),
|
|
|
- CreateDate = DateTime.Now, //创建时间
|
|
|
- MerchantId = qrcode.MerchantId, //商户
|
|
|
- ConsumerId = ConsumerId, //消费者
|
|
|
- UserId = merchant.UserId, //创客
|
|
|
- PayMode = PayMode, //支付方式
|
|
|
- PayMoney = PayMoney, //支付金额
|
|
|
- SnNo = SnNo, //SN号
|
|
|
- OrderNo = OrderNo,
|
|
|
- MaxDivi = ActFlag ? PayMoney * merchantset.DiviPercent / 100 : 0,
|
|
|
- IsAct = ActFlag ? 1u : 0u,
|
|
|
- MerchantActualAmount = ActFlag ? PayMoney * merchantset.GetPercent / 100 : PayMoney,
|
|
|
- SeoDescription = Newtonsoft.Json.JsonConvert.SerializeObject(merchantset),
|
|
|
- }).Entity;
|
|
|
- maindb.SaveChanges();
|
|
|
- maindb.ConsumerOrderForNo.Add(new ConsumerOrderForNo()
|
|
|
- {
|
|
|
- OrderNo = OrderNo,
|
|
|
- OrderIds = order.Id,
|
|
|
- });
|
|
|
- maindb.SaveChanges();
|
|
|
- if (PayMode == 1)
|
|
|
- {
|
|
|
- string backString = new AlipayFunction(_accessor.HttpContext).CreateTrade(OrderNo, merchant.Name, PayMoney, openid, merchantAdd.AlipayAuthToken, SpHost + "/api/alipay/notice");
|
|
|
- JsonData obj = JsonMapper.ToObject(backString);
|
|
|
- if (obj["alipay_trade_create_response"]["code"].ToString() == "10000")
|
|
|
+ maindb.SaveChanges();
|
|
|
+ maindb.ConsumerOrderForNo.Add(new ConsumerOrderForNo()
|
|
|
{
|
|
|
- string tradeNo = obj["alipay_trade_create_response"]["trade_no"].ToString();
|
|
|
- Obj.Add("respCode", obj["alipay_trade_create_response"]["code"].ToString());
|
|
|
- Obj.Add("tradeNo", tradeNo);
|
|
|
- }
|
|
|
- else
|
|
|
+ OrderNo = OrderNo,
|
|
|
+ OrderIds = order.Id,
|
|
|
+ });
|
|
|
+ maindb.SaveChanges();
|
|
|
+ if (PayMode == 1)
|
|
|
{
|
|
|
- Obj.Add("respCode", obj["alipay_trade_create_response"]["code"].ToString());
|
|
|
- Obj.Add("tradeNo", "");
|
|
|
- return new AppResultJson() { Status = "-1", Info = obj["alipay_trade_create_response"]["sub_msg"].ToString(), Data = Obj };
|
|
|
+ string backString = new AlipayFunction(_accessor.HttpContext).CreateTrade(OrderNo, merchant.Name, PayMoney, openid, merchantAdd.AlipayAuthToken, SpHost + "/api/alipay/notice");
|
|
|
+ JsonData obj = JsonMapper.ToObject(backString);
|
|
|
+ if (obj["alipay_trade_create_response"]["code"].ToString() == "10000")
|
|
|
+ {
|
|
|
+ string tradeNo = obj["alipay_trade_create_response"]["trade_no"].ToString();
|
|
|
+ Obj.Add("respCode", obj["alipay_trade_create_response"]["code"].ToString());
|
|
|
+ Obj.Add("tradeNo", tradeNo);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ Obj.Add("respCode", obj["alipay_trade_create_response"]["code"].ToString());
|
|
|
+ Obj.Add("tradeNo", "");
|
|
|
+ return new AppResultJson() { Status = "-1", Info = obj["alipay_trade_create_response"]["sub_msg"].ToString(), Data = Obj };
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if (PayMode == 2)
|
|
|
+ {
|
|
|
+ string SubMchId = merchantAdd.SubMchid;
|
|
|
+ string Description = merchant.Name;
|
|
|
+ string OpenId = openid;
|
|
|
+ string Key = AppConfig.WeChatParam.AesGemKey;
|
|
|
+ string NotifyUrl = SpHost + "/api/wechat/notice";
|
|
|
+ Dictionary<string, string> dic = new WeChatFunction(_accessor.HttpContext).Pay(SubMchId, PayMoney, OrderNo, Description, OpenId, Key, NotifyUrl, ActFlag);
|
|
|
+ Obj.Add("appId", dic["appId"]); //微信小程序appid
|
|
|
+ Obj.Add("timeStamp", dic["timeStamp"]); //时间戳
|
|
|
+ Obj.Add("nonceStr", dic["nonceStr"]); //随机字符串
|
|
|
+ Obj.Add("package", dic["package"]); //统一支付接口返回的prepayid参数值
|
|
|
+ Obj.Add("paySign", dic["paySign"]); //支付签名
|
|
|
+ Obj.Add("ConsumerId", ConsumerId);
|
|
|
}
|
|
|
}
|
|
|
- else if (PayMode == 2)
|
|
|
+ else
|
|
|
{
|
|
|
- string SubMchId = merchantAdd.SubMchid;
|
|
|
- string Description = merchant.Name;
|
|
|
- string OpenId = openid;
|
|
|
- string Key = AppConfig.WeChatParam.AesGemKey;
|
|
|
- string NotifyUrl = SpHost + "/api/wechat/notice";
|
|
|
- Dictionary<string, string> dic = new WeChatFunction(_accessor.HttpContext).Pay(SubMchId, PayMoney, OrderNo, Description, OpenId, Key, NotifyUrl, ActFlag);
|
|
|
- Obj.Add("appId", dic["appId"]); //微信小程序appid
|
|
|
- Obj.Add("timeStamp", dic["timeStamp"]); //时间戳
|
|
|
- Obj.Add("nonceStr", dic["nonceStr"]); //随机字符串
|
|
|
- Obj.Add("package", dic["package"]); //统一支付接口返回的prepayid参数值
|
|
|
- Obj.Add("paySign", dic["paySign"]); //支付签名
|
|
|
- Obj.Add("ConsumerId", ConsumerId);
|
|
|
+ string result = function.PostWebRequest(AppConfig.Base.Host2 + "api/v1/consumerorders/pay", "value=" + value);
|
|
|
+ return Newtonsoft.Json.JsonConvert.DeserializeObject<AppResultJson>(result);
|
|
|
}
|
|
|
return new AppResultJson() { Status = "1", Info = "", Data = Obj };
|
|
|
}
|