Browse Source

app意见反馈接口追加

zdm 6 years ago
parent
commit
a01ba5a858

+ 42 - 36
svr/svr-healthy-house/src/main/java/com/yihu/jw/healthyhouse/controller/user/FacilityUsedRecordController.java

@ -120,47 +120,50 @@ public class FacilityUsedRecordController extends EnvelopRestEndpoint {
    @GetMapping(value = HealthyHouseMapping.HealthyHouse.FacilityUsedRecord.GET_FACILITY_USED_RECORD_AND_COUNT_BY_ID)
    public ListEnvelop<FacilityUsedRecord> getFacilityUsedRecordAndCountById(
            @ApiParam(name = "userId", value = "用户ID", defaultValue = "")
            @RequestParam(value = "userId") String userId,
            @RequestParam(value = "userId", required = false) String userId,
            @ApiParam(name = "filters", value = "检索字段", defaultValue = "")
            @RequestParam(value = "filters", required = false) String filters,
            @ApiParam(name = "nearbyFlag", value = "是否为“附近”的功能", defaultValue = "false")
            @RequestParam(value = "nearbyFlag") boolean nearbyFlag) throws Exception {
        List<FacilityUsedRecord> facilityUsedRecordList = new ArrayList<>();
        FacilityUsedRecord facilityUsedRecord;
        if (nearbyFlag) {
            if (StringUtils.isNotEmpty(filters)) {
                filters = "deleteFlag=0;status=0;" + "name?" + filters + " g1;cityName?" + filters + " g1;countyName?" + filters + " g1;street?" + filters + " g1;address?" + filters + " g1;";
        if (StringUtils.isNotEmpty(userId)) {
            if (nearbyFlag) {
                if (StringUtils.isNotEmpty(filters)) {
                    filters = "deleteFlag=0;status=0;" + "name?" + filters + " g1;cityName?" + filters + " g1;countyName?" + filters + " g1;street?" + filters + " g1;address?" + filters + " g1;";
                } else {
                    filters = "deleteFlag=0;status=0;";
                }
                //获取所有设施,并根据设施编码及用户id查找使用次数
                List<Facility> facilityList = facilityService.search(filters);
                for (Facility facility : facilityList) {
                    facilityUsedRecord = new FacilityUsedRecord();
                    facilityUsedRecord.setFacilitieCode(facility.getCode());
                    facilityUsedRecord.setFacilitieName(facility.getName());
                    facilityUsedRecord.setFacilitieLongitude(facility.getLongitude());
                    facilityUsedRecord.setFacilitieLatitudes(facility.getLatitude());
                    facilityUsedRecord.setFacilitieAddr(facility.getAddress());
                    facilityUsedRecord.setCreateUser(userId);
                    facilityUsedRecord.setUserId(userId);
                    facilityUsedRecord.setFacilitieId(facility.getId());
                    facilityUsedRecord.setFacilitieStatus(facility.getStatus());
                    long count = facilityUsedRecordService.countByFacilitieCodeAndUserId(facility.getCode(), userId);
                    facilityUsedRecord.setNum((int) count);
                    facilityUsedRecordList.add(facilityUsedRecord);
                }
            } else {
                filters = "deleteFlag=0;status=0;";
            }
            //获取所有设施,并根据设施编码及用户id查找使用次数
            List<Facility> facilityList = facilityService.search(filters);
            for (Facility facility : facilityList) {
                facilityUsedRecord = new FacilityUsedRecord();
                facilityUsedRecord.setFacilitieCode(facility.getCode());
                facilityUsedRecord.setFacilitieName(facility.getName());
                facilityUsedRecord.setFacilitieLongitude(facility.getLongitude());
                facilityUsedRecord.setFacilitieLatitudes(facility.getLatitude());
                facilityUsedRecord.setFacilitieAddr(facility.getAddress());
                facilityUsedRecord.setCreateUser(userId);
                facilityUsedRecord.setUserId(userId);
                facilityUsedRecord.setFacilitieId(facility.getId());
                facilityUsedRecord.setFacilitieStatus(facility.getStatus());
                long count = facilityUsedRecordService.countByFacilitieCodeAndUserId(facility.getCode(), userId);
                facilityUsedRecord.setNum((int) count);
                facilityUsedRecordList.add(facilityUsedRecord);
            }
        } else {
            //根据用户id,获取我的历史记录
            facilityUsedRecordList = facilityUsedRecordService.countDistinctByFacilitieCodeAndUserId(userId);
            for (FacilityUsedRecord facilityUsedRecord1 : facilityUsedRecordList) {
                long count = facilityUsedRecordService.countByFacilitieCodeAndUserId(facilityUsedRecord1.getFacilitieCode(), userId);
                facilityUsedRecord1.setNum((int) count);
                //获取设施状态
                Facility facility = facilityService.findByCode(facilityUsedRecord1.getFacilitieCode());
                facilityUsedRecord1.setFacilitieStatus(facility.getStatus());
                //根据用户id,获取我的历史记录
                facilityUsedRecordList = facilityUsedRecordService.countDistinctByFacilitieCodeAndUserId(userId);
                for (FacilityUsedRecord facilityUsedRecord1 : facilityUsedRecordList) {
                    long count = facilityUsedRecordService.countByFacilitieCodeAndUserId(facilityUsedRecord1.getFacilitieCode(), userId);
                    facilityUsedRecord1.setNum((int) count);
                    //获取设施状态
                    Facility facility = facilityService.findByCode(facilityUsedRecord1.getFacilitieCode());
                    facilityUsedRecord1.setFacilitieStatus(facility.getStatus());
                }
            }
        }
        return success(facilityUsedRecordList);
    }
@ -168,16 +171,19 @@ public class FacilityUsedRecordController extends EnvelopRestEndpoint {
    @GetMapping(value = HealthyHouseMapping.HealthyHouse.FacilityUsedRecord.COUNT_FACILITY_USED_RECORD_BY_USERID)
    public ObjEnvelop<Long> getFacilityUsedRecords(
            @ApiParam(name = "userId", value = "登录用户id", defaultValue = "")
            @RequestParam(value = "userId") String userId,
            @RequestParam(value = "userId", required = false) String userId,
            @ApiParam(name = "facilitieCode", value = "设施id", defaultValue = "")
            @RequestParam(value = "facilitieCode", required = false) String facilitieCode) throws Exception {
        StringBuffer stringBuffer = new StringBuffer();
        stringBuffer.append("createUser=" + userId + ";");
        long count=0;
        if (StringUtils.isNotEmpty(facilitieCode)) {
            stringBuffer.append("facilitieCode=" + facilitieCode);
        }
        String filters = stringBuffer.toString();
        long count = facilityUsedRecordService.getCount(filters);
        if (StringUtils.isNotEmpty(userId)) {
            stringBuffer.append("createUser=" + userId + ";");
            String filters = stringBuffer.toString();
            count = facilityUsedRecordService.getCount(filters);
        }
        return success(count);
    }

+ 24 - 0
svr/svr-healthy-house/src/main/java/com/yihu/jw/healthyhouse/controller/user/FeedBackController.java

@ -63,6 +63,7 @@ public class FeedBackController extends EnvelopRestEndpoint {
            @ApiParam(name = "feedBack", value = "意见反馈JSON结构")
            @RequestBody FeedBack feedBack) throws IOException {
        feedBack.setFlag(1);
        feedBack.setReadFlag(1);
        feedBack = feedBackService.save(feedBack);
        return success(feedBack);
    }
@ -93,6 +94,7 @@ public class FeedBackController extends EnvelopRestEndpoint {
        if (StringUtils.isNotEmpty(feedBackJson)) {
            FeedBack feedBack = toEntity(feedBackJson, FeedBack.class);
            feedBackOld.setFlag(2);
            feedBackOld.setReadFlag(0);
            feedBackOld.setReplyContent(feedBack.getReplyContent());
            feedBackOld.setUpdateUser(feedBack.getUpdateUser());
            feedBackOld.setUpdateUserName(feedBack.getUpdateUserName());
@ -136,4 +138,26 @@ public class FeedBackController extends EnvelopRestEndpoint {
        feedBackService.exportUsersExcel(response, feedBackList);
    }
    @ApiOperation(value = "app端-获取意见反馈")
    @GetMapping(value = HealthyHouseMapping.HealthyHouse.FeedBack.GET_APP_FEEDBACK_BY_ID)
    public ObjEnvelop<FeedBack> getAppFeedBack(
            @ApiParam(name = "id", value = "意见反馈ID", defaultValue = "")
            @RequestParam(value = "id") String id) throws Exception {
        FeedBack feedBack = feedBackService.findById(id);
        if (feedBack == null) {
            return failed("意见反馈不存在!", ObjEnvelop.class);
        }
        feedBack.setReadFlag(1);
        return success(feedBack);
    }
    @ApiOperation(value = "app端-根据用户id获取未读的意见反馈")
    @GetMapping(value = HealthyHouseMapping.HealthyHouse.FeedBack.GET_APP_FEEDBACK_BY_USER_ID_AND_READFLAG)
    public ObjEnvelop<Boolean> getAppFeedBackByUserIdAndReadFlag(
            @ApiParam(name = "userId", value = "登录用户ID", defaultValue = "")
            @RequestParam(value = "userId") String userId) throws Exception {
        Boolean readFlag = feedBackService.getAppFeedBackByUserIdAndReadFlag(userId);
        return success(readFlag);
    }
}

+ 11 - 0
svr/svr-healthy-house/src/main/java/com/yihu/jw/healthyhouse/model/user/FeedBack.java

@ -48,6 +48,9 @@ public class FeedBack extends UuidIdentityEntityWithOperator {
    //上传附件地址(多张图片地址,用逗号隔开)
    @Column(name = "pig_path", nullable = false)
    private String  pigPath;
    //是否已读
    @Column(name = "read_flag", nullable = false)
    private Integer  readFlag;
    //反馈类型,1建议、2投诉、3报修、4其他
    private String  feedTypeValue;
@ -159,4 +162,12 @@ public class FeedBack extends UuidIdentityEntityWithOperator {
    public void setEnclosureFlagValue(String enclosureFlagValue) {
        this.enclosureFlagValue = enclosureFlagValue;
    }
    public Integer getReadFlag() {
        return readFlag;
    }
    public void setReadFlag(Integer readFlag) {
        this.readFlag = readFlag;
    }
}

+ 17 - 0
svr/svr-healthy-house/src/main/java/com/yihu/jw/healthyhouse/service/user/FeedBackService.java

@ -11,6 +11,7 @@ import jxl.write.Colour;
import jxl.write.WritableCellFormat;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.hibernate.SQLQuery;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -18,6 +19,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletResponse;
import java.io.OutputStream;
import java.math.BigInteger;
import java.util.List;
/**
@ -118,4 +120,19 @@ public class FeedBackService extends BaseJpaService<FeedBack, FeedBackDao> {
        }
    }
    /**
     * 统计
     *
     * @param userId
     * @return
     */
    public boolean getAppFeedBackByUserIdAndReadFlag(String userId) {
        String sql = "select count(1) from feedback  f where  f.create_user=:userId and f.read_flag=0";
        SQLQuery sqlQuery = currentSession().createSQLQuery(sql);
        sqlQuery.setParameter("userId", userId);
        BigInteger count = (BigInteger) sqlQuery.uniqueResult();
        return count.compareTo(new BigInteger("0")) > 0;
    }
}