Commit aa155da0 authored by Administrator's avatar Administrator

Merge branch 'staging' into 'master'

Staging

See merge request !164
parents f944405c 12775a91
LOG_ROOT=/logs
#deployment target is production env.
DEPLOY_TARGET=prod
INTELLIGROUP_SERVICE_PASSWORD=123
ACCOUNT_SERVICE_PASSWORD=123
MONGODB_PASSWORD=123
MONGODB_SUPER_PASSWORD=Cdex32eO9
#DOCKER_HOST=tcp://registry-vpc.cn-shenzhen.aliyuncs.com:80
DOCKER_USER=liqingsong@1616554330968404
DOCKER_PASS=Edgec2018
\ No newline at end of file
services:
staging-mongodb:
environment:
MONGODB_PASSWORD: $MONGODB_PASSWORD
MONGODB_SUPER_PASSWORD: $MONGODB_SUPER_PASSWORD
HOST_NAME: staging-mongodb
LOG_ROOT: $LOG_ROOT
image: registry-vpc.cn-shenzhen.aliyuncs.com/cloudam/staging-mongodb
volumes:
- /data/db/browser:/data/db
restart: always
logging:
options:
max-size: "10m"
max-file: "10"
browser:
environment:
MONGODB_PASSWORD: $MONGODB_PASSWORD
spring.profiles.active: staging
LOG_ROOT: $LOG_ROOT
image: registry-vpc.cn-shenzhen.aliyuncs.com/cloudam/browser-staging
volumes:
- /data/logs:$LOG_ROOT
restart: always
logging:
options:
max-size: "10m"
max-file: "10"
\ No newline at end of file
#!/bin/bash
docker rmi -f `docker images | grep '<none>' | awk '{print $3}'`
sudo_token=sudo
deploy=n
if [ "$1" == "win" ]; then
sudo_token=
fi
if [ "$2" == "y" ]; then
deploy=y
fi
export DOCKER_HOST=registry-vpc.cn-shenzhen.aliyuncs.com
export DOCKER_USER=liqingsong@1616554330968404
export DOCKER_PASS=Edgec2018
export COMMIT=`date +%s | md5sum | head -c 10 ; echo`
#export COMMIT="latest"
cd /root/cloudam/browser-backend/
git pull
export TAG="latest"
export runningenv="-staging"
mvn install -DskipTests=true -Dmaven.javadoc.skip=true -B -V
export IMAGE_NAME=cloudam/browser$runningenv
$sudo_token docker build -t $IMAGE_NAME:$COMMIT .
$sudo_token docker tag $IMAGE_NAME:$COMMIT $DOCKER_HOST/$IMAGE_NAME:$TAG
$sudo_token docker push $DOCKER_HOST/$IMAGE_NAME
\ No newline at end of file
cd /root/cloudam
docker rmi -f `docker images | grep '<none>' | awk '{print $3}'`
docker-compose -f browser-staging.yml pull
docker-compose -f browser-staging.yml --compatibility up -d
......@@ -505,6 +505,7 @@ public class AdministratorController {
/**
* 专线回落
*/
@PreAuthorize(Securitys.ADMIN_EL)
@PutMapping(value = "/0xadministrator/updateip/{addr}/{flag}")
public ResultDto updateIp(@PathVariable String addr, @PathVariable String flag) {
ResultDto resultDto = new ResultDto();
......@@ -518,6 +519,29 @@ public class AdministratorController {
}
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 {
*/
private boolean isSale;
/**
* 是否为分销商
*/
private boolean isDistributor;
/**
* 当月礼金
*/
......@@ -124,4 +129,12 @@ public class Promotion {
public void setTotalCommission(int totalCommission) {
this.totalCommission = totalCommission;
}
public boolean isDistributor() {
return isDistributor;
}
public void setDistributor(boolean distributor) {
isDistributor = distributor;
}
}
......@@ -15,7 +15,7 @@ public class UserPayment {
@Id
private String id;
private String tradeNo = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date())+SmsUtils.createRandom(true, 4);
private String tradeNo = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + SmsUtils.createRandom(true, 4);
private String username;
......@@ -23,6 +23,10 @@ public class UserPayment {
private boolean succeed;
/**
* 感觉这个时间记录的是订单创建时间不太合理
* 在业务中修改为 我们系统中记录的订单充值成功的时间
*/
private Date paymentDate = new Date();
private PaymentMethod paymentMethod;
......
......@@ -12,4 +12,6 @@ public interface AccountRepositoryCustom {
Account findByPromotion(String code);
Long convertToDistributor(String id, boolean tag);
}
package com.edgec.browserbackend.account.repository;
import com.edgec.browserbackend.account.domain.Account;
import com.mongodb.client.result.UpdateResult;
import org.bson.Document;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
......@@ -63,4 +64,18 @@ public class AccountRepositoryCustomImpl implements AccountRepositoryCustom {
return null;
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();
}
}
......@@ -3,8 +3,10 @@ package com.edgec.browserbackend.account.repository;
import com.edgec.browserbackend.account.domain.UserPayment;
import java.util.Date;
public interface UserPaymentRepositoryCustom {
boolean updatePaymentResult(UserPayment payment, boolean result);
boolean updatePaymentResult(UserPayment payment, boolean result, Date paymentDate);
}
......@@ -8,6 +8,8 @@ import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.BasicQuery;
import org.springframework.data.mongodb.core.query.Update;
import java.util.Date;
import static org.springframework.data.mongodb.core.query.Criteria.where;
public class UserPaymentRepositoryCustomImpl implements UserPaymentRepositoryCustom {
......@@ -16,18 +18,16 @@ public class UserPaymentRepositoryCustomImpl implements UserPaymentRepositoryCus
private MongoTemplate mongoTemplate;
@Override
public boolean updatePaymentResult(UserPayment payment, boolean result) {
public boolean updatePaymentResult(UserPayment payment, boolean result, Date paymentDate) {
Document doc = new Document();
BasicQuery basicQuery = new BasicQuery(doc);
basicQuery.addCriteria(where("id").is(payment.getId()).and("succeed").is(!result));
Update update = new Update();
update.set("succeed", result);
update.set("paymentDate", paymentDate);
UpdateResult operation = mongoTemplate.updateFirst(basicQuery, update, UserPayment.class);
if (operation.getModifiedCount() < 1)
return false;
else
return true;
return operation.getModifiedCount() >= 1;
}
}
......@@ -5,13 +5,10 @@ import com.edgec.browserbackend.account.dto.BillQueryResultDto;
import com.edgec.browserbackend.account.dto.IpCountQueryResultDto;
import com.edgec.browserbackend.account.dto.PromotionQueryResultDto;
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.Pageable;
import java.io.File;
import java.util.HashMap;
import java.util.List;
public interface AdministratorService {
......@@ -68,4 +65,8 @@ public interface AdministratorService {
File getProxyConfig();
Page<UserUsedDto> getAllUserUsed(Pageable pageable);
Long convertToDistributor(String id, boolean tag);
}
......@@ -466,13 +466,13 @@ public class AccountServiceImpl implements AccountService {
com.edgec.browserbackend.common.commons.utils.SmsUtils.sendNewAccountSms("15919921106", com.edgec.browserbackend.common.commons.utils.SmsUtils.SmsTemplateCode.NEWACCOUNT, param);
com.edgec.browserbackend.common.commons.utils.SmsUtils.sendNewAccountSms("13570690305", com.edgec.browserbackend.common.commons.utils.SmsUtils.SmsTemplateCode.NEWACCOUNT, param);
// 6. 使用手机注册就送 16 元体验金
// 6. 使用手机注册且填写了正确的邀请码就送 16 元体验金
List<String> list = new ArrayList<>();
list.add("167");
list.add("171");
list.add("184");
list.add("170");
if (!StringUtils.isEmpty(account.getPhoneNumber()) && !list.contains(account.getPhoneNumber().substring(0, 3))) {
if (!StringUtils.isEmpty(account.getPhoneNumber()) && !list.contains(account.getPhoneNumber().substring(0, 3)) && inviter != null) {
paymentService.bankTransferInsertion(account.getName(), 16);
}
log.info("new account has been created: " + account.getName());
......
......@@ -72,6 +72,7 @@ public class AdministratorServiceImpl implements AdministratorService {
@Autowired
private IpCountRecordRepository ipCountRecordRepository;
@Override
public Administrator createAdministrator(Administrator administrator) {
Administrator administrator1 = new Administrator();
......@@ -537,6 +538,11 @@ public class AdministratorServiceImpl implements AdministratorService {
return userUsedDtopage;
}
@Override
public Long convertToDistributor(String id, boolean tag) {
return accountRepository.convertToDistributor(id, tag);
}
}
......
......@@ -556,7 +556,6 @@ public class PaymentServiceImpl implements PaymentService {
result.setBalance(Math.round(balance.getBalanced()));
}
boolean isVpsClient = true;
WXPayConfig ourWxPayConfig = isVpsClient ? new FGLWxConfig() : new CloudamWxConfig();
WXPay wxPay = new WXPay(ourWxPayConfig);
......@@ -576,8 +575,7 @@ public class PaymentServiceImpl implements PaymentService {
result.setStatus(respData.get("trade_state"));
if ("SUCCESS".equals(respData.get("trade_state"))) {
byTradeNo.setSucceed(true);
boolean b = userPaymentRepository.updatePaymentResult(byTradeNo, true);
boolean b = userPaymentRepository.updatePaymentResult(byTradeNo, true, new Date());
if (b) {
if (balance == null) {
......@@ -644,7 +642,7 @@ public class PaymentServiceImpl implements PaymentService {
if ("TRADE_SUCCESS".equals(response.getTradeStatus()) || "TRADE_FINISHED".equals(response.getTradeStatus())) {
byTradeNo.setSucceed(true);
boolean b = userPaymentRepository.updatePaymentResult(byTradeNo, true);
boolean b = userPaymentRepository.updatePaymentResult(byTradeNo, true, new Date());
if (b) {
......@@ -791,7 +789,7 @@ public class PaymentServiceImpl implements PaymentService {
private void dealPaySuccess(int chargeType, UserPaymentDto result, UserPayment byTradeNo, Account byName, UserBalance balance) {
byTradeNo.setSucceed(true);
// 2.1 更新 userPayment 的支付状态为成功
boolean b = userPaymentRepository.updatePaymentResult(byTradeNo, true);
boolean b = userPaymentRepository.updatePaymentResult(byTradeNo, true, new Date());
if (b) {
log.info("订单 " + byTradeNo.getTradeNo() + " 的支付状态更新为成功");
// 2.2 获取充值优惠赠送
......
......@@ -4,6 +4,8 @@ import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import java.math.BigDecimal;
/**
* @author xuxin
* @date 2020/8/3 14:37
......@@ -27,4 +29,10 @@ public class GlobalField {
* 目前是注册就送 16 元
*/
private Integer registerGift;
/**
* 分销商提成比例
* 目前是 0.30
*/
private BigDecimal distributorRate;
}
......@@ -5,6 +5,7 @@ import com.edgec.browserbackend.account.domain.Promotion;
import com.edgec.browserbackend.account.domain.UserPrePaidBilling;
import com.edgec.browserbackend.account.repository.AccountRepository;
import com.edgec.browserbackend.account.repository.UserPrePaidBillingRepository;
import com.edgec.browserbackend.browser.repository.GlobalFieldRepository;
import net.javacrumbs.shedlock.core.SchedulerLock;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -27,6 +28,8 @@ public class PromotionTask {
@Autowired
private UserPrePaidBillingRepository userPrePaidBillingRepository;
private GlobalFieldRepository globalFieldRepository;
// TODO 2020年7月2号, 晚上11点,jim负责跟踪下
@SchedulerLock(name = "countGift", lockAtLeastForString = "PT1H", lockAtMostForString = "PT2H")
......@@ -72,6 +75,11 @@ public class PromotionTask {
if (account.getPromotion().isSale()) {
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());
accountRepository.save(account);
}
......@@ -113,10 +121,15 @@ public class PromotionTask {
// 3. 封装当前账户的返佣相关信息(当月当前的消费、当月当前的返佣)并保存
Promotion promotion = account.getPromotion();
promotion.setCommission((int) totalCommission);
// 4. 不同角色的人给不同的提成
promotion.setGift(totalCommission * 0.08);
if (account.getPromotion().isSale()) {
promotion.setGift(totalCommission * 0.1 + secondCommission * 0.02);
}
if (account.getPromotion().isDistributor()) {
promotion.setGift(totalCommission * globalFieldRepository.findAll().get(0).getDistributorRate().doubleValue());
}
accountRepository.save(account);
}
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