예제 #1
0
파일: Area.php 프로젝트: zyxist/cantiga
 public function update(Connection $conn)
 {
     $groupName = null;
     if (null !== $this->group) {
         $groupName = $this->group->getName();
     }
     if (!DataMappers::same($this->oldGroup, $this->group)) {
         DataMappers::recount($conn, CoreTables::GROUP_TBL, $this->oldGroup, $this->group, 'areaNum', 'id');
     }
     if (!DataMappers::same($this->oldStatus, $this->status)) {
         DataMappers::recount($conn, CoreTables::AREA_STATUS_TBL, $this->oldStatus, $this->status, 'areaNum', 'id');
     }
     if (!DataMappers::same($this->oldTerritory, $this->territory)) {
         DataMappers::recount($conn, CoreTables::TERRITORY_TBL, $this->oldTerritory, $this->territory, 'areaNum', 'id');
     }
     $this->entity->setName($this->name);
     $this->entity->update($conn);
     $this->lastUpdatedAt = time();
     return $conn->update(CoreTables::AREA_TBL, DataMappers::pick($this, ['name', 'group', 'territory', 'status', 'lastUpdatedAt', 'percentCompleteness'], ['customData' => json_encode($this->customData), 'groupName' => $groupName]), DataMappers::pick($this, ['id']));
 }
예제 #2
0
 public function update(Connection $conn)
 {
     $this->lastUpdatedAt = time();
     if (null !== $this->postedMessage) {
         $this->commentNum = $conn->fetchColumn('SELECT `commentNum` FROM `' . CoreTables::AREA_REQUEST_TBL . '` WHERE `id` = :id', [':id' => $this->id]);
         $conn->insert(CoreTables::AREA_REQUEST_COMMENT_TBL, ['requestId' => $this->id, 'userId' => $this->postedMessage->getUser()->getId(), 'createdAt' => $this->postedMessage->getCreatedAt(), 'message' => $this->postedMessage->getMessage()]);
         $this->commentNum++;
     }
     if (!DataMappers::same($this->oldTerritory, $this->territory)) {
         DataMappers::recount($conn, CoreTables::TERRITORY_TBL, $this->oldTerritory, $this->territory, 'requestNum', 'id');
     }
     $cnt = $conn->update(CoreTables::AREA_REQUEST_TBL, DataMappers::pick($this, ['name', 'status', 'territory', 'lastUpdatedAt', 'commentNum'], ['customData' => json_encode($this->customData)]), DataMappers::pick($this, ['id']));
     return $cnt;
 }