Esempio n. 1
0
        /// <summary>
        /// 添加/修改任务计划
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public TaskPlanModel addTaskPlan(string loginToken, TaskPlanModel model)
        {
            Dictionary <string, string> data = new Dictionary <string, string>();

            data["token"] = loginToken;
            if (model.id > 0)
            {
                data["id"] = model.id.ToString();
            }
            else
            {
                data["groupids"] = model.pidsText;
                data["goodsids"] = model.goodsText;
            }
            data["title"]       = model.title;
            data["executetime"] = model.startTime.ToString("yyyy-MM-dd HH:mm:ss");
            data["endtime"]     = model.endTime.ToString("yyyy-MM-dd HH:mm:ss");
            var item = BaseRequestService.Post <TaskPlanModel>(ApiConst.saveTask, data);

            item.statusText = "待执行";
            if (item.status == 1)
            {
                item.statusText = "已完成";
            }
            else if (item.status == 2)
            {
                item.statusText = "进行中";
            }
            else if (item.status == 3)
            {
                item.statusText = "已过期";
            }
            item.startTimeText = item.startTime.ToString("yyyy年MM月dd日 HH时mm分ss秒");
            return(item);
        }
Esempio n. 2
0
        /// <summary>
        /// 发送任务商品
        /// </summary>
        /// <param name="goodslist">The goodslist.</param>
        /// <param name="taskid">The taskid.</param>
        /// <param name="lst">The LST.</param>
        private bool SendGoods(List <GoodsModel> goodslist, TaskPlanModel taskModel, List <WindowInfo> wins)
        {
            bool result = false;
            var  data   = LogicHotTao.Instance(MyUserInfo.currentUserId).FindByUserWechatShareTextList(MyUserInfo.currentUserId);

            if (data == null || data.Count() == 0)
            {
                return(true);
            }
            foreach (var goods in goodslist)
            {
                textResult.Clear();
                imageResult.Clear();

                if (!isStartTask || MyUserInfo.currentUserId == 0)
                {
                    result = false;
                    break;
                }
                if (taskModel.endTime.CompareTo(DateTime.Now) < 0)
                {
                    result = false;
                    break;
                }

                result = true;
                int goodsId = Convert.ToInt32(goods.id);

                var shareData = data.FindAll(share =>
                {
                    return(share.goodsid == goodsId && share.taskid == taskModel.id);
                });
                if (shareData == null || shareData.Count() == 0)
                {
                    continue;
                }

                //加载appkey,判断是否存在,如果不存在,则不发商品
                if (LoadAppkeyAndSecret())
                {
                    //发送当前商品时,进行淘口令生产
                    shareData.ForEach(item =>
                    {
                        if (item.status == -1)
                        {
                            bool flag = LogicHotTao.Instance(MyUserInfo.currentUserId).BuildTpwd(MyUserInfo.currentUserId, MyUserInfo.LoginToken, goods, item, appkey, appsecret);
                            if (flag)
                            {
                                item.status = 0;
                            }
                        }
                    });
                    shareData = shareData.FindAll(share => { return(share.status == 0); });
                    SendWeChatGroupShareText(shareData, goods, wins);
                    SleepGoods();
                }
            }
            return(result);
        }
Esempio n. 3
0
        /// <summary>
        /// 添加任务计划
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public int addTaskPlan(TaskPlanModel model)
        {
            string strSql = "insert into task_plan(userid,title,startTime,goodsText,pidsText) values(@userid,@title,@startTime,@goodsText,@pidsText);select @@IDENTITY";
            var    param  = new[]
            {
                new SqlParameter("@userid", model.userid),
                new SqlParameter("@title", model.title),
                new SqlParameter("@startTime", model.startTime),
                new SqlParameter("@goodsText", model.goodsText),
                new SqlParameter("@pidsText", model.pidsText)
            };

            return(Convert.ToInt32(DbHelperSQL.ExecuteScalar(GlobalConfig.getConnectionString(), CommandType.Text, strSql, param)));
        }
Esempio n. 4
0
        /// <summary>
        /// 修改用户计划任务
        /// </summary>
        /// <param name="model">The model.</param>
        /// <returns>System.Int32.</returns>
        public int UpdateUserTaskPlan(TaskPlanModel model)
        {
            string strSql = @"UPDATE user_task_plan SET title=@title,startTime=@startTime,endTime=@endTime WHERE id = @id ";

            var param = new[] {
                new SQLiteParameter("@id", model.id),
                new SQLiteParameter("@title", model.title),
                new SQLiteParameter("@startTime", model.startTime),
                new SQLiteParameter("@endTime", model.endTime)
                //new SQLiteParameter("@goodsText",model.goodsText),
                //new SQLiteParameter("@pidsText",model.pidsText)
            };

            return(DBHelper.ExecuteSql(strSql, param));
        }
Esempio n. 5
0
        /// <summary>
        /// 添加用户计划任务
        /// </summary>
        /// <param name="model">The model.</param>
        /// <returns>System.Int32.</returns>
        public int AddUserTaskPlan(TaskPlanModel model)
        {
            string strSql = @"INSERT INTO user_task_plan (userid,title,startTime,endTime,goodsText,pidsText,isTpwd,status) VALUES(@userid,@title,@startTime,@endTime,@goodsText,@pidsText,0,0);select last_insert_rowid(); ";

            var param = new[] {
                new SQLiteParameter("@userid", model.userid),
                new SQLiteParameter("@title", model.title),
                new SQLiteParameter("@startTime", model.startTime),
                new SQLiteParameter("@endTime", model.endTime),
                new SQLiteParameter("@goodsText", model.goodsText),
                new SQLiteParameter("@pidsText", model.pidsText)
            };

            return(DBHelper.ExecuteSql(strSql, param));
        }
Esempio n. 6
0
 /// <summary>
 /// 添加用户计划任务
 /// </summary>
 /// <param name="model">The model.</param>
 /// <returns>System.Int32.</returns>
 public TaskPlanModel AddUserTaskPlan(TaskPlanModel model)
 {
     if (model.id == 0)
     {
         int taskid = dal.AddUserTaskPlan(model);
         if (taskid > 0)
         {
             return(FindByUserTaskPlanInfo(model.userid, taskid));
         }
     }
     else
     {
         if (dal.UpdateUserTaskPlan(model) > 0)
         {
             return(FindByUserTaskPlanInfo(model.userid, Convert.ToInt32(model.id)));
         }
     }
     return(null);
 }
Esempio n. 7
0
        /// <summary>
        /// 发送任务商品
        /// </summary>
        /// <param name="goodslist">The goodslist.</param>
        /// <param name="taskid">The taskid.</param>
        /// <param name="lst">The LST.</param>
        private bool SendGoods(List <GoodsModel> goodslist, TaskPlanModel taskModel, List <WindowInfo> wins)
        {
            bool result = false;
            var  data   = LogicHotTao.Instance(MyUserInfo.currentUserId).FindByUserWechatShareTextList(MyUserInfo.currentUserId);

            if (data == null || data.Count() == 0)
            {
                return(true);
            }
            foreach (var goods in goodslist)
            {
                textResult.Clear();
                imageResult.Clear();

                if (!isStartTask || MyUserInfo.currentUserId == 0)
                {
                    result = false;
                    break;
                }
                if (taskModel.endTime.CompareTo(DateTime.Now) < 0)
                {
                    result = false;
                    break;
                }

                result = true;
                int goodsId = Convert.ToInt32(goods.id);

                var shareData = data.FindAll(share =>
                {
                    return(share.goodsid == goodsId && share.taskid == taskModel.id);
                });
                if (shareData == null || shareData.Count() == 0)
                {
                    continue;
                }


                //申请高佣金
                hotForm.ApplyPlan(goods.goodsId, goods.goodsName);


                //加载appkey,判断是否存在,如果不存在,则不发商品
                if (LoadAppkeyAndSecret())
                {
                    //发送当前商品时,进行淘口令生产
                    shareData.ForEach(item =>
                    {
                        if (item.status == -1)
                        {
                            bool flag = LogicHotTao.Instance(MyUserInfo.currentUserId).BuildTpwd(MyUserInfo.currentUserId, MyUserInfo.LoginToken, goods, item, appkey, appsecret);
                            if (flag)
                            {
                                item.status = 0;
                            }
                        }
                    });

                    hotForm.logRuningList.Add(new LogRuningModel()
                    {
                        goodsName = goods.goodsName,
                        goodsid   = goods.goodsId,
                        title     = goods.goodsId,
                        content   = goods.goodsName,
                        logTime   = DateTime.Now,
                        logType   = LogTypeOpts.商品发送,
                        isError   = false,
                        remark    = string.Format("[{0}]开始发送商品[{1}]", goods.goodsId, goods.goodsName)
                    });

                    shareData = shareData.FindAll(share => { return(share.status == 0); });
                    SendWeChatGroupShareText(shareData, goods, wins);
                    SleepGoods();
                }
            }
            return(result);
        }
Esempio n. 8
0
        /// <summary>
        /// 将商品发送到相应的群
        /// </summary>
        /// <param name="shareData">The share data.</param>
        /// <param name="goods">The goods.</param>
        /// <param name="lst">The LST.</param>
        private void SendWeChatGroupShareText(List <weChatShareTextModel> shareData, GoodsModel goods, List <WindowInfo> wins, TaskPlanModel taskModel)
        {
            try
            {
                Image image       = null;
                bool  isSendImage = isImageText();
                try
                {
                    using (Stream stream = new FileStream(goods.goodslocatImgPath, FileMode.Open))
                    {
                        image = Image.FromStream(stream);
                    }
                }
                catch (Exception ex)
                {
                    image = null;
                    //isSendImage = true;
                    log.Error(ex);
                }

                wins = WinApi.GetAllDesktopWindows();
                if (wins == null || wins.Count() == 0)
                {
                    HotJavaApi.SendUserNotice(MyUserInfo.LoginToken, WeChatTemplateMessageSceneType.微信离线);
                }

                if (isSendImage)
                {
                    //复制文件
                    if (image != null)
                    {
                        SendImage(image, shareData, wins, true);
                    }
                    SendText(shareData, wins, true, goods);
                }
                else
                {
                    SendText(shareData, wins, false, goods);
                    //复制文件
                    if (image != null)
                    {
                        SendImage(image, shareData, wins, false);
                    }
                }

                //发完图文后,发送视频或动态,优先短视频
                if (cfgTime != null && cfgTime.enable_sendvideo)
                {
                    //发送视频或GIF图片
                    string videoPath = MyUserInfo.GetVideoFilePath(goods.goodsId);
                    if (!string.IsNullOrEmpty(videoPath))
                    {
                        CopyFileToClipboard(videoPath);
                        SendImage(image, shareData, wins, true, true);
                    }
                }
            }
            catch (Exception ex)
            {
                log.Error(ex);
            }
        }
Esempio n. 9
0
        /// <summary>
        /// 发送任务商品
        /// </summary>
        /// <param name="goodslist">The goodslist.</param>
        /// <param name="taskid">The taskid.</param>
        /// <param name="lst">The LST.</param>
        private bool SendGoods(List <GoodsModel> goodslist, TaskPlanModel taskModel, List <WindowInfo> wins)
        {
            bool result = false;
            var  data   = LogicHotTao.Instance(MyUserInfo.currentUserId).FindByUserWechatShareTextList(Convert.ToInt32(taskModel.id));

            if (data == null || data.Count() == 0)
            {
                return(true);
            }

            if (taskModel.title.Contains("【合成图片转发】"))
            {
                List <weChatShareTextModel> newdata = new List <weChatShareTextModel>();
                foreach (var item in data)
                {
                    if (item.taskid == taskModel.id)
                    {
                        if (!newdata.Exists(r => { return(r.field3.Equals(item.field3)); }))
                        {
                            newdata.Add(item);
                        }
                    }
                }
                SendImage(null, newdata, wins, true, false, true);
                result = true;

                foreach (var goods in goodslist)
                {
                    //申请高佣金
                    ApplyCamp(goods);
                    System.Threading.Thread.Sleep(1000);
                }
            }
            else
            {
                foreach (var goods in goodslist)
                {
                    textResult.Clear();
                    imageResult.Clear();

                    if (!isStartTask || MyUserInfo.currentUserId == 0)
                    {
                        result = false;
                        break;
                    }
                    if (taskModel.endTime.CompareTo(DateTime.Now) < 0)
                    {
                        result = false;
                        break;
                    }

                    result = true;
                    int goodsId = Convert.ToInt32(goods.id);

                    var shareData = data.FindAll(share =>
                    {
                        return(share.goodsid == goodsId && share.taskid == taskModel.id && share.status != 1);
                    });
                    if (shareData == null || shareData.Count() == 0)
                    {
                        continue;
                    }


                    //申请高佣金
                    ApplyCamp(goods);
                    //加载appkey,判断是否存在,如果不存在,则不发商品
                    if (LoadAppkeyAndSecret())
                    {
                        shareData.ForEach(item =>
                        {
                            if (item.status == -1)
                            {
                                item.status = 0;
                            }
                        });

                        hotForm.logRuningList.Add(new LogRuningModel()
                        {
                            goodsName = goods.goodsName,
                            goodsid   = goods.goodsId,
                            title     = goods.goodsId,
                            content   = goods.goodsName,
                            logTime   = DateTime.Now,
                            logType   = LogTypeOpts.商品发送,
                            isError   = false,
                            remark    = string.Format("[{0}]开始发送商品[{1}]", goods.goodsId, goods.goodsName)
                        });

                        shareData = shareData.FindAll(share => { return(share.status == 0); });
                        SendWeChatGroupShareText(shareData, goods, wins, taskModel);
                        SleepGoods();
                    }
                }
            }
            return(result);
        }
Esempio n. 10
0
        /// <summary>
        /// 自动合成图片
        /// </summary>
        /// <param name="loginToken"></param>
        /// <param name="wechatlist"></param>
        /// <param name="appkey"></param>
        /// <param name="appsecret"></param>
        /// <param name="startTime"></param>
        /// <param name="endTime"></param>
        /// <param name="JoinImageCount"></param>
        /// <returns></returns>
        public bool AutoJoinImage(string loginToken, List <UserWechatListModel> wechatlist, string appkey, string appsecret, DateTime startTime, DateTime endTime, int JoinImageCount)
        {
            string templateText               = "[二合一淘口令]";
            List <UserPidTaskModel> pidList   = new List <UserPidTaskModel>();
            List <UserPidTaskModel> goodsList = new List <UserPidTaskModel>();

            //判断群是否存在
            if (wechatlist == null || wechatlist.Count() <= 0)
            {
                return(false);
            }
            else
            {
                foreach (var item in wechatlist)
                {
                    if (!pidList.Exists(r => r.id == item.id))
                    {
                        pidList.Add(new UserPidTaskModel()
                        {
                            id = item.id
                        });
                    }
                }
            }
            //获取需要合成图片的商品数据
            var        goodslist = FindByUserGoodsListThree(JoinImageCount);
            List <int> ids       = new List <int>();

            if (goodslist != null && goodslist.Count() == JoinImageCount)
            {
                foreach (var item in goodslist)
                {
                    if (!goodsList.Exists(r => r.id == Convert.ToInt32(item.id)))
                    {
                        goodsList.Add(new UserPidTaskModel()
                        {
                            id = Convert.ToInt32(item.id)
                        });
                    }


                    ids.Add(Convert.ToInt32(item.id));
                }
            }
            else
            {
                return(false);
            }


            string        goodsText = JsonConvert.SerializeObject(goodsList);
            string        pidsText  = JsonConvert.SerializeObject(pidList);
            TaskPlanModel model     = new TaskPlanModel()
            {
                userid    = uid,
                title     = "【合成图片转发】",
                startTime = startTime,
                endTime   = endTime,
                pidsText  = pidsText,
                goodsText = goodsText,
                id        = 0,
                status    = 0,
                isTpwd    = 0
            };
            TaskPlanModel data = AddUserTaskPlan(model);

            if (data == null)
            {
                return(false);
            }
            List <JoinGoodsList> joinLists = new List <JoinGoodsList>();

            foreach (var group in wechatlist)
            {
                weChatGroupModel g = new weChatGroupModel()
                {
                    id     = group.id,
                    title  = group.wechattitle,
                    pid    = group.pid,
                    userid = group.userid
                };
                JoinGoodsList joinList = new JoinGoodsList();
                //生成商品分享文本
                BuildShareText(loginToken, uid, Convert.ToInt32(data.id), templateText, goodslist, g, appkey, appsecret, out joinList, null, true);
                if (joinList != null)
                {
                    joinLists.Add(joinList);
                }
            }

            int flag = BuildJoinImage(loginToken, joinLists, data.title, Convert.ToInt32(data.id), JoinImageCount);

            if (flag == 0)
            {
                UpdateUserTaskPlanIsTpwd(Convert.ToInt32(data.id));
                UpdateGoodsJoinImageStatusByIds(uid, ids);
            }
            else
            {
                DeleteUserTaskPlan(flag);
            }

            return(false);
        }
Esempio n. 11
0
 /// <summary>
 /// 添加任务计划
 /// </summary>
 /// <param name="model"></param>
 /// <returns></returns>
 public int addTaskPlan(TaskPlanModel model)
 {
     return(dal.addTaskPlan(model));
 }
Esempio n. 12
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            MessageAlert alert = new MessageAlert();

            if (string.IsNullOrEmpty(txtTaskTitle.Text))
            {
                alert.Message = "请输入任务标题";
                alert.ShowDialog(this);
                txtTaskTitle.Focus();
                return;
            }

            if (string.IsNullOrEmpty(txtStartTime.Text))
            {
                txtStartTime.Focus();
                return;
            }
            if (string.IsNullOrEmpty(txtEndTime.Text))
            {
                txtEndTime.Focus();
                return;
            }
            string goodsText = JsonConvert.SerializeObject(hotGoodsText);
            string pidsText  = JsonConvert.SerializeObject(hotPidsText);

            TaskPlanModel model = new TaskPlanModel()
            {
                userid    = MyUserInfo.currentUserId,
                title     = txtTaskTitle.Text,
                startTime = Convert.ToDateTime(txtStartTime.Text),
                endTime   = Convert.ToDateTime(txtEndTime.Text),
                pidsText  = pidsText,
                goodsText = goodsText,
                id        = taskid
            };
            Loading ld = new Loading();

            ((Action)(delegate()
            {
                //TaskPlanModel data = LogicTaskPlan.Instance.addTaskPlan(MyUserInfo.LoginToken, model);
                TaskPlanModel data = LogicHotTao.Instance(MyUserInfo.currentUserId).AddUserTaskPlan(model);
                ld.CloseForm();
                if (data != null)
                {
                    this.BeginInvoke((Action)(delegate()   //等待结束
                    {
                        if (hotTask != null)
                        {
                            hotTask.SetTaskView(data, taskid > 0 ? CurrentRowIndex : -1);
                        }

                        if (hotHistoryTask != null)
                        {
                            hotHistoryTask.LoadTaskPlanGridView();
                        }

                        txtTaskTitle.Clear();
                        alert.Message = "保存成功";
                        alert.CallBack += () => { this.Close(); };
                        alert.ShowDialog(this);
                    }));
                }
                else
                {
                    this.BeginInvoke((Action)(delegate()   //等待结束
                    {
                        alert.Message = "保存失败";
                        alert.ShowDialog(this);
                    }));
                }
            })).BeginInvoke(null, null);
            ld.ShowDialog(hotForm);
        }
Esempio n. 13
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            MessageAlert alert = new MessageAlert();

            if (!isJoinImage && string.IsNullOrEmpty(txtTaskTitle.Text))
            {
                alert.Message = "请输入任务标题";
                alert.ShowDialog(this);
                txtTaskTitle.Focus();
                return;
            }
            else
            {
                if (txtTaskTitle.Text.Length > 8)
                {
                    alert.Message = "商品简述最多8个字";
                    alert.ShowDialog(this);
                    txtTaskTitle.Focus();
                    return;
                }
            }
            if (string.IsNullOrEmpty(txtStartTime.Text))
            {
                txtStartTime.Focus();
                return;
            }
            if (string.IsNullOrEmpty(txtEndTime.Text))
            {
                txtEndTime.Focus();
                return;
            }
            string goodsText = JsonConvert.SerializeObject(hotGoodsText);
            string pidsText  = JsonConvert.SerializeObject(hotPidsText);

            TaskPlanModel model = new TaskPlanModel()
            {
                userid    = MyUserInfo.currentUserId,
                title     = isJoinImage ? "【合成图片转发】" + txtTaskTitle.Text : txtTaskTitle.Text,
                startTime = Convert.ToDateTime(txtStartTime.Text),
                endTime   = Convert.ToDateTime(txtEndTime.Text),
                pidsText  = pidsText,
                goodsText = goodsText,
                id        = taskid,
                status    = 0,
                isTpwd    = isJoinImage ? 1 : 0
            };
            Loading ld = new Loading();

            ((Action)(delegate()
            {
                TaskPlanModel data = LogicHotTao.Instance(MyUserInfo.currentUserId).AddUserTaskPlan(model);

                if (data != null)
                {
                    if (isJoinImage)
                    {
                        BuildText(Convert.ToInt32(data.id));
                    }
                    ld.CloseForm();
                    this.BeginInvoke((Action)(delegate()   //等待结束
                    {
                        if (hotTask != null)
                        {
                            //hotTask.SetTaskView(data, taskid > 0 ? CurrentRowIndex : -1);
                            hotTask.LoadTaskPlanGridView();
                        }
                        txtTaskTitle.Clear();
                        alert.Message = "保存成功";
                        alert.CallBack += () => { this.Close(); };
                        alert.ShowDialog(this);
                    }));
                }
                else
                {
                    ld.CloseForm();
                    this.BeginInvoke((Action)(delegate()   //等待结束
                    {
                        alert.Message = "保存失败";
                        alert.ShowDialog(this);
                    }));
                }
            })).BeginInvoke(null, null);
            ld.ShowDialog(hotForm);
        }