diff --git a/mallinkService/src/main/java/com/simple/domain/po/WxMerchant.java b/mallinkService/src/main/java/com/simple/domain/po/WxMerchant.java index 1501524c4..9206e5aec 100644 --- a/mallinkService/src/main/java/com/simple/domain/po/WxMerchant.java +++ b/mallinkService/src/main/java/com/simple/domain/po/WxMerchant.java @@ -61,6 +61,10 @@ public class WxMerchant implements Serializable { @Transient private BigDecimal price; + /*单价**/ + @Transient + private Integer receivePeriod; + /*租户ID**/ @io.swagger.annotations.ApiModelProperty(value="租户ID",name="tenantId") private String tenantId; @@ -215,6 +219,15 @@ public class WxMerchant implements Serializable { this.price = price; } + + public Integer getReceivePeriod() { + return receivePeriod; + } + + public void setReceivePeriod(Integer receivePeriod) { + this.receivePeriod = receivePeriod; + } + public static enum Field { Id_ASC("`id` ASC"),Id_DESC("`id` DESC") diff --git a/mallinkService/src/main/java/com/simple/service/impl/WxMerchantServiceImpl.java b/mallinkService/src/main/java/com/simple/service/impl/WxMerchantServiceImpl.java index d6fed2f2c..db98268cc 100644 --- a/mallinkService/src/main/java/com/simple/service/impl/WxMerchantServiceImpl.java +++ b/mallinkService/src/main/java/com/simple/service/impl/WxMerchantServiceImpl.java @@ -11,12 +11,10 @@ import com.simple.service.WxMerchantService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import sun.util.resources.CalendarData; import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; @Service @@ -75,6 +73,15 @@ public class WxMerchantServiceImpl implements WxMerchantService { wxMerchantShop.setIsDel(0); List shops = new ArrayList<>(); + WxRentContract wxRentContract = new WxRentContract(); + wxRentContract.setMerchantId(id); + List list = wxRentContractMapper.findList(wxRentContract); + if(list.size()>0){ + wxRentContract=list.get(0); + wxMerchant.setPrice(wxRentContract.getPrice()); + wxMerchant.setReceivePeriod(wxRentContract.getReceivePeriod()); + } + List wxMerchantShopList = wxMerchantShopMapper.findList(wxMerchantShop); for(WxMerchantShop merchantShop:wxMerchantShopList){ wxMerchant.setRentalStartDate(merchantShop.getRentalStartDate()); @@ -127,16 +134,24 @@ public class WxMerchantServiceImpl implements WxMerchantService { wxMerchant.setCreateDate(date); wxMerchantMapper.insertSelective(wxMerchant); + + WxShop wxShopP = new WxShop(); + wxShopP.setId(wxMerchant.getShopids().get(0)); + wxShopP = WxShopMapper.findList(wxShopP).get(0); + WxRentContract wxRentContract = new WxRentContract(); wxRentContract.setMerchantId(merchantid); wxRentContract.setRentalStartDate(wxMerchant.getRentalStartDate()); wxRentContract.setRentalEndDate(wxMerchant.getRentalEndDate()); wxRentContract.setPrice(wxMerchant.getPrice()); wxRentContract.setSignDate(date); - wxRentContract.setPayArea(new BigDecimal(0)); - wxRentContract.setReceivePeriod(0); + + wxRentContract.setPayArea(new BigDecimal(wxShopP.getOperationArea())); + wxRentContract.setReceivePeriod(wxMerchant.getReceivePeriod()); wxRentContractMapper.insertSelective(wxRentContract); + buildRent(wxRentContract); + //保存商户商铺的关联 List shopidlist = wxMerchant.getShopids(); for(Long shopid:shopidlist){ @@ -185,13 +200,17 @@ public class WxMerchantServiceImpl implements WxMerchantService { wxMerchant.setUpdateDate(date); wxMerchantMapper.updateByPrimaryKeySelective(wxMerchant); + WxShop wxShopP = new WxShop(); + wxShopP.setId(wxMerchant.getShopids().get(0)); + wxShopP = WxShopMapper.findList(wxShopP).get(0); + WxRentContract wxRentContract = wxRentContractMapper.findObjectByMerchantId(wxMerchant.getId()); wxRentContract.setRentalStartDate(wxMerchant.getRentalStartDate()); wxRentContract.setRentalEndDate(wxMerchant.getRentalEndDate()); wxRentContract.setPrice(wxMerchant.getPrice()); wxRentContract.setSignDate(date); - wxRentContract.setPayArea(new BigDecimal(0)); - wxRentContract.setReceivePeriod(0); + wxRentContract.setPayArea(new BigDecimal(wxShopP.getOperationArea())); + wxRentContract.setReceivePeriod(wxMerchant.getReceivePeriod()); wxRentContractMapper.updateByPrimaryKeySelective(wxRentContract); //删除当前商户关联的所有商铺然后再插入 @@ -278,5 +297,31 @@ public class WxMerchantServiceImpl implements WxMerchantService { } + private void buildRent(WxRentContract wxRentContract) { + + Date rentalStartDate = wxRentContract.getRentalStartDate(); + Date rentalEndDate = wxRentContract.getRentalEndDate(); + Integer receivePeriod = wxRentContract.getReceivePeriod(); + + int paycount = 12 / receivePeriod.intValue(); + + if(paycount==1){//12 + Calendar instance = Calendar.getInstance(); + instance.setTime(rentalStartDate); + instance.set(Calendar.MONTH,1); + } + if(paycount==2){//6 + + } + if(paycount==4){//3 + + } + if(paycount==12){//1 + + } + + + } + } diff --git a/mallinkService/src/main/resources/mapper/WxRentContractMapper.xml b/mallinkService/src/main/resources/mapper/WxRentContractMapper.xml index e9a1cdf71..cabdaa0cd 100644 --- a/mallinkService/src/main/resources/mapper/WxRentContractMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxRentContractMapper.xml @@ -13,7 +13,7 @@ - `id`,`merchant_id`,`price`,`rental_start_date`,`rental_end_date`,`sign_date`,`pay_area`,`receive_pay` + `id`,`merchant_id`,`price`,`rental_start_date`,`rental_end_date`,`sign_date`,`pay_area`,`receive_period` diff --git a/mallinkService/src/main/resources/mapper/WxShopMapper.xml b/mallinkService/src/main/resources/mapper/WxShopMapper.xml index 327c0f053..6b6d3d800 100644 --- a/mallinkService/src/main/resources/mapper/WxShopMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxShopMapper.xml @@ -128,8 +128,8 @@ select s.id,s.shop_number shopNumber,s.build_area buildArea, s.img_url imgUrl,s.operation_area operationArea, s.status,b.building_name building,f.floor_name floor,m.`name` merchantName - from wx_shop s inner join wx_merchant_shop ms on ms.shop_id=s.id and ms.is_del=0 - inner join wx_merchant m on ms.merchant_id=m.id + from wx_shop s left join wx_merchant_shop ms on ms.shop_id=s.id and ms.is_del=0 + left join wx_merchant m on ms.merchant_id=m.id left join wx_mall_building b on s.building=b.id left join wx_mall_floor f on s.floor=f.id