123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- <?php
- namespace app\common\repositories\store;
- use app\common\dao\store\GuaranteeTemplateDao;
- use app\common\repositories\BaseRepository;
- use app\common\repositories\store\product\ProductRepository;
- use FormBuilder\Factory\Elm;
- use think\exception\ValidateException;
- use think\facade\Db;
- use think\facade\Route;
- class GuaranteeTemplateRepository extends BaseRepository
- {
- /**
- * @var GuaranteeTemplateDao
- */
- protected $dao;
- /**
- * GuaranteeRepository constructor.
- * @param GuaranteeTemplateDao $dao
- */
- public function __construct(GuaranteeTemplateDao $dao)
- {
- $this->dao = $dao;
- }
- /**
- * TODO 平台列表
- * @param $where
- * @param $page
- * @param $limit
- * @return array
- * @author Qinii
- * @day 5/17/21
- */
- public function getList($where,$page, $limit)
- {
- $query = $this->dao->getSearch($where)->with(['template_value.value'])->order('sort DESC');
- $count = $query->count();
- $list = $query->page($page,$limit)->select();
- return compact('count','list');
- }
- /**
- * TODO 创建
- * @param array $data
- * @author Qinii
- * @day 5/17/21
- */
- public function create(array $data)
- {
- Db::transaction(function() use($data){
- $template = [
- 'template_name' => $data['template_name'],
- 'mer_id' => $data['mer_id'],
- 'status' => $data['status'],
- 'sort' => $data['sort']
- ];
- $guaranteeData = $this->dao->create($template);
- $make = app()->make(GuaranteeRepository::class);
- foreach ($data['template_value'] as $datum){
- $where = [ 'status' => 1,'is_del' => 0,'guarantee_id' => $datum];
- $ret = $make->getWhere($where);
- if(!$ret) throw new ValidateException('ID['.$datum.']不存在');
- $value[] = [
- 'guarantee_id' => $datum ,
- 'guarantee_template_id' => $guaranteeData->guarantee_template_id,
- 'mer_id' => $data['mer_id']
- ];
- }
- app()->make(GuaranteeValueRepository::class)->insertAll($value);
- });
- }
- /**
- * TODO 编辑
- * @param int $id
- * @param array $data
- * @author Qinii
- * @day 5/17/21
- */
- public function edit(int $id,array $data)
- {
- Db::transaction(function() use($id,$data){
- $template = [
- 'template_name' => $data['template_name'],
- 'status' => $data['status'],
- 'sort' => $data['sort']
- ];
- $make = app()->make(GuaranteeRepository::class);
- $makeValue = app()->make(GuaranteeValueRepository::class);
- foreach ($data['template_value'] as $datum){
- $where = [ 'status' => 1,'is_del' => 0,'guarantee_id' => $datum];
- $ret = $make->getWhere($where);
- if(!$ret) throw new ValidateException('ID['.$datum.']不存在');
- $value[] = [
- 'guarantee_id' => $datum ,
- 'guarantee_template_id' => $id,
- 'mer_id' => $data['mer_id']
- ];
- }
- $this->dao->update($id,$template);
- $makeValue->clear($id);
- $makeValue->insertAll($value);
- });
- }
- /**
- * TODO 详情
- * @param int $id
- * @param int $merId
- * @return array|\think\Model|null
- * @author Qinii
- * @day 5/17/21
- */
- public function detail(int $id,int $merId)
- {
- $where = [
- 'mer_id' => $merId,
- 'guarantee_template_id' => $id,
- ];
- $ret = $this->dao->getSearch($where)->find();
- $ret->append(['template_value']);
- if(!$ret) throw new ValidateException('数据不存在');
- return $ret;
- }
- public function delete($id)
- {
- $productId = app()->make(ProductRepository::class)->getSearch(['guarantee_template_id' => $id])->column('product_id');
- if($productId) throw new ValidateException('有商品正在使用此模板,商品ID:'.implode(',',$productId));
- Db::transaction(function() use($id){
- $this->dao->delete($id);
- app()->make(GuaranteeValueRepository::class)->clear($id);
- });
- }
- public function list($merId)
- {
- $where = [
- 'status' => 1,
- 'is_del' => 0,
- 'mer_id' => $merId
- ];
- return $this->dao->getSearch($where)->order('sort DESC')->select()->toArray();
- }
- }
|