Commit 579cac06 by zhiwj

咨询建议列表

parent 86666687
......@@ -98,20 +98,18 @@ public interface EvaluateOverviewApiService {
* @Title: listEvaluateTrendByDate
* @Description:
* @author zhiwj
* @param type
* @return com.gic.api.base.commons.ServiceResponse<java.lang.Void>
* @throws
*/
ServiceResponse<List<Map<String, Object>>> listGoodEvaluateTrendByDate(Integer enterpriseId, Integer type);
ServiceResponse<List<Map<String, Integer>>> listGoodEvaluateTrendByDate(Integer enterpriseId, String startTime, String endTime);
/**
* 查看各个时间段差评的变化趋势
* @Title: listBadEvaluateTrendByDate
* @Description:
* @author zhiwj
* @param type
* @return com.gic.api.base.commons.ServiceResponse<java.lang.Void>
* @throws
*/
ServiceResponse<List<Map<String, Object>>> listBadEvaluateTrendByDate(Integer enterpriseId, Integer type);
ServiceResponse<List<Map<String, Integer>>> listBadEvaluateTrendByDate(Integer enterpriseId, String startTime, String endTime);
}
......@@ -106,4 +106,6 @@ public interface TabEvaluateMapper {
List<Integer> listAllEvaluateId(@Param("enterpriseId") Integer enterpriseId);
Set<Integer> getStoreHasTopHot(@Param("enterpriseId") Integer enterpriseId, @Param("ids") List<Integer> storeIdList);
Integer countEvaluateTrend(@Param("enterpriseId") Integer enterpriseId, @Param("startTime") Date startTime, @Param("endTime") Date endTime, @Param("quickReplyType") Integer quickReplyType);
}
\ No newline at end of file
......@@ -7,6 +7,7 @@ import com.gic.evaluate.qo.StoreScoreQO;
import com.gic.evaluate.qo.StoreTrendQO;
import com.github.pagehelper.Page;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;
......@@ -70,4 +71,5 @@ public interface EvaluateService {
Set<Integer> getStoreIdHasTopHot(Integer enterpriseId, List<Integer> storeIdList);
Integer countEvaluateTrend(Integer enterpriseId, Date startTime, Date endTime, Integer quickReplyTypeEnumCode);
}
......@@ -250,6 +250,11 @@ public class EvaluateServiceImpl implements EvaluateService {
return tabEvaluateMapper.getStoreHasTopHot(enterpriseId, storeIdList);
}
@Override
public Integer countEvaluateTrend(Integer enterpriseId, Date startTime, Date endTime, Integer quickReplyType) {
return tabEvaluateMapper.countEvaluateTrend(enterpriseId, startTime, endTime, quickReplyType);
}
private List<String> getYear() {
List<String> list = new ArrayList<>();
int year = DateUtil.getYear(new Date());
......
package com.gic.evaluate.service.outer.impl;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.commons.util.DateUtil;
import com.gic.enterprise.error.ErrorCode;
import com.gic.enterprise.response.EnterpriseServiceResponse;
import com.gic.evaluate.constant.QuickReplyTypeEnum;
import com.gic.evaluate.constant.TrendDateUnitEnum;
import com.gic.evaluate.qo.StoreScoreQO;
import com.gic.evaluate.qo.StoreTrendQO;
import com.gic.evaluate.service.EvaluateOverviewApiService;
......@@ -126,43 +126,96 @@ public class EvaluateOverviewApiServiceImpl implements EvaluateOverviewApiServic
}
@Override
public ServiceResponse<List<Map<String, Object>>> listGoodEvaluateTrendByDate(Integer enterpriseId, Integer type) {
if (TrendDateUnitEnum.YEAR.getCode().equals(type)) {
// 按年
List<Map<String, Object>> list = evaluateService.listEvaluateTrendByYear(enterpriseId, QuickReplyTypeEnum.GOOD.getCode());
return EnterpriseServiceResponse.success(list);
} else if (TrendDateUnitEnum.MONTH.getCode().equals(type)) {
// 按月
List<Map<String, Object>> list = evaluateService.listEvaluateTrendByMonth(enterpriseId, QuickReplyTypeEnum.GOOD.getCode());
return EnterpriseServiceResponse.success(list);
} else if (TrendDateUnitEnum.DAY.getCode().equals(type)) {
// 按日
List<Map<String, Object>> list = evaluateService.listEvaluateTrendByDay(enterpriseId, QuickReplyTypeEnum.GOOD.getCode());
return EnterpriseServiceResponse.success(list);
} else {
return EnterpriseServiceResponse.failure(ErrorCode.PARAMETER_ERROR);
}
public ServiceResponse<List<Map<String, Integer>>> listGoodEvaluateTrendByDate(Integer enterpriseId, String startTime, String endTime) {
// todo 放假回来改成循环
return getListServiceResponse(enterpriseId, startTime, endTime, QuickReplyTypeEnum.GOOD);
}
@Override
public ServiceResponse<List<Map<String, Object>>> listBadEvaluateTrendByDate(Integer enterpriseId, Integer type) {
if (TrendDateUnitEnum.YEAR.getCode().equals(type)) {
// 按年
List<Map<String, Object>> list = evaluateService.listEvaluateTrendByYear(enterpriseId, QuickReplyTypeEnum.BAD.getCode());
return EnterpriseServiceResponse.success(list);
} else if (TrendDateUnitEnum.MONTH.getCode().equals(type)) {
// 按月
List<Map<String, Object>> list = evaluateService.listEvaluateTrendByMonth(enterpriseId, QuickReplyTypeEnum.BAD.getCode());
return EnterpriseServiceResponse.success(list);
} else if (TrendDateUnitEnum.DAY.getCode().equals(type)) {
// 按日
List<Map<String, Object>> list = evaluateService.listEvaluateTrendByDay(enterpriseId, QuickReplyTypeEnum.BAD.getCode());
return EnterpriseServiceResponse.success(list);
} else {
return EnterpriseServiceResponse.failure(ErrorCode.PARAMETER_ERROR);
public ServiceResponse<List<Map<String, Integer>>> listBadEvaluateTrendByDate(Integer enterpriseId, String startTime, String endTime) {
// todo 放假回来改成循环
return getListServiceResponse(enterpriseId, startTime, endTime, QuickReplyTypeEnum.BAD);
}
private ServiceResponse<List<Map<String, Integer>>> getListServiceResponse(Integer enterpriseId, String startTime, String endTime, QuickReplyTypeEnum quickReplyTypeEnum) {
Date[] time = getTime(startTime, endTime);
Integer count1 = this.evaluateService.countEvaluateTrend(enterpriseId, time[0], time[1], quickReplyTypeEnum.getCode());
Integer count2 = this.evaluateService.countEvaluateTrend(enterpriseId, time[1], time[2], quickReplyTypeEnum.getCode());
Integer count3 = this.evaluateService.countEvaluateTrend(enterpriseId, time[2], time[3], quickReplyTypeEnum.getCode());
Integer count4 = this.evaluateService.countEvaluateTrend(enterpriseId, time[3], time[4], quickReplyTypeEnum.getCode());
Integer count5 = this.evaluateService.countEvaluateTrend(enterpriseId, time[4], null, quickReplyTypeEnum.getCode());
Map<String, Integer> map1 = new HashMap<>(4);
map1.put(DateUtil.dateToStr(time[0], DateUtil.FORMAT_DATE_10), count1);
Map<String, Integer> map2 = new HashMap<>(4);
map2.put(DateUtil.dateToStr(time[1], DateUtil.FORMAT_DATE_10), count2);
Map<String, Integer> map3 = new HashMap<>(4);
map3.put(DateUtil.dateToStr(time[2], DateUtil.FORMAT_DATE_10), count3);
Map<String, Integer> map4 = new HashMap<>(4);
map4.put(DateUtil.dateToStr(time[3], DateUtil.FORMAT_DATE_10), count4);
Map<String, Integer> map5 = new HashMap<>(4);
map5.put(DateUtil.dateToStr(time[4], DateUtil.FORMAT_DATE_10), count5);
List<Map<String, Integer>> list = new ArrayList<>();
list.add(map1);
list.add(map2);
list.add(map3);
list.add(map4);
list.add(map5);
return EnterpriseServiceResponse.success(list);
}
public static void main(String[] args) {
Date[] time = new EvaluateOverviewApiServiceImpl().getTime("2019-12-01", "2020-01-17");
for (Date date : time) {
System.out.println(DateUtil.dateToStr(date, DateUtil.FORMAT_DATE_10));
}
}
private Date[] getTime(String startTime, String endTime) {
Date[] arr = new Date[5];
// String startTime = "2019-12-01";
// String endTime = "2020-01-17";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date startTimeDate;
Date endTimeDate;
try {
startTimeDate = sdf.parse(startTime);
endTimeDate = sdf.parse(endTime);
Calendar cal1 = Calendar.getInstance();
cal1.setTime(startTimeDate);
Date date1 = cal1.getTime();
long time1 = cal1.getTimeInMillis();
Calendar cal2 = Calendar.getInstance();
cal2.setTime(endTimeDate);
long time2 = cal2.getTimeInMillis();
long between_days = (time2 - time1) / 86400000L;
int days = Integer.parseInt(String.valueOf(between_days));
int step = days/5;
// System.out.println(step/5);
cal1.add(Calendar.DAY_OF_MONTH, step);
Date date2 = cal1.getTime();
// System.out.println(DateUtil.dateToStr(date1, DateUtil.FORMAT_DATE_10));
cal1.add(Calendar.DAY_OF_MONTH, step);
Date date3 = cal1.getTime();
// System.out.println(DateUtil.dateToStr(date2, DateUtil.FORMAT_DATE_10));
cal1.add(Calendar.DAY_OF_MONTH, step);
Date date4 = cal1.getTime();
cal1.add(Calendar.DAY_OF_MONTH, step);
Date date5 = cal1.getTime();
// System.out.println(DateUtil.dateToStr(date3, DateUtil.FORMAT_DATE_10));
arr[0] = date1;
arr[1] = date2;
arr[2] = date3;
arr[3] = date4;
arr[4] = date5;
} catch (ParseException var10) {
var10.printStackTrace();
}
return arr;
}
private List<String> getDateList(String dateFirst, String dateSecond) throws ParseException {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date dateOne = dateFormat.parse(dateFirst);
......
......@@ -62,6 +62,7 @@ public class ProblemOutApiServiceImpl implements ProblemOutApiService {
MemberUserDTO memberUserDTO = memberUserDTOServiceResponse.getResult();
problemDTO.setMemberName(memberUserDTO.getName());
problemDTO.setMemberPhone(memberUserDTO.getMobile());
// todo 会员头像 门店
// problemDTO.setMemberImgUrl(memberUserDTO);
}
Integer problemId = problemService.save(problemDTO);
......@@ -77,6 +78,7 @@ public class ProblemOutApiServiceImpl implements ProblemOutApiService {
List<String> imgUrlList = problemMemberReplyDTO.getImgList();
ServiceResponse<MemberUserDTO> memberUserDTOServiceResponse = memberUserApiService.getByMcuId(problemMemberReplyDTO.getMemberId(), problemMemberReplyDTO.getEnterpriseId());
if (memberUserDTOServiceResponse.isSuccess()) {
// todo 会员头像 门店
MemberUserDTO memberUserDTO = memberUserDTOServiceResponse.getResult();
problemMemberReplyDTO.setMemberName(memberUserDTO.getName());
}
......
......@@ -852,4 +852,23 @@
</foreach>
</if>
</select>
<!-- Integer countEvaluateTrend(@Param("enterpriseId") Integer enterpriseId, @Param("startTime") Date startTime, @Param("endTime") Date endTime, @Param("quickReplyType") Integer quickReplyType);-->
<select id="countEvaluateTrend" resultType="int">
select
count(*)
from tab_evaluate
where status = 1
<if test="quickReplyType == 1">
and bad_evaluate_status = 1
</if>
<if test="quickReplyType == 2">
and good_evaluate_status = 1
</if>
<if test="startTime != null ">
and evaluate_time &gt;= #{startTime}
</if>
<if test="endTime != null ">
and evaluate_time &lt; #{endTime}
</if>
</select>
</mapper>
\ No newline at end of file
......@@ -72,14 +72,14 @@ public class EvaluateOverviewController {
}
@RequestMapping("/good-trend-by-date")
public RestResponse listGoodEvaluateTrendByDate(Integer type) {
ServiceResponse<List<Map<String, Object>>> serviceResponse = evaluateOverviewApiService.listGoodEvaluateTrendByDate(UserDetailUtils.getUserDetail().getEnterpriseId(), type);
public RestResponse listGoodEvaluateTrendByDate(String startTime, String endTime) {
ServiceResponse<List<Map<String, Integer>>> serviceResponse = evaluateOverviewApiService.listGoodEvaluateTrendByDate(UserDetailUtils.getUserDetail().getEnterpriseId(), startTime, endTime);
return ResultControllerUtils.commonResult(serviceResponse);
}
@RequestMapping("/bad-trend-by-date")
public RestResponse listBadEvaluateTrendByDate(Integer type) {
ServiceResponse<List<Map<String, Object>>> serviceResponse = evaluateOverviewApiService.listBadEvaluateTrendByDate(UserDetailUtils.getUserDetail().getEnterpriseId(), type);
public RestResponse listBadEvaluateTrendByDate(String startTime, String endTime) {
ServiceResponse<List<Map<String, Integer>>> serviceResponse = evaluateOverviewApiService.listBadEvaluateTrendByDate(UserDetailUtils.getUserDetail().getEnterpriseId(), startTime, endTime);
return ResultControllerUtils.commonResult(serviceResponse);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment