|
@@ -16,6 +16,7 @@ import com.cyksj.enums.BusinessType;
|
|
|
import com.cyksj.enums.GatewayResponse;
|
|
import com.cyksj.enums.GatewayResponse;
|
|
|
import com.cyksj.mapper.GoodsDonMapper;
|
|
import com.cyksj.mapper.GoodsDonMapper;
|
|
|
import com.cyksj.mapper.GoodsDonSkuMapper;
|
|
import com.cyksj.mapper.GoodsDonSkuMapper;
|
|
|
|
|
+import com.cyksj.mapper.OrderDonMapper;
|
|
|
import com.cyksj.mapper.UserMapper;
|
|
import com.cyksj.mapper.UserMapper;
|
|
|
import com.cyksj.mapper.manage.cms.CmsUserMapper;
|
|
import com.cyksj.mapper.manage.cms.CmsUserMapper;
|
|
|
import com.cyksj.mapper.manage.distribute.*;
|
|
import com.cyksj.mapper.manage.distribute.*;
|
|
@@ -41,7 +42,6 @@ import org.springframework.web.bind.annotation.*;
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import javax.validation.constraints.NotNull;
|
|
import javax.validation.constraints.NotNull;
|
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
|
-import java.math.RoundingMode;
|
|
|
|
|
import java.util.Date;
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
import java.util.Optional;
|
|
import java.util.Optional;
|
|
@@ -88,6 +88,10 @@ public class DistributeController {
|
|
|
|
|
|
|
|
private final BusinessDistributeDefaultRateConfigMapper businessDefaultRateConfigMapper;
|
|
private final BusinessDistributeDefaultRateConfigMapper businessDefaultRateConfigMapper;
|
|
|
|
|
|
|
|
|
|
+ private final UserDistributeSharedMapper userDistributeSharedMapper;
|
|
|
|
|
+
|
|
|
|
|
+ private final OrderDonMapper orderDonMapper;
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 添加固定推广者
|
|
* 添加固定推广者
|
|
|
*/
|
|
*/
|
|
@@ -168,21 +172,23 @@ public class DistributeController {
|
|
|
}
|
|
}
|
|
|
SearchResult<UserDistributeViews> search = beanSearcher.search(UserDistributeViews.class,
|
|
SearchResult<UserDistributeViews> search = beanSearcher.search(UserDistributeViews.class,
|
|
|
builder.build());
|
|
builder.build());
|
|
|
- DistributePointsExchangeMoney pointsMoneyRate = distributePointsExchangeMoneyMapper.selectOne(null);
|
|
|
|
|
search.getDataList().forEach(view -> {
|
|
search.getDataList().forEach(view -> {
|
|
|
- Optional.ofNullable(cmsUserMapper.selectById(view.getBusinessId())).ifPresent(business -> view.setBusinessName(business.getNickname()));
|
|
|
|
|
- Optional.ofNullable(userMapper.selectById(view.getUserId())).ifPresent(user -> {
|
|
|
|
|
- view.setNickname(user.getNickname());
|
|
|
|
|
- view.setPoints(user.getPoints());
|
|
|
|
|
- });
|
|
|
|
|
- BigDecimal num = view.getPoints().divide(BigDecimal.valueOf(pointsMoneyRate.getPoints()), RoundingMode.DOWN);
|
|
|
|
|
- view.setAvailableMoney(pointsMoneyRate.getMoney().multiply(num));
|
|
|
|
|
- List<DistributeMoneyApply> moneyApplies = distributeMoneyApplyMapper.selectList(Wrappers.lambdaQuery(DistributeMoneyApply.class).eq(DistributeMoneyApply::getVerifyStatus, DistributeMoneyApply.Status.success).eq(DistributeMoneyApply::getUserId, view.getUserId()).select(DistributeMoneyApply::getMoney));
|
|
|
|
|
- Optional<BigDecimal> money = moneyApplies.stream().map(apply -> apply.getMoney()).reduce(BigDecimal::add);
|
|
|
|
|
- view.setGotMoney(money.isPresent() ? money.get() : BigDecimal.ZERO);
|
|
|
|
|
- Integer orders = view.getOrders();
|
|
|
|
|
- BigDecimal hasPayCount = userDistributeMapper.countHasPayBySharedId(view.getUserId(), Constant.noOrderAllStatus, startTime, endTime);
|
|
|
|
|
- view.setDistributeConsumerRate(orders == 0 ? BigDecimal.ZERO : hasPayCount.divide(BigDecimal.valueOf(view.getDistributeUserNum()), 2, RoundingMode.HALF_DOWN));
|
|
|
|
|
|
|
+// Optional.ofNullable(cmsUserMapper.selectById(view.getBusinessId())).ifPresent(business -> view.setBusinessName(business.getNickname()));
|
|
|
|
|
+// Optional.ofNullable(userMapper.selectById(view.getUserId())).ifPresent(user -> {
|
|
|
|
|
+// view.setNickname(user.getNickname());
|
|
|
|
|
+// view.setPoints(user.getPoints());
|
|
|
|
|
+// });
|
|
|
|
|
+// BigDecimal num = view.getPoints().divide(BigDecimal.valueOf(pointsMoneyRate.getPoints()), RoundingMode.DOWN);
|
|
|
|
|
+// view.setAvailableMoney(pointsMoneyRate.getMoney().multiply(num));
|
|
|
|
|
+// List<DistributeMoneyApply> moneyApplies = distributeMoneyApplyMapper.selectList(Wrappers.lambdaQuery(DistributeMoneyApply.class).eq(DistributeMoneyApply::getVerifyStatus, DistributeMoneyApply.Status.success).eq(DistributeMoneyApply::getUserId, view.getUserId()).select(DistributeMoneyApply::getMoney));
|
|
|
|
|
+// Optional<BigDecimal> money = moneyApplies.stream().map(apply -> apply.getMoney()).reduce(BigDecimal::add);
|
|
|
|
|
+// view.setGotMoney(money.isPresent() ? money.get() : BigDecimal.ZERO);
|
|
|
|
|
+// Integer orders = view.getOrders();
|
|
|
|
|
+// BigDecimal hasPayCount = userDistributeMapper.countHasPayBySharedId(view.getUserId(), Constant.noOrderAllStatus, startTime, endTime);
|
|
|
|
|
+// view.setDistributeConsumerRate(orders == 0 ? BigDecimal.ZERO : hasPayCount.divide(BigDecimal.valueOf(view.getDistributeUserNum()), 2, RoundingMode.HALF_DOWN));
|
|
|
|
|
+ if (view.getDistributeOrdersMoney().compareTo(BigDecimal.ZERO) > 0) {
|
|
|
|
|
+ Optional.ofNullable(userDistributeMapper.selectSoldMaxGoods(view.getUserId())).ifPresent(title -> view.setGoodsTitle(title));
|
|
|
|
|
+ }
|
|
|
});
|
|
});
|
|
|
return GatewayResponse.SUCCESS.newBuilder().toResult(search);
|
|
return GatewayResponse.SUCCESS.newBuilder().toResult(search);
|
|
|
}
|
|
}
|
|
@@ -402,7 +408,7 @@ public class DistributeController {
|
|
|
}
|
|
}
|
|
|
builder.put("time", String.format("date_format(ubr.order_created_time,'%%Y-%%m') = '%s'", thisMonth));
|
|
builder.put("time", String.format("date_format(ubr.order_created_time,'%%Y-%%m') = '%s'", thisMonth));
|
|
|
SearchResult<DistributeBusinessView> search = beanSearcher.search(DistributeBusinessView.class, builder.build());
|
|
SearchResult<DistributeBusinessView> search = beanSearcher.search(DistributeBusinessView.class, builder.build());
|
|
|
- search.getDataList().forEach(data->{
|
|
|
|
|
|
|
+ search.getDataList().forEach(data -> {
|
|
|
Number numOfRelation = beanSearcher.searchCount(UserDistribute.class, MapUtils.builder().field(UserDistribute::getBusinessId, data.getBusinessId()).field(UserDistribute::getDeleted, true).build());
|
|
Number numOfRelation = beanSearcher.searchCount(UserDistribute.class, MapUtils.builder().field(UserDistribute::getBusinessId, data.getBusinessId()).field(UserDistribute::getDeleted, true).build());
|
|
|
data.setNumOfRelation(numOfRelation.intValue());
|
|
data.setNumOfRelation(numOfRelation.intValue());
|
|
|
});
|
|
});
|
|
@@ -501,7 +507,7 @@ public class DistributeController {
|
|
|
@PutMapping("/put/business/rate")
|
|
@PutMapping("/put/business/rate")
|
|
|
@Log(module = "分销管理/修改商务人员比例", businessType = BusinessType.PUT, isSaveRequestData = true)
|
|
@Log(module = "分销管理/修改商务人员比例", businessType = BusinessType.PUT, isSaveRequestData = true)
|
|
|
public Result<String> updateBusinessRate(@RequestBody @Validated List<UserDistributeBusinessRate> rates) {
|
|
public Result<String> updateBusinessRate(@RequestBody @Validated List<UserDistributeBusinessRate> rates) {
|
|
|
- rates.forEach(userDistributeBusinessRate->{
|
|
|
|
|
|
|
+ rates.forEach(userDistributeBusinessRate -> {
|
|
|
Long rateId = userDistributeBusinessRate.getId();
|
|
Long rateId = userDistributeBusinessRate.getId();
|
|
|
UserDistributeBusinessRate businessRate = Optional.ofNullable(userDistributeBusinessRateMapper.selectById(rateId)).orElse(new UserDistributeBusinessRate());
|
|
UserDistributeBusinessRate businessRate = Optional.ofNullable(userDistributeBusinessRateMapper.selectById(rateId)).orElse(new UserDistributeBusinessRate());
|
|
|
BeanUtil.copyProperties(userDistributeBusinessRate, businessRate);
|
|
BeanUtil.copyProperties(userDistributeBusinessRate, businessRate);
|
|
@@ -543,7 +549,7 @@ public class DistributeController {
|
|
|
*/
|
|
*/
|
|
|
@PutMapping("/update/business/defaultRate")
|
|
@PutMapping("/update/business/defaultRate")
|
|
|
public Result<String> updateBusinessDefaultRate(@RequestBody List<UserBusinessDefaultRateConfig> configs) {
|
|
public Result<String> updateBusinessDefaultRate(@RequestBody List<UserBusinessDefaultRateConfig> configs) {
|
|
|
- configs.forEach(rateConfig->{
|
|
|
|
|
|
|
+ configs.forEach(rateConfig -> {
|
|
|
Long rateConfigId = rateConfig.getId();
|
|
Long rateConfigId = rateConfig.getId();
|
|
|
UserBusinessDefaultRateConfig config = Optional.ofNullable(defaultRateConfigMapper.selectById(rateConfigId)).orElse(new UserBusinessDefaultRateConfig());
|
|
UserBusinessDefaultRateConfig config = Optional.ofNullable(defaultRateConfigMapper.selectById(rateConfigId)).orElse(new UserBusinessDefaultRateConfig());
|
|
|
BeanUtil.copyProperties(rateConfig, config);
|
|
BeanUtil.copyProperties(rateConfig, config);
|
|
@@ -607,4 +613,60 @@ public class DistributeController {
|
|
|
});
|
|
});
|
|
|
return GatewayResponse.SUCCESS.newBuilder().toResult();
|
|
return GatewayResponse.SUCCESS.newBuilder().toResult();
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 商务人员数据表
|
|
|
|
|
+ */
|
|
|
|
|
+ @GetMapping("/get/business/data")
|
|
|
|
|
+ @SaCheckPermission("business:dataView")
|
|
|
|
|
+ public Result<SearchResult<BusinessDistributesDataView>> getBusinessDistributesData(String startTime, String endTime) {
|
|
|
|
|
+ long adminId = StpUtil.getLoginIdAsLong();
|
|
|
|
|
+ MapBuilder builder = MapUtils.flatBuilder(request.getParameterMap());
|
|
|
|
|
+ String time1Sql = StrUtil.EMPTY;
|
|
|
|
|
+ String time2Sql = StrUtil.EMPTY;
|
|
|
|
|
+ String time3Sql = StrUtil.EMPTY;
|
|
|
|
|
+ if (StrUtil.isNotBlank(startTime)) {
|
|
|
|
|
+ time1Sql += String.format(" and ud.business_bind_time >= '%s'", startTime);
|
|
|
|
|
+ time2Sql += String.format(" and us.created_time >= '%s'", startTime);
|
|
|
|
|
+ time3Sql += String.format(" and od.created_time >= '%s'", startTime);
|
|
|
|
|
+ }
|
|
|
|
|
+ if (StrUtil.isNotBlank(endTime)) {
|
|
|
|
|
+ time1Sql += String.format(" and ud.business_bind_time < '%s'", endTime);
|
|
|
|
|
+ time2Sql += String.format(" and us.created_time < '%s'", endTime);
|
|
|
|
|
+ time3Sql += String.format(" and od.created_time < '%s'", endTime);
|
|
|
|
|
+ }
|
|
|
|
|
+ if (StrUtil.isNotBlank(time1Sql)) {
|
|
|
|
|
+ builder.put("time1", time1Sql);
|
|
|
|
|
+ }
|
|
|
|
|
+ if (StrUtil.isNotBlank(time2Sql)) {
|
|
|
|
|
+ builder.put("time2", time2Sql);
|
|
|
|
|
+ }
|
|
|
|
|
+ if (StrUtil.isNotBlank(time3Sql)) {
|
|
|
|
|
+ builder.put("time3", time3Sql);
|
|
|
|
|
+ }
|
|
|
|
|
+ //是否是商务人员
|
|
|
|
|
+ if (userBusinessRateService.isBusiness(adminId)) {
|
|
|
|
|
+ builder.field(BusinessDistributesDataView::getBusinessId, adminId);
|
|
|
|
|
+ }
|
|
|
|
|
+ SearchResult<BusinessDistributesDataView> search = beanSearcher.search(BusinessDistributesDataView.class, builder.build());
|
|
|
|
|
+// search.getDataList().forEach(data -> {
|
|
|
|
|
+// Map<String, Object> reMap = orderDonMapper.selectNumOfDistributeOrders(data.getBusinessId(), startTime, endTime, Constant.noOrderAllStatus);
|
|
|
|
|
+// Object num = reMap.get("num");
|
|
|
|
|
+// Object money = reMap.get("money");
|
|
|
|
|
+// data.setNumOfDistributeOrders(Integer.parseInt(num.toString()));
|
|
|
|
|
+// data.setDistributeOrdersMoney(BigDecimal.valueOf(Long.valueOf(money.toString())));
|
|
|
|
|
+// Integer numOfNewUser = userDistributeSharedMapper.countByBusinessId(data.getBusinessId(), startTime, endTime);
|
|
|
|
|
+// data.setNumOfNewUser(numOfNewUser);
|
|
|
|
|
+// });
|
|
|
|
|
+ return GatewayResponse.SUCCESS.newBuilder().toResult(search);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 渠道积分提现详情
|
|
|
|
|
+ */
|
|
|
|
|
+ @GetMapping("/get/apply/detail/{userId}")
|
|
|
|
|
+ public Result<UserDistributeViews> getApplyDetail(@PathVariable Long userId) {
|
|
|
|
|
+ UserDistributeViews userDistributeViews = userDistributeMapper.getApplyDetailByUserId(userId);
|
|
|
|
|
+ return GatewayResponse.SUCCESS.newBuilder().toResult(userDistributeViews);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|