|
@@ -244,10 +244,10 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public HttpResult getHomePage(AppHomeParams params) {
|
|
public HttpResult getHomePage(AppHomeParams params) {
|
|
|
- Set<String> list = new HashSet<>();
|
|
|
|
|
- getLevelUserId(params.getUserId(),list);
|
|
|
|
|
- //List<String> strings = baseMapper.selectRelatedPerList(params.getUserId(), params);
|
|
|
|
|
- list.add(params.getUserId());
|
|
|
|
|
|
|
+ if (StringUtils.isBlank(params.getUserId())){
|
|
|
|
|
+ return HttpResult.error("参数不能为空");
|
|
|
|
|
+ }
|
|
|
|
|
+ Set<String> list = baseMapper.getLevelAllUserId(params.getUserId());
|
|
|
params.setRelatedPerList(list);
|
|
params.setRelatedPerList(list);
|
|
|
params.setCountCycle("Day");
|
|
params.setCountCycle("Day");
|
|
|
HomeVo homeVo = new HomeVo();
|
|
HomeVo homeVo = new HomeVo();
|
|
@@ -280,25 +280,6 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
|
|
|
return HttpResult.ok(homeVo);
|
|
return HttpResult.ok(homeVo);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- @Override
|
|
|
|
|
- public void getLevelUserId(String userId,Set<String> list){
|
|
|
|
|
- List<String> level = baseMapper.selectByLevelUserId(userId);
|
|
|
|
|
- if (CollectionUtil.isNotEmpty(level)){
|
|
|
|
|
- level.removeIf(s -> s.equals(userId));
|
|
|
|
|
- }
|
|
|
|
|
- if (CollectionUtil.isEmpty(level)){
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
- if ( containsOnlyId(level, userId)){
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
- if (CollectionUtil.isNotEmpty(level)){
|
|
|
|
|
- list.addAll(level);
|
|
|
|
|
- for (String s : level) {
|
|
|
|
|
- getLevelUserId(s,list);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public List<String> getUserGradeList(String userId) {
|
|
public List<String> getUserGradeList(String userId) {
|
|
@@ -510,47 +491,101 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
|
|
|
List<JSONObject> jsonList = new ArrayList<>();
|
|
List<JSONObject> jsonList = new ArrayList<>();
|
|
|
object = buildUserHierarchyResult(partnerUser.getUserId(),partnerUser.getGrade(),paeramsMap,rule,jsonList);
|
|
object = buildUserHierarchyResult(partnerUser.getUserId(),partnerUser.getGrade(),paeramsMap,rule,jsonList);
|
|
|
}
|
|
}
|
|
|
|
|
+ HashMap<String, Object> hashMap = new HashMap<>();
|
|
|
|
|
+ hashMap.put("commission",sumField(object,"commission"));
|
|
|
|
|
+ hashMap.put("numberOrders",object.size());
|
|
|
|
|
+ hashMap.put("totalPremium",sumField(object,"premium"));
|
|
|
map.put("data",object);
|
|
map.put("data",object);
|
|
|
|
|
+ map.put("total",hashMap);
|
|
|
list.add(map);
|
|
list.add(map);
|
|
|
}
|
|
}
|
|
|
return HttpResult.ok(list);
|
|
return HttpResult.ok(list);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
|
+ public static BigDecimal sumField(List<JSONObject> jsonList, String fieldName) {
|
|
|
|
|
+ return jsonList.stream()
|
|
|
|
|
+ .map(jsonObj -> {
|
|
|
|
|
+ try {
|
|
|
|
|
+ Object value = jsonObj.get(fieldName);
|
|
|
|
|
+ if (value instanceof BigDecimal) {
|
|
|
|
|
+ return (BigDecimal) value;
|
|
|
|
|
+ } else if (value instanceof Number) {
|
|
|
|
|
+ return BigDecimal.valueOf(((Number) value).doubleValue());
|
|
|
|
|
+ } else if (value instanceof String) {
|
|
|
|
|
+ return new BigDecimal((String) value);
|
|
|
|
|
+ }
|
|
|
|
|
+ return null;
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+ .filter(value -> value != null)
|
|
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
public Object myPerformance(Map<String, String> map) {
|
|
public Object myPerformance(Map<String, String> map) {
|
|
|
- Set<String> setList = new HashSet<>();
|
|
|
|
|
- getLevelUserId(map.get("userId"),setList);
|
|
|
|
|
- JSONObject totalMap = baseMapper.myPerformanceTotal(map,setList);
|
|
|
|
|
- List<JSONObject> datalist = baseMapper.queryDataList(map,setList);
|
|
|
|
|
|
|
+ if (StringUtils.isBlank(map.get("grade"))){
|
|
|
|
|
+ return HttpResult.error("用户不能为空");
|
|
|
|
|
+ }
|
|
|
|
|
+ List<JSONObject> datalist = baseMapper.queryDataList(map);
|
|
|
HashMap<String, Object> hashMap = new HashMap<>();
|
|
HashMap<String, Object> hashMap = new HashMap<>();
|
|
|
|
|
+ JSONObject totalMap = new JSONObject();
|
|
|
|
|
+ totalMap.put("numberOrders",datalist.size());
|
|
|
|
|
+ totalMap.put("totalPremium",sumField(datalist,"premium"));
|
|
|
|
|
+ totalMap.put("commission",sumField(datalist,"commission"));
|
|
|
hashMap.put("data",datalist);
|
|
hashMap.put("data",datalist);
|
|
|
hashMap.put("total",totalMap);
|
|
hashMap.put("total",totalMap);
|
|
|
return hashMap;
|
|
return hashMap;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
- public HttpResult myPerformanceDetails(String ordersNo) {
|
|
|
|
|
|
|
+ public HttpResult myPerformanceDetails(String ordersNo,String userId) {
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ List<PartnerPremiumDetails> details = detailsMapper.selectList(new LambdaQueryWrapper<>(PartnerPremiumDetails.class).eq(PartnerPremiumDetails::getOrderno, ordersNo)
|
|
|
|
|
+ .eq(PartnerPremiumDetails::getUserId, userId).orderByAsc(PartnerPremiumDetails::getSource));
|
|
|
|
|
+
|
|
|
|
|
+ PartnerPremiumDetails partnerPremiumDetails = new PartnerPremiumDetails();
|
|
|
|
|
+ if (CollectionUtil.isNotEmpty( details)){
|
|
|
|
|
+ partnerPremiumDetails = details.get(0);
|
|
|
|
|
+ }
|
|
|
JSONObject jsonObject = new JSONObject();
|
|
JSONObject jsonObject = new JSONObject();
|
|
|
- jsonObject.put("ordersNo",1);
|
|
|
|
|
- jsonObject.put("carId",1);
|
|
|
|
|
|
|
+ jsonObject.put("ordersNo",partnerPremiumDetails.getOrderno());
|
|
|
|
|
+ jsonObject.put("carId",partnerPremiumDetails.getLicenseno());
|
|
|
//收入类型
|
|
//收入类型
|
|
|
- jsonObject.put("incomeType",1);
|
|
|
|
|
|
|
+ jsonObject.put("incomeType",partnerPremiumDetails.getIndustrySector());
|
|
|
//代理人
|
|
//代理人
|
|
|
- jsonObject.put("agent",1);
|
|
|
|
|
|
|
+ jsonObject.put("agent",partnerPremiumDetails.getIssuerName());
|
|
|
//所属团队
|
|
//所属团队
|
|
|
jsonObject.put("belongingTeam",1);
|
|
jsonObject.put("belongingTeam",1);
|
|
|
// 保费
|
|
// 保费
|
|
|
- jsonObject.put("premium",1);
|
|
|
|
|
|
|
+ jsonObject.put("premium",partnerPremiumDetails.getSumpremium());
|
|
|
|
|
+ BigDecimal reduce = details.stream().map(detail -> detail.getExtractFee()).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
//佣金
|
|
//佣金
|
|
|
- jsonObject.put("commission",1);
|
|
|
|
|
|
|
+ jsonObject.put("commission",reduce);
|
|
|
//出单时间
|
|
//出单时间
|
|
|
- jsonObject.put("orderTime",1);
|
|
|
|
|
- // 佣金比例
|
|
|
|
|
|
|
+ jsonObject.put("orderTime",partnerPremiumDetails.getCreateTime());
|
|
|
|
|
+ //佣金比例
|
|
|
ArrayList<Object> list = new ArrayList<>();
|
|
ArrayList<Object> list = new ArrayList<>();
|
|
|
- JSONObject object = new JSONObject();
|
|
|
|
|
- object.put("grade","我的创始人佣金");
|
|
|
|
|
- object.put("commission","26738.48*1%=140");
|
|
|
|
|
- list.add(object);
|
|
|
|
|
|
|
+ for (PartnerPremiumDetails detail : details) {
|
|
|
|
|
+ JSONObject object = new JSONObject();
|
|
|
|
|
+ if (detail.getSource() == 1) {
|
|
|
|
|
+ object.put("grade","我的创始人佣金");
|
|
|
|
|
+ }else if (detail.getSource() == 2) {
|
|
|
|
|
+ object.put("grade","我的管理人佣金");
|
|
|
|
|
+ }else if (detail.getSource() == 3) {
|
|
|
|
|
+ object.put("grade","我的合伙人佣金");
|
|
|
|
|
+ }else if (detail.getSource() == 4) {
|
|
|
|
|
+ object.put("grade","我的工作室佣金");
|
|
|
|
|
+ }else {
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ object.put("commission",detail.getSumpremium() + "*" + detail.getProportional() + "=" + detail.getExtractFee());
|
|
|
|
|
+ list.add(object);
|
|
|
|
|
+ }
|
|
|
jsonObject.put("commissionRatio",list);
|
|
jsonObject.put("commissionRatio",list);
|
|
|
return HttpResult.ok(jsonObject);
|
|
return HttpResult.ok(jsonObject);
|
|
|
}
|
|
}
|
|
@@ -958,11 +993,6 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
|
|
|
if (CollectionUtil.isEmpty(partnerUsers)){
|
|
if (CollectionUtil.isEmpty(partnerUsers)){
|
|
|
return HttpResult.error("用户无权益信息");
|
|
return HttpResult.error("用户无权益信息");
|
|
|
}
|
|
}
|
|
|
-// BigDecimal totalAmountSafe = partnerUsers.stream()
|
|
|
|
|
-// .map(PartnerUser::getCommissionRate)
|
|
|
|
|
-// .filter(Objects::nonNull)
|
|
|
|
|
-// .reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
-
|
|
|
|
|
BigDecimal totalAmountSafe = BigDecimal.ZERO;
|
|
BigDecimal totalAmountSafe = BigDecimal.ZERO;
|
|
|
for (PartnerUser partnerUser : partnerUsers) {
|
|
for (PartnerUser partnerUser : partnerUsers) {
|
|
|
BigDecimal bigDecimal = CalculateCommissionUtils.calculateCommission(String.valueOf(partnerUser.getGrade()),partnerUser.getUserId(),"");
|
|
BigDecimal bigDecimal = CalculateCommissionUtils.calculateCommission(String.valueOf(partnerUser.getGrade()),partnerUser.getUserId(),"");
|