MaterController.php 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301
  1. <?php
  2. namespace backend\controllers;
  3. use backend\models\AuthArea;
  4. use common\library\LMUploadFile;
  5. use common\library\ZM_Geohash;
  6. use common\models\ImageSource;
  7. use common\models\MaterType;
  8. use common\models\User;
  9. use common\models\UserMater;
  10. use yii;
  11. use yii\filters\AccessControl;
  12. /**
  13. * 建材商管理
  14. * @package backend\controllers
  15. */
  16. class MaterController extends BaseController
  17. {
  18. public $layout = 'iframe';
  19. const PAGESIZE = 20;//分页数
  20. public function behaviors()
  21. {
  22. return [
  23. 'access' => [
  24. 'class' => AccessControl::className(),
  25. 'rules' => [
  26. [
  27. 'actions' => [],
  28. 'allow' => true,
  29. 'roles' => ['@'],
  30. ],
  31. ],
  32. ],
  33. ];
  34. }
  35. /**
  36. * 列表
  37. * @return string
  38. */
  39. public function actionIndex()
  40. {
  41. $search =['start'=>'','end'=>'','type_id'=>'','name'=>''];
  42. $search['start'] = Yii::$app->request->get('start');
  43. $search['end'] = Yii::$app->request->get('end');
  44. $search['type_id'] = Yii::$app->request->get('type_id');
  45. $search['name'] = Yii::$app->request->get('name');
  46. $search['member'] = Yii::$app->request->get('member');
  47. $typeList = MaterType::find()->select('id,name')->all();
  48. $models = UserMater::find()->where(['u.role'=>User::USER_ROLE_MATER])->from("{{%user_mater}} um")->leftJoin("{{%user}} u","um.uid = u.id");
  49. //$models = User::find()->where(['role'=>User::USER_ROLE_MATER]);
  50. if(!empty($search['start']))
  51. $models->andWhere("um.c_time > :start",[':start'=>strtotime($search['start'])]);
  52. if(!empty($search['end']))
  53. $models->andWhere("um.c_time < :end",[':end'=>strtotime($search['end'])+(3600*24-1)]);
  54. if(!empty($search['type_id']))
  55. $models->andWhere("um.type_id = :type_id",[':type_id'=>$search['type_id']]);
  56. if(!empty($search['name']))
  57. $models->andWhere("u.username like :name OR um.company like :name OR um.name like :name OR um.tel like :name ",[':name'=>"%".$search['name']."%"]);
  58. if(is_numeric($search['member']))
  59. $models->andWhere("um.member = :member",[':member'=>$search['member']]);
  60. $citys = AuthArea::queryAuth();
  61. if($citys=='all')
  62. $models;
  63. elseif (!empty($citys))
  64. $models->andWhere("um.city in ({$citys})");
  65. else
  66. $models->andWhere("um.city = -1");
  67. $pages = new yii\data\Pagination(["totalCount" => $models->count(), "pageSize" => self::PAGESIZE]);
  68. $models = $models->offset($pages->offset)->limit($pages->limit)->orderBy("um.id DESC")->all();
  69. return $this->render('index', ['models' => $models, 'pages' => $pages,'name'=>'建材商管理','search'=>$search,'typeList'=>$typeList]);
  70. }
  71. /**
  72. * 更新状态
  73. * @return string
  74. */
  75. public function actionUpdateStatus()
  76. {
  77. $id = Yii::$app->request->post('id');
  78. $model = User::find()->where(['id'=>$id])->one();
  79. if($model->status==User::STATUS_ACTIVE)
  80. $model->status = User::STATUS_DELETED;
  81. else
  82. $model->status = User::STATUS_ACTIVE;
  83. if($model->save())
  84. $result = ['sign'=>1,'msg'=>'修改状态成功'];
  85. else
  86. $result = ['sign'=>0,'msg'=>'修改状态失败'];
  87. return json_encode($result);
  88. }
  89. /**
  90. * 添加
  91. */
  92. public function actionAdd()
  93. {
  94. $picture_form = new LMUploadFile();
  95. if(Yii::$app->request->isPost){
  96. $username = Yii::$app->request->post('username');
  97. $pwd = Yii::$app->request->post('pwd');
  98. $pwd_again = Yii::$app->request->post('pwd_again');
  99. $pickup_address_coordinate = Yii::$app->request->post('pickup_address_coordinate');//地址坐标
  100. if(empty($pickup_address_coordinate))
  101. {
  102. Yii::$app->getSession()->setFlash('error', '获取不到地址坐标');
  103. return $this->redirect(Yii::$app->request->referrer);
  104. }
  105. if( $pwd != $pwd_again) {
  106. Yii::$app->getSession()->setFlash('error', '两次密码不一致');
  107. return $this->redirect(Yii::$app->request->referrer);
  108. }
  109. if(!empty($username)&&!empty($pwd)){
  110. $model = User::find()->where('username=:username',[':username'=>$username])->one();
  111. if(empty($model)){
  112. $model = new User();
  113. if($pwd==$pwd_again){
  114. $hash_password = Yii::$app->security->generatePasswordHash($pwd);
  115. $model->password_hash = $hash_password;
  116. $model->generateAuthKey();
  117. $model->username = $username;
  118. $model->created_at = time();
  119. $model->updated_at = time();
  120. $model->status = User::STATUS_ACTIVE;
  121. $model->state = User::USER_STATE_THROUGH;
  122. $model->role = User::USER_ROLE_MATER;
  123. if($model->validate() ){
  124. $transaction = Yii::$app->db->beginTransaction();
  125. if($model->save()) {
  126. $arr = explode(',',$pickup_address_coordinate);
  127. $usermater = new UserMater();
  128. $usermater->latitude = $arr[1];
  129. $usermater->longitude = $arr[0];
  130. $geohash = new ZM_Geohash();
  131. $geohash->init_codingMap();
  132. $usermater->hashcode =$geohash->encode($usermater->latitude,$usermater->longitude);
  133. $usermater->load(Yii::$app->request->post());
  134. $usermater->uid = $model->id;
  135. if(Yii::$app->request->post('UserMater')['member'] == UserMater::MEMBER_YES)
  136. {
  137. if(!empty(Yii::$app->request->post('UserMater')['vip_start'])){
  138. $usermater->vip_start = strtotime(Yii::$app->request->post('UserMater')['vip_start']);}
  139. if(!empty(Yii::$app->request->post('UserMater')['vip_end'])){
  140. $usermater->vip_end = strtotime(Yii::$app->request->post('UserMater')['vip_end']);}
  141. }
  142. if ($usermater->validate() && $usermater->save()) {
  143. $imgs = Yii::$app->request->post('imgs');
  144. if(!empty($imgs))
  145. {
  146. foreach ($imgs as $imgs_val)
  147. {
  148. $image_model = new ImageSource();
  149. $image_model->pic = $imgs_val;
  150. $image_model->type = ImageSource::TYPE_MATER_GOOD;
  151. $image_model->topid = $model->id;
  152. $image_model->created_at = time();
  153. $image_model->updated_at = time();
  154. $image_model->status = ImageSource::STATUS_YES;
  155. $image_model->save();
  156. }
  157. }
  158. $transaction->commit();
  159. Yii::$app->getSession()->setFlash('success', '添加成功!');
  160. $this->redirect(['mater/index']);
  161. }else{
  162. var_dump($usermater->getErrors());exit;
  163. $transaction->rollBack();
  164. Yii::$app->getSession()->setFlash('error', '添加失败');
  165. return $this->render('add',["picture_form" => $picture_form]);
  166. }
  167. }else{
  168. var_dump($model->getErrors());exit;
  169. $transaction->rollBack();
  170. Yii::$app->getSession()->setFlash('error', '添加失败');
  171. return $this->render('add',["picture_form" => $picture_form]);
  172. }
  173. }else{
  174. var_dump($model->getErrors());exit;
  175. Yii::$app->getSession()->setFlash('error', '添加失败');
  176. return $this->render('add',["picture_form" => $picture_form]);
  177. }
  178. }else{
  179. Yii::$app->getSession()->setFlash('error', '确认密码不相同');
  180. return $this->render('add',["picture_form" => $picture_form]);
  181. }
  182. }else{
  183. Yii::$app->getSession()->setFlash('error', '该号码已经注册!');
  184. return $this->render('add',["picture_form" => $picture_form]);
  185. }
  186. }else{
  187. Yii::$app->getSession()->setFlash('error', '输入不能空!');
  188. return $this->render('add',["picture_form" => $picture_form]);
  189. }
  190. }
  191. $id = Yii::$app->request->get('id');
  192. $shopimg = "";
  193. $imgcount = 1;
  194. if(!empty($id))
  195. {
  196. $model= UserMater::find()->where(['id'=>$id])->one();
  197. $shopimg = ImageSource::find()->where(['type'=>ImageSource::TYPE_MATER_GOOD,'topid'=>$model->uid,'status'=>ImageSource::STATUS_YES])->orderBy("id asc")->all();
  198. $imgcount = ImageSource::find()->where(['type'=>ImageSource::TYPE_MATER_GOOD,'topid'=>$model->uid,'status'=>ImageSource::STATUS_YES])->count();
  199. $imgcount++;
  200. }else{
  201. $model ="";
  202. }
  203. $typelist = MaterType::find()->where(['status'=>MaterType::STATUS_YES])->select('id,name')->all();
  204. return $this->render('add',['model'=>$model,"picture_form" => $picture_form,'typelist'=>$typelist,'shopimg'=>$shopimg,'imgcount'=>$imgcount]);
  205. }
  206. /**
  207. * 修改
  208. */
  209. public function actionEdit()
  210. {
  211. if(Yii::$app->request->isPost){
  212. $pickup_address_coordinate = Yii::$app->request->post('pickup_address_coordinate');//地址坐标
  213. $id = Yii::$app->request->post('id');
  214. if(empty($pickup_address_coordinate))
  215. {
  216. Yii::$app->getSession()->setFlash('error', '获取不到地址坐标');
  217. return $this->redirect(Yii::$app->request->referrer);
  218. }
  219. if(!empty($id)){
  220. $model = UserMater::find()->where('id=:id',[':id'=>$id])->one();
  221. if(empty($model))
  222. {
  223. Yii::$app->getSession()->setFlash('error', '找不到记录');
  224. return $this->redirect(Yii::$app->request->referrer);
  225. }
  226. $arr = explode(',',$pickup_address_coordinate);
  227. $model->latitude = $arr[1];
  228. $model->longitude = $arr[0];
  229. $geohash = new ZM_Geohash();
  230. $geohash->init_codingMap();
  231. $model->hashcode =$geohash->encode($model->latitude,$model->longitude);
  232. $model->load(Yii::$app->request->post());
  233. if(Yii::$app->request->post('UserMater')['member'] == UserMater::MEMBER_YES)
  234. {
  235. if(!empty(Yii::$app->request->post('UserMater')['vip_start'])){
  236. $model->vip_start = strtotime(Yii::$app->request->post('UserMater')['vip_start']);}
  237. if(!empty(Yii::$app->request->post('UserMater')['vip_end'])){
  238. $model->vip_end = strtotime(Yii::$app->request->post('UserMater')['vip_end']);}
  239. }else{
  240. $model->vip_start = 0 ;
  241. $model->vip_end = 0 ;
  242. }
  243. if ($model->validate() && $model->save()) {
  244. $imgs = Yii::$app->request->post('imgs');
  245. // $imgstemp = ImageSource::find()->where(['type'=>ImageSource::TYPE_MATER_GOOD,'topid'=>$model->uid])->orderBy("id asc")->all();
  246. if(!empty($imgs) )
  247. {
  248. foreach ($imgs as $imgs_val)
  249. {
  250. $image_model = new ImageSource();
  251. $image_model->pic = $imgs_val;
  252. $image_model->type = ImageSource::TYPE_MATER_GOOD;
  253. $image_model->topid = $model->uid;
  254. $image_model->created_at = time();
  255. $image_model->updated_at = time();
  256. $image_model->status = ImageSource::STATUS_YES;
  257. $image_model->save();
  258. }
  259. }
  260. $imgsdel = Yii::$app->request->post('imgsdel');
  261. if(!empty($imgsdel))
  262. {
  263. foreach ($imgsdel as $imgsdel_val)
  264. {
  265. $image_model = ImageSource::find()->where(['topid'=>$model->uid,'type'=>ImageSource::TYPE_MATER_GOOD,'pic'=>$imgsdel_val])->one();
  266. $image_model->status = ImageSource::STATUS_NO;
  267. $image_model->save();
  268. }
  269. }
  270. Yii::$app->getSession()->setFlash('success', '修改成功');
  271. return $this->redirect(Yii::$app->request->referrer);
  272. }else{
  273. Yii::$app->getSession()->setFlash('error', '修改失败');
  274. return $this->redirect(Yii::$app->request->referrer);
  275. }
  276. }else{
  277. Yii::$app->getSession()->setFlash('error', '缺少id!');
  278. return $this->redirect(Yii::$app->request->referrer);
  279. }
  280. }
  281. }
  282. }