mirror of
https://github.com/crmeb/CRMEB.git
synced 2026-10-29 14:01:07 +00:00
【程序目录】优化记录多语言
This commit is contained in:
parent
452709fdef
commit
79c67d014d
@ -610,23 +610,27 @@ class PublicController
|
||||
*/
|
||||
public function getLangJson()
|
||||
{
|
||||
/** @var LangTypeServices $langTypeServices */
|
||||
$langTypeServices = app()->make(LangTypeServices::class);
|
||||
/** @var LangCountryServices $langCountryServices */
|
||||
$langCountryServices = app()->make(LangCountryServices::class);
|
||||
|
||||
$request = app()->request;
|
||||
//获取接口传入的语言类型
|
||||
if (!$range = $request->header('cb-lang')) {
|
||||
if ($request->header('accept-language') !== null) {
|
||||
$range = explode(',', $request->header('accept-language'))[0];
|
||||
} else {
|
||||
$range = 'zh-CN';
|
||||
}
|
||||
// //根据浏览器语言显示,如果浏览器语言在库中找不到,则使用简体中文
|
||||
// if ($request->header('accept-language') !== null) {
|
||||
// $range = explode(',', $request->header('accept-language'))[0];
|
||||
// } else {
|
||||
// $range = 'zh-CN';
|
||||
// }
|
||||
//没有传入则使用系统默认语言显示
|
||||
$range = $langTypeServices->value(['is_default'=>1],'file_name');
|
||||
}
|
||||
// 获取type_id
|
||||
/** @var LangCountryServices $langCountryServices */
|
||||
$langCountryServices = app()->make(LangCountryServices::class);
|
||||
$typeId = $langCountryServices->value(['code' => $range], 'type_id') ?: 1;
|
||||
|
||||
// 获取缓存key
|
||||
/** @var LangTypeServices $langTypeServices */
|
||||
$langTypeServices = app()->make(LangTypeServices::class);
|
||||
$langData = $langTypeServices->getColumn(['status' => 1, 'is_del' => 0], 'file_name', 'id');
|
||||
$langStr = 'api_lang_' . str_replace('-', '_', $langData[$typeId]);
|
||||
|
||||
|
||||
@ -184,7 +184,7 @@ class StoreProductController
|
||||
/** @var StoreProductReplyServices $replyService */
|
||||
$replyService = app()->make(StoreProductReplyServices::class);
|
||||
$list = $replyService->getProductReplyList($id, $type);
|
||||
return app('json')->success(get_thumb_water($list, 'mid', ['pics']));
|
||||
return app('json')->success(get_thumb_water($list, 'big', ['pics']));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -33,7 +33,7 @@ class LuckLotteryController
|
||||
public function LotteryInfo(Request $request, $factor)
|
||||
{
|
||||
if (!$factor) return app('json')->fail(100100);
|
||||
$lottery = $this->services->getFactorLottery((int)$factor);
|
||||
$lottery = $this->services->getFactorLottery((int)$factor, '*', ['prize'], true);
|
||||
if (!$lottery) {
|
||||
return app('json')->fail(410318);
|
||||
}
|
||||
@ -62,6 +62,9 @@ class LuckLotteryController
|
||||
* 参与抽奖
|
||||
* @param Request $request
|
||||
* @return mixed
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
*/
|
||||
public function luckLottery(Request $request)
|
||||
{
|
||||
|
||||
@ -52,29 +52,63 @@ class CapitalFlowDao extends BaseDao
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
*/
|
||||
public function getRecordList($where, $page = 0, $limit = 0)
|
||||
public function getRecordList($where, int $page = 0, int $limit = 0)
|
||||
{
|
||||
$timeUnix = "%Y-%m-%d";
|
||||
switch ($where['type']) {
|
||||
case "day" :
|
||||
$timeUnix = "%Y-%m-%d";
|
||||
break;
|
||||
case "week" :
|
||||
$timeUnix = "%u";
|
||||
break;
|
||||
case "month" :
|
||||
$timeUnix = "%Y-%m";
|
||||
break;
|
||||
}
|
||||
$model = $this->search($where)
|
||||
->when(isset($where['type']) && $where['type'] !== '', function ($query) use ($where) {
|
||||
$timeUnix = '%d';
|
||||
switch ($where['type']) {
|
||||
case "day" :
|
||||
$timeUnix = "%d";
|
||||
break;
|
||||
case "week" :
|
||||
$timeUnix = "%u";
|
||||
break;
|
||||
case "month" :
|
||||
$timeUnix = "%m";
|
||||
break;
|
||||
}
|
||||
$query->field("FROM_UNIXTIME(add_time,'$timeUnix') as day,sum(if(price >= 0,price,0)) as income_price,sum(if(price < 0,price,0)) as exp_price,add_time,group_concat(id) as ids");
|
||||
->when(isset($where['type']) && $where['type'] !== '', function ($query) use ($where, $timeUnix) {
|
||||
$query->field("FROM_UNIXTIME(add_time,'$timeUnix') as day,sum(if(price >= 0,price,0)) as income_price,sum(if(price < 0,price,0)) as exp_price,add_time");
|
||||
$query->group("FROM_UNIXTIME(add_time, '$timeUnix')");
|
||||
});
|
||||
$count = $model->count();
|
||||
$list = $model->when($page && $limit, function ($query) use ($page, $limit) {
|
||||
$query->page($page, $limit);
|
||||
})->order('add_time desc')->select()->toArray();
|
||||
foreach ($list as &$item) {
|
||||
if ($where['type'] == 'day') {
|
||||
$item['ids'] = array_merge($this->getModel()->whereDay('add_time', $item['day'])->column('id'));
|
||||
} elseif ($where['type'] == 'week') {
|
||||
$day = $this->weekDayTime(date('Y'), $item['day']);
|
||||
$item['ids'] = array_merge($this->getModel()->whereWeek('add_time', $day)->column('id'));
|
||||
} elseif ($where['type'] == 'month') {
|
||||
$item['ids'] = array_merge($this->getModel()->whereMonth('add_time', $item['day'])->column('id'));
|
||||
}
|
||||
}
|
||||
return compact('list', 'count');
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取某年第几周的开始日期
|
||||
* @param int $year
|
||||
* @param int $week
|
||||
* @return array|false|string
|
||||
*/
|
||||
public function weekDayTime(int $year, int $week = 1)
|
||||
{
|
||||
$year_start = mktime(0, 0, 0, 1, 1, $year);
|
||||
// 判断第一天是否为第一周的开始
|
||||
if (intval(date('W', $year_start)) === 1) {
|
||||
$start = $year_start;//把第一天做为第一周的开始
|
||||
} else {
|
||||
$start = strtotime('+1 monday', $year_start);//把第一个周一作为开始
|
||||
}
|
||||
// 第几周的开始时间
|
||||
if ($week === 1) {
|
||||
$weekday = $start;
|
||||
} else {
|
||||
$weekday = strtotime('+' . ($week - 0) . ' monday', $start);
|
||||
}
|
||||
return date('Y-m-d', $weekday);
|
||||
}
|
||||
}
|
||||
|
||||
@ -511,22 +511,28 @@ class StoreSeckillServices extends BaseServices
|
||||
|
||||
//获取秒杀商品状态
|
||||
if ($storeInfo['status'] == 1) {
|
||||
/** @var SystemGroupDataServices $systemGroupDataService */
|
||||
$systemGroupDataService = app()->make(SystemGroupDataServices::class);
|
||||
$seckillTime = array_column($systemGroupDataService->getConfigNameValue('routine_seckill_time'), null, 'id');
|
||||
$config = $seckillTime[$storeInfo['time_id']] ?? false;
|
||||
if (!$config) {
|
||||
throw new ApiException(410322);
|
||||
}
|
||||
$now_hour = date('H', time());
|
||||
$start_hour = $config['time'];
|
||||
$end_hour = (int)$start_hour + (int)$config['continued'];
|
||||
if ($start_hour <= $now_hour && $end_hour > $now_hour) {
|
||||
$storeInfo['status'] = 1;
|
||||
} else if ($start_hour > $now_hour) {
|
||||
if ($storeInfo['start_time'] > time()) {
|
||||
$storeInfo['status'] = 2;
|
||||
} else {
|
||||
} elseif ($storeInfo['end_time'] < time()) {
|
||||
$storeInfo['status'] = 0;
|
||||
} else {
|
||||
/** @var SystemGroupDataServices $systemGroupDataService */
|
||||
$systemGroupDataService = app()->make(SystemGroupDataServices::class);
|
||||
$seckillTime = array_column($systemGroupDataService->getConfigNameValue('routine_seckill_time'), null, 'id');
|
||||
$config = $seckillTime[$storeInfo['time_id']] ?? false;
|
||||
if (!$config) {
|
||||
throw new ApiException(410322);
|
||||
}
|
||||
$now_hour = date('H', time());
|
||||
$start_hour = $config['time'];
|
||||
$end_hour = (int)$start_hour + (int)$config['continued'];
|
||||
if ($start_hour <= $now_hour && $end_hour > $now_hour) {
|
||||
$storeInfo['status'] = 1;
|
||||
} else if ($start_hour > $now_hour) {
|
||||
$storeInfo['status'] = 2;
|
||||
} else {
|
||||
$storeInfo['status'] = 0;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$storeInfo['status'] == 0;
|
||||
|
||||
@ -8,13 +8,14 @@
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: CRMEB Team <admin@crmeb.com>
|
||||
// +----------------------------------------------------------------------
|
||||
declare (strict_types = 1);
|
||||
declare (strict_types=1);
|
||||
|
||||
namespace app\services\message;
|
||||
|
||||
use app\dao\system\MessageSystemDao;
|
||||
use app\services\BaseServices;
|
||||
use crmeb\exceptions\ApiException;
|
||||
|
||||
/**
|
||||
* 站内信services类
|
||||
* Class MessageSystemServices
|
||||
@ -54,6 +55,9 @@ class MessageSystemServices extends BaseServices
|
||||
if (!$list) return ['list' => [], 'count' => 0];
|
||||
foreach ($list as &$item) {
|
||||
$item['add_time'] = time_tran($item['add_time']);
|
||||
if ($item['data'] != '') {
|
||||
$item['content'] = getLang($this->getMsgCode($item['mark']), json_decode($item['data'], true));
|
||||
}
|
||||
}
|
||||
return ['list' => $list, 'count' => $count];
|
||||
}
|
||||
@ -76,7 +80,90 @@ class MessageSystemServices extends BaseServices
|
||||
if ($info['look'] == 0) {
|
||||
$this->update($info['id'], ['look' => 1]);
|
||||
}
|
||||
if ($info['data'] != '') {
|
||||
$info['content'] = getLang($this->getMsgCode($info['mark']), json_decode($info['data'], true));
|
||||
}
|
||||
$info['add_time'] = time_tran($info['add_time']);
|
||||
return $info;
|
||||
}
|
||||
|
||||
public function getMsgCode($mark)
|
||||
{
|
||||
switch ($mark) {
|
||||
case 'admin_pay_success_code':
|
||||
$code = 500004;
|
||||
break;
|
||||
case 'bind_spread_uid':
|
||||
$code = 500005;
|
||||
break;
|
||||
case 'order_pay_success':
|
||||
$code = 500006;
|
||||
break;
|
||||
case 'order_take':
|
||||
$code = 500007;
|
||||
break;
|
||||
case 'price_revision':
|
||||
$code = 500008;
|
||||
break;
|
||||
case 'order_refund':
|
||||
$code = 500009;
|
||||
break;
|
||||
case 'recharge_success':
|
||||
$code = 500010;
|
||||
break;
|
||||
case 'integral_accout':
|
||||
$code = 500011;
|
||||
break;
|
||||
case 'order_brokerage':
|
||||
$code = 500012;
|
||||
break;
|
||||
case 'bargain_success':
|
||||
$code = 500013;
|
||||
break;
|
||||
case 'order_user_groups_success':
|
||||
$code = 500014;
|
||||
break;
|
||||
case 'send_order_pink_fial':
|
||||
$code = 500015;
|
||||
break;
|
||||
case 'open_pink_success':
|
||||
$code = 500016;
|
||||
break;
|
||||
case 'user_extract':
|
||||
$code = 500017;
|
||||
break;
|
||||
case 'user_balance_change':
|
||||
$code = 500018;
|
||||
break;
|
||||
case 'recharge_order_refund_status':
|
||||
$code = 500019;
|
||||
break;
|
||||
case 'send_order_refund_no_status':
|
||||
$code = 500020;
|
||||
break;
|
||||
case 'send_order_apply_refund':
|
||||
$code = 500021;
|
||||
break;
|
||||
case 'order_deliver_success':
|
||||
case 'order_postage_success':
|
||||
$code = 500022;
|
||||
break;
|
||||
case 'send_order_pink_clone':
|
||||
$code = 500023;
|
||||
break;
|
||||
case 'can_pink_success':
|
||||
$code = 500024;
|
||||
break;
|
||||
case 'kefu_send_extract_application':
|
||||
$code = 500025;
|
||||
break;
|
||||
case 'send_admin_confirm_take_over':
|
||||
$code = 500026;
|
||||
break;
|
||||
case 'order_pay_false':
|
||||
$code = 500027;
|
||||
break;
|
||||
}
|
||||
return $code;
|
||||
}
|
||||
}
|
||||
|
||||
@ -67,6 +67,7 @@ class SystemMsgService extends NoticeService
|
||||
$sdata['title'] = $title;
|
||||
$sdata['type'] = 1;
|
||||
$sdata['add_time'] = time();
|
||||
$sdata['data'] = json_encode($data);
|
||||
/** @var MessageSystemServices $MessageSystemServices */
|
||||
$MessageSystemServices = app()->make(MessageSystemServices::class);
|
||||
$MessageSystemServices->save($sdata);
|
||||
@ -105,6 +106,7 @@ class SystemMsgService extends NoticeService
|
||||
$save[$key]['title'] = $title;
|
||||
$save[$key]['type'] = 2;
|
||||
$save[$key]['add_time'] = time();
|
||||
$save[$key]['data'] = json_encode($data);
|
||||
}
|
||||
$MessageSystemServices->saveAll($save);
|
||||
}
|
||||
|
||||
@ -52,7 +52,7 @@ class QrcodeServices extends BaseServices
|
||||
$where['third_id'] = $id;
|
||||
$where['third_type'] = $type;
|
||||
$res = $this->dao->getOne($where);
|
||||
if ($res) {
|
||||
if (!$res) {
|
||||
$this->createTemporaryQrcode($id, $type);
|
||||
$res = $this->getTemporaryQrcode($type, $id);
|
||||
} else if (empty($res['expire_seconds']) || $res['expire_seconds'] < time()) {
|
||||
|
||||
@ -24,11 +24,13 @@ class OutInterfaceServices extends BaseServices
|
||||
{
|
||||
$rule = trim(strtolower($request->rule()->getRule()));
|
||||
$method = trim(strtolower($request->method()));
|
||||
$authList = $this->dao->getColumn([['id', 'in', $request->outInfo()['rules']]], 'method,url');
|
||||
$authList = $this->dao->getColumn([['id', 'in', $request->outInfo()['rules']], ['type', '=', 1]], 'method,url');
|
||||
$rolesAuth = [];
|
||||
foreach ($authList as $item) {
|
||||
$rolesAuth[trim(strtolower($item['method']))][] = trim(strtolower(str_replace(' ', '', $item['url'])));
|
||||
}
|
||||
$rule = str_replace('<', '{', $rule);
|
||||
$rule = str_replace('>', '}', $rule);
|
||||
if (in_array('/' . $rule, $rolesAuth[$method])) {
|
||||
return true;
|
||||
} else {
|
||||
|
||||
@ -1368,7 +1368,7 @@ class StoreProductServices extends BaseServices
|
||||
|
||||
/** @var StoreProductReplyServices $storeProductReplyService */
|
||||
$storeProductReplyService = app()->make(StoreProductReplyServices::class);
|
||||
$data['reply'] = get_thumb_water($storeProductReplyService->getRecProductReply($id), 'small', ['pics']);
|
||||
$data['reply'] = get_thumb_water($storeProductReplyService->getRecProductReply($id), 'big', ['pics']);
|
||||
[$replyCount, $goodReply, $replyChance] = $storeProductReplyService->getProductReplyData($id);
|
||||
$data['replyChance'] = $replyChance;
|
||||
$data['replyCount'] = $replyCount;
|
||||
|
||||
@ -43,7 +43,7 @@ class AdminAuthServices extends BaseServices
|
||||
* @return array
|
||||
* @throws \Psr\SimpleCache\InvalidArgumentException
|
||||
*/
|
||||
public function parseToken(string $token,int $code = 110003): array
|
||||
public function parseToken(string $token, int $code = 110003): array
|
||||
{
|
||||
/** @var CacheService $cacheService */
|
||||
$cacheService = app()->make(CacheService::class);
|
||||
@ -96,7 +96,7 @@ class AdminAuthServices extends BaseServices
|
||||
$this->authFailAfter($id, $type);
|
||||
throw new AuthException($code);
|
||||
}
|
||||
if ($pwd !== md5($adminInfo->pwd)) {
|
||||
if ($pwd !== '' && $pwd !== md5($adminInfo->pwd)) {
|
||||
throw new AuthException($code);
|
||||
}
|
||||
|
||||
|
||||
@ -408,8 +408,11 @@ class UserBillServices extends BaseServices
|
||||
* @param array $where_time
|
||||
* @param string $field
|
||||
* @return array
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
*/
|
||||
public function getIntegralList(int $uid = 0, $where_time = [], string $field = '*')
|
||||
public function getIntegralList(int $uid = 0, array $where_time = [], string $field = '*')
|
||||
{
|
||||
[$page, $limit] = $this->getPageValue();
|
||||
$where = ['category' => 'integral'];
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user