Просмотр исходного кода

Merge tag 'refs/tags/jenkins-back-end-2764' into release

develop
release_toaliyun_real
Stormeye Wu 6 лет назад
Родитель
Сommit
a09152c459
10 измененных файлов: 102 добавлений и 59 удалений
  1. +24
    -0
      mallinkAdmin/src/main/resources/db/migration/V201909170031__MENU_CHANGED.sql
  2. +2
    -0
      mallinkService/src/main/java/com/iformall/domain/vo/PromotionCalc.java
  3. +30
    -24
      mallinkService/src/main/java/com/iformall/service/impl/WxBillSettleServiceImpl.java
  4. +5
    -5
      mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java
  5. +2
    -2
      mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java
  6. +13
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java
  7. +4
    -4
      mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java
  8. +1
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxSubsidyServiceImpl.java
  9. +12
    -13
      mallinkService/src/main/java/com/iformall/utils/PayUtils.java
  10. +9
    -9
      mallinkSysAdmin/src/main/java/com/iformall/controller/sys/DataInitController.java

+ 24
- 0
mallinkAdmin/src/main/resources/db/migration/V201909170031__MENU_CHANGED.sql Просмотреть файл

@@ -0,0 +1,24 @@
DROP TABLE IF EXISTS `mall_sale_type` ;
CREATE TABLE `mall_sale_type` (
`id` bigint(64) NOT NULL,
`name` varchar(32) DEFAULT NULL COMMENT '销售类型',
`type` tinyint(2) DEFAULT NULL COMMENT '资源类型1:尊享全能版 2:尊享营销版 3.速享版',
`period` tinyint(2) DEFAULT NULL COMMENT '有效期(单位月)',
`menus` json DEFAULT NULL COMMENT '菜单列表',
PRIMARY KEY (`id`),
UNIQUE `id_UNIQUE` USING BTREE (`id`) comment ''
) ENGINE=`InnoDB` ROW_FORMAT=DYNAMIC COMMENT='系统销售表' CHECKSUM=0 DELAY_KEY_WRITE=0;

INSERT INTO `mall_sale_type`
(`id`,`name`, `type`, `period`, `menus`)
VALUES
(1, '尊享全能版', 1, 12,
'[1,2,3,4,5,6,7,8,9,10,50,101,102,103,104,105,106,107,108,201,202,203,204,205,206,211,212,221,222,251,299,300,301,302,303,304,305,306,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,501,502,503,504,505,506,507,508,509,511,512,513,521,522,523,531,532,533,591,595,601,602,603,604,605,606,607,608,609,610,611,612,621,622,623,624,625,626,627,641,642,643,644,645,651,661,662,663,671,672,673,674,681,682,683,684,685,691,692,693,694,695,701,702,711,712,713,901,902,903,931,932,951,952,961,962,965,966,967,968]'
),
(2, '尊享营销版', 2, 12,
'[1,2,4,5,6,7,8,9,10,50,101,102,103,104,105,106,107,201,202,203,204,205,211,212,221,222,251,409,410,411,416,501,502,503,504,505,506,507,508,509,511,512,513,521,522,523,531,532,533,591,592,595,601,602,603,604,605,606,607,608,609,610,611,612,621,622,623,624,625,626,627,641,642,643,644,645,651,661,662,663,671,672,673,674,681,682,683,684,685,691,692,693,694,695,701,702,711,712,713,901,902,903,931,932,951,961]'
),
(3, '速享版', 3, 1,
'[2,4,5,6,7,10,50,201,202,205,211,212,221,222,251,409,410,411,416,501,502,503,504,505,506,507,508,511,512,513,521,522,523,531,532,533,591,592,601,602,603,604,605,606,607,608,609,610,611,612,621,622,623,624,625,626,641,642,643,644,645,651,661,662,663,671,672,673,674,681,682,683,684,685,691,692,693,694,695,701,702,711,712,713,901,902,903,931,932]'
)
;

+ 2
- 0
mallinkService/src/main/java/com/iformall/domain/vo/PromotionCalc.java Просмотреть файл

@@ -2,8 +2,10 @@ package com.iformall.domain.vo;

import com.iformall.domain.po.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

@Data
@EqualsAndHashCode(callSuper = true)
public class PromotionCalc extends BaseEntity {
@io.swagger.annotations.ApiModelProperty(value="订单总金额",name="orderAmount")
Integer orderAmount;


+ 30
- 24
mallinkService/src/main/java/com/iformall/service/impl/WxBillSettleServiceImpl.java Просмотреть файл

@@ -447,36 +447,41 @@ public class WxBillSettleServiceImpl implements WxBillSettleService {
final IdWorker idWorker = IdWorker.get();

//检查账单是否存在其他结算单中
WxBillSettle query = new WxBillSettle();
query.setId(record.getId());
List<WxBillSettleBill> list = new ArrayList<>();
list.addAll(record.getReceiveBillIds());
list.addAll(record.getPayBillIds());
query.setReceiveBillIds(list);
List<WxBillSettleBill> existList = wxBillSettleBillMapper.findExist(query);
Set<Long> idSet = new HashSet();
if(CollectionUtils.isNotEmpty(existList)){
for (WxBillSettleBill b:existList) {
idSet.add(b.getBillId());
}
String ids = "";
for (Long id:idSet) {
WxBillSettleBill queryBill = new WxBillSettleBill();
queryBill.setBillId(id);
queryBill.setType(getType(id,record));
WxBillSettleBill db = wxBillSettleBillMapper.findByBillId(queryBill).get(0);
BigDecimal r = new BigDecimal(db.getReceivePay()).divide(new BigDecimal(100),2,BigDecimal.ROUND_HALF_UP);
ids += db.getBillName()+r.toString()+"元,";
}
return new ResultData(ErrorCode.DB_FAIL.getCode(), ids.substring(0,ids.length()-1)+"已经在其他结算单中,请移除!");
}
// WxBillSettle query = new WxBillSettle();
// query.setId(record.getId());
// List<WxBillSettleBill> list = new ArrayList<>();
// list.addAll(record.getReceiveBillIds());
// list.addAll(record.getPayBillIds());
// query.setReceiveBillIds(list);
// List<WxBillSettleBill> existList = wxBillSettleBillMapper.findExist(query);
// Set<Long> idSet = new HashSet();
// if(CollectionUtils.isNotEmpty(existList)){
// for (WxBillSettleBill b:existList) {
// idSet.add(b.getBillId());
// }
// String ids = "";
// for (Long id:idSet) {
// WxBillSettleBill queryBill = new WxBillSettleBill();
// queryBill.setBillId(id);
// queryBill.setType(getType(id,record));
// WxBillSettleBill db = wxBillSettleBillMapper.findByBillId(queryBill).get(0);
// BigDecimal r = new BigDecimal(db.getReceivePay()).divide(new BigDecimal(100),2,BigDecimal.ROUND_HALF_UP);
// ids += db.getBillName()+r.toString()+"元,";
// }
//
// return new ResultData(ErrorCode.DB_FAIL.getCode(), ids.substring(0,ids.length()-1)+"已经在其他结算单中,请移除!");
// }

if (record.getFlowParams() == null || record.getFlowParams().size() == 0) {
record.setStatus(EnumSettleStatus.NOT_FINISH.getCode());
//选择的账单改为已结清
updateFreezeOrStatus(record.getReceiveBillIds(), null,EnumBillRentStatus.PAID.getCode());
updateFreezeOrStatus(record.getPayBillIds(), null,EnumBillRentStatus.PAID.getCode());

//刚好结清
if(record.getReceiveMoney().equals(record.getPayMoney())){
record.setStatus(EnumSettleStatus.FINISH.getCode());
}
}
if (record.getId() == null) {
record.setId(idWorker.nextId());
@@ -543,3 +548,4 @@ public class WxBillSettleServiceImpl implements WxBillSettleService {
}
}



+ 5
- 5
mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java Просмотреть файл

@@ -125,7 +125,7 @@ public class WxCardSpendServiceImpl implements WxCardSpendService {
// 4. 扣减计算
Double paymentD = 1.0 * cardInfo.getSaleAmount() * record.getDeductionAmount() / cardInfo.getAmount();
Integer payment = paymentD.intValue();
int iChargeFee = PayUtils.getPayRate(payment, payAccount.getRate());
int iChargeFee = PayUtils.getPayRate(payment, payAccount.getRate(), false);
Integer real_payment = payment - iChargeFee;
Integer remain_real_pament = cardInfo.getRemainingShareFeeAmount() - real_payment;
Integer remaingAmount = cardInfo.getRemainingAmount()-record.getDeductionAmount();
@@ -200,7 +200,7 @@ public class WxCardSpendServiceImpl implements WxCardSpendService {
logger.info("补贴额: " + subsidyFee);
if(subsidyFee > 0) {
// 有补贴时入库
int iSubChargeFee = PayUtils.getPayRate(subsidyFee, payAccount.getRate());
int iSubChargeFee = PayUtils.getPayRate(subsidyFee, payAccount.getRate(), false);
Integer realSubsidyFee = subsidyFee - iSubChargeFee;
WxMerchantSubsidy merchantSubsidy = new WxMerchantSubsidy();
merchantSubsidy.setId(idWorker.nextId());
@@ -599,7 +599,7 @@ public class WxCardSpendServiceImpl implements WxCardSpendService {
// 4. 扣减计算
Double paymentD = 1.0 * cardInfo.getSaleAmount() * record.getDeductionAmount() / cardInfo.getAmount();
Integer payment = paymentD.intValue();
int iChargeFee = PayUtils.getPayRate(payment, payAccount.getRate());
int iChargeFee = PayUtils.getPayRate(payment, payAccount.getRate(), false);
Integer real_payment = payment - iChargeFee;
Integer remain_real_pament = cardInfo.getRemainingShareFeeAmount() - real_payment;
Integer remaingAmount = cardInfo.getRemainingAmount()-record.getDeductionAmount();
@@ -680,7 +680,7 @@ public class WxCardSpendServiceImpl implements WxCardSpendService {
// 4. 增加计算
Double paymentD = 1.0 * cardInfo.getSaleAmount() * record.getDeductionAmount() / cardInfo.getAmount();
Integer payment = paymentD.intValue();
int iChargeFee = PayUtils.getPayRate(payment, payAccount.getRate());
int iChargeFee = PayUtils.getPayRate(payment, payAccount.getRate(), false);
Integer real_payment = payment - iChargeFee;
Integer remain_real_pament = cardInfo.getRemainingShareFeeAmount() + real_payment;
Integer remaingAmount = cardInfo.getRemainingAmount()+record.getDeductionAmount();
@@ -772,7 +772,7 @@ public class WxCardSpendServiceImpl implements WxCardSpendService {
logger.info("补贴额: " + subsidyFee);
if(subsidyFee > 0) {
// 有补贴时入库
int iSubChargeFee = PayUtils.getPayRate(subsidyFee, payAccount.getRate());
int iSubChargeFee = PayUtils.getPayRate(subsidyFee, payAccount.getRate(), false);
Integer realSubsidyFee = subsidyFee - iSubChargeFee;
WxMerchantSubsidy merchantSubsidy = new WxMerchantSubsidy();
merchantSubsidy.setId(idWorker.nextId());


+ 2
- 2
mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java Просмотреть файл

@@ -509,10 +509,10 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService {
}
if (subsidyNum != null && subsidyNum.intValue() > 0) {
// 有补贴时入库
int iSubChargeFee = PayUtils.getPayRate(subsidyNum, payAccount.getRate());
int iSubChargeFee = PayUtils.getPayRate(subsidyNum, payAccount.getRate(), false);
Integer realSubsidyFee = subsidyNum - iSubChargeFee;

int iPriceChargeFee = PayUtils.getPayRate(coupon.getSalePrice(), payAccount.getRate());
int iPriceChargeFee = PayUtils.getPayRate(coupon.getSalePrice(), payAccount.getRate(), false);
Integer realPayment = coupon.getSalePrice() - iPriceChargeFee;

WxMerchantSubsidy merchantSubsidy = new WxMerchantSubsidy();


+ 13
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java Просмотреть файл

@@ -309,11 +309,17 @@ public class WxFlowServiceImpl implements WxFlowService {
wxBillSettle.setStatus(EnumSettleStatus.NOT_FINISH.getCode());
wxBillSettleService.updateFreezeOrStatus(settle.getReceiveBillIds(), EnumFreezeType.DEF.getCode(),EnumBillRentStatus.PAID.getCode());
wxBillSettleService.updateFreezeOrStatus(settle.getPayBillIds(),EnumFreezeType.DEF.getCode(),EnumBillRentStatus.PAID.getCode());

//刚好结清
if(settle.getReceiveMoney().equals(settle.getPayMoney())){
wxBillSettle.setStatus(EnumSettleStatus.FINISH.getCode());
}
}else if(EnumRentContractAppStatus.SETBACK.getCode().intValue() == applyStatus.intValue() || EnumRentContractAppStatus.REJECT.getCode().intValue() == applyStatus.intValue()) {
//解冻
wxBillSettleService.updateFreezeOrStatus(settle.getReceiveBillIds(), EnumFreezeType.DEF.getCode(),null);
wxBillSettleService.updateFreezeOrStatus(settle.getPayBillIds(),EnumFreezeType.DEF.getCode(),null);
}

wxBillSettleMapper.updateByPrimaryKeySelective(wxBillSettle);
}
}
@@ -549,7 +555,7 @@ public class WxFlowServiceImpl implements WxFlowService {
public boolean isBill(Integer flowType){
if(EnumFlowKey.BILL.getCode().equals(flowType)
||EnumFlowKey.NEW_BILL_CHANGE.getCode().equals(flowType)){
return true;
return true;
}
return false;
}
@@ -1516,4 +1522,10 @@ public class WxFlowServiceImpl implements WxFlowService {
public List<WxFlowModel> getModelBybusiness(WxFlowModel wxFlowModel) {
return wxFlowModelMapper.getModelBybusiness(wxFlowModel);
}

public static void main(String[] args) {
new Thread(() -> System.out.println(1 + "hello world")).start();

}
}


+ 4
- 4
mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java Просмотреть файл

@@ -228,11 +228,11 @@ public class WxPayOrderServiceImpl implements WxPayOrderService {
record.setShare(isShare.getCode());
if (isShare == EnumPayShare.YES) {
// 分账金额
int iChargeFee = PayUtils.getPayRate(record.getPayAmount(), payAccount.getRate());
int iChargeFee = PayUtils.getPayRate(record.getPayAmount(), payAccount.getRate(), false);
Integer share_amount = record.getPayAmount() - iChargeFee;
record.setShareAmount(share_amount);
if(payAccount.getRealRate() != null) {
int iRealChargeFee = PayUtils.getPayRate(record.getPayAmount(), payAccount.getRealRate());
int iRealChargeFee = PayUtils.getPayRate(record.getPayAmount(), payAccount.getRealRate(), true);
if(iChargeFee > iRealChargeFee) {
record.setRateAmount(iChargeFee - iRealChargeFee);
}
@@ -459,11 +459,11 @@ public class WxPayOrderServiceImpl implements WxPayOrderService {
record.setShare(isShare.getCode());
if (isShare == EnumPayShare.YES) {
// 分账金额
int iChargeFee = PayUtils.getPayRate(record.getPayAmount(), payAccount.getRate());
int iChargeFee = PayUtils.getPayRate(record.getPayAmount(), payAccount.getRate(), false);
Integer share_amount = record.getPayAmount() - iChargeFee;
record.setShareAmount(share_amount);
if(payAccount.getRealRate() != null) {
int iRealChargeFee = PayUtils.getPayRate(record.getPayAmount(), payAccount.getRealRate());
int iRealChargeFee = PayUtils.getPayRate(record.getPayAmount(), payAccount.getRealRate(), true);
record.setRateAmount(iRealChargeFee);
}
if (share_amount <= 0) {


+ 1
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxSubsidyServiceImpl.java Просмотреть файл

@@ -114,7 +114,7 @@ public class WxSubsidyServiceImpl implements WxSubsidyService {
record.setPayTimeEnd(curDate);
record.setAmount(totalFee);
// 分账金额
int iChargeFee = PayUtils.getPayRate(record.getAmount(), payAccount.getRate());
int iChargeFee = PayUtils.getPayRate(record.getAmount(), payAccount.getRate(), false);
Integer share_amount = record.getAmount() - iChargeFee;
record.setShareAmount(share_amount);
record.setShareRemainAmount(share_amount);


+ 12
- 13
mallinkService/src/main/java/com/iformall/utils/PayUtils.java Просмотреть файл

@@ -15,10 +15,16 @@ public class PayUtils {
* @param rate 万分之几
* @return
*/
public static int getPayRate(int payAmount, int rate) {
public static int getPayRate(int payAmount, int rate, boolean isReal) {
Double dBaseAmount = 5.0D * 1000 / rate;
// 基础分 千分之6 83分
if(payAmount > dBaseAmount.intValue()) {
if (isReal) {
// 小于基础分,四舍五入
Double dPayRate = 1.0D * payAmount * rate / 10000;
long dChargeFee = Math.round(dPayRate);
return Long.valueOf(dChargeFee).intValue();
}
else if(payAmount > dBaseAmount.intValue()) {
// 大于基础分,不小于他的最小整数
Double dChargeFee = Math.ceil(payAmount * 1.0D * rate / 10000);
return dChargeFee.intValue();
@@ -30,21 +36,14 @@ public class PayUtils {
}
}

/*
public static void main(String[] args) {
int iValue = getPayRate(100, 60);
System.out.println(iValue);

iValue = getPayRate(200, 60);
System.out.println(iValue);

iValue = getPayRate(82, 60);
System.out.println(iValue);

iValue = getPayRate(83, 60);
int iValue = getPayRate(600, 60, false);
System.out.println(iValue);

iValue = getPayRate(84, 60);
iValue = getPayRate(600, 20, true);
System.out.println(iValue);
}
*/

}

+ 9
- 9
mallinkSysAdmin/src/main/java/com/iformall/controller/sys/DataInitController.java Просмотреть файл

@@ -55,14 +55,14 @@ public class DataInitController {
*/
@Transactional(rollbackFor = Exception.class)
public void addBirthDayMsgModel() {
List<WxMsgSignature> list = signatureMapper.selectAll();
Map<String, String> tenantOfSignature = list.stream().collect(Collectors.toMap(WxMsgSignature::getTenantId, WxMsgSignature::getName));
//List<WxMsgSignature> list = signatureMapper.selectAll();
//Map<String, String> tenantOfSignature = list.stream().collect(Collectors.toMap(WxMsgSignature::getTenantId, WxMsgSignature::getName));
IdWorker idWorker = IdWorker.get();
addBirthDayMsgModelToMall(tenantOfSignature, EnumMsgModel.COUPON_BIRTHDAY_OPENED, idWorker, "亲到的{userName},在您的生日到来之际,我们精心的为您准备了一份生日礼物,并在生日当天消费领取{creditScale}倍积分,赶快打开{mallName}微信小程序领取您的专属生日礼物吧!");
addBirthDayMsgModelToMall(tenantOfSignature, EnumMsgModel.COUPON_BIRTHDAY_OPENED_NO, idWorker, "亲到的{userName},在您的生日到来之际,我们精心的为您准备了一份生日礼物,赶快打开{mallName}微信小程序领取您的专属生日礼物吧!");
addBirthDayMsgModelToMall(EnumMsgModel.COUPON_BIRTHDAY_OPENED, idWorker, "亲到的{userName},在您的生日到来之际,我们精心的为您准备了一份生日礼物,并在生日当天消费领取{creditScale}倍积分,赶快打开{mallName}微信小程序领取您的专属生日礼物吧!");
addBirthDayMsgModelToMall(EnumMsgModel.COUPON_BIRTHDAY_OPENED_NO, idWorker, "亲到的{userName},在您的生日到来之际,我们精心的为您准备了一份生日礼物,赶快打开{mallName}微信小程序领取您的专属生日礼物吧!");
}

private void addBirthDayMsgModelToMall(Map<String, String> tenantOfSignature, EnumMsgModel type, IdWorker idWorker, String content) {
private void addBirthDayMsgModelToMall(EnumMsgModel type, IdWorker idWorker, String content) {
//查找已经添加过的接口列表
WxMsgValidationcodeModel query = new WxMsgValidationcodeModel();
query.setMsgType(1);
@@ -70,19 +70,19 @@ public class DataInitController {
List<WxMsgValidationcodeModel> dbModelList = modelMapper.select(query);
Map<String, String> dbModelMap = dbModelList.stream().collect(Collectors.toMap(WxMsgValidationcodeModel::getTenantId, WxMsgValidationcodeModel::getName));

List<WxMall> malls = mallMapper.selectAll();
List<WxMall> malls = mallMapper.findList(new WxMall());
malls.stream().filter(wxMall -> !dbModelMap.containsKey(wxMall.getTenantId())).forEach(wxMall -> {
addBirthDayMsgModelItem(tenantOfSignature, idWorker, wxMall, type, content);
addBirthDayMsgModelItem(idWorker, wxMall, type, content);
});
}

private void addBirthDayMsgModelItem(Map<String, String> tenantOfSignature, IdWorker idWorker, WxMall wxMall, EnumMsgModel msgModel, String content) {
private void addBirthDayMsgModelItem(IdWorker idWorker, WxMall wxMall, EnumMsgModel msgModel, String content) {
WxMsgValidationcodeModel model = new WxMsgValidationcodeModel();
model.setTenantId(wxMall.getTenantId());
model.setId(idWorker.nextId());
model.setType(msgModel.getCode());
model.setName(msgModel.getMessage());
model.setSignature(tenantOfSignature.get(wxMall.getTenantId()));
model.setSignature(wxMall.getName());
model.setContent(content);
model.setCreatetime(new Date());
model.setStatus(1);


Загрузка…
Отмена
Сохранить