/// <summary> /// 获取上游供应商的首页 /// </summary> /// <param name="para"></param> /// <returns></returns> public static IResultResponse GetUpDefalutUrl(SysParameter para) { IResultResponse resultResponse = OpsUtil.VerifyAccessToken(para); if (!resultResponse.Success) { return(resultResponse); } Sdk.AccessToken accessToken = resultResponse.Content as Sdk.AccessToken; try { ConnectorRelation connectorRelation = new ConnectorBusiness(para.dapperFactory).GetUpConnector(Utils.ToInt(accessToken.Id)); if (connectorRelation.VirtualDir != null) { Dictionary <string, string> dic = new Dictionary <string, string>() { { "method", "linker.login" }, { "userId", "0" }, { "storeId", connectorRelation.UpBuyerId.ToString() }, { "virtualdir", connectorRelation.VirtualDir }, }; var param = ApiRequest.GetPaySign(dic); return(ResultResponse.GetSuccessResult($"{connectorRelation.Domain}/linker.axd?{param}")); } return(ResultResponse.ExceptionResult("你没有上游供应商")); } catch (Exception ex) { return(ResultResponse.ExceptionResult(ex, 500)); } }
/// <summary> /// 推送克隆命令 /// </summary> /// <param name="accessToken"></param> /// <returns></returns> public static IResultResponse PushCloneCommand(SysParameter para) { IResultResponse resultResponse = OpsUtil.VerifyAccessToken(para); if (!resultResponse.Success) { return(resultResponse); } Sdk.AccessToken accessToken = resultResponse.Content as Sdk.AccessToken; if (accessToken.UpConnectorId == 0) { return(ResultResponse.ExceptionResult("上下游关系没生效,请重新登录!")); } try { string key = accessToken.Id + "_" + accessToken.UpConnectorId; if (!IsSendCmd(key)) { return(ResultResponse.ExceptionResult("三分钟之内发送次过多")); } //克隆权限 var cloneAuthority = new ProductRelationBusiness(para.dapperFactory).CloneAuthority(accessToken.Id, accessToken.UpConnectorId); if (!cloneAuthority) { return(ResultResponse.ExceptionResult("你已经克隆过了!")); } long re = DistributePubSub.RedisPub("product_clone", new Dictionary <string, int>() { { "upId", accessToken.UpConnectorId }, { "downId", accessToken.Id }, }); //bool sendCmd = WebSocketClient.SendCommand("Clone", "data.clone.push.command", new object[] { accessToken.Id, accessToken.UpConnectorId }, true); if (re == -1) { return(ResultResponse.ExceptionResult("命令已发送失败!")); } //插入发送记录 new CloneResultBusiness(para.dapperFactory).Insert(accessToken); //设置发送时间 SetSendCmd(key); return(ResultResponse.GetSuccessResult("命令已发送成功,请稍后!")); } catch (Exception ex) { new Exceptions(ex, "clone"); return(ResultResponse.ExceptionResult(ex.Message)); } }
/// <summary> /// 清除克隆数据 /// </summary> /// <param name="para"></param> /// <returns></returns> public static IResultResponse ClearCloneData(SysParameter para) { IResultResponse resultResponse = OpsUtil.VerifyAccessToken(para); if (!resultResponse.Success) { return(resultResponse); } Sdk.AccessToken accessToken = resultResponse.Content as Sdk.AccessToken; string key = accessToken.Id + "_" + accessToken.UpConnectorId; try { DataTable dt = new CloneResultBusiness(para.dapperFactory).GetCloneData(accessToken); if (dt == null || dt.Rows.Count == 0) { return(ResultResponse.ExceptionResult("没有数据可清理")); } //清缓存 ClearCmd(key); string domain = accessToken.Domain; string content = Utils.ToString(dt.Rows[0]["CloneResult"]); resultResponse = ApiRequest.GetResponse(domain, "mall.data.clone.clear", new Dictionary <string, string>() { { "FKId", accessToken.SellerId.ToString() }, { "FKFlag", "2" }, { "Content", HttpUtility.UrlEncode(content) } }); if (resultResponse.Success) { //删除连接器中 new ProductRelationBusiness(para.dapperFactory).DeleteData(accessToken.Id, accessToken.UpConnectorId); return(ResultResponse.GetSuccessResult("删除成功")); } return(ResultResponse.ExceptionResult("删除失败")); } catch (Exception ex) { new Exceptions(ex, "clone"); return(ResultResponse.ExceptionResult(ex.Message)); } }
/// <summary> /// 克隆权限 /// </summary> /// <param name="para"></param> /// <returns></returns> public static IResultResponse CloneAuthority(SysParameter para) { IResultResponse resultResponse = OpsUtil.VerifyAccessToken(para); if (!resultResponse.Success) { return(resultResponse); } Sdk.AccessToken accessToken = resultResponse.Content as Sdk.AccessToken; try { var cloneAuthority = new ProductRelationBusiness(para.dapperFactory).CloneAuthority(accessToken.Id, accessToken.UpConnectorId); DataTable dt = new CloneResultBusiness(para.dapperFactory).GetCloneData(accessToken); if (dt == null || dt.Rows.Count == 0) { return(ResultResponse.GetSuccessResult(1)); } int status = Utils.ToInt(dt.Rows[0]["Status"]); if (cloneAuthority) { return(ResultResponse.GetSuccessResult(1)); } else { if (status == -1) { return(ResultResponse.ExceptionResult("清除克隆失败数据")); } else { return(ResultResponse.ExceptionResult("清除克隆成功数据")); } } } catch (Exception ex) { new Exceptions(ex, "clone"); return(ResultResponse.ExceptionResult(ex.Message)); } }
/// <summary> /// 获得下游列表 /// </summary> /// <param name="para"></param> /// <returns></returns> public static IResultResponse GetDownList(SysParameter para) { IResultResponse resultResponse = OpsUtil.VerifyAccessToken(para); if (!resultResponse.Success) { return(resultResponse); } Sdk.AccessToken accessToken = resultResponse.Content as Sdk.AccessToken; try { DataTable dt = new ConnectorBusiness(para.dapperFactory).GetDownList(accessToken.Id); return(ResultResponse.GetSuccessResult(dt)); } catch (Exception ex) { return(ResultResponse.ExceptionResult(ex, 500)); } }