[日常] 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);

posted @ 2018-03-20 17:43  唯一客服系统开发笔记  阅读(164)  评论(0编辑  收藏  举报