Commit 344d2ac4 authored by xuxin's avatar xuxin

分销商渠道相关接口

parent 8bb64144
...@@ -505,6 +505,7 @@ public class AdministratorController { ...@@ -505,6 +505,7 @@ public class AdministratorController {
/** /**
* 专线回落 * 专线回落
*/ */
@PreAuthorize(Securitys.ADMIN_EL)
@PutMapping(value = "/0xadministrator/updateip/{addr}/{flag}") @PutMapping(value = "/0xadministrator/updateip/{addr}/{flag}")
public ResultDto updateIp(@PathVariable String addr, @PathVariable String flag) { public ResultDto updateIp(@PathVariable String addr, @PathVariable String flag) {
ResultDto resultDto = new ResultDto(); ResultDto resultDto = new ResultDto();
...@@ -518,6 +519,29 @@ public class AdministratorController { ...@@ -518,6 +519,29 @@ public class AdministratorController {
} }
return resultDto; return resultDto;
} }
/**
* 设置客户为分销商
*/
@PreAuthorize(Securitys.ADMIN_EL)
@PutMapping(value = "/0xadministrator/account/{id}/{flag}")
public ResultDto updateToDistributor(@PathVariable String id, @PathVariable Integer flag) {
ResultDto resultDto = new ResultDto();
try {
boolean tag = false;
if (flag == 1) {
tag = true;
}
Long i = administratorService.convertToDistributor(id, tag);
resultDto.setStatus(0);
resultDto.setData(i);
} catch (Exception e) {
resultDto.setStatus(-1);
resultDto.setData(e.getMessage());
}
return resultDto;
}
} }
......
...@@ -38,6 +38,11 @@ public class Promotion { ...@@ -38,6 +38,11 @@ public class Promotion {
*/ */
private boolean isSale; private boolean isSale;
/**
* 是否为分销商
*/
private boolean isDistributor;
/** /**
* 当月礼金 * 当月礼金
*/ */
...@@ -124,4 +129,12 @@ public class Promotion { ...@@ -124,4 +129,12 @@ public class Promotion {
public void setTotalCommission(int totalCommission) { public void setTotalCommission(int totalCommission) {
this.totalCommission = totalCommission; this.totalCommission = totalCommission;
} }
public boolean isDistributor() {
return isDistributor;
}
public void setDistributor(boolean distributor) {
isDistributor = distributor;
}
} }
...@@ -12,4 +12,6 @@ public interface AccountRepositoryCustom { ...@@ -12,4 +12,6 @@ public interface AccountRepositoryCustom {
Account findByPromotion(String code); Account findByPromotion(String code);
Long convertToDistributor(String id, boolean tag);
} }
package com.edgec.browserbackend.account.repository; package com.edgec.browserbackend.account.repository;
import com.edgec.browserbackend.account.domain.Account; import com.edgec.browserbackend.account.domain.Account;
import com.mongodb.client.result.UpdateResult;
import org.bson.Document; import org.bson.Document;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.MongoTemplate;
...@@ -63,4 +64,18 @@ public class AccountRepositoryCustomImpl implements AccountRepositoryCustom { ...@@ -63,4 +64,18 @@ public class AccountRepositoryCustomImpl implements AccountRepositoryCustom {
return null; return null;
return account; return account;
} }
@Override
public Long convertToDistributor(String id, boolean tag) {
Document doc = new Document();
BasicQuery basicQuery = new BasicQuery(doc);
basicQuery.addCriteria(where("_id").is(id));
Update update = new Update();
update.set("promotion.isDistributor", tag);
UpdateResult upsert = mongoTemplate.upsert(basicQuery, update, Account.class);
return upsert.getModifiedCount();
}
} }
...@@ -5,13 +5,10 @@ import com.edgec.browserbackend.account.dto.BillQueryResultDto; ...@@ -5,13 +5,10 @@ import com.edgec.browserbackend.account.dto.BillQueryResultDto;
import com.edgec.browserbackend.account.dto.IpCountQueryResultDto; import com.edgec.browserbackend.account.dto.IpCountQueryResultDto;
import com.edgec.browserbackend.account.dto.PromotionQueryResultDto; import com.edgec.browserbackend.account.dto.PromotionQueryResultDto;
import com.edgec.browserbackend.account.dto.UserUsedDto; import com.edgec.browserbackend.account.dto.UserUsedDto;
import com.edgec.browserbackend.browser.domain.IpResource;
import com.edgec.browserbackend.browser.dto.IpResourceDto;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import java.io.File; import java.io.File;
import java.util.HashMap;
import java.util.List; import java.util.List;
public interface AdministratorService { public interface AdministratorService {
...@@ -68,4 +65,8 @@ public interface AdministratorService { ...@@ -68,4 +65,8 @@ public interface AdministratorService {
File getProxyConfig(); File getProxyConfig();
Page<UserUsedDto> getAllUserUsed(Pageable pageable); Page<UserUsedDto> getAllUserUsed(Pageable pageable);
Long convertToDistributor(String id, boolean tag);
} }
...@@ -72,6 +72,7 @@ public class AdministratorServiceImpl implements AdministratorService { ...@@ -72,6 +72,7 @@ public class AdministratorServiceImpl implements AdministratorService {
@Autowired @Autowired
private IpCountRecordRepository ipCountRecordRepository; private IpCountRecordRepository ipCountRecordRepository;
@Override @Override
public Administrator createAdministrator(Administrator administrator) { public Administrator createAdministrator(Administrator administrator) {
Administrator administrator1 = new Administrator(); Administrator administrator1 = new Administrator();
...@@ -537,6 +538,11 @@ public class AdministratorServiceImpl implements AdministratorService { ...@@ -537,6 +538,11 @@ public class AdministratorServiceImpl implements AdministratorService {
return userUsedDtopage; return userUsedDtopage;
} }
@Override
public Long convertToDistributor(String id, boolean tag) {
return accountRepository.convertToDistributor(id, tag);
}
} }
......
...@@ -4,6 +4,8 @@ import lombok.Data; ...@@ -4,6 +4,8 @@ import lombok.Data;
import org.springframework.data.annotation.Id; import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document; import org.springframework.data.mongodb.core.mapping.Document;
import java.math.BigDecimal;
/** /**
* @author xuxin * @author xuxin
* @date 2020/8/3 14:37 * @date 2020/8/3 14:37
...@@ -27,4 +29,10 @@ public class GlobalField { ...@@ -27,4 +29,10 @@ public class GlobalField {
* 目前是注册就送 16 元 * 目前是注册就送 16 元
*/ */
private Integer registerGift; private Integer registerGift;
/**
* 分销商提成比例
* 目前是 0.30
*/
private BigDecimal distributorRate;
} }
...@@ -5,6 +5,7 @@ import com.edgec.browserbackend.account.domain.Promotion; ...@@ -5,6 +5,7 @@ import com.edgec.browserbackend.account.domain.Promotion;
import com.edgec.browserbackend.account.domain.UserPrePaidBilling; import com.edgec.browserbackend.account.domain.UserPrePaidBilling;
import com.edgec.browserbackend.account.repository.AccountRepository; import com.edgec.browserbackend.account.repository.AccountRepository;
import com.edgec.browserbackend.account.repository.UserPrePaidBillingRepository; import com.edgec.browserbackend.account.repository.UserPrePaidBillingRepository;
import com.edgec.browserbackend.browser.repository.GlobalFieldRepository;
import net.javacrumbs.shedlock.core.SchedulerLock; import net.javacrumbs.shedlock.core.SchedulerLock;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -27,6 +28,8 @@ public class PromotionTask { ...@@ -27,6 +28,8 @@ public class PromotionTask {
@Autowired @Autowired
private UserPrePaidBillingRepository userPrePaidBillingRepository; private UserPrePaidBillingRepository userPrePaidBillingRepository;
private GlobalFieldRepository globalFieldRepository;
// TODO 2020年7月2号, 晚上11点,jim负责跟踪下 // TODO 2020年7月2号, 晚上11点,jim负责跟踪下
@SchedulerLock(name = "countGift", lockAtLeastForString = "PT1H", lockAtMostForString = "PT2H") @SchedulerLock(name = "countGift", lockAtLeastForString = "PT1H", lockAtMostForString = "PT2H")
...@@ -72,6 +75,11 @@ public class PromotionTask { ...@@ -72,6 +75,11 @@ public class PromotionTask {
if (account.getPromotion().isSale()) { if (account.getPromotion().isSale()) {
promotion.setGift(totalCommission * 0.1 + secondCommission * 0.02); promotion.setGift(totalCommission * 0.1 + secondCommission * 0.02);
} }
if (account.getPromotion().isDistributor()) {
promotion.setGift(totalCommission * globalFieldRepository.findAll().get(0).getDistributorRate().doubleValue());
}
promotion.setAllGift(promotion.getAllGift() + promotion.getGift()); promotion.setAllGift(promotion.getAllGift() + promotion.getGift());
accountRepository.save(account); accountRepository.save(account);
} }
...@@ -113,10 +121,15 @@ public class PromotionTask { ...@@ -113,10 +121,15 @@ public class PromotionTask {
// 3. 封装当前账户的返佣相关信息(当月当前的消费、当月当前的返佣)并保存 // 3. 封装当前账户的返佣相关信息(当月当前的消费、当月当前的返佣)并保存
Promotion promotion = account.getPromotion(); Promotion promotion = account.getPromotion();
promotion.setCommission((int) totalCommission); promotion.setCommission((int) totalCommission);
// 4. 不同角色的人给不同的提成
promotion.setGift(totalCommission * 0.08); promotion.setGift(totalCommission * 0.08);
if (account.getPromotion().isSale()) { if (account.getPromotion().isSale()) {
promotion.setGift(totalCommission * 0.1 + secondCommission * 0.02); promotion.setGift(totalCommission * 0.1 + secondCommission * 0.02);
} }
if (account.getPromotion().isDistributor()) {
promotion.setGift(totalCommission * globalFieldRepository.findAll().get(0).getDistributorRate().doubleValue());
}
accountRepository.save(account); accountRepository.save(account);
} }
log.info("End scheduled task:Scheduled.countCommission..."); log.info("End scheduled task:Scheduled.countCommission...");
......
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