1421 行
57 KiB
PHP
可执行文件
1421 行
57 KiB
PHP
可执行文件
<?php
|
|
|
|
namespace Agent\Controller;
|
|
|
|
|
|
use Common\Business\Merchant;
|
|
use Common\Business\MerchantConfig;
|
|
use Common\Business\Plug;
|
|
use Common\Business\Role;
|
|
use Common\Business\Warehouse;
|
|
use Common\Model\JurisdictionUserModel;
|
|
use Common\Model\MerchantConfigModel;
|
|
use Common\Model\RetailAgentModel;
|
|
use Common\Model\RetailMerchantConfigModel;
|
|
use Common\Model\RetailMerchantModel;
|
|
use Common\Model\RetailStoreModel;
|
|
use Common\Model\WxappinfoModel;
|
|
use Retail\Model\ThirdConfigModel;
|
|
use Retail\Model\ThirdErpSetModel;
|
|
use Super\Business\ThirdErpSet;
|
|
|
|
//[1.9.20]
|
|
|
|
/**
|
|
* 商户管理
|
|
* Class MerchantController
|
|
* @package Agent\Controller
|
|
*/
|
|
class MerchantController extends BaseController
|
|
{
|
|
//商户信息展示管理
|
|
public function index()
|
|
{
|
|
$user = session('agent_userinfo');
|
|
$AgentModel = D('RetailAgent');
|
|
$map = array(
|
|
$AgentModel::ID => $user['id'],
|
|
);
|
|
$set_server_pay = $AgentModel->getFindField($map, $AgentModel::SET_SERVER_PAY);
|
|
$this->assign('set_server_pay', $set_server_pay);
|
|
$this->display();
|
|
}
|
|
|
|
public function getMerchant()
|
|
{
|
|
//获取商户信息
|
|
if (IS_POST) {
|
|
$key = I('post.keyword');
|
|
$page = I('post.page');
|
|
$limit = I('post.limit');
|
|
if (!empty($key)) {
|
|
$map['name|mobile'] = array("like", "%" . $key . "%");
|
|
}
|
|
$user = session('agent_userinfo');
|
|
$map['partnerid'] = $user['partnerid'];
|
|
$map['agentid'] = $user['id'];
|
|
$map['status'] = ['in', '1,2'];
|
|
$MerchantModel = new RetailMerchantModel();
|
|
$StoreModel = new RetailStoreModel();
|
|
$list = $MerchantModel->getSelect($map, '*', 'id desc', $page . ',' . $limit);
|
|
$count = $MerchantModel->getCount($map);
|
|
foreach ($list as &$val) {
|
|
$val['addtime'] = newDate('Y-m-d H:i:s', $val['addtime']);
|
|
$val['begin_time'] = newDate('Y-m-d H:i:s', $val['begin_time']);
|
|
$val['end_time'] = newDate('Y-m-d H:i:s', $val['end_time']);
|
|
$val['meal_name'] = M('retail_meal')->where(array('id' => $val['mealid']))->getField('name');
|
|
//剩余可创建数量
|
|
$store_num = $StoreModel->getCount(['merchantid' => $val['id'], 'state' => 0]);
|
|
$val['less_count'] = round($val['storenum'] - $store_num);
|
|
}
|
|
$this->ajaxReturn(callBack(statusCode()['success'], !empty($list) ? '获取成功' : '暂无数据', [
|
|
'list' => $list,
|
|
'count' => $count
|
|
]));
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* 获取供选择的商户列表
|
|
*/
|
|
public function getChooseMerchant()
|
|
{
|
|
$MerchantModel = new RetailMerchantModel();
|
|
$user = session('agent_userinfo');
|
|
$map = [
|
|
'agentid' => $user['id'],
|
|
'status' => ['in', '1,2'],
|
|
];
|
|
$list = $MerchantModel->getSelect($map, 'id,name,status', 'id desc');
|
|
$this->ajaxReturn(callBack(statusCode()['success'], empty($list) ? '暂无数据' : '获取成功', [
|
|
'list' => $list ? $list : []]
|
|
));
|
|
}
|
|
|
|
|
|
//添加商户
|
|
public function addMerchant()
|
|
{
|
|
if (IS_POST) {
|
|
//执行添加商户的操作
|
|
$user = session('agent_userinfo');
|
|
$post = I('post.');
|
|
$time = $_SERVER['REQUEST_TIME'];
|
|
//商户类型 1默认系统 2微礼平台
|
|
$platform_type = $post['platform_type'] ? $post['platform_type'] : 1;
|
|
switch ($platform_type) {
|
|
case 2:
|
|
//微礼平台
|
|
$PlugClass = new Plug();
|
|
$plugResult = $PlugClass->agentPlugPermissions([
|
|
'agent_id' => $user['id'],
|
|
'identification_arr' => ['littlegift']
|
|
]);
|
|
$plug_littlegift = $plugResult['data']['littlegift'] ? $plugResult['data']['littlegift'] : '';
|
|
if (!empty($plug_littlegift)) {
|
|
$verify_arr = [
|
|
'agent_id' => $user['id'],
|
|
'platform_type' => $platform_type,
|
|
'littlegift' => $post['littlegift'],
|
|
'route_list' => $post['route_list'],
|
|
'merchant_id' => $post['id'] ? $post['id'] : 0
|
|
];
|
|
$MerchantClass = new Merchant();
|
|
$verifyResult = $MerchantClass->thirdAddMerchantVerify($verify_arr);
|
|
if ($verifyResult['status'] != 1) {
|
|
$res['status'] = 0;
|
|
$res['msg'] = $verifyResult['message'];
|
|
$this->ajaxReturn($res);
|
|
}
|
|
$littlegift = json_decode($post['littlegift'], true); //基本配置
|
|
$littlegift['token'] = $verifyResult['data']['token'];//验签
|
|
}
|
|
break;
|
|
}
|
|
$MerchantData['name'] = $post['name'];
|
|
$MerchantData['province'] = $post['pro'];
|
|
$MerchantData['city'] = $post['city'];
|
|
$MerchantData['area'] = $post['area'];
|
|
$MerchantData['mobile'] = $post['mobile'];
|
|
$MerchantData['address'] = $post['address'];
|
|
$MerchantData['status'] = 1;
|
|
$MerchantData['merchant_rate'] = $post['merchant_rate'] ? $post['merchant_rate'] : 0;
|
|
$MerchantData['ali_rate'] = $post['ali_rate'] ? $post['ali_rate'] : 0;
|
|
$MerchantData['wx_rate'] = $post['wx_rate'] ? $post['wx_rate'] : 0;
|
|
$MerchantData['union_pay_rate'] = $post['union_pay_rate'] ? $post['union_pay_rate'] : null;
|
|
$MerchantData['happy_rate'] = $post['happy_rate'] ? $post['happy_rate'] : null;//商户乐返费率
|
|
$MerchantData['lakala_rate'] = $post['lakala_rate'] ? $post['lakala_rate'] : null;//商户拉卡拉费率
|
|
$MerchantData['qian_ke_rate'] = $post['qian_ke_rate'] ? $post['qian_ke_rate'] : null;//商户钱客云费率
|
|
$MerchantModel = new RetailMerchantModel();
|
|
if (empty($post['id'])) {
|
|
$time_limit = $post['time_limit'];
|
|
$end_time = $post['end_time'];
|
|
$MerchantData['platform_type'] = $platform_type;
|
|
$MerchantData['mealid'] = $post['mealid'];
|
|
$MerchantData['addtime'] = $time;
|
|
$MerchantData['begin_time'] = strval(strtotime(date("Y-m-d 00:00:00", time())));
|
|
if (empty($MerchantData['name']) || empty($MerchantData['address']) || empty($MerchantData['mobile']) || empty($time_limit) || empty($MerchantData['mealid'])) {
|
|
$res['status'] = 0;
|
|
$res['msg'] = "表单信息有误,请重新操作";
|
|
$this->ajaxReturn($res);
|
|
}
|
|
if ($time_limit == 7) { //自定义时间
|
|
if (empty($end_time)) {
|
|
$res['status'] = 0;
|
|
$res['msg'] = "自定义时间有误";
|
|
$this->ajaxReturn($res);
|
|
}
|
|
if (strtotime($end_time) < time()) {
|
|
$res['status'] = 0;
|
|
$res['msg'] = "过期时间不能小于当前时间";
|
|
$this->ajaxReturn($res);
|
|
}
|
|
}
|
|
//手机号不能重复
|
|
$map['status'] = array('in', '1,2');
|
|
$map['mobile'] = $MerchantData['mobile'];
|
|
$existence = $MerchantModel->getFind($map);
|
|
if ($existence) {
|
|
$data['status'] = 0;
|
|
$data['msg'] = "手机号已被使用,请重新完善信息";
|
|
$this->ajaxReturn($data);
|
|
}
|
|
if (strlen($post['password']) > 16) {
|
|
$data['status'] = 0;
|
|
$data['msg'] = "密码不能大于16位";
|
|
$this->ajaxReturn($data);
|
|
exit;
|
|
}
|
|
$MerchantData['password'] = createPassword($post['password'], $MerchantData['addtime']);
|
|
//添加商户
|
|
$MerchantData['partnerid'] = $user['partnerid'];
|
|
$MerchantData['agentid'] = $user['id'];
|
|
//时限
|
|
switch ($time_limit) {
|
|
case 1:
|
|
$MerchantData['end_time'] = strtotime("+1 month" . "24:00:00");
|
|
break;
|
|
case 2:
|
|
$MerchantData['end_time'] = strtotime("+3 month" . "24:00:00");
|
|
break;
|
|
case 3:
|
|
$MerchantData['end_time'] = strtotime("+6 month" . "24:00:00");
|
|
break;
|
|
case 4:
|
|
$MerchantData['end_time'] = strtotime("+1 year" . "24:00:00");
|
|
break;
|
|
case 5:
|
|
$MerchantData['end_time'] = strtotime("+2 year" . "24:00:00");
|
|
break;
|
|
case 6:
|
|
$MerchantData['end_time'] = strtotime("+3 year" . "24:00:00");
|
|
break;
|
|
case 7:
|
|
$MerchantData['end_time'] = newStrToTime($end_time . "24:00:00");
|
|
break;
|
|
}
|
|
$userinfo = M('retail_agent')->where(array('id' => $user['id']))->find();
|
|
if (!$userinfo) {
|
|
$res['status'] = 0;
|
|
$res['msg'] = '登录超时';
|
|
$this->ajaxReturn($res);
|
|
}
|
|
//折扣
|
|
$discount = M('retail_group')->where(array('id' => $userinfo['discountid']))->getField('discount');
|
|
$discount = $discount ? $discount : 1;
|
|
//单价
|
|
$unitproce = M('retail_meal_price')->where(array('meal_id' => $MerchantData['mealid'], 'time_limit' => $time_limit))->getField('price');
|
|
if ($time_limit == 7) { //自定义时间
|
|
$start_time = strtotime(date('Y-m-d', $MerchantData['begin_time']));
|
|
$end_time = newStrToTime($end_time . "24:00:00");
|
|
$dat_num = (($end_time - $start_time) / 86400) * 1;
|
|
$unitproce = $dat_num * $unitproce;
|
|
}
|
|
if ($unitproce < 0) {
|
|
$res['status'] = 0;
|
|
$res['msg'] = '价格不能小于0';
|
|
$this->ajaxReturn($res);
|
|
}
|
|
//该扣除的价格
|
|
$reduce = round($unitproce * $discount, 2);
|
|
//判断是否可以减
|
|
$surplus = $userinfo['money'] - $reduce;
|
|
if ($surplus > 0 || $surplus == 0) {
|
|
$success = M('retail_agent')->where(array('id' => $userinfo['id']))->setDec('money', $reduce);
|
|
if ($success || $reduce == 0) {
|
|
$merchant_id = $MerchantModel->addOrder($MerchantData);
|
|
if (!empty($merchant_id)) {
|
|
$consum['addtime'] = $time;
|
|
$consum['money'] = $unitproce;
|
|
$consum['actualmoney'] = $reduce;
|
|
$consum['discount'] = $discount;
|
|
$consum['agentid'] = $user['id'];
|
|
$consum['type'] = 2;
|
|
$consuminfo = M('retail_consum')->add($consum);
|
|
$reagent = M('retail_agent')->where(array('id' => $user['id']))->find();
|
|
$readmin = M('retail_admin')->where(array('id' => $reagent['partnerid']))->field('phone,name')->find();
|
|
$shop['addtime'] = time();
|
|
$shop['begin_time'] = $MerchantData['begin_time'];
|
|
$shop['end_time'] = $MerchantData['end_time'];
|
|
$shop['site'] = C('adminhttp');
|
|
$shop['phone'] = $readmin['phone'];
|
|
$shop['name'] = $readmin['name'];
|
|
$shop['appid'] = 4;
|
|
if ($consuminfo) {
|
|
//添加默认仓库
|
|
$content = [
|
|
'name' => '默认采购仓',
|
|
'number' => 'A_001',
|
|
'province' => '北京',
|
|
'city' => '北京市',
|
|
'area' => '海淀区',
|
|
'address' => '北京市海淀区',
|
|
'measure_area' => 100,
|
|
'person_name' => '小李',
|
|
'person_phone' => '18888888888',
|
|
'merchant_id' => $merchant_id
|
|
];
|
|
$WarehouseClass = new Warehouse();
|
|
$WarehouseClass->merchantPurchaseWarehouseOperation($content);
|
|
$content['name'] = '默认供给仓';
|
|
$WarehouseClass->merchantSaleWarehouseOperation($content);
|
|
//添加基本配置
|
|
$ConfigModel = new RetailMerchantConfigModel();
|
|
$basic_config = [
|
|
'merchant_id' => $merchant_id,
|
|
'add_time' => $time,
|
|
];
|
|
$ConfigModel->addOrder($basic_config);
|
|
|
|
//添加ls_jurisdiction_user
|
|
$Role = new Role();
|
|
$jurData['login_name'] = $MerchantData['mobile'];
|
|
$jurData['password'] = $MerchantData['password'];
|
|
$jurData['name'] = $MerchantData['name'];
|
|
$jurData['add_time'] = $MerchantData['addtime'];
|
|
$jurData['jurisdiction_group_id'] = $Role->createSystemGroup(['type' => 3, 'platform_type' => $platform_type]);
|
|
$jurData['user_type'] = 3;
|
|
$jurData['system_user_id'] = $merchant_id;
|
|
$jurData['pid'] = session('jurisdiction_user')['id'];
|
|
$jurAdd = D('JurisdictionUser')->addUser($jurData);
|
|
$url = "http://console.mobzhifu.com/index.php/VersionApi/Agent/addMerchant";
|
|
$re = http_request($url, $shop);
|
|
$data['status'] = 1;
|
|
$data['msg'] = "添加成功";
|
|
} else {
|
|
$data['status'] = 0;
|
|
$data['msg'] = "添加失败";
|
|
}
|
|
} else {
|
|
$data['status'] = 0;
|
|
$data['msg'] = "添加失败";
|
|
}
|
|
} else {
|
|
$data['status'] = 0;
|
|
$data['msg'] = "操作失败";
|
|
}
|
|
} else {
|
|
$data['status'] = 0;
|
|
$data['msg'] = "余额不足,请联系商家充值";
|
|
}
|
|
} else {
|
|
$map['id'] = $post['id'];
|
|
$map['status'] = ['in', '1,2'];
|
|
//手机号不能重复
|
|
$oldMerchant = D('RetailMerchant')->getFind($map);
|
|
if ($oldMerchant['mobile'] != $MerchantData['mobile']) {
|
|
$wh['status'] = ['in', '1,2'];
|
|
$wh['mobile'] = $MerchantData['mobile'];
|
|
$existence = D('RetailMerchant')->getFind($wh);
|
|
if ($existence) {
|
|
$data['status'] = 0;
|
|
$data['msg'] = "手机号已被使用,请重新完善信息";
|
|
$this->ajaxReturn($data);
|
|
exit;
|
|
}
|
|
}
|
|
$re = D('RetailMerchant')->updateOrder($map, $MerchantData);
|
|
$up['login_name'] = $MerchantData['mobile'];
|
|
$up['name'] = $MerchantData['name'];
|
|
$ret1 = D('JurisdictionUser')->updateUser(array('system_user_id' => $oldMerchant['id'], 'user_type' => 3), $up);
|
|
if ($re !== false) {
|
|
$data['num'] = $MerchantData['storenum'];
|
|
$data['status'] = 1;
|
|
$data['msg'] = "修改成功";
|
|
} else {
|
|
$data['status'] = 0;
|
|
$data['msg'] = "修改失败";
|
|
}
|
|
$merchant_id = $post['id'];
|
|
}
|
|
//平台参数配置
|
|
if (!empty($merchant_id) && !empty($plug_littlegift)) {
|
|
switch ($platform_type) {
|
|
case 2:
|
|
//微礼平台参数配置
|
|
//第三方平台的配置参数
|
|
$MerchantConfigClass = new MerchantConfig();
|
|
$result = $MerchantConfigClass->addThirdConfig([
|
|
'merchant_id' => $merchant_id,
|
|
'platform_type' => 2,
|
|
'info' => json_encode($littlegift)
|
|
]);
|
|
if ($result['status'] != 1) {
|
|
$data['msg'] = $data['msg'] . $result['message'];
|
|
}
|
|
//商户与第三方平台的接口路径关联信息
|
|
$result = $MerchantConfigClass->ThirdErpSetOperation([
|
|
'merchant_id' => $merchant_id,
|
|
'info' => $post['route_list']
|
|
]);
|
|
if ($result['status'] != 1) {
|
|
$data['msg'] = $data['msg'] . $result['message'];
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
$this->ajaxReturn($data);
|
|
} else {
|
|
$user = session('agent_userinfo');
|
|
$prov = $this->Province();
|
|
$this->assign('prov', $prov);
|
|
//套餐
|
|
$meal = M('retail_meal')->where(array('pid' => $user['partnerid']))->select();
|
|
$this->assign('meal', $meal);
|
|
//折扣
|
|
$group = M('retail_group')->where(array('id' => $user['discountid']))->getField('discount');
|
|
$this->assign('discount', $group);
|
|
//判断第三方平台权限
|
|
$PlugClass = new Plug();
|
|
$agentPlug = $PlugClass->agentPlugState([
|
|
'agent_id' => $user['id'],
|
|
'identification_arr' => ['moneyguestpay', 'lakalapay', 'happypay', 'littlegift']]);
|
|
$this->assign('agentPlug', $agentPlug);
|
|
|
|
$this->assign('littlegift', $agentPlug['littlegift'] ? 1 : 0);
|
|
$route_list = [];
|
|
$config = [];
|
|
$id = I('get.id');
|
|
if (!empty($id)) {
|
|
$map['id'] = $id;
|
|
$map['status'] = ['in', '1,2'];
|
|
$cache = D('RetailMerchant')->getFind($map);
|
|
$this->assign('cache', $cache);
|
|
//微礼第三方平台信息
|
|
if (!empty($agentPlug['littlegift']) && $cache['platform_type'] == 2) {
|
|
$MerchantClass = new Merchant();
|
|
$result = $MerchantClass->thirdSetList([
|
|
'merchant_id' => $cache['id'],
|
|
'identification' => 'littlegift'
|
|
]);
|
|
$route_list = $result['data'];
|
|
$config = $MerchantClass->thirdConfigInfo([
|
|
'merchant_id' => $cache['id'],
|
|
'platform_type' => 2
|
|
]);
|
|
$config = $config['data'];
|
|
}
|
|
} else {
|
|
//微礼第三方平台信息
|
|
if (!empty($agentPlug['littlegift'])) {
|
|
$ThirdClass = new ThirdErpSet();
|
|
$result = $ThirdClass->getList([
|
|
'identification' => 'littlegift',
|
|
'fields' => 'id,type,route_url,route_name'
|
|
]);
|
|
$route_list = $result['data'];
|
|
if (!empty($route_list)) {
|
|
foreach ($route_list as $key => &$val) {
|
|
$val['status'] = 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
$this->assign('route_list', $route_list); //接口路径列表
|
|
$this->assign('config', $config); //域名配置
|
|
$this->display();
|
|
}
|
|
}
|
|
|
|
public function Province()
|
|
{
|
|
$province = M('citys');
|
|
|
|
$prov = $province->where(array('parentid' => 0))->select();
|
|
return $prov;
|
|
}
|
|
|
|
//时限
|
|
public function timeLimit()
|
|
{
|
|
$id = I("post.id");
|
|
if (!$id) {
|
|
$res['status'] = 0;
|
|
$res['msg'] = '登录超时';
|
|
$this->ajaxReturn($res);
|
|
}
|
|
$where['meal_id'] = $id;
|
|
$where['price'] = array('exp', 'is not null');
|
|
$info = M('retail_meal_price')->where($where)->select();
|
|
foreach ($info as $key => &$val) {
|
|
switch ($val['time_limit']) {
|
|
case 1:
|
|
$val['time_limit_name'] = "月";
|
|
break;
|
|
case 2:
|
|
$val['time_limit_name'] = "季度";
|
|
break;
|
|
case 3:
|
|
$val['time_limit_name'] = "半年";
|
|
break;
|
|
case 4:
|
|
$val['time_limit_name'] = "一年";
|
|
break;
|
|
case 5:
|
|
$val['time_limit_name'] = "二年";
|
|
break;
|
|
case 6:
|
|
$val['time_limit_name'] = "三年";
|
|
break;
|
|
case 7:
|
|
$val['time_limit_name'] = "自定义";
|
|
break;
|
|
}
|
|
}
|
|
$res['status'] = 1;
|
|
$res['data'] = $info;
|
|
$this->ajaxReturn($res);
|
|
}
|
|
|
|
/**
|
|
* 修改商户密码接口
|
|
* newpass 新密码
|
|
* id 商户id
|
|
*/
|
|
public function newpass()
|
|
{
|
|
$pass = I('post.newpass');
|
|
$id = I('post.id');
|
|
if (!$pass || !$id) {
|
|
$res['status'] = 0;
|
|
$res['msg'] = '参数错误';
|
|
$this->ajaxReturn($res);
|
|
}
|
|
if (strlen($pass) > 16) {
|
|
$res['status'] = 0;
|
|
$res['msg'] = '密码不能大于16位';
|
|
$this->ajaxReturn($res);
|
|
}
|
|
$merchant = M('retail_merchant')->where(array('id' => $id))->find();
|
|
if (!empty($merchant)) {
|
|
$newPass = createPassword($pass, $merchant['addtime']);
|
|
$save = M('retail_merchant')->where(array('id' => $id))->save(array('password' => $newPass));
|
|
$JurUserModel = new JurisdictionUserModel();
|
|
$jurisdiction_user = $JurUserModel->updateOrder(['system_user_id' => $merchant['id'], 'user_type' => 3], ['password' => $newPass]);
|
|
if ($save || $jurisdiction_user) {
|
|
$res['status'] = 1;
|
|
$res['msg'] = '密码更新成功';
|
|
} else {
|
|
$res['status'] = 0;
|
|
$res['msg'] = '您未修改密码';
|
|
}
|
|
}
|
|
$this->ajaxReturn($res);
|
|
}
|
|
|
|
//市
|
|
public function City()
|
|
{
|
|
$city = M('citys');
|
|
$provinceid['parentid'] = $_POST['pro_id'];
|
|
|
|
|
|
$cityinfo = $city->where($provinceid)->select();
|
|
$opt = '<option>--请选择市区--</option>';
|
|
|
|
foreach ($cityinfo as $key => $value) {
|
|
if ($value['cityid'] == I('post.check')) {
|
|
$opt .= "<option selected='selected' value='{$value['cityid']}' data-value='{$value['city_name']}'>{$value['city_name']}</option>";
|
|
} else {
|
|
$opt .= "<option value='{$value['cityid']}' data-value='{$value['city_name']}'>{$value['city_name']}</option>";
|
|
}
|
|
}
|
|
echo json_encode($opt);
|
|
}
|
|
|
|
public function Area()
|
|
{
|
|
$district = M('citys');
|
|
$cityid['parentid'] = $_POST['city_id'];
|
|
|
|
|
|
$districtinfo = $district->where($cityid)->select();
|
|
$opt = '<option>--请选择市县--</option>';
|
|
|
|
foreach ($districtinfo as $key => $value) {
|
|
if ($value['cityid'] == I('post.check')) {
|
|
$opt .= "<option selected='selected' value='{$value['cityid']}' data-value='{$value['city_name']}'>{$value['city_name']}</option>";
|
|
} else {
|
|
$opt .= "<option value='{$value['cityid']}' data-value='{$value['city_name']}'>{$value['city_name']}</option>";
|
|
}
|
|
}
|
|
echo json_encode($opt);
|
|
}
|
|
|
|
/**
|
|
* 删除商户
|
|
*/
|
|
public function delMerchant()
|
|
{
|
|
$id = I('post.id');
|
|
//查询该商户下有商家吗
|
|
$map['merchantid'] = $id;
|
|
$map['state'] = 0;
|
|
$count = M('retail_store')->where($map)->count();
|
|
if ($count) {
|
|
$data['status'] = 0;
|
|
$data['msg'] = "无法删除,该商户下已经有门店了";
|
|
} else {
|
|
$re = D('RetailMerchant')->updateOrder(['id' => $id], ['status' => 3]);
|
|
$res = D('JurisdictionUser')->delUser(['system_user_id' => $id, 'user_type' => 3]);
|
|
$GzhDelRes = D('Wxconfig')->where(['merchantid' => $id])->delete(); //删除商户对应公众号信息
|
|
$WxappinfoModel = new WxappinfoModel();
|
|
$XcxDekRes = $WxappinfoModel->where(['merchant_id' => $id])->delete(); //删除商户对应小程序
|
|
if ($re) {
|
|
$data['status'] = 1;
|
|
$data['msg'] = "删除成功";
|
|
} else {
|
|
$data['status'] = 1;
|
|
$data['msg'] = "删除失败";
|
|
}
|
|
}
|
|
$this->ajaxReturn($data);
|
|
}
|
|
|
|
/**
|
|
* 修改商家的状态
|
|
*/
|
|
public function statusUpdate()
|
|
{
|
|
$status = I('post.status');
|
|
$merchant_id = I('post.id');
|
|
$map['id'] = $merchant_id;
|
|
$Merchant['status'] = $status;
|
|
$show = D('RetailMerchant')->updateOrder($map, $Merchant);
|
|
if ($show !== false) {
|
|
$data['status'] = 1;
|
|
$data['msg'] = "操作成功";
|
|
} else {
|
|
$data['status'] = 0;
|
|
$data['msg'] = "操作失败";
|
|
}
|
|
$this->ajaxReturn($data);
|
|
}
|
|
|
|
/*计算套餐价
|
|
* @param $meal_id 套餐id
|
|
* @param $time_limit 时限类型
|
|
* @param $date 过期时间
|
|
* @param $type 1续费自定义时限 ""添加商户时自定义时限
|
|
* @param $merchant_id 续费自定义时限时的商户id
|
|
* @param $money 套餐价
|
|
* @param $discoujnt 折扣
|
|
*/
|
|
public function meal()
|
|
{
|
|
if (IS_POST) {
|
|
$meal_id = I('post.meal_id');
|
|
$time_limit = I("post.time_limit");
|
|
$date = I("post.date");
|
|
$type = I("post.type");
|
|
$merchant_id = I("post.merchant_id");
|
|
if ($meal_id && $time_limit) {
|
|
$user = session('agent_userinfo');
|
|
$money = M('retail_meal_price')->where(array('meal_id' => $meal_id, 'time_limit' => $time_limit))->getField('price');
|
|
$discoujnt = M('retail_group')->where(array('id' => $user['discountid']))->getField('discount');
|
|
$map['id'] = $merchant_id;
|
|
$fields = "end_time";
|
|
$merchant_end_time = D('RetailMerchant')->getFindField($map, $fields);
|
|
if ($time_limit == 7) {
|
|
if (empty($date)) {
|
|
$res['status'] = 0;
|
|
$res['msg'] = '请选择过期时间';
|
|
$this->ajaxReturn($res);
|
|
}
|
|
if ($type == 1) { //续费
|
|
if ($merchant_end_time > time()) { //未过期
|
|
$end_time = newStrToTime($date . "24:00:00");
|
|
$time_difference = (($end_time - $merchant_end_time) / 86400) ? (($end_time - $merchant_end_time) / 86400) : 1;
|
|
} else { //过期
|
|
$time = strtotime(date("Y-m-d", time()));
|
|
$end_time = newStrToTime($date . "24:00:00");
|
|
$time_difference = (($end_time - $time) / 86400) ? (($end_time - $time) / 86400) : 1;
|
|
}
|
|
} else { //添加
|
|
$time = strtotime(date("Y-m-d", time()));
|
|
$end_time = newStrToTime($date . "24:00:00");
|
|
$time_difference = (($end_time - $time) / 86400) ? (($end_time - $time) / 86400) : 1;
|
|
}
|
|
$agentmoney = round($money * $time_difference * 1 * $discoujnt, 2);
|
|
} else {
|
|
$agentmoney = round($money * $discoujnt, 2);
|
|
}
|
|
$res['agentmoney'] = $agentmoney;
|
|
$res['status'] = 1;
|
|
$this->ajaxReturn($res);
|
|
} else {
|
|
$res['status'] = 0;
|
|
$res['msg'] = '登录超时';
|
|
$this->ajaxReturn($res);
|
|
}
|
|
}
|
|
}
|
|
|
|
//权限设置
|
|
public function juris()
|
|
{
|
|
$id = I('get.id');
|
|
$juris = M('retail_merchant')->where(array('id' => $id))->getField('juris');
|
|
$this->assign('juris', $juris);
|
|
$this->assign('id', $id);
|
|
$this->display();
|
|
}
|
|
|
|
//修改权限
|
|
public function diction()
|
|
{
|
|
if (IS_POST) {
|
|
$id = I('post.id');
|
|
$juris = I('post.juris');
|
|
$res = M('retail_merchant')->where(array('id' => $id))->save(array('juris' => $juris));
|
|
if ($res) {
|
|
$rt['status'] = 1;
|
|
$rt['msg'] = '设置成功';
|
|
} else {
|
|
$rt['status'] = 1;
|
|
$rt['msg'] = '设置失败';
|
|
}
|
|
$this->ajaxReturn($rt);
|
|
}
|
|
}
|
|
|
|
//插件
|
|
public function merchant_plug()
|
|
{
|
|
$id = I('get.id');
|
|
$user = session('agent_userinfo');
|
|
$merchant = M('retail_merchant')->where(array('id' => $id))->find();
|
|
$this->assign('merchant', $merchant);
|
|
$plug = M('plug_agent as a')
|
|
->join('ls_plug as p on a.plug_id=p.id', 'LEFT')
|
|
->join('ls_plug_merchant as m on m.plug_id=a.plug_id AND m.merchant_id=' . $id, 'LEFT')
|
|
->where(array('a.agent_id' => $user['id'], 'a.a_status' => 1))
|
|
->field('p.*,m.m_status')
|
|
->select();
|
|
$this->assign('plugs', $plug);
|
|
$this->display();
|
|
}
|
|
|
|
//功能套餐
|
|
public function functional()
|
|
{
|
|
$user = session('agent_userinfo');
|
|
$id = I('get.id');
|
|
$merchant = M('retail_merchant')->where(array('id' => $id))->find();
|
|
//插件
|
|
$map = array(
|
|
array(
|
|
array(
|
|
'p.origin_type' => 2,
|
|
'p.is_install' => 1
|
|
),
|
|
'p.origin_type' => 1,
|
|
'_logic' => 'OR',
|
|
),
|
|
'a.agent_id' => $user['id'],
|
|
'a.a_status' => 1
|
|
);
|
|
$plug = M('plug_agent as a')
|
|
->join('ls_plug as p on a.plug_id=p.id')
|
|
->join('ls_plug_merchant as m on m.plug_id=a.plug_id AND m.merchant_id=' . $id, "LEFT")
|
|
->where($map)
|
|
->field('p.*,m.m_status')
|
|
->select();
|
|
//去除第三方Q3 ERP插件
|
|
foreach ($plug as $key => $val) {
|
|
if ($val['identification'] == 'littlegift') {
|
|
unset($plug[$key]);
|
|
}
|
|
}
|
|
//小程序权限
|
|
$this->assign('merchant', $merchant);
|
|
$this->assign('plugs', $plug);
|
|
$this->assign('empty', '<span class="empty">暂无数据</span>');
|
|
$this->display();
|
|
}
|
|
|
|
//功能套餐提交
|
|
/*storenum 门店数
|
|
* set 功能套餐
|
|
* xcx 小程序权限
|
|
* id 商户id
|
|
* setnot 没选择的功能套餐
|
|
*/
|
|
public function mealset()
|
|
{
|
|
$id = I('post.id');
|
|
$storenum = I('post.storenum');
|
|
$set = I('post.set');
|
|
$setnot = I('post.setnot');
|
|
$xcx = I('post.xcx');
|
|
if (!$id) {
|
|
$res['status'] = 0;
|
|
$res['msg'] = '商户不存在';
|
|
$this->ajaxReturn($res);
|
|
exit;
|
|
}
|
|
//小程序权限和门店数量
|
|
if (!empty($xcx)) {
|
|
M('retail_merchant')->where(array('id' => $id))->save(array('juris' => 2, 'storenum' => $storenum));
|
|
} else {
|
|
M('retail_merchant')->where(array('id' => $id))->save(array('juris' => 1, 'storenum' => $storenum));
|
|
}
|
|
//选中功能套餐相当于启用
|
|
if (!empty($set)) {
|
|
foreach ($set as $val) {
|
|
$map['plug_id'] = $val;
|
|
$map['merchant_id'] = $id;
|
|
$p_plug = M('plug_merchant')->where($map)->find();
|
|
if (empty($p_plug)) {
|
|
//第一次添加
|
|
$item['plug_id'] = $val;
|
|
$item['merchant_id'] = $id;
|
|
$item['addtime'] = time();
|
|
$item['opentime'] = time();
|
|
$item['m_status'] = 1;
|
|
$add = M('plug_merchant')->add($item);
|
|
if ($add) {
|
|
$result['status'] = 1;
|
|
$result['msg'] = '开启成功';
|
|
} else {
|
|
$result['status'] = 0;
|
|
$result['msg'] = '开启失败';
|
|
}
|
|
} else if ($p_plug['m_status'] == 2) {
|
|
$close = M('plug_merchant')->where($map)->save(array('m_status' => 1, 'opentime' => time()));
|
|
if ($close) {
|
|
$result['status'] = 1;
|
|
$result['msg'] = '开启成功';
|
|
} else {
|
|
$result['status'] = 0;
|
|
$result['msg'] = '开启失败';
|
|
}
|
|
} else {
|
|
$result['status'] = 1;
|
|
$result['msg'] = '开启成功';
|
|
}
|
|
}
|
|
}
|
|
//未选中功能套餐相当于关闭
|
|
if (!empty($setnot)) {
|
|
foreach ($setnot as $va) {
|
|
$identification = M('plug')->where(['id' => $va])->getField('identification');
|
|
if ($identification == 'moraleducationcoin') {
|
|
//德育币插件不能关闭
|
|
$result['status'] = 0;
|
|
$result['msg'] = '该商户的德育币插件无法关闭';
|
|
$this->ajaxReturn($result);
|
|
}
|
|
$map['plug_id'] = $va;
|
|
$map['merchant_id'] = $id;
|
|
$p_plug = M('plug_merchant')->where($map)->find();
|
|
//关闭
|
|
if (empty($p_plug)) {
|
|
//未开启过
|
|
$result['status'] = 1;
|
|
$result['msg'] = '关闭成功';
|
|
} else if ($p_plug['m_status'] == 1) {
|
|
$close = M('plug_merchant')->where($map)->save(array('m_status' => 2));
|
|
if ($close) {
|
|
$storeIds = M('retail_store')->where(['merchantid' => $id, 'state' => 0])->getField('id', true);
|
|
if (!empty($storeIds)) {
|
|
M('plug_store')->where(['plug_id' => $va, 'storeid' => ['in', $storeIds], 's_status' => 1])->save(array('s_status' => 2));
|
|
}
|
|
|
|
$result['status'] = 1;
|
|
$result['msg'] = '关闭成功';
|
|
} else {
|
|
$result['status'] = 0;
|
|
$result['msg'] = '关闭失败';
|
|
}
|
|
} else {
|
|
$result['status'] = 1;
|
|
$result['msg'] = '关闭成功';
|
|
}
|
|
}
|
|
}
|
|
if ($result['status'] == 1) {
|
|
$data['status'] = 1;
|
|
$data['msg'] = '设置成功';
|
|
} else {
|
|
$data['status'] = 0;
|
|
$data['msg'] = '设置失败';
|
|
}
|
|
$this->ajaxReturn($data);
|
|
}
|
|
|
|
/* 加载支付设置模板
|
|
* */
|
|
public function pay_pattern($merchantid)
|
|
{
|
|
/* url错误 */
|
|
if (!$merchantid) {
|
|
$this->assign('pay_list', array());
|
|
} else {
|
|
/* 查询代理商 */
|
|
$agent_id = M('retail_merchant')->where(array('id' => $merchantid))->getField('agentid');
|
|
if (!$agent_id) {
|
|
$this->assign('pay_list', array());
|
|
} else {
|
|
/* 获取代理商支付权限 */
|
|
$agent_pay_pattern = M('retail_pay_pattern')->where(array('agent_id' => $agent_id))->find(); // 该代理商暂无支付权限
|
|
if (!$agent_pay_pattern) {
|
|
$this->assign('pay_list', array());
|
|
} else {
|
|
/* 商户支付权限 */
|
|
$pay_set = M('retail_pay_pattern_merchant')->where(array('merchant_id' => $merchantid))->find();
|
|
if (!$pay_set) {
|
|
$data['merchant_id'] = $merchantid;
|
|
M('retail_pay_pattern_merchant')->add($data);
|
|
$pay_set = M('retail_pay_pattern_merchant')->where(array('merchant_id' => $merchantid))->find();
|
|
}
|
|
/* 判断代理商支付权限 */
|
|
if ($agent_pay_pattern['general_pay'] == 0) {
|
|
unset($pay_set['general_pay']);
|
|
}
|
|
if ($agent_pay_pattern['service_pay'] == 0) {
|
|
unset($pay_set['service_pay']);
|
|
}
|
|
if ($agent_pay_pattern['new_continent_pay'] == 0) {
|
|
unset($pay_set['new_continent_pay']);
|
|
}
|
|
if ($agent_pay_pattern['cloud_pay'] == 0) {
|
|
unset($pay_set['cloud_pay']);
|
|
}
|
|
if ($agent_pay_pattern['happy_pay'] == 0) {
|
|
unset($pay_set['happy_pay']);
|
|
}
|
|
if ($agent_pay_pattern['lakala_pay'] == 0) {
|
|
unset($pay_set['lakala_pay']);
|
|
}
|
|
if ($agent_pay_pattern['qian_ke_pay'] == 0) {
|
|
unset($pay_set['qian_ke_pay']);
|
|
}
|
|
$pay_list = array();
|
|
$Plug = new Plug();
|
|
$merPlug = $Plug->merPlugState([
|
|
'merchant_id' => $merchantid,
|
|
'identification_arr' => ['moneyguestpay', 'lakalapay', 'happypay']
|
|
]);
|
|
$plugPay = ['happy_pay' => 'happypay', 'lakala_pay' => 'lakalapay', 'qian_ke_pay' => 'moneyguestpay'];
|
|
foreach ($pay_set as $key => &$val) {
|
|
if ($key == 'id' || $key == 'merchant_id' || strpos($key, '_name')) {
|
|
continue;
|
|
} else if (!isset($plugPay[$key]) || isset($plugPay[$key]) && $merPlug[$plugPay[$key]]) {
|
|
$name = $pay_set[$key . '_name'] ? $pay_set[$key . '_name'] : '其他支付模式';
|
|
array_push($pay_list, array('name' => $name, 'key' => $key, 'status' => $val));
|
|
}
|
|
}
|
|
$this->assign('pay_id', $pay_set['id']);
|
|
$this->assign('pay_list', $pay_list);
|
|
}
|
|
}
|
|
}
|
|
$this->display();
|
|
}
|
|
|
|
/* 修改支付状态
|
|
* @param
|
|
* $agent_id
|
|
* @param
|
|
* $status
|
|
* @return array
|
|
* */
|
|
public function update_status()
|
|
{
|
|
$id = I('post.id');
|
|
$key = I('post.key');
|
|
$status = I('post.status') ? I('post.status') : 0;
|
|
$merchantid = I('post.merchantid');
|
|
if (!$id || !$key || !$merchantid) {
|
|
$res['status'] = 0;
|
|
$res['msg'] = '参数缺失';
|
|
$this->ajaxReturn($res);
|
|
}
|
|
$find = M('retail_pay_pattern_merchant')->where(array('id' => $id, 'merchantid' => $merchantid))->find();
|
|
if (!$find) {
|
|
$res['status'] = 0;
|
|
$res['msg'] = '查询失败';
|
|
$this->ajaxReturn($res);
|
|
}
|
|
$save = M('retail_pay_pattern_merchant')->where(array('id' => $id))->save(array($key => $status));
|
|
if ($save) {
|
|
$res['status'] = 1;
|
|
$res['msg'] = '修改成功';
|
|
} else {
|
|
$res['status'] = 0;
|
|
$res['msg'] = '修改失败';
|
|
}
|
|
$this->ajaxReturn($res);
|
|
}
|
|
|
|
/*
|
|
* 续费
|
|
* @param $meal 套餐
|
|
* @param $group 折扣
|
|
*/
|
|
public function renew()
|
|
{
|
|
$user = session('agent_userinfo');
|
|
$id = I("get.id");
|
|
$meal = M('retail_meal')->where(array('pid' => $user['partnerid']))->select();
|
|
$group = M('retail_group')->where(array('id' => $user['discountid']))->getField('discount');
|
|
$this->assign('meal', $meal);
|
|
$this->assign('discount', $group);
|
|
$this->assign('id', $id);
|
|
$this->display();
|
|
}
|
|
|
|
/*续费管理
|
|
* @param $meal_id 套餐id
|
|
* @param $time_limit 时限类型 1月 2季度 3半年 4一年 5二年 6三年 7自定义
|
|
* @param $end_time 自定义过期时间
|
|
* @param $userinfo 代理商信息
|
|
* @param $merchant_end_time 商户过期时间
|
|
* @param $discount 代理商折扣
|
|
* @param $unitproce 时限对应的价格
|
|
* @param $reduce 该扣除的价格
|
|
* @param $surplus 判断代理商余额是否充足
|
|
*/
|
|
public function renew_operation()
|
|
{
|
|
$user = session('agent_userinfo');
|
|
$data = I("post.");
|
|
$meal_id = $data['meal_id'];
|
|
$time_limit = $data['time_limit'];
|
|
$end_time = $data['end_time'];
|
|
if (!$data['id'] || !$data['meal_id'] || !$data['time_limit']) {
|
|
$res['status'] = 0;
|
|
$res['msg'] = '登录超时,请重新登录';
|
|
$this->ajaxReturn($res);
|
|
}
|
|
$userinfo = M('retail_agent')->where(array('id' => $user['id']))->find();
|
|
if (!$userinfo) {
|
|
$res['status'] = 0;
|
|
$res['msg'] = '登录超时';
|
|
$this->ajaxReturn($res);
|
|
}
|
|
$discount = M('retail_group')->where(array('id' => $user['discountid']))->getField('discount');
|
|
$discount = $discount ? $discount : 1;
|
|
$unitproce = M('retail_meal_price')->where(array('meal_id' => $meal_id, 'time_limit' => $time_limit))->getField('price');
|
|
$map['id'] = $data['id'];
|
|
$fields = "end_time";
|
|
$merchant_end_time = D('RetailMerchant')->getFindField($map, $fields);
|
|
if ($time_limit == 7) {
|
|
if (strtotime($end_time) < $merchant_end_time) {
|
|
$res['status'] = 0;
|
|
$res['msg'] = '自定义过期时间不能小于当前过期时间';
|
|
$this->ajaxReturn($res);
|
|
}
|
|
if ($merchant_end_time > time()) { //未过期
|
|
$start_time = strtotime(date('Y-m-d', $merchant_end_time));
|
|
$end_time = newStrToTime($end_time . "24:00:00");
|
|
$unitproce = (($end_time - $start_time) / 86400) * 1 * $unitproce;
|
|
} else { //过期
|
|
$start_time = strtotime(date('Y-m-d 00:00:00', time()));
|
|
$end_time = newStrToTime($end_time . "24:00:00");
|
|
$unitproce = (($end_time - $start_time) / 86400) * 1 * $unitproce;
|
|
}
|
|
}
|
|
if ($unitproce < 0) {
|
|
$res['status'] = 0;
|
|
$res['msg'] = '价格不能小于0';
|
|
$this->ajaxReturn($res);
|
|
}
|
|
$reduce = round($unitproce * $discount, 2);
|
|
$surplus = $userinfo['money'] - $reduce;
|
|
if ($surplus > 0 || $surplus == 0) { //可以扣除金额
|
|
$success = M('retail_agent')->where(array('id' => $userinfo['id']))->setDec('money', $reduce);
|
|
if ($success && $reduce > 0) {
|
|
//消费记录
|
|
$consum = [
|
|
'addtime' => time(),
|
|
'money' => $unitproce,
|
|
'actualmoney' => $reduce,
|
|
'discount' => $discount,
|
|
'agentid' => $user['id'],
|
|
'type' => 2
|
|
];
|
|
M('retail_consum')->add($consum);
|
|
}
|
|
if ($success || $reduce == 0) {
|
|
if ($merchant_end_time <= time()) { //过期
|
|
$content['begin_time'] = strtotime(date("Y-m-d 00:00:00", time()));
|
|
}
|
|
switch ($time_limit) {
|
|
case 1:
|
|
$content['end_time'] = strtotime("+1 month" . "24:00:00", $merchant_end_time);
|
|
break;
|
|
case 2:
|
|
$content['end_time'] = strtotime("+3 month" . "24:00:00", $merchant_end_time);
|
|
break;
|
|
case 3:
|
|
$content['end_time'] = strtotime("+6 month", $merchant_end_time);
|
|
break;
|
|
case 4:
|
|
$content['end_time'] = strtotime("+1 year", $merchant_end_time);
|
|
break;
|
|
case 5:
|
|
$content['end_time'] = strtotime("+2 year", $merchant_end_time);
|
|
break;
|
|
case 6:
|
|
$content['end_time'] = strtotime("+3 year", $merchant_end_time);
|
|
break;
|
|
case 7:
|
|
$content['end_time'] = $end_time;
|
|
break;
|
|
}
|
|
$where['id'] = $data['id'];
|
|
$operation = D('RetailMerchant')->updateOrder($where, $content);
|
|
if ($operation) {
|
|
$res['status'] = 1;
|
|
$res['msg'] = '操作成功';
|
|
} else {
|
|
$res['status'] = 0;
|
|
$res['msg'] = '操作失败';
|
|
}
|
|
} else {
|
|
$res['status'] = 0;
|
|
$res['msg'] = '操作失败';
|
|
}
|
|
} else {
|
|
$res['status'] = 0;
|
|
$res['msg'] = '余额不足,请联系商家充值';
|
|
}
|
|
$this->ajaxReturn($res);
|
|
}
|
|
|
|
/**
|
|
* 编辑支付配置
|
|
*/
|
|
public function editServerPay()
|
|
{
|
|
$user = session('agent_userinfo');
|
|
$AgentModel = D('RetailAgent');
|
|
$map = array(
|
|
$AgentModel::ID => $user['id'],
|
|
);
|
|
$server_pay_state = $AgentModel->getFindField($map, $AgentModel::SERVER_PAY_STATE);
|
|
$APCModel = D('AgentPayConfig');
|
|
$cMap = array(
|
|
$APCModel::AGENT_ID => $user['id']
|
|
);
|
|
$config = $APCModel->getFind($cMap);
|
|
$this->assign('server_pay_state', $server_pay_state);
|
|
$this->assign('config', $config);
|
|
$this->display();
|
|
}
|
|
|
|
//判断验证码是否正确
|
|
protected function verifyCode()
|
|
{
|
|
$verifyCode = session('identifying_codes');
|
|
$code = I('post.code');
|
|
if ($verifyCode == $code) {
|
|
session('identifying_codes', null);
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
public function submitServerPay()
|
|
{
|
|
if (!$this->verifyCode()) {
|
|
$data['status'] = 0;
|
|
$data['msg'] = "验证码错误";
|
|
$this->ajaxReturn($data);
|
|
}
|
|
$alipay_appid = I('post.alipay_appid'); //"444"
|
|
$alipay_pid = I('post.alipay_pid'); //"555"
|
|
$alipay_private_key = I('post.alipay_private_key'); //"777"
|
|
$alipay_public_key = I('post.alipay_public_key'); //"666"
|
|
$mch_id = I('post.mch_id'); //"333"
|
|
$server_pay_state = I('post.server_pay_state'); //"1"
|
|
$wx_apiclient_cert = I('post.wx_apiclient_cert'); //""
|
|
$wx_apiclient_key = I('post.wx_apiclient_key'); //""
|
|
$wx_appid = I('post.wx_appid'); //"111"
|
|
$wx_key = I('post.wx_key'); //"222"
|
|
$wx_serial_no = I('post.wx_serial_no'); //"222"
|
|
$appsecret = I('post.appsecret'); //"222"
|
|
$data = array(
|
|
'alipay_appid' => $alipay_appid, //'"444"
|
|
'alipay_pid' => $alipay_pid, //'"555"
|
|
'alipay_private_key' => $alipay_private_key, //'"777"
|
|
'alipay_public_key' => $alipay_public_key, //'"666"
|
|
'mch_id' => $mch_id, //'"333"
|
|
'wx_apiclient_cert' => $wx_apiclient_cert, //'""
|
|
'wx_apiclient_key' => $wx_apiclient_key, //'""
|
|
'wx_appid' => $wx_appid, //'"111"
|
|
'wx_key' => $wx_key, //'"222"
|
|
'wx_serial_no' => $wx_serial_no,
|
|
'appsecret' => $appsecret
|
|
);
|
|
$user = session('agent_userinfo');
|
|
$AgentModel = D('RetailAgent');
|
|
$aMap = array(
|
|
$AgentModel::ID => $user['id'],
|
|
);
|
|
$save = array(
|
|
$AgentModel::SERVER_PAY_STATE => $server_pay_state,
|
|
);
|
|
$server_pay_state = $AgentModel->updateOrder($aMap, $save);
|
|
$APCModel = D('AgentPayConfig');
|
|
$cMap = array(
|
|
$APCModel::AGENT_ID => $user['id']
|
|
);
|
|
$config = $APCModel->getFind($cMap);
|
|
if (!empty($config)) {
|
|
$res = $APCModel->updateOrder($cMap, $data);
|
|
} else {
|
|
$data[$APCModel::ADD_TIME] = time();
|
|
$data[$APCModel::AGENT_ID] = $user['id'];
|
|
$res = $APCModel->addOrder($data);
|
|
}
|
|
if ($server_pay_state || $res) {
|
|
$result['status'] = 1;
|
|
$result['msg'] = '保存成功';
|
|
} else {
|
|
$result['status'] = 0;
|
|
$result['msg'] = '保存失败';
|
|
}
|
|
$this->ajaxReturn($result);
|
|
}
|
|
|
|
/**
|
|
* 上传证书
|
|
*/
|
|
public function upload()
|
|
{
|
|
$upload = new \Think\Upload(); // 实例化上传类
|
|
$upload->maxSize = 5242880 / 2; // 设置附件上传大小5M/5
|
|
$upload->exts = array(
|
|
'pkcs12',
|
|
'pem'
|
|
); // 设置附件上传类型
|
|
$upload->rootPath = 'Uploads'; // 设置附件上传根目录
|
|
$upload->savePath = '/cache/'; // 设置附件上传(子)目录
|
|
$upload->saveName = array(
|
|
'uniqid',
|
|
array('', true)
|
|
);
|
|
// 上传文件
|
|
$info = $upload->upload();
|
|
if (!empty($info['file']['savename'])) {
|
|
$path = "/" . $upload->rootPath . $info['file']['savepath'] . $info['file']['savename'];
|
|
$rt['status'] = 1;
|
|
$rt['path'] = $_SERVER['DOCUMENT_ROOT'] . $path;
|
|
$rt['msg'] = '文件上传成功';
|
|
} else {
|
|
$rt['status'] = 0;
|
|
$rt['msg'] = '文件上传失败';
|
|
}
|
|
$this->ajaxReturn($rt);
|
|
}
|
|
|
|
/**
|
|
* 发送验证码
|
|
*/
|
|
public function sendCode()
|
|
{
|
|
$user = session('agent_userinfo');
|
|
$phone = M('retail_agent')->where(array('id' => $user['id']))->getField('phone');
|
|
$result = A('Api/Alidayu')->sendSmsCode($phone);
|
|
if ($result['status'] == 1) {
|
|
session('identifying_codes', $result['code'], 300); //把验证码存到session
|
|
}
|
|
$result['msg'] = $result['message'];
|
|
$this->ajaxReturn($result);
|
|
}
|
|
|
|
/**
|
|
* 商户小程序配置
|
|
*/
|
|
public function xcxConfig()
|
|
{
|
|
$merchant_id = I('get.merchant_id');
|
|
if (empty($merchant_id)) {
|
|
echo '您的操作有误';
|
|
exit;
|
|
}
|
|
$this->assign('merchant_id', $merchant_id);
|
|
$this->assign('type', 2); //1合伙人 2代理商 3商户
|
|
$authArr = array(
|
|
'submitAudit' => true,
|
|
);
|
|
$this->assign('authArr', $authArr);
|
|
$this->display();
|
|
}
|
|
|
|
/**
|
|
* 小程序获取基本信息
|
|
*/
|
|
public function getBaseData()
|
|
{
|
|
$MerXcxConf = new \Addons\Api\MerXcxConf(I('post.merchant_id'));
|
|
$res = $MerXcxConf->getBaseData(); //获取小程序当前信息
|
|
$this->ajaxReturn($res);
|
|
}
|
|
|
|
/**
|
|
* 修改充值入口显示状态
|
|
*/
|
|
public function changeOnlineStatus()
|
|
{
|
|
$MerXcxConf = new \Addons\Api\MerXcxConf(I('post.merchant_id'));
|
|
$res = $MerXcxConf->changeOnlineStatus(); //修改充值入口是否显示
|
|
$this->ajaxReturn($res);
|
|
}
|
|
|
|
/**
|
|
* 小程序获取预览码
|
|
*/
|
|
public function getPreviewQrImg()
|
|
{
|
|
$MerXcxConf = new \Addons\Api\MerXcxConf(I('post.merchant_id'));
|
|
$res = $MerXcxConf->getPreviewQrImg(); //获取小程序当前信息
|
|
$this->ajaxReturn($res);
|
|
}
|
|
|
|
/**
|
|
* 小程序的授权功能
|
|
*/
|
|
public function authIndex()
|
|
{
|
|
$MerXcxConf = new \Addons\Api\MerXcxConf(I('get.merchant_id'));
|
|
$url = $MerXcxConf->authIndex('Agent/Merchant/authSuccess');
|
|
header('location:' . $url);
|
|
}
|
|
|
|
/**
|
|
* 小程序授权回调
|
|
*/
|
|
public function authSuccess()
|
|
{
|
|
$MerXcxConf = new \Addons\Api\MerXcxConf(I('get.merchant_id'));
|
|
$res = $MerXcxConf->authSuccess();
|
|
$this->assign('status', $res ? 1 : 0);
|
|
if (!$res) {
|
|
$this->assign('msg', $MerXcxConf->errMsg);
|
|
}
|
|
$this->display();
|
|
}
|
|
|
|
|
|
/**
|
|
* 小程序提交审核
|
|
*/
|
|
public function submitAudit()
|
|
{
|
|
$MerXcxConf = new \Addons\Api\MerXcxConf(I('post.merchant_id'));
|
|
$res = $MerXcxConf->submitAudit();
|
|
$this->ajaxReturn($res);
|
|
}
|
|
|
|
|
|
/**
|
|
* 绑定开发体验用户
|
|
*/
|
|
public function bindUser()
|
|
{
|
|
$MerXcxConf = new \Addons\Api\MerXcxConf(I('post.merchant_id'));
|
|
$res = $MerXcxConf->bindUser();
|
|
$this->ajaxReturn($res);
|
|
}
|
|
|
|
|
|
/**
|
|
* 小程序审核撤回
|
|
*/
|
|
public function undoCodeAudit()
|
|
{
|
|
$MerXcxConf = new \Addons\Api\MerXcxConf(I('post.merchant_id'));
|
|
$res = $MerXcxConf->undoCodeAudit();
|
|
$this->ajaxReturn($res);
|
|
}
|
|
|
|
|
|
/**
|
|
* 发布小程序版本
|
|
*/
|
|
public function release()
|
|
{
|
|
$MerXcxConf = new \Addons\Api\MerXcxConf(I('post.merchant_id'));
|
|
$res = $MerXcxConf->release();
|
|
$this->ajaxReturn($res);
|
|
}
|
|
|
|
/**
|
|
* 回退小程序版本
|
|
*/
|
|
public function reBack()
|
|
{
|
|
$MerXcxConf = new \Addons\Api\MerXcxConf(I('post.merchant_id'));
|
|
$res = $MerXcxConf->reBack();
|
|
$this->ajaxReturn($res);
|
|
}
|
|
|
|
/**
|
|
* 回退小程序版本
|
|
*/
|
|
public function clearAuthInfo()
|
|
{
|
|
$MerXcxConf = new \Addons\Api\MerXcxConf(I('post.merchant_id'));
|
|
$res = $MerXcxConf->clearAuthInfo();
|
|
$this->ajaxReturn($res);
|
|
}
|
|
|
|
/**
|
|
* 修改商户状态
|
|
*/
|
|
public function modifyState()
|
|
{
|
|
$data = I('post.');
|
|
$MerchantModel = new RetailMerchantModel();
|
|
$JurisdictionUserModel = new JurisdictionUserModel();
|
|
$state = $MerchantModel->updateOrder(['id' => $data['id']], ['status' => $data['status']]);
|
|
if ($state) {
|
|
$status = $data['status'] == 1 ? 1 : 0;
|
|
$state = $JurisdictionUserModel->updateOrder(['user_type' => 3, 'system_user_id' => $data['id']], ['status' => $status]);
|
|
if ($state) {
|
|
$res = [
|
|
'status' => 1,
|
|
'msg' => '操作成功'
|
|
];
|
|
} else {
|
|
$res = [
|
|
'status' => 0,
|
|
'msg' => '操作失败'
|
|
];
|
|
}
|
|
} else {
|
|
$res = [
|
|
'status' => 0,
|
|
'msg' => '操作失败1'
|
|
];
|
|
}
|
|
$this->ajaxReturn($res);
|
|
}
|
|
}
|