|
|
@@ -14,10 +14,11 @@ use crmeb\traits\CurdControllerTrait;
|
|
|
use think\facade\Route as Url;
|
|
|
use crmeb\basic\BaseModel;
|
|
|
use app\models\user\UserLevel as Level;
|
|
|
+use app\models\user\UserAgentLevel as AgentLevel;
|
|
|
use app\admin\model\order\StoreOrder;
|
|
|
use app\admin\model\wechat\WechatMessage;
|
|
|
use app\admin\model\store\{StoreVisit, StoreCouponUser};
|
|
|
-use app\admin\model\system\{SystemUserLevel, SystemUserTask};
|
|
|
+use app\admin\model\system\{SystemUserAgentLevel, SystemUserLevel, SystemUserTask};
|
|
|
use crmeb\services\{FormBuilder as Form, UtilService as Util, JsonService as Json};
|
|
|
use app\admin\model\user\{User as UserModel, UserBill as UserBillAdmin, UserLevel, UserGroup, UserTaskFinish};
|
|
|
|
|
|
@@ -110,6 +111,36 @@ class User extends AuthController
|
|
|
$this->assign(compact('form'));
|
|
|
return $this->fetch('public/form-builder');
|
|
|
}
|
|
|
+ /**
|
|
|
+ * 赠送代理会员等级
|
|
|
+ * @param int $uid
|
|
|
+ * @return string|void
|
|
|
+ * @throws \think\db\exception\DataNotFoundException
|
|
|
+ * @throws \think\db\exception\DbException
|
|
|
+ * @throws \think\db\exception\ModelNotFoundException
|
|
|
+ */
|
|
|
+ public function give_agent_level($uid = 0)
|
|
|
+ {
|
|
|
+ if (!$uid) return $this->failed('缺少参数');
|
|
|
+ $level = AgentLevel::getUserLevel($uid);
|
|
|
+ //获取当前会员等级
|
|
|
+ if ($level === false)
|
|
|
+ $grade = 0;
|
|
|
+ else
|
|
|
+ $grade = AgentLevel::getUserLevelInfo($level, 'grade');
|
|
|
+ //查询高于当前会员的所有会员等级
|
|
|
+ $systemLevelList = SystemUserLevel::where('grade', '>', $grade)->where(['is_show' => 1, 'is_del' => 0])->field(['name', 'id'])->select();
|
|
|
+ $field[] = Form::select('level_id', '会员等级')->setOptions(function () use ($systemLevelList) {
|
|
|
+ $menus = [];
|
|
|
+ foreach ($systemLevelList as $menu) {
|
|
|
+ $menus[] = ['value' => $menu['id'], 'label' => $menu['name']];
|
|
|
+ }
|
|
|
+ return $menus;
|
|
|
+ })->filterable(1);
|
|
|
+ $form = Form::make_post_form('赠送会员', $field, Url::buildUrl('save_give_agent_level', ['uid' => $uid]), 2);
|
|
|
+ $this->assign(compact('form'));
|
|
|
+ return $this->fetch('public/form-builder');
|
|
|
+ }
|
|
|
public function edit_franchisee($uid)
|
|
|
{
|
|
|
if (!$uid) return $this->failed('数据不存在');
|
|
|
@@ -291,7 +322,78 @@ class User extends AuthController
|
|
|
else
|
|
|
return Json::fail('清除失败');
|
|
|
}
|
|
|
+ /*
|
|
|
+ * 赠送代理会员等级
|
|
|
+ * @paran int $uid
|
|
|
+ * @return json
|
|
|
+ * */
|
|
|
+ public function save_give_agent_level($uid = 0)
|
|
|
+ {
|
|
|
+ if (!$uid) return Json::fail('缺少参数');
|
|
|
+ list($level_id) = Util::postMore([
|
|
|
+ ['level_id', 0],
|
|
|
+ ], $this->request, true);
|
|
|
+ //查询当前选择的会员等级
|
|
|
+ $systemLevel = SystemUserAgentLevel::where(['is_show' => 1, 'is_del' => 0, 'id' => $level_id])->find();
|
|
|
+ if (!$systemLevel) return Json::fail('您选择赠送的会员等级不存在!');
|
|
|
+ //检查是否拥有此会员等级
|
|
|
+ $level = \app\admin\model\user\UserAgentLevel::where(['uid' => $uid, 'level_id' => $level_id, 'is_del' => 0])->field('valid_time,is_forever')->find();
|
|
|
+ if ($level) if (!$level['is_forever'] && time() < $level['valid_time']) return Json::fail('此用户已有该会员等级,无法再次赠送');
|
|
|
+ //设置会员过期时间
|
|
|
+ $add_valid_time = (int)$systemLevel->valid_date * 86400;
|
|
|
+ UserModel::commitTrans();
|
|
|
+ try {
|
|
|
+ //保存会员信息
|
|
|
+ $res = \app\admin\model\user\UserAgentLevel::create([
|
|
|
+ 'is_forever' => $systemLevel->is_forever,
|
|
|
+ 'status' => 1,
|
|
|
+ 'is_del' => 0,
|
|
|
+ 'grade' => $systemLevel->grade,
|
|
|
+ 'uid' => $uid,
|
|
|
+ 'add_time' => time(),
|
|
|
+ 'level_id' => $level_id,
|
|
|
+ 'discount' => $systemLevel->discount,
|
|
|
+ 'valid_time' => $systemLevel->discount ? $add_valid_time + time() : 0,
|
|
|
+ 'mark' => '尊敬的用户【' . UserModel::where('uid', $uid)->value('nickname') . '】在' . date('Y-m-d H:i:s', time()) . '赠送代理会员等级成为' . $systemLevel['name'] . '会员',
|
|
|
+ ]);
|
|
|
|
|
|
+ //提取等级任务并记录完成情况
|
|
|
+ $levelIds = [$level_id];
|
|
|
+ $lowGradeLevelIds = SystemUserAgentLevel::where('grade', '<', $systemLevel->grade)->where(['is_show' => 1, 'is_del' => 0])->column('id', 'id');
|
|
|
+ if (count($lowGradeLevelIds)) $levelIds = array_merge($levelIds, $lowGradeLevelIds);
|
|
|
+// $taskIds = SystemUserTask::where('level_id', 'in', $levelIds)->column('id', 'id');
|
|
|
+ $inserValue = [];
|
|
|
+// foreach ($taskIds as $id) {
|
|
|
+// $inserValue[] = ['uid' => $uid, 'task_id' => $id, 'status' => 1, 'add_time' => time()];
|
|
|
+// }
|
|
|
+ $res = $res && UserModel::where('uid', $uid)->update(['level' => $level_id]);
|
|
|
+// if ($inserValue) $res && UserTaskFinish::insertAll($inserValue);
|
|
|
+ if ($res) {
|
|
|
+ UserModel::commitTrans();
|
|
|
+ return Json::successful('赠送成功');
|
|
|
+ } else {
|
|
|
+ UserModel::rollbackTrans();
|
|
|
+ return Json::successful('赠送失败');
|
|
|
+ }
|
|
|
+ } catch (\Exception $e) {
|
|
|
+ UserModel::rollbackTrans();
|
|
|
+ return Json::fail('赠送失败');
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /*
|
|
|
+ * 清除会员等级
|
|
|
+ * @param int $uid
|
|
|
+ * @return json
|
|
|
+ * */
|
|
|
+ public function del_agent_level($uid = 0)
|
|
|
+ {
|
|
|
+ if (!$uid) return Json::fail('缺少参数');
|
|
|
+ if (\app\admin\model\user\UserAgentLevel::cleanUpLevel($uid))
|
|
|
+ return Json::successful('清除成功');
|
|
|
+ else
|
|
|
+ return Json::fail('清除失败');
|
|
|
+ }
|
|
|
/**
|
|
|
* 修改user表状态
|
|
|
*
|