コード例 #1
0
        /// <summary>
        /// 修改初赛时间和半决赛触发时间
        /// </summary>
        /// <param name="preliminaries_date">初赛同步时间</param>
        /// <param name="semifinals_date">决赛同步时间</param>
        /// <returns></returns>
        public ApiResult UpdateCompetitonDate(DateTime?preliminaries_date, DateTime?semifinals_date)
        {
            ApiResult            apiResult      = new ApiResult();
            BaseBLL <job_detail> job_detail_bll = new BaseBLL <job_detail>();

            //修改初赛
            if (Util.isNotNull(preliminaries_date))
            {
                var job_detail = job_detail_bll.Find(o => o.job_name.Contains("preliminaries_"));
                if (job_detail?.id > 0)
                {
                    job_detail.status     = "MODIFY";
                    job_detail.job_name   = "preliminaries_" + sys.getRandomStr();
                    job_detail.start_time = preliminaries_date.Value.Date;
                    job_detail.end_time   = preliminaries_date.Value.AddDays(1).Date;
                    job_detail_bll.Update(job_detail);
                }
                else
                {
                    LogHelper.Error("修改初赛时间错误:" + DateTime.Now);
                    return(new ApiResult()
                    {
                        success = false,
                        message = "修改初赛时间错误"
                    });
                }
            }

            //修改半决赛
            if (Util.isNotNull(semifinals_date))
            {
                var job_detail = job_detail_bll.Find(o => o.job_name.Contains("semifinals_"));
                if (job_detail?.id > 0)
                {
                    job_detail.status     = "MODIFY";
                    job_detail.job_name   = "semifinals_" + sys.getRandomStr();
                    job_detail.start_time = semifinals_date.Value.Date;            //开始时间
                    job_detail.end_time   = semifinals_date.Value.AddDays(1).Date; //结束时间
                    job_detail_bll.Update(job_detail);
                }
                else
                {
                    LogHelper.Error("修改半决赛时间错误:" + DateTime.Now);
                    return(new ApiResult()
                    {
                        success = false,
                        message = "修改半决赛时间错误"
                    });
                }
            }
            apiResult.success = true;
            apiResult.message = "修改成功";
            return(apiResult);
        }
コード例 #2
0
        public virtual ActionResult GetGridJsonEmptyIfNull(string keyword, string searchFiled, string sortFiled = " F_SortCode ")
        {
            if (keyword == null)
            {
                return(Content("[]"));
            }
            SearchCondition condition = new SearchCondition();
            var             data      = baseBLL.Find(GetKeywordCondition(keyword, searchFiled), " ORDER BY " + sortFiled);

            return(Content(JsonAppHelper.ToJson(data)));
        }
コード例 #3
0
        /// <summary>
        /// 根据条件查询数据库,并返回对象集合
        /// </summary>
        /// <param name="condition">查询的条件</param>
        /// <returns>指定对象的集合</returns>
        public virtual ActionResult Find(string condition)
        {
            //检查用户是否有权限,否则抛出MyDenyAccessException异常
            base.CheckAuthorized(AuthorizeKey.ListKey);

            ActionResult result = Content("");

            if (!string.IsNullOrEmpty(condition))
            {
                List <T> list = baseBLL.Find(condition);
                result = ToJsonContentDate(list);
            }
            return(result);
        }
コード例 #4
0
        public ActionResult AddArticalCi([FromBody] string content)
        {
            BaseBLL <artilce_sensitive_vocabulary> bll = new BaseBLL <artilce_sensitive_vocabulary>();

            string[] array = content.Split(' ');
            foreach (string ci in array)
            {
                if (Util.isNotNull(ci))
                {
                    var vocabulary = bll.Find(o => o.vocabulary == ci);
                    if (vocabulary?.artilce_sensitive_vocabulary_id > 0)
                    {
                        continue;
                    }
                    bll.Add(new artilce_sensitive_vocabulary()
                    {
                        vocabulary  = ci,
                        create_time = DateTime.Now
                    });
                }
            }
            return(new JsonResult()
            {
                Data = "上传完成"
            });
        }
コード例 #5
0
        /// <summary>
        /// 组织发送模板消息内容
        /// </summary>
        /// <param name="weixinApplet">小程序信息</param>
        /// <param name="templateCode">模板编码</param>
        /// <param name="openid">用户openid</param>
        /// <param name="form_id">表单id或支付prepay_id</param>
        /// <param name="data">发送数据,不同内容用;分隔</param>
        /// <param name="path">跳转路径</param>
        /// <returns></returns>
        public static string sendWeixinTemplate(weixin_applet weixinApplet, string templateCode, string openid, string form_id, string data, string path)
        {
            BaseBLL <weixin_applet_template> templateBll    = new BaseBLL <weixin_applet_template>();
            weixin_applet_template           appletTemplate = templateBll.Find(x => x.template_code == templateCode && x.weixin_applet_id == weixinApplet.id);

            //组织发送的数据
            string[] valueArray = data.Split(';');
            JObject  jobject    = JObject.Parse("{}");

            for (int i = 0; i < valueArray.Length; i++)
            {
                JObject subObject = new JObject(
                    new JProperty("value", valueArray[i]),
                    new JProperty("color", "#333")
                    );
                jobject.Add("keyword" + (i + 1), subObject);
            }

            WeixinXAPI weixinXApi = new WeixinXAPI(weixinApplet.appid, weixinApplet.secret, weixinApplet.access_token, weixinApplet.access_token_time.ToString(), weixinApplet.id);
            JObject    postData   = JObject.Parse("{}");

            postData.Add("touser", openid);
            postData.Add("template_id", appletTemplate.template_id);
            postData.Add("page", path);
            postData.Add("form_id", form_id);
            postData.Add("data", jobject);
            return(weixinXApi.sendTemplate(postData.ToString()));
        }
コード例 #6
0
        /// <summary>
        /// 删除大赛公告
        /// </summary>
        /// <param name="competition_season_id"></param>
        /// <returns></returns>
        public ApiResult DelNotice(int competition_season_id)
        {
            ApiResult apiResult   = new ApiResult();
            var       checkResult = Util.CheckParameters(
                new Parameter {
                Value = competition_season_id.ToString(), Msg = "competition_season_id 不能为空值"
            },
                new Parameter {
                Value = competition_season_id.ToString(), Msg = "competition_season_id 必须是数字类型", Regex = @"^[1-9]\d*$"
            }
                );

            if (!checkResult.OK)
            {
                apiResult.success = false;
                apiResult.status  = ApiStatusCode.InvalidParam;
                apiResult.message = checkResult.Msg;
                return(apiResult);
            }
            BaseBLL <competition_notice> bll = new BaseBLL <competition_notice>();
            var notice = bll.Find(o => o.competition_season_id == competition_season_id && o.is_delete == 0);

            if (notice?.competition_season_id > 0)
            {
                bool result = bll.Delete(notice);
                apiResult.success = result;
                apiResult.message = result?"删除成功":"删除失败";
            }
            else
            {
                apiResult.success = false;
                apiResult.message = "数据不存在";
            }
            return(apiResult);
        }
コード例 #7
0
        /// <summary>
        /// 根据id获取大赛公告
        /// </summary>
        /// <param name="competition_season_id">公告id</param>
        /// <returns></returns>
        public ApiResult GetNoticeById(int competition_season_id)
        {
            ApiResult apiResult   = new ApiResult();
            var       checkResult = Util.CheckParameters(
                new Parameter {
                Value = competition_season_id.ToString(), Msg = "competition_season_id 不能为空值"
            },
                new Parameter {
                Value = competition_season_id.ToString(), Msg = "competition_season_id 必须是数字类型", Regex = @"^[1-9]\d*$"
            }
                );

            if (!checkResult.OK)
            {
                apiResult.success = false;
                apiResult.status  = ApiStatusCode.InvalidParam;
                apiResult.message = checkResult.Msg;
                return(apiResult);
            }
            BaseBLL <competition_notice> bll = new BaseBLL <competition_notice>();
            var notice = bll.Find(o => o.competition_season_id == competition_season_id && o.is_delete == 0 && o.is_open == 1);

            if (notice?.competition_season_id > 0)
            {
                apiResult.success = true;
                apiResult.message = "获取成功";
                apiResult.data    = notice;
            }
            else
            {
                apiResult.success = false;
                apiResult.message = "数据不存在";
            }
            return(apiResult);
        }
コード例 #8
0
        /// <summary>
        /// 半决赛数据自动评选
        /// </summary>
        /// <returns></returns>
        public ApiResult UpdateSemifinalsData()
        {
            ApiResult apiResult = new ApiResult();
            //开启的赛区
            BaseBLL <competition_notice> notice_bll = new BaseBLL <competition_notice>();
            var notice = notice_bll.Find(o => o.is_delete == 0 && o.is_open == 1);

            if (notice?.competition_season_id > 0)
            {
                if (Util.isNotNull(notice.semifinals_end_date))
                {
                    //时间是否是今天
                    if (notice.semifinals_end_date.Date == DateTime.Now.Date)
                    {
                        //找出前几百名作品,更新作品状态(必须是审核通过的)
                        ArticleBLL bll = new ArticleBLL();
                        apiResult = bll.GetSemifinalsAndUpdate(notice.competition_season_id, 200);
                        LogHelper.Info("同步更新半决赛作品时间:" + DateTime.Now + ",结果:" + Newtonsoft.Json.JsonConvert.SerializeObject(apiResult));
                    }
                }
                else
                {
                    LogHelper.Error(DateTime.Now + ":半决赛数据自动评选,没有找到半决赛结束时间");
                    apiResult.success = false;
                    apiResult.message = "没有找到半决赛结束时间";
                }
            }
            else
            {
                LogHelper.Error(DateTime.Now + ":初赛数据自动评选,没有找到开启的赛季");
                apiResult.success = false;
                apiResult.message = "没有找到开启的赛季";
            }
            return(apiResult);
        }
コード例 #9
0
ファイル: WeixinXAPI.cs プロジェクト: zhaoshangtong/zhiyin
    public WeixinXAPI(string _appid, string _appsecret, string _access_token, string _access_token_time)
    {
        rootSuccess     = true;
        AppId           = _appid;
        AppSecret       = _appsecret;
        AccessToken     = _access_token;
        AccessTokenTime = _access_token_time;


        //检查授权有效期,如果凭证为空,或者已失效,则需要请求授权
        DateTime time = DateTime.Now;

        if (!string.IsNullOrEmpty(_access_token_time))
        {
            time = DateTime.Parse(_access_token_time);
        }

        int comtime = (int)time.Subtract(DateTime.Now).TotalMinutes;

        //凭证在5分钟以内将失效,则重新获取凭证
        if (comtime < 5)
        {
            string s = Util.MethodGET("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + AppId + "&secret=" + AppSecret, "UTF-8");
            try
            {
                JObject jo = JObject.Parse(s);
                AccessToken     = jo["access_token"].ToString();
                AccessTokenTime = System.DateTime.Now.AddSeconds(double.Parse(jo["expires_in"].ToString())).ToString();

                //将获取的最新 AccessToken 保存到数据库中
                BaseBLL <weixin_applet> baseBLL = new BaseBLL <weixin_applet>();
                var weixin_applet = baseBLL.Find(x => x.appid == AppId && x.secret == AppSecret);
                if (weixin_applet != null)
                {
                    weixin_applet.access_token      = AccessToken;
                    weixin_applet.access_token_time = Convert.ToDateTime(AccessTokenTime);
                    baseBLL.Update(weixin_applet);
                }
            }
            catch (Exception e)
            {
                rootSuccess = false;
                rootErrMsg  = e.Message;
            }
            resource = s;
        }
    }
コード例 #10
0
        /// <summary>
        /// 扫码登陆请求(前端生成二维码)
        /// </summary>
        public ApiResult ScanLoginByJs()
        {
            ApiResult             apiResult = new ApiResult();
            BaseBLL <weixin_open> bll       = new BaseBLL <weixin_open>();
            var    weixin_open = bll.Find(o => o.appid != null && o.secret != null);
            string appid       = weixin_open.appid;
            string secret      = weixin_open.secret;
            string state       = sys.getRandomCode(16);

            //使用session存state
            //HttpContext.Current.Session["session_weixin_login_state"] = state;
            //CookieHelper.SetCookie("cookie_weixin_login_state", state);
            apiResult.success = true;
            apiResult.message = "";
            apiResult.data    = new { appid, state };
            return(apiResult);
        }
コード例 #11
0
        /// <summary>
        /// 导出比赛记录
        /// </summary>
        /// <param name="article_state">2:初赛,3是半决赛,4是决赛</param>
        /// <returns></returns>
        public ApiResult ExportCompetitionRecord(int article_state = 2)
        {
            ApiResult apiResult = new ApiResult();
            //赛季
            BaseBLL <competition_notice> notice_bll = new BaseBLL <competition_notice>();
            var notice = notice_bll.Find(o => o.is_delete == 0 && o.is_open == 1);

            if (notice?.competition_season_id > 0)
            {
                CompetitionBLL bll = new CompetitionBLL();
                var            dt  = bll.GetAllArticle(article_state, notice.competition_season_id);
                //导出excel
                string folder = HttpContext.Current.Server.MapPath("/download/");
                if (!Directory.Exists(folder))
                {
                    Directory.CreateDirectory(folder);
                }
                string excel_file = folder + sys.getRandomStr() + ".xls";
                Rays.Utility.NPOIHelper.GridToExcelByNPOI(dt, excel_file, "导出结果");
                if (File.Exists(excel_file))
                {
                    string file = Util.UploadFileToServices(excel_file);
                    apiResult.success = true;
                    apiResult.message = "导出成功";
                    apiResult.data    = file;
                }
                else
                {
                    return(new ApiResult()
                    {
                        success = false,
                        message = "导出失败"
                    });
                }
            }
            else
            {
                return(new ApiPageResult()
                {
                    success = false,
                    message = "当前没有开启的赛季"
                });
            }
            return(apiResult);
        }
コード例 #12
0
        /// <summary>
        /// 获取个人信息
        /// </summary>
        /// <param name="uid"></param>
        /// <returns></returns>

        public ApiResult GetUserInfo(int uid)
        {
            ApiResult             apiResult = new ApiResult();
            BaseBLL <author_info> info_bll  = new BaseBLL <author_info>();
            var author_info = info_bll.Find(o => o.uid == uid);

            if (author_info?.author_info_id > 0)
            {
                apiResult.success = true;
                apiResult.message = "获取个人信息";
                apiResult.data    = author_info;
            }
            else
            {
                apiResult.success = false;
                apiResult.message = "未获取个人信息";
            }
            return(apiResult);
        }
コード例 #13
0
        /// <summary>
        /// 按照 id 获取通知
        /// </summary>
        /// <param name="notice_id">通知 id</param>
        /// <returns></returns>
        public ApiResult GetNoticeById(int notice_id)
        {
            ApiResult             apiResult = new ApiResult();
            BaseBLL <user_notice> bll       = new BaseBLL <user_notice>();
            var notice = bll.Find(n => n.notice_id == notice_id);

            if (notice == null)
            {
                apiResult.success = false;
                apiResult.message = "该通知不存在";
                return(apiResult);
            }
            else
            {
                apiResult.success = true;
                apiResult.data    = notice;
                return(apiResult);
            }
        }
コード例 #14
0
        /// <summary>
        /// 获取作品列表(小程序,必须是审核过的)
        /// </summary>
        /// <param name="uid">赛区id</param>
        /// <param name="zone_id">赛区id</param>
        /// <param name="keyword">作品编号/标题/作者</param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <returns></returns>
        public ApiPageResult GetArticleList(int uid, int zone_id = 0, string keyword = null, int pageIndex = GloabManager.PAGEINDEX, int pageSize = GloabManager.PAGESIZE)
        {
            ApiPageResult apiResult   = new ApiPageResult();
            var           checkResult = Util.CheckParameters(
                new Parameter {
                Value = uid.ToString(), Msg = "uid 不能为空值"
            },
                new Parameter {
                Value = uid.ToString(), Msg = "uid 必须是数字类型", Regex = @"^[1-9]\d*$"
            },
                new Parameter {
                Value = zone_id.ToString(), Msg = "zone_id 不能为空值"
            },
                new Parameter {
                Value = zone_id.ToString(), Msg = "zone_id 必须是数字类型", Regex = @"^[0-9]\d*$"
            }
                );

            if (!checkResult.OK)
            {
                apiResult.success = false;
                apiResult.status  = ApiStatusCode.InvalidParam;
                apiResult.message = checkResult.Msg;
                return(apiResult);
            }
            //查到当前默认开启的赛季
            BaseBLL <competition_notice> notice_bll = new BaseBLL <competition_notice>();
            var competion_season        = notice_bll.Find(o => o.is_delete == 0 && o.is_open == 1);
            int competiontion_season_id = competion_season?.competition_season_id ?? 0;

            if (competiontion_season_id == 0)
            {
                return(new ApiPageResult()
                {
                    success = false,
                    message = "当前没有开启任何赛季"
                });
            }
            ArticleBLL bll = new ArticleBLL();

            return(bll.GetArticleList(uid, zone_id, competiontion_season_id, keyword, pageIndex, pageSize));
        }
コード例 #15
0
        /// <summary>
        /// 我的作品(默认当前开启的赛季的作品)
        /// </summary>
        /// <param name="uid"></param>
        /// <param name="img_count">取几个头像</param>
        /// <param name="competiontion_season_id">赛季id,没有就不传</param>
        /// <returns></returns>
        public ApiResult GetMyArticle(int uid, int img_count = 4, int competiontion_season_id = 0)
        {
            ApiResult apiResult = new ApiResult();
            //查到当前默认开启的赛季
            BaseBLL <competition_notice> notice_bll = new BaseBLL <competition_notice>();
            var competion_season = notice_bll.Find(o => o.is_delete == 0 && o.is_open == 1);

            competiontion_season_id = competion_season?.competition_season_id ?? 0;
            if (competiontion_season_id == 0)
            {
                return(new ApiResult()
                {
                    success = false,
                    message = "当前没有开启任何赛季"
                });
            }
            UsersBLL bll = new UsersBLL();

            return(bll.GetMyArticle(uid, img_count, competiontion_season_id));
        }
コード例 #16
0
        /// <summary>
        /// 作品管理查询
        /// </summary>
        /// <param name="keyword">查询的关键字:作品编号/标题/作者</param>
        /// <param name="state">-1全部,0初始,1审核不通过,2审核通过,3半决赛,4决赛</param>
        /// <param name="zone_id">0全部</param>
        /// <param name="start">开始时间</param>
        /// <param name="end">结束时间</param>
        /// <param name="orderby">排序字段:vote按票数顺序排,votedesc按票数倒叙排,date按投稿时间顺序排,datedesc按投稿时间倒叙排</param>
        /// <param name="pageIndex">1</param>
        /// <param name="pageSize">10</param>
        /// <returns></returns>
        public ApiPageResult GetArticleList(string keyword = null, int state = -1, int zone_id = 0, DateTime?start = null, DateTime?end = null, string orderby = null, int pageIndex = GloabManager.PAGEINDEX, int pageSize = GloabManager.PAGESIZE)
        {
            ApiPageResult apiResult = new ApiPageResult();
            //赛季
            BaseBLL <competition_notice> notice_bll = new BaseBLL <competition_notice>();
            var notice = notice_bll.Find(o => o.is_delete == 0 && o.is_open == 1);

            if (notice?.competition_season_id > 0)
            {
                CompetitionBLL bll = new CompetitionBLL();
                return(bll.GetArticleList(keyword, state, notice.competition_season_id, zone_id, start, end, orderby, pageIndex, pageSize));
            }
            else
            {
                return(new ApiPageResult()
                {
                    success = false,
                    message = "当前没有开启的赛季"
                });
            }
        }
コード例 #17
0
        /// <summary>
        /// 按照 id 删除通知
        /// </summary>
        /// <param name="notice_id">通知的 id</param>
        /// <returns></returns>
        public ApiResult DelNotice(int notice_id)
        {
            ApiResult apiResult = new ApiResult();

            BaseBLL <user_notice> bll = new BaseBLL <user_notice>();
            var notice = bll.Find(n => n.notice_id == notice_id);

            if (notice == null)
            {
                apiResult.success = false;
                apiResult.message = "不存在该通知";
                return(apiResult);
            }
            else
            {
                var success = bll.Delete(notice);
                apiResult.success = success;
                apiResult.message = success ? "成功" : "删除失败";
            }
            return(apiResult);
        }
コード例 #18
0
        /// <summary>
        /// 作品打分
        /// </summary>
        /// <param name="article_id"></param>
        /// <param name="score">分数</param>
        /// <param name="name">专家名字</param>
        /// <param name="sign">0是编辑,1是专家</param>
        /// <returns></returns>
        public ApiResult AddScore(int article_id, double score, string name, int sign = 0)
        {
            ApiResult apiResult = new ApiResult();
            BaseBLL <article_states> state_bll = new BaseBLL <article_states>();
            var article_states = state_bll.Find(o => o.article_id == article_id);

            if (article_states == null)
            {
                return(new ApiResult()
                {
                    success = false,
                    message = "数据不存在"
                });
            }
            if (sign == 0)
            {
                article_states.adviser_score = score;
                article_states.update_time   = DateTime.Now;
                state_bll.Update(article_states);
            }
            else if (sign == 1)
            {
                article_states.expert_name  = name;
                article_states.expert_score = score;
                article_states.update_time  = DateTime.Now;
                state_bll.Update(article_states);
            }
            else
            {
                return(new ApiResult()
                {
                    success = true,
                    message = "参数错误"
                });
            }
            apiResult.success = true;
            apiResult.message = "打分成功";
            return(apiResult);
        }
コード例 #19
0
        public void ScanLogin()
        {
            BaseBLL <weixin_open> bll = new BaseBLL <weixin_open>();
            var    weixin_open        = bll.Find(o => o.appid != null && o.secret != null);
            string appid        = weixin_open.appid;
            string secret       = weixin_open.secret;
            string server       = Util.getServerPath();
            string redirect_uri = System.Web.HttpUtility.UrlEncode("http://tg.zhiyin.cn/");

            LogHelper.Info("redirect_uri:" + redirect_uri);
            string state = sys.getRandomCode(16);
            ////缓存state
            //HttpContext.Current.Session["weixin_login_state"] = state;
            WeixinOpenAPI api = new WeixinOpenAPI(appid, secret);

            LogHelper.Info(api.GetCode("登陆的code:" + redirect_uri, state));
            string result = api.GetCode(redirect_uri, state);

            result = result.Replace("/connect/qrcode/", "https://open.weixin.qq.com/connect/qrcode/");
            HttpContext.Current.Response.Write(result);
            HttpContext.Current.Response.End();
        }
コード例 #20
0
        /// <summary>
        /// 获取现在是属于初赛还是半决赛还是决赛
        /// </summary>
        /// <returns></returns>
        public ApiResult GetGetCompetition()
        {
            ApiResult apiResult = new ApiResult();
            BaseBLL <competition_notice> competition_season_bll = new BaseBLL <competition_notice>();
            var competition_season = competition_season_bll.Find(o => o.is_delete == 0 && o.is_open == 1);

            if (competition_season?.competition_season_id > 0)
            {
                DateTime now = DateTime.Now.Date;
                if (now <= competition_season.preliminaries_end_date)
                {
                    apiResult.data = "初赛";
                }
                else if (now >= competition_season.semifinals_start_date && now <= competition_season.semifinals_end_date)
                {
                    apiResult.data = "半决赛";
                }
                else if (now >= competition_season.final_start_date)
                {
                    apiResult.data = "决赛";
                }
                else
                {
                    apiResult.data = "初赛";
                }
            }
            else
            {
                return(new ApiResult()
                {
                    success = false,
                    message = "当前没有赛季"
                });
            }
            apiResult.success = true;
            apiResult.message = "获取现在是属于初赛还是半决赛还是决赛";
            return(apiResult);
        }
コード例 #21
0
        /// <summary>
        /// 生成公众号带参数的二维码
        /// </summary>
        /// <param name="appid"></param>
        /// <param name="secret"></param>
        /// <param name="path"></param>
        /// <returns></returns>
        public static string CreateWeixinCode(string appid, string secret, string path)
        {
            BaseBLL <weixin> weixin_bll = new BaseBLL <weixin>();
            var weixin = weixin_bll.Find(o => o.appid == appid && o.appsecret == secret);

            if (weixin == null)
            {
                return(null);
            }
            string    access_token_time = Util.isNotNull(weixin.access_token_time) ? weixin.access_token_time.ToString() : "";
            WeixinAPI api       = new WeixinAPI(weixin.appid, weixin.appsecret, weixin.access_token, access_token_time);
            string    url       = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=" + api.AccessToken;
            string    post_data = Newtonsoft.Json.JsonConvert.SerializeObject(new { expire_seconds = 604800, action_name = "QR_STR_SCENE", action_info = new { scene = new { scene_str = path } } });
            string    result    = HttpHelper.HttpPost(url, post_data);
            JObject   obj       = JObject.Parse(result);

            if (Util.isNotNull(obj["url"]) && Util.isNotNull(obj["ticket"]))
            {
                string ticket = obj["ticket"].ToString();
                return(api.GetWeixinCode(ticket));
            }
            return(null);
        }
コード例 #22
0
        public ApiResult AdviserLoginIn()
        {
            string    user_name   = HttpContext.Current.Request.Form["user_name"];
            string    password    = HttpContext.Current.Request.Form["password"];
            ApiResult apiResult   = new ApiResult();
            var       checkResult = Util.CheckParameters(
                new Parameter {
                Value = user_name, Msg = "user_name 不能为空值"
            },
                new Parameter {
                Value = password, Msg = "password 不能为空值"
            }
                );

            if (!checkResult.OK)
            {
                apiResult.success = false;
                apiResult.status  = ApiStatusCode.InvalidParam;
                apiResult.message = checkResult.Msg;
                return(apiResult);
            }
            BaseBLL <adviser> bll = new BaseBLL <adviser>();
            var adviser           = bll.Find(o => o.user_name == user_name && o.password == password);

            if (adviser?.adviser_id > 0)
            {
                apiResult.success = true;
                apiResult.message = "登陆成功";
                apiResult.data    = adviser;
            }
            else
            {
                apiResult.success = false;
                apiResult.message = "登陆失败";
            }
            return(apiResult);
        }
コード例 #23
0
        /// <summary>
        /// 录入个人信息
        /// </summary>
        /// <param name="data">
        /// {"author_info_id":0,"uid":1,"user_name":"xxx","sex":"男","area":"xxx","school":"xxxx","grade":"一年级","age":9,"phone":"1234567","teacher":"xxx","idcard":"2424242424242424242424242424"}
        /// </param>
        /// <returns></returns>
        public ApiResult AddUserInfo(dynamic data)
        {
            ApiResult apiResult = new ApiResult();

            LogHelper.Info("录入个人信息data:" + data);
            if (Util.isNotNull(data))
            {
                LogHelper.Info("录入个人信息data:" + Newtonsoft.Json.JsonConvert.SerializeObject(data));
                string json = Newtonsoft.Json.JsonConvert.SerializeObject(data);
                var    user = Newtonsoft.Json.JsonConvert.DeserializeObject <author_info>(json);
                if (user == null || user.uid == 0)
                {
                    return(new ApiResult()
                    {
                        success = false,
                        message = "参数错误"
                    });
                }
                string idcrad = user?.idcard;
                if (Util.isNull(idcrad) || !System.Text.RegularExpressions.Regex.IsMatch(user.idcard, @"(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)"))
                {
                    return(new ApiResult()
                    {
                        success = false,
                        message = "身份证输入不合法"
                    });
                }
                BaseBLL <author_info> bll = new BaseBLL <author_info>();
                if (user.author_info_id > 0)
                {
                    var _user = bll.Find(o => o.author_info_id == user.author_info_id);
                    if (_user?.author_info_id > 0)
                    {
                        user.update_time = DateTime.Now;
                        user.create_time = _user.create_time;
                        user.uid         = _user.uid;
                        bll.Update(user);
                    }
                    else
                    {
                        return(new ApiResult()
                        {
                            success = false,
                            message = "修改失败"
                        });
                    }
                }
                else
                {
                    user.create_time = DateTime.Now;
                    user.update_time = DateTime.Now;
                    bll.Add(user);
                }
                apiResult.success = true;
                apiResult.message = "成功";
            }
            else
            {
                apiResult.success = false;
                apiResult.message = "参数错误";
            }

            return(apiResult);
        }
コード例 #24
0
        public ApiResult WeixinLogin(dynamic data)
        {
            ApiResult apiResult   = new ApiResult();
            var       checkResult = Util.CheckParameters(
                new Parameter {
                Value = data?.code, Msg = "code不能为空"
            },
                new Parameter {
                Value = data?.userinfo.ToString(), Msg = "userInfo不能为空"
            },
                new Parameter {
                Value = data?.appcode, Msg = "appcode不能为空!"
            }
                );

            if (!checkResult.OK)
            {
                apiResult.success = false;
                apiResult.status  = ApiStatusCode.InvalidParam;
                apiResult.message = checkResult.Msg;
                return(apiResult);
            }

            try
            {
                //根据code查找APPID与Secret,获取微信session、openid和unionid
                string appcode = data.appcode.ToString();
                BaseBLL <weixin_applet> weixinAppletBll = new BaseBLL <weixin_applet>();
                weixin_applet           weixinApplet    = weixinAppletBll.Find(x => x.appcode == appcode);
                WeixinXAPI weixinxapi   = new WeixinXAPI(weixinApplet.appid, weixinApplet.secret);
                string     str          = weixinxapi.codeToSession(data.code.ToString());
                JObject    session_json = JObject.Parse(str);
                if (session_json["errcode"].To <string>().IsNotNullAndEmpty())
                {
                    apiResult.success = false;
                    apiResult.status  = ApiStatusCode.NotFound;
                    apiResult.message = str;
                    return(apiResult);
                }
                string openid      = session_json["openid"].ToString();
                string session_key = session_json["session_key"].ToString();
                string unionid     = session_json["unionid"].To <string>();
                if (StringHelper.IsNullOrEmpty(unionid) && !StringHelper.IsNullOrEmpty(data?.encryptedData) && !StringHelper.IsNullOrEmpty(data?.iv))
                {
                    string  info         = DEncrypt.XCXDecrypt(data?.encryptedData.ToString(), session_key, data?.iv.ToString());
                    JObject userInfoJson = JObject.Parse(info);
                    unionid = userInfoJson["unionId"].To <string>();
                }

                weixin_user userInfo = new weixin_user
                {
                    openid           = openid,
                    unionid          = unionid,
                    nickname         = data.userinfo["nickName"],
                    sex              = data.userinfo["gender"],
                    language         = data.userinfo["language"],
                    city             = data.userinfo["city"],
                    province         = data.userinfo["province"],
                    country          = data.userinfo["country"],
                    headimgurl       = data.userinfo["avatarUrl"],
                    source_code      = appcode,
                    weixin_applet_id = weixinApplet.id
                };

                if (Util.isNotNull(userInfo.unionid))
                {
                    //查询当前openid的用户是否存在
                    //如果不存在则要创建,创建时,先创建 iuser ,再创建 weixin_user
                    BaseBLL <weixin_user> weixinUserBll = new BaseBLL <weixin_user>();
                    var  weixinUser  = weixinUserBll.Find(x => x.unionid == unionid);
                    bool first_login = false;
                    //可能是第一次登陆,在网页端登陆
                    if (weixinUser == null)
                    {
                        //微信开发平台的openid与小程序的openid不一致
                        first_login = true;
                        //先存iuser
                        var             iuser    = new iuser();
                        BaseBLL <iuser> iuserBll = new BaseBLL <iuser>();
                        iuser.random     = sys.getRandomStr();
                        iuser.createtime = DateTime.Now;
                        iuser.updatetime = DateTime.Now;
                        iuser            = iuserBll.Add(iuser);
                        //再存weixin_user
                        userInfo.uid            = iuser.id;
                        userInfo.sub_time       = DateTime.Now;
                        userInfo.first_sub_time = DateTime.Now;
                        LogHelper.Info("first_login:"******",userInfo:" + Newtonsoft.Json.JsonConvert.SerializeObject(userInfo));
                        weixinUser = weixinUserBll.Add(userInfo);
                    }
                    else
                    {
                        weixinUser.nickname   = userInfo.nickname;
                        weixinUser.headimgurl = userInfo.headimgurl;
                        LogHelper.Info("first_login:"******",userInfo:" + Newtonsoft.Json.JsonConvert.SerializeObject(userInfo));
                        weixinUserBll.Update(weixinUser);
                    }

                    apiResult.success = true;
                    apiResult.data    = new { first_login = first_login, weixinUser = weixinUser };
                    apiResult.status  = ApiStatusCode.OK;
                }
                else
                {
                    return(new ApiResult()
                    {
                        success = false,
                        message = "unionid不能为空,小程序必须绑定开放平台"
                    });
                }
            }
            catch (Exception ex)
            {
                LogHelper.Error(ex.Message, ex);
                apiResult.success = false;
                apiResult.status  = ApiStatusCode.Error;
            }

            return(apiResult);
        }
コード例 #25
0
        /// <summary>
        /// 上传作品(一个赛季/一个人只能有一份作品)(必须在作品征集时间段内上传)
        /// formdata:"article_id":0,"article_title":"xxxx","uid":1,"","article_content":"xxxxx","article_pic":"图片","zone_id"(赛区):1,"competiontion_season_id"(赛季):1
        /// </summary>
        /// <returns></returns>

        public ApiResult UploadArticle()
        {
            ApiResult apiResult = new ApiResult();

            #region 参数检测
            //var pic = System.Web.HttpContext.Current.Request.Files[0];
            var    _article_pic             = System.Web.HttpContext.Current.Request.Form["article_pic"];
            string _article_id              = System.Web.HttpContext.Current.Request.Form["article_id"];
            string _article_title           = System.Web.HttpContext.Current.Request.Form["article_title"];
            string _uid                     = System.Web.HttpContext.Current.Request.Form["uid"];
            string _article_content         = System.Web.HttpContext.Current.Request.Form["article_content"];
            string _zone_id                 = System.Web.HttpContext.Current.Request.Form["zone_id"];
            string _competiontion_season_id = System.Web.HttpContext.Current.Request.Form["competiontion_season_id"];
            LogHelper.Info("zone_id:" + _zone_id);
            //一个赛季,一个作者,只能有一份作品
            var checkResult = Util.CheckParameters(
                new Parameter {
                Value = _zone_id, Msg = "zone_id 不能为空值"
            },
                new Parameter {
                Value = _zone_id, Msg = "zone_id 必须是数字类型", Regex = @"^[1-9]\d*$"
            },
                new Parameter {
                Value = _uid, Msg = "uid 不能为空值"
            },
                new Parameter {
                Value = _uid, Msg = "uid 必须是数字类型", Regex = @"^[1-9]\d*$"
            },
                new Parameter {
                Value = _article_title, Msg = "article_title 不能为空值"
            },
                new Parameter {
                Value = _article_content, Msg = "article_content 不能为空值"
            }
                );
            if (!checkResult.OK)
            {
                apiResult.success = false;
                apiResult.status  = ApiStatusCode.InvalidParam;
                apiResult.message = checkResult.Msg;
                return(apiResult);
            }
            int uid        = int.Parse(_uid);
            int zone_id    = int.Parse(_zone_id);
            int article_id = int.Parse(_article_id);
            #endregion
            #region 赛季检查
            //开启的赛季
            int competiontion_season_id = 0;
            if (Util.isNotNull(_competiontion_season_id))
            {
                competiontion_season_id = int.Parse(_competiontion_season_id);
            }
            else
            {
                //查到当前默认开启的赛季
                BaseBLL <competition_notice> notice_bll = new BaseBLL <competition_notice>();
                var competion_season = notice_bll.Find(o => o.is_delete == 0 && o.is_open == 1);
                competiontion_season_id = competion_season?.competition_season_id ?? 0;
                //是否已过期
                if (competion_season.preliminaries_start_date > DateTime.Now.Date)
                {
                    return(new ApiResult()
                    {
                        success = false,
                        message = "大赛投稿时间还没开始"
                    });
                }
                if (competion_season.preliminaries_end_date < DateTime.Now.Date)
                {
                    return(new ApiResult()
                    {
                        success = false,
                        message = "大赛投稿已截止"
                    });
                }
            }
            if (competiontion_season_id == 0)
            {
                return(new ApiResult()
                {
                    success = false,
                    message = "当前没有开启任何赛季"
                });
            }
            #endregion
            ArticleBLL bll = new ArticleBLL();
            BaseBLL <article_states> state_bll   = new BaseBLL <article_states>();
            BaseBLL <articles>       article_bll = new BaseBLL <articles>();
            if (article_id > 0)
            {
                //判断状态是否可修改
                int article_state = state_bll.Find(o => o.article_id == article_id)?.article_state ?? 0;
                if (article_state > 1)
                {
                    return(new ApiResult()
                    {
                        success = false,
                        message = "当前状态不可修改"
                    });
                }
                #region 修改
                var article = article_bll.Find(o => o.article_id == article_id);
                if (article?.article_id > 0)
                {
                    //修改
                    article.article_pic     = _article_pic ?? "";
                    article.article_title   = _article_title;
                    article.article_content = _article_content;
                    article.create_time     = DateTime.Now;
                    article.update_time     = DateTime.Now;
                    if (article_bll.Update(article))
                    {
                        //关联表更新
                        BaseBLL <article_competition_season> article_season_bll = new BaseBLL <article_competition_season>();
                        var article_competition_season = article_season_bll.Find(o => o.article_id == article_id);
                        if (article_competition_season?.article_season_id > 0)
                        {
                            article_competition_season.zone_id = zone_id;
                            article_competition_season.competiontion_season_id = competiontion_season_id;
                            article_competition_season.update_time             = DateTime.Now;
                            article_season_bll.Update(article_competition_season);
                        }
                        //更新作品的状态
                        BaseBLL <article_states> states_bll = new BaseBLL <article_states>();
                        var article_states = states_bll.Find(o => o.article_id == article_id);
                        if (article_states?.article_id > 0)
                        {
                            article_states.article_state = 0;
                            article_states.return_remark = "";
                            article_states.return_tag    = "";
                            article_states.update_time   = DateTime.Now;
                            states_bll.Update(article_states);
                        }
                        apiResult.success = true;
                        apiResult.message = "修改成功";
                    }
                    else
                    {
                        apiResult.success = false;
                        apiResult.message = "修改失败";
                    }
                }
                else
                {
                    apiResult.success = false;
                    apiResult.message = "数据不存在";
                }
                #endregion
            }
            else
            {
                #region 新增

                //是否已存在
                if (bll.ExistUserArticle(uid, competiontion_season_id))
                {
                    return(new ApiResult()
                    {
                        success = false,
                        message = "您在当前赛季已经有一份作品了~"
                    });
                }

                articles article = new articles();
                //后台自动生成
                article.article_pic     = _article_pic ?? "";
                article.article_title   = _article_title;
                article.article_content = _article_content;
                article.create_time     = DateTime.Now;
                article.uid             = uid;
                article.update_time     = DateTime.Now;
                var result = article_bll.Add(article);
                if (result?.article_id > 0)
                {
                    //更新编号
                    apiResult = bll.UploadAritcleNo(result);
                    if (apiResult.success)
                    {
                        //更新关联表
                        BaseBLL <article_competition_season> article_season_bll = new BaseBLL <article_competition_season>();
                        article_season_bll.Add(new article_competition_season()
                        {
                            article_id = result.article_id,
                            zone_id    = zone_id,
                            competiontion_season_id = competiontion_season_id,
                            create_time             = DateTime.Now,
                            update_time             = DateTime.Now,
                        });
                        //更新状态表
                        state_bll.Add(new article_states()
                        {
                            article_id    = result.article_id,
                            article_state = 0,
                            create_time   = DateTime.Now,
                            update_time   = DateTime.Now,
                        });
                        apiResult.success = true;
                        apiResult.message = "保存成功";
                    }
                }
                else
                {
                    apiResult.success = false;
                    apiResult.message = "保存失败";
                }

                #endregion
            }
            return(apiResult);
        }
コード例 #26
0
        /// <summary>
        /// 添加通知
        /// </summary>
        /// <param name="data">
        /// {
        ///   "notice_id": 若大于零则为修改,小于零则为新增,
        ///   "title": 通知标题,
        ///   "content": 通知内容,
        ///   "logo": 通知的 logo,
        ///   "is_top": 0 不置顶,1 置顶,
        ///   "publish_time": 发布时间,在该时间后才能查询到该通知,若不设置,则为当前时间
        /// }
        /// </param>
        /// <returns></returns>
        public ApiResult AddNotice(dynamic data)
        {
            ApiResult apiResult = new ApiResult();

            if (Util.isNotNull(data))
            {
                string json               = Newtonsoft.Json.JsonConvert.SerializeObject(data);
                var    notice             = Newtonsoft.Json.JsonConvert.DeserializeObject <user_notice>(json);
                BaseBLL <user_notice> bll = new BaseBLL <user_notice>();
                if (notice?.notice_id > 0)
                {
                    //如果是置顶,应先将之前置顶的数据取消
                    if (notice.is_top == 1)
                    {
                        var is_top_notices = bll.FindList <int>(o => o.is_top == 1);
                        List <user_notice> is_top_notice_list = new List <user_notice>();
                        foreach (var _notice in is_top_notices)
                        {
                            _notice.is_top      = 0;
                            _notice.update_time = DateTime.Now;
                            is_top_notice_list.Add(_notice);
                        }
                        bll.UpdateMore(is_top_notice_list);
                    }
                    // 修改
                    var findNotice = bll.Find(n => n.notice_id == notice.notice_id);
                    if (findNotice == null)
                    {
                        apiResult.success = false;
                        apiResult.message = "不存在该通知";
                        return(apiResult);
                    }
                    notice.create_time = findNotice.create_time;
                    notice.update_time = DateTime.Now;
                    bll.Update(notice);
                }
                else if (Util.isNotNull(notice))
                {
                    //如果是置顶,应先将之前置顶的数据取消
                    if (notice.is_top == 1)
                    {
                        var is_top_notices = bll.FindList <int>(o => o.is_top == 1);
                        List <user_notice> is_top_notice_list = new List <user_notice>();
                        foreach (var _notice in is_top_notices)
                        {
                            _notice.is_top      = 0;
                            _notice.update_time = DateTime.Now;
                            is_top_notice_list.Add(_notice);
                        }
                        bll.UpdateMore(is_top_notice_list);
                    }
                    // 新增
                    if (!notice.publish_time.HasValue)
                    {
                        notice.publish_time = DateTime.Now;
                    }
                    notice.create_time = DateTime.Now;
                    notice.update_time = DateTime.Now;
                    bll.Add(notice);
                }
                else
                {
                    apiResult.success = false;
                    apiResult.message = "参数错误";
                    return(apiResult);
                }
            }
            else
            {
                apiResult.success = false;
                apiResult.message = "参数错误";
            }

            apiResult.success = true;
            apiResult.message = "成功";
            return(apiResult);
        }
コード例 #27
0
ファイル: BaseLocalService.cs プロジェクト: binCodeCW/IOT
 /// <summary>
 /// 根据条件查询数据库,并返回对象集合
 /// </summary>
 /// <param name="condition">查询的条件</param>
 /// <returns>指定对象的集合</returns>
 public virtual List <T> Find(string condition)
 {
     return(baseBLL.Find(condition));
 }
コード例 #28
0
        /// <summary>
        /// 回调函数
        /// </summary>
        /// <param name="code">请求微信返回的code</param>
        /// <param name="state">请求微信的参数state</param>
        /// <returns></returns>
        public ApiResult LoginReturn(string code, string state)
        {
            ApiResult apiResult = new ApiResult();

            LogHelper.Info("code:" + code + ",state:" + state);
            ////必须用cookie或者session
            //var session = HttpContext.Current.Session["session_weixin_login_state"];
            //string session_state = session == null ? "" : session.ToString();
            //string cookie_state = CookieHelper.GetCookieValue("cookie_weixin_login_state");
            //LogHelper.Info("session_state:" + session_state + ",cookie_state:" + cookie_state);
            //if (state == _state)
            //{
            BaseBLL <weixin_open> bll = new BaseBLL <weixin_open>();
            var    weixin_open        = bll.Find(o => o.appid != null && o.secret != null);
            string appid  = weixin_open.appid;
            string secret = weixin_open.secret;

            WeixinOpenAPI api = new WeixinOpenAPI(appid, secret);

            //string access_token = weixin_open.access_token;
            //string access_token_time = weixin_open.access_token_time == null ? "" : weixin_open.access_token_time.Value.ToString();

            api.GetAccessToken(code);
            LogHelper.Info("access_token:" + api.access_token);
            string user_json = api.GetUserInfo(api.openid);

            LogHelper.Info("user_json:" + user_json);
            JObject obj    = JObject.Parse(user_json);
            string  openid = obj["openid"] == null ? "" : obj["openid"].ToString();

            LogHelper.Info("openid:" + openid);
            BaseBLL <weixin_applet> weixinAppletBll = new BaseBLL <weixin_applet>();
            weixin_applet           weixinApplet    = weixinAppletBll.Find(x => x.appcode == "ZHIYIN");
            weixin_user             userInfo        = new weixin_user
            {
                openid           = obj["openid"] == null ? "" : obj["openid"].ToString(),
                unionid          = obj["unionid"] == null ? "" : obj["unionid"].ToString(),
                nickname         = obj["nickname"] == null ? "" : obj["nickname"].ToString(),
                sex              = obj["sex"] == null ? 0 : int.Parse(obj["sex"].ToString()),
                language         = obj["language"] == null ? "" : obj["language"].ToString(),
                city             = obj["city"] == null ? "" : obj["city"].ToString(),
                province         = obj["province"] == null ? "" : obj["province"].ToString(),
                country          = obj["country"] == null ? "" : obj["country"].ToString(),
                headimgurl       = obj["headimgurl"] == null ? "" : obj["headimgurl"].ToString(),
                source_code      = weixinApplet.appcode,
                weixin_applet_id = weixinApplet.id
            };

            if (!Util.isNotNull(openid))
            {
                return(new ApiResult()
                {
                    success = false,
                    message = "openid为空"
                });
            }
            #region 微信登陆,保存信息
            //如果不存在则要创建,创建时,先创建 iuser ,再创建 weixin_user
            bool first_login = false;
            BaseBLL <weixin_user> weixinUserBll = new BaseBLL <weixin_user>();
            if (Util.isNotNull(userInfo.unionid))
            {
                var weixinUser = weixinUserBll.Find(o => o.unionid == userInfo.unionid);
                //可能是第一次登陆,在网页端登陆
                if (weixinUser == null)
                {
                    //微信开发平台的openid与小程序的openid不一致
                    //var _weixin_user = weixinUserBll.Find(o => o.nickname == userInfo.nickname);
                    first_login = true;
                    //先存iuser
                    var             iuser    = new iuser();
                    BaseBLL <iuser> iuserBll = new BaseBLL <iuser>();
                    iuser.random     = sys.getRandomStr();
                    iuser.createtime = DateTime.Now;
                    iuser.updatetime = DateTime.Now;
                    iuser            = iuserBll.Add(iuser);
                    //再存weixin_user
                    userInfo.uid            = iuser.id;
                    userInfo.sub_time       = DateTime.Now;
                    userInfo.first_sub_time = DateTime.Now;
                    LogHelper.Info("first_login:"******",userInfo:" + Newtonsoft.Json.JsonConvert.SerializeObject(userInfo));
                    weixinUser = weixinUserBll.Add(userInfo);
                }
                else
                {
                    weixinUser.nickname   = userInfo.nickname;
                    weixinUser.headimgurl = userInfo.headimgurl;
                    LogHelper.Info("first_login:"******",userInfo:" + Newtonsoft.Json.JsonConvert.SerializeObject(userInfo));
                    weixinUserBll.Update(weixinUser);
                }

                apiResult.success = true;
                apiResult.data    = new { first_login = first_login, weixinUser = weixinUser };
                apiResult.status  = ApiStatusCode.OK;
            }
            else
            {
                return(new ApiResult()
                {
                    success = false,
                    message = "微信开发平台未获取到unionid"
                });
            }
            #endregion
            //}
            //else
            //{
            //    return new ApiResult()
            //    {
            //        success = false,
            //        message = "请求超时"
            //    };
            //}
            return(apiResult);
        }
コード例 #29
0
        /// <summary>
        ///  生成小程序码(圆形)
        /// </summary>
        /// <param name="path">地址</param>
        /// <param name="appcode">小程序标识</param>
        /// <returns></returns>
        public static string CreateCircleWxaCodeByPath(string path, string appcode)
        {
            string img_path = string.Empty;
            BaseBLL <weixin_applet> appBLL = new BaseBLL <weixin_applet>();
            weixin_applet           app    = appBLL.Find(x => x.appcode == appcode);
            string code_name = app.applet_name;
            string code_desc = $"{app.applet_name}小程序码";

            //1、进入首先记录调用情况
            //2、根据path去搜索,如果找到则返回没找到继续执行
            //3、生成小程序图片上传到服务器
            //4、存入数据库
            #region 记录调用情况
            BaseBLL <weixin_applet_log> logBLL = new BaseBLL <weixin_applet_log>();
            weixin_applet_log           log    = new weixin_applet_log();
            log.appcode     = appcode;
            log.title       = "后台生成小程序码WeiXinHelper.CreateCircleWxaCodeByPath";
            log.ip          = Util.GetUserIp();
            log.createtime  = DateTime.Now;
            log.request_url = System.Web.HttpContext.Current.Request.RawUrl;
            log.info        = $"接口参数为:path:{path},appcode:{appcode}";
            logBLL.Add(log);
            #endregion

            //2、根据path去搜索,如果找到则返回没找到继续执行
            BaseBLL <weixin_applet_code> appCodeBLL = new BaseBLL <weixin_applet_code>();
            weixin_applet_code           appletCode = appCodeBLL.Find(x => x.xcx_url == path && x.weixin_applet_id == app.id && x.code_type == 2);
            if (appletCode != null)
            {
                img_path = appletCode.img_path;
            }
            else
            {
                //3、生成小程序图片上传到服务器
                WeixinXAPI weixinApi = new WeixinXAPI(app.appid, app.secret, app.access_token,
                                                      app.access_token_time?.ToString() ?? "", app.id);
                if (weixinApi.rootSuccess)
                {
                    string imgpath = weixinApi.CreateWxaCode(path);
                    if (!string.IsNullOrEmpty(imgpath))
                    {
                        //4、存入数据库
                        #region 存入数据库
                        var newAppCode = new weixin_applet_code
                        {
                            code_name        = code_name,
                            code_desc        = code_desc,
                            weixin_applet_id = app.id,
                            create_time      = DateTime.Now,
                            random           = sys.getRandomStr(),
                            img_path         = imgpath,
                            is_delete        = 0,
                            xcx_url          = path,
                            code_type        = 2
                        };
                        appCodeBLL.Add(newAppCode);
                        #endregion
                    }
                    img_path = imgpath;
                }
            }
            return(img_path);
        }