jh-admin/addon/store/shopapi/controller/Member.php

123 lines
4.5 KiB
PHP

<?php
/**
* SaaSMall商城系统 - 团队十年电商经验汇集巨献!
* =========================================================
* Copy right 2019-2029 上海牛之云网络科技有限公司, 保留所有权利。
* ----------------------------------------------
* 官方网址: https://www.gobuysaas.com
* 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和使用。
* 任何企业和个人不允许对程序代码以任何形式任何目的再发布。
* =========================================================
*/
namespace addon\store\shopapi\controller;
use addon\store\model\StoreMember;
use addon\coupon\model\MemberCoupon;
use app\model\member\Member as MemberModel;
/**
* 会员管理 控制器
*/
class Member extends BaseStoreApi
{
public function lists(){
$page_index = $this->params['page'] ?? 1;
$page_size = $this->params['page_size'] ?? PAGE_LIST_ROWS;
$search_text = $this->params['search_text'] ?? '';
$condition = [
['nsm.store_id', '=', $this->store_id]
];
if (!empty($search_text)) $condition[] = ['mobile', 'like', "%" . $search_text . "%"];
$member = new StoreMember();
$list = $member->getStoreMemberPageList($condition, $page_index, $page_size, 'nsm.create_time desc');
return $this->response($list);
}
/*
* 会员信息
*/
public function info(){
$member_id = $this->params['member_id'] ?? 0;
if (empty($member_id)) return $this->response($this->error());
$condition = [
['nsm.store_id', '=', $this->store_id],
['nsm.member_id', '=', $member_id]
];
$field = 'nm.member_id, nm.source_member, nm.username, nm.nickname, nm.sex, nm.mobile, nm.email, nm.headimg, nm.status, nm.birthday, nm.point, nm.balance, nm.balance_money, nm.growth, nm.order_money, nm.order_num, nsm.store_id, nsm.create_time';
$join = [
[
'member nm',
'nsm.member_id = nm.member_id',
'inner'
],
];
$member = new StoreMember();
$data = $member->getMemberInfo($condition, $field, 'nsm', $join);
$coupon_model = new MemberCoupon();
$coupon_num = $coupon_model->getMemberCouponNum($member_id, 1, $this->site_id)[ 'data' ];
$data[ 'data' ][ 'coupon_num' ] = $coupon_num;
return $this->response($data);
}
public function searchMember()
{
$search_text = isset($this->params[ 'search_text' ]) ? $this->params[ 'search_text' ] : '';
$search_type = isset($this->params[ 'search_type' ]) ? $this->params[ 'search_type' ] : '';
if ($search_type == 'mobile' || $search_type == 'nickname') {
$search_type = 'm.' . $search_type;
} else {
$search_type = 'm.nickname|m.mobile';
}
$condition = [
['sm.store_id', '=', $this->store_id],
[$search_type, '=', $search_text],
['m.is_delete', '=', 0]
];
$join = [
[ 'member m', 'm.member_id = sm.member_id', 'inner' ]
];
$member = new StoreMember();
$data = $member->getMemberInfo($condition, 'm.member_id', 'sm', $join);
return $this->response($data);
}
public function addMember(){
$data = [
'site_id' => $this->site_id,
'username' => '',
'mobile' => $this->params['mobile'] ?? '',
'email' => '',
'status' => 1,
'headimg' => '',
'member_level' => $this->params['member_level'],
'member_level_name' => $this->params['member_level_name'],
'nickname' => $this->params['nickname'],
'sex' => $this->params['sex'] ?? 0,
'birthday' => $this->params['sex'] ? strtotime($this->params['sex']) : 0,
'realname' => $this->params['realname'] ?? '',
'reg_time' => time(),
];
if (empty($data['mobile'])) return $this->response($this->error('', '手机号不能为空'));
if (empty($data['nickname'])) $data['nickname'] = $data['mobile'];
$member_model = new MemberModel();
$add_res = $member_model->addMember($data);
if ($add_res['code'] != 0) return $this->response($add_res);
$res = (new StoreMember())->addStoreMember($this->store_id, $add_res['data']);
$this->addLog("添加会员" . $data[ 'username' ] . $data[ 'mobile' ]);
return $this->response($add_res);
}
}