Przeglądaj źródła

[bug][修改][1001665]

release_toaliyun_real
luozukai 7 lat temu
rodzic
commit
c4bcad9761
4 zmienionych plików z 99 dodań i 35 usunięć
  1. +14
    -13
      mallinkAdmin/src/main/java/com/iformall/controller/app/WxAppinfoController.java
  2. +4
    -0
      mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java
  3. +8
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java
  4. +73
    -22
      mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java

+ 14
- 13
mallinkAdmin/src/main/java/com/iformall/controller/app/WxAppinfoController.java Wyświetl plik

@@ -24,7 +24,6 @@ import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.task.AsyncTaskExecutor;
import org.springframework.web.bind.annotation.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
@@ -33,6 +32,8 @@ import java.io.*;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

@RestController
@RequestMapping("wxAppinfo")
@@ -57,26 +58,25 @@ public class WxAppinfoController extends BaseController {
@Autowired
private UploadController uploadController;

@Autowired
private AsyncTaskExecutor asyncTaskExecutor;

@Autowired
private WxCouponChannelMapper wxCouponChannelMapper;

ExecutorService fixedThreadPool = Executors.newFixedThreadPool(100);

@ApiOperation("加载老数据二维码")
@GetMapping("/updateQrCode")
public void updateQrCode(String p)throws ServletException, IOException {
if("xlldxx".equals(p)){
if("xlldxx".equals(p)) {
String pageUrl = "pages/index/index";

List<WxMerchant> list = wxMerchantMapper.findQrcodeEmptyList();
for (WxMerchant merchant:list) {
asyncTaskExecutor.execute(new Runnable() {
for (WxMerchant merchant : list) {
fixedThreadPool.execute(new Runnable() {
@Override
public void run() {
String param = merchant.getWeappScene();
ResultData resultData = exportQrcode(null,null,merchant.getTenantId(),1,pageUrl,param,0,"","","店铺详情",true);
Map<String,String> map = (Map)resultData.data;
ResultData resultData = exportQrcode(null, null, merchant.getTenantId(), 1, pageUrl, param, 0, "", "", "店铺详情", true);
Map<String, String> map = (Map) resultData.data;
String url = map.get("url");
merchant.setQrCode(url);
wxMerchantMapper.updateByPrimaryKeySelective(merchant);
@@ -94,7 +94,7 @@ public class WxAppinfoController extends BaseController {

List<WxCouponChannel> list = wxCouponChannelMapper.findQrcodeEmptyList();
for (WxCouponChannel couponChannel:list) {
asyncTaskExecutor.execute(new Runnable() {
fixedThreadPool.execute(new Runnable() {
@Override
public void run() {
String param = couponChannel.getWeappScene();
@@ -146,9 +146,9 @@ public class WxAppinfoController extends BaseController {
}

public ResultData exportQrcode(HttpServletRequest request, HttpServletResponse response,
String tenantId, int type, String pageUrl, String sceneParam,
int withText, String text1, String text2,
String name,boolean upload) {
String tenantId, int type, String pageUrl, String sceneParam,
int withText, String text1, String text2,
String name,boolean upload) {
// type 0 有限二维码, 1 无限制二维码
// withText 0 不带字 1. 带下面的字,2 带下面的两行字
WxAppinfo appinfo = wxAppinfoService.getCAppInfo(tenantId);
@@ -280,3 +280,4 @@ public class WxAppinfoController extends BaseController {


}


+ 4
- 0
mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java Wyświetl plik

@@ -95,6 +95,7 @@ public class WxRentContractController extends BaseController {
MallUserInfo user = getUser();
wxRentContract.setTenantId(user.getTenantId());
wxRentContract.setAdjustPeriodHandle();
wxRentContract.setRentPriceHandle();
return wxRentContractService.update(wxRentContract, user.getId(),user.getName());
}

@@ -110,6 +111,7 @@ public class WxRentContractController extends BaseController {
MallUserInfo user = getUser();
wxRentContract.setTenantId(user.getTenantId());
wxRentContract.setAdjustPeriodHandle();
wxRentContract.setRentPriceHandle();
return wxRentContractService.update(wxRentContract, user.getId(),user.getName());
}

@@ -120,6 +122,7 @@ public class WxRentContractController extends BaseController {
MallUserInfo user = getUser();
wxRentContract.setTenantId(user.getTenantId());
wxRentContract.setAdjustPeriodHandle();
wxRentContract.setRentPriceHandle();
return wxRentContractService.updateFile(wxRentContract, user.getId(),user.getName());
}

@@ -258,3 +261,4 @@ public class WxRentContractController extends BaseController {
}

}


+ 8
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java Wyświetl plik

@@ -6,6 +6,7 @@ import com.iformall.enums.EnumRentContractAdjustPeriod;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.apache.commons.lang3.StringUtils;

import javax.persistence.Id;
import javax.persistence.Table;
@@ -301,4 +302,11 @@ public class WxRentContract extends BaseEntity {
}
}

public void setRentPriceHandle() {
if(StringUtils.isNotBlank(rentPrice)) {
rentPrice = Double.parseDouble(rentPrice) * 100 +"";
}
}

}


+ 73
- 22
mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java Wyświetl plik

@@ -20,6 +20,7 @@ import com.iformall.utils.PriceUtil;
import com.iformall.utils.WordUtil;
import org.apache.commons.collections.map.HashedMap;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.DateUtil;
import org.apache.shiro.SecurityUtils;
import org.flowable.engine.RuntimeService;
import org.flowable.engine.TaskService;
@@ -123,6 +124,11 @@ public class WxRentContractServiceImpl implements WxRentContractService {
result.put("totalPeriodDay",array[1]);
}

//init rentPrice
if(StringUtils.isNotBlank(wxRentContract.getRentPrice())){
wxRentContract.setRentPrice(Double.parseDouble(wxRentContract.getRentPrice())/100 + "");
}

//init 租赁单价
String rentInfo = wxRentContract.getRentInfo();
if(StringUtils.isNotBlank(rentInfo)){
@@ -924,19 +930,17 @@ public class WxRentContractServiceImpl implements WxRentContractService {
long needpay;

//当天也算,加1天
Date newEndDate = DateUtils.getDaySet(wxBillRent.getEndtime(),Calendar.DATE,1);
//Date newEndDate = DateUtils.getDaySet(wxBillRent.getEndtime(),Calendar.DATE,1);
//按日
if(wxRentContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_DAY.getCode())){
int dayCount = DateUtils.daysBetween(wxBillRent.getStarttime(),newEndDate);
needpay = dayCount*price;
double needpayD = this.getNeedPay(0,price,wxBillRent.getStarttime(),wxBillRent.getEndtime());
needpay = new Double(needpayD).longValue();
}else{
//按月
int[] diff = DateUtils.getDiff(wxBillRent.getStarttime(),newEndDate);
needpay = diff[0]*price;

double oneDayProce = (double) price/DateUtils.getMonthDayCount(wxRentContract.getRentalEndDate());
needpay += diff[1] * oneDayProce;
double needpayD = this.getNeedPay(price,0,wxBillRent.getStarttime(),wxBillRent.getEndtime());
needpay = new Double(needpayD).longValue();
}

wxBillRent.setNeedPay(needpay);
wxBillRent.setOwe(needpay);
wxBillRent.setReceivePay(needpay);
@@ -1728,25 +1732,71 @@ public class WxRentContractServiceImpl implements WxRentContractService {
return wxRentContractMapper.getShopType(wxRentContract);
}

public static void main(String[] args) throws Exception{
/**
* 按日计租 根据每月的日期总数计算needpay
* @param monthPrice
* @param start
* @param end
* @return
*/
public double getNeedPay(long monthPrice,long dayPrice,Date start,Date end){
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
// Date start = sd.parse("2019-05-24");
// Date end = sd.parse("2020-06-24");
Date start = sd.parse("2019-05-24");
Date end = sd.parse("2019-08-10");
SimpleDateFormat sdM = new SimpleDateFormat("MM");
Double total;

int dayCount = DateUtils.getMonthDayCount(start);
double price;
if(monthPrice > 0){
price = (double) monthPrice/dayCount;
}else{
price = dayPrice;
}
Date currEnd = DateUtils.getLastDayForMonth(start);
int[] diff = DateUtils.getDiff(start,currEnd);
total = (diff[1]+1) * price;

Integer adjustPeriod = EnumRentContractAdjustPeriod.ADJUST_PERIOD_NAR_MONTH.getCode();
Integer dayType = Calendar.MONTH;
int receivePeriod = 2;
if(sdM.format(start).equals(sdM.format(end))){
return total;
}
System.out.println("-------total:"+total);

List<BillTimeVo> list = initBillTimeList(start,end,adjustPeriod,dayType,receivePeriod);
for (BillTimeVo b:list) {
System.out.print(sd.format(b.getStartDate()));
System.out.print(" "+sd.format(b.getEndDate()));
System.out.print(" "+sd.format(b.getReceiveDate()));
while (true){
Date monthStartDate = DateUtils.getDaySet(currEnd,Calendar.DATE,1);
dayCount = DateUtils.getMonthDayCount(monthStartDate);
if(monthPrice > 0){
price = (double) monthPrice/dayCount;
}else{
price = dayPrice;
}

System.out.println();
System.out.println("-------monthStartDate:"+sd.format(monthStartDate));

//最后一个月
if(sdM.format(monthStartDate).equals(sdM.format(end))){
System.out.println("-----------");
System.out.println(sd.format(monthStartDate));
System.out.println(sd.format(end));

diff = DateUtils.getDiff(monthStartDate,end);
total += price * (diff[1] +1);
break;
}else{
currEnd = DateUtils.getLastDayForMonth(monthStartDate);
diff = DateUtils.getDiff(monthStartDate,currEnd);
total += price * (diff[1] +1);
}
System.out.println("-------total:"+total);
}
return total;
}

public static void main(String[] args) throws Exception{
long tprice = 100;
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
Date start = sd.parse("2019-05-28");
Date end = sd.parse("2019-07-05");

System.out.println("===="+new WxRentContractServiceImpl().getNeedPay(tprice,0,start,end));;
}

public static List<BillTimeVo> initBillTimeList(Date start,Date end,Integer adjustPeriod,Integer dayType,int receivePeriod){
@@ -1804,3 +1854,4 @@ public class WxRentContractServiceImpl implements WxRentContractService {
}




Ładowanie…
Anuluj
Zapisz