TP5做工资条群发系统

本文介绍了一位PHP开发者如何利用TP5框架,结合PHPExcel和PHPMailer库,设计并实现了一个从数据库中读取工资条信息,通过多个邮箱轮流发送,避免短时间内大量邮件导致封号问题的工资条邮件群发系统。文章重点展示了controller和service层的实现,同时提供了相关资源的下载链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本人接触PHP已有一年,公司需要导入excel然后发送给每个人工资条,所以我就借助各方面资源写了这些,现在公司已经开始使用了,如有一些地方写得有问题或者很糟糕的地方,还请各位大神给出指点,小弟再修正.

思路是使用多个邮箱 轮流 依次 给多个员工发送邮件,是为了防止因为短时间大批量发送邮件被封,我也不知道这样管不管用,但是我是这么做的,比如有邮箱m1,m2,m3.员工有12345,那么发送的顺序是这样的m1=>1,m2=>2,m3=>3,m1=>4,m2=>5

这篇文章省略了Excel的导入,DAO层的操作,主要是controller和service层的邮箱选择并且轮流给每位员工发送邮件的操作,看起来比较简陋,我个人感觉功能应该没什么太大的问题

邮箱里边这个东西要先打开,要不然一切都是徒劳


phpexcel和phpmailer放在了vendor下边,这两个文件git上都有自己下载就是了

我也在网盘里存了一份,链接:https://pan.baidu.com/s/1kYnVs21US6pRxrDIRMfXjg 密码:fg5d


在extend里边写了一个执行发送和选择邮箱的类

<?php
namespace util;
use PHPMailer\PHPMailer\PHPMailer;
class Mail
{
    private $emails = [
        '123@163.com',
        '456@sina.com',
        '789@qq.com',
    ];
    private $current_id =0;
    private $last_id = 0;
    private $password = '***';//因为我上边用的邮箱,密码都是相同的,所以我在这里定义了一个密码
    private static $instance=null;

    function __construct(){
        $this->last_id=count($this->emails)-1;
        $this->current_id=0;
    }
    /**
     * @return Mail|null
     * 单例   避免并发冲突
  &nb
工资发放系统 某公司按月给其雇员发放工资,该公司有4种雇员:  固定薪金的雇员:不管工作多长时间,总拿固定月薪;(但如果请假,要扣除相应的薪金,请假次数×每次扣除金额30)  小时工:以小时计算,加上加班费;(每月基本工作时间为160小时,其余为加班时间)  销售员:按销售收入提成计算;(每月基本销售额度为30000元,低于此额度,在月薪里扣除少于30000部分的千分之二)  带薪销售员:底薪加上销售收入提成(要求同上,若有请假,也要扣除相应的薪金) 如果雇员的生日所在的月份在本月,那么公司无条件补贴200元。 设计一工资发放系统,完成各种工资的计算,并实现以下功能: 1) 初始化系统 创建存储该公司职工信息的存储系统(Employee.dat),并进行职工信息的输入,注意:公司的职工编号由系统按顺序自动生成,并且员工号一旦分配好就不可以再修改! 第一次运行系统,根据系统提示从键盘输入员工的相应信息进行初始化操作,并保存至Employee.dat文件中。以后每次运行程序,初始化时都从文件Employee.dat中读取员工数据即可。 2) 职工信息输出 要求可以输出: 某类职工当月的薪水发放信息 分类输出全体职工当月的薪水发放信息 某一名职工当月的薪水发放信息 格式如下: ******************************** 固定薪金职员********************************* 编号 姓名 出生年月 工种 奖励薪金 固定月薪 请假天数 应扣 实发工资 是否领取 **********************************计时职员*********************************** 编号 姓名 出生年月 工种 奖励薪金 工作时长 时薪 加班时长 实发工资 是否领取 **********************************普通销售员*********************************** 编号 姓名 出生年月 工种 奖励薪金 销售额 提成比例 应扣 实发工资 是否领取*********************************带薪销售员************************************ 编号 姓名出生年月工种奖励薪金固定月薪销售额提成比例请假天数应扣实发工资是否领取 3) 添加职工 通过键盘输入相应的职工信息,添加职工,并保存至Employee.dat文件中。 4) 删除职工 通过输入职工的工号,首先输出要删除的职工相应的信息,经确认后删除,要考虑职工不存在的情况。删除后保存至Employee.dat文件中。 5) 修改信息 要求可以修改: 除编号外的所有职工信息,包括工种以及由修改工种带来的各项操作 修改某一类工种的信息,如销售人员的提成比例,统一提高0.05; 输出修改前的职工信息,经确认后修改后,输出修改后的职工信息,考虑职工不存在的情况,修改后保存至Employee.dat文件中。 6) 工资发放 通过输入职工号方式,输出查询到的职工相应的信息,经确认发放工资,将员工是否领取工资信息设置为是(即真),考虑所要查询的职工编号不存在和已经发放过工资的情况。 7) 保存退出 通过确认,保存修改的信息至文件Employee.dat中,退出系统,结束运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值