MemberTagMapService.php 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php
  2. namespace services\member;
  3. use Yii;
  4. use common\helpers\ArrayHelper;
  5. use common\models\member\TagMap;
  6. /**
  7. * Class MemberTagMapService
  8. * @package services\member
  9. * @author jianyan74 <751393839@qq.com>
  10. */
  11. class MemberTagMapService
  12. {
  13. /**
  14. * @param $member_id
  15. * @return array
  16. */
  17. public function getMemberByTagId($tag_id)
  18. {
  19. return ArrayHelper::getColumn(TagMap::find()
  20. ->where(['tag_id' => $tag_id])
  21. ->with(['baseMember'])
  22. ->asArray()
  23. ->all(), 'baseMember');
  24. }
  25. /**
  26. * @param $member_id
  27. * @return array
  28. */
  29. public function findIdsByMemberId($member_id)
  30. {
  31. return TagMap::find()
  32. ->select(['tag_id'])
  33. ->where(['member_id' => $member_id])
  34. ->column();
  35. }
  36. /**
  37. * @param $member_id
  38. * @param $tags
  39. * @return bool
  40. * @throws \yii\db\Exception
  41. */
  42. public function addTags($member_id, $tags)
  43. {
  44. // 删除原有标签关联
  45. TagMap::deleteAll(['member_id' => $member_id]);
  46. if ($member_id && !empty($tags)) {
  47. $data = [];
  48. foreach ($tags as $v) {
  49. $data[] = [$v, $member_id];
  50. }
  51. $field = ['tag_id', 'member_id'];
  52. // 批量插入数据
  53. Yii::$app->db->createCommand()->batchInsert(TagMap::tableName(), $field, $data)->execute();
  54. return true;
  55. }
  56. return false;
  57. }
  58. }
粤ICP备19079148号