diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillAllController.java b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillAllController.java index bdf437eed..e66a8dcc5 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillAllController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillAllController.java @@ -4,9 +4,11 @@ import com.alibaba.fastjson.JSONArray; import com.iformall.annotation.SystemControllerLog; import com.iformall.common.ResultData; import com.iformall.controller.base.BaseController; +import com.iformall.domain.po.WxPayAccountBill; import com.iformall.domain.vo.WxBillAll; import com.iformall.domain.vo.WxBillExcelTemplate; import com.iformall.service.WxBillAllService; +import com.iformall.service.WxPayAccountBillService; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; @@ -18,6 +20,7 @@ import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.Map; @@ -32,6 +35,9 @@ public class WxBillAllController extends BaseController { private Logger logger = LoggerFactory.getLogger(WxBillAllController.class); + @Autowired + WxPayAccountBillService wxPayAccountBillService; + @GetMapping("oweBillCount") @ApiImplicitParams({ @ApiImplicitParam(name = "contractId", value = "合同id", dataType = "long", paramType = "query", required = true), @@ -49,6 +55,7 @@ public class WxBillAllController extends BaseController { @SystemControllerLog(description = "账单总览-列表") public ResultData list(@ModelAttribute WxBillAll wxBillAll, Integer pageNum, Integer pageSize) { logger.debug("[" + getIpAddr() + "] WxBillAllController::list"); + WxPayAccountBill wxPayAccountBill = wxPayAccountBillService.getByTenantId(wxBillAll.getTenantId()); if (null == wxBillAll) { wxBillAll = new WxBillAll(); } diff --git a/mallinkAdmin/src/main/resources/db/migration/V201910141400__L_COUPON.sql b/mallinkAdmin/src/main/resources/db/migration/V201910141400__L_COUPON.sql new file mode 100644 index 000000000..76c44a430 --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V201910141400__L_COUPON.sql @@ -0,0 +1,3 @@ +alter table wx_coupon +add column `score_price` BIGINT (12) NULL DEFAULT 0 COMMENT '积分售价'; + diff --git a/mallinkBApi/src/main/java/com/iformall/config/WebMvcConfig.java b/mallinkBApi/src/main/java/com/iformall/config/WebMvcConfig.java index 819f804b8..bb161ee16 100644 --- a/mallinkBApi/src/main/java/com/iformall/config/WebMvcConfig.java +++ b/mallinkBApi/src/main/java/com/iformall/config/WebMvcConfig.java @@ -9,14 +9,12 @@ import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.iformall.interceptor.AuthorizationInterceptor; import com.iformall.interceptor.HttpServletRequestWrapperFilter; import com.iformall.interceptor.RequestInterceptor; -import com.iformall.resolver.LoginUserHandlerMethodArgumentResolver; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.http.converter.HttpMessageConverter; import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; -import org.springframework.web.method.support.HandlerMethodArgumentResolver; import org.springframework.web.servlet.config.annotation.*; import java.math.BigDecimal; @@ -38,8 +36,6 @@ public class WebMvcConfig implements WebMvcConfigurer { private AuthorizationInterceptor authorizationInterceptor; @Autowired private RequestInterceptor requestInterceptor; - @Autowired - private LoginUserHandlerMethodArgumentResolver loginUserHandlerMethodArgumentResolver; @Override public void addInterceptors(InterceptorRegistry registry) { @@ -47,11 +43,6 @@ public class WebMvcConfig implements WebMvcConfigurer { registry.addInterceptor(requestInterceptor).addPathPatterns("/api/**"); } - @Override - public void addArgumentResolvers(List argumentResolvers) { - argumentResolvers.add(loginUserHandlerMethodArgumentResolver); - } - @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("swagger-ui.html") diff --git a/mallinkBApi/src/main/java/com/iformall/resolver/LoginUserHandlerMethodArgumentResolver.java b/mallinkBApi/src/main/java/com/iformall/resolver/LoginUserHandlerMethodArgumentResolver.java deleted file mode 100644 index 92024ea25..000000000 --- a/mallinkBApi/src/main/java/com/iformall/resolver/LoginUserHandlerMethodArgumentResolver.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.iformall.resolver; - -import com.iformall.annotation.LoginUser; -import com.iformall.domain.po.WxCUser; -import com.iformall.domain.po.WxMerchantBUser; -import com.iformall.service.WxMerchantBUserService; -import com.iformall.utils.Constant; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.core.MethodParameter; -import org.springframework.stereotype.Component; -import org.springframework.web.bind.support.WebDataBinderFactory; -import org.springframework.web.context.request.NativeWebRequest; -import org.springframework.web.context.request.RequestAttributes; -import org.springframework.web.method.support.HandlerMethodArgumentResolver; -import org.springframework.web.method.support.ModelAndViewContainer; - -/** - * 有@LoginUser注解的方法参数,注入当前登录用户 - * @author stormeye.wu - * @email wugq@mippoint.com - * @date 2017-03-23 22:02 - */ -@Component -public class LoginUserHandlerMethodArgumentResolver implements HandlerMethodArgumentResolver { - @Autowired - private WxMerchantBUserService wxMerchantBUserService; - - @Override - public boolean supportsParameter(MethodParameter parameter) { - return parameter.getParameterType().isAssignableFrom(WxCUser.class) && parameter.hasParameterAnnotation(LoginUser.class); - } - - @Override - public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer container, - NativeWebRequest request, WebDataBinderFactory factory) throws Exception { - //获取用户ID - Object object = request.getAttribute(Constant.LOGIN_USER_KEY, RequestAttributes.SCOPE_REQUEST); - if(object == null){ - return null; - } - - //获取用户信息 - WxMerchantBUser user = wxMerchantBUserService.getByToken((String)object); - - return user; - } -} diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxBillRent.java b/mallinkService/src/main/java/com/iformall/domain/po/WxBillRent.java index e3a10aaaf..d3a8db6ec 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxBillRent.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxBillRent.java @@ -197,14 +197,16 @@ public class WxBillRent extends BaseEntity { @io.swagger.annotations.ApiModelProperty(value = "联营租金", name = "joinRentPrice") private Long joinRentPrice; - @io.swagger.annotations.ApiModelProperty(value = "手续费", name = "serviceChargePay") - private Integer serviceChargePay; + @TableField(exist = false) private String serviceChargePayBefore; @TableField(exist = false) private String serviceChargePayUpdate; + @io.swagger.annotations.ApiModelProperty(value = "手续费", name = "serviceChargePay") + private Integer serviceChargePay; + @io.swagger.annotations.ApiModelProperty(value="实际应收金额",name="realReceivePay") @TableField(exist = false) private Long realReceivePay; diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java b/mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java index f64828612..a69b6de6f 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java @@ -204,6 +204,8 @@ public class WxCoupon extends BaseEntity { @TableField(exist = false) private Integer pressSuccCount; + @io.swagger.annotations.ApiModelProperty(value = "积分售价", name = "scorePrice") + private Long scorePrice; @io.swagger.annotations.ApiModelProperty(value = "过滤可投放0不过滤 1过滤", name = "filterCanPut") @TableField(exist = false) diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxMerchant.java b/mallinkService/src/main/java/com/iformall/domain/po/WxMerchant.java index 9c2d7f7ac..03cdad497 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxMerchant.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxMerchant.java @@ -3,6 +3,7 @@ package com.iformall.domain.po; import cn.afterturn.easypoi.excel.annotation.Excel; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; +import com.iformall.common.SortColumn; import com.iformall.domain.po.base.BaseEntity; import com.iformall.domain.vo.WxShopVo; import com.iformall.enums.EnumBusiness; @@ -247,4 +248,19 @@ public class WxMerchant extends BaseEntity { @io.swagger.annotations.ApiModelProperty(value = "积分锁定0正常1锁定", name = "creditLocked") private Integer creditLocked; + @TableField(exist = false) + @SortColumn(column = "couponSale") + private String couponSale; + + @TableField(exist = false) + @SortColumn(column = "couponPrice") + private String couponPrice; + + @TableField(exist = false) + @SortColumn(column = "tradeAmt") + private String tradeAmt; + + @TableField(exist = false) + @SortColumn(column = "tradeDate") + private String tradeDate; } diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/WxBillAllVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/WxBillAllVo.java index fdc980c3d..c5cce0b27 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/WxBillAllVo.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/WxBillAllVo.java @@ -113,4 +113,15 @@ public class WxBillAllVo { } return oweStr; } + + @io.swagger.annotations.ApiModelProperty(value = "手续费", name = "serviceChargePay") + @TableField(exist = false) + private Integer serviceChargePay; + + @io.swagger.annotations.ApiModelProperty(value="实际应收金额",name="realReceivePay") + @TableField(exist = false) + private Long realReceivePay; + + @io.swagger.annotations.ApiModelProperty(value = "滞纳金", name = "latePayPrice") + private Long latePayPrice; } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java index 5d4a898be..29f5ea41a 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java @@ -131,11 +131,14 @@ public class WxBillAllServiceImpl implements WxBillAllService { @Autowired WxBillSettleRecordMapper wxBillSettleRecordMapper; + @Autowired + WxPayAccountBillService wxPayAccountBillService; @Override public Map listAsPage(WxBillAll record, Integer pageIndex, Integer pageSize) { //更新各账单状态 //updateBillStatus(record); + WxPayAccountBill wxPayAccountBill = wxPayAccountBillService.getByTenantId(record.getTenantId()); if (StringUtils.isNotEmpty(record.getTypeStr())) { List typeList = JSONArray.parseArray(record.getTypeStr(), Integer.class); @@ -143,6 +146,23 @@ public class WxBillAllServiceImpl implements WxBillAllService { } PageInfo pageInfo = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxBillAllMapper.list(record)); + //手续费 = 合同应收+手续费+滞纳金 + pageInfo.getList().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 result = new HashMap<>(); result.put("pageInfo", pageInfo); return result; @@ -1676,6 +1696,7 @@ public class WxBillAllServiceImpl implements WxBillAllService { @Override public Map getOweBillAsPage(WxBillAll record, Integer pageNum, Integer pageSize) { + WxPayAccountBill wxPayAccountBill = wxPayAccountBillService.getByTenantId(record.getTenantId()); PageInfo> pageInfo = PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() -> wxBillAllMapper.getOweBillAsPage(record)); List> list = pageInfo.getList(); for (Map map : list) { @@ -1684,6 +1705,11 @@ public class WxBillAllServiceImpl implements WxBillAllService { map.put("depositOwe", subZeroAndDot(map.get("depositOwe").toString())); map.put("otherOwe", subZeroAndDot(map.get("otherOwe").toString())); map.put("totalOwe", subZeroAndDot(map.get("totalOwe").toString())); + + //加上手续费 + //todo:把手续费率传进sql,在sql中算,汇总到max,直接出结果 + map.put("totalReceivePay", subZeroAndDot(map.get("totalOwe").toString())); + } pageInfo.setList(list); Map result = new HashMap<>(); diff --git a/mallinkService/src/main/resources/mapper/WxBillAllMapper.xml b/mallinkService/src/main/resources/mapper/WxBillAllMapper.xml index e730f1ab6..8b25ffe46 100644 --- a/mallinkService/src/main/resources/mapper/WxBillAllMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxBillAllMapper.xml @@ -40,10 +40,13 @@ + +