Exemplo n.º 1
0
        /// <summary>
        /// 生成淘口令
        /// </summary>
        /// <param name="loginToken">The login token.</param>
        /// <param name="userid">The userid.</param>
        /// <param name="taskid">The taskid.</param>
        /// <param name="templateText">文案</param>
        /// <param name="result">The result.</param>
        /// <returns>true if XXXX, false otherwise.</returns>
        public bool BuildTaskTpwd(string loginToken, int userid, int taskid, string templateText, string appkey, string appsecret, Action <weChatShareTextModel> result = null, bool append = false, bool isJoinImage = false)
        {
            var taskData = FindByUserTaskPlanInfo(taskid);

            if (taskData == null || taskData.ExecStatus != 0)
            {
                return(false);
            }

            if (string.IsNullOrEmpty(taskData.pidsText) || string.IsNullOrEmpty(taskData.goodsText))
            {
                return(false);
            }

            List <UserPidTaskModel> lst  = JsonConvert.DeserializeObject <List <UserPidTaskModel> >(taskData.pidsText);
            List <UserPidTaskModel> lst2 = JsonConvert.DeserializeObject <List <UserPidTaskModel> >(taskData.goodsText);
            List <int> ids = new List <int>();

            //如果群数据和商品数据都为空时
            if (lst == null || lst2 == null)
            {
                return(false);
            }

            lst2.ForEach(item =>
            {
                if (!ids.Contains(item.id))
                {
                    ids.Add(item.id);
                }
            });
            //获取商品数据
            var goodslist = FindByUserGoodsList(ids);

            if (!append)
            {
                ids.Clear();
                lst.ForEach(item =>
                {
                    if (!ids.Contains(item.id))
                    {
                        ids.Add(item.id);
                    }
                });
                //获取微信群数据
                var wechatlist = FindByUserWeChatGroup(userid, ids);
                //删除现有数据
                dal.DeleteUserWechatShareText(userid, taskid);
                List <JoinGoodsList> joinLists = new List <JoinGoodsList>();
                foreach (var group in wechatlist)
                {
                    JoinGoodsList joinList = new JoinGoodsList();
                    //生成商品分享文本
                    BuildShareText(loginToken, userid, taskid, templateText, goodslist, group, appkey, appsecret, out joinList, result, isJoinImage);

                    if (isJoinImage && joinList != null)
                    {
                        joinLists.Add(joinList);
                    }
                }
                if (isJoinImage)
                {
                    int flag = BuildJoinImage(loginToken, joinLists, taskData.title, Convert.ToInt32(taskData.id), goodslist.Count());
                    if (flag > 0)
                    {
                        DeleteUserTaskPlan(flag);
                    }
                }
                UpdateUserTaskPlanIsTpwd(taskid);
            }
            else
            {
                var data = FindByUserWechatShareTextList(userid, taskid);
                if (data != null)
                {
                    //获取商品数据
                    var goods = goodslist[0];
                    data.ForEach(item =>
                    {
                        item.text += templateText;
                        item.text  = BuildShareText(item.text, goods);
                        //修改内容
                        dal.UpdateUserShareText(item.id, item.text);

                        result?.Invoke(item);
                    });
                }
            }
            return(true);
        }