wang hou sheng 1 year ago
parent bc2be7fe76
commit e2b9fa6323
  1. 10
      app/api/controller/Goods.php
  2. 4
      app/api/controller/Wxserver.php
  3. 51
      app/api/model/Goods.php
  4. 42
      app/common/library/wxserver/Server.php

@ -13,6 +13,7 @@ declare (strict_types=1);
namespace app\api\controller; namespace app\api\controller;
use app\api\model\{Goods as GoodsModel, Store as StoreModel}; use app\api\model\{Goods as GoodsModel, Store as StoreModel};
use app\api\model\Region;
use app\api\service\{Goods as GoodsService, User as UserService}; use app\api\service\{Goods as GoodsService, User as UserService};
use app\common\model\GoodsImage as GoodsImageModel; use app\common\model\GoodsImage as GoodsImageModel;
use app\common\model\UploadFile as UploadFileModel; use app\common\model\UploadFile as UploadFileModel;
@ -20,7 +21,7 @@ use app\common\service\qrcode\Goods as GoodsPoster;
use cores\exception\BaseException; use cores\exception\BaseException;
use think\db\exception\DbException; use think\db\exception\DbException;
use think\response\Json; use think\response\Json;
use app\api\model\Region;
/** /**
* 商品控制器 * 商品控制器
* Class Goods * Class Goods
@ -63,6 +64,7 @@ class Goods extends Controller
} }
return $this->renderSuccess(['detail' => $goodsInfo]); return $this->renderSuccess(['detail' => $goodsInfo]);
} }
/** /**
* 获取商品详情(详细信息) * 获取商品详情(详细信息)
* @param int $goodsId 商品ID * @param int $goodsId 商品ID
@ -135,6 +137,7 @@ class Goods extends Controller
return $this->renderSuccess($return); return $this->renderSuccess($return);
} }
public function browseLog(): Json public function browseLog(): Json
{ {
$model = new GoodsModel; $model = new GoodsModel;
@ -189,12 +192,11 @@ class Goods extends Controller
return $this->renderSuccess($list); return $this->renderSuccess($list);
} }
public function presaleGoodsList() public function presaleGoodsList(): Json
{ {
$param = $this->request->param(); $param = $this->request->param();
$model = new GoodsModel; $model = new GoodsModel;
$list = $model->presaleGoodsList($param); $list = $model->presaleGoodss($param);
return $this->renderSuccess(compact('list')); return $this->renderSuccess(compact('list'));
} }

@ -83,11 +83,11 @@ class Wxserver extends BaseController
} elseif ($data['MsgType'] == 'text' && !empty($data['Content'])) { } elseif ($data['MsgType'] == 'text' && !empty($data['Content'])) {
if ($data['Content'] == 'TESTCOMPONENT_MSG_TYPE_TEXT') { if ($data['Content'] == 'TESTCOMPONENT_MSG_TYPE_TEXT') {
$data['Content'] = 'TESTCOMPONENT_MSG_TYPE_TEXT_callback'; $data['Content'] = 'TESTCOMPONENT_MSG_TYPE_TEXT_callback';
echo $this->responseText($data);
} elseif (strpos($data['Content'], 'QUERY_AUTH_CODE:') !== false) { } elseif (strpos($data['Content'], 'QUERY_AUTH_CODE:') !== false) {
$query_auth_code = trim(str_replace("QUERY_AUTH_CODE:", "", $data['Content'])); $query_auth_code = trim(str_replace("QUERY_AUTH_CODE:", "", $data['Content']));
$obj->apiText($query_auth_code, $data['FromUserName']); $obj->apiText($query_auth_code, $data['FromUserName']);
} }
echo $this->responseText($data);
} }
} }
} }
@ -106,7 +106,7 @@ class Wxserver extends BaseController
</xml>"; </xml>";
$fromUser = $data['ToUserName']; $fromUser = $data['ToUserName'];
$toUser = $data['FromUserName']; $toUser = $data['FromUserName'];
$content = $data['Content']; $content = !empty($data['Content']) ? $data['Content'] : 'success';
$time = time(); $time = time();
$msgType = 'text'; $msgType = 'text';
return sprintf($template, $toUser, $fromUser, $time, $msgType, $content); return sprintf($template, $toUser, $fromUser, $time, $msgType, $content);

@ -24,7 +24,6 @@ use app\common\model\Goods as GoodsModel;
use app\common\model\GoodsCategoryRel as GoodsCategoryRelModel; use app\common\model\GoodsCategoryRel as GoodsCategoryRelModel;
use app\common\model\GoodsImage as GoodsImageModel; use app\common\model\GoodsImage as GoodsImageModel;
use app\common\model\UploadFile as UploadFileModel; use app\common\model\UploadFile as UploadFileModel;
use app\store\model\goods\GoodsPrice as GoodsPriceModel;
use cores\exception\BaseException; use cores\exception\BaseException;
use think\db\exception\DataNotFoundException; use think\db\exception\DataNotFoundException;
use think\db\exception\DbException; use think\db\exception\DbException;
@ -45,8 +44,6 @@ class Goods extends GoodsModel
'images', 'images',
'delivery', 'delivery',
'deduct_stock_type', 'deduct_stock_type',
'sales_initial',
'sales_actual',
'sort', 'sort',
'is_delete', 'is_delete',
'store_id', 'store_id',
@ -232,6 +229,43 @@ class Goods extends GoodsModel
return $info; return $info;
} }
public function presaleGoodss(array $param): array
{
$list = [];
$cate_goods_id = [];
if (!empty($param['category_id'])) {
$cate_model = new \app\store\model\GoodsCategoryRel();
$cate_goods_id = $cate_model
->where(['category_id' => $param['category_id']])
->column('goods_id');
}
$model = new PreSale();
$info = $model->where(['is_change' => 0, 'status' => 1])->field('goods_list,p_time')->find();
if (!$info->isEmpty()) {
$info = $info->toArray();
$goods_ids = explode(',', $info['goods_list']);
if ($cate_goods_id) {
$goods_ids = array_unique(array_values(array_intersect($cate_goods_id, $goods_ids)));
}
$result = $this->getListByIds($goods_ids);
if (!$result->isEmpty()) {
$result = $result->toArray();
foreach ($result as $v) {
$list[] = [
'goods_id' => $v['goods_id'],
'goods_name' => $v['goods_name'],
'goods_price_min' => $v['goods_price_min'],
'sales_initial' => $v['sales_initial'],
'sales_actual' => $v['sales_actual'],
'image' => $v['goods_image'],
'end_time' => strtotime($info['p_time']) - time()
];
}
}
}
return $list;
}
public function presaleGoodsList() public function presaleGoodsList()
{ {
$info = PreSale::where([ $info = PreSale::where([
@ -318,13 +352,15 @@ class Goods extends GoodsModel
return $info; return $info;
} }
/** /**
* 商品主图、商品轮播图、商品详情处理 * 商品主图、商品轮播图、商品详情处理
* [dealGoodsImage description] * [dealGoodsImage description]
* @param [type] &$goodsInfo [description] * @param [type] &$goodsInfo [description]
* @return [type] [description] * @return [type] [description]
*/ */
public function dealGoodsImage(&$goodsInfo){ public function dealGoodsImage(&$goodsInfo)
{
switch ($goodsInfo->channel) { switch ($goodsInfo->channel) {
case 'jd': case 'jd':
$jd = new \app\common\service\Jd(); $jd = new \app\common\service\Jd();
@ -364,6 +400,7 @@ class Goods extends GoodsModel
} }
} }
/** /**
* 获取商品详情 (详细数据用于页面展示) * 获取商品详情 (详细数据用于页面展示)
* @param int $goodsId 商品ID * @param int $goodsId 商品ID
@ -709,7 +746,8 @@ class Goods extends GoodsModel
* @throws DbException * @throws DbException
* @throws ModelNotFoundException * @throws ModelNotFoundException
*/ */
public function editGoodsPrice($data) { public function editGoodsPrice($data)
{
if (empty($data['goods_price']) || empty($data['cost_price']) || empty($data['id'])) { if (empty($data['goods_price']) || empty($data['cost_price']) || empty($data['id'])) {
$this->error = "请补全信息"; $this->error = "请补全信息";
return false; return false;
@ -747,7 +785,8 @@ class Goods extends GoodsModel
return true; return true;
} }
public function editGoodsSeckillPrice($data) { public function editGoodsSeckillPrice($data)
{
if (empty($data['seckill_price']) || empty($data['is_limit']) || empty($data['limit_times']) || empty($data['goods_id'])) { if (empty($data['seckill_price']) || empty($data['is_limit']) || empty($data['limit_times']) || empty($data['goods_id'])) {
$this->error = "请补全信息"; $this->error = "请补全信息";
return false; return false;

@ -486,7 +486,7 @@ class Server
* @notes:设置域名 * @notes:设置域名
* @param $appid * @param $appid
* @param $domain * @param $domain
* @return bool|void * @return bool
* @author: wanghousheng * @author: wanghousheng
*/ */
public function setDomain($appid, $domain) public function setDomain($appid, $domain)
@ -503,8 +503,8 @@ class Server
if ($result && !empty($result['errmsg']) && $result['errmsg'] == 'ok') { if ($result && !empty($result['errmsg']) && $result['errmsg'] == 'ok') {
return true; return true;
} }
return false;
} }
return false;
} }
/** /**
@ -606,14 +606,48 @@ class Server
$insert_data['create_time'] = time(); $insert_data['create_time'] = time();
$model->insertGetId($insert_data); $model->insertGetId($insert_data);
} }
$this->setOther($appid, $domain);
}
}
}
private function setOther($appid, $domain)
{
$up = [];
//设置域名信息 //设置域名信息
$this->setDomain($appid, $domain); if ($this->setDomain($appid, $domain)) {
$up['domain_status'] = 1;
}
//设置隐私 //设置隐私
$this->getPrivacySetting($appid); if ($this->getPrivacySetting($appid)) {
$up['privacy_status'] = 1;
}
//设置业务域名
if ($this->modifyJumpDomain($appid)) {
$up['jump_domain_status'] = 1;
} }
if ($up) {
$model = new WxserverAccount();
$model->update($up, ['appid' => $appid]);
} }
} }
private function modifyJumpDomain($appid, $domain): bool
{
$token = $this->authorizerAccessToken($appid);
if ($token) {
$url = "https://api.weixin.qq.com/wxa/setwebviewdomain?access_token=$token";
$data['action'] = 'set';
$data['webviewdomain'] = $domain;
$result = $this->curlPost($url, json_encode($data));
$result = json_decode($result, true);
if ($result && !empty($result['errmsg']) && $result['errmsg'] == 'ok') {
return true;
}
}
return false;
}
/** /**
* @notes:获取店铺ID * @notes:获取店铺ID
* @param $appid * @param $appid

Loading…
Cancel
Save