diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMerchantController.java b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMerchantController.java index 9cfd63f38..35c231041 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMerchantController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMerchantController.java @@ -217,4 +217,14 @@ public class WxMerchantController extends BaseController { return wxMerchantService.useAccount(wxProfitSharingReceiver); } + @ApiOperation("查看是否存在商户名称相同记录") + @GetMapping("/hasMerchant") + @SystemControllerLog(description = "商户-查看是否存在商户名称相同记录") + public ResultData hasMerchant(@ModelAttribute WxMerchant wxMerchant) { + logger.debug("[" + getIpAddr() + "] WxMerchantController::hasMerchant"); + wxMerchant.setTenantId(getTenantId()); + boolean has = wxMerchantService.hasMerchant(wxMerchant); + return new ResultData(has); + } + } diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxShopController.java b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxShopController.java index 51b059586..29590c7a0 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxShopController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxShopController.java @@ -42,7 +42,7 @@ public class WxShopController extends BaseController { wxShop = new WxShop(); } wxShop.setTenantId(getTenantId()); - wxShop.setSortColumns(WxShop.Field.Id_DESC); + wxShop.setSortColumns(WxShop.Field.CreateDate_DESC,WxShop.Field.Id_DESC); final PageInfo> page = wxShopService.listMapAsPage(wxShop, pageNum, pageSize); return new ResultData(page); @@ -127,7 +127,7 @@ public class WxShopController extends BaseController { wxShop = new WxShop(); } wxShop.setTenantId(getTenantId()); - wxShop.setSortColumns(WxShop.Field.Id_DESC); + wxShop.setSortColumns(WxShop.Field.CreateDate_DESC,WxShop.Field.Id_DESC); final PageInfo> page = wxShopService.listShopFromContract(wxShop, pageNum, pageSize); return new ResultData(page); } @@ -141,7 +141,7 @@ public class WxShopController extends BaseController { wxShop = new WxShop(); } wxShop.setTenantId(getTenantId()); - wxShop.setSortColumns(WxShop.Field.Id_DESC); + wxShop.setSortColumns(WxShop.Field.CreateDate_DESC,WxShop.Field.Id_DESC); wxShopService.exportShop(wxShop, request, response); } @@ -154,7 +154,7 @@ public class WxShopController extends BaseController { wxShop = new WxShop(); } wxShop.setTenantId(getTenantId()); - wxShop.setSortColumns(WxShop.Field.Id_DESC); + wxShop.setSortColumns(WxShop.Field.CreateDate_DESC,WxShop.Field.Id_DESC); wxShopService.exportNotRentShop(wxShop, request, response); } @@ -170,7 +170,7 @@ public class WxShopController extends BaseController { wxShop = new WxShop(); } wxShop.setTenantId(getTenantId()); - wxShop.setSortColumns(WxShop.Field.Id_DESC); + wxShop.setSortColumns(WxShop.Field.CreateDate_DESC,WxShop.Field.Id_DESC); final PageInfo> page = wxShopService.notRentListMapAsPage(wxShop, pageNum, pageSize); return new ResultData(page); diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/car/WxParkController.java b/mallinkAdmin/src/main/java/com/iformall/controller/car/WxParkController.java index 34e5ad20a..9727cd6b0 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/car/WxParkController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/car/WxParkController.java @@ -56,16 +56,6 @@ public class WxParkController extends BaseController { return new ResultData(); } - @ApiOperation("根据id删除接口") - @GetMapping("/del") - @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true) - @SystemControllerLog(description = "停车-停车场删除") - public ResultData delete(Long id) { - logger.debug("[" + getIpAddr() + "] WxParkController::delete"); - wxParkService.deleteById(id); - return new ResultData(Result.SUCCESS, "删除成功", null); - } - @ApiOperation("根据id查询接口") @GetMapping("/findById") @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java index e0ef03db0..725be33e6 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java @@ -5,17 +5,14 @@ import com.iformall.common.ErrorCode; import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.controller.base.BaseController; -import com.iformall.domain.po.MallUserInfo; -import com.iformall.domain.po.WxBillRent; -import com.iformall.domain.po.WxPayAccountBill; -import com.iformall.domain.po.WxRentContract; +import com.iformall.domain.po.*; import com.iformall.enums.EnumFromType; import com.iformall.enums.EnumRentStartType; import com.iformall.mapper.WxRentContractMapper; import com.iformall.service.WxBillRentService; +import com.iformall.service.WxMerchantService; import com.iformall.service.WxPayAccountBillService; import com.iformall.service.WxRentContractService; -import com.iformall.service.WxShopService; import com.iformall.utils.DateUtils; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -47,7 +44,7 @@ public class WxRentContractController extends BaseController { @Autowired private WxPayAccountBillService payAccountBillService; @Autowired - private WxShopService wxShopService; + private WxMerchantService wxMerchantService; @Autowired private WxRentContractMapper wxRentContractMapper; @@ -85,6 +82,13 @@ public class WxRentContractController extends BaseController { public ResultData add(@RequestBody WxRentContract wxRentContract) { logger.debug("[" + getIpAddr() + "] WxRentContractController::add"); + WxMerchant wxMerchant = new WxMerchant(); + wxMerchant.setName(wxRentContract.getMerchantName()); + wxMerchant.setId(wxRentContract.getMerchantId()); + if (wxMerchantService.hasMerchant(wxMerchant)) { + return new ResultData(ErrorCode.MERCHANT_NAME_IS_FOUND); + } + MallUserInfo user = getUser(); wxRentContract.setTenantId(user.getTenantId()); wxRentContract.setAdjustPeriodHandle(); diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/device/KwMerchantMeterController.java b/mallinkAdmin/src/main/java/com/iformall/controller/device/KwMerchantMeterController.java index 3e0a1a856..588dc14bd 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/device/KwMerchantMeterController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/device/KwMerchantMeterController.java @@ -7,6 +7,8 @@ import com.iformall.common.ResultData; import com.iformall.controller.base.BaseController; import com.iformall.domain.po.KwMerchantMeter; +import com.iformall.enums.EnumMerchantMeterStatus; +import com.iformall.enums.EnumMerchantStatus; import com.iformall.service.kw.KwMerchantMeterService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -17,6 +19,8 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.List; + @RestController @RequestMapping("kwMerchantMeter") @@ -36,8 +40,7 @@ public class KwMerchantMeterController extends BaseController { @SystemControllerLog(description = "电表设备-设备列表") public Result list(@ModelAttribute KwMerchantMeter kwMerchantMeter, Integer pageNum, Integer pageSize) { if (kwMerchantMeter == null) kwMerchantMeter = new KwMerchantMeter(); - - return new ResultData(); + return new ResultData(kwMerchantMeterService.listAsPage(kwMerchantMeter, pageNum, pageSize)); } @ApiOperation("绑定设备") @@ -47,6 +50,20 @@ public class KwMerchantMeterController extends BaseController { if (kwMerchantMeter == null) return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); + if (kwMerchantMeter.getMerchantId() == null) + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); + if (kwMerchantMeter.getMeterId() == null) + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); + + KwMerchantMeter record = new KwMerchantMeter(); + record.setMeterId(kwMerchantMeter.getMeterId()); + record.setStatus(EnumMerchantMeterStatus.VALID.getCode()); + if (kwMerchantMeterService.selectCount(record) > 0) + return new ResultData(ErrorCode.DEVICE_HAS_BEEN_BOUND); + + kwMerchantMeter.setTenantId(getTenantId()); + kwMerchantMeter.setStatus(EnumMerchantMeterStatus.VALID.getCode()); + kwMerchantMeterService.saveOrUpdate(kwMerchantMeter); return new ResultData(); } @@ -58,6 +75,17 @@ public class KwMerchantMeterController extends BaseController { if (kwMerchantMeter == null) return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); + if (kwMerchantMeter.getMerchantId() == null + && kwMerchantMeter.getId() == null + && kwMerchantMeter.getMeterId() == null) + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); + + if (kwMerchantMeter.getId() != null) { + kwMerchantMeter.setStatus(EnumMerchantMeterStatus.INVALID.getCode()); + kwMerchantMeterService.saveOrUpdate(kwMerchantMeter); + } else { + kwMerchantMeterService.unbindBatch(kwMerchantMeter); + } return new ResultData(); } diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxActivityController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxActivityController.java index 25ca595ab..0e8cac415 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxActivityController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxActivityController.java @@ -42,7 +42,7 @@ public class WxActivityController extends BaseController { wxActivity.setStatus(null); } wxActivity.setTenantId(getTenantId()); - wxActivity.setSortColumns(WxActivity.Field.Id_DESC); + wxActivity.setSortColumns(WxActivity.Field.CreateTime_DESC,WxActivity.Field.Id_DESC); final PageInfo page = wxActivityService.listAsPage(wxActivity, pageNum, pageSize); return new ResultData(page); } diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxActivityJoinController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxActivityJoinController.java index 55e51f15e..90bdd851e 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxActivityJoinController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxActivityJoinController.java @@ -44,7 +44,7 @@ public class WxActivityJoinController extends BaseController { wxActivityJoin = new WxActivityJoin(); } wxActivityJoin.setTenantId(getTenantId()); - wxActivityJoin.setSortColumns(WxActivityJoin.Field.Id_DESC); + wxActivityJoin.setSortColumns(WxActivityJoin.Field.CreateTime_DESC,WxActivityJoin.Field.Id_DESC); final PageInfo page = wxActivityJoinService.listAsPage(wxActivityJoin, pageNum, pageSize); return new ResultData(page); } diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCampaignController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCampaignController.java index 265e94309..b366caee6 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCampaignController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCampaignController.java @@ -60,7 +60,7 @@ public class WxCampaignController extends BaseController { wxCampaign.setStatus(null); } wxCampaign.setTenantId(getTenantId()); - wxCampaign.setSortColumns(WxCampaign.Field.Id_DESC); + wxCampaign.setSortColumns(WxCampaign.Field.CreateTime_DESC,WxCampaign.Field.Id_DESC); final PageInfo page = wxCampaignService.listAsPage(wxCampaign, pageNum, pageSize); return new ResultData(page); } diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCardPayController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCardPayController.java index 33039e32b..02e6162a4 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCardPayController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCardPayController.java @@ -175,4 +175,55 @@ public class WxCardPayController extends BaseController { int remainShareAmount = wxCardSpendService.finishCard(tenantId, wxCardInfo.getId()); return new ResultData(remainShareAmount); } + + @ApiOperation("卡订单-导出数据") + @GetMapping("/exportCardOrder") + @SystemControllerLog(description = "卡订单-导出数据") + public void exportCardOrder(@ModelAttribute WxCardVo wxCardVo, HttpServletRequest request, HttpServletResponse response) { + logger.info("[" + getIpAddr() + "] cardPay/exportCardOrder"); + if (wxCardVo == null) { + wxCardVo = new WxCardVo(); + } else { + if (StringUtils.isBlank(wxCardVo.getOuPhone())) { + wxCardVo.setOuPhone(null); + } + } + wxCardVo.setTenantId(getTenantId()); + if (StringUtils.isNotBlank(wxCardVo.getStatusStr())) { + String[] statusAttr = wxCardVo.getStatusStr().split(","); + List tmpList = new ArrayList(); + for (String status : statusAttr) { + tmpList.add(Integer.valueOf(status)); + } + if (!tmpList.isEmpty()) { + wxCardVo.setStatusS(tmpList); + } + } + wxCardInfoService.exportData(wxCardVo, request, response); + } + + @ApiOperation("卡消费订单-导出数据") + @GetMapping("exportCardSpend") + @SystemControllerLog(description = "卡消费订单-导出数据") + public void exportCardSpend(@ModelAttribute WxCardSpendVo wxCardSpendVo, HttpServletRequest request, HttpServletResponse response) { + String ipStr = getIpAddr(); + logger.info("cardPay/exportCardSpend: " + ipStr); + if (wxCardSpendVo == null) { + wxCardSpendVo = new WxCardSpendVo(); + } + wxCardSpendVo.setTenantId(getTenantId()); + if (StringUtils.isNotBlank(wxCardSpendVo.getPayStatusStr())) { + String[] statusAttr = wxCardSpendVo.getPayStatusStr().split(","); + List tmpList = new ArrayList(); + for (String status : statusAttr) { + tmpList.add(Integer.valueOf(status)); + } + if (!tmpList.isEmpty()) { + wxCardSpendVo.setPayStatusS(tmpList); + } + } + wxCardSpendService.exportData(wxCardSpendVo, request, response); + + } + } diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponCarController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponCarController.java index 126136908..fd72e59a3 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponCarController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponCarController.java @@ -58,16 +58,6 @@ public class WxCouponCarController extends BaseController { return new ResultData(); } - @ApiOperation("根据id删除接口") - @GetMapping("/del") - @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true) - @SystemControllerLog(description = "停车券-删除") - public ResultData delete(Long id) { - logger.debug("[" + getIpAddr() + "] WxCouponCarController::delete"); - wxCouponCarService.deleteById(id); - return new ResultData(Result.SUCCESS, "删除成功", null); - } - @ApiOperation("根据id查询接口") @GetMapping("/findById") @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponChannelController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponChannelController.java index 85f9a793c..f425a3c27 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponChannelController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponChannelController.java @@ -116,28 +116,8 @@ public class WxCouponChannelController extends BaseController { logger.debug("[" + getIpAddr() + "] WxCouponChannelController::addbatch"); String[] ids = wxCouponChannelDto.getCouponIds().split(","); String[] channelId = wxCouponChannelDto.getChannelId().split(","); - - if (org.springframework.util.CollectionUtils.isEmpty(wxCouponChannelDto.getFlowParams())) { - ResultData resultData = wxCouponChannelService.addBatch(ids, channelId, getTenantId(), wxCouponChannelDto.getBeginTime(), wxCouponChannelDto.getEndTime()); - return resultData; - }else{ - //走审批 - wxCouponChannelDto.getFlowParams().put("ids",wxCouponChannelDto.getCouponIds()); - wxCouponChannelDto.getFlowParams().put("channelId",wxCouponChannelDto.getChannelId()); - wxCouponChannelDto.getFlowParams().put("tenantId",getTenantId()); - wxCouponChannelDto.getFlowParams().put("beginTime",wxCouponChannelDto.getBeginTime()); - wxCouponChannelDto.getFlowParams().put("endTime",wxCouponChannelDto.getEndTime()); - - wxFlowService.start(wxCouponChannelDto.getFlowParams(), getUserId(), getUser().getName(), getTenantId()); - //修改coupon applyStatus状态为审核中 - for (String id:ids) { - WxCoupon wxCoupon = new WxCoupon(); - wxCoupon.setId(Long.parseLong(id)); - wxCoupon.setPutApplyStatus(EnumRentContractAppStatus.APPLYING.getCode()); - wxCouponService.update(wxCoupon); - } - } - return new ResultData(); + ResultData resultData = wxCouponChannelService.addBatch(ids, channelId, getTenantId(), wxCouponChannelDto.getBeginTime(), wxCouponChannelDto.getEndTime()); + return resultData; } @ApiOperation("根据id查询接口") diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java index 88dda0528..4aa68c51c 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java @@ -79,7 +79,20 @@ public class WxCouponController extends BaseController { @SystemControllerLog(description = "券投放-新增") public ResultData add(@RequestBody WxCoupon wxCoupon) { logger.debug("[" + getIpAddr() + "] WxCouponController::add"); - return wxCouponService.saveOrUpdate(wxCoupon); + + ResultData resultData = wxCouponService.saveOrUpdate(wxCoupon); + if(resultData.code != 200){ + return resultData; + } + + //启动投放审批 + if(wxCoupon.getFlowParams() !=null && wxCoupon.getFlowParams().size()>0) { + wxCoupon.getFlowParams().put("businessId",wxCoupon.getId()); + wxFlowService.start(wxCoupon.getFlowParams(), getUserId(), getUser().getName(), getTenantId()); + //修改coupon applyStatus状态为审核中 + wxCoupon.setPutApplyStatus(EnumRentContractAppStatus.APPLYING.getCode()); + } + return resultData; } @ApiOperation("根据id更新接口") @@ -101,18 +114,25 @@ public class WxCouponController extends BaseController { } wxCoupon.setTenantId(getTenantId()); - //作废走审批 - if (EnumCouponStatus.COUPON_STATUS_TAKE_OFFF.getCode().equals(wxCoupon.getStatus())) { - if (wxCoupon.getFlowParams() != null && wxCoupon.getFlowParams().size() > 0) { - wxFlowService.start(wxCoupon.getFlowParams(), getUserId(), getUser().getName(), getTenantId()); - return new ResultData(); + //启动审批流 + if (wxCoupon.getFlowParams() != null && wxCoupon.getFlowParams().size() > 0) { + logger.info("------coupon.update().businessType:"+wxCoupon.getFlowParams().get("businessType")); + wxCoupon.getFlowParams().put("businessId",wxCoupon.getId()); + wxFlowService.start(wxCoupon.getFlowParams(), getUserId(), getUser().getName(), getTenantId()); + //作废审批 + if (EnumCouponStatus.COUPON_STATUS_TAKE_OFFF.getCode().equals(wxCoupon.getStatus())) { + wxCoupon.setCancleApplyStatus(EnumRentContractAppStatus.APPLYING.getCode()); + return new ResultData(wxCoupon); + }else{ + //投放审批 + wxCoupon.setPutApplyStatus(EnumRentContractAppStatus.APPLYING.getCode()); } } return wxCouponService.saveOrUpdate(wxCoupon); } @ApiOperation("根据id更新库存及有效期接口") - @PostMapping("updateStokeAndValidDate") + @PostMapping("updateStokeAndValidDate") @SystemControllerLog(description = "券投放-库存/有效期更新") public ResultData updateStokeAndValidDate(@RequestBody WxCoupon wxCoupon) { logger.debug("[" + getIpAddr() + "] WxCouponController::updateStokeAndValidDate"); @@ -154,15 +174,51 @@ public class WxCouponController extends BaseController { } wxCoupon.setTenantId(getTenantId()); - if(wxCoupon.getFlowParams() != null && wxCoupon.getFlowParams().size() >0){ -// wxCoupon.getFlowParams().put("inventory",wxCoupon.getInventory()); -// wxCoupon.getFlowParams().put("remainInventory",wxCoupon.getRemainInventory()); -// wxCoupon.getFlowParams().put("type",wxCoupon.getType()); -// wxCoupon.getFlowParams().put("validEndDate",wxCoupon.getValidEndDate()); -// wxCoupon.getFlowParams().put("validStartDate",wxCoupon.getValidStartDate()); -// wxCoupon.getFlowParams().put("validType",wxCoupon.getValidType()); + WxCoupon coupon = wxCouponService.findById(wxCoupon); + if(coupon!=null){ + if(wxCoupon.getValidEndDate().before(coupon.getValidEndDate())){ + return new ResultData(ErrorCode.COUPON_STOCK_ENDTIME_ERR); + } + } + //启动审批流 + if(wxCoupon.getFlowParams() != null && wxCoupon.getFlowParams().size() >0){ + List> variables = (List)wxCoupon.getFlowParams().get("variables"); + Map map = new HashedMap(); + map.put("key","inventory"); + map.put("value",wxCoupon.getInventory()); + variables.add(map); + map = new HashedMap(); + map.put("key","remainInventory"); + map.put("value",wxCoupon.getRemainInventory()); + variables.add(map); + map = new HashedMap(); + map.put("key","type"); + map.put("value",wxCoupon.getType()); + variables.add(map); + map = new HashedMap(); + map.put("key","validEndDate"); + map.put("value",wxCoupon.getValidEndDate()); + map = new HashedMap(); + map.put("key","validStartDate"); + map.put("value",wxCoupon.getValidStartDate()); + map = new HashedMap(); + map.put("key","validType"); + map.put("value",wxCoupon.getValidType()); + variables.add(map); + map = new HashedMap(); + map.put("key","validDays"); + map.put("value",wxCoupon.getValidDays()); + variables.add(map); + wxCoupon.getFlowParams().put("businessId",wxCoupon.getId()); wxFlowService.start(wxCoupon.getFlowParams(), getUserId(), getUser().getName(), getTenantId()); + //更新状态 + WxCoupon updateCoupon = new WxCoupon(); + updateCoupon.setTenantId(wxCoupon.getTenantId()); + updateCoupon.setId(wxCoupon.getId()); + updateCoupon.setStockApplyStatus(EnumRentContractAppStatus.APPLYING.getCode()); + updateCoupon.setUpdateDate(new Date()); + wxCouponService.update(updateCoupon); }else{ return wxCouponService.updateCouponStockAndEndTime(wxCoupon); } @@ -275,10 +331,6 @@ public class WxCouponController extends BaseController { } wxCoupon.setTenantId(getTenantId()); PageInfo pages = wxCouponService.findPressData(wxCoupon,pageNum,pageSize); - List ids = new ArrayList<>(); - for(WxCouponStatisVo vo: pages.getList()) { - ids.add(vo.getId()); - } return new ResultData(pages); } diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponInjectController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponInjectController.java index b01369437..1fd94c458 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponInjectController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponInjectController.java @@ -46,7 +46,7 @@ public class WxCouponInjectController extends BaseController { couponInject.setStatus(null); } couponInject.setTenantId(getTenantId()); - couponInject.setSortColumns(WxCouponInject.Field.Id_DESC); + couponInject.setSortColumns(WxCouponInject.Field.CreateTime_DESC,WxCouponInject.Field.Id_DESC); final PageInfo page = wxCouponInjectService.listAsPage(couponInject, pageNum, pageSize); return new ResultData(page); } diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponOrderController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponOrderController.java index 56e6a0b9b..9b233ac57 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponOrderController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponOrderController.java @@ -71,7 +71,7 @@ public class WxCouponOrderController extends BaseController { } return wxCouponOrderService.detailAdminVo(couponOrderId); } - + @ApiOperation(value = "退券退款", notes = "{\"couponOrderId\":\"string\"}") @PostMapping("/refund") @SystemControllerLog(description = "券包-退券退款") diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxOrderController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxOrderController.java index f43aab28e..14c9abdb6 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxOrderController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxOrderController.java @@ -63,7 +63,7 @@ public class WxOrderController extends BaseController { logger.debug("[" + getIpAddr() + "] WxOrderController::list"); if (null == wxOrder) wxOrder = new WxOrder(); wxOrder.setTenantId(getTenantId()); - wxOrder.setSortColumns(WxOrder.Field.Id_DESC); + wxOrder.setSortColumns(WxOrder.Field.CreateDate_DESC,WxOrder.Field.Id_DESC); final PageInfo page = wxOrderService.listAsPage(wxOrder, pageNum, pageSize); return new ResultData(page); } diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/mem/ImportTemplateTask.java b/mallinkAdmin/src/main/java/com/iformall/controller/mem/ImportTemplateTask.java new file mode 100644 index 000000000..11f79c397 --- /dev/null +++ b/mallinkAdmin/src/main/java/com/iformall/controller/mem/ImportTemplateTask.java @@ -0,0 +1,236 @@ +package com.iformall.controller.mem; + +import cn.afterturn.easypoi.excel.ExcelImportUtil; +import cn.afterturn.easypoi.excel.entity.ImportParams; +import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult; +import cn.afterturn.easypoi.handler.impl.ExcelDataHandlerDefaultImpl; +import cn.afterturn.easypoi.handler.inter.IExcelDataHandler; +import com.iformall.domain.po.MallUserInfo; +import com.iformall.domain.po.WxMerchant; +import com.iformall.domain.po.WxTags; +import com.iformall.domain.vo.CUserBaseInfoT; +import com.iformall.domain.vo.WxBillExcelTemplateOther; +import com.iformall.enums.EnumMerchantStatus; +import com.iformall.mapper.WxMerchantMapper; +import com.iformall.service.WxBillAllService; +import com.iformall.service.WxCUserBasicInfoService; +import com.iformall.service.WxTagsService; +import org.apache.commons.lang3.StringUtils; +import org.apache.shiro.session.UnknownSessionException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Component; + +import java.io.File; +import java.util.*; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; + +/** + * @author gongbiao + */ +@Component +public class ImportTemplateTask { + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Autowired + private WxCUserBasicInfoService wxCUserBasicInfoService; + + @Autowired + private WxTagsService wxTagsService; + + @Autowired + StringRedisTemplate stringRedisTemplate; + + @Autowired + private WxBillAllService wxBillAllService; + + @Autowired + private WxMerchantMapper wxMerchantMapper; + + + @Async + public void importBillData(File file, MallUserInfo user, String importKey, String tenantId) { + ImportParams params = new ImportParams(); + // 需要验证 + params.setImportFields(new String[]{"商户名*", "费用类型*", "费用属性*", "费用所属期-开始时间*", "费用所属期-结束时间*", "收款金额(元)*", "收款日期*", "截止缴款日*", "收款方式"}); + IExcelDataHandler handler = new ImportTemplateTask.UserExcelHandler(); + handler.setNeedHandlerFields(new String[]{"商户名*", "费用类型*", "费用属性*", "费用所属期-开始时间*", "费用所属期-结束时间*", "收款金额(元)*", "收款日期*", "截止缴款日*"}); + params.setNeedVerify(true); + + ExcelImportResult datalist = null; + + try { + datalist = ExcelImportUtil.importExcelMore(file, WxBillExcelTemplateOther.class, params); + } catch (Exception e) { + set_redis_value(importKey, "1", "0", "0", "1", true); + logger.error(e.getMessage()); + // 删除缓存文件 + file.delete(); + return; + } + // 删除缓存文件 + file.delete(); + + if (datalist == null) { + logger.error("导入模板失败: 模板数据解析失败"); + set_redis_value(importKey, "1", "0", "0", "1", true); + return; + } + + List successList = datalist.getList(); + List failList = datalist.getFailList(); + + //此处判断商户是否存在 + //1 过滤重复商户名 + Set merchantSet = successList.parallelStream().filter(s -> StringUtils.isNotEmpty(s.getMerchantName())) + .map(s -> StringUtils.trim(s.getMerchantName())) + .collect(Collectors.toSet()); + //2 查询商户名是否存在 + Map merchantMap = new HashMap<>(); + merchantSet.parallelStream().forEach(merchantName -> { + WxMerchant wxMerchantQuery = new WxMerchant(); + wxMerchantQuery.setTenantId(tenantId); + wxMerchantQuery.setName(merchantName); + wxMerchantQuery.setStatus(EnumMerchantStatus.VALID.getCode()); + WxMerchant wxMerchant = wxMerchantMapper.selectOne(wxMerchantQuery); + if (wxMerchant != null) { + merchantMap.put(merchantName, wxMerchant); + } + }); + //3 计失败条数 + List billSuccessList = new ArrayList<>(); + successList.parallelStream().forEach(s -> { + if (StringUtils.isNotEmpty(s.getMerchantName())) { + WxMerchant wxMerchant = merchantMap.get(s.getMerchantName()); + if (wxMerchant != null) { + Long merchantId = wxMerchant.getId(); + if (merchantId != null) { + s.setMerchantId(merchantId); + Integer type = wxMerchant.getType(); + s.setMerchantType(type); + billSuccessList.add(s); + } + } + } + }); + int billSuccessSize = billSuccessList.size(); + int successSize = successList.size(); + int failSize = failList.size(); + int total = successSize + failSize; + int failCount = successSize - billSuccessSize; + int all_success = billSuccessSize; + int all_fail = failSize + failCount; + + logger.info("验证通过的数量: " + billSuccessSize); + logger.info("验证未通过的数量: " + failSize); + + //添加到redis里 + set_redis_value(importKey, "" + total, "" + all_success, "0", "" + all_fail, total == all_fail); + + if (billSuccessSize > 0) { + try { + billSuccessList.parallelStream().forEach(bill -> { + try { + wxBillAllService.importBill(tenantId, importKey, bill, user); + } catch (UnknownSessionException ue) { + logger.error("session :" + ue.getMessage()); + } + }); + } catch (Exception e) { + set_redis_value(importKey, "1", "0", "0", "1", true); + e.printStackTrace(); + logger.error("导入模板失败:" + e.getMessage()); + } + } + } + + private class UserExcelHandler extends ExcelDataHandlerDefaultImpl { + @Override + public Object importHandler(CUserBaseInfoT obj, String name, Object value) { + if (value == null) { + value = ""; + } + System.out.println(name + " + " + value.toString()); + return super.importHandler(obj, name, value); + } + + } + + private void set_redis_value(String importKey, String allCount, String allSuccessCount, String processCount, String failCount, boolean fail) { + stringRedisTemplate.opsForHash().put(importKey, "allCount", allCount); + stringRedisTemplate.opsForHash().put(importKey, "allSuccessCount", allSuccessCount); + stringRedisTemplate.opsForHash().put(importKey, "processCount", processCount); + stringRedisTemplate.opsForHash().put(importKey, "failCount", failCount); + if (fail) { + stringRedisTemplate.expire(importKey, 10, TimeUnit.SECONDS); + } + } + + @Async + public void importMemberData(File file, MallUserInfo user, String importKey, String tenantId) { + ImportParams params = new ImportParams(); + // 需要验证 + params.setImportFields(new String[]{"姓名", "性别", "手机号*", "微信昵称", "学历", "生日", "地址", "上次活跃时间", "注册时间", "标签", "成长值", "积分"}); + IExcelDataHandler handler = new ImportTemplateTask.UserExcelHandler(); + handler.setNeedHandlerFields(new String[]{"手机号*"}); + params.setNeedVerify(true); + + ExcelImportResult datalist = null; + + try { + datalist = ExcelImportUtil.importExcelMore(file, CUserBaseInfoT.class, params); + } catch (Exception e) { + set_redis_value(importKey, "1", "0", "0", "1", true); + logger.error(e.getMessage()); + // 删除缓存文件 + file.delete(); + return; + } + // 删除缓存文件 + file.delete(); + + if (datalist == null) { + logger.error("导入模板失败: 模板数据解析失败"); + set_redis_value(importKey, "1", "0", "0", "1", true); + return; + } + + List successList = datalist.getList(); + List failList = datalist.getFailList(); + + logger.info("验证通过的数量: " + successList.size()); + logger.info("验证未通过的数量: " + failList.size()); + + int total = successList.size() + failList.size(); + int all_success = successList.size(); + int all_fail = failList.size(); + + //添加到redis里 + set_redis_value(importKey, "" + total, "" + all_success, "0", "" + all_fail, total == all_fail); + + if (successList.size() > 0) { + WxTags wxTagsQ = new WxTags(); + List tagList = wxTagsService.findList(wxTagsQ); + + try { + successList.parallelStream().forEach(uBase -> { + try { + wxCUserBasicInfoService.importOneMem(tenantId, importKey, tagList, uBase, user); + } catch (UnknownSessionException ue) { + logger.error("session :" + ue.getMessage()); + } + }); + } catch (Exception e) { + set_redis_value(importKey, "1", "0", "0", "1", true); + e.printStackTrace(); + logger.error("导入模板失败:" + e.getMessage()); + } + } + } + + +} 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 7be63c8b8..a9269d4ac 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillAllController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillAllController.java @@ -4,6 +4,7 @@ import com.iformall.annotation.SystemControllerLog; import com.iformall.common.ResultData; import com.iformall.controller.base.BaseController; import com.iformall.domain.vo.WxBillAll; +import com.iformall.domain.vo.WxBillExcelTemplate; import com.iformall.service.WxBillAllService; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -153,4 +154,12 @@ public class WxBillAllController extends BaseController { return wxBillAllService.updateReceivePay(wxBillAll, getUser()); } + + @GetMapping("exportTemplate") + @SystemControllerLog(description = "账单-导出模板") + public void exportTemplate(@ModelAttribute WxBillExcelTemplate wxBillExcelTemplate, HttpServletRequest request, HttpServletResponse response) { + logger.debug("[" + getIpAddr() + "] WxBillAllController::exportTemplate"); + wxBillAllService.exportTemplate(wxBillExcelTemplate, request, response); + } + } diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillDailyController.java b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillDailyController.java index f50c120b8..5237b8269 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillDailyController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillDailyController.java @@ -64,7 +64,7 @@ public class WxBillDailyController extends BaseController { wxBillDaily = new WxBillDaily(); } wxBillDaily.setTenantId(getTenantId()); - final PageInfo> page = wxBillDailyService.listAsPage(wxBillDaily, pageNum, pageSize); + final PageInfo page = wxBillDailyService.listAsPage(wxBillDaily, pageNum, pageSize); return new ResultData(page); } @@ -240,4 +240,11 @@ public class WxBillDailyController extends BaseController { return new ResultData(Result.SUCCESS, "查询成功", entries); } + @GetMapping("exportBill") + @SystemControllerLog(description = "日常费用账单-导出") + public void exportBill(@ModelAttribute WxBillDaily wxBillDaily, HttpServletRequest request, HttpServletResponse response) { + wxBillDaily.setTenantId(getTenantId()); + wxBillDailyService.exportBill(request, response, wxBillDaily); + } + } diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillOtherController.java b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillOtherController.java index 3a0a6adc2..5b8b6430f 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillOtherController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillOtherController.java @@ -7,6 +7,7 @@ import com.iformall.common.ResultData; import com.iformall.controller.base.BaseController; import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.WxBillOther; +import com.iformall.domain.po.WxBillOtherDeposit; import com.iformall.service.WxBillOtherService; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -15,7 +16,8 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import java.util.Map; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; /** * @author gongbiao @@ -39,7 +41,7 @@ public class WxBillOtherController extends BaseController { wxBillOther = new WxBillOther(); } wxBillOther.setTenantId(getTenantId()); - final PageInfo> page = wxBillOtherService.listAsPage(wxBillOther, pageNum, pageSize); + final PageInfo page = wxBillOtherService.listAsPage(wxBillOther, pageNum, pageSize); return new ResultData(page); } @@ -92,5 +94,11 @@ public class WxBillOtherController extends BaseController { return wxBillOtherService.updatePaid(id); } + @GetMapping("exportBill") + @SystemControllerLog(description = "其它账单-导出") + public void exportBill(@ModelAttribute WxBillOther wxBillOther, HttpServletRequest request, HttpServletResponse response) { + wxBillOther.setTenantId(getTenantId()); + wxBillOtherService.exportBill(request, response, wxBillOther); + } } diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillOtherDepositController.java b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillOtherDepositController.java index 3b5d0c929..9255a581c 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillOtherDepositController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillOtherDepositController.java @@ -15,6 +15,8 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.util.Map; /** @@ -39,7 +41,7 @@ public class WxBillOtherDepositController extends BaseController { wxBillOtherDeposit = new WxBillOtherDeposit(); } wxBillOtherDeposit.setTenantId(getTenantId()); - final PageInfo> page = wxBillOtherDepositService.listAsPage(wxBillOtherDeposit, pageNum, pageSize); + final PageInfo page = wxBillOtherDepositService.listAsPage(wxBillOtherDeposit, pageNum, pageSize); return new ResultData(page); } @@ -100,7 +102,13 @@ public class WxBillOtherDepositController extends BaseController { public ResultData adjustDeposit(@RequestBody WxBillOtherDeposit wxBillDeposit) { logger.debug("[" + getIpAddr() + "] WxBillOtherDepositController::adjustDeposit"); return wxBillOtherDepositService.adjustDeposit(wxBillDeposit); + } + @GetMapping("exportBill") + @SystemControllerLog(description = "其它押金账单-导出") + public void exportBill(@ModelAttribute WxBillOtherDeposit wxBillDeposit, HttpServletRequest request, HttpServletResponse response) { + wxBillDeposit.setTenantId(getTenantId()); + wxBillOtherDepositService.exportBill(request, response, wxBillDeposit); } } diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillPropertyController.java b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillPropertyController.java index b1338e79e..46279133e 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillPropertyController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillPropertyController.java @@ -14,7 +14,8 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import java.util.Map; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; /** * @author gongbiao @@ -38,8 +39,8 @@ public class WxBillPropertyController extends BaseController { wxBillProperty = new WxBillProperty(); } wxBillProperty.setTenantId(getTenantId()); - wxBillProperty.setSortColumns(WxBillProperty.Field.Id_DESC); - PageInfo> result = wxBillPropertyService.listAsPage(wxBillProperty, pageNum, pageSize); + wxBillProperty.setSortColumns(WxBillProperty.Field.Createtime_DESC,WxBillProperty.Field.Id_DESC); + PageInfo result = wxBillPropertyService.listAsPage(wxBillProperty, pageNum, pageSize); return new ResultData(result); } @@ -101,7 +102,7 @@ public class WxBillPropertyController extends BaseController { @SystemControllerLog(description = "物业账单-根据商户获取") public ResultData findByPropertyContractId(Long propertyContractId, Integer pageNum, Integer pageSize) { logger.debug("[" + getIpAddr() + "] WxBillPropertyController::findByPropertyContractId"); - final PageInfo> page = wxBillPropertyService.findByPropertyContractId(propertyContractId, getTenantId(), pageNum, pageSize); + final PageInfo page = wxBillPropertyService.findByPropertyContractId(propertyContractId, getTenantId(), pageNum, pageSize); return new ResultData(page); } @@ -113,4 +114,10 @@ public class WxBillPropertyController extends BaseController { return wxBillPropertyService.updateLatePayStatus(wxBillProperty); } + @GetMapping("exportBill") + @SystemControllerLog(description = "物业账单-导出") + public void exportBill(@ModelAttribute WxBillProperty wxBillProperty, HttpServletRequest request, HttpServletResponse response) { + wxBillProperty.setTenantId(getTenantId()); + wxBillPropertyService.exportBill(request, response, wxBillProperty); + } } diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillRentController.java b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillRentController.java index 1b32eb3ab..e48209faa 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillRentController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillRentController.java @@ -14,7 +14,8 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import java.util.Map; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; /** * @author gongbiao @@ -38,8 +39,8 @@ public class WxBillRentController extends BaseController { wxBillRent = new WxBillRent(); } wxBillRent.setTenantId(getTenantId()); - wxBillRent.setSortColumns(WxBillRent.Field.Id_DESC); - final PageInfo> page = wxBillRentService.listAsPage(wxBillRent, pageNum, pageSize); + wxBillRent.setSortColumns(WxBillRent.Field.Createtime_DESC,WxBillRent.Field.Id_DESC); + final PageInfo page = wxBillRentService.listAsPage(wxBillRent, pageNum, pageSize); return new ResultData(page); } @@ -83,7 +84,7 @@ public class WxBillRentController extends BaseController { @SystemControllerLog(description = "租赁押金账单-根据商户获取") public ResultData findByRentContractId(Long rentContractId, Integer pageNum, Integer pageSize) { logger.debug("[" + getIpAddr() + "] WxBillRentController::findByRentContractId"); - final PageInfo> page = wxBillRentService.findByRentContractId(rentContractId, getTenantId(), pageNum, pageSize); + final PageInfo page = wxBillRentService.findByRentContractId(rentContractId, getTenantId(), pageNum, pageSize); return new ResultData(page); } @@ -118,4 +119,11 @@ public class WxBillRentController extends BaseController { return wxBillRentService.updateLatePayStatus(wxBillRent); } + @GetMapping("exportBill") + @SystemControllerLog(description = "租赁押金账单-导出") + public void exportBill(@ModelAttribute WxBillRent wxBillRent, HttpServletRequest request, HttpServletResponse response) { + wxBillRent.setTenantId(getTenantId()); + wxBillRentService.exportBill(request, response, wxBillRent); + } + } diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/sys/MallUserInfoController.java b/mallinkAdmin/src/main/java/com/iformall/controller/sys/MallUserInfoController.java index 6cf41b2db..73cb04a5b 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/sys/MallUserInfoController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/sys/MallUserInfoController.java @@ -77,7 +77,7 @@ public class MallUserInfoController extends BaseController { } userInfo.setTenantId(getTenantId()); - userInfo.setSortColumns(MallUserInfo.Field.Id_DESC); + userInfo.setSortColumns(MallUserInfo.Field.CreateTime_DESC,MallUserInfo.Field.Id_DESC); final PageInfo page = userInfoService.listAsPage(userInfo, pageNum, pageSize); for (MallUserInfo u : page.getList()) { MallUserRole r = new MallUserRole(); diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/sys/WxBusinessController.java b/mallinkAdmin/src/main/java/com/iformall/controller/sys/WxBusinessController.java index bc033b620..fe2c908c3 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/sys/WxBusinessController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/sys/WxBusinessController.java @@ -1,23 +1,30 @@ package com.iformall.controller.sys; -import com.github.pagehelper.PageInfo; import com.iformall.annotation.SystemControllerLog; import com.iformall.common.ResultData; import com.iformall.controller.base.BaseController; import com.iformall.domain.po.WxBusiness; import com.iformall.domain.po.WxSubBusiness; +import com.iformall.domain.vo.WxBusinessDataVo; +import com.iformall.domain.vo.WxMerchantSubsidyVo; +import com.iformall.service.ExcelService; import com.iformall.service.WxBusinessService; import com.iformall.service.WxSubBusinessService; +import com.iformall.utils.DateUtils; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; +import org.apache.http.HttpResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; + +import javax.servlet.http.HttpServletResponse; +import java.math.BigDecimal; +import java.text.SimpleDateFormat; +import java.util.*; @RestController @RequestMapping("wxBusiness") @@ -27,9 +34,11 @@ public class WxBusinessController extends BaseController { @Autowired private WxBusinessService wxBusinessService; - @Autowired private WxSubBusinessService wxSubBusinessService; + @Autowired + private ExcelService excelService; + @ApiOperation("业态全列表接口") @GetMapping("listAll") @@ -52,63 +61,68 @@ public class WxBusinessController extends BaseController { @ApiOperation("业态分析接口") @GetMapping("businessDataList") @SystemControllerLog(description = "业态分析接口") - public ResultData businessDataList(@ModelAttribute WxBusiness wxBusiness) { + public ResultData businessDataList(@ModelAttribute WxBusiness wxBusiness) throws Exception{ logger.debug("[" + getIpAddr() + "] WxBusinessController::businessDataList"); - List> result = new ArrayList<>(); - Map map = new HashMap<>(); - map.put("title","餐饮");//业态 - map.put("volume","2323.23");//营业额 - map.put("sale","32323.23");//销售坪效 - map.put("rent","32323.23");//租赁坪效 - map.put("rentSaleRate","0.23");//租售比 - map.put("comPrice","香奈儿");//客单价 - map.put("maxCom","32323.23");//贡献率最高商户 - result.add(map); - map = new HashMap<>(); - map.put("title","娱乐");//业态 - map.put("volume","2323.23");//营业额 - map.put("sale","32323.23");//销售坪效 - map.put("rent","32323.23");//租赁坪效 - map.put("rentSaleRate","0.23");//租售比 - map.put("comPrice","香奈儿");//客单价 - map.put("maxCom","32323.23");//贡献率最高商户 - result.add(map); - map = new HashMap<>(); - map.put("title","影视");//业态 - map.put("volume","2323.23");//营业额 - map.put("sale","32323.23");//销售坪效 - map.put("rent","32323.23");//租赁坪效 - map.put("rentSaleRate","0.23");//租售比 - map.put("comPrice","香奈儿");//客单价 - map.put("maxCom","32323.23");//贡献率最高商户 - result.add(map); - return new ResultData(result); + wxBusiness.setTenantId(getTenantId()); + if(wxBusiness.getStartdate() == null || wxBusiness.getEnddate() == null){ + Date sDate = DateUtils.getFirstDayForCurrMonth(DateUtils.getLastMonthToDay()); + Date eDate = DateUtils.getLastDayForMonth(DateUtils.getLastMonthToDay()); + SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat sdT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + wxBusiness.setStartdate(sdT.parse(sd.format(sDate)+" 00:00:00")); + wxBusiness.setEnddate(sdT.parse(sd.format(eDate)+" 23:59:59")); + } + return wxBusinessService.businessDataList(wxBusiness); + } + + @ApiOperation("导出业态数据列表") + @GetMapping("exportBusinessDataList") + @SystemControllerLog(description = "导出业态数据列表") + public void exportBusinessDataList(@ModelAttribute WxBusiness wxBusiness, HttpServletResponse response) throws Exception{ + logger.debug("[" + getIpAddr() + "] WxBusinessController::exportBusinessDataList"); + wxBusiness.setTenantId(getTenantId()); + if(wxBusiness.getStartdate() == null || wxBusiness.getEnddate() == null){ + Date sDate = DateUtils.getFirstDayForCurrMonth(DateUtils.getLastMonthToDay()); + Date eDate = DateUtils.getLastDayForMonth(DateUtils.getLastMonthToDay()); + SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat sdT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + wxBusiness.setStartdate(sdT.parse(sd.format(sDate)+" 00:00:00")); + wxBusiness.setEnddate(sdT.parse(sd.format(eDate)+" 23:59:59")); + } + List> dataList = (List>)wxBusinessService.businessDataList(wxBusiness).data; + List exeList = new ArrayList<>(); + for (Map m:dataList) { + WxBusinessDataVo businessDataVo = new WxBusinessDataVo(); + businessDataVo.setName((String)m.get("title")); + if(m.get("comPrice") != null) + businessDataVo.setComPrice(m.get("comPrice").toString()); + if(m.get("rent") != null) + businessDataVo.setRentRate(m.get("rent").toString()); + if(m.get("rentSaleRate") != null) + businessDataVo.setRentSaleRate(m.get("rentSaleRate").toString()); + if(m.get("volume") != null) { + //单位转万 + BigDecimal b = (BigDecimal)m.get("volume"); + String dstr = b.divide(new BigDecimal(10000)).setScale(2, BigDecimal.ROUND_HALF_UP).toString(); + businessDataVo.setSale(dstr); + } + if(m.get("sale") != null) + businessDataVo.setSaleRate(m.get("sale").toString()); + exeList.add(businessDataVo); + } + excelService.exportExcel(exeList, null, "业态统计", WxBusinessDataVo.class, "业态统计列表.xlsx", response, false); } @ApiOperation("贡献率排行") @GetMapping("devoteList") - @SystemControllerLog(description = "业态分析接口") - public ResultData devoteList(@ModelAttribute WxBusiness wxBusiness,Integer pageNum, Integer pageSize) { + @SystemControllerLog(description = "贡献率排行") + @ApiImplicitParams({ + @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), + @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) + public ResultData devoteList(@ModelAttribute WxBusiness wxBusiness,Integer pageNum, Integer pageSize) { logger.debug("[" + getIpAddr() + "] WxBusinessController::devoteList"); - List> result = new ArrayList<>(); - Map map = new HashMap<>(); - map.put("merchantName","西贝筱面"); - map.put("sale","2323.23");//营业额 - map.put("sale","32323.23");//商户销售坪效 - map.put("devoteRate","1.23");//贡献率 - result.add(map); - map = new HashMap<>(); - map.put("merchantName","肯德基"); - map.put("sale","2323.23");//营业额 - map.put("sale","32323.23");//商户销售坪效 - map.put("devoteRate","1.23");//贡献率 - result.add(map); - PageInfo> page = new PageInfo<>(); - page.setList(result); - page.setTotal(2); - page.setPageNum(1); - page.setPageSize(20); - return new ResultData(page); + wxBusiness.setTenantId(getTenantId()); + return new ResultData(wxBusinessService.devoteList(wxBusiness,pageNum,pageSize)); } diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/template/WxImportTemplateController.java b/mallinkAdmin/src/main/java/com/iformall/controller/template/WxImportTemplateController.java new file mode 100644 index 000000000..371fb78c9 --- /dev/null +++ b/mallinkAdmin/src/main/java/com/iformall/controller/template/WxImportTemplateController.java @@ -0,0 +1,184 @@ +package com.iformall.controller.template; + +import com.alibaba.fastjson.JSONArray; +import com.iformall.annotation.SystemControllerLog; +import com.iformall.common.ErrorCode; +import com.iformall.common.Result; +import com.iformall.common.ResultData; +import com.iformall.controller.base.BaseController; +import com.iformall.controller.mem.ImportTemplateTask; +import com.iformall.domain.po.MallUserInfo; +import com.iformall.enums.EnumImportType; +import com.iformall.exception.MallinkException; +import com.iformall.utils.Constant; +import io.swagger.annotations.Api; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import java.io.BufferedInputStream; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.Map; +import java.util.concurrent.TimeUnit; + +/** + * @author gongbiao + */ +@RestController +@RequestMapping("wxImportTemplate") +@Api(description = "模板导入") +public class WxImportTemplateController extends BaseController { + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Autowired + private String fmUploadDir; + + @Autowired + StringRedisTemplate stringRedisTemplate; + + @Autowired + private ImportTemplateTask importTemplateTask; + + private void set_redis_value(String importKey, String allCount, String allSuccessCount, String processCount, String failCount, boolean fail) { + stringRedisTemplate.opsForHash().put(importKey, "allCount", allCount); + stringRedisTemplate.opsForHash().put(importKey, "allSuccessCount", allSuccessCount); + stringRedisTemplate.opsForHash().put(importKey, "processCount", processCount); + stringRedisTemplate.opsForHash().put(importKey, "failCount", failCount); + if (fail) { + stringRedisTemplate.expire(importKey, 10, TimeUnit.SECONDS); + } + } + + @PostMapping(value = "/importTemplate", consumes = "multipart/*") + @SystemControllerLog(description = "导入数据") + public ResultData importTemplate(@RequestParam("file") MultipartFile mFile, @RequestParam("type") Integer type) { + logger.debug("[" + getIpAddr() + "] WxImportTemplateController::importTemplate"); + if (mFile.isEmpty()) { + throw new MallinkException(Result.ERROR, "上传文件不能为空"); + } + //得到当前用户ID + String typeStr = EnumImportType.getEnum(type).getMessage(); + final MallUserInfo user = getUser(); + String userId = typeStr + "_" + user.getId(); + String importKey = Constant.importMemPrev + userId; + final String tenantId = getTenantId(); + + //查询当前用户得到的值是否为空,为空继续,不为空,返回模板正在导入 + Boolean allCount = stringRedisTemplate.opsForHash().hasKey(importKey, "allCount"); + if (allCount) { + return new ResultData(Result.SUCCESS, "模板正在导入"); + } + + stringRedisTemplate.opsForHash().putIfAbsent(importKey, "allCount", 0 + ""); + stringRedisTemplate.expire(importKey, 30, TimeUnit.MINUTES); + stringRedisTemplate.opsForHash().putIfAbsent(importKey, "allSuccessCount", 0 + ""); + stringRedisTemplate.opsForHash().putIfAbsent(importKey, "processCount", ""); + stringRedisTemplate.opsForHash().putIfAbsent(importKey, "failCount", ""); + + String fpath = fmUploadDir; + File targetFile = new File(fpath); + if (!targetFile.exists()) { + targetFile.mkdirs(); + } + String fileName = type + ".xlsx"; + int dot = mFile.getOriginalFilename().lastIndexOf('.'); + fileName = fileName + mFile.getOriginalFilename().substring(dot, mFile.getOriginalFilename().length()); + + File lFile = new File(fpath + File.separator + fileName); + + FileOutputStream fos = null; + BufferedInputStream fs = null; + try { + fos = new FileOutputStream(lFile); + fs = (BufferedInputStream) mFile.getInputStream(); + byte[] buffer = new byte[1024]; + int len = 0; + while ((len = fs.read(buffer)) != -1) { + fos.write(buffer, 0, len); + } + fos.close(); + fs.close(); + } catch (Exception e) { + stringRedisTemplate.expire(importKey, 3, TimeUnit.SECONDS); + stringRedisTemplate.opsForHash().putIfAbsent(importKey, "allCount", "1"); + stringRedisTemplate.opsForHash().putIfAbsent(importKey, "failCount", "1"); + logger.error(e.getMessage()); + return new ResultData(ErrorCode.MEM_IMPORT_ERR.getCode(), "模板上传失败"); + } finally { + if (fos != null) { + try { + fos.close(); + } catch (IOException e) { + stringRedisTemplate.expire(importKey, 3, TimeUnit.SECONDS); + stringRedisTemplate.opsForHash().putIfAbsent(importKey, "allCount", "1"); + stringRedisTemplate.opsForHash().putIfAbsent(importKey, "failCount", "1"); + logger.error(e.getMessage()); + return new ResultData(ErrorCode.MEM_IMPORT_ERR.getCode(), "模板上传失败"); + } + } + if (fs != null) { + try { + fs.close(); + } catch (IOException e) { + stringRedisTemplate.expire(importKey, 3, TimeUnit.SECONDS); + stringRedisTemplate.opsForHash().putIfAbsent(importKey, "allCount", "1"); + stringRedisTemplate.opsForHash().putIfAbsent(importKey, "failCount", "1"); + logger.error(e.getMessage()); + return new ResultData(ErrorCode.MEM_IMPORT_ERR.getCode(), "模板上传失败"); + } + } + } + if (type.equals(EnumImportType.MEMBER.getCode())) { + importTemplateTask.importMemberData(lFile, user, importKey, tenantId); + } + //暂时不区分账单类型,导入时区分 + importTemplateTask.importBillData(lFile, user, importKey, tenantId); + + return new ResultData(Result.SUCCESS, "模板正在导入"); + } + + + @GetMapping("/queryTemplateCount") + @SystemControllerLog(description = "导入数据查询") + public ResultData queryTemplateCount(@RequestParam("type") Integer type) { + String typeStr = EnumImportType.getEnum(type).getMessage(); + String importKey = Constant.importMemPrev + typeStr + "_" + getUser().getId(); + Map entries = stringRedisTemplate.opsForHash().entries(importKey); + logger.info(JSONArray.toJSONString(entries) + ">>>>>>>>>>>>>>>>>>>>>1"); + if (entries.size() < 4) { + entries.clear(); + return new ResultData(Result.SUCCESS, "ok", entries); + } + String allCount = entries.get("allCount").toString(); + String allSuccessCount = entries.get("allSuccessCount").toString(); + String processCount = entries.get("processCount").toString(); + String failCount = entries.get("failCount").toString(); + + if (StringUtils.isNotBlank(failCount) && allCount.equals(failCount)) {//stringRedisTemplate.expire(userId,1,TimeUnit.SECONDS); + logger.info(JSONArray.toJSONString(entries) + ">>>>>>>>>>>>>>>>>>>>>2"); + //完全失败 + stringRedisTemplate.opsForHash().delete(importKey, "allCount"); + stringRedisTemplate.opsForHash().delete(importKey, "allSuccessCount"); + stringRedisTemplate.opsForHash().delete(importKey, "processCount"); + stringRedisTemplate.opsForHash().delete(importKey, "failCount"); + return new ResultData(ErrorCode.MEM_IMPORT_ERR); + } + //导入完成 + if (StringUtils.isNotBlank(allSuccessCount) && allSuccessCount.equals(processCount)) { + ResultData ok = new ResultData(Result.SUCCESS, "ok", entries); + stringRedisTemplate.opsForHash().delete(importKey, "allCount"); + stringRedisTemplate.opsForHash().delete(importKey, "allSuccessCount"); + stringRedisTemplate.opsForHash().delete(importKey, "processCount"); + stringRedisTemplate.opsForHash().delete(importKey, "failCount"); + return ok; + } + return new ResultData(Result.SUCCESS, "查询成功", entries); + } + +} \ No newline at end of file diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/workflow/WxFlowAbleController.java b/mallinkAdmin/src/main/java/com/iformall/controller/workflow/WxFlowAbleController.java index c2e7cbc85..8139bdd32 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/workflow/WxFlowAbleController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/workflow/WxFlowAbleController.java @@ -105,7 +105,6 @@ public class WxFlowAbleController extends BaseController { return new ResultData(pageInfo); } - /** * 审批历史 */ diff --git a/mallinkAdmin/src/main/java/com/iformall/tenant/TenantInfoImpl.java b/mallinkAdmin/src/main/java/com/iformall/tenant/TenantInfoImpl.java index bce6667ae..c8ff737d0 100644 --- a/mallinkAdmin/src/main/java/com/iformall/tenant/TenantInfoImpl.java +++ b/mallinkAdmin/src/main/java/com/iformall/tenant/TenantInfoImpl.java @@ -100,7 +100,9 @@ public class TenantInfoImpl implements TenantInfo { return true; if ("com.iformall.mapper.WxActivityJoinMapper.updateStatus".equals(ms.getId())) return true; - if ("com.iformall.mapper.WxCouponMapper.findPressData".equals(ms.getId())) + if ("com.iformall.mapper.WxCouponMapper.findCouponList".equals(ms.getId())) + return true; + if ("com.iformall.mapper.WxCouponMapper.findCouponListCount".equals(ms.getId())) return true; return false; } diff --git a/mallinkAdmin/src/main/java/com/iformall/utils/UrlCheck.java b/mallinkAdmin/src/main/java/com/iformall/utils/UrlCheck.java index 8a205cec3..ffaf2116b 100644 --- a/mallinkAdmin/src/main/java/com/iformall/utils/UrlCheck.java +++ b/mallinkAdmin/src/main/java/com/iformall/utils/UrlCheck.java @@ -18,7 +18,8 @@ public class UrlCheck { || url.contains("wxMsgCallback") || url.contains("notify") || url.contains("pvlog") - || url.contains("/wxBillDaily/importTemplate"); + || url.contains("/wxBillDaily/importTemplate") + || url.contains("/wxImportTemplate/importTemplate"); } } diff --git a/mallinkAdmin/src/main/resources/application-dev.yml b/mallinkAdmin/src/main/resources/application-dev.yml index b42940e74..e5afcafe0 100644 --- a/mallinkAdmin/src/main/resources/application-dev.yml +++ b/mallinkAdmin/src/main/resources/application-dev.yml @@ -113,8 +113,8 @@ fm: exception: false exception_emails: hupeng@iformall.com,wuguoqiang@iformall.com,gongbiao@iformall.com,luozukai@iformall.com deploy: 1 - open: true - upload_dir: /home/test/server/uploads/ + open: false + upload_dir: /tmp/ ueditor: config: config.json diff --git a/mallinkAdmin/src/main/resources/db/migration/V201906271637__L_ALTER_FLOW.sql b/mallinkAdmin/src/main/resources/db/migration/V201906271637__L_ALTER_FLOW.sql new file mode 100644 index 000000000..d119acde1 --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V201906271637__L_ALTER_FLOW.sql @@ -0,0 +1,2 @@ +ALTER TABLE `wx_coupon` +ADD COLUMN `approval_type` SMALLINT(1) NULL DEFAULT 0 COMMENT '最后一次操作类型'; \ No newline at end of file diff --git a/mallinkAdmin/src/main/resources/db/migration/V201906281054__L_ADD_MENU.sql b/mallinkAdmin/src/main/resources/db/migration/V201906281054__L_ADD_MENU.sql new file mode 100644 index 000000000..9010d7787 --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V201906281054__L_ADD_MENU.sql @@ -0,0 +1,6 @@ +delete from mall_permission where id = 962; + +INSERT INTO `mall_permission` (`id`, `name`, `parent_id`, `available`, `permission`, `resource_type`, `module_color`, `module_color_num`, `url`, `icon`, `version_type`, `sort`) +VALUES (962, '业态分析', 2, 'Y', NULL, 1, NULL, NULL, 'businessList', 'icon-yetaifenxi', 0, 207); + +update mall_sale_type set menus = '[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 50, 101, 102, 103, 104, 105, 106, 107, 201, 202, 203, 204, 205, 206, 211, 212, 221, 222, 251, 301, 302, 303, 304, 305, 306, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 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, 701, 702, 711, 712, 713, 901, 902, 903, 931, 932, 951, 961,962]' where id = 1; diff --git a/mallinkAdmin/src/main/resources/db/migration/V201906241140__L_ADD_FLOW_DATA.sql b/mallinkAdmin/src/main/resources/db/migration/V201906281102__L_ADD_FLOW_DATA.sql similarity index 69% rename from mallinkAdmin/src/main/resources/db/migration/V201906241140__L_ADD_FLOW_DATA.sql rename to mallinkAdmin/src/main/resources/db/migration/V201906281102__L_ADD_FLOW_DATA.sql index 6d0785680..eb2b6d7d8 100644 --- a/mallinkAdmin/src/main/resources/db/migration/V201906241140__L_ADD_FLOW_DATA.sql +++ b/mallinkAdmin/src/main/resources/db/migration/V201906281102__L_ADD_FLOW_DATA.sql @@ -2,87 +2,87 @@ INSERT INTO `wx_flow_config` (`id`, `parent_id`, `tenant_id`, `name`, `type`, `m VALUES (1560252222, 0, '789', '营销审批', 0, 0, '2019-06-11 13:42:18', '2019-06-11 13:42:18', 3), ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560252222, '789', '有价卷审批', 9, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 1), - ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560252222, '789', '卡审批', 0, 0, '2019-06-11 13:42:18', '2019-06-11 13:42:18', 2), - ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560252222, '789', '拼团审批', 9, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 3), - ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560252222, '789', '砍价审批', 9, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 4); + ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560252222, '789', '卡审批', 10, 0, '2019-06-11 13:42:18', '2019-06-11 13:42:18', 2), + ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560252222, '789', '拼团审批', 11, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 3), + ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560252222, '789', '砍价审批', 12, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 4); INSERT INTO `wx_flow_config` (`id`, `parent_id`, `tenant_id`, `name`, `type`, `model_id`, `create_date`, `update_date`, `sort`) VALUES (1560253333, 0, '790', '营销审批', 0, 0, '2019-06-11 13:42:18', '2019-06-11 13:42:18', 3), ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560253333, '790', '有价卷审批', 9, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 1), - ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560253333, '790', '卡审批', 0, 0, '2019-06-11 13:42:18', '2019-06-11 13:42:18', 2), - ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560253333, '790', '拼团审批', 9, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 3), - ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560253333, '790', '砍价审批', 9, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 4); + ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560253333, '790', '卡审批', 10, 0, '2019-06-11 13:42:18', '2019-06-11 13:42:18', 2), + ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560253333, '790', '拼团审批', 11, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 3), + ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560253333, '790', '砍价审批', 12, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 4); INSERT INTO `wx_flow_config` (`id`, `parent_id`, `tenant_id`, `name`, `type`, `model_id`, `create_date`, `update_date`, `sort`) VALUES (1560254444, 0, '1001', '营销审批', 0, 0, '2019-06-11 13:42:18', '2019-06-11 13:42:18', 3), ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560254444, '1001', '有价卷审批', 9, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 1), - ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560254444, '1001', '卡审批', 0, 0, '2019-06-11 13:42:18', '2019-06-11 13:42:18', 2), - ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560254444, '1001', '拼团审批', 9, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 3), - ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560254444, '1001', '砍价审批', 9, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 4); + ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560254444, '1001', '卡审批', 10, 0, '2019-06-11 13:42:18', '2019-06-11 13:42:18', 2), + ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560254444, '1001', '拼团审批', 11, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 3), + ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560254444, '1001', '砍价审批', 12, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 4); INSERT INTO `wx_flow_config` (`id`, `parent_id`, `tenant_id`, `name`, `type`, `model_id`, `create_date`, `update_date`, `sort`) VALUES (1560255555, 0, '1002', '营销审批', 0, 0, '2019-06-11 13:42:18', '2019-06-11 13:42:18', 3), ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560255555, '1002', '有价卷审批', 9, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 1), - ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560255555, '1002', '卡审批', 0, 0, '2019-06-11 13:42:18', '2019-06-11 13:42:18', 2), - ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560255555, '1002', '拼团审批', 9, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 3), - ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560255555, '1002', '砍价审批', 9, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 4); + ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560255555, '1002', '卡审批', 10, 0, '2019-06-11 13:42:18', '2019-06-11 13:42:18', 2), + ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560255555, '1002', '拼团审批', 11, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 3), + ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560255555, '1002', '砍价审批', 12, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 4); INSERT INTO `wx_flow_config` (`id`, `parent_id`, `tenant_id`, `name`, `type`, `model_id`, `create_date`, `update_date`, `sort`) VALUES (1560255556, 0, '1003', '营销审批', 0, 0, '2019-06-11 13:42:18', '2019-06-11 13:42:18', 3), ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560255556, '1003', '有价卷审批', 9, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 1), - ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560255556, '1003', '卡审批', 0, 0, '2019-06-11 13:42:18', '2019-06-11 13:42:18', 2), - ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560255556, '1003', '拼团审批', 9, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 3), - ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560255556, '1003', '砍价审批', 9, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 4); + ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560255556, '1003', '卡审批', 10, 0, '2019-06-11 13:42:18', '2019-06-11 13:42:18', 2), + ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560255556, '1003', '拼团审批', 11, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 3), + ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560255556, '1003', '砍价审批', 12, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 4); INSERT INTO `wx_flow_config` (`id`, `parent_id`, `tenant_id`, `name`, `type`, `model_id`, `create_date`, `update_date`, `sort`) VALUES (1560256666, 0, '1004', '营销审批', 0, 0, '2019-06-11 13:42:18', '2019-06-11 13:42:18', 3), ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560256666, '1004', '有价卷审批', 9, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 1), - ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560256666, '1004', '卡审批', 0, 0, '2019-06-11 13:42:18', '2019-06-11 13:42:18', 2), - ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560256666, '1004', '拼团审批', 9, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 3), - ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560256666, '1004', '砍价审批', 9, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 4); + ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560256666, '1004', '卡审批', 10, 0, '2019-06-11 13:42:18', '2019-06-11 13:42:18', 2), + ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560256666, '1004', '拼团审批', 11, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 3), + ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560256666, '1004', '砍价审批', 12, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 4); INSERT INTO `wx_flow_config` (`id`, `parent_id`, `tenant_id`, `name`, `type`, `model_id`, `create_date`, `update_date`, `sort`) VALUES (1560257777, 0, '1005', '营销审批', 0, 0, '2019-06-11 13:42:18', '2019-06-11 13:42:18', 3), ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560257777, '1005', '有价卷审批', 9, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 1), - ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560257777, '1005', '卡审批', 0, 0, '2019-06-11 13:42:18', '2019-06-11 13:42:18', 2), - ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560257777, '1005', '拼团审批', 9, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 3), - ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560257777, '1005', '砍价审批', 9, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 4); + ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560257777, '1005', '卡审批', 10, 0, '2019-06-11 13:42:18', '2019-06-11 13:42:18', 2), + ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560257777, '1005', '拼团审批', 11, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 3), + ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560257777, '1005', '砍价审批', 12, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 4); INSERT INTO `wx_flow_config` (`id`, `parent_id`, `tenant_id`, `name`, `type`, `model_id`, `create_date`, `update_date`, `sort`) VALUES (1560258888, 0, '1006', '营销审批', 0, 0, '2019-06-11 13:42:18', '2019-06-11 13:42:18', 3), ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560258888, '1006', '有价卷审批', 9, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 1), - ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560258888, '1006', '卡审批', 0, 0, '2019-06-11 13:42:18', '2019-06-11 13:42:18', 2), - ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560258888, '1006', '拼团审批', 9, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 3), - ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560258888, '1006', '砍价审批', 9, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 4); + ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560258888, '1006', '卡审批', 10, 0, '2019-06-11 13:42:18', '2019-06-11 13:42:18', 2), + ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560258888, '1006', '拼团审批', 11, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 3), + ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560258888, '1006', '砍价审批', 12, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 4); INSERT INTO `wx_flow_config` (`id`, `parent_id`, `tenant_id`, `name`, `type`, `model_id`, `create_date`, `update_date`, `sort`) VALUES (1560259999, 0, '1007', '营销审批', 0, 0, '2019-06-11 13:42:18', '2019-06-11 13:42:18', 3), ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560259999, '1007', '有价卷审批', 9, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 1), - ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560259999, '1007', '卡审批', 0, 0, '2019-06-11 13:42:18', '2019-06-11 13:42:18', 2), - ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560259999, '1007', '拼团审批', 9, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 3), - ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560259999, '1007', '砍价审批', 9, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 4); + ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560259999, '1007', '卡审批', 10, 0, '2019-06-11 13:42:18', '2019-06-11 13:42:18', 2), + ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560259999, '1007', '拼团审批', 11, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 3), + ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560259999, '1007', '砍价审批', 12, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 4); INSERT INTO `wx_flow_config` (`id`, `parent_id`, `tenant_id`, `name`, `type`, `model_id`, `create_date`, `update_date`, `sort`) VALUES (1560260000, 0, '1008', '营销审批', 0, 0, '2019-06-11 13:42:18', '2019-06-11 13:42:18', 3), ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560260000, '1008', '有价卷审批', 9, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 1), - ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560260000, '1008', '卡审批', 0, 0, '2019-06-11 13:42:18', '2019-06-11 13:42:18', 2), - ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560260000, '1008', '拼团审批', 9, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 3), - ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560260000, '1008', '砍价审批', 9, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 4); + ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560260000, '1008', '卡审批', 10, 0, '2019-06-11 13:42:18', '2019-06-11 13:42:18', 2), + ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560260000, '1008', '拼团审批', 11, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 3), + ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560260000, '1008', '砍价审批', 12, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 4); INSERT INTO `wx_flow_config` (`id`, `parent_id`, `tenant_id`, `name`, `type`, `model_id`, `create_date`, `update_date`, `sort`) VALUES (1560260001, 0, '1009', '营销审批', 0, 0, '2019-06-11 13:42:18', '2019-06-11 13:42:18', 3), ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560260001, '1009', '有价卷审批', 9, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 1), - ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560260001, '1009', '卡审批', 0, 0, '2019-06-11 13:42:18', '2019-06-11 13:42:18', 2), - ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560260001, '1009', '拼团审批', 9, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 3), - ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560260001, '1009', '砍价审批', 9, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 4); + ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560260001, '1009', '卡审批', 10, 0, '2019-06-11 13:42:18', '2019-06-11 13:42:18', 2), + ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560260001, '1009', '拼团审批', 11, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 3), + ((select unix_timestamp(now()) + CEILING(RAND()*90000+10000)), 1560260001, '1009', '砍价审批', 12, 0, '2019-06-11 14:02:42', '2019-06-21 10:34:16', 4); diff --git a/mallinkAdmin/src/main/resources/db/migration/V201906281530__ADD_WX_MSG_LIMIT.sql b/mallinkAdmin/src/main/resources/db/migration/V201906281530__ADD_WX_MSG_LIMIT.sql new file mode 100644 index 000000000..903c633b9 --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V201906281530__ADD_WX_MSG_LIMIT.sql @@ -0,0 +1,10 @@ +drop table if exists `wx_msg_limit`; +CREATE TABLE `wx_msg_limit` ( + `id` bigint(20) NOT NULL COMMENT '主键ID', + `tenant_id` varchar(10) NOT NULL COMMENT '租户id', + `type` tinyint(1) DEFAULT '0' COMMENT '1: 短信-验证码(24小时10条)2:短信-营销(24小时3条) 10:prepay_id(7天内3次), 12:form_id(7天内1次), 13.open_id for 小程序统一消息限制(2天内1次),14.open_id for 公众号模板消息限制(2天内1次)', + `limit_id` varchar(64) DEFAULT NULL COMMENT '限制ID', + `limit_num` smallint(2) DEFAULT '0' COMMENT '限制次数', + `limit_date` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '限制时间', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC; \ No newline at end of file diff --git a/mallinkAdmin/src/main/resources/db/migration/V201906291010__DROP_COUPON_PRESS_DATA.sql b/mallinkAdmin/src/main/resources/db/migration/V201906291010__DROP_COUPON_PRESS_DATA.sql new file mode 100644 index 000000000..06414e281 --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V201906291010__DROP_COUPON_PRESS_DATA.sql @@ -0,0 +1 @@ +DROP TABLE `wx_coupon_press_data`; \ No newline at end of file diff --git a/mallinkAdmin/src/main/resources/db/migration/V201907021649__L_ALTER_MER.sql b/mallinkAdmin/src/main/resources/db/migration/V201907021649__L_ALTER_MER.sql new file mode 100644 index 000000000..30e2329b3 --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V201907021649__L_ALTER_MER.sql @@ -0,0 +1,2 @@ +ALTER TABLE `wx_merchant` +ADD COLUMN `link_line_phone` varchar(100) NULL DEFAULT NULL COMMENT '客服电话'; \ No newline at end of file diff --git a/mallinkAdmin/src/main/resources/db/migration/V201907030811__CHANGE_PUSH_LIMIT.sql b/mallinkAdmin/src/main/resources/db/migration/V201907030811__CHANGE_PUSH_LIMIT.sql new file mode 100644 index 000000000..25bdadcd8 --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V201907030811__CHANGE_PUSH_LIMIT.sql @@ -0,0 +1,4 @@ +ALTER TABLE `push_limit` +ADD COLUMN `enable` TINYINT(2) NULL DEFAULT 0 COMMENT '是否启用,0:Enable,1:Disable'; + +Update `push_limit` set `enable` = 0; \ No newline at end of file diff --git a/mallinkAdmin/src/main/resources/db/migration/V201907031141__G_ALTER_RENT_PROPERTY.sql b/mallinkAdmin/src/main/resources/db/migration/V201907031141__G_ALTER_RENT_PROPERTY.sql new file mode 100644 index 000000000..cc34c826a --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V201907031141__G_ALTER_RENT_PROPERTY.sql @@ -0,0 +1,17 @@ +alter table wx_bill_rent add index t_p(tenant_id,is_preview); +alter table wx_bill_rent add index r_m(rent_contract_id,merchant_id); +alter table wx_bill_rent add index st(rent_shop_type); +alter table wx_bill_rent add index sta(`status`); + +alter table wx_bill_rent_deposit add index r(rent_contract_id); +alter table wx_bill_rent_deposit add index r_m(rent_contract_id,merchant_id); +alter table wx_bill_rent_deposit add index sta(`status`); + +alter table wx_bill_property add index t_p(tenant_id,is_preview); +alter table wx_bill_property add index p_m(property_contract_id,merchant_id); +alter table wx_bill_property add index st(rent_shop_type); +alter table wx_bill_property add index sta(`status`); + +alter table wx_bill_property_deposit add index p(property_contract_id); +alter table wx_bill_property_deposit add index p_m(property_contract_id,merchant_id); +alter table wx_bill_property_deposit add index sta(`status`); \ No newline at end of file diff --git a/mallinkAdmin/src/main/resources/db/migration/V201907031307__G_ALTER_BILL_DAILY_OTHER_DEPOSIT.sql b/mallinkAdmin/src/main/resources/db/migration/V201907031307__G_ALTER_BILL_DAILY_OTHER_DEPOSIT.sql new file mode 100644 index 000000000..72b9ea546 --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V201907031307__G_ALTER_BILL_DAILY_OTHER_DEPOSIT.sql @@ -0,0 +1,3 @@ +alter table wx_bill_daily add index t_t_s(tenant_id,type,`status`); +alter table wx_bill_other add index t_s(tenant_id,`status`); +alter table wx_bill_other_deposit add index t_s(tenant_id,`status`); diff --git a/mallinkAdmin/src/main/resources/db/migration/V201907031432__G_ALTER_BILL_RENT_PROPERTY.sql b/mallinkAdmin/src/main/resources/db/migration/V201907031432__G_ALTER_BILL_RENT_PROPERTY.sql new file mode 100644 index 000000000..63c5a15b5 --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V201907031432__G_ALTER_BILL_RENT_PROPERTY.sql @@ -0,0 +1,6 @@ +alter table wx_bill_rent add index m(merchant_id); +alter table wx_bill_rent add index s_e(starttime,endtime); + +alter table wx_bill_property add index m(merchant_id); +alter table wx_bill_property add index s_e(starttime,endtime); + diff --git a/mallinkAdmin/src/main/resources/db/migration/V201907041150__G_ALTER_MERCHANT.sql b/mallinkAdmin/src/main/resources/db/migration/V201907041150__G_ALTER_MERCHANT.sql new file mode 100644 index 000000000..2209339bb --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V201907041150__G_ALTER_MERCHANT.sql @@ -0,0 +1,4 @@ +alter table wx_merchant add index t_b_s_p_t(tenant_id,business_id,`status`,is_public,top_time); +alter table wx_merchant add index t_s_i_t(tenant_id,`status`,is_public,top_time); +alter table wx_shop add index t_d(tenant_id,is_del); +alter table wx_merchant_shop add index d(is_del); \ No newline at end of file diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxCreditHistoryController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxCreditHistoryController.java index 2fc49f991..28947e1bd 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxCreditHistoryController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxCreditHistoryController.java @@ -48,7 +48,7 @@ public class WxCreditHistoryController extends BaseController{ log.debug("[" + getIpAddr() + "] WxCreditHistoryController::list"); if (null == wxCreditHistory) wxCreditHistory = new WxCreditHistory(); wxCreditHistory.setCUserId(getUserId()); - wxCreditHistory.setSortColumns(WxCreditHistory.Field.Id_DESC); + wxCreditHistory.setSortColumns(WxCreditHistory.Field.CreateDate_DESC,WxCreditHistory.Field.Id_DESC); final PageInfo page = wxCreditHistoryService.listAsPage(wxCreditHistory, pageNum, pageSize); return new ResultData(page); } diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java index 8102b3f55..123436a99 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java @@ -111,13 +111,13 @@ public class WxOrderController extends BaseController { int min = jo.getIntValue("min"); if (max!=0 && min ==0 && user.getScore() > max) { - return new ResultData(ErrorCode.COUPON_ONLY_FOR_NEW_MEMBER); + return new ResultData(ErrorCode.COUPON_SCORE_NOT_IN_RANGE); } if (max==0 && min !=0 && user.getScore() < min) { - return new ResultData(ErrorCode.COUPON_ONLY_FOR_NEW_MEMBER); + return new ResultData(ErrorCode.COUPON_SCORE_NOT_IN_RANGE); } if (max!=0 && min !=0 && (user.getScore() < min || user.getScore() > max)) { - return new ResultData(ErrorCode.COUPON_ONLY_FOR_NEW_MEMBER); + return new ResultData(ErrorCode.COUPON_SCORE_NOT_IN_RANGE); } } } @@ -270,21 +270,20 @@ public class WxOrderController extends BaseController { @ApiOperation(value = "根据orderId查询接口", notes = "{\"orderId\":\"string\"}") @GetMapping("/findById") - public ResultData findById(@RequestBody Map paramMap) { - String orderIdStr = paramMap.get("orderId"); - if (StringUtils.isBlank(orderIdStr)) { - return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "orderId不能为空"); - } - Long orderId = 0L; + @ApiImplicitParams({ + @ApiImplicitParam(name = "orderId", value = "订单id", dataType = "String", paramType = "query", required = true) + }) + public ResultData findById(String orderId) { + Long id = 0L; try { - orderId = Long.valueOf(orderIdStr); + id = Long.valueOf(orderId); } catch (NumberFormatException e) { logger.error("parse orderId failed"); return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "订单ID转换异常"); } WxOrder order = null; try { - order = wxOrderService.getById(orderId); + order = wxOrderService.getById(id); if (order != null) { return new ResultData(Result.SUCCESS, "查询成功", order); } else { @@ -297,28 +296,27 @@ public class WxOrderController extends BaseController { } @ApiOperation(value = "获取未支付订单", notes = "{\"couponId\":\"string\"}") - @GetMapping("/getUnPaidOrder") - public ResultData getUnPaidOrder(@RequestBody Map paramMap) { - String couponIdStr = paramMap.get("couponId"); - if (StringUtils.isBlank(couponIdStr)) { - return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "couponId不能为空"); - } - Long couponId = 0L; + @GetMapping("getUnPaidOrder") + @ApiImplicitParams({ + @ApiImplicitParam(name = "couponId", value = "券id", dataType = "String", paramType = "query", required = true) + }) + public ResultData getUnPaidOrder(String couponId) { + Long id = 0L; try { - couponId = Long.valueOf(couponIdStr); + id = Long.valueOf(couponId); } catch (NumberFormatException e) { logger.error("parse couponId failed"); return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "券ID转换异常"); } WxCoupon wxCoupon = null; try { - wxCoupon = wxCouponService.getById(couponId); + wxCoupon = wxCouponService.getById(id); } catch (Exception e) { - logger.error("券ID获取券信息失败, couponId: " + couponIdStr); + logger.error("券ID获取券信息失败, couponId: " + couponId); return new ResultData(ErrorCode.COUPON_IS_EMPTY); } if(wxCoupon == null) { - logger.error("券ID获取券信息失败, couponId: " + couponIdStr); + logger.error("券ID获取券信息失败, couponId: " + couponId); return new ResultData(ErrorCode.COUPON_IS_EMPTY); } diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java index d22321fd0..af4e7541b 100755 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java @@ -18,7 +18,6 @@ import com.iformall.enums.EnumAssignTagsTrigger; import com.iformall.enums.EnumLevelConfigDiscountStatus; import com.iformall.enums.EnumScoreType; import com.iformall.enums.EnumUserType; -import com.iformall.mapper.WxCUserBasicInfoMapper; import com.iformall.service.*; import com.iformall.service.wechat.FmOpenService; import com.iformall.utils.Constant; @@ -513,21 +512,18 @@ public class WxUserGrantController extends BaseController { user.setCountryCode(phoneNoInfo.getCountryCode()); if (isFirstPhone) { //检查是否存在会员信息 如果有 赋值积分 - List basicInfoList = wxCUserBasicInfoService.findInfoByPhone(user.getTenantId(), user.getPhone()); - if (basicInfoList != null && !basicInfoList.isEmpty()) { - WxCUserBasicInfo basicInfo = basicInfoList.get(0); - if(basicInfo != null) { - int credit = user.getCredit() == null ? 0 : user.getCredit(); - int score = user.getScore() == null ? 0 : user.getScore(); - int memScore = basicInfo.getPoins() == null ? 0 : basicInfo.getPoins(); - int memCredit = basicInfo.getCredit() == null ? 0 : basicInfo.getCredit(); - if (memCredit > 0) { - user.setCredit(memCredit); - wxCUserService.addCredit(user, EnumScoreType.MEM_IMPORT); - } - user.setCredit(memCredit + credit); - user.setScore(memScore + score); - } + WxCUserBasicInfo basicInfo = wxCUserBasicInfoService.findInfoByPhone(user.getTenantId(), user.getPhone()); + if (basicInfo != null ) { + int credit = user.getCredit() == null ? 0 : user.getCredit(); + int score = user.getScore() == null ? 0 : user.getScore(); + int memScore = basicInfo.getPoins() == null ? 0 : basicInfo.getPoins(); + int memCredit = basicInfo.getCredit() == null ? 0 : basicInfo.getCredit(); + if (memCredit > 0) { + user.setCredit(memCredit); + wxCUserService.addCredit(user, EnumScoreType.MEM_IMPORT); + } + user.setCredit(memCredit + credit); + user.setScore(memScore + score); } } wxCUserService.saveOrUpdate(user); diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/ActivitySchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/ActivitySchedule.java index 4c26ab22f..ef778a5b0 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/ActivitySchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/ActivitySchedule.java @@ -97,6 +97,7 @@ public class ActivitySchedule { WxActivity activity = new WxActivity(); activity.setStatus(EnumActivityStatus.STATUS_THROW_IN.getCode()); activity.setIsExpired(EnumActivityExpired.YES.getCode()); + activity.setUpdateTime(new Date()); wxActivityMapper.activityExipred(activity); } @@ -108,6 +109,7 @@ public class ActivitySchedule { logger.info("活动结束任务"); WxActivity activity = new WxActivity(); activity.setStatus(EnumActivityStatus.STATUS_TAKE_OFFF.getCode()); + activity.setUpdateTime(new Date()); wxActivityMapper.activityCompletion(activity); List activityList = new ArrayList(); //宣传页下线 diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java index 1a0d7a1b9..d8e03b841 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java @@ -82,7 +82,7 @@ public class OrderExpiringSchedule { List orderPresss = wxOrderMapper.findListOfCompleteUnPaidPressOrderByDate(dateMap); orderPresss.stream().forEach( o -> { try { - orderPressExpired(o); + orderPressExpired(o, true); } catch (Exception e) { logger.error("砍价券支付过期失败" + e.getMessage()); } @@ -93,7 +93,7 @@ public class OrderExpiringSchedule { orderPresss = wxOrderMapper.findListOfUnpaidPressOrderByDate(dateMap); orderPresss.stream().forEach( o -> { try { - orderPressExpired(o); + orderPressExpired(o, false); } catch (Exception e) { logger.error("砍价券过期失败" +e.getMessage()); } @@ -165,7 +165,7 @@ public class OrderExpiringSchedule { } @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) - public void orderPressExpired(WxOrder order) { + public void orderPressExpired(WxOrder order, boolean payExpired) { Date curDate = new Date(); WxOrder updateOrder = new WxOrder(); updateOrder.setId(order.getId()); @@ -176,7 +176,11 @@ public class OrderExpiringSchedule { // 库存退回 wxOrderService.stockBack(order); - logger.info("砍价订单: " + order.getId() + " create at " + order.getCreateDate() + " expired at " + curDate); + if(payExpired) { + logger.info("砍价订单(支付过期): " + order.getId() + ", tenantId" + order.getTenantId() + " create at " + order.getCreateDate() + ", update at " + order.getUpdateDate() + " expired at " + curDate); + } else { + logger.info("砍价订单(过期): " + order.getId() + ", tenantId" + order.getTenantId() + " create at " + order.getCreateDate() + " expired at " + curDate); + } } diff --git a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java index 7ef2fb294..92f62bf62 100644 --- a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java +++ b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java @@ -86,7 +86,7 @@ public enum ErrorCode{ MERCHANT_INFO_NOT_EQUAL(2012, "商户信息不对应"), MERCHANT_INFO_NOT_VALID(2013, "商户信息禁用"), MERCHANT_REPORT_DATE_NOT_VALID(999, "上报日期大于当天"), - + MERCHANT_NAME_IS_FOUND(2014, "商户名称已存在"), /** * 券 */ @@ -113,6 +113,7 @@ public enum ErrorCode{ COUPON_ONLY_FOR_NEW_MEMBER(2038, "您已参加过新会员活动"), COUPON_SCORE_NOT_IN_RANGE(2038, "您的成长值/等级与要求不符"), COUPON_STOCK_NO_EQUAL_ERR(2039, "券库存设置要保证同增同减"), + COUPON_STOCK_ENDTIME_ERR(2043, "抱歉,有效期截止时间只能增加不能减少!"), PUSH_LIMIT_UP_TO_1DAYLIMIT(2040, "此用户一天内发券到达疲劳度限制"), PUSH_LIMIT_UP_TO_COUPONLIMIT(2041, "此用户发此券到达疲劳度限制"), @@ -355,7 +356,7 @@ public enum ErrorCode{ BILL_UPDATE_FAILED(21001,"账单更新失败"), BILL_OWE_ZERO(21002,"账单欠缴为0"), BILL_PAY_ERROR(21003,"账单支付错误"), - + BILL_IS_FOUND(21004, "创建的账单已存在"), /** * 商铺 * */ @@ -407,6 +408,7 @@ public enum ErrorCode{ DEVICE_ALREADY_EXIST(26001, "设备已经存在"), DEVICE_QRCODE_GET_FAILED(26002, "微信二维码生成失败,请重试"), DEVICE_REACHED_MAX_NUMBER(26003, "设备已经达到最大数量"), + DEVICE_HAS_BEEN_BOUND(26004, "设备已经绑定到其他商户"), /** * 消息组件 */ diff --git a/mallinkService/src/main/java/com/iformall/domain/po/PushLimit.java b/mallinkService/src/main/java/com/iformall/domain/po/PushLimit.java index ec0434f29..fb2377951 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/PushLimit.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/PushLimit.java @@ -22,7 +22,7 @@ public class PushLimit implements Serializable { @Transient protected String sortColumns; - @io.swagger.annotations.ApiModelProperty(value="",name="tenantId") + @io.swagger.annotations.ApiModelProperty(value="租户ID",name="tenantId") private String tenantId; @io.swagger.annotations.ApiModelProperty(value="每人每天可接收短信数",name="msgAmount") private Integer msgAmount; @@ -34,10 +34,12 @@ public class PushLimit implements Serializable { private String timeStart; @io.swagger.annotations.ApiModelProperty(value="发券,发短信结束时间",name="timeEnd") private String timeEnd; - @io.swagger.annotations.ApiModelProperty(value="",name="createTime") + @io.swagger.annotations.ApiModelProperty(value="创建时间",name="createTime") private Date createTime; - @io.swagger.annotations.ApiModelProperty(value="",name="updateTime") + @io.swagger.annotations.ApiModelProperty(value="更新时间",name="updateTime") private Date updateTime; + @io.swagger.annotations.ApiModelProperty(value="是否启用,0:Enable,1:Disable",name="enable") + private Integer enable; public static enum Field { diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxActivityJoin.java b/mallinkService/src/main/java/com/iformall/domain/po/WxActivityJoin.java index 83a42f24e..1fa7b0ea0 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxActivityJoin.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxActivityJoin.java @@ -83,7 +83,7 @@ public class WxActivityJoin extends BaseEntity { private Integer sendMsg; @io.swagger.annotations.ApiModelProperty(value = "图片", name = "imgUrl") - private String img_url; + private String imgUrl; @Transient @io.swagger.annotations.ApiModelProperty(value = "状态", name = "statusStr") diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxBillDaily.java b/mallinkService/src/main/java/com/iformall/domain/po/WxBillDaily.java index 56ea9641e..191338bbd 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxBillDaily.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxBillDaily.java @@ -13,6 +13,7 @@ import javax.validation.constraints.NotNull; import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Map; /** * @author gongbiao @@ -37,7 +38,7 @@ public class WxBillDaily extends BaseEntity{ @Transient private String merchantName; - @Excel(name = "费用类型*", replace = {"水费_1", "电费_2"}, width = 10, orderNum = "2") + @Excel(name = "费用类型*", replace = {"水费_1", "电费_2"}, width = 20, orderNum = "2") @NotNull @io.swagger.annotations.ApiModelProperty(value="账单类型",name="type") private Integer type; @@ -112,6 +113,10 @@ public class WxBillDaily extends BaseEntity{ @SortColumn(column = "shopNumber") private String shopNumber; + @Transient + private List> shops; + + public static enum Field { Id_ASC("`id` ASC"),Id_DESC("`id` DESC") diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxBillOther.java b/mallinkService/src/main/java/com/iformall/domain/po/WxBillOther.java index 8906395ae..c55b05cdf 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxBillOther.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxBillOther.java @@ -1,5 +1,6 @@ package com.iformall.domain.po; +import cn.afterturn.easypoi.excel.annotation.Excel; import com.iformall.common.SortColumn; import lombok.Data; import lombok.EqualsAndHashCode; @@ -8,10 +9,11 @@ import lombok.ToString; import javax.persistence.Id; import javax.persistence.Table; import javax.persistence.Transient; -import java.io.Serializable; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Map; /** * @author gongbiao @@ -35,12 +37,15 @@ public class WxBillOther extends BaseEntity { return super.getSortColumns(); } + @Excel(name = "商户名称", width = 20, orderNum = "2") @Transient private String merchantName; + @Excel(name = "其他费用名称", width = 20, orderNum = "3") @io.swagger.annotations.ApiModelProperty(value="账单名称",name="name") private String name; + @Excel(name = "备注", orderNum = "11", width = 20) @io.swagger.annotations.ApiModelProperty(value="账单备注",name="comments") private String comments; @@ -49,21 +54,29 @@ public class WxBillOther extends BaseEntity { private Long receivePay; @io.swagger.annotations.ApiModelProperty(value="实收金额",name="pay") private Long pay; + + @Excel(name = "缴款截止日期", orderNum = "7", width = 20, format = "yyyy-MM-dd") @SortColumn(column = "receiveDate") - @io.swagger.annotations.ApiModelProperty(value="截止收款日期",name="receiveDate") + @io.swagger.annotations.ApiModelProperty(value="截止收款日期",name="receiveDate") private Date receiveDate; + + @Excel(name = "收款日期", orderNum = "8", width = 20, format = "yyyy-MM-dd") @SortColumn(column = "payDate") - @io.swagger.annotations.ApiModelProperty(value="到账日期",name="payDate") + @io.swagger.annotations.ApiModelProperty(value="到账日期",name="payDate") private Date payDate; + @io.swagger.annotations.ApiModelProperty(value="创建时间",name="createtime") private Date createtime; + + @Excel(name = "逾期(天)", orderNum = "10", width = 20) @SortColumn(column = "expiredDay") - @io.swagger.annotations.ApiModelProperty(value="逾期天数",name="expiredDay") + @io.swagger.annotations.ApiModelProperty(value="逾期天数",name="expiredDay") private Long expiredDay; @io.swagger.annotations.ApiModelProperty(value="租户",name="tenantId") private String tenantId; @io.swagger.annotations.ApiModelProperty(value="欠缴",name="owe") private Long owe; + @Excel(name = "状态", replace = {"欠缴_1", "待缴_2", "已结清_3", "未到期_4", "已退还_5", "失效_6"}, width = 20, orderNum = "9") @io.swagger.annotations.ApiModelProperty(value = "账单状态1欠缴2待缴3已结清4未到期", name = "status") private Integer status; @io.swagger.annotations.ApiModelProperty(value="删除 是1否0",name="isDel") @@ -99,10 +112,36 @@ public class WxBillOther extends BaseEntity { @SortColumn(column = "period") private Integer period; + @Excel(name = "商铺号", width = 20, orderNum = "1") @Transient @SortColumn(column = "shopNumber") private String shopNumber; + @Transient + @Excel(name = "实际应收金额(元)", orderNum = "4", width = 20) + private String receivePayStr; + @Transient + @Excel(name = "实收金额(元)", orderNum = "5", width = 20) + private String payStr; + @Transient + @Excel(name = "欠缴金额(元)", orderNum = "6", width = 20) + private String oweStr; + + public String getReceivePayStr() { + return new BigDecimal(receivePay == null ? 0 : receivePay).divide(new BigDecimal(100)).toPlainString(); + } + + public String getPayStr() { + return new BigDecimal(pay == null ? 0 : pay).divide(new BigDecimal(100)).toPlainString(); + } + + public String getOweStr() { + return new BigDecimal(owe == null ? 0 : owe).divide(new BigDecimal(100)).toPlainString(); + } + + @Transient + private List> shops; + public static enum Field { Id_ASC("`id` ASC"),Id_DESC("`id` DESC") diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxBillOtherDeposit.java b/mallinkService/src/main/java/com/iformall/domain/po/WxBillOtherDeposit.java index 7ec2c25ed..5883d01b9 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxBillOtherDeposit.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxBillOtherDeposit.java @@ -1,5 +1,6 @@ package com.iformall.domain.po; +import cn.afterturn.easypoi.excel.annotation.Excel; import com.iformall.common.SortColumn; import lombok.Data; import lombok.EqualsAndHashCode; @@ -8,9 +9,11 @@ import lombok.ToString; import javax.persistence.Id; import javax.persistence.Table; import javax.persistence.Transient; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Map; /** * @author gongbiao @@ -34,12 +37,14 @@ public class WxBillOtherDeposit extends BaseEntity { return super.getSortColumns(); } + @Excel(name = "商户名称", width = 20, orderNum = "2") @Transient private String merchantName; @io.swagger.annotations.ApiModelProperty(value = "账单名称", name = "name") private String name; + @Excel(name = "押金描述", width = 20, orderNum = "3") @io.swagger.annotations.ApiModelProperty(value = "账单备注", name = "comments") private String comments; @@ -54,6 +59,7 @@ public class WxBillOtherDeposit extends BaseEntity { @io.swagger.annotations.ApiModelProperty(value = "截止收款日期", name = "receiveDate") private Date receiveDate; + @Excel(name = "收款日期", orderNum = "6", width = 20, format = "yyyy-MM-dd") @SortColumn(column = "payDate") @io.swagger.annotations.ApiModelProperty(value = "到账日期", name = "payDate") private Date payDate; @@ -70,6 +76,7 @@ public class WxBillOtherDeposit extends BaseEntity { @io.swagger.annotations.ApiModelProperty(value = "欠缴", name = "owe") private Long owe; + @Excel(name = "状态", replace = {"欠缴_1", "待缴_2", "已结清_3", "未到期_4", "已退还_5", "失效_6"}, width = 20, orderNum = "8") @io.swagger.annotations.ApiModelProperty(value = "账单状态1欠缴2待缴3已结清4未到期5已退还", name = "status") private Integer status; @io.swagger.annotations.ApiModelProperty(value = "删除 是1否0", name = "isDel") @@ -108,10 +115,41 @@ public class WxBillOtherDeposit extends BaseEntity { @SortColumn(column = "period") private Integer period; + @Excel(name = "商铺号", width = 20, orderNum = "1") @Transient @SortColumn(column = "shopNumber") private String shopNumber; + + @Transient + @Excel(name = "实际应收金额(元)", orderNum = "4", width = 20) + private String receivePayStr; + @Transient + @Excel(name = "实收金额(元)", orderNum = "5", width = 20) + private String payStr; + + public String getReceivePayStr() { + return new BigDecimal(receivePay == null ? 0 : receivePay).divide(new BigDecimal(100)).toPlainString(); + } + + public String getPayStr() { + return new BigDecimal(pay == null ? 0 : pay).divide(new BigDecimal(100)).toPlainString(); + } + + public Date getReturnDate() { + if (status == null) { + return null; + } + return status == 5 ? updatetime : null; + } + + @Transient + @Excel(name = "退款日", orderNum = "7", width = 20, format = "yyyy-MM-dd") + private Date returnDate; + @Transient + private List> shops; + + public static enum Field { Id_ASC("`id` ASC"), Id_DESC("`id` DESC") , ReceivePay_ASC("`receivePay` ASC"), ReceivePay_DESC("`receivePay` DESC") diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxBillProperty.java b/mallinkService/src/main/java/com/iformall/domain/po/WxBillProperty.java index 16de7dd9f..d3104113f 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxBillProperty.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxBillProperty.java @@ -1,5 +1,6 @@ package com.iformall.domain.po; +import cn.afterturn.easypoi.excel.annotation.Excel; import com.iformall.common.SortColumn; import lombok.Data; import lombok.EqualsAndHashCode; @@ -8,6 +9,7 @@ import lombok.ToString; import javax.persistence.Id; import javax.persistence.Table; import javax.persistence.Transient; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -34,6 +36,7 @@ public class WxBillProperty extends BaseEntity { return super.getSortColumns(); } + @Excel(name = "商户名称", width = 20, orderNum = "2") @Transient private String merchantName; @@ -43,27 +46,58 @@ public class WxBillProperty extends BaseEntity { @SortColumn(column = "receivePay") @io.swagger.annotations.ApiModelProperty(value="实际应收金额",name="receivePay") private Long receivePay; + + public String getReceivePayStr() { + return new BigDecimal(receivePay == null ? 0 : receivePay).divide(new BigDecimal(100)).toPlainString(); + } + + @Excel(name = "本期账款(元)", width = 20, orderNum = "6") + @Transient + private String receivePayStr; + + + public String getPayStr() { + return new BigDecimal(pay == null ? 0 : pay).divide(new BigDecimal(100)).toPlainString(); + } + + @Excel(name = "实收账款(元)", width = 20, orderNum = "7") + @Transient + private String payStr; + @io.swagger.annotations.ApiModelProperty(value="实收金额",name="pay") private Long pay; + @Excel(name = "缴款截止日期", format = "yyyy-MM-dd", width = 20, orderNum = "10") @SortColumn(column = "receiveDate") - @io.swagger.annotations.ApiModelProperty(value="收款日期",name="receiveDate") + @io.swagger.annotations.ApiModelProperty(value="收款日期",name="receiveDate") private Date receiveDate; + @Excel(name = "收款日期", format = "yyyy-MM-dd", width = 20, orderNum = "11") @SortColumn(column = "payDate") - @io.swagger.annotations.ApiModelProperty(value="到账日期",name="payDate") + @io.swagger.annotations.ApiModelProperty(value="到账日期",name="payDate") private Date payDate; @io.swagger.annotations.ApiModelProperty(value="创建时间",name="createtime") private Date createtime; + @Excel(name = "逾期(天) ", width = 20, orderNum = "13") @SortColumn(column = "expiredDay") - @io.swagger.annotations.ApiModelProperty(value="逾期天数",name="expiredDay") + @io.swagger.annotations.ApiModelProperty(value="逾期天数",name="expiredDay") private Long expiredDay; @io.swagger.annotations.ApiModelProperty(value="租户",name="tenantId") private String tenantId; @io.swagger.annotations.ApiModelProperty(value="欠缴",name="owe") private Long owe; + + public String getOweStr() { + return new BigDecimal(owe == null ? 0 : owe).divide(new BigDecimal(100)).toPlainString(); + } + + @Excel(name = "欠缴金额(元)", width = 20, orderNum = "9") + @Transient + private String oweStr; + + @Excel(name = "状态", replace = {"欠缴_1", "待缴_2", "已结清_3", "未到期_4", "已退还_5", "失效_6"}, width = 20, orderNum = "8") @io.swagger.annotations.ApiModelProperty(value = "账单状态1欠缴2待缴3已结清4未到期", name = "status") private Integer status; @io.swagger.annotations.ApiModelProperty(value="是否删除 是1否0 未到期不显示",name="isDel") @@ -85,9 +119,11 @@ public class WxBillProperty extends BaseEntity { @io.swagger.annotations.ApiModelProperty(value="更新时间",name="updatetime") private Date updatetime; + @Excel(name = "周期开始时间", format = "yyyy-MM-dd", width = 20, orderNum = "4") @io.swagger.annotations.ApiModelProperty(value="开始时间",name="starttime") private Date starttime; + @Excel(name = "周期结束时间", format = "yyyy-MM-dd", width = 20, orderNum = "5") @io.swagger.annotations.ApiModelProperty(value="结束时间",name="endtime") private Date endtime; @@ -107,6 +143,14 @@ public class WxBillProperty extends BaseEntity { @io.swagger.annotations.ApiModelProperty(value = "滞纳金总额", name = "latePayPrice") private Long latePayPrice; + public String getLatePayPriceStr() { + return new BigDecimal(latePayPrice == null ? 0 : latePayPrice).divide(new BigDecimal(100)).toPlainString(); + } + + @Excel(name = "滞纳金(元)", width = 20, orderNum = "12") + @Transient + private String latePayPriceStr; + @io.swagger.annotations.ApiModelProperty(value = "账期", name = "period") private Integer period; @@ -128,12 +172,17 @@ public class WxBillProperty extends BaseEntity { @Transient @SortColumn(column = "allPeriod") private Integer allPeriod; + + @Excel(name = "商铺号", width = 20, orderNum = "1") @Transient @SortColumn(column = "shopNumber") private String shopNumber; @Transient private Integer depositStatus; + @Transient + private Long deposit; + public static enum Field { Id_ASC("`id` ASC"),Id_DESC("`id` DESC") 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 c536a9ee1..17b944a47 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxBillRent.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxBillRent.java @@ -1,5 +1,6 @@ package com.iformall.domain.po; +import cn.afterturn.easypoi.excel.annotation.Excel; import com.iformall.common.SortColumn; import lombok.Data; import lombok.EqualsAndHashCode; @@ -8,6 +9,7 @@ import lombok.ToString; import javax.persistence.Id; import javax.persistence.Table; import javax.persistence.Transient; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -33,6 +35,8 @@ public class WxBillRent extends BaseEntity { super.setSortColumns(this.sortColumns); return super.getSortColumns(); } + + @Excel(name = "商户名称", width = 20, orderNum = "2") @Transient private String merchantName; @@ -42,22 +46,42 @@ public class WxBillRent extends BaseEntity { @SortColumn(column = "receivePay") @io.swagger.annotations.ApiModelProperty(value="实际应收金额",name="receivePay") private Long receivePay; + + public String getReceivePayStr() { + return new BigDecimal(receivePay == null ? 0 : receivePay).divide(new BigDecimal(100)).toPlainString(); + } + + @Excel(name = "本期账款(元)", width = 20, orderNum = "6") + @Transient + private String receivePayStr; + + public String getPayStr() { + return new BigDecimal(pay == null ? 0 : pay).divide(new BigDecimal(100)).toPlainString(); + } + + @Excel(name = "实收账款(元)", width = 20, orderNum = "7") + @Transient + private String payStr; + @io.swagger.annotations.ApiModelProperty(value="实收金额",name="pay") private Long pay; + @Excel(name = "缴款截止日期", format = "yyyy-MM-dd", width = 20, orderNum = "10") @SortColumn(column = "receiveDate") - @io.swagger.annotations.ApiModelProperty(value="收款日期",name="receiveDate") + @io.swagger.annotations.ApiModelProperty(value="收款日期",name="receiveDate") private Date receiveDate; + @Excel(name = "收款日期", format = "yyyy-MM-dd", width = 20, orderNum = "11") @SortColumn(column = "payDate") - @io.swagger.annotations.ApiModelProperty(value="到账日期",name="payDate") + @io.swagger.annotations.ApiModelProperty(value="到账日期",name="payDate") private Date payDate; @io.swagger.annotations.ApiModelProperty(value="创建时间",name="createtime") private Date createtime; + @Excel(name = "逾期(天) ", width = 20, orderNum = "13") @SortColumn(column = "expiredDay") - @io.swagger.annotations.ApiModelProperty(value="逾期天数",name="expiredDay") + @io.swagger.annotations.ApiModelProperty(value="逾期天数",name="expiredDay") private Long expiredDay; @io.swagger.annotations.ApiModelProperty(value="租户",name="tenantId") @@ -66,6 +90,15 @@ public class WxBillRent extends BaseEntity { @io.swagger.annotations.ApiModelProperty(value="欠缴",name="owe") private Long owe; + public String getOweStr() { + return new BigDecimal(owe == null ? 0 : owe).divide(new BigDecimal(100)).toPlainString(); + } + + @Excel(name = "欠缴金额(元)", width = 20, orderNum = "9") + @Transient + private String oweStr; + + @Excel(name = "状态", replace = {"欠缴_1", "待缴_2", "已结清_3", "未到期_4", "已退还_5", "失效_6"}, width = 20, orderNum = "8") @io.swagger.annotations.ApiModelProperty(value = "账单状态1欠缴2待缴3已结清4未到期", name = "status") private Integer status; @@ -88,9 +121,11 @@ public class WxBillRent extends BaseEntity { @io.swagger.annotations.ApiModelProperty(value="更新时间",name="updatetime") private Date updatetime; + @Excel(name = "周期开始时间", format = "yyyy-MM-dd", width = 20, orderNum = "4") @io.swagger.annotations.ApiModelProperty(value="开始时间",name="starttime") private Date starttime; + @Excel(name = "周期结束时间", format = "yyyy-MM-dd", width = 20, orderNum = "5") @io.swagger.annotations.ApiModelProperty(value="结束时间",name="endtime") private Date endtime; @@ -110,6 +145,14 @@ public class WxBillRent extends BaseEntity { @io.swagger.annotations.ApiModelProperty(value = "滞纳金总额", name = "latePayPrice") private Long latePayPrice; + public String getLatePayPriceStr() { + return new BigDecimal(latePayPrice == null ? 0 : latePayPrice).divide(new BigDecimal(100)).toPlainString(); + } + + @Excel(name = "滞纳金(元)", width = 20, orderNum = "12") + @Transient + private String latePayPriceStr; + @SortColumn(column = "period") @io.swagger.annotations.ApiModelProperty(value = "账期", name = "period") private Integer period; @@ -133,12 +176,26 @@ public class WxBillRent extends BaseEntity { @Transient @SortColumn(column = "allPeriod") private Integer allPeriod; + + @Excel(name = "商铺号", width = 20, orderNum = "1") @Transient @SortColumn(column = "shopNumber") private String shopNumber; + + @Excel(name = "押金状态", replace = {"欠缴_1", "待缴_2", "已结清_3", "未到期_4", "已退还_5", "失效_6"}, width = 20, orderNum = "3") @Transient private Integer depositStatus; + @Transient + private Integer rentType; + + @Transient + private Long deposit; + + @Transient + @io.swagger.annotations.ApiModelProperty(value = "联营费率", name = "payRatio") + private Long payRatio; + public static enum Field { Id_ASC("`id` ASC"),Id_DESC("`id` DESC") diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxBusiness.java b/mallinkService/src/main/java/com/iformall/domain/po/WxBusiness.java index 8fdcf0dd3..62a95efdf 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxBusiness.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxBusiness.java @@ -38,6 +38,8 @@ public class WxBusiness implements Serializable { @Transient @io.swagger.annotations.ApiModelProperty(value="查询-结束时间",name="enddate") private Date enddate; + @Transient + private String tenantId; public static enum Field { diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxCUserBasicInfo.java b/mallinkService/src/main/java/com/iformall/domain/po/WxCUserBasicInfo.java index 57c10b718..7494760c7 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCUserBasicInfo.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCUserBasicInfo.java @@ -46,7 +46,6 @@ public class WxCUserBasicInfo extends BaseEntity { @Excel(name = "手机号*", width = 20, orderNum = "3") @io.swagger.annotations.ApiModelProperty(value="微信用户绑定的手机号",name="phone") - @NotNull private String phone; @Excel(name="微信昵称",width = 20,orderNum = "4") diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxCardInfo.java b/mallinkService/src/main/java/com/iformall/domain/po/WxCardInfo.java index 63ac1e002..81529ae73 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCardInfo.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCardInfo.java @@ -1,11 +1,13 @@ package com.iformall.domain.po; +import cn.afterturn.easypoi.excel.annotation.Excel; import lombok.Data; import javax.persistence.Id; import javax.persistence.Table; import javax.persistence.Transient; import java.io.Serializable; +import java.math.BigDecimal; import java.util.Date; import java.util.List; @@ -13,7 +15,8 @@ import java.util.List; @Data public class WxCardInfo implements Serializable { private static final long serialVersionUID = 1L; - + + @Excel(name = "卡号", width = 20, orderNum = "1") @Id protected Long id; /**主键ID-与coupon_order_id一致*/ @@ -32,6 +35,16 @@ public class WxCardInfo implements Serializable { private Integer amount; @io.swagger.annotations.ApiModelProperty(value="购买总金额",name="saleAmount") private Integer saleAmount; + + public String getRemainingAmountStr() { + return new BigDecimal(remainingAmount == null ? 0 : remainingAmount).divide(new BigDecimal(100)).toPlainString(); + } + + @Excel(name = "余额(元)", width = 20, orderNum = "6") + @Transient + private String remainingAmountStr; + + @io.swagger.annotations.ApiModelProperty(value="剩余面额",name="remainingAmount") private Integer remainingAmount; @io.swagger.annotations.ApiModelProperty(value="分账总手续费",name="serviceFeeAmount") @@ -42,6 +55,8 @@ public class WxCardInfo implements Serializable { private Integer remainingShareFeeAmount; @io.swagger.annotations.ApiModelProperty(value="分账通道费差(购买时刻的通道费差,分账完结时使用)",name="rateAmount") private Integer rateAmount; + + @Excel(name = "购买时间 ", width = 20, orderNum = "9", format = "yyyy-MM-dd HH:mm:ss") @io.swagger.annotations.ApiModelProperty(value="创建时间",name="createDate") private Date createDate; @io.swagger.annotations.ApiModelProperty(value="更新时间",name="updateDate") diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxCardSpend.java b/mallinkService/src/main/java/com/iformall/domain/po/WxCardSpend.java index d98599d0b..3fde4db8d 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCardSpend.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCardSpend.java @@ -1,15 +1,15 @@ package com.iformall.domain.po; import cn.afterturn.easypoi.excel.annotation.Excel; -import io.swagger.models.auth.In; import lombok.Data; -import javax.persistence.*; -import java.math.BigDecimal; -import java.util.*; -import javax.persistence.Transient; -import java.util.List; + import javax.persistence.Id; +import javax.persistence.Table; +import javax.persistence.Transient; import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; @Table(name = "wx_card_spend") @Data @@ -17,7 +17,6 @@ public class WxCardSpend implements Serializable { private static final long serialVersionUID = 1L; @Id - @Excel(name="交易编号",width = 20,orderNum = "1") protected Long id; @Transient @@ -33,6 +32,8 @@ public class WxCardSpend implements Serializable { private Long ownerId; @io.swagger.annotations.ApiModelProperty(value="商户ID",name="merchantId") private Long merchantId; + + @Excel(name = "订单号", width = 20, orderNum = "5") @io.swagger.annotations.ApiModelProperty(value="订单账号",name="orderId") private Long orderId; @io.swagger.annotations.ApiModelProperty(value="ip地址",name="ip") @@ -43,6 +44,7 @@ public class WxCardSpend implements Serializable { private Integer payment; @io.swagger.annotations.ApiModelProperty(value="实收金额(不包含通道费)",name="realPayment") private Integer realPayment; + @io.swagger.annotations.ApiModelProperty(value="卡剩余总金额",name="cardRemainAmount") private Integer cardRemainAmount; @io.swagger.annotations.ApiModelProperty(value="卡支付前总金额",name="cardBeforeAmount") @@ -58,20 +60,20 @@ public class WxCardSpend implements Serializable { @io.swagger.annotations.ApiModelProperty(value="更新时间",name="updateDate") private Date updateDate; - @Excel(name="补贴状态",width = 20,orderNum = "10",replace = { "未支付_0", "已分账_1","已人工分账_2"}) + @Excel(name = "支付状态", width = 20, orderNum = "11", replace = {"未支付_0", "已分账_1", "已人工分账_2"}) @io.swagger.annotations.ApiModelProperty(value="支付状态(0:未分帐, 1:已分账, 2:已人工分账)",name="payStatus") private Integer payStatus; @Transient - @Excel(name="消费金额",width = 20,orderNum = "7") + @Excel(name = "消费金额(元)", width = 20, orderNum = "7") private String deductionAmountStr; @Transient - @Excel(name="收款金额",width = 20,orderNum = "8") + @Excel(name = "应付金额(元)", width = 20, orderNum = "9") private String paymentStr; @Transient - @Excel(name="收款实际金额",width = 20,orderNum = "9") + @Excel(name = "实付金额(扣除手续费/元)", width = 20, orderNum = "8") private String realPaymentStr; @@ -98,6 +100,14 @@ public class WxCardSpend implements Serializable { @Transient private Integer subBusinessId; + public String getCardRemainAmountStr() { + return new BigDecimal(cardRemainAmount == null ? 0 : cardRemainAmount).divide(new BigDecimal(100)).toPlainString(); + } + + @Transient + @Excel(name = "卡余额(元) ", width = 20, orderNum = "10") + private String cardRemainAmountStr; + public String getDeductionAmountStr() { if(getDeductionAmount()!=null) { deductionAmountStr = new BigDecimal(getDeductionAmount()).divide(new BigDecimal(100)).toString(); 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 166a7274f..4a85aebaa 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java @@ -146,6 +146,7 @@ public class WxCoupon extends BaseEntity { @io.swagger.annotations.ApiModelProperty(value="领取条件",name="condition") private String conditions; + private Integer approvalType; @Transient private String merchantParams; @@ -206,6 +207,25 @@ public class WxCoupon extends BaseEntity { @Transient private Integer pressSuccCount; + + @io.swagger.annotations.ApiModelProperty(value = "过滤可投放0不过滤 1过滤", name = "filterCanPut") + @Transient + private Integer filterCanPut; + //审批模板id 卷、卡、拼团、砍价 + @Transient + private Long couponModelId; + @Transient + private Long cardModelId; + @Transient + private Long groupModelId; + @Transient + private Long pressModelId; + + @Transient + private Integer limitStart; + @Transient + private Integer limitEnd; + @Transient @io.swagger.annotations.ApiModelProperty(value = "审批流参数", name = "flowParams") private Map flowParams; diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxFlowRecord.java b/mallinkService/src/main/java/com/iformall/domain/po/WxFlowRecord.java index bd86e526f..e7f6444a3 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxFlowRecord.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxFlowRecord.java @@ -61,6 +61,9 @@ public class WxFlowRecord implements Serializable { @Transient private Integer taskType; + //coupon 操作类型 + @Transient + private Integer approvalType; public WxFlowRecord(){} public WxFlowRecord(Long businessId){ @@ -74,4 +77,9 @@ public class WxFlowRecord implements Serializable { this.businessId = businessId; this.tenantId = tenantId; } + public WxFlowRecord(Long businessId,String tenantId,Integer approvalType){ + this.businessId = businessId; + this.tenantId = tenantId; + this.approvalType = approvalType; + } } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxLevelMerchant.java b/mallinkService/src/main/java/com/iformall/domain/po/WxLevelMerchant.java index 826cdf8a5..f7e468b63 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxLevelMerchant.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxLevelMerchant.java @@ -36,6 +36,7 @@ public class WxLevelMerchant implements Serializable { @io.swagger.annotations.ApiModelProperty(value="折扣率(0-100折扣)",name="discount") private Integer discount; + public static enum Field { Id_ASC("`id` ASC"),Id_DESC("`id` DESC") 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 bb924f50a..cd10a652b 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxMerchant.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxMerchant.java @@ -183,6 +183,9 @@ public class WxMerchant extends BaseEntity { @io.swagger.annotations.ApiModelProperty(value = "辅谈人", name = "talkUserAux") private String talkUserAux; + @io.swagger.annotations.ApiModelProperty(value = "客服电话", name = "linkLinePhone") + private String linkLinePhone; + @Transient private WxProfitSharingReceiver wxProfitSharingReceiver; diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxMerchantTradeDaily.java b/mallinkService/src/main/java/com/iformall/domain/po/WxMerchantTradeDaily.java index 851ba5966..539ad4a7f 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxMerchantTradeDaily.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxMerchantTradeDaily.java @@ -46,6 +46,13 @@ public class WxMerchantTradeDaily implements Serializable { @Transient private String month; + @Transient + private String starttime; + + @Transient + private String endtime; + + public Integer getTradeAmtInteger(){ if (StringUtils.isBlank(tradeAmt)){ return 0; diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxMsgLimit.java b/mallinkService/src/main/java/com/iformall/domain/po/WxMsgLimit.java new file mode 100644 index 000000000..128481256 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxMsgLimit.java @@ -0,0 +1,107 @@ +package com.iformall.domain.po; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import javax.persistence.Id; +import javax.persistence.Table; +import javax.persistence.Transient; +import java.util.Date; +import java.util.List; + +@Table(name = "wx_msg_limit") +@Data +@ToString(callSuper = true) +@EqualsAndHashCode(callSuper = true) +public class WxMsgLimit extends BaseEntity { + @Id + protected Long id; + + @Transient + protected List ids; + @Transient + protected String sortColumns; + + @Override + public String getSortColumns() { + super.setSortColumns(this.sortColumns); + return super.getSortColumns(); + } + + @io.swagger.annotations.ApiModelProperty(value="租户ID",name="tenantId") + private String tenantId; + @io.swagger.annotations.ApiModelProperty(value="1: 短信-验证码(24小时10条)2:短信-营销(24小时3条) 11:prepay_id(7天内3次), 12:form_id(7天内1次), 13.open_id for 小程序统一消息限制(2天内1次),14.open_id for 公众号模板消息限制(2天内1次)",name="type") + private Integer type; + @io.swagger.annotations.ApiModelProperty(value="限制ID",name="limitId") + private String limitId; + @io.swagger.annotations.ApiModelProperty(value="限制次数",name="limitNum") + private Integer limitNum; + @io.swagger.annotations.ApiModelProperty(value="限制时间(type=1,2时,24小时; tyep=11,12,13时,为自然日结束时间)",name="limitDate") + private Date limitDate; + + @Transient + @io.swagger.annotations.ApiModelProperty(value="过期时间(一般为当前时间)",name="expireDate") + private Date expireDate; + + public static enum Field + { + Id_ASC("`id` ASC"),Id_DESC("`id` DESC") + ,TenantId_ASC("`tenant_id` ASC"),TenantId_DESC("`tenant_id` DESC") + ,Type_ASC("`type` ASC"),Name_DESC("`type` DESC") + ,LimitId_ASC("`limit_id` ASC"),LimitId_DESC("`limit_id` DESC") + ,LimitDate_ASC("`limit_date` ASC"),LimitDate_DESC("`limit_date` DESC") + ; + private String value; + Field(String value){ + this.value = value; + } + public String getValue() { + return value; + } + public void setCol(String value) { + this.value = value; + } + @Override + public String toString() { + return this.getValue(); + } + } + + public void setSortColumns(WxMsgLimit.Field... fields) + { + if (fields == null || fields.length == 0) { + return; + } + for (int k = 0; k < fields.length; k++) { + if (fields[k] == null) { + return; + } + } + StringBuilder sb = new StringBuilder(fields[0].toString()); + for (int k = 1; k < fields.length; k++) { + sb.append(","); + sb.append(fields[k].toString()); + } + + this.sortColumns = sb.toString(); + + } + + public void setSortColumns(String sortColumns) + { + if (sortColumns == null || "".equals(sortColumns.trim())) { + return; + } + if (sortColumns.contains(",")) { + String[] cols = sortColumns.split(","); + List fList = new java.util.ArrayList(); + for (int k = 0; k < cols.length; k++) { + fList.add(Field.valueOf(cols[k])); + } + this.setSortColumns(fList.toArray(new Field[fList.size()])); + } else { + this.setSortColumns(Field.valueOf(sortColumns)); + } + } +} diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxShop.java b/mallinkService/src/main/java/com/iformall/domain/po/WxShop.java index 609f22538..75e87f536 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxShop.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxShop.java @@ -132,22 +132,7 @@ public class WxShop extends BaseEntity { public static enum Field { - Id_ASC("`id` ASC"),Id_DESC("`id` DESC") - ,TenantId_ASC("`tenantId` ASC"),TenantId_DESC("`tenantId` DESC") - ,ShopNumber_ASC("`shopNumber` ASC"),ShopNumber_DESC("`shopNumber` DESC") - ,BuildArea_ASC("`buildArea` ASC"),BuildArea_DESC("`buildArea` DESC") - ,OperationArea_ASC("`operationArea` ASC"),OperationArea_DESC("`operationArea` DESC") - ,Building_ASC("`building` ASC"),Building_DESC("`building` DESC") - ,Floor_ASC("`floor` ASC"),Floor_DESC("`floor` DESC") - ,Status_ASC("`status` ASC"),Status_DESC("`status` DESC") - ,X_ASC("`x` ASC"),X_DESC("`x` DESC") - ,Y_ASC("`y` ASC"),Y_DESC("`y` DESC") - ,Addr_ASC("`addr` ASC"),Addr_DESC("`addr` DESC") - ,BaiduPoi_ASC("`baiduPoi` ASC"),BaiduPoi_DESC("`baiduPoi` DESC") - ,Longitude_ASC("`longitude` ASC"),Longitude_DESC("`longitude` DESC") - ,Latitude_ASC("`latitude` ASC"),Latitude_DESC("`latitude` DESC") - ,CreateDate_ASC("`createDate` ASC"),CreateDate_DESC("`createDate` DESC") - ,UpdateDate_ASC("`updateDate` ASC"),UpdateDate_DESC("`updateDate` DESC") + Id_ASC("s.`id` ASC"), Id_DESC("s.`id` DESC"), TenantId_ASC("s.`tenant_id` ASC"), TenantId_DESC("s.`tenant_id` DESC"), ShopNumber_ASC("s.`shop_number` ASC"), ShopNumber_DESC("s.`shop_number` DESC"), BuildArea_ASC("s.`build_area` ASC"), BuildArea_DESC("s.`build_area` DESC"), OperationArea_ASC("s.`operation_area` ASC"), OperationArea_DESC("s.`operation_area` DESC"), Building_ASC("s.`building` ASC"), Building_DESC("s.`building` DESC"), Floor_ASC("s.`floor` ASC"), Floor_DESC("s.`floor` DESC"), Status_ASC("s.`status` ASC"), Status_DESC("s.`status` DESC"), X_ASC("s.`x` ASC"), X_DESC("s.`x` DESC"), Y_ASC("s.`y` ASC"), Y_DESC("s.`y` DESC"), Addr_ASC("s.`addr` ASC"), Addr_DESC("s.`addr` DESC"), BaiduPoi_ASC("s.`baidu_poi` ASC"), BaiduPoi_DESC("s.`baidu_poi` DESC"), Longitude_ASC("s.`longitude` ASC"), Longitude_DESC("s.`longitude` DESC"), Latitude_ASC("s.`latitude` ASC"), Latitude_DESC("s.`latitude` DESC"), CreateDate_ASC("`s.create_date` ASC"), CreateDate_DESC("s.`create_date` DESC"), UpdateDate_ASC("s.`update_date` ASC"), UpdateDate_DESC("s.`update_date` DESC") ; private String value; Field(String value){ diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/KwMerchantMeterVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/KwMerchantMeterVo.java new file mode 100644 index 000000000..92f52db20 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/vo/KwMerchantMeterVo.java @@ -0,0 +1,23 @@ +package com.iformall.domain.vo; + +import com.iformall.domain.po.KwMeter; +import lombok.Data; + +import java.util.List; + + +/** + * @author gongbiao + */ +@Data +public class KwMerchantMeterVo extends KwMeter { + + @io.swagger.annotations.ApiModelProperty(value="商户名",name="name") + private String merchantName; + @io.swagger.annotations.ApiModelProperty(value="商户联系方式",name="linkPhone") + private String merchantLinkPhone; + + + @io.swagger.annotations.ApiModelProperty(value = "店铺列表", name = "shopVoList") + private List shopVoList; +} diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/MarkingSceneDataVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/MarkingSceneDataVo.java index cf7ba937f..7e503f4fa 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/MarkingSceneDataVo.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/MarkingSceneDataVo.java @@ -14,5 +14,6 @@ public class MarkingSceneDataVo { private int sendCount; //场景营销发券数 private int verifiedCount; //场景营销券核销数 private String verifiedPercent; //场景营销核销比 - private String xTime; //时间 + private String xtime; //时间 + } diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/WxBillDailyExportVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/WxBillDailyExportVo.java new file mode 100644 index 000000000..ab2f05331 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/vo/WxBillDailyExportVo.java @@ -0,0 +1,52 @@ +package com.iformall.domain.vo; + + +import cn.afterturn.easypoi.excel.annotation.Excel; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * @author gongbiao + */ +@Data +public class WxBillDailyExportVo { + + @Excel(name = "商铺号", width = 20, orderNum = "1") + private String shopNumber; + @Excel(name = "商户名称", width = 20, orderNum = "2") + private String merchantName; + @Excel(name = "费用类型", replace = {"水费_1", "电费_2", "空调费_3"}, width = 10, orderNum = "3") + private Integer type; + @Excel(name = "实际应收金额(元)", orderNum = "4", width = 20) + private String receivePayStr; + @Excel(name = "实收金额(元)", orderNum = "5", width = 20) + private String payStr; + @Excel(name = "欠缴金额(元)", orderNum = "6", width = 20) + private String oweStr; + @Excel(name = "缴款截止日期", orderNum = "7", width = 20, format = "yyyy-MM-dd") + private Date receiveDate; + @Excel(name = "收款日期", orderNum = "8", width = 20, format = "yyyy-MM-dd") + private Date payDate; + @Excel(name = "状态", replace = {"欠缴_1", "待缴_2", "已结清_3", "未到期_4", "已退还_5", "失效_6"}, width = 20, orderNum = "9") + private Integer status; + @Excel(name = "逾期(天)", orderNum = "10", width = 20) + private Long expiredDay; + + private Long receivePay; + private Long pay; + private Long owe; + + public String getReceivePayStr() { + return new BigDecimal(receivePay == null ? 0 : receivePay).divide(new BigDecimal(100)).toPlainString(); + } + + public String getPayStr() { + return new BigDecimal(pay == null ? 0 : pay).divide(new BigDecimal(100)).toPlainString(); + } + + public String getOweStr() { + return new BigDecimal(owe == null ? 0 : owe).divide(new BigDecimal(100)).toPlainString(); + } +} diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/WxBillExcelTemplate.java b/mallinkService/src/main/java/com/iformall/domain/vo/WxBillExcelTemplate.java new file mode 100644 index 000000000..b86933a0d --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/vo/WxBillExcelTemplate.java @@ -0,0 +1,40 @@ +package com.iformall.domain.vo; + +import cn.afterturn.easypoi.excel.annotation.Excel; +import lombok.Data; + +import java.util.Date; + +/** + * @author gongbiao + */ +@Data +public class WxBillExcelTemplate { + + @Excel(name = "商户名*", width = 20, orderNum = "1") + private String merchantName; + + @Excel(name = "费用类型*", width = 20, orderNum = "2", replace = {"商铺租金_1", "多经点位租金_2", "商铺物业费_3", "多经点位物业费_4", "日常费用_5", "其他费用_6", "其他押金_7"}) + private Integer billType; + + @Excel(name = "费用所属期-开始时间*", width = 20, orderNum = "4", format = "yyyy-MM-dd") + private Date starttime; + + @Excel(name = "费用所属期-结束时间*", width = 20, orderNum = "5", format = "yyyy-MM-dd") + private Date endtime; + + @Excel(name = "收款金额(元)*", width = 20, orderNum = "6") + private String payStr; + + @Excel(name = "收款日期*", width = 20, orderNum = "7", format = "yyyy-MM-dd") + private Date payDate; + + @Excel(name = "截止缴款日*", width = 20, orderNum = "8", format = "yyyy-MM-dd") + private Date receiveDate; + + @Excel(name = "收款方式", width = 20, orderNum = "9") + private String payWay; + + private Long merchantId; + private Integer merchantType; +} diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/WxBillExcelTemplateDaily.java b/mallinkService/src/main/java/com/iformall/domain/vo/WxBillExcelTemplateDaily.java new file mode 100644 index 000000000..d54835f5a --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/vo/WxBillExcelTemplateDaily.java @@ -0,0 +1,15 @@ +package com.iformall.domain.vo; + +import cn.afterturn.easypoi.excel.annotation.Excel; +import lombok.Data; + +/** + * @author gongbiao + */ +@Data +public class WxBillExcelTemplateDaily extends WxBillExcelTemplate { + + @Excel(name = "费用属性*", width = 20, orderNum = "3", replace = {"租金_1", "物业费_2", "水费_3", "电费_4", "空调费_5", "其他费用_6", "其他押金_7"}) + private Integer billAttr; + +} diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/WxBillExcelTemplateOther.java b/mallinkService/src/main/java/com/iformall/domain/vo/WxBillExcelTemplateOther.java new file mode 100644 index 000000000..824577bcf --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/vo/WxBillExcelTemplateOther.java @@ -0,0 +1,15 @@ +package com.iformall.domain.vo; + +import cn.afterturn.easypoi.excel.annotation.Excel; +import lombok.Data; + +/** + * @author gongbiao + */ +@Data +public class WxBillExcelTemplateOther extends WxBillExcelTemplate { + + @Excel(name = "费用属性*", width = 20, orderNum = "3") + private String billAttr; + +} diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/WxBusinessDataVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/WxBusinessDataVo.java new file mode 100644 index 000000000..bb342faae --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/vo/WxBusinessDataVo.java @@ -0,0 +1,20 @@ +package com.iformall.domain.vo; + +import cn.afterturn.easypoi.excel.annotation.Excel; +import lombok.Data; + +@Data +public class WxBusinessDataVo { + @Excel(name="业态",width = 20,orderNum = "1") + private String name; + @Excel(name="营业额(万)",width = 20,orderNum = "2") + private String sale = "0"; + @Excel(name="销售坪效(元/m2)",width = 20,orderNum = "3") + private String saleRate = "0" ; + @Excel(name="租赁坪效(元/m2)",width = 20,orderNum = "5") + private String rentRate = "0"; + @Excel(name="租售比",width = 20,orderNum = "6") + private String rentSaleRate = "0"; + @Excel(name="客单价(元)",width = 20,orderNum = "7") + private String comPrice = "0"; +} diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/WxCardSpendVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/WxCardSpendVo.java index d7cbb770e..c687c4c64 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/WxCardSpendVo.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/WxCardSpendVo.java @@ -6,9 +6,6 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; -import javax.persistence.Transient; -import java.util.Date; - @Data @ToString(callSuper = true) @EqualsAndHashCode(callSuper = true) @@ -16,11 +13,11 @@ public class WxCardSpendVo extends WxCardSpend { /**卡信息*/ @io.swagger.annotations.ApiModelProperty(value="卡券名称",name="title") - @Excel(name="卡名",width = 20,orderNum = "4") + @Excel(name = "卡名称", width = 20, orderNum = "3") private String title; @io.swagger.annotations.ApiModelProperty(value="商户名",name="merchantName") - @Excel(name="商户",width = 20,orderNum = "5") + @Excel(name = "消费商户", width = 20, orderNum = "4") private String merchantName; @io.swagger.annotations.ApiModelProperty(value="补贴额(包含通道费)",name="subsidy") @@ -30,12 +27,12 @@ public class WxCardSpendVo extends WxCardSpend { @io.swagger.annotations.ApiModelProperty(value="补贴状态(0:未补贴, 1:已补贴)",name="status") private Integer status; - @Excel(name="消费者",width = 20,orderNum = "2") + @Excel(name = "消费者", width = 20, orderNum = "1") @io.swagger.annotations.ApiModelProperty(value="持有人昵称",name="onickName") private String onickName; - @Excel(name="手机号",width = 20,orderNum = "3") + @Excel(name = "手机", width = 20, orderNum = "2") @io.swagger.annotations.ApiModelProperty(value="持有人绑定的手机号",name="ouPhone") private String ouPhone; diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/WxCardVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/WxCardVo.java index 18cfe006e..d728c03ce 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/WxCardVo.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/WxCardVo.java @@ -1,12 +1,14 @@ package com.iformall.domain.vo; +import cn.afterturn.easypoi.excel.annotation.Excel; import com.iformall.domain.po.WxCardInfo; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; import javax.persistence.Transient; +import java.math.BigDecimal; import java.util.Date; import java.util.List; @@ -22,6 +24,8 @@ public class WxCardVo extends WxCardInfo { private String coverPicture; @io.swagger.annotations.ApiModelProperty(value="详情多图",name="detailPicture") private String detailPicture; + + @Excel(name = "卡名称", width = 20, orderNum = "4") @io.swagger.annotations.ApiModelProperty(value="券名称",name="title") private String title; @io.swagger.annotations.ApiModelProperty(value="副标题",name="subTitle") @@ -33,12 +37,39 @@ public class WxCardVo extends WxCardInfo { @io.swagger.annotations.ApiModelProperty(value="购买须知",name="remark") private String remark; + public String getPriceStr() { + return new BigDecimal(price == null ? 0 : price).divide(new BigDecimal(100)).toPlainString(); + } + + @Excel(name = "面额(元)", width = 20, orderNum = "5") + @Transient + private String priceStr; + + @io.swagger.annotations.ApiModelProperty(value = "面额", name = "price") private Integer price; + + public String getSalePriceStr() { + return new BigDecimal(salePrice == null ? 0 : salePrice).divide(new BigDecimal(100)).toPlainString(); + } + + @Excel(name = "售价(元)", width = 20, orderNum = "7") + @Transient + private String salePriceStr; + @io.swagger.annotations.ApiModelProperty(value = "购买金额", name = "salePrice") private Integer salePrice; @io.swagger.annotations.ApiModelProperty(value = "补贴类型", name = "subsidyType") private Integer subsidyType; + + public String getSubsidyNumStr() { + return new BigDecimal(subsidyNum == null ? 0 : subsidyNum).divide(new BigDecimal(100)).toPlainString(); + } + + @Excel(name = "补贴额(元)", width = 20, orderNum = "8") + @Transient + private String subsidyNumStr; + @io.swagger.annotations.ApiModelProperty(value = "补贴金额", name = "subsidyNum") private Integer subsidyNum; @@ -50,15 +81,18 @@ public class WxCardVo extends WxCardInfo { @io.swagger.annotations.ApiModelProperty(value = "该订单对应券的实际过期时间 ", name = "expiredTime") private Date expiredTime; + @Excel(name = "状态 ", width = 20, orderNum = "10", replace = {"使用中_4", "已过期_5", "已用完_6", "已线下退款_7"}) @io.swagger.annotations.ApiModelProperty(value = "状态", name = "status") private Integer status; + @Excel(name = "购买人", width = 20, orderNum = "2") @io.swagger.annotations.ApiModelProperty(value="购买人昵称",name="cnickName") private String cnickName; @io.swagger.annotations.ApiModelProperty(value="持有人昵称",name="onickName") private String onickName; + @Excel(name = "电话", width = 20, orderNum = "3") @io.swagger.annotations.ApiModelProperty(value="持有人绑定的手机号",name="ouPhone") private String ouPhone; diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/WxLevelMerchantCVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/WxLevelMerchantCVo.java index d65721d7b..cb3b9bdf4 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/WxLevelMerchantCVo.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/WxLevelMerchantCVo.java @@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import lombok.Data; import javax.persistence.Id; +import javax.persistence.Transient; import java.io.Serializable; import java.util.List; @@ -34,4 +35,8 @@ public class WxLevelMerchantCVo implements Serializable { @io.swagger.annotations.ApiModelProperty(value="折扣",name="discount") private Integer discount; + @Transient + @io.swagger.annotations.ApiModelProperty(value = "客服电话", name = "linkLinePhone") + private String linkLinePhone; + } diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/WxMerchantVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/WxMerchantVo.java index b3d1d1acf..e2df89c32 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/WxMerchantVo.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/WxMerchantVo.java @@ -81,4 +81,6 @@ public class WxMerchantVo { @io.swagger.annotations.ApiModelProperty(value="优惠活动",name="actionDesc") private String actionDesc; + @io.swagger.annotations.ApiModelProperty(value = "客服电话", name = "linkLinePhone") + private String linkLinePhone; } diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumBillAction.java b/mallinkService/src/main/java/com/iformall/enums/EnumBillAction.java index 0471f7722..d64a99d93 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumBillAction.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumBillAction.java @@ -11,7 +11,8 @@ public enum EnumBillAction { OFFLINE_PAY(3, "线下缴费"), DEPOSIT_PAY(4, "押金缴费"), DEPOSIT_RETURN(5, "押金退款"), - DEPOSIT_MODIFY(6, "押金变更"),; + DEPOSIT_MODIFY(6, "押金变更"), + IMPORT_PAY(6, "导入缴费"),; public static EnumBillAction getEnum(Integer code) { for (EnumBillAction value : values()) { diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumBillExcelTemplate.java b/mallinkService/src/main/java/com/iformall/enums/EnumBillExcelTemplate.java new file mode 100644 index 000000000..78c41651b --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/enums/EnumBillExcelTemplate.java @@ -0,0 +1,42 @@ +package com.iformall.enums; + + +/** + * @author gongbiao + */ + +public enum EnumBillExcelTemplate { + + SHOP_RENT(1, "商铺租金"), + POINT_RENT(2, "多经点位租金"), + SHOP_PROPERTY(3, "商铺物业费"), + POINT_PROPERTY(4, "多经点位物业费"), + DAILY(5, "日常费用"), + OTHER(6, "其他费用"), + OTHER_DEPOSIT(7, "其他押金"),; + + public static EnumBillExcelTemplate getEnum(Integer code) { + for (EnumBillExcelTemplate value : values()) { + if (value.getCode().equals(code)) { + return value; + } + } + return null; + } + + private Integer code; + private String message; + + EnumBillExcelTemplate(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return code; + } + + public String getMessage() { + return message; + } +} diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumBillExcelTemplateDaily.java b/mallinkService/src/main/java/com/iformall/enums/EnumBillExcelTemplateDaily.java new file mode 100644 index 000000000..9726d60dc --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/enums/EnumBillExcelTemplateDaily.java @@ -0,0 +1,42 @@ +package com.iformall.enums; + + +/** + * @author gongbiao + */ + +public enum EnumBillExcelTemplateDaily { + + RENT(1, "租金"), + PROPERTY(2, "物业费"), + WATER(3, "水费"), + POWER(4, "电费"), + AIR_CONDITIONING(5, "空调费"), + OTHER(6, "其他费用"), + OTHER_DEPOSIT(7, "其他押金"),; + + public static EnumBillExcelTemplateDaily getEnum(Integer code) { + for (EnumBillExcelTemplateDaily value : values()) { + if (value.getCode().equals(code)) { + return value; + } + } + return null; + } + + private Integer code; + private String message; + + EnumBillExcelTemplateDaily(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return code; + } + + public String getMessage() { + return message; + } +} diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumCouponConditionType.java b/mallinkService/src/main/java/com/iformall/enums/EnumCouponConditionType.java index b460c6b2d..163eddc18 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumCouponConditionType.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumCouponConditionType.java @@ -5,7 +5,7 @@ package com.iformall.enums; */ public enum EnumCouponConditionType { - // 0-可投放;1-已作废; + NO_RULES(0, "不限制"), NEW_MEMBER(1, "新会员"), SCORE_SCOPE(2, "积分值"), ; diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumCouponType.java b/mallinkService/src/main/java/com/iformall/enums/EnumCouponType.java index a5ae1eef1..b7ad0a81d 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumCouponType.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumCouponType.java @@ -9,7 +9,7 @@ public enum EnumCouponType { // 100.消费卡 COUPON_MANJIAN(1, "满减券"), COUPON_DAIJIN(2, "代金券"), - COUPON_TUANGOU(3, "团购券"), + COUPON_TUANGOU(3, "团购券"),//弃用 COUPON_LIPIN(4, "礼品券"), COUPON_TINGCHE(5, "停车券"), COUPON_MULTIMCH(6, "通用券"), @@ -17,7 +17,6 @@ public enum EnumCouponType { COUPON_GROUP(9, "团购券"), COUPON_CREDIT(50,"积分券"), COUPON_CREDIT_PARK(51,"积分停车券"), - CARD_MULTIMCH(100, "消费卡"), ; diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumFilterPut.java b/mallinkService/src/main/java/com/iformall/enums/EnumFilterPut.java new file mode 100644 index 000000000..808fa1081 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/enums/EnumFilterPut.java @@ -0,0 +1,35 @@ +package com.iformall.enums; + +/** + * Created by luozukai + */ +public enum EnumFilterPut{ + + NO(0, "不过滤"), + ; + + public static EnumFilterPut getEnum(Integer code) { + for (EnumFilterPut value : values()) { + if (value.getCode().equals(code)) { + return value; + } + } + return null; + } + + private Integer code; + private String message; + + EnumFilterPut(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return code; + } + + public String getMessage() { + return message; + } +} diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumImportType.java b/mallinkService/src/main/java/com/iformall/enums/EnumImportType.java new file mode 100644 index 000000000..8ec14c903 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/enums/EnumImportType.java @@ -0,0 +1,43 @@ +package com.iformall.enums; + + +/** + * @author gongbiao + */ + +public enum EnumImportType { + + MEMBER(1, "member"), + SHOP_RENT(2, "shop_rent"), + POINT_RENT(3, "point_rent"), + SHOP_PROPERTY(4, "shop_property"), + POINT_PROPERTY(5, "point_property"), + DAILY(6, "daily"), + OTHER(7, "other"), + OTHER_DEPOSIT(8, "other_deposit"),; + + public static EnumImportType getEnum(Integer code) { + for (EnumImportType value : values()) { + if (value.getCode().equals(code)) { + return value; + } + } + return null; + } + + private Integer code; + private String message; + + EnumImportType(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return code; + } + + public String getMessage() { + return message; + } +} diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumMerchantMeterStatus.java b/mallinkService/src/main/java/com/iformall/enums/EnumMerchantMeterStatus.java new file mode 100644 index 000000000..b3ecf1f71 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/enums/EnumMerchantMeterStatus.java @@ -0,0 +1,35 @@ +package com.iformall.enums; + +/** + * Created by Stormeye on 2018/08/09. + */ +public enum EnumMerchantMeterStatus { + + VALID(0, "有效"), + INVALID(1, "无效"),; + + public static EnumMerchantMeterStatus getEnum(Integer code) { + for (EnumMerchantMeterStatus value : values()) { + if (value.getCode().equals(code)) { + return value; + } + } + return null; + } + + private Integer code; + private String message; + + EnumMerchantMeterStatus(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return code; + } + + public String getMessage() { + return message; + } +} diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumMsgLimitType.java b/mallinkService/src/main/java/com/iformall/enums/EnumMsgLimitType.java new file mode 100644 index 000000000..e29318fdf --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/enums/EnumMsgLimitType.java @@ -0,0 +1,41 @@ +package com.iformall.enums; + +/** + * Created by Stormeye + * 消息限制类型 + */ +public enum EnumMsgLimitType { + // type,name + SMS_VALID(1, "短信-验证码"), + SMS_SALE(2, "短信-营销"), + WEAPP_PREPAYID(11, "小程序prepayId"), + WEAPP_FORMID(12, "小程序formId"), + WEAPP_OPENID_SEND(101, "小程序发券统一消息"), + WXCHAT_OPENID_SEND(201, "公众号发券消息"), + ; + + public static EnumMsgLimitType getEnum(Integer code) { + for (EnumMsgLimitType value : values()) { + if (value.getCode().equals(code)) { + return value; + } + } + return null; + } + + private Integer code; + private String message; + + EnumMsgLimitType(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return code; + } + + public String getMessage() { + return message; + } +} diff --git a/mallinkService/src/main/java/com/iformall/mapper/KwMerchantMeterMapper.java b/mallinkService/src/main/java/com/iformall/mapper/KwMerchantMeterMapper.java index 656828d50..db6462879 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/KwMerchantMeterMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/KwMerchantMeterMapper.java @@ -2,12 +2,14 @@ package com.iformall.mapper; import com.iformall.common.CommonMapper; import com.iformall.domain.po.KwMerchantMeter; +import com.iformall.domain.vo.KwMerchantMeterVo; import java.util.List; public interface KwMerchantMeterMapper extends CommonMapper { List findList(KwMerchantMeter param); - + List findListVo(KwMerchantMeter param); + int unbindBatch(KwMerchantMeter param); } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxBillDailyMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxBillDailyMapper.java index cdf389c10..784ee8503 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxBillDailyMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxBillDailyMapper.java @@ -17,6 +17,6 @@ public interface WxBillDailyMapper extends CommonMapper { void updateWaitPayStatus(Map params); - List> queryBillDailyList(WxBillDaily record); + List queryBillDailyList(WxBillDaily record); } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxBillOtherDepositMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxBillOtherDepositMapper.java index 87be3b0c5..d75a7b8a5 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxBillOtherDepositMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxBillOtherDepositMapper.java @@ -17,6 +17,6 @@ public interface WxBillOtherDepositMapper extends CommonMapper params); - List> queryBillList(WxBillOtherDeposit record); + List queryBillList(WxBillOtherDeposit record); } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxBillOtherMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxBillOtherMapper.java index f8fb1f900..1ad11c6f4 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxBillOtherMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxBillOtherMapper.java @@ -17,7 +17,7 @@ public interface WxBillOtherMapper extends CommonMapper { void updateWaitPayStatus(Map params); - List> queryBillList(WxBillOther record); + List queryBillList(WxBillOther record); Map queryPayInfoTotal(Map params); diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxBillPropertyMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxBillPropertyMapper.java index 6d8151db0..c0abcb402 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxBillPropertyMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxBillPropertyMapper.java @@ -4,6 +4,7 @@ import com.iformall.common.CommonMapper; import com.iformall.domain.po.WxBillProperty; import com.iformall.domain.po.WxPropertyContract; import com.iformall.domain.po.WxRentContract; + import java.util.List; import java.util.Map; @@ -14,7 +15,7 @@ public interface WxBillPropertyMapper extends CommonMapper List findList(WxBillProperty wxBillProperty); - List> queryBillPropertyList(WxBillProperty record); + List queryBillPropertyList(WxBillProperty record); Map queryPayInfo(Map params); @@ -42,4 +43,5 @@ public interface WxBillPropertyMapper extends CommonMapper void insertBills(List resultList); + WxBillProperty selectBillOne(WxBillProperty propertyQuery); } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxBillRentMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxBillRentMapper.java index f900f06a7..75d19c526 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxBillRentMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxBillRentMapper.java @@ -15,7 +15,7 @@ public interface WxBillRentMapper extends CommonMapper { List findList(WxBillRent wxBillRent); - List> queryBillRentList(WxBillRent record); + List queryBillRentList(WxBillRent record); Map queryPayInfo(Map params); @@ -41,4 +41,6 @@ public interface WxBillRentMapper extends CommonMapper { void updateBills(@Param("bills") List resultList); + WxBillRent selectBillOne(WxBillRent rentQuery); + } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxBusinessMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxBusinessMapper.java index add494ad7..c258320a4 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxBusinessMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxBusinessMapper.java @@ -2,6 +2,7 @@ package com.iformall.mapper; import java.util.*; import com.iformall.common.CommonMapper; +import com.iformall.common.ResultData; import com.iformall.domain.po.WxBusiness; import io.lettuce.core.dynamic.annotation.Param; @@ -12,4 +13,9 @@ public interface WxBusinessMapper extends CommonMapper { List findListAll(); List findListForMerchant(@Param("tenantId") String tenantId); List findListForCoupon(@Param("tenantId") String tenantId); + + + List> businessDataList(WxBusiness wxBusiness); + + List> devoteList(WxBusiness wxBusiness); } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCouponMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCouponMapper.java index a3b013a34..1ee46bedd 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCouponMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCouponMapper.java @@ -10,14 +10,6 @@ import com.iformall.domain.po.WxCoupon; public interface WxCouponMapper extends CommonMapper { List findPressData(WxCoupon wxCoupon); - void delPressData(WxCoupon wxCoupon); - void insertPressData(WxCoupon wxCoupon); - void updatePressData1(WxCoupon wxCoupon); - void updatePressData2(WxCoupon wxCoupon); - void updatePressData3(WxCoupon wxCoupon); - void updatePressData4(WxCoupon wxCoupon); - void updatePressData5(WxCoupon wxCoupon); - List findCouponData(WxCoupon wxCoupon); List findCountData(WxCoupon wxCoupon); @@ -86,4 +78,7 @@ public interface WxCouponMapper extends CommonMapper { // 库存,有效期修改 int updateStockAndValidDate(WxCoupon wxCoupon); + WxCoupon findCouponModel(WxCoupon wxCoupon); + + Integer findCouponListCount(WxCoupon wxCoupon); } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxMerchantMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxMerchantMapper.java index 4bf7aeb5c..08c6606d9 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxMerchantMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxMerchantMapper.java @@ -19,4 +19,7 @@ public interface WxMerchantMapper extends CommonMapper { List findQrcodeEmptyList(); List> findBusByFloorId(Map params); + + int hasMerchant(WxMerchant wxMerchant); + } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxMsgLimitMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxMsgLimitMapper.java new file mode 100644 index 000000000..56a28454e --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/mapper/WxMsgLimitMapper.java @@ -0,0 +1,16 @@ +package com.iformall.mapper; + +import com.iformall.common.CommonMapper; +import com.iformall.domain.po.WxMsgLimit; + +import java.util.List; + +public interface WxMsgLimitMapper extends CommonMapper { + + List findList(WxMsgLimit wxMsgWxLimit); + + int updateLimitNum(WxMsgLimit wxMsgWxLimit); + + int delLimitNum(WxMsgLimit wxMsgWxLimit); + +} diff --git a/mallinkService/src/main/java/com/iformall/service/ExcelService.java b/mallinkService/src/main/java/com/iformall/service/ExcelService.java index 412ea68fe..6a293cb80 100644 --- a/mallinkService/src/main/java/com/iformall/service/ExcelService.java +++ b/mallinkService/src/main/java/com/iformall/service/ExcelService.java @@ -58,7 +58,7 @@ public class ExcelService { cellStyle.setFont(font); Row row = sheetAt.createRow(sheetAt.getLastRowNum() + 2); Cell cell = row.createCell(0); - cell.setCellValue("*为必填字段(此段文字导入数据时请删除)"); + cell.setCellValue("*为必填字段(导入数据时此行文字请删除)"); cell.setCellStyle(cellStyle); } } diff --git a/mallinkService/src/main/java/com/iformall/service/WxBillAllService.java b/mallinkService/src/main/java/com/iformall/service/WxBillAllService.java index ce95a280a..cb04b8139 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxBillAllService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxBillAllService.java @@ -3,6 +3,9 @@ package com.iformall.service; import com.iformall.common.ResultData; import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.vo.WxBillAll; +import com.iformall.domain.vo.WxBillExcelTemplate; +import com.iformall.domain.vo.WxBillExcelTemplateOther; + import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.List; @@ -55,4 +58,9 @@ public interface WxBillAllService { ResultData updateReceivePay(WxBillAll wxBillAll, MallUserInfo user); void addBillAction(Long billId, Long oldPrice, Long newPrice, MallUserInfo mallUserInfo); + + void exportTemplate(WxBillExcelTemplate wxBillExcelTemplate, HttpServletRequest request, HttpServletResponse response); + + void importBill(String tenantId, String importKey, WxBillExcelTemplateOther bill, MallUserInfo user); + } \ No newline at end of file diff --git a/mallinkService/src/main/java/com/iformall/service/WxBillDailyService.java b/mallinkService/src/main/java/com/iformall/service/WxBillDailyService.java index e8b9bf581..e67abb6f3 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxBillDailyService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxBillDailyService.java @@ -23,7 +23,7 @@ public interface WxBillDailyService { * @param record * @return */ - PageInfo> listAsPage(WxBillDaily record, Integer pageIndex, Integer pageSize); + PageInfo listAsPage(WxBillDaily record, Integer pageIndex, Integer pageSize); void updateBillStatus(WxBillDaily record); @@ -33,7 +33,7 @@ public interface WxBillDailyService { * @param id * @return */ - Map getById(Long id); + WxBillDaily getById(Long id); /** * 保存或更新实体 @@ -57,4 +57,6 @@ public interface WxBillDailyService { void insertData(WxBillDailyVo billDaily, String importKey, MallUserInfo user); + void exportBill(HttpServletRequest request, HttpServletResponse response, WxBillDaily wxBillDaily); + } diff --git a/mallinkService/src/main/java/com/iformall/service/WxBillOtherDepositService.java b/mallinkService/src/main/java/com/iformall/service/WxBillOtherDepositService.java index ab5c4667f..8257bc710 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxBillOtherDepositService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxBillOtherDepositService.java @@ -5,6 +5,8 @@ import com.iformall.common.ResultData; import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.WxBillOtherDeposit; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.util.Map; /** @@ -20,7 +22,7 @@ public interface WxBillOtherDepositService { * @param record * @return */ - PageInfo> listAsPage(WxBillOtherDeposit record, Integer pageIndex, Integer pageSize); + PageInfo listAsPage(WxBillOtherDeposit record, Integer pageIndex, Integer pageSize); void updateBillStatus(WxBillOtherDeposit record); @@ -30,7 +32,7 @@ public interface WxBillOtherDepositService { * @param id * @return */ - Map getById(Long id); + WxBillOtherDeposit getById(Long id); /** * 保存或更新实体 @@ -53,4 +55,7 @@ public interface WxBillOtherDepositService { ResultData returnDeposit(WxBillOtherDeposit wxBillDeposit, MallUserInfo user); ResultData adjustDeposit(WxBillOtherDeposit wxBillDeposit); + + void exportBill(HttpServletRequest request, HttpServletResponse response, WxBillOtherDeposit wxBillDeposit); + } diff --git a/mallinkService/src/main/java/com/iformall/service/WxBillOtherService.java b/mallinkService/src/main/java/com/iformall/service/WxBillOtherService.java index aeb5cbe4e..42e42ae6e 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxBillOtherService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxBillOtherService.java @@ -5,6 +5,8 @@ import com.iformall.common.ResultData; import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.WxBillOther; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.util.Map; /** @@ -20,7 +22,7 @@ public interface WxBillOtherService { * @param record * @return */ - PageInfo> listAsPage(WxBillOther record, Integer pageIndex, Integer pageSize); + PageInfo listAsPage(WxBillOther record, Integer pageIndex, Integer pageSize); void updateBillStatus(WxBillOther record); @@ -30,7 +32,7 @@ public interface WxBillOtherService { * @param id * @return */ - Map getById(Long id); + WxBillOther getById(Long id); /** * 保存或更新实体 @@ -50,4 +52,6 @@ public interface WxBillOtherService { ResultData updatePaid(Long id); + void exportBill(HttpServletRequest request, HttpServletResponse response, WxBillOther wxBillOther); + } diff --git a/mallinkService/src/main/java/com/iformall/service/WxBillPropertyService.java b/mallinkService/src/main/java/com/iformall/service/WxBillPropertyService.java index bd2640c70..dff950e39 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxBillPropertyService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxBillPropertyService.java @@ -6,6 +6,8 @@ import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.WxBillProperty; import com.iformall.domain.po.WxBillRent; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.util.Map; /** @@ -22,7 +24,7 @@ public interface WxBillPropertyService { * @param record * @return */ - PageInfo> listAsPage(WxBillProperty record, Integer pageIndex, Integer pageSize); + PageInfo listAsPage(WxBillProperty record, Integer pageIndex, Integer pageSize); void updateBillStatus(WxBillProperty record); @@ -32,7 +34,7 @@ public interface WxBillPropertyService { * @param id * @return */ - Map getById(Long id); + WxBillProperty getById(Long id); /** * 保存或更新实体 @@ -50,7 +52,7 @@ public interface WxBillPropertyService { void deleteById(Long id); - PageInfo> findByPropertyContractId(Long id, String tenantId, Integer pageIndex, Integer pageSize); + PageInfo findByPropertyContractId(Long id, String tenantId, Integer pageIndex, Integer pageSize); ResultData updatePaid(Long id); @@ -58,4 +60,6 @@ public interface WxBillPropertyService { ResultData updateLatePayStatus(WxBillProperty wxBillProperty); + void exportBill(HttpServletRequest request, HttpServletResponse response, WxBillProperty wxBillProperty); + } diff --git a/mallinkService/src/main/java/com/iformall/service/WxBillRentService.java b/mallinkService/src/main/java/com/iformall/service/WxBillRentService.java index 1961f7970..666bd1601 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxBillRentService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxBillRentService.java @@ -6,6 +6,9 @@ import com.iformall.common.ResultData; import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.WxBillRent; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + /** * @author gongbiao */ @@ -19,7 +22,7 @@ public interface WxBillRentService { * @param record * @return */ - PageInfo> listAsPage(WxBillRent record, Integer pageIndex, Integer pageSize); + PageInfo listAsPage(WxBillRent record, Integer pageIndex, Integer pageSize); void updateBillStatus(WxBillRent record); @@ -29,7 +32,7 @@ public interface WxBillRentService { * @param id * @return */ - Map getById(Long id); + WxBillRent getById(Long id); /** * 保存或更新实体 @@ -47,7 +50,7 @@ public interface WxBillRentService { void deleteById(Long id); - PageInfo> findByRentContractId(Long id, String tenantId, Integer pageIndex, Integer pageSize); + PageInfo findByRentContractId(Long id, String tenantId, Integer pageIndex, Integer pageSize); ResultData updatePaid(Long id); @@ -57,4 +60,7 @@ public interface WxBillRentService { ResultData updateLatePayStatus(WxBillRent wxBillRent); + + void exportBill(HttpServletRequest request, HttpServletResponse response, WxBillRent wxBillRent); + } diff --git a/mallinkService/src/main/java/com/iformall/service/WxBusinessService.java b/mallinkService/src/main/java/com/iformall/service/WxBusinessService.java index a9d7b27e0..792bb815d 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxBusinessService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxBusinessService.java @@ -1,8 +1,12 @@ package com.iformall.service; import com.github.pagehelper.PageInfo; +import com.iformall.common.ResultData; import com.iformall.domain.po.WxBusiness; +import org.springframework.web.bind.annotation.ModelAttribute; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.util.List; public interface WxBusinessService { @@ -40,12 +44,12 @@ public interface WxBusinessService { */ WxBusiness getById(Integer id); - - - - - - - + + ResultData businessDataList(WxBusiness wxBusiness); + + ResultData devoteList(WxBusiness wxBusiness,Integer pageNum, Integer pageSize); + + + } diff --git a/mallinkService/src/main/java/com/iformall/service/WxCUserBasicInfoService.java b/mallinkService/src/main/java/com/iformall/service/WxCUserBasicInfoService.java index 4f4201ba3..6a09bff7c 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCUserBasicInfoService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCUserBasicInfoService.java @@ -80,7 +80,7 @@ public interface WxCUserBasicInfoService { void deleteById(Long id); List findByPhone(String tenantId, String phone); - List findInfoByPhone(String tenantId, String phone); + WxCUserBasicInfo findInfoByPhone(String tenantId, String phone); /** * 修改会员积分 diff --git a/mallinkService/src/main/java/com/iformall/service/WxCardInfoService.java b/mallinkService/src/main/java/com/iformall/service/WxCardInfoService.java index 5dc04a51d..711e4be3f 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCardInfoService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCardInfoService.java @@ -4,7 +4,8 @@ import com.github.pagehelper.PageInfo; import com.iformall.domain.po.WxCardInfo; import com.iformall.domain.vo.WxCardVo; -import java.util.List; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; public interface WxCardInfoService { @@ -39,12 +40,8 @@ public interface WxCardInfoService { * @param id */ void deleteById(Long id); - - - - - - - + + void exportData(WxCardVo wxCardVo, HttpServletRequest request, HttpServletResponse response); + } diff --git a/mallinkService/src/main/java/com/iformall/service/WxCouponService.java b/mallinkService/src/main/java/com/iformall/service/WxCouponService.java index cb260e70c..b977c216e 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCouponService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCouponService.java @@ -200,5 +200,6 @@ public interface WxCouponService { */ ResultData updateCouponStockAndEndTime(WxCoupon wxCoupon); + WxCoupon findById(WxCoupon wxCoupon); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java b/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java index 8b85b3cf7..dded89db5 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java @@ -100,4 +100,6 @@ public interface WxMerchantService { ResultData useAccount(WxProfitSharingReceiver wxProfitSharingReceiver); + boolean hasMerchant(WxMerchant wxMerchant); + } diff --git a/mallinkService/src/main/java/com/iformall/service/WxMsgLimitService.java b/mallinkService/src/main/java/com/iformall/service/WxMsgLimitService.java new file mode 100644 index 000000000..e86a7accb --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/WxMsgLimitService.java @@ -0,0 +1,9 @@ +package com.iformall.service; + +import com.iformall.domain.po.WxMsgLimit; + +public interface WxMsgLimitService { + + boolean checkIsLimit(WxMsgLimit record); + +} diff --git a/mallinkService/src/main/java/com/iformall/service/WxSubBusinessService.java b/mallinkService/src/main/java/com/iformall/service/WxSubBusinessService.java index 8b9ac1af5..1369f3d5d 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxSubBusinessService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxSubBusinessService.java @@ -40,5 +40,5 @@ public interface WxSubBusinessService { */ WxSubBusiness getById(Integer id); - + } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/MarkingDataReportServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/MarkingDataReportServiceImpl.java index af9893e64..63db6d428 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/MarkingDataReportServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/MarkingDataReportServiceImpl.java @@ -230,7 +230,7 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { msdVo.setMicroPaySendCount(tvo.getCount()); } - Optional orderSend = sceneList.stream().filter(c -> c.getXTime().equals(tj) && c.getChannelType() == EnumCouponSendSendType.B_MICROPAY.getCode()).findFirst(); + Optional orderSend = sceneList.stream().filter(c -> c.getXTime().equals(tj) && c.getChannelType() == EnumCouponSendSendType.C_ORDER.getCode()).findFirst(); if(!orderSend.isPresent()) { msdVo.setOrderSendCount(0); } else { @@ -391,7 +391,7 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { params.put("cmdType", EnumCarCmd.CAR_ETCP_CALLBACK_PARK_IN.getCode()); List markingSceneDataVos = wxCarCmdLogMapper.queryForSceneRepotyHistoryCar(params); - triggerCountMap = markingSceneDataVos.stream().collect(Collectors.toMap(MarkingSceneDataVo::getXTime, p -> p.getTriggerCount())); + triggerCountMap = markingSceneDataVos.stream().collect(Collectors.toMap(MarkingSceneDataVo::getXtime, p -> p.getTriggerCount())); } else if(markingCouponDataReportDto.getType().equals(EnumCouponSendSendType.B_MICROPAY.getCode())){ // B端刷卡支付发券 //获取B端刷卡数 params.clear(); @@ -402,7 +402,7 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { params.put("endTime", convertDateAndAdd(markingCouponDataReportDto.getEndTime(), 1)); params.put("type", EnumOrderType.MICROPAY.getCode()); List markingSceneDataVos = wxOrderMapper.queryForSceneRepotyHistory(params); - triggerCountMap = markingSceneDataVos.stream().collect(Collectors.toMap(MarkingSceneDataVo::getXTime, p -> p.getTriggerCount())); + triggerCountMap = markingSceneDataVos.stream().collect(Collectors.toMap(MarkingSceneDataVo::getXtime, p -> p.getTriggerCount())); } else if (markingCouponDataReportDto.getType().equals(EnumCouponSendSendType.COUPON_VERIFY.getCode())) { //获取核销数 params.clear(); @@ -412,7 +412,7 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { if (markingCouponDataReportDto.getEndTime() != null) params.put("endTime", convertDateAndAdd(markingCouponDataReportDto.getEndTime(), 1)); List markingSceneDataVos = wxCouponOrderMapper.queryForSceneRepotyHistoryVerified(params); - triggerCountMap = markingSceneDataVos.stream().collect(Collectors.toMap(MarkingSceneDataVo::getXTime, p -> p.getTriggerCount())); + triggerCountMap = markingSceneDataVos.stream().collect(Collectors.toMap(MarkingSceneDataVo::getXtime, p -> p.getTriggerCount())); }else if (markingCouponDataReportDto.getType().equals(EnumCouponSendSendType.C_ORDER.getCode())) { //购买发券数 params.clear(); @@ -422,13 +422,13 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { if (markingCouponDataReportDto.getEndTime() != null) params.put("endTime", convertDateAndAdd(markingCouponDataReportDto.getEndTime(), 1)); List markingSceneDataVos = wxCouponOrderMapper.queryForSceneRepotyHistoryOrdered(params); - triggerCountMap = markingSceneDataVos.stream().collect(Collectors.toMap(MarkingSceneDataVo::getXTime, p -> p.getTriggerCount())); + triggerCountMap = markingSceneDataVos.stream().collect(Collectors.toMap(MarkingSceneDataVo::getXtime, p -> p.getTriggerCount())); } NumberFormat nf = NumberFormat.getPercentInstance(); nf.setMinimumFractionDigits(2); for (MarkingSceneDataVo vo : list) { - vo.setVerifiedCount(countMap.get(vo.getXTime()) == null ? 0 : countMap.get(vo.getXTime())); - vo.setTriggerCount(triggerCountMap.get(vo.getXTime()) == null ? 0 : triggerCountMap.get(vo.getXTime())); + vo.setVerifiedCount(countMap.get(vo.getXtime()) == null ? 0 : countMap.get(vo.getXtime())); + vo.setTriggerCount(triggerCountMap.get(vo.getXtime()) == null ? 0 : triggerCountMap.get(vo.getXtime())); if(vo.getSendCount()==0){ vo.setVerifiedPercent("--"); }else { @@ -445,20 +445,18 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { MarkingCouponDataReportDto markingCouponDataReportDto = new MarkingCouponDataReportDto(); markingCouponDataReportDto.setTenantId(tenantId); - //if (StringUtils.isNotBlank(startDate)) - //markingCouponDataReportDto.setStartTime(startDate); - // if (StringUtils.isNotBlank(endDate)) - //markingCouponDataReportDto.setEndTime(endDate); - + Date starttime = DateUtils.stringToDate(startDate); + markingCouponDataReportDto.setStartTime(starttime); + Date endtime = DateUtils.stringToDate(endDate, "yyyy-MM-dd 23:59:59"); + markingCouponDataReportDto.setEndTime(endtime); List days = DateUtils.getTjTimeList(startDate.substring(0,10),endDate.substring(0,10),"0"); TreeMap historyMap = new TreeMap<>(); //停车发券 -// params.put("channelType", EnumCouponSendSendType.CAR_STOP.getCode()); -// markingCouponDataReportDto.setCouponType(); + markingCouponDataReportDto.setChannelType(EnumCouponSendSendType.CAR_STOP.getCode()); List carStopList = wxCouponActionLogMapper.sceneDataList(markingCouponDataReportDto); - Map countMap = carStopList.stream().collect(Collectors.toMap(MarkingSceneDataVo::getXTime, p -> p.getSendCount())); + Map countMap = carStopList.stream().collect(Collectors.toMap(MarkingSceneDataVo::getXtime, p -> p.getSendCount())); for (String date:days) { historyMap.put(date.substring(5,date.length()).replace("-","/"),"0"); } @@ -469,9 +467,9 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { result.put("carStopHistory",historyMap); //核销发券 -// params.put("channelType", EnumCouponSendSendType.COUPON_VERIFY.getCode()); + markingCouponDataReportDto.setChannelType(EnumCouponSendSendType.COUPON_VERIFY.getCode()); List couponVerifyList = wxCouponActionLogMapper.sceneDataList(markingCouponDataReportDto); - countMap = couponVerifyList.stream().collect(Collectors.toMap(MarkingSceneDataVo::getXTime, p -> p.getSendCount())); + countMap = couponVerifyList.stream().collect(Collectors.toMap(MarkingSceneDataVo::getXtime, p -> p.getSendCount())); historyMap = new TreeMap<>(); for (String date:days) { historyMap.put(date.substring(5,date.length()).replace("-","/"),"0"); @@ -483,9 +481,9 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { result.put("couponVerifyHistory",historyMap); //交易发券 - //params.put("channelType", EnumCouponSendSendType.C_ORDER.getCode()); + markingCouponDataReportDto.setChannelType(EnumCouponSendSendType.C_ORDER.getCode()); List orderList = wxCouponActionLogMapper.sceneDataList(markingCouponDataReportDto); - countMap = orderList.stream().collect(Collectors.toMap(MarkingSceneDataVo::getXTime, p -> p.getSendCount())); + countMap = orderList.stream().collect(Collectors.toMap(MarkingSceneDataVo::getXtime, p -> p.getSendCount())); historyMap = new TreeMap<>(); for (String date:days) { historyMap.put(date.substring(5,date.length()).replace("-","/"),"0"); @@ -497,9 +495,9 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { result.put("orderHistory",historyMap); //收银台发券 - // params.put("channelType", EnumCouponSendSendType.B_MICROPAY.getCode()); + markingCouponDataReportDto.setChannelType(EnumCouponSendSendType.B_MICROPAY.getCode()); List micropayList = wxCouponActionLogMapper.sceneDataList(markingCouponDataReportDto); - countMap = micropayList.stream().collect(Collectors.toMap(MarkingSceneDataVo::getXTime, p -> p.getSendCount())); + countMap = micropayList.stream().collect(Collectors.toMap(MarkingSceneDataVo::getXtime, p -> p.getSendCount())); historyMap = new TreeMap<>(); for (String date:days) { historyMap.put(date.substring(5,date.length()).replace("-","/"),"0"); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/PushLimitServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/PushLimitServiceImpl.java index 0536af391..50f1e170c 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/PushLimitServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/PushLimitServiceImpl.java @@ -3,6 +3,7 @@ package com.iformall.service.impl; import com.iformall.common.ErrorCode; import com.iformall.common.IdWorker; import com.iformall.domain.po.PushLimit; +import com.iformall.enums.EnumEnableType; import com.iformall.exception.MallinkException; import com.iformall.mapper.PushLimitMapper; import com.iformall.mapper.WxCouponActionLogMapper; @@ -62,6 +63,7 @@ public class PushLimitServiceImpl implements PushLimitService { pushLimit.setCouponDay(10); pushLimit.setTimeStart("8:00"); pushLimit.setTimeEnd("23:00"); + pushLimit.setEnable(EnumEnableType.Enable.getCode()); Date curDate = new Date(); pushLimit.setCreateTime(curDate); pushLimit.setUpdateTime(curDate); @@ -92,6 +94,10 @@ public class PushLimitServiceImpl implements PushLimitService { Date curDate = new Date(); // 1. get tenant limit PushLimit pushLimit = getPushLimit(tenantId); + // 1.1 疲劳度是否启用 + if(pushLimit.getEnable().equals(EnumEnableType.Disable.getCode())) { + return true; + } // 2. check time boolean isInDate = DateUtils.isInDate(curDate, pushLimit.getTimeStart(), pushLimit.getTimeEnd()); if (!isInDate) { @@ -106,6 +112,10 @@ public class PushLimitServiceImpl implements PushLimitService { Date curDate = new Date(); // 1. get tenant limit PushLimit pushLimit = getPushLimit(tenantId); + // 1.1 疲劳度是否启用 + if(pushLimit.getEnable().equals(EnumEnableType.Disable.getCode())) { + return true; + } // 2. check time boolean isInDate = DateUtils.isInDate(curDate, pushLimit.getTimeStart(), pushLimit.getTimeEnd()); if (!isInDate) { @@ -121,6 +131,10 @@ public class PushLimitServiceImpl implements PushLimitService { Date curDate = new Date(); // 1. get tenant limit PushLimit pushLimit = getPushLimit(tenantId); + // 1.1 疲劳度是否启用 + if(pushLimit.getEnable().equals(EnumEnableType.Disable.getCode())) { + return true; + } // 2. check time 是否在给定的时间段内 boolean isInDate = DateUtils.isInDate(curDate, pushLimit.getTimeStart(), pushLimit.getTimeEnd()); if (!isInDate) { diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillActionServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillActionServiceImpl.java index 5e1b4e443..2994d27c3 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillActionServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillActionServiceImpl.java @@ -5,7 +5,6 @@ import com.github.pagehelper.PageInfo; import com.iformall.common.IdWorker; import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.WxBillAction; -import com.iformall.enums.EnumBillAction; import com.iformall.mapper.WxBillActionMapper; import com.iformall.service.WxBillActionService; import org.slf4j.Logger; @@ -13,7 +12,6 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.math.BigDecimal; import java.util.Date; /** @@ -49,10 +47,8 @@ public class WxBillActionServiceImpl implements WxBillActionService { WxBillAction wxBillAction = new WxBillAction(); wxBillAction.setId(idWorker.nextId()); wxBillAction.setBillId(action.getBillId()); - String oldPrice = new BigDecimal(action.getOldPrice()).divide(new BigDecimal(100)).toPlainString(); - String newPrice = new BigDecimal(action.getNewPrice()).divide(new BigDecimal(100)).toPlainString(); - wxBillAction.setDetails(oldPrice + "元变更成" + newPrice + "元"); - wxBillAction.setAction(EnumBillAction.UPDATE_BILL.getCode()); + wxBillAction.setDetails(action.getDetails()); + wxBillAction.setAction(action.getAction()); wxBillAction.setUserId(user.getId()); wxBillAction.setUserName(user.getName()); wxBillAction.setPhone(user.getPhone()); 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 5bfca0f61..d190d0649 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.iformall.common.ErrorCode; +import com.iformall.common.IdWorker; import com.iformall.common.ResultData; import com.iformall.domain.po.*; import com.iformall.domain.po.msg.MailMsg; @@ -22,6 +23,7 @@ import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletRequest; @@ -29,6 +31,7 @@ import javax.servlet.http.HttpServletResponse; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.*; +import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; /** @@ -107,6 +110,12 @@ public class WxBillAllServiceImpl implements WxBillAllService { @Autowired private WxPayAccountBillMapper wxPayAccountBillMapper; + @Autowired + WxMerchantShopMapper wxMerchantShopMapper; + + @Autowired + StringRedisTemplate stringRedisTemplate; + @Override public Map listAsPage(WxBillAll record, Integer pageIndex, Integer pageSize) { //更新各账单状态 @@ -867,11 +876,318 @@ public class WxBillAllServiceImpl implements WxBillAllService { public void addBillAction(Long billId, Long oldPrice, Long newPrice, MallUserInfo mallUserInfo) { WxBillAction wxBillAction = new WxBillAction(); wxBillAction.setBillId(billId); - wxBillAction.setOldPrice(oldPrice); - wxBillAction.setNewPrice(newPrice); + String oldPriceStr = new BigDecimal(oldPrice).divide(new BigDecimal(100)).toPlainString(); + String newPriceStr = new BigDecimal(newPrice).divide(new BigDecimal(100)).toPlainString(); + wxBillAction.setDetails(oldPriceStr + "元变更成" + newPriceStr + "元"); + wxBillAction.setAction(EnumBillAction.UPDATE_BILL.getCode()); wxBillActionService.modifyBill(wxBillAction, mallUserInfo); } + @Override + public void exportTemplate(WxBillExcelTemplate WxBillExcelTemplate, HttpServletRequest request, HttpServletResponse response) { + List datalist = new ArrayList<>(); + Integer billType = WxBillExcelTemplate.getBillType(); + if (billType.equals(EnumBillExcelTemplate.DAILY.getCode())) { + WxBillExcelTemplateOther one = new WxBillExcelTemplateOther(); + Date date = new Date(); + one.setMerchantName("商户1"); + one.setBillType(billType); + one.setBillAttr("水费"); + one.setStarttime(date); + one.setEndtime(date); + one.setPayStr("1000"); + one.setPayDate(date); + one.setReceiveDate(date); + one.setPayWay("微信"); + datalist.add(one); + + WxBillExcelTemplateOther two = new WxBillExcelTemplateOther(); + two.setMerchantName("商户2"); + two.setBillType(billType); + two.setBillAttr("电费"); + two.setStarttime(date); + two.setEndtime(date); + two.setPayStr("2000.50"); + two.setPayDate(date); + two.setReceiveDate(date); + two.setPayWay("支付宝"); + datalist.add(two); + + WxBillExcelTemplateOther three = new WxBillExcelTemplateOther(); + three.setMerchantName("商户3"); + three.setBillType(billType); + three.setBillAttr("空调费"); + three.setStarttime(date); + three.setEndtime(date); + three.setPayStr("3333"); + three.setPayDate(date); + three.setReceiveDate(date); + three.setPayWay("其他"); + datalist.add(three); + } else { + + WxBillExcelTemplateOther one = new WxBillExcelTemplateOther(); + Date date = new Date(); + one.setMerchantName("商户"); + one.setBillType(billType); + if (billType.equals(EnumBillExcelTemplate.SHOP_RENT.getCode()) || billType.equals(EnumBillExcelTemplate.POINT_RENT.getCode())) { + one.setBillAttr("租金"); + } else if (billType.equals(EnumBillExcelTemplate.SHOP_PROPERTY.getCode()) || billType.equals(EnumBillExcelTemplate.POINT_PROPERTY.getCode())) { + one.setBillAttr("物业费"); + } else if (billType.equals(EnumBillExcelTemplate.OTHER.getCode())) { + one.setBillAttr("其他费用"); + } else { + one.setBillAttr("其他押金"); + } + one.setStarttime(date); + one.setEndtime(date); + one.setPayStr("2000.50"); + one.setReceiveDate(date); + one.setPayDate(date); + one.setPayWay("微信"); + datalist.add(one); + } + excelService.exportExcel(datalist, null, "账单模板", WxBillExcelTemplateOther.class, "账单模板.xlsx", response, true); + + } + + @Override + public void importBill(String tenantId, String importKey, WxBillExcelTemplateOther bill, MallUserInfo user) { + //租金 + Integer billType = bill.getBillType(); + if (billType.equals(EnumBillExcelTemplate.SHOP_RENT.getCode()) || billType.equals(EnumBillExcelTemplate.POINT_RENT.getCode())) { + WxBillRent rentQuery = new WxBillRent(); + rentQuery.setTenantId(tenantId); + rentQuery.setMerchantId(bill.getMerchantId()); + rentQuery.setStarttime(bill.getStarttime()); + rentQuery.setEndtime(bill.getEndtime()); + if (billType.equals(EnumBillExcelTemplate.SHOP_RENT.getCode())) { + rentQuery.setRentShopType(EnumRentShopType.SHOP.getCode()); + } else { + rentQuery.setRentShopType(EnumRentShopType.POINT.getCode()); + } + rentQuery.setIsPreview(EnumIsPreview.NO.getCode()); + WxBillRent rent = wxBillRentMapper.selectBillOne(rentQuery); + if (rent != null && !rent.getStatus().equals(EnumBillRentStatus.PAID.getCode())) { + long pay = new BigDecimal(bill.getPayStr()).multiply(new BigDecimal(100)).longValueExact(); + if (rent.getOwe() <= pay) { + rent.setStatus(EnumBillRentStatus.PAID.getCode()); + } + rent.setPay(rent.getPay() + pay); + rent.setOwe(rent.getOwe() - pay); + rent.setPayDate(bill.getPayDate()); + rent.setReceiveDate(bill.getReceiveDate()); + wxBillRentMapper.updateByPrimaryKey(rent); + addActionImport(rent.getId(), bill.getPayWay(), bill.getPayDate(), user); + } + } else if (billType.equals(EnumBillExcelTemplate.SHOP_PROPERTY.getCode()) || billType.equals(EnumBillExcelTemplate.POINT_PROPERTY.getCode())) { + WxBillProperty propertyQuery = new WxBillProperty(); + propertyQuery.setTenantId(tenantId); + propertyQuery.setMerchantId(bill.getMerchantId()); + propertyQuery.setStarttime(bill.getStarttime()); + propertyQuery.setEndtime(bill.getEndtime()); + if (billType.equals(EnumBillExcelTemplate.SHOP_PROPERTY.getCode())) { + propertyQuery.setRentShopType(EnumRentShopType.SHOP.getCode()); + } else { + propertyQuery.setRentShopType(EnumRentShopType.POINT.getCode()); + } + propertyQuery.setIsPreview(EnumIsPreview.NO.getCode()); + WxBillProperty property = wxBillPropertyMapper.selectBillOne(propertyQuery); + if (property != null && !property.getStatus().equals(EnumBillRentStatus.PAID.getCode())) { + long pay = new BigDecimal(bill.getPayStr()).multiply(new BigDecimal(100)).longValueExact(); + if (property.getOwe() <= pay) { + property.setStatus(EnumBillRentStatus.PAID.getCode()); + } + property.setPay(property.getPay() + pay); + property.setOwe(property.getOwe() - pay); + property.setPayDate(bill.getPayDate()); + property.setReceiveDate(bill.getReceiveDate()); + wxBillPropertyMapper.updateByPrimaryKey(property); + addActionImport(property.getId(), bill.getPayWay(), bill.getPayDate(), user); + } + } else if (billType.equals(EnumBillExcelTemplate.DAILY.getCode())) { + WxBillDaily dailyQuery = new WxBillDaily(); + String billAttrStr = StringUtils.trim(bill.getBillAttr()); + if (billAttrStr.equals(EnumBillExcelTemplateDaily.WATER.getMessage())) { + dailyQuery.setType(EnumBillDailyType.WATER.getCode()); + } + if (billAttrStr.equals(EnumBillExcelTemplateDaily.POWER.getMessage())) { + dailyQuery.setType(EnumBillDailyType.POWER.getCode()); + } + if (billAttrStr.equals(EnumBillExcelTemplateDaily.AIR_CONDITIONING.getMessage())) { + dailyQuery.setType(EnumBillDailyType.AIR_CONDITIONING.getCode()); + } + dailyQuery.setTenantId(tenantId); + dailyQuery.setMerchantId(bill.getMerchantId()); + dailyQuery.setReceiveDate(bill.getReceiveDate()); + dailyQuery.setIsDel(EnumDelStatus.NOT_DEL.getCode()); + WxBillDaily daily = wxBillDailyMapper.selectOne(dailyQuery); + long pay = new BigDecimal(bill.getPayStr()).multiply(new BigDecimal(100)).longValueExact(); + if (daily != null) { + if (!daily.getStatus().equals(EnumBillRentStatus.PAID.getCode())) { + if (daily.getOwe() <= pay) { + daily.setStatus(EnumBillRentStatus.PAID.getCode()); + } + daily.setPay(daily.getPay() + pay); + daily.setOwe(daily.getOwe() - pay); + daily.setPayDate(bill.getPayDate()); + daily.setReceiveDate(bill.getReceiveDate()); + wxBillDailyMapper.updateByPrimaryKey(daily); + addActionImport(daily.getId(), bill.getPayWay(), bill.getPayDate(), user); + } + } else { + WxMerchantShop wxMerchantShop = new WxMerchantShop(); + wxMerchantShop.setTenantId(tenantId); + wxMerchantShop.setMerchantId(bill.getMerchantId()); + wxMerchantShop.setIsDel(EnumDelStatus.NOT_DEL.getCode()); + List select = wxMerchantShopMapper.select(wxMerchantShop); + if (!select.isEmpty()) { + daily = new WxBillDaily(); + final IdWorker idWorker = IdWorker.get(); + daily.setId(idWorker.nextId()); + daily.setStatus(EnumBillRentStatus.PAID.getCode()); + daily.setReceivePay(pay); + daily.setReceiveDate(bill.getReceiveDate()); + daily.setPay(pay); + daily.setType(dailyQuery.getType()); + daily.setTenantId(tenantId); + daily.setMerchantId(bill.getMerchantId()); + daily.setShopId(select.get(0).getShopId()); + daily.setRentShopType(bill.getMerchantType()); + daily.setPayDate(bill.getPayDate()); + Date date = new Date(); + daily.setCreatetime(date); + daily.setUpdatetime(date); + daily.setExpiredDay(0L); + daily.setOwe(0L); + daily.setIsDel(EnumDelStatus.NOT_DEL.getCode()); + wxBillDailyMapper.insertSelective(daily); + addActionImport(daily.getId(), bill.getPayWay(), bill.getPayDate(), user); + } + } + } else if (billType.equals(EnumBillExcelTemplate.OTHER.getCode())) { + WxBillOther otherQuery = new WxBillOther(); + otherQuery.setTenantId(tenantId); + otherQuery.setMerchantId(bill.getMerchantId()); + otherQuery.setReceiveDate(bill.getReceiveDate()); + otherQuery.setIsDel(EnumDelStatus.NOT_DEL.getCode()); + WxBillOther other = wxBillOtherMapper.selectOne(otherQuery); + long pay = new BigDecimal(bill.getPayStr()).multiply(new BigDecimal(100)).longValueExact(); + if (other != null) { + if (!other.getStatus().equals(EnumBillRentStatus.PAID.getCode())) { + if (other.getOwe() <= pay) { + other.setStatus(EnumBillRentStatus.PAID.getCode()); + } + other.setName(bill.getBillAttr()); + other.setComments(bill.getBillAttr()); + other.setPay(other.getPay() + pay); + other.setOwe(other.getOwe() - pay); + other.setPayDate(bill.getPayDate()); + other.setReceiveDate(bill.getReceiveDate()); + wxBillOtherMapper.updateByPrimaryKey(other); + addActionImport(other.getId(), bill.getPayWay(), bill.getPayDate(), user); + } + } else { + WxMerchantShop wxMerchantShop = new WxMerchantShop(); + wxMerchantShop.setTenantId(tenantId); + wxMerchantShop.setMerchantId(bill.getMerchantId()); + wxMerchantShop.setIsDel(EnumDelStatus.NOT_DEL.getCode()); + List select = wxMerchantShopMapper.select(wxMerchantShop); + if (!select.isEmpty()) { + other = new WxBillOther(); + final IdWorker idWorker = IdWorker.get(); + other.setId(idWorker.nextId()); + other.setName(bill.getBillAttr()); + other.setComments(bill.getBillAttr()); + other.setStatus(EnumBillRentStatus.PAID.getCode()); + other.setReceivePay(pay); + other.setReceiveDate(bill.getReceiveDate()); + other.setPay(pay); + other.setTenantId(tenantId); + other.setMerchantId(bill.getMerchantId()); + other.setShopId(select.get(0).getShopId()); + other.setRentShopType(bill.getMerchantType()); + other.setPayDate(bill.getPayDate()); + Date date = new Date(); + other.setCreatetime(date); + other.setUpdatetime(date); + other.setExpiredDay(0L); + other.setOwe(0L); + other.setIsDel(EnumDelStatus.NOT_DEL.getCode()); + wxBillOtherMapper.insertSelective(other); + addActionImport(other.getId(), bill.getPayWay(), bill.getPayDate(), user); + } + } + } else if (billType.equals(EnumBillExcelTemplate.OTHER_DEPOSIT.getCode())) { + WxBillOtherDeposit otherDepositQuery = new WxBillOtherDeposit(); + otherDepositQuery.setTenantId(tenantId); + otherDepositQuery.setMerchantId(bill.getMerchantId()); + otherDepositQuery.setReceiveDate(bill.getReceiveDate()); + otherDepositQuery.setIsDel(EnumDelStatus.NOT_DEL.getCode()); + WxBillOtherDeposit otherDeposit = wxBillOtherDepositMapper.selectOne(otherDepositQuery); + long pay = new BigDecimal(bill.getPayStr()).multiply(new BigDecimal(100)).longValueExact(); + if (otherDeposit != null) { + if (!otherDeposit.getStatus().equals(EnumBillRentStatus.PAID.getCode())) { + if (otherDeposit.getOwe() <= pay) { + otherDeposit.setStatus(EnumBillRentStatus.PAID.getCode()); + } + otherDeposit.setPay(otherDeposit.getPay() + pay); + otherDeposit.setOwe(otherDeposit.getOwe() - pay); + otherDeposit.setPayDate(bill.getPayDate()); + otherDeposit.setReceiveDate(bill.getReceiveDate()); + wxBillOtherDepositMapper.updateByPrimaryKey(otherDeposit); + addActionImport(otherDeposit.getId(), bill.getPayWay(), bill.getPayDate(), user); + } + } else { + WxMerchantShop wxMerchantShop = new WxMerchantShop(); + wxMerchantShop.setTenantId(tenantId); + wxMerchantShop.setMerchantId(bill.getMerchantId()); + otherDepositQuery.setReceiveDate(bill.getReceiveDate()); + wxMerchantShop.setIsDel(EnumDelStatus.NOT_DEL.getCode()); + List select = wxMerchantShopMapper.select(wxMerchantShop); + if (!select.isEmpty()) { + otherDeposit = new WxBillOtherDeposit(); + final IdWorker idWorker = IdWorker.get(); + otherDeposit.setId(idWorker.nextId()); + otherDeposit.setName(bill.getBillAttr()); + otherDeposit.setComments(bill.getBillAttr()); + otherDeposit.setStatus(EnumBillRentStatus.PAID.getCode()); + otherDeposit.setReceivePay(pay); + otherDeposit.setReceiveDate(bill.getReceiveDate()); + otherDeposit.setPay(pay); + otherDeposit.setTenantId(tenantId); + otherDeposit.setMerchantId(bill.getMerchantId()); + otherDeposit.setShopId(select.get(0).getShopId()); + otherDeposit.setRentShopType(bill.getMerchantType()); + otherDeposit.setPayDate(bill.getPayDate()); + Date date = new Date(); + otherDeposit.setCreatetime(date); + otherDeposit.setUpdatetime(date); + otherDeposit.setExpiredDay(0L); + otherDeposit.setOwe(0L); + otherDeposit.setIsDel(EnumDelStatus.NOT_DEL.getCode()); + wxBillOtherDepositMapper.insertSelective(otherDeposit); + addActionImport(otherDeposit.getId(), bill.getPayWay(), bill.getPayDate(), user); + } + } + } else { + logger.error("账单导入失败"); + } + //记数 + stringRedisTemplate.opsForHash().increment(importKey, "processCount", 1); + stringRedisTemplate.expire(importKey, 10, TimeUnit.SECONDS); + } + + public void addActionImport(Long billId, String payWay, Date payDate, MallUserInfo user) { + WxBillAction wxBillAction = new WxBillAction(); + wxBillAction.setBillId(billId); + String details = StringUtils.isEmpty(payWay) ? "其他缴费" : payWay + "缴费"; + wxBillAction.setDetails(details); + wxBillAction.setAction(EnumBillAction.IMPORT_PAY.getCode()); + wxBillAction.setPayDate(payDate); + wxBillActionService.modifyBill(wxBillAction, user); + } + public void updateDailyBill(Long businessId, Long newPrice, Date updateDate) { WxBillDaily dbBill = wxBillDailyMapper.selectByPrimaryKey(businessId); WxBillDaily wxBillDaily = new WxBillDaily(); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillDailyServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillDailyServiceImpl.java index 08430b006..45cfbd4e0 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillDailyServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillDailyServiceImpl.java @@ -7,6 +7,7 @@ import com.iformall.common.IdWorker; import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.domain.po.*; +import com.iformall.domain.vo.WxBillDailyExportVo; import com.iformall.domain.vo.WxBillDailyVo; import com.iformall.enums.*; import com.iformall.exception.MallinkException; @@ -51,13 +52,13 @@ public class WxBillDailyServiceImpl implements WxBillDailyService { @Autowired WxMerchantShopMapper wxMerchantShopMapper; @Override - public PageInfo> listAsPage(WxBillDaily record, Integer pageIndex, Integer pageSize) { + public PageInfo listAsPage(WxBillDaily record, Integer pageIndex, Integer pageSize) { //分页对象设置页数和条数 PageHelper.startPage(pageIndex, pageSize); //查询 - List> billDepositList = wxBillDailyMapper.queryBillDailyList(record); + List billDepositList = wxBillDailyMapper.queryBillDailyList(record); //结果放入分页对象 - PageInfo> pageInfo = new PageInfo<>(billDepositList); + PageInfo pageInfo = new PageInfo<>(billDepositList); return pageInfo; } @@ -102,18 +103,17 @@ public class WxBillDailyServiceImpl implements WxBillDailyService { } @Override - public Map getById(Long id) { + public WxBillDaily getById(Long id) { WxBillDaily record = new WxBillDaily(); record.setId(id); - Map wxBillDaily = wxBillDailyMapper.queryBillDailyList(record).get(0); - - if(wxBillDaily.get("shopId")!=null) { + WxBillDaily wxBillDaily = wxBillDailyMapper.queryBillDailyList(record).get(0); + if (wxBillDaily.getShopId() != null) { WxShop shop = new WxShop(); - shop.setId((Long)wxBillDaily.get("shopId")); + shop.setId(wxBillDaily.getShopId()); List> shoplist = wxShopMapper.findListMap(shop); - wxBillDaily.put("shops",shoplist); + wxBillDaily.setShops(shoplist); }else{ - wxBillDaily.put("shops",Collections.EMPTY_LIST); + wxBillDaily.setShops(Collections.EMPTY_LIST); } return wxBillDaily; @@ -129,6 +129,16 @@ public class WxBillDailyServiceImpl implements WxBillDailyService { Date date = new Date(); if (record.getId() == null) { logger.info("新增日常账单"); + WxBillDaily dailyQuery = new WxBillDaily(); + dailyQuery.setType(record.getType()); + dailyQuery.setTenantId(record.getTenantId()); + dailyQuery.setMerchantId(record.getMerchantId()); + dailyQuery.setReceiveDate(record.getReceiveDate()); + dailyQuery.setIsDel(EnumDelStatus.NOT_DEL.getCode()); + WxBillDaily daily = wxBillDailyMapper.selectOne(dailyQuery); + if (daily != null) { + return new ResultData(ErrorCode.BILL_IS_FOUND); + } final IdWorker idWorker = IdWorker.get(); record.setId(idWorker.nextId()); record.setStatus(record.getReceiveDate().after(date)?EnumBillDailyStatus.WAIT_PAY.getCode():EnumBillDailyStatus.NOT_PAID.getCode()); @@ -295,4 +305,27 @@ public class WxBillDailyServiceImpl implements WxBillDailyService { stringRedisTemplate.expire(importKey, 10, TimeUnit.SECONDS); } + @Override + public void exportBill(HttpServletRequest request, HttpServletResponse response, WxBillDaily record) { + List billDailyList = wxBillDailyMapper.queryBillDailyList(record); + List datalist = new ArrayList<>(); + WxBillDailyExportVo wxBillDailyExportVo; + for (int i = 0, size = billDailyList.size(); i < size; i++) { + WxBillDaily b = billDailyList.get(i); + wxBillDailyExportVo = new WxBillDailyExportVo(); + wxBillDailyExportVo.setShopNumber(b.getShopNumber()); + wxBillDailyExportVo.setMerchantName(b.getMerchantName()); + wxBillDailyExportVo.setReceivePay(b.getReceivePay()); + wxBillDailyExportVo.setPay(b.getPay()); + wxBillDailyExportVo.setOwe(b.getOwe()); + wxBillDailyExportVo.setReceiveDate(b.getReceiveDate()); + wxBillDailyExportVo.setPayDate(b.getPayDate()); + wxBillDailyExportVo.setExpiredDay(b.getExpiredDay()); + wxBillDailyExportVo.setStatus(b.getStatus()); + wxBillDailyExportVo.setType(b.getType()); + datalist.add(wxBillDailyExportVo); + } + excelService.exportExcel(datalist, null, "日常费用账单", WxBillDailyExportVo.class, "日常费用账单.xlsx", response, false); + } + } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherDepositServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherDepositServiceImpl.java index 7a88b8b1e..96205c637 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherDepositServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherDepositServiceImpl.java @@ -6,14 +6,12 @@ import com.iformall.common.ErrorCode; import com.iformall.common.IdWorker; import com.iformall.common.Result; import com.iformall.common.ResultData; -import com.iformall.domain.po.MallUserInfo; -import com.iformall.domain.po.WxBillAction; -import com.iformall.domain.po.WxBillOtherDeposit; -import com.iformall.domain.po.WxShop; +import com.iformall.domain.po.*; import com.iformall.enums.*; import com.iformall.exception.MallinkException; import com.iformall.mapper.WxBillOtherDepositMapper; import com.iformall.mapper.WxShopMapper; +import com.iformall.service.ExcelService; import com.iformall.service.WxBillActionService; import com.iformall.service.WxBillOtherDepositService; import org.slf4j.Logger; @@ -22,6 +20,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.math.BigDecimal; import java.util.*; @@ -41,15 +41,17 @@ public class WxBillOtherDepositServiceImpl implements WxBillOtherDepositService @Autowired WxBillActionService wxBillActionService; + @Autowired + ExcelService excelService; @Override - public PageInfo> listAsPage(WxBillOtherDeposit record, Integer pageIndex, Integer pageSize) { + public PageInfo listAsPage(WxBillOtherDeposit record, Integer pageIndex, Integer pageSize) { //分页对象设置页数和条数 PageHelper.startPage(pageIndex, pageSize); //查询 - List> billList = wxBillOtherDepositMapper.queryBillList(record); + List billList = wxBillOtherDepositMapper.queryBillList(record); //结果放入分页对象 - PageInfo> pageInfo = new PageInfo<>(billList); + PageInfo pageInfo = new PageInfo<>(billList); return pageInfo; } @@ -94,20 +96,18 @@ public class WxBillOtherDepositServiceImpl implements WxBillOtherDepositService } @Override - public Map getById(Long id) { + public WxBillOtherDeposit getById(Long id) { WxBillOtherDeposit record = new WxBillOtherDeposit(); record.setId(id); - Map wxBillOther = wxBillOtherDepositMapper.queryBillList(record).get(0); - - if (wxBillOther.get("shopId") != null) { + WxBillOtherDeposit wxBillOther = wxBillOtherDepositMapper.queryBillList(record).get(0); + if (wxBillOther.getShopId() != null) { WxShop shop = new WxShop(); - shop.setId((Long) wxBillOther.get("shopId")); + shop.setId(wxBillOther.getShopId()); List> shoplist = wxShopMapper.findListMap(shop); - wxBillOther.put("shops", shoplist); + wxBillOther.setShops(shoplist); } else { - wxBillOther.put("shops", Collections.EMPTY_LIST); + wxBillOther.setShops(Collections.EMPTY_LIST); } - return wxBillOther; } @@ -121,6 +121,17 @@ public class WxBillOtherDepositServiceImpl implements WxBillOtherDepositService Date date = new Date(); if (record.getId() == null) { logger.info("新增其他账单"); + + WxBillOtherDeposit otherDepositQuery = new WxBillOtherDeposit(); + otherDepositQuery.setTenantId(record.getTenantId()); + otherDepositQuery.setMerchantId(record.getMerchantId()); + otherDepositQuery.setReceiveDate(record.getReceiveDate()); + otherDepositQuery.setIsDel(EnumDelStatus.NOT_DEL.getCode()); + WxBillOtherDeposit otherDeposit = wxBillOtherDepositMapper.selectOne(otherDepositQuery); + if (otherDeposit != null) { + return new ResultData(ErrorCode.BILL_IS_FOUND); + } + final IdWorker idWorker = IdWorker.get(); record.setId(idWorker.nextId()); record.setStatus(EnumBillDailyStatus.WAIT_PAY.getCode()); @@ -265,5 +276,11 @@ public class WxBillOtherDepositServiceImpl implements WxBillOtherDepositService return new ResultData(Result.SUCCESS, "其他押金调整成功", wxBillDeposit); } + @Override + public void exportBill(HttpServletRequest request, HttpServletResponse response, WxBillOtherDeposit wxBillDeposit) { + List datalist = wxBillOtherDepositMapper.queryBillList(wxBillDeposit); + excelService.exportExcel(datalist, null, "其他押金账单", WxBillOtherDeposit.class, "其他押金账单.xlsx", response, false); + } + } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherServiceImpl.java index 3783dd1c7..aed7236d3 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherServiceImpl.java @@ -6,14 +6,12 @@ import com.iformall.common.ErrorCode; import com.iformall.common.IdWorker; import com.iformall.common.Result; import com.iformall.common.ResultData; -import com.iformall.domain.po.MallUserInfo; -import com.iformall.domain.po.WxBillAction; -import com.iformall.domain.po.WxBillOther; -import com.iformall.domain.po.WxShop; +import com.iformall.domain.po.*; import com.iformall.enums.*; import com.iformall.exception.MallinkException; import com.iformall.mapper.WxBillOtherMapper; import com.iformall.mapper.WxShopMapper; +import com.iformall.service.ExcelService; import com.iformall.service.WxBillActionService; import com.iformall.service.WxBillOtherService; import org.slf4j.Logger; @@ -22,6 +20,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.math.BigDecimal; import java.util.*; @@ -41,14 +41,17 @@ public class WxBillOtherServiceImpl implements WxBillOtherService { @Autowired WxBillActionService wxBillActionService; + @Autowired + ExcelService excelService; + @Override - public PageInfo> listAsPage(WxBillOther record, Integer pageIndex, Integer pageSize) { + public PageInfo listAsPage(WxBillOther record, Integer pageIndex, Integer pageSize) { //分页对象设置页数和条数 PageHelper.startPage(pageIndex, pageSize); //查询 - List> billList = wxBillOtherMapper.queryBillList(record); + List billList = wxBillOtherMapper.queryBillList(record); //结果放入分页对象 - PageInfo> pageInfo = new PageInfo<>(billList); + PageInfo pageInfo = new PageInfo<>(billList); return pageInfo; } @@ -93,18 +96,18 @@ public class WxBillOtherServiceImpl implements WxBillOtherService { } @Override - public Map getById(Long id) { + public WxBillOther getById(Long id) { WxBillOther record = new WxBillOther(); record.setId(id); - Map wxBillOther = wxBillOtherMapper.queryBillList(record).get(0); + WxBillOther wxBillOther = wxBillOtherMapper.queryBillList(record).get(0); - if(wxBillOther.get("shopId")!=null) { + if (wxBillOther.getShopId() != null) { WxShop shop = new WxShop(); - shop.setId((Long)wxBillOther.get("shopId")); + shop.setId(wxBillOther.getShopId()); List> shoplist = wxShopMapper.findListMap(shop); - wxBillOther.put("shops",shoplist); + wxBillOther.setShops(shoplist); }else{ - wxBillOther.put("shops",Collections.EMPTY_LIST); + wxBillOther.setShops(Collections.EMPTY_LIST); } return wxBillOther; @@ -120,6 +123,15 @@ public class WxBillOtherServiceImpl implements WxBillOtherService { Date date = new Date(); if (record.getId() == null) { logger.info("新增其他账单"); + WxBillOther otherQuery = new WxBillOther(); + otherQuery.setTenantId(record.getTenantId()); + otherQuery.setMerchantId(record.getMerchantId()); + otherQuery.setReceiveDate(record.getReceiveDate()); + otherQuery.setIsDel(EnumDelStatus.NOT_DEL.getCode()); + WxBillOther other = wxBillOtherMapper.selectOne(otherQuery); + if (other != null) { + return new ResultData(ErrorCode.BILL_IS_FOUND); + } final IdWorker idWorker = IdWorker.get(); record.setId(idWorker.nextId()); record.setStatus(record.getReceiveDate().after(date)?EnumBillDailyStatus.WAIT_PAY.getCode():EnumBillDailyStatus.NOT_PAID.getCode()); @@ -207,10 +219,12 @@ public class WxBillOtherServiceImpl implements WxBillOtherService { } return new ResultData(Result.SUCCESS, "其他账单结单成功"); } - - - - - - + + @Override + public void exportBill(HttpServletRequest request, HttpServletResponse response, WxBillOther wxBillOther) { + List datalist = wxBillOtherMapper.queryBillList(wxBillOther); + excelService.exportExcel(datalist, null, "其他费用账单", WxBillOther.class, "其他费用账单.xlsx", response, false); + } + + } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillPropertyServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillPropertyServiceImpl.java index ef20d0220..0604d3ad0 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillPropertyServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillPropertyServiceImpl.java @@ -1,5 +1,6 @@ package com.iformall.service.impl; +import com.alibaba.fastjson.JSONObject; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.iformall.common.ErrorCode; @@ -11,19 +12,21 @@ import com.iformall.enums.*; import com.iformall.exception.MallinkException; import com.iformall.mapper.WxBillPropertyDepositMapper; import com.iformall.mapper.WxBillPropertyMapper; +import com.iformall.service.ExcelService; import com.iformall.service.WxBillActionService; import com.iformall.service.WxBillPropertyService; +import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.math.BigDecimal; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.stream.Collectors; /** * @author gongbiao @@ -41,11 +44,14 @@ public class WxBillPropertyServiceImpl implements WxBillPropertyService { @Autowired WxBillActionService wxBillActionService; + @Autowired + ExcelService excelService; + @Override - public PageInfo> listAsPage(WxBillProperty record, Integer pageIndex, Integer pageSize) { + public PageInfo listAsPage(WxBillProperty record, Integer pageIndex, Integer pageSize) { PageHelper.startPage(pageIndex, pageSize); - List> billRentList = wxBillPropertyMapper.queryBillPropertyList(record); - PageInfo> pageInfo = new PageInfo<>(billRentList); + List billRentList = wxBillPropertyMapper.queryBillPropertyList(record); + PageInfo pageInfo = new PageInfo<>(billRentList); return pageInfo; } @@ -90,7 +96,7 @@ public class WxBillPropertyServiceImpl implements WxBillPropertyService { } @Override - public Map getById(Long id) { + public WxBillProperty getById(Long id) { WxBillProperty record = new WxBillProperty(); record.setId(id); return wxBillPropertyMapper.queryBillPropertyList(record).get(0); @@ -174,15 +180,15 @@ public class WxBillPropertyServiceImpl implements WxBillPropertyService { } @Override - public PageInfo> findByPropertyContractId(Long id, String tenantId, Integer pageIndex, Integer pageSize) { + public PageInfo findByPropertyContractId(Long id, String tenantId, Integer pageIndex, Integer pageSize) { WxBillProperty record = new WxBillProperty(); record.setPropertyContractId(id); record.setTenantId(tenantId); record.setSortColumns(WxBillProperty.Field.Id_ASC); updateBillStatus(record); PageHelper.startPage(pageIndex, pageSize); - List> billRentList = wxBillPropertyMapper.queryBillPropertyList(record); - PageInfo> pageInfo = new PageInfo<>(billRentList); + List billRentList = wxBillPropertyMapper.queryBillPropertyList(record); + PageInfo pageInfo = new PageInfo<>(billRentList); return pageInfo; } @@ -210,10 +216,10 @@ public class WxBillPropertyServiceImpl implements WxBillPropertyService { @Override public Object detail(Long id) { //物业 - Map property = getById(id); + WxBillProperty property = getById(id); //押金 WxBillPropertyDeposit depositParam = new WxBillPropertyDeposit(); - depositParam.setPropertyContractId((Long) property.get("propertyContractId")); + depositParam.setPropertyContractId(property.getPropertyContractId()); Map deposit = null; List> billDepositList = wxBillPropertyDepositMapper.queryBillDepositList(depositParam); if (!billDepositList.isEmpty()) { @@ -238,4 +244,31 @@ public class WxBillPropertyServiceImpl implements WxBillPropertyService { return new ResultData(Result.SUCCESS, "滞纳金结单成功", record); } + @Override + public void exportBill(HttpServletRequest request, HttpServletResponse response, WxBillProperty wxBillProperty) { + String billName = wxBillProperty.getRentShopType().equals(EnumRentShopType.SHOP.getCode()) ? "商铺物业账单" : "多经点位物业账单"; + Map> collect = wxBillPropertyMapper.queryBillPropertyList(wxBillProperty).parallelStream() + .collect(Collectors.groupingBy(WxBillProperty::getMerchantId)); + Set>> entries = collect.entrySet(); + List datalist = new ArrayList<>(); + for (Map.Entry> entry : entries) { + List list = entry.getValue(); + for (WxBillProperty property : list) { + String shopNumber = property.getShopNumber(); + if (StringUtils.isEmpty(shopNumber)) { + String shopInfo = property.getShopInfo(); + if (StringUtils.isNotEmpty(shopInfo) && !shopInfo.equals("[]")) { + JSONObject jsonObject = JSONObject.parseObject(shopInfo); + StringBuffer sb = new StringBuffer(); + Set> sets = jsonObject.entrySet(); + sets.forEach(x -> sb.append(x.getKey()).append(",")); + property.setShopNumber(sb.deleteCharAt(sb.length() - 1).toString()); + } + } + datalist.add(property); + } + } + excelService.exportExcel(datalist, null, billName, WxBillProperty.class, billName + ".xlsx", response, false); + } + } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillRentServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillRentServiceImpl.java index f3036f158..e306d366f 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillRentServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillRentServiceImpl.java @@ -1,29 +1,35 @@ package com.iformall.service.impl; +import com.alibaba.fastjson.JSONObject; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.iformall.common.ErrorCode; import com.iformall.common.IdWorker; import com.iformall.common.Result; import com.iformall.common.ResultData; -import com.iformall.domain.po.*; +import com.iformall.domain.po.MallUserInfo; +import com.iformall.domain.po.WxBillAction; +import com.iformall.domain.po.WxBillDeposit; +import com.iformall.domain.po.WxBillRent; import com.iformall.enums.*; import com.iformall.exception.MallinkException; import com.iformall.mapper.WxBillDepositMapper; import com.iformall.mapper.WxBillRentMapper; +import com.iformall.service.ExcelService; import com.iformall.service.WxBillActionService; import com.iformall.service.WxBillRentService; +import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.math.BigDecimal; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.stream.Collectors; /** * @author gongbiao @@ -41,11 +47,14 @@ public class WxBillRentServiceImpl implements WxBillRentService { @Autowired WxBillActionService wxBillActionService; + @Autowired + ExcelService excelService; + @Override - public PageInfo> listAsPage(WxBillRent record, Integer pageIndex, Integer pageSize) { + public PageInfo listAsPage(WxBillRent record, Integer pageIndex, Integer pageSize) { PageHelper.startPage(pageIndex, pageSize); - List> billRentList = wxBillRentMapper.queryBillRentList(record); - PageInfo> pageInfo = new PageInfo<>(billRentList); + List billRentList = wxBillRentMapper.queryBillRentList(record); + PageInfo pageInfo = new PageInfo<>(billRentList); return pageInfo; } @@ -90,7 +99,7 @@ public class WxBillRentServiceImpl implements WxBillRentService { } @Override - public Map getById(Long id) { + public WxBillRent getById(Long id) { WxBillRent record = new WxBillRent(); record.setId(id); return wxBillRentMapper.queryBillRentList(record).get(0); @@ -173,15 +182,15 @@ public class WxBillRentServiceImpl implements WxBillRentService { } @Override - public PageInfo> findByRentContractId(Long id, String tenantId, Integer pageIndex, Integer pageSize) { + public PageInfo findByRentContractId(Long id, String tenantId, Integer pageIndex, Integer pageSize) { WxBillRent record = new WxBillRent(); record.setRentContractId(id); record.setTenantId(tenantId); record.setSortColumns(WxBillRent.Field.Id_ASC); updateBillStatus(record); PageHelper.startPage(pageIndex, pageSize); - List> billRentList = wxBillRentMapper.queryBillRentList(record); - PageInfo> pageInfo = new PageInfo<>(billRentList); + List billRentList = wxBillRentMapper.queryBillRentList(record); + PageInfo pageInfo = new PageInfo<>(billRentList); return pageInfo; } @@ -208,10 +217,10 @@ public class WxBillRentServiceImpl implements WxBillRentService { @Override public Object detail(Long id) { //租赁 - Map rent = getById(id); + WxBillRent rent = getById(id); //押金 WxBillDeposit depositParam = new WxBillDeposit(); - depositParam.setRentContractId((Long) rent.get("rentContractId")); + depositParam.setRentContractId(rent.getRentContractId()); Map deposit = null; List> billDepositList = wxBillDepositMapper.queryBillDepositList(depositParam); if (!billDepositList.isEmpty()) { @@ -273,4 +282,31 @@ public class WxBillRentServiceImpl implements WxBillRentService { } return new ResultData(Result.SUCCESS, "滞纳金结单成功", record); } + + @Override + public void exportBill(HttpServletRequest request, HttpServletResponse response, WxBillRent wxBillRent) { + String billName = wxBillRent.getRentShopType().equals(EnumRentShopType.SHOP.getCode()) ? "商铺租金账单" : "多经点位租金账单"; + Map> collect = wxBillRentMapper.queryBillRentList(wxBillRent).parallelStream() + .collect(Collectors.groupingBy(WxBillRent::getMerchantId)); + Set>> entries = collect.entrySet(); + List datalist = new ArrayList<>(); + for (Map.Entry> entry : entries) { + List list = entry.getValue(); + for (WxBillRent rent : list) { + String shopNumber = rent.getShopNumber(); + if (StringUtils.isEmpty(shopNumber)) { + String shopInfo = rent.getShopInfo(); + if (StringUtils.isNotEmpty(shopInfo) && !shopInfo.equals("[]")) { + JSONObject jsonObject = JSONObject.parseObject(shopInfo); + StringBuffer sb = new StringBuffer(); + Set> sets = jsonObject.entrySet(); + sets.forEach(x -> sb.append(x.getKey()).append(",")); + rent.setShopNumber(sb.deleteCharAt(sb.length() - 1).toString()); + } + } + datalist.add(rent); + } + } + excelService.exportExcel(datalist, null, billName, WxBillRent.class, billName + ".xlsx", response, false); + } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBusinessServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBusinessServiceImpl.java index 2c3c099fd..23cd05cfc 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBusinessServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBusinessServiceImpl.java @@ -2,8 +2,8 @@ package com.iformall.service.impl; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import com.iformall.common.ResultData; import com.iformall.domain.po.WxBusiness; -import com.iformall.enums.EnumBusiness; import com.iformall.enums.EnumBusinessFilter; import com.iformall.mapper.WxBusinessMapper; import com.iformall.service.WxBusinessService; @@ -12,6 +12,8 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.util.List; @Service @@ -50,4 +52,14 @@ public class WxBusinessServiceImpl implements WxBusinessService { } + @Override + public ResultData businessDataList(WxBusiness wxBusiness) { + return new ResultData(wxBusinessMapper.businessDataList(wxBusiness)); + } + + @Override + public ResultData devoteList(WxBusiness wxBusiness, Integer pageNum, Integer pageSize) { + return new ResultData(PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() -> wxBusinessMapper.devoteList(wxBusiness))); + } + } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java index a1f1969bc..2c518febd 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java @@ -555,15 +555,16 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { } @Override - public List findInfoByPhone(String tenantId, String phone) { + public WxCUserBasicInfo findInfoByPhone(String tenantId, String phone) { + WxCUserBasicInfo basic = null; WxCUserBasicInfo basicQ = new WxCUserBasicInfo(); basicQ.setTenantId(tenantId); basicQ.setPhone(phone); List basicInfos = wxCUserBasicInfoMapper.select(basicQ); - if (basicInfos != null && basicInfos.size() > 0) { - return basicInfos; + if (basicInfos.size() > 0) { + return basicInfos.get(0); } - return null; + return basic; } @Override @@ -658,7 +659,7 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { u1.setBirthdate(sdf.parse("2018-09-10")); u1.setCreateDate(sdf.parse("2018-08-10")); u1.setUpdateDate(sdf.parse("2018-08-10")); - } catch (Exception e){ + } catch (Exception e) { u1.setBirthdate(new Date()); u1.setCreateDate(new Date()); u1.setUpdateDate(new Date()); @@ -678,7 +679,7 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { u2.setBirthdate(sdf.parse("2018-09-10")); u2.setCreateDate(sdf.parse("2018-08-10")); u2.setUpdateDate(sdf.parse("2018-08-10")); - } catch (Exception e){ + } catch (Exception e) { u2.setBirthdate(new Date()); u2.setCreateDate(new Date()); u2.setUpdateDate(new Date()); @@ -699,7 +700,7 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { u3.setBirthdate(sdf.parse("2018-09-10")); u3.setCreateDate(sdf.parse("2018-08-10")); u3.setUpdateDate(sdf.parse("2018-08-10")); - } catch (Exception e){ + } catch (Exception e) { u3.setBirthdate(new Date()); u3.setCreateDate(new Date()); u3.setUpdateDate(new Date()); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCardInfoServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCardInfoServiceImpl.java index c3ac2869f..a488c5437 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCardInfoServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCardInfoServiceImpl.java @@ -2,14 +2,17 @@ package com.iformall.service.impl; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import com.iformall.common.IdWorker; import com.iformall.domain.po.WxCardInfo; import com.iformall.domain.vo.WxCardVo; import com.iformall.mapper.WxCardInfoMapper; +import com.iformall.service.ExcelService; import com.iformall.service.WxCardInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.iformall.common.IdWorker; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.util.List; @Service @@ -18,6 +21,8 @@ public class WxCardInfoServiceImpl implements WxCardInfoService { @Autowired WxCardInfoMapper wxCardInfoMapper; + @Autowired + ExcelService excelService; @Override public PageInfo listAsPage(WxCardVo record, Integer pageIndex, Integer pageSize) { @@ -45,4 +50,11 @@ public class WxCardInfoServiceImpl implements WxCardInfoService { public void deleteById(Long id) { wxCardInfoMapper.deleteByPrimaryKey(id); } + + @Override + public void exportData(WxCardVo wxCardVo, HttpServletRequest request, HttpServletResponse response) { + List list = wxCardInfoMapper.findVoList(wxCardVo); + excelService.exportExcel(list, null, "卡订单", WxCardVo.class, "卡订单.xlsx", response, false); + + } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java index 38beb5808..45dc1c9a4 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java @@ -536,7 +536,7 @@ public class WxCardSpendServiceImpl implements WxCardSpendService { @Override public void exportData(WxCardSpendVo wxCardSpendVo, HttpServletRequest request, HttpServletResponse response) { List list = wxCardSpendMapper.findCardSpendVoList(wxCardSpendVo); - excelService.exportExcel(list, null, "消费记录", WxCardSpendVo.class, "消费记录.xlsx", response, false); + excelService.exportExcel(list, null, "卡消费记录", WxCardSpendVo.class, "卡消费记录.xlsx", response, false); } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponCarServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponCarServiceImpl.java index 4243ef9f4..1c4807150 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponCarServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponCarServiceImpl.java @@ -2,7 +2,6 @@ package com.iformall.service.impl; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; -import com.iformall.domain.po.WxCoupon; import com.iformall.domain.po.WxCouponCar; import com.iformall.domain.vo.WxCouponCarVo; import com.iformall.mapper.WxCouponCarMapper; diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java index c134311ce..c55231e77 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java @@ -110,10 +110,7 @@ public class WxCouponChannelServiceImpl implements WxCouponChannelService { @Override public ResultData addBatch(String[] ids, String[] channelId, String tanantId, Date beginTime, Date endTime) { - List errorList = new ArrayList<>(); - List sucList = new ArrayList<>(); - for (String targetIdstr:channelId) { Integer targetId = Integer.parseInt(targetIdstr); for (String couponidstr:ids) { @@ -121,15 +118,13 @@ public class WxCouponChannelServiceImpl implements WxCouponChannelService { WxCouponChannelAddVo vo = addCouponChannel(couponid,targetId,tanantId,beginTime,endTime); if(!vo.isSuc()){ errorList.add(vo); - }else{ - sucList.add(vo); } } } if(errorList.size()>0) { return new ResultData(errorList); }else { - return new ResultData(sucList); + return new ResultData(); } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java index cca9c20d2..d5eb0afa1 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java @@ -20,6 +20,7 @@ import com.iformall.exception.MallinkException; import com.iformall.mapper.*; import com.iformall.mq.MqBaseProducer; import com.iformall.service.*; +import com.iformall.utils.DateUtils; import com.iformall.utils.PayUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; @@ -113,6 +114,9 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { @Autowired WxScoreRulesService wxScoreRulesService; + @Autowired + WxMsgLimitService wxMsgLimitService; + @Override public PageInfo listAsPage(WxCouponOrder record, Integer pageIndex, Integer pageSize) { return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCouponOrderMapper.findList(record)); @@ -568,10 +572,6 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { logger.error("找不到订单信息"); throw new MallinkException(ErrorCode.ORDER_IS_NOT_FIND); } - String formId = null; - if(StringUtils.isNotBlank(order.getFormId())) { - formId = order.getFormId(); - } // 2. get coupon info WxCoupon coupon = wxCouponMapper.selectByPrimaryKey(couponOrder.getCouponId()); if (coupon == null) { @@ -623,8 +623,18 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { doVerifyAppUniformMsg(couponOrder, coupon, merchant, user, dateFormat, gotopage); } + // 小程序 消息 + String formId = null; + Date curDate = new Date(); + Date dateAfter7Day = DateUtils.getHourTimeAfter(7, order.getCreateDate()); + if(StringUtils.isNotBlank(order.getFormId()) && curDate.before(dateAfter7Day) + && !order.getFormId().equalsIgnoreCase("undefined")) { + formId = order.getFormId(); + } + // 6. get payOrder info - if(StringUtils.isBlank(order.getFormId())) { + int formType = EnumMsgLimitType.WEAPP_FORMID.getCode(); + if(StringUtils.isBlank(order.getFormId()) || order.getFormId().equalsIgnoreCase("undefined")) { // formId为空,获取prepayId WxPayOrder payOrder = null; WxPayOrder payOrderQ = new WxPayOrder(); @@ -643,15 +653,31 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { logger.error("payOrder信息中,prepay_id为空"); throw new MallinkException(ErrorCode.PREPAY_ID_IS_EMPTY); } - formId = payOrder.getPrepayId(); + dateAfter7Day = DateUtils.getHourTimeAfter(7, payOrder.getCreateTime()); + if(curDate.before(dateAfter7Day)) { + formId = payOrder.getPrepayId(); + formType = EnumMsgLimitType.WEAPP_PREPAYID.getCode(); + } } if(StringUtils.isBlank(formId)) { - logger.error("formId为空"); - throw new MallinkException(ErrorCode.TEMPLATE_FORMID_NOT_FOUND); + logger.error("无可用formId, 不能发小程序模板消息"); + return; } // 9. 微信小程序-模板消息 + /** + * 检查 小程序模板消息是否超限 + */ + WxMsgLimit msgLimit = new WxMsgLimit(); + msgLimit.setTenantId(user.getTenantId()); + msgLimit.setType(formType); + msgLimit.setLimitId(formId); + if(wxMsgLimitService.checkIsLimit(msgLimit)) { + // 已达到限制条件,不发消息了 + logger.error("已达到限制条件,不发小程序模板消息了: " + user.getId()); + return; + } SmartAppMsg smartAppMsg; if (bUsed) { //mq发送小程序消息 - 核销成功消息 @@ -765,6 +791,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { } private void doVerifyFailMsg(WxCouponOrder couponOrder, String formId, WxCoupon coupon, WxCUser user, SimpleDateFormat dateFormat, String couponDetail, String gotopage) { + SmartAppMsg smartAppMsg; /** * 核销失败消息 * 商品名称 {{keyword1.DATA}} diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponSendServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponSendServiceImpl.java index 92d0ed02d..fdd15eb99 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponSendServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponSendServiceImpl.java @@ -1,11 +1,9 @@ package com.iformall.service.impl; -import cn.binarywang.wx.miniapp.bean.WxMaTemplateData; import com.alibaba.fastjson.JSONObject; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.google.common.collect.Lists; -import com.iformall.common.ErrorCode; import com.iformall.common.IdWorker; import com.iformall.domain.po.*; import com.iformall.domain.po.msg.AppUniformMsg; @@ -18,7 +16,6 @@ import com.iformall.mapper.*; import com.iformall.mq.MqBaseProducer; import com.iformall.service.*; import com.iformall.utils.DateUtils; -import me.chanjar.weixin.mp.bean.template.WxMpTemplateData; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -63,6 +60,8 @@ public class WxCouponSendServiceImpl implements WxCouponSendService { WxAppinfoService wxAppinfoService; @Autowired WxAuthorizerInfoMapper authorizerInfoMapper; + @Autowired + WxMsgLimitService wxMsgLimitService; @Override public PageInfo listAsPage(WxCouponSend record, Integer pageIndex, Integer pageSize) { @@ -269,6 +268,16 @@ public class WxCouponSendServiceImpl implements WxCouponSendService { if(StringUtils.isNotBlank(user.getMpAppId()) && StringUtils.isNotBlank(user.getMpOpenId()) && user.getMpSubscribe().equals(EnumUserIsSubscribe.YES.getCode())) { + // 检查是否超限 + WxMsgLimit msgLimit = new WxMsgLimit(); + msgLimit.setTenantId(user.getTenantId()); + msgLimit.setType(EnumMsgLimitType.WXCHAT_OPENID_SEND.getCode()); + msgLimit.setLimitId(user.getMpOpenId()); + if(wxMsgLimitService.checkIsLimit(msgLimit)) { + logger.error("用户公众号模板消息超限" + user.getId()); + return; + } + // 已关注公众号 /** * 购票成功通知 @@ -308,6 +317,15 @@ public class WxCouponSendServiceImpl implements WxCouponSendService { } else { // 可能未关注公众号, 用户可能收不到 // 8. 微信小程序-统一消息 + // 检查是否超限 + WxMsgLimit msgLimit = new WxMsgLimit(); + msgLimit.setTenantId(user.getTenantId()); + msgLimit.setType(EnumMsgLimitType.WEAPP_OPENID_SEND.getCode()); + msgLimit.setLimitId(user.getOpenId()); + if(wxMsgLimitService.checkIsLimit(msgLimit)) { + logger.error("用户小程序统一模板消息超限:" + user.getId()); + return; + } // 获取小程序关联的服务号 WxAuthorizerInfo authQ = new WxAuthorizerInfo(); authQ.setAuthorizerAppid(user.getAppId()); @@ -347,6 +365,7 @@ public class WxCouponSendServiceImpl implements WxCouponSendService { String title = send.getTitle(); //找出用户手机号 String phone = user.getPhone(); + //小程序名称 WxAppinfo appInfo = wxAppinfoService.getCAppInfo(tenantId); String appName = appInfo.getName(); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java index f7c7b8d1c..a22a32763 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java @@ -17,6 +17,7 @@ import com.iformall.enums.*; import com.iformall.exception.MallinkException; import com.iformall.mapper.*; import com.iformall.service.*; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -65,10 +66,22 @@ public class WxCouponServiceImpl implements WxCouponService { @Override public ResultData list(WxCoupon wxCoupon, Integer pageNum, Integer pageSize) { if (null == wxCoupon) wxCoupon = new WxCoupon(); - wxCoupon.setSortColumns(WxCoupon.Field.Id_DESC); + wxCoupon.setSortColumns(WxCoupon.Field.CreateDate_DESC, WxCoupon.Field.Id_DESC); PageInfo page = null; if (wxCoupon.getStatus() != null && wxCoupon.getStatus() == -1) wxCoupon.setStatus(null); + + //除了a端列表 其他默认需要过滤 + if(!EnumFilterPut.NO.equals(wxCoupon.getFilterCanPut())) { + WxCoupon couponModel = wxCouponMapper.findCouponModel(wxCoupon); + if (couponModel != null) { + wxCoupon.setCouponModelId(couponModel.getCouponModelId()); + wxCoupon.setCardModelId(couponModel.getCardModelId()); + wxCoupon.setGroupModelId(couponModel.getGroupModelId()); + wxCoupon.setPressModelId(couponModel.getPressModelId()); + } + } + page = listAsPage(wxCoupon, pageNum, pageSize); List wxCouponList = page.getList(); @@ -111,11 +124,25 @@ public class WxCouponServiceImpl implements WxCouponService { return new ResultData(page); } - - @Override public PageInfo listAsPage(WxCoupon record, Integer pageIndex, Integer pageSize) { - return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCouponMapper.findCouponList(record)); + int total = wxCouponMapper.findCouponListCount(record); + int pages; + if(total % pageSize == 0){ + pages = total / pageSize; + }else{ + pages = total / pageSize +1; + } + record.setLimitStart((pageIndex -1) * pageSize); + record.setLimitEnd(pageSize); + List list = wxCouponMapper.findCouponList(record); + + PageHelper.startPage(pageIndex, pageSize); + PageInfo pageInfo = new PageInfo<>(list); + pageInfo.setPages(pages); + pageInfo.setTotal(total); + PageHelper.clearPage(); + return pageInfo; } @@ -597,4 +624,15 @@ public class WxCouponServiceImpl implements WxCouponService { public void update(WxCoupon record) { wxCouponMapper.updateByPrimaryKeySelective(record); } + + @Override + public WxCoupon findById(WxCoupon wxCoupon) { + WxCoupon query = new WxCoupon(); + query.setId(wxCoupon.getId()); + List list = wxCouponMapper.findCouponList(query); + if(CollectionUtils.isNotEmpty(list)){ + return list.get(0); + } + return null; + } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java index fa6346793..c4adb0d1d 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java @@ -85,8 +85,6 @@ public class WxFlowServiceImpl implements WxFlowService { private WxCouponMapper wxCouponMapper; @Autowired private WxCouponService wxCouponService; - @Autowired - private WxCouponChannelService wxCouponChannelService; /** * 获取流程key @@ -117,7 +115,7 @@ public class WxFlowServiceImpl implements WxFlowService { Boolean supplement = (Boolean)mapInfo.get("supplement"); Integer contractType = 0; String str = (String)getVariableByKey(variables,"contractType"); - Integer operateType = (Integer)getVariableByKey(variables,"operateType"); + Integer operateType = (Integer)getVariableByKey(variables,"approvalType"); if(StringUtils.isNotBlank(str)){ contractType = Integer.parseInt(str); } @@ -204,30 +202,22 @@ public class WxFlowServiceImpl implements WxFlowService { if(EnumCouponAppType.PUT.getCode().equals(operateType)){ wxCoupon.setPutApplyStatus(applyStatus); - String idsV = (String)getVariableByKey(variables,"ids"); - String channelIdV = (String)getVariableByKey(variables,"channelId"); - String[] ids = idsV.split(","); - String[] channelId = channelIdV.split(","); - Date beginTime = (Date)getVariableByKey(variables,"beginTime"); - Date endTime = (Date)getVariableByKey(variables,"endTime"); - String tenantId = (String)getVariableByKey(variables,"tenantId"); - wxCouponChannelService.addBatch(ids, channelId, tenantId, beginTime,endTime); }else if(EnumCouponAppType.STOCK.getCode().equals(operateType)){ wxCoupon.setStockApplyStatus(applyStatus); if(EnumRentContractAppStatus.FINISH.getCode().intValue() == applyStatus.intValue() ||EnumFlowKey.NEW_CARD_UPLINE.getCode().equals(flowType)) { //减库存 - if(EnumFlowKey.NEW_COUPON_UPLINE.getCode().equals(flowType)) { + if(EnumFlowKey.NEW_COUPON_UPLINE.getCode().equals(flowType) || EnumFlowKey.NEW_CARD_UPLINE.getCode().equals(flowType)) { Integer inventory = (Integer) getVariableByKey(variables, "inventory"); Integer remainInventory = (Integer) getVariableByKey(variables, "remainInventory"); Integer type = (Integer) getVariableByKey(variables, "type"); - String validDays = (String) getVariableByKey(variables, "validDays"); + Integer validDays = (Integer) getVariableByKey(variables, "validDays"); Integer validType = (Integer) getVariableByKey(variables, "validType"); wxCoupon.setInventory(inventory); wxCoupon.setRemainInventory(remainInventory); wxCoupon.setType(type); - wxCoupon.setValidDays(Integer.parseInt(validDays)); + wxCoupon.setValidDays(validDays); wxCoupon.setValidType(validType); wxCouponService.updateCouponStockAndEndTime(wxCoupon); }else if(EnumFlowKey.NEW_GROUP_UPLINE.getCode().equals(flowType)){ @@ -247,6 +237,7 @@ public class WxFlowServiceImpl implements WxFlowService { wxCoupon.setStatus(EnumCouponStatus.COUPON_STATUS_TAKE_OFFF.getCode()); } } + wxCoupon.setApprovalType(operateType); wxCouponMapper.updateByPrimaryKeySelective(wxCoupon); } } @@ -285,12 +276,22 @@ public class WxFlowServiceImpl implements WxFlowService { } } + public Integer getBusinessType(Object businessType){ + if(businessType == null) return null; + if(businessType instanceof String){ + return Integer.parseInt((String)businessType); + }else if(businessType instanceof Integer){ + return (Integer)businessType; + } + return null; + } + @Override @Transactional(propagation = Propagation.REQUIRED,rollbackFor = {Exception.class}) public ResultData start(Map params,Long userId,String userName,String tenantId) { String remark = (String)params.get("remark"); Long businessId = Long.parseLong(params.get("businessId").toString()); - Integer flowType = (Integer)params.get("businessType"); + Integer flowType = getBusinessType(params.get("businessType")); List> variables = (List)params.get("variables"); Boolean supplement = (Boolean)params.get("supplement"); @@ -336,7 +337,7 @@ public class WxFlowServiceImpl implements WxFlowService { wxFlowRecord.setStartDate(startDate); wxFlowRecordService.saveOrUpdate(wxFlowRecord); - // 给审批人发送代办通知短信 + //给审批人发送代办通知短信 List mallUserInfoList = getUserByProcessInstanceId(processInstance.getId()); for (MallUserInfo mallUserInfo:mallUserInfoList) { sendAssigneeMsgAndEmail(tenantId,mallUserInfo.getPhone(),mallUserInfo.getEmail(),starterInfo.getName(),businessId,flowType); @@ -358,6 +359,9 @@ public class WxFlowServiceImpl implements WxFlowService { }else if(isBill(flowType)){ dynamicContentMap.put("bustype","账单"); dynamicContentMap.put("contract", businessId.toString()); + }else if(isCoupon(flowType)){ + dynamicContentMap.put("bustype","有价卷"); + dynamicContentMap.put("contract",businessId.toString()); } wxMsgRecord.setDynamicContentMap(dynamicContentMap); mqBaseProducer.sendMessage(wxMsgRecord, EnumMsgMqTopic.DEFAULT.getCode(),EnumMsgMqTag.DEFAULT.getCode(),EnumMsgMqKey.DEFAULT.getCode()); @@ -434,6 +438,9 @@ public class WxFlowServiceImpl implements WxFlowService { }else if(isBill(flowType)){ msgReplaceMap.put("bustype","账单"); msgReplaceMap.put("contract", businessId.toString()); + }else if(isCoupon(flowType)){ + msgReplaceMap.put("bustype","有价卷"); + msgReplaceMap.put("contract",businessId.toString()); } mailMsg.setDynamicContentMap(msgReplaceMap); mqBaseProducer.sendMessage(mailMsg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); @@ -460,6 +467,16 @@ public class WxFlowServiceImpl implements WxFlowService { } return false; } + public boolean isCoupon(Integer flowType){ + if(EnumFlowKey.NEW_COUPON_UPLINE.getCode().equals(flowType) + ||EnumFlowKey.NEW_CARD_UPLINE.getCode().equals(flowType) + ||EnumFlowKey.NEW_GROUP_UPLINE.getCode().equals(flowType) + ||EnumFlowKey.NEW_PRESS_UPLINE.getCode().equals(flowType) + ){ + return true; + } + return false; + } public String variablesToJson(List> variables){ HashMap map = new HashMap<>(); @@ -532,7 +549,18 @@ public class WxFlowServiceImpl implements WxFlowService { @Override public ResultData applyHistory(Long businessId,String tenantId) { - List result = wxFlowRecordService.findList(new WxFlowRecord(businessId,tenantId)); + List result; + WxCoupon query = new WxCoupon(); + query.setTenantId(tenantId); + query.setId(businessId); + List couponList = wxCouponMapper.findList(query); + if(CollectionUtils.isNotEmpty(couponList)) { + WxCoupon coupon = couponList.get(0); + result = wxFlowRecordService.findList(new WxFlowRecord(businessId,tenantId,coupon.getApprovalType())); + }else{ + result = wxFlowRecordService.findList(new WxFlowRecord(businessId,tenantId)); + } + if(CollectionUtils.isNotEmpty(result)){ String processInstanceId = result.get(0).getProcessInstanceId(); List mallUserInfoList = getUserByProcessInstanceId(processInstanceId); @@ -835,6 +863,9 @@ public class WxFlowServiceImpl implements WxFlowService { }else if(isBill(flowType)){ msgReplaceMap.put("bustype","账单"); msgReplaceMap.put("contract", businessId.toString()); + }else if(isCoupon(flowType)){ + msgReplaceMap.put("bustype","有价卷"); + msgReplaceMap.put("contract",businessId.toString()); } wxMsgRecord.setDynamicContentMap(msgReplaceMap); mqBaseProducer.sendMessage(wxMsgRecord, EnumMsgMqTopic.DEFAULT.getCode(),EnumMsgMqTag.DEFAULT.getCode(),EnumMsgMqKey.DEFAULT.getCode()); @@ -854,6 +885,9 @@ public class WxFlowServiceImpl implements WxFlowService { }else if(isBill(flowType)){ msgReplaceMap.put("bustype","账单"); msgReplaceMap.put("contract", businessId.toString()); + }else if(isCoupon(flowType)){ + msgReplaceMap.put("bustype","有价卷"); + msgReplaceMap.put("contract",businessId.toString()); } mailMsg.setDynamicContentMap(msgReplaceMap); mqBaseProducer.sendMessage(mailMsg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); @@ -883,6 +917,9 @@ public class WxFlowServiceImpl implements WxFlowService { }else if(isBill(flowType)){ msgReplaceMap.put("bustype","账单"); msgReplaceMap.put("contract", businessId.toString()); + }else if(isCoupon(flowType)){ + msgReplaceMap.put("bustype","有价卷"); + msgReplaceMap.put("contract",businessId.toString()); } wxMsgRecord.setDynamicContentMap(msgReplaceMap); mqBaseProducer.sendMessage(wxMsgRecord, EnumMsgMqTopic.DEFAULT.getCode(),EnumMsgMqTag.DEFAULT.getCode(),EnumMsgMqKey.DEFAULT.getCode()); @@ -902,6 +939,9 @@ public class WxFlowServiceImpl implements WxFlowService { }else if(isBill(flowType)){ msgReplaceMap.put("bustype","账单"); msgReplaceMap.put("contract", businessId.toString()); + }else if(isCoupon(flowType)){ + msgReplaceMap.put("bustype","有价卷"); + msgReplaceMap.put("contract",businessId.toString()); } mailMsg.setDynamicContentMap(msgReplaceMap); mqBaseProducer.sendMessage(mailMsg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); @@ -1005,22 +1045,25 @@ public class WxFlowServiceImpl implements WxFlowService { wxFlowRecordMapper.updateCurrStatus(new WxFlowRecord(processInstanceId,EnumRentContractAppStatus.REJECT.getCode())); //给发起人发送驳回消息 - Map msgReplaceMap = new HashedMap(); - msgReplaceMap.put("contract",(String)getVariableByKey(variables,"contractNumber")); - msgReplaceMap.put("page",Constant.adminPage); - WxMsgRecord wxMsgRecord = new WxMsgRecord(); - wxMsgRecord.setMsgType(EnumMsgRecordType.SMS.getCode()); - wxMsgRecord.setModelType(EnumMsgModel.FLOW_REJECT_NODIFY.getCode()); - wxMsgRecord.setReceiver(userMap!=null?(String)userMap.get("phone"):""); - wxMsgRecord.setTenantId(tenantId); - if(isContract(flowType)){ - msgReplaceMap.put("bustype","合同"); - }else if(isBill(flowType)){ - msgReplaceMap.put("bustype","账单"); - msgReplaceMap.put("contract", businessId.toString()); + Map msgReplaceMap = new HashedMap(); + String phone = userMap!=null?(String)userMap.get("phone"):""; + if(phone.length() > 0) { + msgReplaceMap.put("contract", (String) getVariableByKey(variables, "contractNumber")); + msgReplaceMap.put("page", Constant.adminPage); + WxMsgRecord wxMsgRecord = new WxMsgRecord(); + wxMsgRecord.setMsgType(EnumMsgRecordType.SMS.getCode()); + wxMsgRecord.setModelType(EnumMsgModel.FLOW_REJECT_NODIFY.getCode()); + wxMsgRecord.setReceiver(userMap != null ? (String) userMap.get("phone") : ""); + wxMsgRecord.setTenantId(tenantId); + if (isContract(flowType)) { + msgReplaceMap.put("bustype", "合同"); + } else if (isBill(flowType)) { + msgReplaceMap.put("bustype", "账单"); + msgReplaceMap.put("contract", businessId.toString()); + } + wxMsgRecord.setDynamicContentMap(msgReplaceMap); + mqBaseProducer.sendMessage(wxMsgRecord, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); } - wxMsgRecord.setDynamicContentMap(msgReplaceMap); - mqBaseProducer.sendMessage(wxMsgRecord, EnumMsgMqTopic.DEFAULT.getCode(),EnumMsgMqTag.DEFAULT.getCode(),EnumMsgMqKey.DEFAULT.getCode()); //发送邮件 if(StringUtils.isNotBlank(email)) { @@ -1044,6 +1087,9 @@ public class WxFlowServiceImpl implements WxFlowService { }else if(isBill(flowType)){ msgReplaceMap.put("bustype","账单"); msgReplaceMap.put("contract", businessId.toString()); + }else if(isCoupon(flowType)){ + msgReplaceMap.put("bustype","有价卷"); + msgReplaceMap.put("contract",businessId.toString()); } mailMsg.setDynamicContentMap(msgReplaceMap); mqBaseProducer.sendMessage(mailMsg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java index 43984b6fa..53f21c1cd 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java @@ -334,6 +334,10 @@ public class WxMerchantServiceImpl implements WxMerchantService { final IdWorker idWorker = IdWorker.get(); long merchantId = idWorker.nextId(); + //检查商户名称 + if (hasMerchant(wxMerchant)) { + return new ResultData(ErrorCode.MERCHANT_NAME_IS_FOUND); + } //保存商户商铺的关联 List shopidlist = wxMerchant.getShopids(); if (shopidlist.isEmpty()) { @@ -439,6 +443,10 @@ public class WxMerchantServiceImpl implements WxMerchantService { if (wxMerchant.getId() == null) { return new ResultData(ErrorCode.MERCHANT_INFO_NOT_FOUND); } + //检查商户名称 + if (hasMerchant(wxMerchant)) { + return new ResultData(ErrorCode.MERCHANT_NAME_IS_FOUND); + } Date date = new Date(); wxMerchant.setUpdateDate(date); wxMerchantMapper.updateByPrimaryKeySelective(wxMerchant); @@ -693,4 +701,10 @@ public class WxMerchantServiceImpl implements WxMerchantService { wxProfitSharingReceiverService.sendMsg(linkPhone, accout, merchantName, null, type, tenantId); return new ResultData(Result.SUCCESS, "操作成功"); } + + @Override + public boolean hasMerchant(WxMerchant wxMerchant) { + wxMerchant.setStatus(EnumMerchantStatus.VALID.getCode()); + return wxMerchantMapper.hasMerchant(wxMerchant) > 0 ? true : false; + } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantTradeDailyServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantTradeDailyServiceImpl.java index 56ff78f5e..d13c39b44 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantTradeDailyServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantTradeDailyServiceImpl.java @@ -13,6 +13,7 @@ import com.iformall.domain.po.WxMerchantTradeDaily; import com.iformall.domain.vo.WxMerchantTradeDailyVo; import com.iformall.mapper.WxMerchantTradeDailyMapper; import com.iformall.service.*; +import com.iformall.utils.DateUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -185,6 +186,10 @@ public class WxMerchantTradeDailyServiceImpl implements WxMerchantTradeDailyServ WxMerchantTradeDaily wxMerchantTradeDaily = new WxMerchantTradeDaily(); wxMerchantTradeDaily.setTenantId(wxMerchantTradeDailyVo.getTenantId()); wxMerchantTradeDaily.setMerchantId(wxMerchantTradeDailyVo.getMerchantId()); + String starttime = DateUtils.getTimeBefore(29, new Date()); + String endtime = DateUtils.getSystemTime("yyyy-MM-dd"); + wxMerchantTradeDaily.setStarttime(starttime); + wxMerchantTradeDaily.setEndtime(endtime); List list = wxMerchantTradeDailyMapper.findListVoOfMonth(wxMerchantTradeDaily); String title = "近30天解单数据"; excelService.exportExcel(list, title, name, WxMerchantTradeDailyVo.class, name + ".xlsx", response, false); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMsgLimitServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMsgLimitServiceImpl.java new file mode 100644 index 000000000..919b694da --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMsgLimitServiceImpl.java @@ -0,0 +1,121 @@ +package com.iformall.service.impl; + +import com.iformall.common.IdWorker; +import com.iformall.domain.po.WxMsgLimit; +import com.iformall.enums.EnumMsgLimitType; +import com.iformall.mapper.WxMsgLimitMapper; +import com.iformall.service.WxMsgLimitService; +import com.iformall.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; + +/** + * @author luozukai + * 消息发送限制检查 + */ +@Service +public class WxMsgLimitServiceImpl implements WxMsgLimitService { + @Autowired + private WxMsgLimitMapper wxMsgLimitMapper; + + private List findList(WxMsgLimit record) { + return wxMsgLimitMapper.findList(record); + } + + private void add(WxMsgLimit record){ + final IdWorker idWorker = IdWorker.get(); + // 删除老的, 手机, openId会出现旧数据,删掉 + if(record.getType().equals(EnumMsgLimitType.SMS_VALID.getCode()) || + record.getType().equals(EnumMsgLimitType.SMS_SALE.getCode()) || + record.getType().equals(EnumMsgLimitType.WEAPP_OPENID_SEND.getCode()) || + record.getType().equals(EnumMsgLimitType.WXCHAT_OPENID_SEND.getCode()) + ){ + wxMsgLimitMapper.delLimitNum(record); + } + // 新增,根据类型获取限制条数 + setLimitNum(record); + // 保存 + record.setId(idWorker.nextId()); + wxMsgLimitMapper.insertSelective(record); + } + + private WxMsgLimit setLimitNum(WxMsgLimit record) { + Date curDate = new Date(); + if(record.getType().equals(EnumMsgLimitType.SMS_VALID.getCode())) { + // 短信 - 验证码, 24小时内10条 + record.setLimitNum(9); + Date limitDate = DateUtils.getTimeAfterDays(1, curDate); + record.setLimitDate(limitDate); + } else if(record.getType().equals(EnumMsgLimitType.SMS_SALE.getCode())) { + // 短信 - 营销, 24小时内3条 + record.setLimitNum(2); + Date limitDate = DateUtils.getTimeAfterDays(1, curDate); + record.setLimitDate(limitDate); + } else if(record.getType().equals(EnumMsgLimitType.WEAPP_PREPAYID.getCode())) { + // 小程序prepayId, 7天内3条 + record.setLimitNum(2); + Date limitDate = DateUtils.getTimeAfterDays(7, curDate); + record.setLimitDate(limitDate); + } else if(record.getType().equals(EnumMsgLimitType.WEAPP_FORMID.getCode())) { + // 小程序formId, 7天内1条 + record.setLimitNum(0); + Date limitDate = DateUtils.getTimeAfterDays(7, curDate); + record.setLimitDate(limitDate); + } else if(record.getType().equals(EnumMsgLimitType.WEAPP_OPENID_SEND.getCode())) { + // 小程序openId, 1天内1条 + record.setLimitNum(0); + Date limitDate = DateUtils.getTimeAfterDays(1, curDate); + record.setLimitDate(limitDate); + } else if(record.getType().equals(EnumMsgLimitType.WXCHAT_OPENID_SEND.getCode())) { + // 公众号openId, 1天内1条 + record.setLimitNum(0); + Date limitDate = DateUtils.getTimeAfterDays(1, curDate); + record.setLimitDate(limitDate); + } else { + // 未知的,暂定1天内1条 + record.setLimitNum(0); + Date limitDate = DateUtils.getTimeAfterDays(1, curDate); + record.setLimitDate(limitDate); + } + return record; + } + + private int updateLimit(WxMsgLimit record) { + int ret = wxMsgLimitMapper.updateLimitNum(record); + return ret; + } + + @Override + public boolean checkIsLimit(WxMsgLimit record) { + if(record.getExpireDate() == null) { + record.setExpireDate(new Date()); + } + record.setSortColumns(WxMsgLimit.Field.LimitDate_DESC, WxMsgLimit.Field.Id_DESC); + List list = wxMsgLimitMapper.findList(record); + if(list.size() > 0) { + // 已有限制条件 + WxMsgLimit msgLimit = list.get(0); + if(msgLimit.getLimitNum() > 0) { + int ret = updateLimit(msgLimit); + if(ret > 0) { + // 更新失败,未达到限制条件 + return false; + } else { + // 更新失败,已达到限制条件 + return true; + } + } else { + // 已达到限制条件,不发 + return true; + } + } else { + // 没有限制条件 + add(record); + return false; + } + + } +} diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMsgServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMsgServiceImpl.java index 3dbc2881f..ab06e92cb 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMsgServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMsgServiceImpl.java @@ -186,11 +186,13 @@ public class WxMsgServiceImpl implements WxMsgService { } } else { PushLimit pushLimit = pushLimitService.getPushLimit(wxMsg.getTenantId()); - String sendtime = wxMsg.getSendtime(); - Date date = DateUtils.stringToDate(sendtime, "yyyy-MM-dd HH:mm:ss"); - boolean isInDate = DateUtils.isInDate(date, pushLimit.getTimeStart(), pushLimit.getTimeEnd()); - if (!isInDate) { - return new ResultData(ErrorCode.PUSH_LIMIT_NOT_INRANG); + if(pushLimit.getEnable().equals(EnumEnableType.Enable.getCode())) { + String sendtime = wxMsg.getSendtime(); + Date date = DateUtils.stringToDate(sendtime, "yyyy-MM-dd HH:mm:ss"); + boolean isInDate = DateUtils.isInDate(date, pushLimit.getTimeStart(), pushLimit.getTimeEnd()); + if (!isInDate) { + return new ResultData(ErrorCode.PUSH_LIMIT_NOT_INRANG); + } } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java index 4a52e060f..b7a3028be 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -118,6 +118,9 @@ public class WxOrderServiceImpl implements WxOrderService { @Autowired private WxCUserBasicInfoMapper wxCUserBasicInfoMapper; + @Autowired + private WxMsgLimitService wxMsgLimitService; + @Override public PageInfo listAsPage(WxOrder record, Integer pageIndex, Integer pageSize) { return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxOrderMapper.findList(record)); @@ -235,7 +238,7 @@ public class WxOrderServiceImpl implements WxOrderService { statusS.add(EnumOrderStatus.ORDER_STATUS_COOPERATING_UNPAID.getCode()); orderQ.setStatusS(statusS); List orders = wxOrderMapper.findList(orderQ); - if(orders.size() > 1) { + if(orders.size() >= 1) { return orders.get(0); } } catch (Exception e) { diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java index b0be66704..ee1c622d3 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java @@ -172,6 +172,18 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { isShare = EnumPayShare.YES; } + // 1.5 检查是否有已支付订单 + { + WxPayOrder payOrderParams = new WxPayOrder(); + payOrderParams.setOrderId(order.getId()); + payOrderParams.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode()); + int count = wxPayOrderMapper.selectCount(payOrderParams); + if (count > 0) { + logger.error("已支付>>>" + order); + throw new MallinkException(ErrorCode.PAY_ORDER_EXIST); + } + } + /*设置进入分账,待分账时再判断是否存在对应的分账账户 // 1.5 check 分账 receive if (isShare == EnumPayShare.YES) { @@ -186,7 +198,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { } */ - // 2. check 是否有支付订单 + // 2. check 是否有支付中订单 Date currentDate = new Date(); record.setPayOrderStatus(EnumPayStatus.PAY_STATUS_WAIT.getCode()); List list = wxPayOrderMapper.findList(record); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java index 52a1c0df6..6e5813322 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java @@ -209,13 +209,45 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService return wxBillPropertyMapper.findList(wxBillRent); } + /** + * 重新生成账单(预账单调整) + */ + public void savePreviewBill(WxPropertyContract record){ + if(CollectionUtils.isEmpty(record.getPreviewBillRentList())){ + return; + } + wxBillPropertyMapper.deletePreviewBill(record); + final IdWorker idWorker = IdWorker.get(); + int count = 1; + for (WxBillProperty bill:record.getPreviewBillRentList()) { + bill.setId(idWorker.nextId()); + bill.setPropertyContractId(record.getId()); + bill.setCreatetime(new Date()); + bill.setTenantId(record.getTenantId()); + bill.setOwe(bill.getReceivePay()); + bill.setNeedPay(bill.getReceivePay()); + bill.setUpdatetime(new Date()); + bill.setRentShopType(record.getRentShopType()); + bill.setPeriod(count); + bill.setIsPreview(EnumIsPreview.YES.getCode()); + bill.setShopInfo(getShopInfoStr(record)); + bill.setRevenue(0l); + bill.setLatePayRatio(0); + bill.setPay(0l); + bill.setIsDel(0); + setExpiredDay(bill,Calendar.MONTH,record.getReceivePeriod()); + count++; + } + wxBillPropertyMapper.insertBills(record.getPreviewBillRentList()); + } + @Override @Transactional(rollbackFor = {Exception.class}) public ResultData saveOrUpdate(WxPropertyContract record, Long userId, String userName) { // 保存调整金额(预账单调整) boolean haspreview = false; if(!CollectionUtils.isEmpty(record.getPreviewBillRentList())){ - wxBillPropertyMapper.updateBills(record.getPreviewBillRentList()); + savePreviewBill(record); haspreview = true; } @@ -469,16 +501,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService wxBillDeposit.setUpdatetime(date); wxBillDeposit.setIsDel(EnumDelStatus.NOT_DEL.getCode()); wxBillDeposit.setRentShopType(wxPropertyContract.getRentShopType()); - String rentInfo = wxPropertyContract.getRentInfo(); - Map shopInfo = new HashMap<>(); - if (rentInfo != null) { - JSONArray rentInfoArray = JSONArray.parseArray(rentInfo); - for (int i = 0, size = rentInfoArray.size(); i < size; i++) { - JSONObject rentInfoObject = rentInfoArray.getJSONObject(i); - shopInfo.put(rentInfoObject.getString("shopNumber"), rentInfoObject.get("buildArea")); - } - } - wxBillDeposit.setShopInfo(JSONObject.toJSONString(shopInfo)); + wxBillDeposit.setShopInfo(getShopInfoStr(wxPropertyContract)); try { wxBillPropertyDepositMapper.insertSelective(wxBillDeposit); } catch (Exception e) { @@ -488,6 +511,19 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService } } + public String getShopInfoStr(WxPropertyContract wxPropertyContract){ + String rentInfo = wxPropertyContract.getRentInfo(); + Map shopInfo = new HashMap<>(); + if (rentInfo != null) { + JSONArray rentInfoArray = JSONArray.parseArray(rentInfo); + for (int i = 0, size = rentInfoArray.size(); i < size; i++) { + JSONObject rentInfoObject = rentInfoArray.getJSONObject(i); + shopInfo.put(rentInfoObject.getString("shopNumber"), rentInfoObject.get("buildArea")); + } + } + return JSONObject.toJSONString(shopInfo); + } + public List buildRentMonth(WxMerchant wxMerchant, Long userId, WxPropertyContract wxPropertyContract, int receivePeriod, Integer lease, Date rentalStartDate, Long price, Integer isPreview) { String adjustRatio = wxPropertyContract.getAdjustRatio(); String rentInfo = wxPropertyContract.getRentInfo(); @@ -650,23 +686,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService //截止收租日在当前时间之前 Date date = new Date(); - if (wxBillProperty.getReceiveDate().before(date)) { - long day = (wxBillProperty.getReceiveDate().getTime() - date.getTime()) / (24 * 60 * 60 * 1000); - wxBillProperty.setStatus(EnumBillRentStatus.NOT_PAID.getCode()); - wxBillProperty.setExpiredDay(day); - } else {//截止收租日在当前时间之后 - Calendar now = Calendar.getInstance(); - now.add(dayType, receivePeriod); - Date currenttime = now.getTime(); - //当前日期加上周期后小于截止收租日就是没有到期,否则当前待缴 - if (currenttime.before(wxBillProperty.getReceiveDate())) { - wxBillProperty.setStatus(EnumBillRentStatus.NOT_EXPIRED.getCode()); - wxBillProperty.setExpiredDay(0L); - } else { - wxBillProperty.setStatus(EnumBillRentStatus.WAIT_PAY.getCode()); - wxBillProperty.setExpiredDay(0L); - } - } + setExpiredDay(wxBillProperty,dayType,receivePeriod); wxBillProperty.setTenantId(wxPropertyContract.getTenantId()); wxBillProperty.setIsDel(0); wxBillProperty.setMerchantId(wxPropertyContract.getMerchantId()); @@ -691,6 +711,27 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService return resultMap; } + public void setExpiredDay(WxBillProperty wxBillProperty,int dayType, int receivePeriod){ + Date date = new Date(); + if (wxBillProperty.getReceiveDate().before(date)) { + long day = (wxBillProperty.getReceiveDate().getTime() - date.getTime()) / (24 * 60 * 60 * 1000); + wxBillProperty.setStatus(EnumBillRentStatus.NOT_PAID.getCode()); + wxBillProperty.setExpiredDay(day); + } else {//截止收租日在当前时间之后 + Calendar now = Calendar.getInstance(); + now.add(dayType, receivePeriod); + Date currenttime = now.getTime(); + //当前日期加上周期后小于截止收租日就是没有到期,否则当前待缴 + if (currenttime.before(wxBillProperty.getReceiveDate())) { + wxBillProperty.setStatus(EnumBillRentStatus.NOT_EXPIRED.getCode()); + wxBillProperty.setExpiredDay(0L); + } else { + wxBillProperty.setStatus(EnumBillRentStatus.WAIT_PAY.getCode()); + wxBillProperty.setExpiredDay(0L); + } + } + } + public boolean isFirstDay(Date date){ int dateInt = Integer.parseInt(new SimpleDateFormat("d").format(date)); if(dateInt == 1){ diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java index 274cb7c28..889b4ab57 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -435,15 +435,46 @@ public class WxRentContractServiceImpl implements WxRentContractService { } } - // 保存调整金额(预账单调整) - if(!CollectionUtils.isEmpty(record.getPreviewBillRentList())){ - wxBillRentMapper.updateBills(record.getPreviewBillRentList()); - } + //保存调整金额(预账单调整) + savePreviewBill(record); + WxRentContract wxRentContract = (WxRentContract)resultData.data; wxRentContract.setPreviewBillRentList(resultList); return new ResultData(wxRentContract); } + /** + * 重新生成账单(预账单调整) + */ + public void savePreviewBill(WxRentContract record){ + if(CollectionUtils.isEmpty(record.getPreviewBillRentList())){ + return; + } + wxBillRentMapper.deletePreviewBill(record); + final IdWorker idWorker = IdWorker.get(); + int count = 1; + for (WxBillRent bill:record.getPreviewBillRentList()) { + bill.setId(idWorker.nextId()); + bill.setRentContractId(record.getId()); + bill.setCreatetime(new Date()); + bill.setTenantId(record.getTenantId()); + bill.setOwe(bill.getReceivePay()); + bill.setNeedPay(bill.getReceivePay()); + bill.setUpdatetime(new Date()); + bill.setRentShopType(record.getRentShopType()); + bill.setPeriod(count); + bill.setIsPreview(EnumIsPreview.YES.getCode()); + bill.setShopInfo(getShopInfoStr(record)); + bill.setRevenue(0l); + bill.setLatePayRatio(0); + bill.setPay(0l); + bill.setIsDel(0); + setExpiredDay(bill,Calendar.MONTH,record.getReceivePeriod()); + count++; + } + wxBillRentMapper.insertBills(record.getPreviewBillRentList()); + } + public ResultData getResultDataForUpdate(WxRentContract record, Long userId,int from,Date oldRentStartDate) { //更新租赁合同信息 WxRentContract wxRentContract = wxRentContractMapper.selectByPrimaryKey(record.getId()); @@ -919,6 +950,14 @@ public class WxRentContractServiceImpl implements WxRentContractService { } + String shopInfoStr = getShopInfoStr(wxRentContract); + Map resultMap = buildRent(receivePeriod, priceArrs, yearList, Calendar.MONTH, wxRentContract, userId, billcount, isPreview, shopInfoStr); + List billRentList = (List)resultMap.get("billList"); + resultList.addAll(billRentList); + return resultList; + } + + public String getShopInfoStr(WxRentContract wxRentContract){ String shopInfoStr = null; if (wxRentContract.getRentShopType().equals(EnumRentShopType.SHOP.getCode())) { String rentInfo = wxRentContract.getRentInfo(); @@ -931,11 +970,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { } shopInfoStr = JSONObject.toJSONString(shopInfoMap); } - - Map resultMap = buildRent(receivePeriod, priceArrs, yearList, Calendar.MONTH, wxRentContract, userId, billcount, isPreview, shopInfoStr); - List billRentList = (List)resultMap.get("billList"); - resultList.addAll(billRentList); - return resultList; + return shopInfoStr; } public Map buildRent(int receivePeriod, long[] priceArrs, List yearList, int dayType, WxRentContract wxRentContract, Long userId, int billcount, Integer isPreview, String shopInfoStr) { @@ -1032,23 +1067,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { //截止收租日在当前时间之前 Date date = new Date(); - if (wxBillRent.getReceiveDate().before(date)) { - long day = (wxBillRent.getReceiveDate().getTime() - date.getTime()) / (24 * 60 * 60 * 1000); - wxBillRent.setStatus(EnumBillRentStatus.NOT_PAID.getCode()); - wxBillRent.setExpiredDay(day); - } else {//截止收租日在当前时间之后 - Calendar now = Calendar.getInstance(); - now.add(dayType, receivePeriod); - Date currenttime = now.getTime(); - //当前日期加上周期后小于截止收租日就是没有到期,否则当前待缴 - if (currenttime.before(wxBillRent.getReceiveDate())) { - wxBillRent.setStatus(EnumBillRentStatus.NOT_EXPIRED.getCode()); - wxBillRent.setExpiredDay(0L); - } else { - wxBillRent.setStatus(EnumBillRentStatus.WAIT_PAY.getCode()); - wxBillRent.setExpiredDay(0L); - } - } + setExpiredDay(wxBillRent,dayType,receivePeriod); wxBillRent.setRevenue(0L); wxBillRent.setTenantId(wxRentContract.getTenantId()); wxBillRent.setIsDel(0); @@ -1073,6 +1092,28 @@ public class WxRentContractServiceImpl implements WxRentContractService { return resultMap; } + public void setExpiredDay(WxBillRent wxBillRent,int dayType, int receivePeriod){ + //截止收租日在当前时间之前 + Date date = new Date(); + if (wxBillRent.getReceiveDate().before(date)) { + long day = (wxBillRent.getReceiveDate().getTime() - date.getTime()) / (24 * 60 * 60 * 1000); + wxBillRent.setStatus(EnumBillRentStatus.NOT_PAID.getCode()); + wxBillRent.setExpiredDay(day); + } else {//截止收租日在当前时间之后 + Calendar now = Calendar.getInstance(); + now.add(dayType, receivePeriod); + Date currenttime = now.getTime(); + //当前日期加上周期后小于截止收租日就是没有到期,否则当前待缴 + if (currenttime.before(wxBillRent.getReceiveDate())) { + wxBillRent.setStatus(EnumBillRentStatus.NOT_EXPIRED.getCode()); + wxBillRent.setExpiredDay(0L); + } else { + wxBillRent.setStatus(EnumBillRentStatus.WAIT_PAY.getCode()); + wxBillRent.setExpiredDay(0L); + } + } + } + public boolean isFirstDay(Date date){ int dateInt = Integer.parseInt(new SimpleDateFormat("d").format(date)); if(dateInt == 1){ @@ -1298,7 +1339,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { public ResultData updateFile(WxRentContract record, Long userId,String userName,Date oldRentStartDate) { // 保存调整金额(预账单调整) if(!CollectionUtils.isEmpty(record.getPreviewBillRentList())){ - wxBillRentMapper.updateBills(record.getPreviewBillRentList()); + savePreviewBill(record); } ResultData resultData = getResultDataForUpdate(record, userId,0,oldRentStartDate); if (resultData.code != Result.SUCCESS) { diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxSubBusinessServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxSubBusinessServiceImpl.java index 53f3d1d0b..234ab0df3 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxSubBusinessServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxSubBusinessServiceImpl.java @@ -2,6 +2,7 @@ package com.iformall.service.impl; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import com.iformall.common.ResultData; import com.iformall.domain.po.WxBusiness; import com.iformall.domain.po.WxSubBusiness; import com.iformall.mapper.WxBusinessMapper; @@ -43,5 +44,4 @@ public class WxSubBusinessServiceImpl implements WxSubBusinessService { return wxSubBusinessMapper.selectByPrimaryKey(id); } - } diff --git a/mallinkService/src/main/java/com/iformall/service/kw/KwMerchantMeterService.java b/mallinkService/src/main/java/com/iformall/service/kw/KwMerchantMeterService.java index 3f0c03138..6da4dee8c 100644 --- a/mallinkService/src/main/java/com/iformall/service/kw/KwMerchantMeterService.java +++ b/mallinkService/src/main/java/com/iformall/service/kw/KwMerchantMeterService.java @@ -4,6 +4,7 @@ package com.iformall.service.kw; import com.github.pagehelper.PageInfo; import com.iformall.common.ResultData; import com.iformall.domain.po.KwMerchantMeter; +import com.iformall.domain.vo.KwMerchantMeterVo; import java.util.List; @@ -18,7 +19,7 @@ public interface KwMerchantMeterService { * @param pageSize * @return */ - PageInfo listAsPage(KwMerchantMeter record, Integer pageIndex, Integer pageSize); + PageInfo listAsPage(KwMerchantMeter record, Integer pageIndex, Integer pageSize); /** @@ -37,14 +38,6 @@ public interface KwMerchantMeterService { ResultData saveOrUpdate(KwMerchantMeter record); - /** - * 根据Id删除实体 - * - * @param id - */ - void deleteById(Long id); - - /** * 根据实体查询分页列表 * @@ -52,6 +45,7 @@ public interface KwMerchantMeterService { * @return */ List findList(KwMerchantMeter record); - - + List findListVo(KwMerchantMeter record); + int selectCount(KwMerchantMeter record); + int unbindBatch(KwMerchantMeter record); } \ No newline at end of file diff --git a/mallinkService/src/main/java/com/iformall/service/kw/impl/KwMerchantMeterServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/kw/impl/KwMerchantMeterServiceImpl.java index 1dd3c5d58..d209f15c4 100644 --- a/mallinkService/src/main/java/com/iformall/service/kw/impl/KwMerchantMeterServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/kw/impl/KwMerchantMeterServiceImpl.java @@ -5,6 +5,7 @@ import com.github.pagehelper.PageInfo; import com.iformall.common.IdWorker; import com.iformall.common.ResultData; import com.iformall.domain.po.KwMerchantMeter; +import com.iformall.domain.vo.KwMerchantMeterVo; import com.iformall.mapper.KwMerchantMeterMapper; import com.iformall.service.kw.KwMerchantMeterService; import org.slf4j.Logger; @@ -12,6 +13,7 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.Date; import java.util.List; @@ -23,8 +25,8 @@ public class KwMerchantMeterServiceImpl implements KwMerchantMeterService { KwMerchantMeterMapper kwMerchantMeterMapper; @Override - public PageInfo listAsPage(KwMerchantMeter record, Integer pageIndex, Integer pageSize) { - return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> kwMerchantMeterMapper.findList(record)); + public PageInfo listAsPage(KwMerchantMeter record, Integer pageIndex, Integer pageSize) { + return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> kwMerchantMeterMapper.findListVo(record)); } @Override @@ -38,8 +40,11 @@ public class KwMerchantMeterServiceImpl implements KwMerchantMeterService { if (record.getId() == null) { final IdWorker idWorker = IdWorker.get(); record.setId(idWorker.nextId()); + record.setCreateTime(new Date()); + record.setUpdateTime(new Date()); kwMerchantMeterMapper.insertSelective(record); } else { + record.setUpdateTime(new Date()); kwMerchantMeterMapper.updateByPrimaryKeySelective(record); } return new ResultData(); @@ -47,13 +52,28 @@ public class KwMerchantMeterServiceImpl implements KwMerchantMeterService { @Override - public void deleteById(Long id) { - kwMerchantMeterMapper.deleteByPrimaryKey(id); + public List findList(KwMerchantMeter record) { + return kwMerchantMeterMapper.findList(record); } @Override - public List findList(KwMerchantMeter record) { - return kwMerchantMeterMapper.findList(record); + public List findListVo(KwMerchantMeter record) { + return kwMerchantMeterMapper.findListVo(record); + } + + @Override + public int selectCount(KwMerchantMeter record) { + return kwMerchantMeterMapper.selectCount(record); + } + + @Override + public int unbindBatch(KwMerchantMeter record) { + if (record == null) + return 0; + if (record.getMeterId() == null + && record.getMerchantId() == null) + return 0; + return kwMerchantMeterMapper.unbindBatch(record); } diff --git a/mallinkService/src/main/java/com/iformall/service/msg/impl/SendCallBackSmsServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/msg/impl/SendCallBackSmsServiceImpl.java index 6a6dd5bd8..14d7dd9f5 100644 --- a/mallinkService/src/main/java/com/iformall/service/msg/impl/SendCallBackSmsServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/msg/impl/SendCallBackSmsServiceImpl.java @@ -11,6 +11,7 @@ import com.iformall.enums.EnumMsgStatus; import com.iformall.enums.EnumVerifyCode; import com.iformall.exception.MallinkException; import com.iformall.mapper.*; +import com.iformall.service.WxMsgLimitService; import com.iformall.service.msg.MsgSendService; import com.iformall.service.WxMsgService; import com.iformall.service.WxMsgValidationcodeService; @@ -44,6 +45,10 @@ public class SendCallBackSmsServiceImpl implements MsgSendService { @Autowired private WxMsgService wxMsgService; + @Autowired + private WxMsgLimitService wxMsgLimitService; + + @Override public void send(BaseMsg baseMsg) throws Exception{ WxMsg record = (WxMsg)baseMsg; @@ -82,6 +87,18 @@ public class SendCallBackSmsServiceImpl implements MsgSendService { if (wxMsgModel != null) { modelId = wxMsgModel.getModelId(); } + /* + // 检查是否超限 + WxMsgLimit msgLimit = new WxMsgLimit(); + msgLimit.setTenantId(record.getTenantId()); + msgLimit.setType(EnumMsgLimitType.SMS_SALE.getCode()); + msgLimit.setLimitId(phone); + if(wxMsgLimitService.checkIsLimit(msgLimit)) { + logger.error("用户短信超限:" + phone); + return; + } + */ + String result = WiwideUtil.sendMsg(secret, bid, publickey, phone, signature, msg, notifyUrl, EnumVerifyCode.NO.getCode().toString(), modelId); JSONObject jsonObjectResult = JSONObject.parseObject(result); String ret = jsonObjectResult.get("ret").toString(); diff --git a/mallinkService/src/main/java/com/iformall/service/msg/impl/SendSmsServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/msg/impl/SendSmsServiceImpl.java index 336e46f8a..af448d808 100644 --- a/mallinkService/src/main/java/com/iformall/service/msg/impl/SendSmsServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/msg/impl/SendSmsServiceImpl.java @@ -6,11 +6,13 @@ import com.iformall.common.IdWorker; import com.iformall.domain.po.*; import com.iformall.domain.po.msg.BaseMsg; import com.iformall.domain.po.msg.WxMsgRecord; +import com.iformall.enums.EnumMsgLimitType; import com.iformall.enums.EnumVerifyCode; import com.iformall.exception.MallinkException; import com.iformall.mapper.WxMsgConfigMapper; import com.iformall.mapper.WxMsgValidationcodeMapper; import com.iformall.mapper.WxMsgValidationcodeModelMapper; +import com.iformall.service.WxMsgLimitService; import com.iformall.service.msg.MsgSendService; import com.iformall.service.WxMsgValidationcodeService; import com.iformall.utils.WiwideUtil; @@ -39,6 +41,9 @@ public class SendSmsServiceImpl implements MsgSendService { @Autowired private WxMsgValidationcodeService wxMsgValidationcodeService; + @Autowired + private WxMsgLimitService wxMsgLimitService; + @Override public void send(BaseMsg baseMsg) throws Exception{ WxMsgRecord record = (WxMsgRecord)baseMsg; @@ -85,6 +90,16 @@ public class SendSmsServiceImpl implements MsgSendService { wxMsgValidationcode.setCode(record.getDynamicContentMap().get("s6")); } + // 检查是否超限 + WxMsgLimit msgLimit = new WxMsgLimit(); + msgLimit.setTenantId(record.getTenantId()); + msgLimit.setType(EnumMsgLimitType.SMS_VALID.getCode()); + msgLimit.setLimitId(phone); + if(wxMsgLimitService.checkIsLimit(msgLimit)) { + logger.error("用户短信超限:" + phone); + return; + } + String notifyUrl = wxMsgConfig.getNotifyurl(); Integer modelId = wxMsgValidationcodeModel.getModelId(); String result = WiwideUtil.sendMsg(secret, bid, publickey, phone, signature, msg, notifyUrl, EnumVerifyCode.YES.getCode().toString(), modelId); diff --git a/mallinkService/src/main/java/com/iformall/utils/DateUtils.java b/mallinkService/src/main/java/com/iformall/utils/DateUtils.java index 1cb074406..e6ca5c841 100755 --- a/mallinkService/src/main/java/com/iformall/utils/DateUtils.java +++ b/mallinkService/src/main/java/com/iformall/utils/DateUtils.java @@ -388,6 +388,20 @@ public class DateUtils { return testDate; } + /** + * 获得当前时间后几天的时间 + * + * @param days 后几天 + * + * @return + */ + public static Date getTimeAfterDays(int days, Date myDate) { + Calendar now = Calendar.getInstance(); + now.setTime(myDate); + now.set(Calendar.DATE, now.get(Calendar.DATE) + days); + return now.getTime(); + } + /** * 获得指定时间前几天,格式yyyy-MM-dd * @@ -1152,5 +1166,22 @@ public class DateUtils { } + /** + * 获取上个月的今天 + */ + public static Date getLastMonthToDay() { + Date date = new Date(); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); // 设置为当前时间 + calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH) - 1); // 设置为上一个月 + return calendar.getTime(); + } + + public static void main(String[] args) { + Date curDate = new Date(); + Date limitDate = DateUtils.getTimeAfterDays(7, curDate); + System.out.println(curDate); + System.out.println(limitDate); + } } diff --git a/mallinkService/src/main/resources/mapper/KwMerchantMeterMapper.xml b/mallinkService/src/main/resources/mapper/KwMerchantMeterMapper.xml index 2faf4ee88..643a8d544 100644 --- a/mallinkService/src/main/resources/mapper/KwMerchantMeterMapper.xml +++ b/mallinkService/src/main/resources/mapper/KwMerchantMeterMapper.xml @@ -9,6 +9,8 @@ + + @@ -21,11 +23,19 @@ and `id` = #{id} - + and `tenant_id` = #{tenantId} + + and `merchant_id` = #{merchantId} + + + + and `meter_id` = #{meterId} + + and `status` = #{status} @@ -39,12 +49,56 @@ order by ${sortColumns} - select - from kw_box_meter + from kw_merchant_meter + + + + + + + + + + + + + + + + + + `id`,`tenant_id`,`meter_id`,`merchant_id`,`status`,`create_time`,`update_time`, `name`, `link_phone` + + + + + + update kw_merchant_meter set status = 1 + where status = 0 + + + and `merchant_id` = #{merchantId} + + + + and `meter_id` = #{meterId} + + + + diff --git a/mallinkService/src/main/resources/mapper/MallUserActionMapper.xml b/mallinkService/src/main/resources/mapper/MallUserActionMapper.xml index a473e6887..0f7769fdd 100644 --- a/mallinkService/src/main/resources/mapper/MallUserActionMapper.xml +++ b/mallinkService/src/main/resources/mapper/MallUserActionMapper.xml @@ -96,6 +96,7 @@ order by ${sortColumns} + order by mua.`action_time` desc, mua.`id` desc diff --git a/mallinkService/src/main/resources/mapper/WxActivityMapper.xml b/mallinkService/src/main/resources/mapper/WxActivityMapper.xml index c1da23160..a4d458460 100644 --- a/mallinkService/src/main/resources/mapper/WxActivityMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxActivityMapper.xml @@ -113,11 +113,11 @@ - update wx_activity set is_expired=${isExpired} where status=${status} and now()>end_time + update wx_activity set is_expired=${isExpired},update_time=#{updateTime} where status=${status} and now()>end_time - update wx_activity set status=#{status} where status!=${status} and now()>activity_end_time + update wx_activity set status=#{status},update_time=#{updateTime} where status!=${status} and now()>activity_end_time diff --git a/mallinkService/src/main/resources/mapper/WxBillDailyMapper.xml b/mallinkService/src/main/resources/mapper/WxBillDailyMapper.xml index cf5c1350d..0404cbe2c 100644 --- a/mallinkService/src/main/resources/mapper/WxBillDailyMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxBillDailyMapper.xml @@ -21,6 +21,8 @@ + + @@ -64,20 +66,17 @@ - + select br.`id`,br.`receive_pay`,br.`pay`,br.`receive_date`,br.`pay_date`,br.`createtime`,br.`expired_day` , + case when br.status=1 then br.owe else 0 end owe,br.`status`,m.`name` merchant_name, + s.shop_number,br.`updatetime`,br.`merchant_id`, + br.shop_id,br.type,br.`rent_shop_type`,br.pay_way,br.price_detail from wx_bill_daily br left join wx_merchant m on br.merchant_id=m.id left join wx_shop s on br.shop_id=s.id and br.`id` = #{id} and br.`merchant_id` = #{merchantId} and m.`name` like concat('%',#{merchantName},'%') - and br.`tenant_id` = #{tenantId} and br.`status` = #{status} and br.`is_del` = #{isDel} and br.`type` = #{type} diff --git a/mallinkService/src/main/resources/mapper/WxBillOtherDepositMapper.xml b/mallinkService/src/main/resources/mapper/WxBillOtherDepositMapper.xml index 67e96ec4c..f77fb51de 100644 --- a/mallinkService/src/main/resources/mapper/WxBillOtherDepositMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxBillOtherDepositMapper.xml @@ -22,6 +22,8 @@ + + @@ -68,12 +70,10 @@ - + select br.`id`,br.`receive_pay`,br.`pay`,br.`receive_date`,br.`pay_date`,br.`createtime`,br.`expired_day`, + br.`owe`,br.`status`,m.`name` merchant_name,s.shop_number,br.`updatetime`,br.`return_price`,br.`merchant_id`, + br.shop_id,br.name,br.comments,br.`rent_shop_type`,br.pay_way from wx_bill_other_deposit br left join wx_merchant m on br.merchant_id=m.id left join wx_shop s on br.shop_id=s.id @@ -81,12 +81,12 @@ and br.`merchant_id` = #{merchantId} and m.`name` like concat('%',#{merchantName},'%') - and br.`tenant_id` = #{tenantId} and br.`status` = #{status} and br.`is_del` = #{isDel} - and br.`name` = #{name} + and br.`name` = #{name} and br.`rent_shop_type` = #{rentShopType} and br.`pay_way` = #{payWay} + and br.`comments` like concat('%',#{comments},'%') order by ${sortColumns} diff --git a/mallinkService/src/main/resources/mapper/WxBillOtherMapper.xml b/mallinkService/src/main/resources/mapper/WxBillOtherMapper.xml index d12da854f..946d0f6fb 100644 --- a/mallinkService/src/main/resources/mapper/WxBillOtherMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxBillOtherMapper.xml @@ -21,7 +21,10 @@ - + + + + @@ -64,24 +67,21 @@ select from wx_bill_other - - + select br.`id`,br.`receive_pay`,br.`pay`,br.`receive_date`, br.`pay_date`,br.`createtime`,br.`expired_day`, + case when br.status=1 then br.owe else 0 end owe,br.`status`,m.`name` + merchant_name,s.shop_number,br.`updatetime`, + br.`merchant_id`,br.shop_id,br.name,br.comments,br.`rent_shop_type`,br.pay_way from wx_bill_other br left join wx_merchant m on br.merchant_id=m.id left join wx_shop s on br.shop_id=s.id and br.`id` = #{id} and br.`merchant_id` = #{merchantId} and m.`name` like concat('%',#{merchantName},'%') - and br.`tenant_id` = #{tenantId} and br.`status` = #{status} and br.`is_del` = #{isDel} - and br.`name` = #{name} + and br.`name` like concat('%',#{name},'%') and br.`rent_shop_type` = #{rentShopType} and br.`pay_way` = #{payWay} diff --git a/mallinkService/src/main/resources/mapper/WxBillPropertyMapper.xml b/mallinkService/src/main/resources/mapper/WxBillPropertyMapper.xml index 709f73fc5..fe8423111 100644 --- a/mallinkService/src/main/resources/mapper/WxBillPropertyMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxBillPropertyMapper.xml @@ -32,7 +32,12 @@ - + + + + + + @@ -80,20 +85,16 @@ select from wx_bill_property - - + select br.`id`,br.`receive_pay`,br.`pay`,br.`receive_date`,br.`pay_date`,br.`createtime`,br.`expired_day`, + case when br.status=1 then br.owe else 0 end owe,br.`status`,br.`need_pay`,m.`name` + merchant_name,s.shop_number,br.`updatetime`,br.`merchant_id`,br.`rent_shop_type`,br.`period`, + br.`revenue`,br.`late_pay_ratio`,br.`late_pay_time`,br.`property_contract_id`,d.receive_pay deposit, + case when br.late_pay_status=2 then (case when br.late_pay_time is null then 0 else FLOOR(DATEDIFF(now(),br.late_pay_time)*br.late_pay_ratio/10000*br.owe)end) - else br.late_pay_price end latePayPrice, - (select max(period) from wx_bill_property where property_contract_id=br.property_contract_id) - allPeriod,d.`status` depositStatus,br.`shop_info` shopInfo,br.pay_way payWay,br.late_pay_status latePayStatus, + else br.late_pay_price end late_pay_price,d.`status` + deposit_status,br.`shop_info`,br.pay_way,br.late_pay_status, br.`comments`,br.starttime,br.endtime from wx_bill_property br left join wx_merchant m on br.merchant_id=m.id left join wx_shop s on br.shop_id=s.id @@ -103,7 +104,6 @@ and br.`id` = #{id} and br.`merchant_id` = #{merchantId} and m.`name` like concat('%',#{merchantName},'%') - and br.`tenant_id` = #{tenantId} and br.`status` = #{status} and br.`is_del` = #{isDel} and br.`receive_date` between #{starttime} and #{endtime} @@ -214,6 +214,13 @@ where id = #{item.id} + + diff --git a/mallinkService/src/main/resources/mapper/WxBillRentMapper.xml b/mallinkService/src/main/resources/mapper/WxBillRentMapper.xml index 4868828be..a33efb69e 100644 --- a/mallinkService/src/main/resources/mapper/WxBillRentMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxBillRentMapper.xml @@ -32,7 +32,16 @@ - + + + + + + + + + + @@ -82,23 +91,17 @@ from wx_bill_rent - - - + select br.`id`,br.`receive_pay`,br.`pay`,br.`receive_date`,br.`pay_date`,br.`createtime`,br.`expired_day`, + case when br.status=1 then br.owe else 0 end owe,br.`status`,br.`need_pay`,m.`name` merchant_name, + s.shop_number,br.`updatetime`,br.`merchant_id`,br.`rent_shop_type`,r.type as rent_type, + r.pay_ratio,br.`revenue`,br.`late_pay_ratio`,br.`late_pay_time`,br.`period`,br.`rent_contract_id`, + d.receive_pay deposit,case when br.late_pay_status=2 then (case when br.late_pay_time is null then 0 + else FLOOR(DATEDIFF(now(),br.late_pay_time)*br.late_pay_ratio/10000*br.owe)end) else br.late_pay_price end + late_pay_price,d.`status` + deposit_status,br.shop_info,br.pay_way,br.late_pay_status,br.`comments`,br.starttime,br.endtime from wx_bill_rent br left join wx_merchant m on br.merchant_id=m.id left join wx_shop s on br.shop_id=s.id left join wx_rent_contract r on br.rent_contract_id=r.id @@ -108,7 +111,6 @@ and br.`id` = #{id} and br.`merchant_id` = #{merchantId} and m.`name` like concat('%',#{merchantName},'%') - and br.`tenant_id` = #{tenantId} and br.`status` = #{status} and br.`is_del` = #{isDel} and br.`receive_date` between #{starttime} and #{endtime} @@ -212,7 +214,13 @@ where id = #{item.id} - + + diff --git a/mallinkService/src/main/resources/mapper/WxBusinessMapper.xml b/mallinkService/src/main/resources/mapper/WxBusinessMapper.xml index 0861a87f2..164d9f6f8 100644 --- a/mallinkService/src/main/resources/mapper/WxBusinessMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxBusinessMapper.xml @@ -80,7 +80,102 @@ order by create_date asc + + + diff --git a/mallinkService/src/main/resources/mapper/WxCouponActionLogMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponActionLogMapper.xml index a9dc2c67a..f03828784 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponActionLogMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponActionLogMapper.xml @@ -130,7 +130,7 @@ @@ -405,6 +407,22 @@ and c.`auto_refund` = #{autoRefund} + + + + and if(type=8,put_apply_status =2,1=1) + + + and if(type=9,put_apply_status =2,1=1) + + + and if(type=100,put_apply_status =2,1=1) + + + + and if(type !=8 and type !=9 and type!=100,put_apply_status =2,1=1) + + and c.id in @@ -420,12 +438,6 @@ - - order by ${sortColumns} @@ -434,8 +446,21 @@ from wx_coupon c + + + limit #{limitStart},#{limitEnd} + + + + + @@ -663,62 +688,6 @@ order by c.status asc,c.create_date desc - - delete from `wx_coupon_press_data` where tenant_id = #{tenantId} - - - - insert into `wx_coupon_press_data` - (`id`, `tenant_id`, `cover_img`, `title`, `sale_price`, `price`) - select `id`, `tenant_id`, `cover_img`, `title`, `sale_price`, `price` - from wx_coupon where type = 8 and tenant_id = #{tenantId} - - - - update wx_coupon_press_data cpd set change_rate = - IFNULL(round((select count(o.id) from wx_order o - where o.tenant_id = #{tenantId} and o.order_status = 1 and o.product_id = cpd.id)/ - (select count(wop.id) from wx_order o - left join wx_order_press wop on wop.order_id = o.id - where o.product_id = cpd.id and o.tenant_id = #{tenantId} and wop.first = 1)*100,2),0) - where cpd.tenant_id = #{tenantId} - - - - update wx_coupon_press_data cpd set press_count= (select count(wop.id) from wx_order o - left join wx_order_press wop on wop.order_id = o.id - where o.product_id = cpd.id and o.tenant_id = #{tenantId} and wop.first = 1) - where cpd.tenant_id=#{tenantId} - - - - update wx_coupon_press_data cpd set - press_succ_count = - (select count(o.id) from wx_order o - where o.product_id = cpd.id and o.tenant_id = #{tenantId} and o.order_status = 1) - where cpd.tenant_id=#{tenantId} - - - - update wx_coupon_press_data cpd set join_count = - (select count(wop.id) from wx_order o - left join wx_order_press wop on wop.order_id = o.id - where o.tenant_id = #{tenantId} and o.product_id = cpd.id and o.payment_type = 0) - where cpd.tenant_id=#{tenantId} - - - - + diff --git a/mallinkService/src/main/resources/mapper/WxCouponMerchantMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponMerchantMapper.xml index 7be8f398d..fd2f8ebca 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponMerchantMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponMerchantMapper.xml @@ -64,7 +64,7 @@ m.id,m.img_url,m.name,m.link_phone,m.status,m.business_id,m.sub_business_id, - cm.parameter + cm.parameter,m.link_line_phone @@ -76,6 +76,7 @@ + + + diff --git a/mallinkService/src/main/resources/mapper/WxFlowRecordMapper.xml b/mallinkService/src/main/resources/mapper/WxFlowRecordMapper.xml index 6ea8aceb8..03a7e65c1 100644 --- a/mallinkService/src/main/resources/mapper/WxFlowRecordMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxFlowRecordMapper.xml @@ -57,6 +57,9 @@ #{idItem} + + and json_extract(variables,'$.approvalType') = #{approvalType} + order by create_date desc diff --git a/mallinkService/src/main/resources/mapper/WxLevelMerchantMapper.xml b/mallinkService/src/main/resources/mapper/WxLevelMerchantMapper.xml index f0d859c96..649b0783a 100644 --- a/mallinkService/src/main/resources/mapper/WxLevelMerchantMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxLevelMerchantMapper.xml @@ -69,6 +69,9 @@ + + + m.id,m.name,m.link_phone, - lm.discount + lm.discount,m.link_line_phone diff --git a/mallinkService/src/main/resources/mapper/WxMerchantMapper.xml b/mallinkService/src/main/resources/mapper/WxMerchantMapper.xml index ee84e6c08..5608176b5 100644 --- a/mallinkService/src/main/resources/mapper/WxMerchantMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxMerchantMapper.xml @@ -30,6 +30,7 @@ + @@ -37,7 +38,7 @@ `id`,`tenant_id`,`img_url`,`name`,`link_phone`,`create_date`,`update_date`,`car_vendor_type`,`car_params`,`status`,`link_person`, `business_id`,`sub_business_id`,`shop_type`,`brand`,`type`,`is_public`,email,`title`,`cover_picture`,`is_admin`,`bill_setting`,`qr_code`, `introduction`,`action_desc`,`is_del`, - `talk_user_main`,`talk_user_aux` + `talk_user_main`,`talk_user_aux`,link_line_phone @@ -135,7 +136,7 @@ m.id,m.img_url,m.name,m.link_phone,m.status,m.business_id, m.is_public,m.email,m.title,m.cover_picture,m.sub_business_id, - m.shop_type,m.introduction,m.action_desc,bu.title as business_name + m.shop_type,m.introduction,m.action_desc,bu.title as business_name,m.link_line_phone - select count(m.business_id) count,b.id bid,b.`title` btitle from wx_merchant m left join wx_merchant_shop ms on(m.id = ms.merchant_id) + select count(distinct m.id) count,b.id bid,b.`title` btitle from wx_merchant m + left join wx_merchant_shop ms on(m.id = ms.merchant_id) left join wx_shop s on(ms.shop_id = s.id) left join wx_mall_floor f on(s.floor = f.id) left join wx_business b on(m.business_id = b.id) where f.id = #{id} and m.tenant_id = #{tenantId} + and s.is_del = 0 group by m.business_id + + + diff --git a/mallinkService/src/main/resources/mapper/WxMerchantTradeDailyMapper.xml b/mallinkService/src/main/resources/mapper/WxMerchantTradeDailyMapper.xml index c05bc0e7e..336773e69 100644 --- a/mallinkService/src/main/resources/mapper/WxMerchantTradeDailyMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxMerchantTradeDailyMapper.xml @@ -160,6 +160,11 @@ and mtd.merchant_id = #{merchantId} + + + and mtd.report_date between #{starttime} and #{endtime} + + order by mtd.create_date desc LIMIT 30 diff --git a/mallinkService/src/main/resources/mapper/WxMsgLimitMapper.xml b/mallinkService/src/main/resources/mapper/WxMsgLimitMapper.xml new file mode 100644 index 000000000..cca21b745 --- /dev/null +++ b/mallinkService/src/main/resources/mapper/WxMsgLimitMapper.xml @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + `id`,`tenant_id`,`type`,`limit_id`,`limit_num`,`limit_date` + + + + where 1 = 1 + + + and `id` = #{id} + + + + and `tenant_id`=#{tenantId} + + + + and `type` = #{type} + + + + and `limit_id` = #{limitId} + + + + and `limitNum` = #{limitNum} + + + + and `limit_date` = #{limitDate} + + + + and `limit_date` > #{expireDate} + + + and id in + + #{idItem} + + + order by ${sortColumns} + + + + + + update wx_msg_limit set limit_num = limit_num - 1 where `id` = #{id} and `tenant_id` = #{tenantId} and limit_num > 0 + + + + delete from wx_msg_limit + where `tenant_id` = #{tenantId} and `type`= #{type} and `limit_id` = #{limitId} + + + diff --git a/mallinkService/src/main/resources/mapper/WxShopMapper.xml b/mallinkService/src/main/resources/mapper/WxShopMapper.xml index dbcc17885..1f905f1f7 100644 --- a/mallinkService/src/main/resources/mapper/WxShopMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxShopMapper.xml @@ -452,7 +452,7 @@ #{idItem} - order by s.${sortColumns} + order by ${sortColumns} @@ -506,7 +506,7 @@ and s.`point_type` = #{pointType} - order by s.${sortColumns} + order by ${sortColumns} diff --git a/mallinkSysAdmin/src/main/java/com/iformall/controller/sys/MallUserInfoController.java b/mallinkSysAdmin/src/main/java/com/iformall/controller/sys/MallUserInfoController.java index 392431618..eca16d488 100644 --- a/mallinkSysAdmin/src/main/java/com/iformall/controller/sys/MallUserInfoController.java +++ b/mallinkSysAdmin/src/main/java/com/iformall/controller/sys/MallUserInfoController.java @@ -74,7 +74,7 @@ public class MallUserInfoController extends BaseController { public ResultData listAsPage(MallUserInfo userInfo, Integer pageNum, Integer pageSize) { logger.debug("[" + getIpAddr() + "] MallUserInfoController::listAsPage"); userInfo.setTenantId(getTenantId()); - userInfo.setSortColumns(MallUserInfo.Field.Id_DESC); + userInfo.setSortColumns(MallUserInfo.Field.CreateTime_DESC,MallUserInfo.Field.Id_DESC); final PageInfo page = userInfoService.listAsPage(userInfo, pageNum, pageSize); for (MallUserInfo u : page.getList()) { MallUserRole r = new MallUserRole();