/// <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); }
/// <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); }
/// <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))); }
/// <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)); }
/// <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)); }
/// <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); }
/// <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); }
/// <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); } }
/// <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); }
/// <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); }
/// <summary> /// 添加任务计划 /// </summary> /// <param name="model"></param> /// <returns></returns> public int addTaskPlan(TaskPlanModel model) { return(dal.addTaskPlan(model)); }
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); }
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); }