master
parent
4ced1bd6ea
commit
9d83d8397b
|
@ -3,6 +3,7 @@
|
||||||
namespace app\controller\api;
|
namespace app\controller\api;
|
||||||
|
|
||||||
use app\controller\BaseController;
|
use app\controller\BaseController;
|
||||||
|
use think\facade\Config;
|
||||||
use think\response\Json;
|
use think\response\Json;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -22,6 +23,7 @@ class Base extends BaseController
|
||||||
'jwt',
|
'jwt',
|
||||||
'apiLogin' => ['except' => $this->noNeedLogin]
|
'apiLogin' => ['except' => $this->noNeedLogin]
|
||||||
];
|
];
|
||||||
|
Config::load("extra/wechat","wechat");
|
||||||
}
|
}
|
||||||
|
|
||||||
public function __call($method, $args)
|
public function __call($method, $args)
|
||||||
|
|
|
@ -4,15 +4,21 @@ namespace app\controller\api;
|
||||||
use app\exception\RepositoryException;
|
use app\exception\RepositoryException;
|
||||||
use app\model\BusinessCircle;
|
use app\model\BusinessCircle;
|
||||||
use app\model\Category;
|
use app\model\Category;
|
||||||
|
use app\model\Recharge as RechargeModel;
|
||||||
use app\repository\AccountRepository;
|
use app\repository\AccountRepository;
|
||||||
use app\repository\BusinessRepository;
|
use app\repository\BusinessRepository;
|
||||||
use app\repository\CouponRepository;
|
use app\repository\CouponRepository;
|
||||||
use app\repository\DictionaryRepository;
|
use app\repository\DictionaryRepository;
|
||||||
|
use app\repository\RechargeRepository;
|
||||||
|
use app\service\wx\WechatPay;
|
||||||
use app\validate\BusinessValidate;
|
use app\validate\BusinessValidate;
|
||||||
use think\Collection;
|
use think\Collection;
|
||||||
|
use think\Exception;
|
||||||
|
use think\facade\Db;
|
||||||
use think\exception\ValidateException;
|
use think\exception\ValidateException;
|
||||||
use app\model\{Business as BusinessModel, Account as AccountModel, CouponMain};
|
use app\model\{Account, Business as BusinessModel, Account as AccountModel, CouponMain};
|
||||||
use think\response\Json;
|
use think\response\Json;
|
||||||
|
use function EasyWeChat\Kernel\Support\generate_sign;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 商家端:商家
|
* 商家端:商家
|
||||||
|
@ -34,20 +40,21 @@ class Business extends Base
|
||||||
public function registerBusiness()
|
public function registerBusiness()
|
||||||
{
|
{
|
||||||
$params = [
|
$params = [
|
||||||
'type'=> $this->request->param('type/d', 0),
|
'business_license'=> $this->request->param('business_license', ''),
|
||||||
|
'background'=> $this->request->param('background', ''),
|
||||||
'business_name'=> $this->request->param('business_name', ''),
|
'business_name'=> $this->request->param('business_name', ''),
|
||||||
'business_subtitle'=> $this->request->param('business_subtitle', ''),
|
'business_subtitle'=> $this->request->param('business_subtitle', ''),
|
||||||
'business_license'=> $this->request->param('business_license', ''),
|
|
||||||
'contact_name'=> $this->request->param('contact_name', ''),
|
|
||||||
'contact_phone'=> $this->request->param('contact_phone', ''),
|
|
||||||
'lat'=> $this->request->param('lat', ''),
|
|
||||||
'lng'=> $this->request->param('lng', ''),
|
|
||||||
'province'=> $this->request->param('province', ''),
|
'province'=> $this->request->param('province', ''),
|
||||||
'city'=> $this->request->param('city', ''),
|
'city'=> $this->request->param('city', ''),
|
||||||
'county'=> $this->request->param('county', ''),
|
'county'=> $this->request->param('county', ''),
|
||||||
'business_address' => $this->request->param('business_address', ''),
|
'business_address' => $this->request->param('business_address', ''),
|
||||||
|
'lat'=> $this->request->param('lat', ''),
|
||||||
|
'lng'=> $this->request->param('lng', ''),
|
||||||
'business_circle_id' => $this->request->param('business_circle_id/d', 0),
|
'business_circle_id' => $this->request->param('business_circle_id/d', 0),
|
||||||
'agency_code' => $this->request->param('agency_code', ''),
|
'agency_code' => $this->request->param('agency_code', ''),
|
||||||
|
'type'=> $this->request->param('type/d', 0),
|
||||||
|
'contact_name'=> $this->request->param('contact_name', ''),
|
||||||
|
'contact_phone'=> $this->request->param('contact_phone', ''),
|
||||||
];
|
];
|
||||||
|
|
||||||
$accountId = $this->request->user['user_id'] ?? 0;
|
$accountId = $this->request->user['user_id'] ?? 0;
|
||||||
|
@ -63,6 +70,9 @@ class Business extends Base
|
||||||
if (empty($account)) {
|
if (empty($account)) {
|
||||||
throw new ValidateException('无效请求!');
|
throw new ValidateException('无效请求!');
|
||||||
}
|
}
|
||||||
|
if ($account->type !== Account::type_consumer) {
|
||||||
|
throw new ValidateException('您已经是商家或者员工,不能认证');
|
||||||
|
}
|
||||||
|
|
||||||
if (!$validate->scene('apiRegister')->check($params)) {
|
if (!$validate->scene('apiRegister')->check($params)) {
|
||||||
throw new ValidateException($validate->getError());
|
throw new ValidateException($validate->getError());
|
||||||
|
@ -88,6 +98,8 @@ class Business extends Base
|
||||||
} elseif ($agencyBusiness['enable'] == self::BOOL_TRUE) {
|
} elseif ($agencyBusiness['enable'] == self::BOOL_TRUE) {
|
||||||
throw new ValidateException('该代理商已被封禁!');
|
throw new ValidateException('该代理商已被封禁!');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$params['is_assign'] = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
$business = null;
|
$business = null;
|
||||||
|
@ -95,11 +107,14 @@ class Business extends Base
|
||||||
$business = $busRepo->findOneByWhere(['code'=> $account['business_code']]);
|
$business = $busRepo->findOneByWhere(['code'=> $account['business_code']]);
|
||||||
}
|
}
|
||||||
|
|
||||||
$params['create_time'] = date('Y-m-d H:i:s');
|
$params['create_time'] = date('Y-m-d H:i:s');
|
||||||
$params['is_delete'] = 0;
|
$params['is_delete'] = 0;
|
||||||
$params['state'] = BusinessModel::state_reviewing;
|
$params['state'] = BusinessModel::state_reviewing;
|
||||||
$params['enable'] = 0;
|
$params['enable'] = 0;
|
||||||
$params['type_name'] = $businessCategory['name'];
|
$params['total_recharge'] = 0;
|
||||||
|
$params['balance'] = 0;
|
||||||
|
$params['is_agency'] = 0;
|
||||||
|
$params['type_name'] = $businessCategory['name'];
|
||||||
|
|
||||||
if ($business) {
|
if ($business) {
|
||||||
if ($business['state'] == BusinessModel::state_reviewing) {
|
if ($business['state'] == BusinessModel::state_reviewing) {
|
||||||
|
@ -108,7 +123,7 @@ class Business extends Base
|
||||||
|
|
||||||
// 更新审批信息,重新审批
|
// 更新审批信息,重新审批
|
||||||
$params['update_time'] = date('Y-m-d H:i:s');
|
$params['update_time'] = date('Y-m-d H:i:s');
|
||||||
$business = $business->save($params);
|
$business->save($params);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// 添加审批记录
|
// 添加审批记录
|
||||||
|
@ -273,6 +288,103 @@ class Business extends Base
|
||||||
return $this->json(0,"success",$data);
|
return $this->json(0,"success",$data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 检查是有已经有商家审核了
|
||||||
|
* */
|
||||||
|
public function checkAuth()
|
||||||
|
{
|
||||||
|
$accountId = $this->request->user['user_id'] ?? 0;
|
||||||
|
$account = AccountRepository::getInstance()->findById($accountId, [], function ($q) {
|
||||||
|
return $q->with(['business', 'parent']);
|
||||||
|
});
|
||||||
|
if(empty($account)){
|
||||||
|
return $this->json(6001,"登录失效");
|
||||||
|
}
|
||||||
|
|
||||||
|
//如果有商家 并且审核失败或者
|
||||||
|
if (isset($account->business) && !empty($account->business) && in_array($account->business->state, [BusinessModel::state_off, BusinessModel::state_reviewing,])) {
|
||||||
|
if ($account->business->state == BusinessModel::state_off) {
|
||||||
|
return $this->json(4001, "认证被退回,请重新填写资料:" . $account->business->reason,["business"=>$account->business]);
|
||||||
|
}
|
||||||
|
return $this->json(4001, " 正在认证中请耐心等待",["business"=>$account->business]);
|
||||||
|
}
|
||||||
|
|
||||||
|
//检查有没有加入一个商家的申请
|
||||||
|
//TODO....
|
||||||
|
|
||||||
|
return $this->json();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 充值
|
||||||
|
* */
|
||||||
|
public function recharge()
|
||||||
|
{
|
||||||
|
$accountId = $this->request->user['user_id'] ?? 0;
|
||||||
|
$money = input("money/f",1);
|
||||||
|
$account = AccountRepository::getInstance()->findById($accountId, [], function ($q) {
|
||||||
|
return $q->with(['business', 'parent']);
|
||||||
|
});
|
||||||
|
if(empty($account)||empty($account->business)){
|
||||||
|
return $this->json(6001,"登录失效");
|
||||||
|
}
|
||||||
|
if ($money <= 0) {
|
||||||
|
return $this->json(4001,"充值金额有误");
|
||||||
|
}
|
||||||
|
$money = floor($money*100)/100;
|
||||||
|
Db::startTrans();
|
||||||
|
try {
|
||||||
|
|
||||||
|
//创建充值订单
|
||||||
|
if (!$order = RechargeRepository::getInstance()->createOrder($account->business_code, $account->open_id,$money)) {
|
||||||
|
throw new RepositoryException('订单创建失败,请稍后重试');
|
||||||
|
}
|
||||||
|
//生成支付
|
||||||
|
$time = time();
|
||||||
|
$res = WechatPay::getInstance()->order->unify([
|
||||||
|
'body' => '商家充值',
|
||||||
|
'openid' => $account->open_id,
|
||||||
|
'out_trade_no' => $order->order_num,
|
||||||
|
'total_fee' => $money * 100,
|
||||||
|
'trade_type' => 'JSAPI',
|
||||||
|
'timeStamp' => $time,
|
||||||
|
'product_id' => $order->id,
|
||||||
|
'sign_type' => "MD5",
|
||||||
|
'notify_url' => $this->request->domain() . "/api/recharge/notify.html",
|
||||||
|
]);
|
||||||
|
|
||||||
|
if (!isset($res['prepay_id'])) {
|
||||||
|
throw new RepositoryException('订单创建失败,请稍后重试');
|
||||||
|
}
|
||||||
|
$payData = [
|
||||||
|
"appId" =>config("wechat.applets_appId"),
|
||||||
|
"timeStamp" =>$time."",
|
||||||
|
'nonceStr' => randomStr(0,16),
|
||||||
|
'package' => 'prepay_id='.$res['prepay_id'],
|
||||||
|
"signType" =>'MD5',
|
||||||
|
];
|
||||||
|
|
||||||
|
$payData['sign'] = generate_sign($payData, config("wechat.key"));
|
||||||
|
|
||||||
|
Db::commit();
|
||||||
|
return $this->json(0, "success", [
|
||||||
|
"payData" => $payData
|
||||||
|
]);
|
||||||
|
|
||||||
|
}catch (RepositoryException $e){
|
||||||
|
Db::rollback();
|
||||||
|
return $this->json(4001,"发起充值失败");
|
||||||
|
}catch (Exception $e){
|
||||||
|
echo $e->getMessage();
|
||||||
|
Db::rollback();
|
||||||
|
return $this->json(5001,"发起充值失败");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -162,6 +162,7 @@ class User extends Base
|
||||||
'balance' => $account['business']['balance'],
|
'balance' => $account['business']['balance'],
|
||||||
'enable' => $account['business']['enable'],
|
'enable' => $account['business']['enable'],
|
||||||
],
|
],
|
||||||
|
"alertMoney"=>config("wechat.balance")
|
||||||
];
|
];
|
||||||
|
|
||||||
return $this->json(0, 'success', $businessRes);
|
return $this->json(0, 'success', $businessRes);
|
||||||
|
@ -174,6 +175,7 @@ class User extends Base
|
||||||
'userType' => $account['type'],
|
'userType' => $account['type'],
|
||||||
'userTypeDes' => Account::accountTypeDescList()[$account['type']] ?? '游客',
|
'userTypeDes' => Account::accountTypeDescList()[$account['type']] ?? '游客',
|
||||||
'couponCount' => $couponCount,
|
'couponCount' => $couponCount,
|
||||||
|
"alertMoney"=>config("wechat.balance")
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -311,7 +311,11 @@ class Business extends Base
|
||||||
Db::startTrans();
|
Db::startTrans();
|
||||||
try {
|
try {
|
||||||
$business->save(["state" => $state, "reason" => $reason]);
|
$business->save(["state" => $state, "reason" => $reason]);
|
||||||
$account->save(["type" => Account::type_business]);
|
//通过 就改变用户为商家
|
||||||
|
if($state == BusinessModel::state_on){
|
||||||
|
$account->save(["type" => Account::type_business]);
|
||||||
|
}
|
||||||
|
|
||||||
Db::commit();
|
Db::commit();
|
||||||
return $this->json();
|
return $this->json();
|
||||||
} catch (RepositoryException $e) {
|
} catch (RepositoryException $e) {
|
||||||
|
|
|
@ -42,12 +42,14 @@ class RechargeRepository extends Repository
|
||||||
/**
|
/**
|
||||||
* 创建一个支付订单
|
* 创建一个支付订单
|
||||||
* @param $businessCode
|
* @param $businessCode
|
||||||
|
* @param $openId
|
||||||
* @param $money
|
* @param $money
|
||||||
* @return Recharge|Model
|
* @return Recharge|Model
|
||||||
*/
|
*/
|
||||||
public function createOrder($businessCode, $money)
|
public function createOrder($businessCode,$openId,$money)
|
||||||
{
|
{
|
||||||
$data = [
|
$data = [
|
||||||
|
"open_id" => $openId,
|
||||||
"order_num" => createUuid(),
|
"order_num" => createUuid(),
|
||||||
"business_code" => $businessCode,
|
"business_code" => $businessCode,
|
||||||
"money" => $money,
|
"money" => $money,
|
||||||
|
|
|
@ -16,9 +16,9 @@ class BusinessValidate extends Validate
|
||||||
'lat' => 'require|between:-90,90',
|
'lat' => 'require|between:-90,90',
|
||||||
'lng' => 'require|between:-180,180',
|
'lng' => 'require|between:-180,180',
|
||||||
|
|
||||||
'province|所属省份' => 'max:100',
|
'province|所属省份' => 'require',
|
||||||
'city|所属城市' => 'max:100',
|
'city|所属城市' => 'require',
|
||||||
'county|所属区县' => 'max:100',
|
'county|所属区县' => 'require',
|
||||||
'business_address|商家地址' => 'require|max:250',
|
'business_address|商家地址' => 'require|max:250',
|
||||||
|
|
||||||
'characteristic|商家特色' => 'max:250',
|
'characteristic|商家特色' => 'max:250',
|
||||||
|
|
Loading…
Reference in New Issue