|
|
@@ -1,5 +1,8 @@
|
|
|
package com.cyksj.web.controller.manage.distribute;
|
|
|
|
|
|
+import cn.dev33.satoken.annotation.SaCheckPermission;
|
|
|
+import cn.dev33.satoken.stp.StpUtil;
|
|
|
+import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
@@ -14,19 +17,23 @@ import com.cyksj.mapper.GoodsDonSkuMapper;
|
|
|
import com.cyksj.mapper.UserMapper;
|
|
|
import com.cyksj.mapper.manage.distribute.DistributeMoneyApplyMapper;
|
|
|
import com.cyksj.mapper.manage.distribute.DistributePointsExchangeMoneyMapper;
|
|
|
+import com.cyksj.mapper.manage.distribute.UserDistributeBusinessRateMapper;
|
|
|
import com.cyksj.mapper.manage.distribute.UserDistributeMapper;
|
|
|
import com.cyksj.model.entity.*;
|
|
|
import com.cyksj.model.request.DistributeApplyMoneyReq;
|
|
|
import com.cyksj.model.request.UserDistributeReq;
|
|
|
import com.cyksj.model.views.*;
|
|
|
import com.cyksj.service.distribute.DistributeService;
|
|
|
+import com.cyksj.service.mange.business.UserBusinessRateService;
|
|
|
import com.cyksj.service.mange.statistics.StatisticsDataService;
|
|
|
import com.ejlchina.searcher.BeanSearcher;
|
|
|
import com.ejlchina.searcher.SearchResult;
|
|
|
import com.ejlchina.searcher.param.Operator;
|
|
|
+import com.ejlchina.searcher.util.MapBuilder;
|
|
|
import com.ejlchina.searcher.util.MapUtils;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
@@ -68,13 +75,24 @@ public class DistributeController {
|
|
|
|
|
|
private final StatisticsDataService statisticsDataService;
|
|
|
|
|
|
+ private final UserBusinessRateService userBusinessRateService;
|
|
|
+
|
|
|
+ private final UserDistributeBusinessRateMapper userDistributeBusinessRateMapper;
|
|
|
+
|
|
|
+ private final HttpServletRequest request;
|
|
|
+
|
|
|
/**
|
|
|
* 添加固定推广者
|
|
|
*/
|
|
|
@PostMapping
|
|
|
+ @SaCheckPermission("distribute:add")
|
|
|
@Log(module = "分销管理/增加推广者", businessType = BusinessType.POST, isSaveRequestData = true)
|
|
|
+ @Transactional(rollbackFor = Throwable.class)
|
|
|
public Result<String> saveDistributes(@RequestBody @NotNull UserDistributeReq userDistributeReq) {
|
|
|
distributeService.insertDistribute(userDistributeReq);
|
|
|
+ Long businessId = userDistributeReq.getBusinessId();
|
|
|
+ //保存商务人员提成比例
|
|
|
+ userBusinessRateService.saveBusinessRate(businessId);
|
|
|
return GatewayResponse.SUCCESS.newBuilder().toResult("添加成功");
|
|
|
}
|
|
|
|
|
|
@@ -82,6 +100,7 @@ public class DistributeController {
|
|
|
* 删除固定推广者
|
|
|
*/
|
|
|
@DeleteMapping("/del/{id}")
|
|
|
+ @SaCheckPermission("distribute:delete")
|
|
|
@Log(module = "分销管理/删除推广者", businessType = BusinessType.DELETE, isSaveRequestData = true)
|
|
|
public Result<String> deleteDistributesById(@PathVariable Long id) {
|
|
|
if (id == null || id < 1) {
|
|
|
@@ -95,6 +114,7 @@ public class DistributeController {
|
|
|
* 推广者编辑
|
|
|
*/
|
|
|
@PutMapping
|
|
|
+ @SaCheckPermission("distribute:update")
|
|
|
@Log(module = "分销管理/编辑推广者", businessType = BusinessType.PUT, isSaveRequestData = true)
|
|
|
public Result<String> editDistribute(@RequestBody UserDistributeReq userDistributeReq) {
|
|
|
distributeService.editDistribute(userDistributeReq);
|
|
|
@@ -117,7 +137,13 @@ public class DistributeController {
|
|
|
*/
|
|
|
@GetMapping
|
|
|
public Result<SearchResult<UserDistributeViews>> distributeList(HttpServletRequest request) {
|
|
|
- SearchResult<UserDistributeViews> search = beanSearcher.search(UserDistributeViews.class, MapUtils.flatBuilder(request.getParameterMap()).build());
|
|
|
+ long adminId = StpUtil.getLoginIdAsLong();
|
|
|
+ MapBuilder builder = MapUtils.flatBuilder(request.getParameterMap());
|
|
|
+ //是否是商务人员
|
|
|
+ if (userBusinessRateService.isBusiness(adminId)) {
|
|
|
+ builder.field(UserDistributeViews::getBusinessId, adminId);
|
|
|
+ }
|
|
|
+ SearchResult<UserDistributeViews> search = beanSearcher.search(UserDistributeViews.class, builder.build());
|
|
|
DistributePointsExchangeMoney pointsMoneyRate = distributePointsExchangeMoneyMapper.selectOne(null);
|
|
|
Optional.ofNullable(search.getDataList()).ifPresent(list -> list.forEach(view -> {
|
|
|
BigDecimal num = view.getPoints().divide(BigDecimal.valueOf(pointsMoneyRate.getPoints()), RoundingMode.DOWN);
|
|
|
@@ -140,6 +166,7 @@ public class DistributeController {
|
|
|
* 获取平台分销比例
|
|
|
*/
|
|
|
@GetMapping("/get/plat")
|
|
|
+ @SaCheckPermission("distribute:platRateView")
|
|
|
public Result<List<GoodsDon>> getGoodsDistributeRate() {
|
|
|
return GatewayResponse.SUCCESS.newBuilder().toResult(goodsDonMapper.selectList(Wrappers.lambdaQuery(GoodsDon.class).in(GoodsDon::getType, Constant.dsGoodsIds).eq(GoodsDon::getDeleted, true).orderByAsc(GoodsDon::getType).orderByAsc(GoodsDon::getId).select(GoodsDon::getId, GoodsDon::getType, GoodsDon::getTitle, GoodsDon::getRate, GoodsDon::getSecondRate)));
|
|
|
}
|
|
|
@@ -226,6 +253,7 @@ public class DistributeController {
|
|
|
* 提现列表
|
|
|
*/
|
|
|
@GetMapping("/get/applyMoney/list")
|
|
|
+ @SaCheckPermission("distribute:applyView")
|
|
|
public Result<SearchResult<DistributeMoneyApplyView>> applyMoneyList(HttpServletRequest request) {
|
|
|
SearchResult<DistributeMoneyApplyView> search = beanSearcher.search(DistributeMoneyApplyView.class, MapUtils.flatBuilder(request.getParameterMap()).build());
|
|
|
return GatewayResponse.SUCCESS.newBuilder().toResult(search);
|
|
|
@@ -324,4 +352,50 @@ public class DistributeController {
|
|
|
.build());
|
|
|
return GatewayResponse.SUCCESS.newBuilder().toResult(number.intValue());
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 绑定固定分销者的商务人员详情
|
|
|
+ */
|
|
|
+ @GetMapping("/get/business/list")
|
|
|
+ @SaCheckPermission("distribute:businessView")
|
|
|
+ public Result<SearchResult<DistributeBusinessView>> getDistributeBusinessView() {
|
|
|
+ long adminId = StpUtil.getLoginIdAsLong();
|
|
|
+ MapBuilder builder = MapUtils.flatBuilder(request.getParameterMap());
|
|
|
+ //是否是商务人员
|
|
|
+ if (userBusinessRateService.isBusiness(adminId)) {
|
|
|
+ builder.field(DistributeBusinessView::getBusinessId, adminId);
|
|
|
+ }
|
|
|
+ SearchResult<DistributeBusinessView> search = beanSearcher.search(DistributeBusinessView.class, builder.build());
|
|
|
+ search.getDataList().forEach(data->{
|
|
|
+ Number numOfRelation = beanSearcher.searchCount(UserDistribute.class, MapUtils.builder().field(UserDistribute::getBusinessId, data.getBusinessId()).field(UserDistribute::getDeleted, true).build());
|
|
|
+ data.setNumOfRelation(numOfRelation.intValue());
|
|
|
+ });
|
|
|
+ return GatewayResponse.SUCCESS.newBuilder().toResult(search);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查看商务人员提成比例
|
|
|
+ */
|
|
|
+ @GetMapping("/get/business/rate")
|
|
|
+ @SaCheckPermission("distribute:businessRateView")
|
|
|
+ public Result<UserDistributeBusinessRate> getUserDistributeBusinessRateDetail(Long businessId) {
|
|
|
+ UserDistributeBusinessRate userDistributeBusinessRate = beanSearcher.searchFirst(UserDistributeBusinessRate.class, MapUtils.builder()
|
|
|
+ .field(UserDistributeBusinessRate::getBusinessId, businessId)
|
|
|
+ .build());
|
|
|
+ return GatewayResponse.SUCCESS.newBuilder().toResult(userDistributeBusinessRate);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 修改商务人员提成比例
|
|
|
+ */
|
|
|
+ @PutMapping("/put/business/rate")
|
|
|
+ @Log(module = "分销管理/修改商户人员比例", businessType = BusinessType.PUT, isSaveRequestData = true)
|
|
|
+ public Result<String> updateBusinessRate(@RequestBody @Validated UserDistributeBusinessRate userDistributeBusinessRate) {
|
|
|
+ Long rateId = userDistributeBusinessRate.getId();
|
|
|
+ UserDistributeBusinessRate businessRate = userDistributeBusinessRateMapper.selectById(rateId);
|
|
|
+ BeanUtil.copyProperties(userDistributeBusinessRate, businessRate);
|
|
|
+ userDistributeBusinessRateMapper.updateById(businessRate);
|
|
|
+ return GatewayResponse.SUCCESS.newBuilder().toResult("修改比例成功");
|
|
|
+ }
|
|
|
+
|
|
|
}
|