|
@ -1,14 +1,26 @@
|
|
package com.yihu.jw.healthyhouse.service.user;
|
|
package com.yihu.jw.healthyhouse.service.user;
|
|
|
|
|
|
|
|
import com.yihu.jw.exception.business.ManageException;
|
|
|
|
import com.yihu.jw.healthyhouse.dao.facility.FacilityDao;
|
|
|
|
import com.yihu.jw.healthyhouse.dao.facility.FacilityServerRelationDao;
|
|
import com.yihu.jw.healthyhouse.dao.user.FacilityUsedRecordDao;
|
|
import com.yihu.jw.healthyhouse.dao.user.FacilityUsedRecordDao;
|
|
|
|
import com.yihu.jw.healthyhouse.dao.user.NavigationServiceEvaluationDao;
|
|
|
|
import com.yihu.jw.healthyhouse.model.facility.Facility;
|
|
|
|
import com.yihu.jw.healthyhouse.model.facility.FacilityServerRelation;
|
|
import com.yihu.jw.healthyhouse.model.user.FacilityUsedRecord;
|
|
import com.yihu.jw.healthyhouse.model.user.FacilityUsedRecord;
|
|
|
|
import com.yihu.jw.healthyhouse.model.user.NavigationServiceEvaluation;
|
|
|
|
import com.yihu.jw.healthyhouse.service.facility.FacilityService;
|
|
import com.yihu.mysql.query.BaseJpaService;
|
|
import com.yihu.mysql.query.BaseJpaService;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.jdbc.core.BeanPropertyRowMapper;
|
|
import org.springframework.jdbc.core.BeanPropertyRowMapper;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
import java.util.Map;
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
/**
|
|
* 用户导航记录.
|
|
* 用户导航记录.
|
|
@ -23,6 +35,12 @@ public class FacilityUsedRecordService extends BaseJpaService<FacilityUsedRecord
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
private FacilityUsedRecordDao facilityUsedRecordDao;
|
|
private FacilityUsedRecordDao facilityUsedRecordDao;
|
|
|
|
@Autowired
|
|
|
|
private NavigationServiceEvaluationDao navigationServiceEvaluationDao;
|
|
|
|
@Autowired
|
|
|
|
private FacilityServerRelationDao facilityServerRelationDao;
|
|
|
|
@Autowired
|
|
|
|
private FacilityDao facilityDao;
|
|
|
|
|
|
public FacilityUsedRecord findById(String id) {
|
|
public FacilityUsedRecord findById(String id) {
|
|
return facilityUsedRecordDao.findById(id);
|
|
return facilityUsedRecordDao.findById(id);
|
|
@ -30,6 +48,10 @@ public class FacilityUsedRecordService extends BaseJpaService<FacilityUsedRecord
|
|
|
|
|
|
public List<FacilityUsedRecord> countDistinctByFacilitieCodeAndUserId(String userId) throws Exception {
|
|
public List<FacilityUsedRecord> countDistinctByFacilitieCodeAndUserId(String userId) throws Exception {
|
|
String sql = "select fur.* from facility_used_records fur WHERE fur.create_user=? GROUP BY fur.facilitie_code ";
|
|
String sql = "select fur.* from facility_used_records fur WHERE fur.create_user=? GROUP BY fur.facilitie_code ";
|
|
|
|
List<FacilityUsedRecord> facilityUsedRecords = jdbcTemplate.query(sql, new BeanPropertyRowMapper(FacilityUsedRecord.class), userId);
|
|
|
|
return facilityUsedRecords;
|
|
|
|
}
|
|
|
|
|
|
public Long countByUserId(String userId){
|
|
public Long countByUserId(String userId){
|
|
return facilityUsedRecordDao.countByUserId(userId);
|
|
return facilityUsedRecordDao.countByUserId(userId);
|
|
}
|
|
}
|
|
@ -56,4 +78,36 @@ public class FacilityUsedRecordService extends BaseJpaService<FacilityUsedRecord
|
|
public long countByFacilitieCodeAndUserId(String facilitieCode,String userId) {
|
|
public long countByFacilitieCodeAndUserId(String facilitieCode,String userId) {
|
|
return facilityUsedRecordDao.countByFacilitieCodeAndCreateUser( facilitieCode, userId);
|
|
return facilityUsedRecordDao.countByFacilitieCodeAndCreateUser( facilitieCode, userId);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 获取 用户使用记录详情
|
|
|
|
* @param id
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
public Map<String,Object> getUsedRecordDetail(String id) throws ManageException {
|
|
|
|
Map<String,Object> result = new HashMap<>();
|
|
|
|
FacilityUsedRecord record = findById(id);
|
|
|
|
if (record == null ){
|
|
|
|
throw new ManageException("使用记录不存在!");
|
|
|
|
}
|
|
|
|
|
|
|
|
String userId = record.getCreateUser();
|
|
|
|
String facilityCode = record.getFacilitieCode();
|
|
|
|
NavigationServiceEvaluation comment = navigationServiceEvaluationDao.findByUseRecordId(record.getId());
|
|
|
|
long historyNum = countByFacilitieCodeAndUserId(facilityCode, userId);
|
|
|
|
Facility facility = facilityDao.findByCode(facilityCode);
|
|
|
|
List<FacilityServerRelation> facilityServerRelations = facilityServerRelationDao.findByFacilitieCode(facilityCode);
|
|
|
|
List<String> services = facilityServerRelations.stream().map(FacilityServerRelation::getServiceName).collect(Collectors.toList());
|
|
|
|
if (comment ==null) {
|
|
|
|
result.put("Commented",false); //未评价
|
|
|
|
}else {
|
|
|
|
result.put("Commented",true);//已评价
|
|
|
|
result.put("Star",comment.getScore());//评分
|
|
|
|
}
|
|
|
|
result.put("usedCount",historyNum);//前往设施次数
|
|
|
|
result.put("serviceList",services);//设施包含服务
|
|
|
|
result.put("facilityIcon",facility.getImgPath());//设施图片
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
}
|
|
}
|