专栏首页陶士涵的菜地[日常] 20号日常工作总结

[日常] 20号日常工作总结

批量删除群发列表 批量删除邮箱地址 (传递以逗号分隔的字符串如 21,22 或者传递一维数组如 id[]=21&id[]=22) (使用array_keys和array_values直接转二维数组成一维数组) (批量删除sql语句使用in实现,delete from mass_list_detail{tid} where user_email_id=:user_email_id and mass_id in(%s)) (做纯数字检测,使用了ctype_digit函数)

导入文件增加邮箱地址 使用文本域增加邮箱地址 (代码基本一样,使用同一个接口地址,增加一个type的参数进行区分判断)

获取群发列表接口 (每个群发列表中邮箱成员个数的计算,使用一条sql语句实现 select count(mass_id) as n,mass_id from mass_list_detail4 where user_email_id=:user_email_id group by mass_id )

获取邮箱地址列表接口 (注意到了联合索引的最左前缀原则 key(user_email_id,mass_id) select * from mass_list_detail{tid} where user_email_id=:user_email_id and mass_id=:mass_id )

发信接口: from(发件人) to(群发列表id) subject(邮件主题) msgtxt(邮件正文) is_save(是否保存) att_swf(附件信息)

拼接好邮件eml文件后,保存到/mnt/entmail/目录位置 添加进队列 "from|to|邮件文件地址" 定时任务取出队列内容,拿到邮件文件,替换收件人,调用smtp发送

新建群发列表,导入邮箱地址: 1.新建时直接导入文件 2.单用户每人限制50个群发列表 3.每个列表中的邮箱地址限制1000个 4.列表中邮箱去掉格式不正确的和重复的 5.判断列表名称不能为空 6.判断导入文件的大小不能太大,不能为空 7.返回成功,失败,总共的条数

对已存在的列表进行再次导入邮箱地址: 1.要求同上 2.判断列表是否存在 3.已存在邮箱地址加上新导入地址不得超过1000

获取邮箱地址列表接口: 1.全部取出 2.保留分页功能

删除群发列表接口 删除邮箱地址接口

建表申请: CREATE TABLE `deluserlog` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `enterpriseId` int(10) unsigned NOT NULL DEFAULT '0', `emailid` int(10) unsigned NOT NULL DEFAULT '0', `email` char(50) NOT NULL DEFAULT '', `status` int(10) unsigned NOT NULL DEFAULT '0', `time` int(10) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8

获取邮箱地址列表的分页部分主要代码: $this->sum=empty($this->sum) ? 0:$this->sum; $this->pagenum=ceil($this->sum/$this->pagesize); $this->pageno=empty($req->pageno)? 1 : $req->pageno; $start=($pageno-1)*$pagesize; $end=$pagesize; $preSql="select * from mass_list_detail{tid} where user_email_id=:user_email_id and mass_id=:mass_id order by id desc limit {$start},{$end}"; $preSql=$this->makeSql($preSql);

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • [PHP] RBAC权限与审批流的简单数据库构想

    陶士涵
  • [MongoDB] 使用PHP根据_id字段查询数据

    mongo中的_id是一个objectid对象类型,不管是查询时作为条件,还是列表时展示内容,都需要进行一下抓换

    陶士涵
  • [Go] golang定时器的使用

    golang中的定时器是使用的chanel阻塞来实现的,主要使用到了time包中的内容,如果有多个定时器的channel,为了防止阻塞,可以使用select来获...

    陶士涵
  • R语言 | 根据数据框的顺序进行筛选

    这里有两个数据框,两者有相同的列(ID),这里想把第一个数据框,按照第二个数据框的ID列进行提取,顺序和第二个数据框一致。

    邓飞
  • 无限级子商户的查询优化方法

    A 有 2 个直接下级B、C,    B有2个直接下级D、E,    C有2个直接下级F、G

    宣言言言
  • java进阶|MyBatis系列文章(七)多表查询操作

    以上jar包依赖主要是mysql连接,支持mybatis操作以及简化get/set方法的lombok包。

    后端Coder
  • Navigation问题详解——Fragment创建新的实例

    周末,有位同学在微信公共号后台,给我留言,说看了我之前写两篇文章,谷歌官方组件Navigation你了解了吗?、谷歌官方组件Navigation你会用了吗?之后...

    Demo_Yang
  • krry-transfer ⏤ 基于 element 的升级版穿梭框组件发布到 npm 啦

    看过我之前博客的同学或许知道我之前写过关于 element 穿梭框组件重构的博客 关于 Element 组件的穿梭框的重构,当时还有一些同学直接通过微信询问很多...

    Krry
  • Vert.x!这是目前最快的 Java 框架

    如果您搜索“最佳网络框架 ”,您可能会偶然发现Techempower基准测试,其中排名超过300个框架,在那里你可能已经注意到Vert.x是排名最高的。

    芋道源码
  • 「数据库」sql刷题(No.2)

    A市开了一家新的花店,吸引了很多的人过来看观看。该店长特别注意用户体验,专门有个 LED显示板做购花推荐,上面公布着花评和相关花的描述。

    八点半的Bruce、D

扫码关注云+社区

领取腾讯云代金券