|
@@ -75,7 +75,7 @@ class EmailProc {
|
|
|
// <editor-fold defaultstate="collapsed" desc=" API ">
|
|
|
|
|
|
/**
|
|
|
- * 6707 发放测试用道具
|
|
|
+ * 6707 发放测试用道具
|
|
|
*/
|
|
|
static function SendTestItems() {
|
|
|
// Err(ErrCode::err_method_obsoleted, "此功能仅测试期间可用");
|
|
@@ -105,31 +105,31 @@ class EmailProc {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 【6701】拉取最新邮件列表
|
|
|
+ * 【6701】拉取最新邮件列表
|
|
|
*/
|
|
|
public static function RefreshEmailList() {
|
|
|
$uid = req()->uid;
|
|
|
$zoneid = req()->zoneid;
|
|
|
self::refreshSysMail($zoneid, $uid); # 更新下系统邮件
|
|
|
self::clearExpireMails($zoneid, $uid); # 清理过期邮件, 以及超过容量的邮件
|
|
|
- $mails = self::getMailQueue($zoneid, $uid); # 拉取邮件列表
|
|
|
+ $mails = self::getMailQueue($zoneid, $uid); # 拉取邮件列表
|
|
|
return Resp::ok(array('mailQueue' => $mails)); # 返回值
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 【6702】读取一封邮件, 更新readts
|
|
|
+ * 【6702】读取一封邮件, 更新readts
|
|
|
*/
|
|
|
public static function ReadEmail() {
|
|
|
|
|
|
$uid = req()->uid;
|
|
|
$zoneid = req()->zoneid;
|
|
|
- $mailId = req()->paras[0]; # 传递参数,邮件的id字符串
|
|
|
+ $mailId = req()->paras[0]; # 传递参数,邮件的id字符串
|
|
|
my_Assert($mailId, ErrCode::email_wrongid); # 普通读取一封邮件的逻辑
|
|
|
|
|
|
$mail = self::getMail($zoneid, $uid, $mailId);
|
|
|
$mail->readts = now();
|
|
|
self::updateMail($zoneid, $uid, $mail); # 更新邮件数据
|
|
|
- self::logMailReaded(array($mailId), $uid, $zoneid); # 更新数据库中邮件的read记录
|
|
|
+ self::logMailReaded(array($mailId), $uid, $zoneid); # 更新数据库中邮件的read记录
|
|
|
return Resp::ok(array("rewardstr" => $mail->appendix));
|
|
|
}
|
|
|
|
|
@@ -140,14 +140,14 @@ class EmailProc {
|
|
|
public static function DrawEmailAppendix() {
|
|
|
$uid = req()->uid;
|
|
|
$zoneid = req()->zoneid;
|
|
|
- $mailId = req()->paras[0]; # 传递参数,邮件的id字符串
|
|
|
+ $mailId = req()->paras[0]; # 传递参数,邮件的id字符串
|
|
|
my_Assert($mailId, ErrCode::email_wrongid); # 邮件id
|
|
|
|
|
|
$mail = self::getMail($zoneid, $uid, $mailId); # 取出对应的邮件数据
|
|
|
my_Assert($mail->readts > 0, ErrCode::err_innerfault); # 未打开的不可能调用领取接口
|
|
|
my_Assert($mail->isExistReward(), ErrCode::email_no_appendix); # 先判断邮件,是否存在有效的奖励物品
|
|
|
my_Assert($mail->drawedts <= 0, ErrCode::email_appendix_drawed); # 邮件不可重复领取
|
|
|
- $err = StoreProc::AddMultiItemInStore($mail->appendix, 4); # 发放奖励
|
|
|
+ $err = StoreProc::AddMultiItemInStore($mail->appendix, 4); # 发放奖励
|
|
|
|
|
|
my_Assert(ErrCode::ok == $err, $err); # 发奖成功
|
|
|
$mail->drawedts = now(); # 更新领取时间戳
|
|
@@ -155,9 +155,9 @@ class EmailProc {
|
|
|
if ($mail->sender_name == '系统') {
|
|
|
TaskProc::OnDrawSysMail($mail->sender_uid);
|
|
|
}
|
|
|
- self::logMailDrawed(array($mailId), $uid, $zoneid); # 更新数据库中邮件的领取记录
|
|
|
+ self::logMailDrawed(array($mailId), $uid, $zoneid); # 更新数据库中邮件的领取记录
|
|
|
UserProc::updateUserInfo();
|
|
|
- return Resp::ok(array(# # 同步数据
|
|
|
+ return Resp::ok(array(# # 同步数据
|
|
|
'store' => ctx()->store,
|
|
|
'hero' => ctx()->heros,
|
|
|
'baseInfo' => ctx()->base(),
|
|
@@ -167,7 +167,7 @@ class EmailProc {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 【6704】 领取所有邮件附件奖励
|
|
|
+ * 【6704】 领取所有邮件附件奖励
|
|
|
* @return type
|
|
|
*/
|
|
|
public static function DrawAllEmailAppendixes() {
|
|
@@ -176,7 +176,7 @@ class EmailProc {
|
|
|
$arr = ArrayInit(); # 记录奖励字符串
|
|
|
$rewardEmailIds = ArrayInit(); # 记录领取邮件id
|
|
|
$mails = self::getMailQueue($zoneid, $uid); # 提取邮件列表
|
|
|
- // 有奖励的邮件,全部处理,领取奖励。无奖励的邮件,不处理。因为全部领取邮件功能只限于处理有奖励的物品,无奖励的不管
|
|
|
+ // 有奖励的邮件,全部处理,领取奖励。无奖励的邮件,不处理。因为全部领取邮件功能只限于处理有奖励的物品,无奖励的不管
|
|
|
foreach ($mails as $m) { # 遍历所有邮件
|
|
|
isEditor() and $m = new Ins_Email;
|
|
|
if ($m->isExistReward()) { # 先判断邮件,是否存在附件
|
|
@@ -203,12 +203,12 @@ class EmailProc {
|
|
|
}
|
|
|
$n = count($rewardEmailIds); # 计数,领取邮件数量
|
|
|
if ($n > 0) {
|
|
|
- self::updateMails($zoneid, $uid, $asocMails); # 批量更新邮件
|
|
|
+ self::updateMails($zoneid, $uid, $asocMails); # 批量更新邮件
|
|
|
self::logMailDrawed($rewardEmailIds, $uid, $zoneid); # 更新数据库中邮件的领取记录
|
|
|
}
|
|
|
$reward = implode(';', $arr); # 拼接下奖励字符串
|
|
|
UserProc::updateUserInfo();
|
|
|
- return Resp::ok(array(# # 同步数据
|
|
|
+ return Resp::ok(array(# # 同步数据
|
|
|
'baseInfo' => ctx()->base(),
|
|
|
'store' => ctx()->store,
|
|
|
'hero' => ctx()->heros,
|
|
@@ -218,7 +218,7 @@ class EmailProc {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 【6705】 删除所有已读邮件
|
|
|
+ * 【6705】 删除所有已读邮件
|
|
|
* @return type
|
|
|
*/
|
|
|
public static function DelReadedEmail() {
|
|
@@ -243,9 +243,23 @@ class EmailProc {
|
|
|
}
|
|
|
|
|
|
// </editor-fold>
|
|
|
-//
|
|
|
+//
|
|
|
// <editor-fold defaultstate="collapsed" desc=" 插入邮件">
|
|
|
|
|
|
+ /**
|
|
|
+ * 系统邮件 - 发送世界boss结算奖励
|
|
|
+ * @param type $zoneid
|
|
|
+ * @param type $uid
|
|
|
+ * @param type $index 排名
|
|
|
+ * @param type $rewardName 奖励阶段名称
|
|
|
+ * @param type $reward 奖励内容
|
|
|
+ */
|
|
|
+ public static function SendWorldBossReward($zoneid, $uid, $index, $rewardName, $reward) {
|
|
|
+ $mail = new Ins_Email(null, enum_Mail_Type::SysTemMail, "世界boss奖励", #
|
|
|
+ "恭喜您在世界boss战斗中输出伤害排{$index}名,获得{$rewardName}奖励!", $reward);
|
|
|
+ self::InsertMail($zoneid, $uid, $mail);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 系统邮件 - 发送月卡奖励
|
|
|
* @param type $zoneid
|
|
@@ -387,7 +401,7 @@ class EmailProc {
|
|
|
}
|
|
|
|
|
|
// </editor-fold>
|
|
|
-//
|
|
|
+//
|
|
|
// <editor-fold defaultstate="collapsed" desc=" 辅助方法 ">
|
|
|
|
|
|
/**
|
|
@@ -410,7 +424,7 @@ class EmailProc {
|
|
|
}
|
|
|
}
|
|
|
self:: logMail($zoneid, $uid, $mail); # 将邮件写入Mysql中
|
|
|
- CornerSignEventProc::OnNewMails();
|
|
|
+// CornerSignEventProc::OnNewMails();
|
|
|
return $mail->mailId;
|
|
|
}
|
|
|
|
|
@@ -435,7 +449,7 @@ class EmailProc {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- *
|
|
|
+ *
|
|
|
* @param type $zoneid
|
|
|
* @param type $uid
|
|
|
* @param Ins_Email $mail
|
|
@@ -549,7 +563,7 @@ class EmailProc {
|
|
|
*/
|
|
|
private static function getMailQueue($zoneid, $uid) {
|
|
|
$key = MemKey_User::Mail_Queue_hash($zoneid, $uid); # redis-key:= 玩家邮件列表
|
|
|
- $keys = gMem()->hkeys($key); # 拉取所有id
|
|
|
+ $keys = gMem()->hkeys($key); # 拉取所有id
|
|
|
// var_dump($keys);
|
|
|
sort($keys); # 排序
|
|
|
$mkeys = array_slice($keys, 0, self::MaxMailContent); # 取固定数量100
|