[日常] 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);
相关文章
- NETs相关基因构建预后模型干湿结合发12分+SCI
- 用 Minio 快速启动 Velero 实现 Kubernetes资源备份
- MySQL(1) - 用户管理及root密码修改
- Jmeter系列(40)- 详解 Jmeter 图形化 HTML 压测报告
- Jmeter系列(39)- 详解 Jmeter CLI 模式
- Jmeter系列(38)- Jmeter 分布式测试
- Jmeter系列(37)- 跨平台运行 Jmeter,CSV 文件路径设置
- Jenkins操作手册 - 巨详细,一篇足矣!
- 【JVM实战系列】「监控调优体系」实战开发arthas-spring-boot-starter监控你的微服务是否健康
- 【Spring专题】「开发指南」夯实实战基础功底之解读logback-spring.xml文件的详解实现
- 精华推荐 |【深入浅出Sentinel原理及实战】「原理探索专题」完整剖析Alibaba微服务架构体系之轻量级高可用流量控制组件Sentinel(1)
- 【深入浅出Spring原理及实战】「源码原理实战」从底层角度去分析研究PropertySourcesPlaceholderConfigurer的原理及实战注入机制
- 精华推荐 | 【深入浅出RocketMQ原理及实战】「性能原理挖掘系列」透彻剖析贯穿RocketMQ的事务性消息的底层原理并在分析其实际开发场景
- 深度剖析 | 【JVM深层系列】[HotSpotVM研究系列] JVM调优的"标准参数"的各种陷阱和坑点分析(攻克盲点及混淆点)「 1 」
- 【JVM故障问题排查心得】「内存诊断系列」Docker容器经常被kill掉,k8s中该节点的pod也被驱赶,怎么分析?
- 【深入浅出SpringCloud原理及实战】「SpringCloud-Alibaba系列」微服务模式搭建系统基础架构实战指南及版本规划踩坑分析
- 【秒杀购物商城业务服务】「分布式架构服务」盘点中间件服务的高可用模式及集群技术的方案分析
- 作者推荐 | 【分布式技术专题】「架构设计方案」图解学习法总结集群模式下的各种软负载均衡策略实现及原理分析
- 【分布式技术专题】「架构设计方案」盘点和总结秒杀服务的功能设计及注意事项技术体系
- Kafka技术专题之「性能调优篇」消息队列服务端出现内存溢出OOM以及相关性能调优实战分析