Compare commits

..

No commits in common. "f33cdcc5dea096773f1ceaddf1eb0c1aa5f71240" and "64fd6cdc1a79e872d55dc4e5a548e2e5974d2301" have entirely different histories.

19 changed files with 68 additions and 73 deletions

View File

@ -104,11 +104,19 @@
};
layui.excel.setExportCellStyle(data, 'A2:' + lastCol + data.length, {
s: style1
}, function (rawCell, newCell, row, config, currentRow, currentCol, fieldKey) {
}, function (oldCell, newCell, row, config, currentRow, currentCol, fieldKey) {
// oldCell:原有数据,
// newCell:根据批量设置规则自动生成的样式
// row:所在行数据
// config:传入的配置
// currentRow:当前行索引
// currentCol:当前列索引
// fieldKey:当前字段索引
/* 判断并转换单元格数据为对象,以便初始化样式 */
typeof rawCell !== 'object' && (rawCell = {v: rawCell});
rawCell.s = Object.assign({}, style2, rawCell.s || {});
return (currentRow % 2 === 0) ? newCell : rawCell;
if (typeof oldCell !== 'object') oldCell = {v: oldCell};
oldCell.s = style2;
return (currentRow % 2 === 0) ? newCell : oldCell;
});
// 设置表格行宽高,需要设置最后的行或列宽高,否则部分不生效

View File

@ -3,7 +3,6 @@
namespace app\data\controller\api\auth;
use app\data\controller\api\Auth;
use app\data\model\BaseUserUpgrade;
use app\data\model\DataUser;
use app\data\service\RebateService;
use app\data\service\UserAdminService;
@ -103,7 +102,13 @@ class Center extends Auth
*/
public function levels()
{
$levels = BaseUserUpgrade::items();
$levels = UserUpgradeService::instance()->levels();
foreach ($levels as &$level) {
$level['prizes'] = [];
foreach (str2arr($level['rebate_rule']) as $code) {
$level['prizes'][$code] = RebateService::instance()->name($code);
}
}
$this->success('获取用户等级', array_values($levels));
}

View File

@ -3,7 +3,6 @@
namespace app\data\controller\base;
use app\data\model\BaseUserDiscount;
use app\data\model\BaseUserUpgrade;
use app\data\service\UserUpgradeService;
use think\admin\Controller;
use think\admin\helper\QueryHelper;
@ -65,7 +64,7 @@ class Discount extends Controller
}
$vo['items'] = json_encode($rule, JSON_UNESCAPED_UNICODE);
} else {
$this->levels = BaseUserUpgrade::items();
$this->levels = UserUpgradeService::levels();
if (empty($this->levels)) $this->error('未配置用户等级!');
foreach ($vo['items'] ?? [] as $item) {
$vo["_level_{$item['level']}"] = $item['discount'];

View File

@ -27,6 +27,20 @@ class Upgrade extends Controller
BaseUserUpgrade::mQuery()->order('number asc')->layTable();
}
/**
* 数据列表处理
* @param array $data
*/
protected function _page_filter(array &$data)
{
foreach ($data as &$vo) {
$vo['rebate_rule'] = str2arr($vo['rebate_rule']);
foreach ($vo['rebate_rule'] as &$v) {
$v = RebateService::instance()->name($v);
}
}
}
/**
* 添加用户等级
* @auth true
@ -56,8 +70,10 @@ class Upgrade extends Controller
if ($this->request->isGet()) {
$this->prizes = RebateService::PRIZES;
$vo['number'] = $vo['number'] ?? BaseUserUpgrade::maxNumber();
$vo['rebate_rule'] = str2arr($vo['rebate_rule'] ?? '');
} else {
$vo['utime'] = time();
$vo['rebate_rule'] = arr2str($vo['rebate_rule'] ?? []);
// 用户升级条件开关
$vo['goods_vip_status'] = isset($vo['goods_vip_status']) ? 1 : 0;
$vo['teams_users_status'] = isset($vo['teams_users_status']) ? 1 : 0;

View File

@ -8,6 +8,7 @@ use app\data\service\NewsService;
use think\admin\Controller;
use think\admin\extend\CodeExtend;
use think\admin\helper\QueryHelper;
use think\admin\model\SystemBase;
/**
* 文章内容管理

View File

@ -4,7 +4,6 @@ namespace app\data\controller\shop;
use app\data\model\BaseUserDiscount;
use app\data\model\BaseUserPayment;
use app\data\model\BaseUserUpgrade;
use app\data\model\ShopGoods;
use app\data\model\ShopGoodsCate;
use app\data\model\ShopGoodsItem;
@ -139,7 +138,7 @@ class Goods extends Controller
$this->marks = ShopGoodsMark::items();
$this->cates = ShopGoodsCate::treeTable(true);
$this->trucks = ExpressService::instance()->templates();
$this->upgrades = BaseUserUpgrade::items();
$this->upgrades = UserUpgradeService::instance()->levels();
$this->payments = BaseUserPayment::mk()->where(['status' => 1, 'deleted' => 0])->order('sort desc,id desc')->column('type,code,name', 'code');
$this->discounts = BaseUserDiscount::mk()->where(['status' => 1, 'deleted' => 0])->order('sort desc,id desc')->column('id,name,items', 'id');
// 商品规格处理

View File

@ -2,7 +2,6 @@
namespace app\data\controller\user;
use app\data\model\BaseUserUpgrade;
use app\data\model\DataUser;
use app\data\service\UserAdminService;
use app\data\service\UserUpgradeService;
@ -26,7 +25,7 @@ class Admin extends Controller
public function index()
{
// 用户等级分组
[$ts, $ls] = [[], BaseUserUpgrade::items()];
[$ts, $ls] = [[], UserUpgradeService::instance()->levels()];
$ts['ta'] = ['vip' => '', 'name' => '全部用户', 'count' => 0];
foreach ($ls as $k => $v) $ts["t{$k}"] = ['vip' => $k, 'name' => $v['name'], 'count' => 0,];
$ts['to'] = ['vip' => '', 'name' => '其他用户', 'count' => 0];
@ -63,7 +62,7 @@ class Admin extends Controller
*/
protected function _page_filter(array &$data)
{
$this->upgrades = BaseUserUpgrade::items();
$this->upgrades = UserUpgradeService::instance()->levels();
UserAdminService::instance()->buildByUid($data, 'pid1', 'from');
}
@ -140,7 +139,7 @@ class Admin extends Controller
public function parent()
{
if ($this->request->isGet()) {
$this->upgrades = BaseUserUpgrade::items();
$this->upgrades = UserUpgradeService::instance()->levels();
$data = $this->_vali(['uuid.require' => '待操作UID不能为空']);
// 排除下级用户

View File

@ -2,7 +2,6 @@
namespace app\data\controller\user;
use app\data\model\BaseUserUpgrade;
use app\data\model\DataUser;
use app\data\model\DataUserBalance;
use app\data\service\UserAdminService;
@ -53,7 +52,7 @@ class Balance extends Controller
UserAdminService::instance()->buildByUid($data);
$uids = array_unique(array_column($data, 'create_by'));
$users = SystemUser::mk()->whereIn('id', $uids)->column('username', 'id');
$this->upgrades = BaseUserUpgrade::items();
$this->upgrades = UserUpgradeService::instance()->levels();
foreach ($data as &$vo) {
$vo['upgradeinfo'] = $this->upgrades[$vo['upgrade']] ?? [];
$vo['create_byname'] = $users[$vo['create_by']] ?? '';
@ -85,7 +84,7 @@ class Balance extends Controller
$data['code'] = CodeExtend::uniqidDate('20', 'B');
}
if ($this->request->isGet()) {
$this->upgrades = BaseUserUpgrade::items();
$this->upgrades = UserUpgradeService::instance()->levels();
}
if ($this->request->isPost()) {
$data['create_by'] = AdminService::instance()->getUserId();

View File

@ -2,7 +2,6 @@
namespace app\data\controller\user;
use app\data\model\BaseUserUpgrade;
use app\data\model\DataUser;
use app\data\model\DataUserRebate;
use app\data\model\ShopOrderItem;
@ -84,7 +83,7 @@ class Rebate extends Controller
$this->title = '用户返利配置';
if ($this->request->isGet()) {
$this->data = sysdata($this->skey);
$this->levels = BaseUserUpgrade::items();
$this->levels = UserUpgradeService::instance()->levels();
$this->fetch();
} else {
sysdata($this->skey, $this->request->post());

View File

@ -2,7 +2,6 @@
namespace app\data\model;
use app\data\service\RebateService;
use think\admin\Model;
/**
@ -15,12 +14,15 @@ class BaseUserUpgrade extends Model
/**
* 获取用户等级
* @return array
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public static function items(): array
{
return static::mk()->where(['status' => 1])
->hidden(['id', 'utime', 'status', 'create_at'])
->order('number asc')->column('*', 'number');
->order('number asc')->select()->toArray();
}
/**
@ -32,30 +34,6 @@ class BaseUserUpgrade extends Model
return static::mk()->max('number', 0) + 1;
}
/**
* 规格化奖励配置
* @param mixed $value
* @return array
*/
public function getRebateRuleAttr($value): array
{
[$data, $rules] = [[], array_column(RebateService::PRIZES, 'code')];
foreach (is_string($value) ? str2arr($value, ',', $rules) : [] as $rule) {
$data[$rule] = RebateService::name($rule);
}
return $data;
}
/**
* 格式化奖励配置
* @param mixed $value
* @return string
*/
public function setRebateRuleAttr($value): string
{
return is_array($value) ? arr2str($value) : $value;
}
/**
* 格式化创建时间
* @param string $value

View File

@ -11,13 +11,5 @@ use think\admin\Model;
*/
class ShopGoodsItem extends Model
{
/**
* 格式化创建时间
* @param string $value
* @return string
*/
public function getCreateAtAttr(string $value): string
{
return format_datetime($value);
}
}

View File

@ -20,14 +20,4 @@ class ShopGoodsMark extends Model
$map = ['status' => 1];
return static::mk()->where($map)->order('sort desc,id desc')->column('name');
}
/**
* 格式化创建时间
* @param string $value
* @return string
*/
public function getCreateAtAttr(string $value): string
{
return format_datetime($value);
}
}

View File

@ -136,7 +136,7 @@ class OrderService extends Service
$items = $query->withoutField('id,uuid,status,deleted,create_at')->whereIn('order_no', $nobs)->select()->toArray();
// 关联用户数据
$fields = 'phone,username,nickname,headimg,status,vip_code,vip_name';
UserAdminService::instance()->buildByUid($data, 'uuid', 'user', $fields);
if ($data) UserAdminService::instance()->buildByUid($data, 'uuid', 'user', $fields);
if ($from) UserAdminService::instance()->buildByUid($data, 'puid1', 'from', $fields);
foreach ($data as &$vo) {
[$vo['sales'], $vo['truck'], $vo['items']] = [0, $trucks[$vo['order_no']] ?? [], []];

View File

@ -232,7 +232,7 @@ abstract class PaymentService
*/
public static function name(string $type): string
{
return static::TYPES[$type]['name'] ?? $type;
return self::TYPES[$type]['name'] ?? $type;
}
/**
@ -243,7 +243,7 @@ abstract class PaymentService
public static function getTypeAll(array $types = []): array
{
$binds = array_keys(UserAdminService::TYPES);
foreach (static::TYPES as $k => $v) if (isset($v['bind'])) {
foreach (self::TYPES as $k => $v) if (isset($v['bind'])) {
if (array_intersect($v['bind'], $binds)) $types[$k] = $v;
}
return $types;

View File

@ -417,7 +417,7 @@ class RebateService extends Service
* @param string $prize
* @return string
*/
public static function name(string $prize): string
public function name(string $prize): string
{
return self::PRIZES[$prize]['name'] ?? $prize;
}

View File

@ -17,6 +17,16 @@ use think\admin\Service;
class UserUpgradeService extends Service
{
/**
* 获取用户等级数据
* @return array
*/
public static function levels(): array
{
$model = BaseUserUpgrade::mk()->where(['status' => 1]);
return $model->order('number asc')->column('*', 'number');
}
/**
* 尝试绑定上级代理
* @param integer $uuid 用户UID
@ -76,7 +86,7 @@ class UserUpgradeService extends Service
$user = DataUser::mk()->where(['id' => $uuid])->find();
if (empty($user)) return true;
// 初始化等级参数
$levels = BaseUserUpgrade::items();
$levels = $this->levels();
[$vipName, $vipCode, $vipTeam] = [$levels[0]['name'] ?? '普通用户', 0, []];
// 统计用户数据
foreach ($levels as $key => $level) if ($level['upgrade_team'] === 1) $vipTeam[] = $key;

View File

@ -35,9 +35,9 @@
// 初始化图片背景
cropper = new Cropper(image, options = {
viewMode: 1, aspectRatio: 1, ready: function () {
aspectRatio: 1, ready() {
if (typeof defaData === 'object') cropper.setData(defaData);
}, crop: function () {
}, crop() {
$('#inputImage').val(image.src);
$('#inputData').val(JSON.stringify(cropper.getData()));
},

View File

@ -146,7 +146,7 @@
<fieldset class="layui-form-item">
<legend><span class="layui-badge layui-bg-cyan">奖利规则</span></legend>
<div class="notselect relative">
{foreach $prizes as $prize}{if isset($vo.rebate_rule) && is_array($vo.rebate_rule) && isset($vo.rebate_rule[$prize.code])}
{foreach $prizes as $prize}{if isset($vo.rebate_rule) && is_array($vo.rebate_rule) && in_array($prize.code, $vo.rebate_rule)}
<label class="think-checkbox"><input lay-ignore name="rebate_rule[]" type="checkbox" value="{$prize.code}" checked> {$prize.name}</label>
{else}
<label class="think-checkbox"><input lay-ignore name="rebate_rule[]" type="checkbox" value="{$prize.code}"> {$prize.name}</label>

View File

@ -72,7 +72,7 @@
},
{
field: 'rebate_rule', title: '奖利规则', align: 'center', minWidth: 100, templet: function (d) {
return (d.html = ''), layui.each(d.rebate_rule || {}, function (k, rule) {
return (d.html = ''), (d.rebate_rule || []).forEach(function (rule) {
d.html += laytpl('<span class="layui-badge layui-bg-gray">{{d.v}}</span>').render({v: rule});
}), d.html || '-';
}