Browse Source

Merge branch 'develop' of https://git.youlane.cn/server/formallProject into develop

release_toaliyun_real
Burce 6 years ago
parent
commit
0e6182f78b
18 changed files with 292 additions and 34 deletions
  1. +1
    -1
      mallinkAdmin/src/main/java/com/iformall/controller/market/WxOrderController.java
  2. +1
    -0
      mallinkAdmin/src/main/resources/db/migration/V201910161425__G_ALTER_MERCHANT_SUBSIDY.sql
  3. +64
    -0
      mallinkBApi/src/main/java/com/iformall/controller/WxInfoController.java
  4. +12
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxMerchant.java
  5. +24
    -4
      mallinkService/src/main/java/com/iformall/domain/po/WxOrder.java
  6. +37
    -0
      mallinkService/src/main/java/com/iformall/enums/EnumHasContract.java
  7. +1
    -1
      mallinkService/src/main/java/com/iformall/service/WxOrderService.java
  8. +18
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxBillDailyServiceImpl.java
  9. +18
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherDepositServiceImpl.java
  10. +18
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherServiceImpl.java
  11. +18
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxBillPropertyServiceImpl.java
  12. +19
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxBillRentServiceImpl.java
  13. +12
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java
  14. +13
    -2
      mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java
  15. +4
    -4
      mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java
  16. +29
    -16
      mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java
  17. +2
    -0
      mallinkService/src/main/resources/mapper/WxMerchantMapper.xml
  18. +1
    -1
      mallinkService/src/main/resources/mapper/WxShopMapper.xml

+ 1
- 1
mallinkAdmin/src/main/java/com/iformall/controller/market/WxOrderController.java View File

@@ -235,7 +235,7 @@ public class WxOrderController extends BaseController {
wxOrderQueryVo = new WxOrderQueryVo(); wxOrderQueryVo = new WxOrderQueryVo();
} }
wxOrderQueryVo.setTenantId(getTenantId()); wxOrderQueryVo.setTenantId(getTenantId());
Map<String, Object> data = wxOrderService.summary(wxOrderQueryVo);
Map<String, Long> data = wxOrderService.summary(wxOrderQueryVo);
return new ResultData(data); return new ResultData(data);
} }




+ 1
- 0
mallinkAdmin/src/main/resources/db/migration/V201910161425__G_ALTER_MERCHANT_SUBSIDY.sql View File

@@ -0,0 +1 @@
alter table wx_merchant_subsidy add column type tinyint(2) not null default 1 comment '结算类型1线上2线下3银行卡转账';

+ 64
- 0
mallinkBApi/src/main/java/com/iformall/controller/WxInfoController.java View File

@@ -299,6 +299,7 @@ public class WxInfoController extends BaseController {
* @param map * @param map
* @return * @return
*/ */
@AuthIgnore
@PostMapping("/getUserPhone") @PostMapping("/getUserPhone")
@ApiOperation(value = "授权后获取用户的手机号", notes="{\"appId\":\"string\",\"encryptedData\":\"string\",\"iv\":\"string\",\"openId\":\"string\",\"session_key\":\"string\"}") @ApiOperation(value = "授权后获取用户的手机号", notes="{\"appId\":\"string\",\"encryptedData\":\"string\",\"iv\":\"string\",\"openId\":\"string\",\"session_key\":\"string\"}")
public ResultData getUserPhone(@RequestBody Map<String, String> map) { public ResultData getUserPhone(@RequestBody Map<String, String> map) {
@@ -321,6 +322,69 @@ public class WxInfoController extends BaseController {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "openId 不能为空"); return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "openId 不能为空");
} }


WxMaService wxMaService = getWeappService(appId);

WxAppinfo wxAppinfo = getAppInfo(appId);
try {
// 解密
WxMaPhoneNumberInfo phoneNoInfo = wxMaService.getUserService().getPhoneNoInfo(session_key, encryptedData, iv);
if (null != phoneNoInfo) {
logger.info(phoneNoInfo.toString());
String phone = phoneNoInfo.getPhoneNumber();
resultMap.put("phone", phone);

MallUserInfo user = mallUserInfoService.getByPhone(phone, wxAppinfo.getTenantId());
if(user == null) {
return new ResultData(ErrorCode.USER_NO_PERMISSION, resultMap);
}
if (mallUserRoleService.checkIsMobileAdmin(user)) {
resultMap.put("phone", user.getPhone());
resultMap.put("admin", "1");

user.setBopenId(openId);
mallUserInfoService.saveOrUpdate(user);

return new ResultData(resultMap);
} else {
return new ResultData(ErrorCode.USER_NO_PERMISSION, resultMap);
}
} else {
return new ResultData(ErrorCode.PHONE_DECODE_ERR, resultMap);
}
} catch (Exception e) {
this.logger.error(e.getMessage(), e);
return new ResultData(ErrorCode.DB_FAIL.getCode(), "解密并保存出错", resultMap);
}
}


/**
* 授权后获取用户的手机号等信息
* @param map
* @return
*/
@PostMapping("/getUserPhoneForBuser")
@ApiOperation(value = "登录后授权获取用户的手机号", notes="{\"appId\":\"string\",\"encryptedData\":\"string\",\"iv\":\"string\",\"openId\":\"string\",\"session_key\":\"string\"}")
public ResultData getUserPhoneForBuser(@RequestBody Map<String, String> map) {
logger.debug(map.toString());
Map resultMap = new HashMap();
String appId = map.get("appId");
String encryptedData = map.get("encryptedData");
String iv = map.get("iv");
String openId = map.get("openId");
String session_key = map.get("session_key");

//登录凭证不能为空
if (StringUtils.isBlank(encryptedData)) {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "encryptedData 不能为空");
}
if (StringUtils.isBlank(iv)) {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "iv 不能为空");
}
if (StringUtils.isBlank(openId)) {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "openId 不能为空");
}

WxMaService wxMaService = getWeappService(appId); WxMaService wxMaService = getWeappService(appId);
WxBuser buser = getBuser(); WxBuser buser = getBuser();
try { try {


+ 12
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxMerchant.java View File

@@ -263,4 +263,16 @@ public class WxMerchant extends BaseEntity {
@TableField(exist = false) @TableField(exist = false)
@SortColumn(column = "tradeDate") @SortColumn(column = "tradeDate")
private String tradeDate; private String tradeDate;

@TableField(exist = false)
@SortColumn(column = "consumeCountP")
private String consumeCountP;

@TableField(exist = false)
@SortColumn(column = "consumeCount")
private String consumeCount;

@io.swagger.annotations.ApiModelProperty(value = "1已关联合同", name = "hasContract")
@TableField(exist = false)
private Integer hasContract;
} }

+ 24
- 4
mallinkService/src/main/java/com/iformall/domain/po/WxOrder.java View File

@@ -8,6 +8,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.ToString; import lombok.ToString;


import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;


@@ -23,6 +24,10 @@ public class WxOrder extends BaseEntity {
@TableField(exist = false) @TableField(exist = false)
private String merchantName; private String merchantName;


public String getcUserName() {
return cUserName;
}

@Excel(name = "会员", width = 20, orderNum = "2") @Excel(name = "会员", width = 20, orderNum = "2")
@TableField(exist = false) @TableField(exist = false)
private String cUserName; private String cUserName;
@@ -47,13 +52,12 @@ public class WxOrder extends BaseEntity {
@io.swagger.annotations.ApiModelProperty(value="0: 付款 1: 退款",name="paymentType") @io.swagger.annotations.ApiModelProperty(value="0: 付款 1: 退款",name="paymentType")
private Integer paymentType; private Integer paymentType;


@Excel(name = "订单金额(元)", width = 20, orderNum = "6")
@io.swagger.annotations.ApiModelProperty(value="支付金额(分):允许有负数,退款时为负值。",name="payment") @io.swagger.annotations.ApiModelProperty(value="支付金额(分):允许有负数,退款时为负值。",name="payment")
private Integer payment; private Integer payment;
@io.swagger.annotations.ApiModelProperty(value="支付时间",name="paymentTime") @io.swagger.annotations.ApiModelProperty(value="支付时间",name="paymentTime")
private Date paymentTime; private Date paymentTime;


@Excel(name = "订单状态", width = 20, orderNum = "9", replace = {"待付款_0", "已支付_1", "已取消_2", "待退款_3", "已退款_4", "退款失败_5"})
@Excel(name = "订单状态", width = 20, orderNum = "9", replace = {"待付款_0", "已支付_1", "已取消_2", "待退款_3", "已退款_4", "退款失败_5", " _-1"})
@io.swagger.annotations.ApiModelProperty(value="订单状态:-1全部;正向交易:0-已下单/待付款;1-已支付;2-已取消(限定时间内未付款)反向交易:3-已退款; 4-退款失败,5-退款失败; 砍价:6-砍价中,7-砍价完成,8-砍价失败",name="orderStatus") @io.swagger.annotations.ApiModelProperty(value="订单状态:-1全部;正向交易:0-已下单/待付款;1-已支付;2-已取消(限定时间内未付款)反向交易:3-已退款; 4-退款失败,5-退款失败; 砍价:6-砍价中,7-砍价完成,8-砍价失败",name="orderStatus")
private Integer orderStatus; private Integer orderStatus;


@@ -95,11 +99,27 @@ public class WxOrder extends BaseEntity {
@TableField(exist = false) @TableField(exist = false)
private String title; private String title;


@Excel(name = "商品属性", width = 20, orderNum = "4", replace = {"消费卡_1", "优惠券_2", "砍价_3", "拼团_4"})
@Excel(name = "商品属性", width = 20, orderNum = "4", replace = {"消费卡_1", "优惠券_2", "砍价_3", "拼团_4", " _-1"})
@TableField(exist = false) @TableField(exist = false)
private Integer attribute; private Integer attribute;


@Excel(name = "支付金额(元)", width = 20, orderNum = "8")
@TableField(exist = false) @TableField(exist = false)
private Integer pay; private Integer pay;

@Excel(name = "支付金额(元)", width = 20, orderNum = "8")
@TableField(exist = false)
private String payStr;

public String getPayStr() {
return pay != null ? new BigDecimal(pay).divide(new BigDecimal(100)).toPlainString() : payStr;
}

public String getPaymentStr() {
return payment != null ? new BigDecimal(payment).divide(new BigDecimal(100)).toPlainString() : payStr;
}

@Excel(name = "订单金额(元)", width = 20, orderNum = "6")
@TableField(exist = false)
private String paymentStr;

} }

+ 37
- 0
mallinkService/src/main/java/com/iformall/enums/EnumHasContract.java View File

@@ -0,0 +1,37 @@
package com.iformall.enums;

/**
* Created by Stormeye on 2018/08/09.
*/
public enum EnumHasContract {


NO(0, "无"),
HAS(1, "有"),
;

public static EnumHasContract getEnum(Integer code) {
for (EnumHasContract value : values()) {
if (value.getCode().equals(code)) {
return value;
}
}
return null;
}

private Integer code;
private String message;

EnumHasContract(Integer code, String message) {
this.code = code;
this.message = message;
}

public Integer getCode() {
return code;
}

public String getMessage() {
return message;
}
}

+ 1
- 1
mallinkService/src/main/java/com/iformall/service/WxOrderService.java View File

@@ -191,7 +191,7 @@ public interface WxOrderService {
*/ */
void actionAfterCouponOrderSuccess(WxOrder updateOrder, WxCoupon coupon, WxCUser user); void actionAfterCouponOrderSuccess(WxOrder updateOrder, WxCoupon coupon, WxCUser user);


Map<String, Object> summary(WxOrderQueryVo wxOrderQueryVo);
Map<String, Long> summary(WxOrderQueryVo wxOrderQueryVo);


void exportData(WxOrderQueryVo wxOrderQueryVo, HttpServletRequest request, HttpServletResponse response); void exportData(WxOrderQueryVo wxOrderQueryVo, HttpServletRequest request, HttpServletResponse response);




+ 18
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxBillDailyServiceImpl.java View File

@@ -184,7 +184,8 @@ public class WxBillDailyServiceImpl implements WxBillDailyService {
String price = ""; String price = "";
String message = ""; String message = "";
if(record.getServiceChargePayUpdate() != null){ if(record.getServiceChargePayUpdate() != null){
wxBillDaily.setServiceChargePay(Integer.parseInt(record.getServiceChargePayUpdate()) * 100);
Double l = Double.valueOf(record.getServiceChargePayUpdate())*100;
wxBillDaily.setServiceChargePay(l.intValue());
}else{ }else{
Long addpay = wxBillDaily.getPay(); Long addpay = wxBillDaily.getPay();
wxBillDaily.setPayDate(record.getPayDate()); wxBillDaily.setPayDate(record.getPayDate());
@@ -346,7 +347,23 @@ public class WxBillDailyServiceImpl implements WxBillDailyService {


@Override @Override
public void exportBill(HttpServletRequest request, HttpServletResponse response, WxBillDaily record) { public void exportBill(HttpServletRequest request, HttpServletResponse response, WxBillDaily record) {
WxPayAccountBill wxPayAccountBill = wxPayAccountBillService.getByTenantId(record.getTenantId());
List<WxBillDaily> billDailyList = wxBillDailyMapper.queryBillDailyList(record); List<WxBillDaily> billDailyList = wxBillDailyMapper.queryBillDailyList(record);
billDailyList.stream().forEach(e->{
//手续费 = 合同应收+手续费+滞纳金
if(e.getReceivePay() != null){
if(e.getLatePayPrice() == null) e.setLatePayPrice(0l);
BigDecimal servicePay;
if(e.getServiceChargePay() != null){
servicePay = new BigDecimal(e.getServiceChargePay());
}else{
servicePay = new BigDecimal(e.getReceivePay()).multiply(new BigDecimal(wxPayAccountBill.getServiceChargeRate())).divide(new BigDecimal(10000), 2, BigDecimal.ROUND_HALF_UP);
}
Long realReceivePay = servicePay.longValue() + e.getLatePayPrice() + e.getReceivePay();
e.setRealReceivePay(realReceivePay);
e.setServiceChargePay(servicePay.intValue());
}
});
List<WxBillDailyExportVo> datalist = new ArrayList<>(); List<WxBillDailyExportVo> datalist = new ArrayList<>();
WxBillDailyExportVo wxBillDailyExportVo; WxBillDailyExportVo wxBillDailyExportVo;
for (int i = 0, size = billDailyList.size(); i < size; i++) { for (int i = 0, size = billDailyList.size(); i < size; i++) {


+ 18
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherDepositServiceImpl.java View File

@@ -179,7 +179,8 @@ public class WxBillOtherDepositServiceImpl implements WxBillOtherDepositService
String message = ""; String message = "";
String price = ""; String price = "";
if(record.getServiceChargePayUpdate() != null){ if(record.getServiceChargePayUpdate() != null){
wxBillOtherDeposit.setServiceChargePay(Integer.parseInt(record.getServiceChargePayUpdate()) * 100);
Double l = Double.valueOf(record.getServiceChargePayUpdate())*100;
wxBillOtherDeposit.setServiceChargePay(l.intValue());
}else{ }else{
Long addpay = wxBillOtherDeposit.getPay(); Long addpay = wxBillOtherDeposit.getPay();
wxBillOtherDeposit.setPayDate(record.getPayDate()); wxBillOtherDeposit.setPayDate(record.getPayDate());
@@ -319,7 +320,23 @@ public class WxBillOtherDepositServiceImpl implements WxBillOtherDepositService


@Override @Override
public void exportBill(HttpServletRequest request, HttpServletResponse response, WxBillOtherDeposit wxBillDeposit) { public void exportBill(HttpServletRequest request, HttpServletResponse response, WxBillOtherDeposit wxBillDeposit) {
WxPayAccountBill wxPayAccountBill = wxPayAccountBillService.getByTenantId(wxBillDeposit.getTenantId());
List<WxBillOtherDeposit> datalist = wxBillOtherDepositMapper.queryBillList(wxBillDeposit); List<WxBillOtherDeposit> datalist = wxBillOtherDepositMapper.queryBillList(wxBillDeposit);
datalist.stream().forEach(e->{
//手续费 = 合同应收+手续费+滞纳金
if(e.getReceivePay() != null){
if(e.getLatePayPrice() == null) e.setLatePayPrice(0l);
BigDecimal servicePay;
if(e.getServiceChargePay() != null){
servicePay = new BigDecimal(e.getServiceChargePay());
}else{
servicePay = new BigDecimal(e.getReceivePay()).multiply(new BigDecimal(wxPayAccountBill.getServiceChargeRate())).divide(new BigDecimal(10000), 2, BigDecimal.ROUND_HALF_UP);
}
Long realReceivePay = servicePay.longValue() + e.getLatePayPrice() + e.getReceivePay();
e.setRealReceivePay(realReceivePay);
e.setServiceChargePay(servicePay.intValue());
}
});
excelService.exportExcel(datalist, null, "其他押金账单", WxBillOtherDeposit.class, "其他押金账单.xlsx", response, false); excelService.exportExcel(datalist, null, "其他押金账单", WxBillOtherDeposit.class, "其他押金账单.xlsx", response, false);
} }




+ 18
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherServiceImpl.java View File

@@ -180,7 +180,8 @@ public class WxBillOtherServiceImpl implements WxBillOtherService {
String message = ""; String message = "";
String price = ""; String price = "";
if(record.getServiceChargePayUpdate() != null){ if(record.getServiceChargePayUpdate() != null){
wxBillOther.setServiceChargePay(Integer.parseInt(record.getServiceChargePayUpdate()) * 100);
Double l = Double.valueOf(record.getServiceChargePayUpdate())*100;
wxBillOther.setServiceChargePay(l.intValue());
}else{ }else{
Long addpay = wxBillOther.getPay(); Long addpay = wxBillOther.getPay();
wxBillOther.setPayDate(record.getPayDate()); wxBillOther.setPayDate(record.getPayDate());
@@ -264,7 +265,23 @@ public class WxBillOtherServiceImpl implements WxBillOtherService {


@Override @Override
public void exportBill(HttpServletRequest request, HttpServletResponse response, WxBillOther wxBillOther) { public void exportBill(HttpServletRequest request, HttpServletResponse response, WxBillOther wxBillOther) {
WxPayAccountBill wxPayAccountBill = wxPayAccountBillService.getByTenantId(wxBillOther.getTenantId());
List<WxBillOther> datalist = wxBillOtherMapper.queryBillList(wxBillOther); List<WxBillOther> datalist = wxBillOtherMapper.queryBillList(wxBillOther);
datalist.stream().forEach(e->{
//手续费 = 合同应收+手续费+滞纳金
if(e.getReceivePay() != null){
if(e.getLatePayPrice() == null) e.setLatePayPrice(0l);
BigDecimal servicePay;
if(e.getServiceChargePay() != null){
servicePay = new BigDecimal(e.getServiceChargePay());
}else{
servicePay = new BigDecimal(e.getReceivePay()).multiply(new BigDecimal(wxPayAccountBill.getServiceChargeRate())).divide(new BigDecimal(10000), 2, BigDecimal.ROUND_HALF_UP);
}
Long realReceivePay = servicePay.longValue() + e.getLatePayPrice() + e.getReceivePay();
e.setRealReceivePay(realReceivePay);
e.setServiceChargePay(servicePay.intValue());
}
});
excelService.exportExcel(datalist, null, "其他费用账单", WxBillOther.class, "其他费用账单.xlsx", response, false); excelService.exportExcel(datalist, null, "其他费用账单", WxBillOther.class, "其他费用账单.xlsx", response, false);
} }




+ 18
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxBillPropertyServiceImpl.java View File

@@ -161,7 +161,8 @@ public class WxBillPropertyServiceImpl implements WxBillPropertyService {
String message = ""; String message = "";
String price = ""; String price = "";
if(record.getServiceChargePayUpdate() != null){ if(record.getServiceChargePayUpdate() != null){
property.setServiceChargePay(Integer.parseInt(record.getServiceChargePayUpdate()) * 100);
Double l = Double.valueOf(record.getServiceChargePayUpdate())*100;
property.setServiceChargePay(l.intValue());
}else{ }else{
Long addpay = property.getPay(); Long addpay = property.getPay();
property.setRevenue(record.getRevenue()); property.setRevenue(record.getRevenue());
@@ -325,9 +326,25 @@ public class WxBillPropertyServiceImpl implements WxBillPropertyService {


@Override @Override
public void exportBill(HttpServletRequest request, HttpServletResponse response, WxBillProperty wxBillProperty) { public void exportBill(HttpServletRequest request, HttpServletResponse response, WxBillProperty wxBillProperty) {
WxPayAccountBill wxPayAccountBill = wxPayAccountBillService.getByTenantId(wxBillProperty.getTenantId());
String billName = wxBillProperty.getRentShopType().equals(EnumRentShopType.SHOP.getCode()) ? "商铺物业账单" : "多经点位物业账单"; String billName = wxBillProperty.getRentShopType().equals(EnumRentShopType.SHOP.getCode()) ? "商铺物业账单" : "多经点位物业账单";


List<WxBillProperty> billPropertyList = wxBillPropertyMapper.queryBillPropertyList(wxBillProperty); List<WxBillProperty> billPropertyList = wxBillPropertyMapper.queryBillPropertyList(wxBillProperty);
billPropertyList.stream().forEach(e->{
//手续费 = 合同应收+手续费+滞纳金
if(e.getReceivePay() != null){
if(e.getLatePayPrice() == null) e.setLatePayPrice(0l);
BigDecimal servicePay;
if(e.getServiceChargePay() != null){
servicePay = new BigDecimal(e.getServiceChargePay());
}else{
servicePay = new BigDecimal(e.getReceivePay()).multiply(new BigDecimal(wxPayAccountBill.getServiceChargeRate())).divide(new BigDecimal(10000), 2, BigDecimal.ROUND_HALF_UP);
}
Long realReceivePay = servicePay.longValue() + e.getLatePayPrice() + e.getReceivePay();
e.setRealReceivePay(realReceivePay);
e.setServiceChargePay(servicePay.intValue());
}
});
Map<Long, List<WxBillProperty>> collect = billPropertyList.parallelStream() Map<Long, List<WxBillProperty>> collect = billPropertyList.parallelStream()
.collect(Collectors.groupingBy(WxBillProperty::getMerchantId)); .collect(Collectors.groupingBy(WxBillProperty::getMerchantId));
Set<Map.Entry<Long, List<WxBillProperty>>> entries = collect.entrySet(); Set<Map.Entry<Long, List<WxBillProperty>>> entries = collect.entrySet();


+ 19
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxBillRentServiceImpl.java View File

@@ -165,7 +165,8 @@ public class WxBillRentServiceImpl implements WxBillRentService {
String price = ""; String price = "";
String message =""; String message ="";
if(record.getServiceChargePayUpdate() != null){ if(record.getServiceChargePayUpdate() != null){
wxBillRent.setServiceChargePay(Integer.parseInt(record.getServiceChargePayUpdate()) * 100);
Double l = Double.valueOf(record.getServiceChargePayUpdate())*100;
wxBillRent.setServiceChargePay(l.intValue());
}else{ }else{
Long addpay = wxBillRent.getPay(); Long addpay = wxBillRent.getPay();
wxBillRent.setRevenue(record.getRevenue()); wxBillRent.setRevenue(record.getRevenue());
@@ -438,8 +439,25 @@ public class WxBillRentServiceImpl implements WxBillRentService {


@Override @Override
public void exportBill(HttpServletRequest request, HttpServletResponse response, WxBillRent wxBillRent) { public void exportBill(HttpServletRequest request, HttpServletResponse response, WxBillRent wxBillRent) {
WxPayAccountBill wxPayAccountBill = wxPayAccountBillService.getByTenantId(wxBillRent.getTenantId());

String billName = wxBillRent.getRentShopType().equals(EnumRentShopType.SHOP.getCode()) ? "商铺租金账单" : "多经点位租金账单"; String billName = wxBillRent.getRentShopType().equals(EnumRentShopType.SHOP.getCode()) ? "商铺租金账单" : "多经点位租金账单";
List<WxBillRent> billRentList = wxBillRentMapper.queryBillRentList(wxBillRent); List<WxBillRent> billRentList = wxBillRentMapper.queryBillRentList(wxBillRent);
billRentList.stream().forEach(e->{
//手续费 = 合同应收+手续费+滞纳金
if(e.getReceivePay() != null){
if(e.getLatePayPrice() == null) e.setLatePayPrice(0l);
BigDecimal servicePay;
if(e.getServiceChargePay() != null){
servicePay = new BigDecimal(e.getServiceChargePay());
}else{
servicePay = new BigDecimal(e.getReceivePay()).multiply(new BigDecimal(wxPayAccountBill.getServiceChargeRate())).divide(new BigDecimal(10000), 2, BigDecimal.ROUND_HALF_UP);
}
Long realReceivePay = servicePay.longValue() + e.getLatePayPrice() + e.getReceivePay();
e.setRealReceivePay(realReceivePay);
e.setServiceChargePay(servicePay.intValue());
}
});
Map<Long, List<WxBillRent>> collect = billRentList.parallelStream() Map<Long, List<WxBillRent>> collect = billRentList.parallelStream()
.collect(Collectors.groupingBy(WxBillRent::getMerchantId)); .collect(Collectors.groupingBy(WxBillRent::getMerchantId));
Set<Map.Entry<Long, List<WxBillRent>>> entries = collect.entrySet(); Set<Map.Entry<Long, List<WxBillRent>>> entries = collect.entrySet();


+ 12
- 0
mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java View File

@@ -21,6 +21,8 @@ import com.iformall.mapper.*;
import com.iformall.service.*; import com.iformall.service.*;
import com.iformall.utils.DateUtils; import com.iformall.utils.DateUtils;
import com.iformall.utils.EventUtil; import com.iformall.utils.EventUtil;
import jodd.util.CollectionUtil;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@@ -748,6 +750,16 @@ public class WxMerchantServiceImpl implements WxMerchantService {
} }
merchant.setShoplist(shops); merchant.setShoplist(shops);
} }

WxRentContract rc = new WxRentContract();
rc.setMerchantId(record.getId());
rc.setTenantId(record.getTenantId());
List<WxRentContract> rentContractList = wxRentContractMapper.findList(rc);
if(CollectionUtils.isEmpty(rentContractList)){
merchant.setHasContract(EnumHasContract.NO.getCode());
}else{
merchant.setHasContract(EnumHasContract.HAS.getCode());
}
} }
PageInfo<WxMerchant> pageInfo = new PageInfo<>(merchants); PageInfo<WxMerchant> pageInfo = new PageInfo<>(merchants);
return pageInfo; return pageInfo;


+ 13
- 2
mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java View File

@@ -983,11 +983,11 @@ public class WxOrderServiceImpl implements WxOrderService {
} }


@Override @Override
public Map<String, Object> summary(WxOrderQueryVo wxOrderQueryVo) {
public Map<String, Long> summary(WxOrderQueryVo wxOrderQueryVo) {
List<WxOrder> listOrder = wxOrderMapper.findListOrder(wxOrderQueryVo); List<WxOrder> listOrder = wxOrderMapper.findListOrder(wxOrderQueryVo);
Long payment = listOrder.stream().collect(Collectors.summingLong(WxOrder::getPayment)); Long payment = listOrder.stream().collect(Collectors.summingLong(WxOrder::getPayment));
Long pay = listOrder.stream().collect(Collectors.summingLong(WxOrder::getPay)); Long pay = listOrder.stream().collect(Collectors.summingLong(WxOrder::getPay));
Map<String, Object> data = new HashMap<>();
Map<String, Long> data = new HashMap<>();
data.put("payment", payment); data.put("payment", payment);
data.put("pay", pay); data.put("pay", pay);
return data; return data;
@@ -996,6 +996,17 @@ public class WxOrderServiceImpl implements WxOrderService {
@Override @Override
public void exportData(WxOrderQueryVo wxOrderQueryVo, HttpServletRequest request, HttpServletResponse response) { public void exportData(WxOrderQueryVo wxOrderQueryVo, HttpServletRequest request, HttpServletResponse response) {
List<WxOrder> list = wxOrderMapper.findListOrder(wxOrderQueryVo); List<WxOrder> list = wxOrderMapper.findListOrder(wxOrderQueryVo);
Map<String, Long> summary = summary(wxOrderQueryVo);
Long payment = summary.get("payment");
Long pay = summary.get("pay");
String paymentStr = new BigDecimal(payment).divide(new BigDecimal(100)).toPlainString();
String payStr = new BigDecimal(pay).divide(new BigDecimal(100)).toPlainString();
WxOrder order = new WxOrder();
order.setPayStr(payStr);
order.setPaymentStr(paymentStr);
order.setOrderStatus(-1);
order.setAttribute(-1);
list.add(order);
excelService.exportExcel(list, null, "线上交易", WxOrder.class, "线上交易.xlsx", response, false); excelService.exportExcel(list, null, "线上交易", WxOrder.class, "线上交易.xlsx", response, false);
} }




+ 4
- 4
mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java View File

@@ -751,7 +751,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService


//生成金额直接计算 //生成金额直接计算
if(!saveDb){ if(!saveDb){
needpay = new Double(WxRentContractServiceImpl.getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod)).longValue();
needpay = new Double(WxRentContractServiceImpl.getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod,false)).longValue();
return needpay; return needpay;
} }


@@ -766,7 +766,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService
months++; months++;
needpay = new Double(months * priceD).longValue(); needpay = new Double(months * priceD).longValue();
}else { }else {
needpay = new Double(WxRentContractServiceImpl.getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod)).longValue();
needpay = new Double(WxRentContractServiceImpl.getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod,false)).longValue();
} }
}else if(i == 0){//第一期 }else if(i == 0){//第一期
if(wxRentContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_NAR_MONTH.getCode())){ if(wxRentContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_NAR_MONTH.getCode())){
@@ -775,7 +775,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService
months++; months++;
needpay = new Double(months * priceD).longValue(); needpay = new Double(months * priceD).longValue();
}else{ }else{
needpay = new Double(WxRentContractServiceImpl.getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod)).longValue();
needpay = new Double(WxRentContractServiceImpl.getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod,false)).longValue();
} }
}else{ }else{
if(isFirstDay(startDate)){ if(isFirstDay(startDate)){
@@ -785,7 +785,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService
} }
needpay = new Double(months * priceD).longValue(); needpay = new Double(months * priceD).longValue();
}else{ }else{
needpay = new Double(WxRentContractServiceImpl.getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod)).longValue();
needpay = new Double(WxRentContractServiceImpl.getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod,false)).longValue();
} }
} }
}else{//中间 }else{//中间


+ 29
- 16
mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java View File

@@ -1258,18 +1258,18 @@ public class WxRentContractServiceImpl implements WxRentContractService {
long needpayAfter = 0; long needpayAfter = 0;
//同一天,算一天 //同一天,算一天
if(sd.format(billTimeVo.getStartDate()).equals(sd.format(billTimeVo.getEndDate()))){ if(sd.format(billTimeVo.getStartDate()).equals(sd.format(billTimeVo.getEndDate()))){
needpayFront = getNeedPayMoney(wxRentContract,priceArrs[index-1],billTimeVo.getStartDate(),endDate,i,billTimeVoList.size(),saveDb,dayType,receivePeriod);
needpayFront = getNeedPayMoney(wxRentContract,priceArrs[index-1],billTimeVo.getStartDate(),endDate,i,billTimeVoList.size(),saveDb,dayType,receivePeriod,false);
}else{ }else{
if(billTimeVo.getStartDate().before(endDate)){ if(billTimeVo.getStartDate().before(endDate)){
if (EnumRentContractType.RENT_BY_JOINT.getCode().equals(wxRentContract.getType()) && EnumMissTimeType.PERIOD.getCode().equals(wxRentContract.getBusDiscountTime())) { if (EnumRentContractType.RENT_BY_JOINT.getCode().equals(wxRentContract.getType()) && EnumMissTimeType.PERIOD.getCode().equals(wxRentContract.getBusDiscountTime())) {
//设置跳点率为年周期 price不变 //设置跳点率为年周期 price不变
needpayFront = priceArrs[index - 1]; needpayFront = priceArrs[index - 1];
}else { }else {
needpayFront = getNeedPayMoney(wxRentContract, priceArrs[index - 1], billTimeVo.getStartDate(), DateUtils.getDaySet(endDate, Calendar.DATE, -1), i, billTimeVoList.size(), saveDb, dayType, receivePeriod);
needpayAfter = getNeedPayMoney(wxRentContract, priceArrs[index], endDate, billTimeVo.getEndDate(), i, billTimeVoList.size(), saveDb, dayType, receivePeriod);
needpayFront = getNeedPayMoney(wxRentContract, priceArrs[index - 1], billTimeVo.getStartDate(), DateUtils.getDaySet(endDate, Calendar.DATE, -1), i, billTimeVoList.size(), saveDb, dayType, receivePeriod,true);
needpayAfter = getNeedPayMoney(wxRentContract, priceArrs[index], endDate, billTimeVo.getEndDate(), i, billTimeVoList.size(), saveDb, dayType, receivePeriod,true);
} }
}else{ }else{
needpayFront = getNeedPayMoney(wxRentContract, priceArrs[index], billTimeVo.getStartDate(), billTimeVo.getEndDate(), i, billTimeVoList.size(), saveDb,dayType,receivePeriod);
needpayFront = getNeedPayMoney(wxRentContract, priceArrs[index], billTimeVo.getStartDate(), billTimeVo.getEndDate(), i, billTimeVoList.size(), saveDb,dayType,receivePeriod,false);
} }
} }
needpay = needpayFront+needpayAfter; needpay = needpayFront+needpayAfter;
@@ -1288,7 +1288,7 @@ public class WxRentContractServiceImpl implements WxRentContractService {


//计算金额 //计算金额
if(!flag){ if(!flag){
needpay = getNeedPayMoney(wxRentContract, priceArrs[index], billTimeVo.getStartDate(), billTimeVo.getEndDate(), i, billTimeVoList.size(),saveDb,dayType,receivePeriod);
needpay = getNeedPayMoney(wxRentContract, priceArrs[index], billTimeVo.getStartDate(), billTimeVo.getEndDate(), i, billTimeVoList.size(),saveDb,dayType,receivePeriod,false);
} }


WxBillRent wxBillRent = new WxBillRent(); WxBillRent wxBillRent = new WxBillRent();
@@ -1332,7 +1332,7 @@ public class WxRentContractServiceImpl implements WxRentContractService {
return resultMap; return resultMap;
} }


public long getNeedPayMoney(WxRentContract wxRentContract,long price,Date startDate,Date endDate,int i,int billTimeVoListSize,boolean saveDb,int dayType,int receivePeriod){
public long getNeedPayMoney(WxRentContract wxRentContract,long price,Date startDate,Date endDate,int i,int billTimeVoListSize,boolean saveDb,int dayType,int receivePeriod,boolean part){
long needpay; long needpay;
//按日 //按日
if (wxRentContract.getPriceUnit().equals(EnumPriceUnit.D.getCode())){ if (wxRentContract.getPriceUnit().equals(EnumPriceUnit.D.getCode())){
@@ -1360,7 +1360,7 @@ public class WxRentContractServiceImpl implements WxRentContractService {


//生成金额直接计算 //生成金额直接计算
if(!saveDb){ if(!saveDb){
needpay = new Double(getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod)).longValue();
needpay = new Double(getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod,part)).longValue();
return needpay; return needpay;
} }


@@ -1377,7 +1377,7 @@ public class WxRentContractServiceImpl implements WxRentContractService {
int months = getMonths(sdM.format(startDate)+"-01",sdM.format(DateUtils.getDaySet(endDate,Calendar.DATE,1))+"-01"); int months = getMonths(sdM.format(startDate)+"-01",sdM.format(DateUtils.getDaySet(endDate,Calendar.DATE,1))+"-01");
needpay = new Double(months * priceD).longValue(); needpay = new Double(months * priceD).longValue();
}else{ }else{
needpay = new Double(getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod)).longValue();
needpay = new Double(getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod,false)).longValue();
} }
}else if(i == 0){//第一期 }else if(i == 0){//第一期
if(wxRentContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_NAR_MONTH.getCode())){ if(wxRentContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_NAR_MONTH.getCode())){
@@ -1386,7 +1386,7 @@ public class WxRentContractServiceImpl implements WxRentContractService {
months++; months++;
needpay = new Double(months * priceD).longValue(); needpay = new Double(months * priceD).longValue();
}else{ }else{
needpay = new Double(getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod)).longValue();
needpay = new Double(getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod,false)).longValue();
} }
}else{ }else{
if(isFirstDay(startDate)){ if(isFirstDay(startDate)){
@@ -1396,7 +1396,7 @@ public class WxRentContractServiceImpl implements WxRentContractService {
} }
needpay = new Double(months * priceD).longValue(); needpay = new Double(months * priceD).longValue();
}else{ }else{
needpay = new Double(getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod)).longValue();
needpay = new Double(getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod,false)).longValue();
} }
} }
}else{//中间 }else{//中间
@@ -2253,7 +2253,7 @@ public class WxRentContractServiceImpl implements WxRentContractService {
return wxRentContractMapper.getShopType(wxRentContract); return wxRentContractMapper.getShopType(wxRentContract);
} }


public static double getMonthNeedPay(Double price,Date start,Date end,int dayType,int receivePeriod){
public static double getMonthNeedPay(Double price,Date start,Date end,int dayType,int receivePeriod,boolean part){
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sdM = new SimpleDateFormat("yyyy-MM"); SimpleDateFormat sdM = new SimpleDateFormat("yyyy-MM");
SimpleDateFormat sdD = new SimpleDateFormat("d"); SimpleDateFormat sdD = new SimpleDateFormat("d");
@@ -2276,11 +2276,24 @@ public class WxRentContractServiceImpl implements WxRentContractService {
} }


//判断是否满足整月 //判断是否满足整月
Calendar instance = Calendar.getInstance();
instance.setTime(start);
instance.add(dayType, receivePeriod);
instance.add(Calendar.DATE, -1);
if(sd.format(instance.getTime()).equals(sd.format(end))){
boolean isFullMonth = false;
if(part){
int startInt = Integer.parseInt(sdD.format(start));
int endInt = Integer.parseInt(sdD.format(DateUtils.getDaySet(end,Calendar.DATE,1)));
if(startInt == endInt){
isFullMonth = true;
}
}else{
Calendar instance = Calendar.getInstance();
instance.setTime(start);
instance.add(dayType, receivePeriod);
instance.add(Calendar.DATE, -1);
if(sd.format(instance.getTime()).equals(sd.format(end))){
isFullMonth = true;
}
}

if(isFullMonth){
int months = getMonths(sdM.format(start)+"-01",sdM.format(DateUtils.getDaySet(end,Calendar.DATE,1))+"-01"); int months = getMonths(sdM.format(start)+"-01",sdM.format(DateUtils.getDaySet(end,Calendar.DATE,1))+"-01");
return (months) * price; return (months) * price;
} }


+ 2
- 0
mallinkService/src/main/resources/mapper/WxMerchantMapper.xml View File

@@ -475,6 +475,8 @@
<if test=" null != linkPerson and ''!=linkPerson "> <if test=" null != linkPerson and ''!=linkPerson ">
and `link_person` like concat('%', #{linkPerson},'%') and `link_person` like concat('%', #{linkPerson},'%')
</if> </if>

<if test=" null != sortColumns">order by ${sortColumns}</if>
</select> </select>


<select id="userTradeDetailList" parameterType="com.iformall.domain.po.WxMerchant" resultType="com.iformall.domain.vo.WxMerchantTradeDetailVo"> <select id="userTradeDetailList" parameterType="com.iformall.domain.po.WxMerchant" resultType="com.iformall.domain.vo.WxMerchantTradeDetailVo">


+ 1
- 1
mallinkService/src/main/resources/mapper/WxShopMapper.xml View File

@@ -498,7 +498,7 @@
</if> </if>
<if test="null!=status and status==1 and type!=null and type==2"> <if test="null!=status and status==1 and type!=null and type==2">
and s.id not in( and s.id not in(
SELECT shop_id FROM wx_rent_contract WHERE tenant_id = #{tenantId} and status in(1,2,3,4)
SELECT shop_id FROM wx_rent_contract WHERE tenant_id = #{tenantId} and status in(1,2,3,4,8)
and rent_shop_type=2 and rent_shop_type=2
) )
</if> </if>


Loading…
Cancel
Save