|
@@ -4,6 +4,7 @@ import com.caimei365.user.components.RedisService;
|
|
|
import com.caimei365.user.components.WeChatService;
|
|
|
import com.caimei365.user.mapper.*;
|
|
|
import com.caimei365.user.model.ResponseJson;
|
|
|
+import com.caimei365.user.model.dto.ArrDateDto;
|
|
|
import com.caimei365.user.model.dto.ClubTemporaryDto;
|
|
|
import com.caimei365.user.model.dto.LoginCodeDto;
|
|
|
import com.caimei365.user.model.po.ServiceProviderPo;
|
|
@@ -77,7 +78,7 @@ public class SellerServiceImpl implements SellerService {
|
|
|
* @return
|
|
|
*/
|
|
|
@Override
|
|
|
- public ResponseJson<PageInfo<ClubVo>> getClubList(Integer serviceProviderId, Integer status, Integer type, String name, Integer userIdentity, Integer groupServiceId, String startTime, String endTime, Integer pageNum, Integer pageSize) {
|
|
|
+ public ResponseJson<PageInfo<ClubVo>> getClubList(Integer serviceProviderId, Integer status, Integer type, String name, Integer userIdentity, Integer groupServiceId, String startTime, String endTime, String activeState, String customerValue, Integer pageNum, Integer pageSize) {
|
|
|
// 处理时间格式
|
|
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
try {
|
|
@@ -100,12 +101,12 @@ public class SellerServiceImpl implements SellerService {
|
|
|
return ResponseJson.success();
|
|
|
}else{
|
|
|
PageHelper.startPage(pageNum, pageSize);
|
|
|
- clubList = sellerMapper.findClubs(serviceProviderId, status, name, userIdentity, type, startTime, endTime, null);
|
|
|
+ clubList = sellerMapper.findClubs(serviceProviderId, status, name, userIdentity, type, startTime, endTime, activeState, customerValue, null);
|
|
|
}
|
|
|
} else if (2 == type) {
|
|
|
if (null != groupServiceId && groupServiceId > 0) {
|
|
|
PageHelper.startPage(pageNum, pageSize);
|
|
|
- clubList = sellerMapper.findClubs(groupServiceId, status, name, userIdentity, 1, startTime, endTime, null);
|
|
|
+ clubList = sellerMapper.findClubs(groupServiceId, status, name, userIdentity, 1, startTime, endTime, activeState, customerValue, null);
|
|
|
} else {
|
|
|
Integer leaderId = sellerMapper.findLeaderIdByServiceId(serviceProviderId);
|
|
|
Integer managerId = sellerMapper.findmanagerIdByServiceId(serviceProviderId);
|
|
@@ -116,7 +117,7 @@ public class SellerServiceImpl implements SellerService {
|
|
|
serviceIds = sellerMapper.findAllServiceIds(serviceProviderId);
|
|
|
}
|
|
|
PageHelper.startPage(pageNum, pageSize);
|
|
|
- clubList = sellerMapper.findClubs(serviceProviderId, status, name, userIdentity, type, startTime, endTime, serviceIds);
|
|
|
+ clubList = sellerMapper.findClubs(serviceProviderId, status, name, userIdentity, type, startTime, endTime, activeState, customerValue, serviceIds);
|
|
|
}
|
|
|
}
|
|
|
for (ClubVo club : clubList) {
|
|
@@ -150,12 +151,68 @@ public class SellerServiceImpl implements SellerService {
|
|
|
* @return
|
|
|
*/
|
|
|
@Override
|
|
|
- public ResponseJson<Map<String, Object>> getLivelyClubList(Integer serviceProviderId, Integer status, Integer type, String name, Integer userIdentity, Integer pageNum, Integer pageSize) {
|
|
|
+ public ResponseJson<PaginationVo<ClubVo>> getLivelyClubList(Integer serviceProviderId, Integer status, Integer type, String name, Integer userIdentity, Integer pageNum, Integer pageSize) {
|
|
|
PageHelper.startPage(pageNum, pageSize);
|
|
|
- Map<String, Object> map = new HashMap<>();
|
|
|
- map.put("clubList", new PageInfo<>(sellerMapper.findClubs(serviceProviderId, status, name, userIdentity, type,null,null, null)));
|
|
|
- return ResponseJson.success(map);
|
|
|
+ List<ClubVo> clubList = sellerMapper.findClubs(serviceProviderId, status, name, userIdentity, type, null, null, null, null,null);
|
|
|
+ if (null != clubList) {
|
|
|
+ for (ClubVo club : clubList) {
|
|
|
+ // 添加编号
|
|
|
+ String newClubId = club.getClubId().toString();
|
|
|
+ if (newClubId.length() <= 6) {
|
|
|
+ for (int i = 0; i <= 6 - newClubId.length(); i ++ ){
|
|
|
+ newClubId = "0" + newClubId;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ club.setNewClubId(newClubId);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ PaginationVo<ClubVo> page = new PaginationVo<>(clubList);
|
|
|
+ return ResponseJson.success(page);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取相关咨询记录机构信息
|
|
|
+ *
|
|
|
+ * @param spId
|
|
|
+ * @param type
|
|
|
+ * @param pageNum
|
|
|
+ * @param pageSize
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public ResponseJson<PaginationVo<ClubVo>> getIsRemarkClub(Integer spId, Integer type, Integer pageNum, Integer pageSize) {
|
|
|
+ PageHelper.startPage(pageNum, pageSize);
|
|
|
+ List<ClubVo> remarkClub = sellerMapper.getIsRemarkClub(spId, type);
|
|
|
+ if (null != remarkClub) {
|
|
|
+ for (ClubVo club : remarkClub) {
|
|
|
+ // 添加编号
|
|
|
+ String newClubId = club.getClubId().toString();
|
|
|
+ if (newClubId.length() <= 6) {
|
|
|
+ for (int i = 0; i <= 6 - newClubId.length(); i++) {
|
|
|
+ newClubId = "0" + newClubId;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ club.setNewClubId(newClubId);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ PaginationVo<ClubVo> page = new PaginationVo<>(remarkClub);
|
|
|
+ return ResponseJson.success(page);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 机构所有的咨询记录
|
|
|
+ *
|
|
|
+ * @param clubId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public ResponseJson<PaginationVo<RemarksVo>> getClubAllRemark(Integer clubId, Integer pageNum, Integer pageSize) {
|
|
|
+ PageHelper.startPage(pageNum, pageSize);
|
|
|
+ List<RemarksVo> clubAllRemark = sellerMapper.getClubAllRemark(clubId);
|
|
|
+ PaginationVo<RemarksVo> page = new PaginationVo<>(clubAllRemark);
|
|
|
+ return ResponseJson.success(page);
|
|
|
}
|
|
|
+
|
|
|
/**
|
|
|
* 功能描述: 机构活跃分析比例
|
|
|
* @auther: Kaick
|
|
@@ -167,15 +224,58 @@ public class SellerServiceImpl implements SellerService {
|
|
|
@Override
|
|
|
public ResponseJson<Map<String, Object>> getLivelyClub(Integer serviceProviderId) {
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
- Map<String, Object> spUserLoginSum = sellerMapper.findSpUserLoginSum(serviceProviderId.toString());
|
|
|
- Integer loginSum = Integer.valueOf(spUserLoginSum.get("loginSum").toString());
|
|
|
- Integer not_loginSum = Integer.valueOf(spUserLoginSum.get("not_loginSum").toString());
|
|
|
-// 机构活跃与不活跃占比计算方法,例如:机构活跃数/机构活跃数+机构不活跃数(60/(60+30)=0.666...),保留小数点后2位,四舍五入,0.67;
|
|
|
- BigDecimal livelyClubProportion = new BigDecimal((loginSum + not_loginSum) != 0 ?(double) loginSum / (loginSum + not_loginSum) * 100 : 0).setScale(2, RoundingMode.UP);
|
|
|
- map.put("livelyClub", loginSum);
|
|
|
- map.put("noLivelyClub", not_loginSum);
|
|
|
- map.put("livelyClubProportion", livelyClubProportion);
|
|
|
- map.put("noLivelyClubProportion", MathUtil.sub(100, livelyClubProportion).setScale(2));
|
|
|
+ // 该协销下活跃用户数据
|
|
|
+ Map<String, Object> spUserLoginSum = sellerMapper.findSpUserLoginSum(serviceProviderId);
|
|
|
+ if (null != spUserLoginSum) {
|
|
|
+ // 活跃机构数
|
|
|
+ Integer activeNumber = Integer.valueOf(spUserLoginSum.get("active").toString());
|
|
|
+ // 不活跃机构数
|
|
|
+ Integer unActiveNumber = Integer.valueOf(spUserLoginSum.get("unActive").toString());
|
|
|
+ // 总数
|
|
|
+ Integer total = activeNumber + unActiveNumber;
|
|
|
+
|
|
|
+ ArrayList<PortraitMap> portraitMap = new ArrayList<>();
|
|
|
+ // 机构活跃
|
|
|
+ PortraitMap portrait = new PortraitMap();
|
|
|
+ String per = MathUtil.div(activeNumber, total, 2).toString();
|
|
|
+ portrait.setName("活跃机构" + per + "% " + activeNumber + "个");
|
|
|
+ portrait.setValue(activeNumber);
|
|
|
+ portrait.setPer(per);
|
|
|
+ portraitMap.add(portrait);
|
|
|
+ // 机构不活跃
|
|
|
+ portrait = new PortraitMap();
|
|
|
+ per = MathUtil.div(unActiveNumber, total, 2).toString();
|
|
|
+ portrait.setName("不活跃机构 " + per + "% " + unActiveNumber + "个");
|
|
|
+ portrait.setValue(unActiveNumber);
|
|
|
+ portrait.setPer(per);
|
|
|
+ portraitMap.add(portrait);
|
|
|
+ map.put("portraitMap", portraitMap);
|
|
|
+ }
|
|
|
+ Map<String, Object> remarkClub = sellerMapper.getRemarkClub(serviceProviderId);
|
|
|
+ if (null != remarkClub) {
|
|
|
+ // 有咨询记录的机构数
|
|
|
+ Integer isHaveClub = Integer.valueOf(remarkClub.get("isHaveClub").toString());
|
|
|
+ // 总机构数
|
|
|
+ Integer allclub = Integer.valueOf(remarkClub.get("allclub").toString());
|
|
|
+ // 没有有咨询记录的
|
|
|
+ Integer number = allclub - isHaveClub;
|
|
|
+ // 有咨询记录
|
|
|
+ ArrayList<PortraitMap> portraitMap = new ArrayList<>();
|
|
|
+ PortraitMap portrait = new PortraitMap();
|
|
|
+ String per = MathUtil.div(isHaveClub, allclub, 2).toString();
|
|
|
+ portrait.setName("已填写机构 " + per + "% " + isHaveClub + "个");
|
|
|
+ portrait.setValue(isHaveClub);
|
|
|
+ portrait.setPer(per);
|
|
|
+ portraitMap.add(portrait);
|
|
|
+ // 机构不活跃
|
|
|
+ portrait = new PortraitMap();
|
|
|
+ per = MathUtil.div(number, allclub, 2).toString();
|
|
|
+ portrait.setName("未填写机构 " + per + "% " + number + "个");
|
|
|
+ portrait.setValue(number);
|
|
|
+ portrait.setPer(per);
|
|
|
+ portraitMap.add(portrait);
|
|
|
+ map.put("remark", portraitMap);
|
|
|
+ }
|
|
|
return ResponseJson.success(map);
|
|
|
}
|
|
|
|