| @@ -156,14 +156,15 @@ public class WxUserStructureController extends BaseController { | |||||
| public ResultData findCarLevelStructure(Date startTime, Date endTime) { | public ResultData findCarLevelStructure(Date startTime, Date endTime) { | ||||
| logger.debug("[" + getIpAddr() + "] WxUserStructureController::findCarLevelStructure"); | logger.debug("[" + getIpAddr() + "] WxUserStructureController::findCarLevelStructure"); | ||||
| TenantEntity tenantInfo = getTenantInfo(); | TenantEntity tenantInfo = getTenantInfo(); | ||||
| List<TenantEntity> tenantEntitys = wxMallService.getTenantEntitys(tenantInfo); | |||||
| // List<TenantEntity> tenantEntitys = wxMallService.getTenantEntitys(tenantInfo); | |||||
| WxCUserBasicInfoDto dto = new WxCUserBasicInfoDto(); | WxCUserBasicInfoDto dto = new WxCUserBasicInfoDto(); | ||||
| dto.setStartTime(startTime); | dto.setStartTime(startTime); | ||||
| dto.setEndTime(endTime); | dto.setEndTime(endTime); | ||||
| long total = wxCUserBasicInfoService.findCount(ifParentUpdateTenantInfo(),dto); | long total = wxCUserBasicInfoService.findCount(ifParentUpdateTenantInfo(),dto); | ||||
| dto.updateTenantInfo(tenantInfo); | dto.updateTenantInfo(tenantInfo); | ||||
| dto.setFinalTenantId(tenantInfo.getFinalTenantId()); | |||||
| long userCountWithCar = wxCUserCarService.countUser(dto,tenantEntitys); | |||||
| long userCountWithCar = wxCUserCarService.countUser(dto); | |||||
| Map userWithCar = new HashMap(); | Map userWithCar = new HashMap(); | ||||
| userWithCar.put("title","已绑定车牌"); | userWithCar.put("title","已绑定车牌"); | ||||
| userWithCar.put("count",userCountWithCar); | userWithCar.put("count",userCountWithCar); | ||||
| @@ -16,6 +16,7 @@ import com.iformall.mapper.WxCouponChannelMapper; | |||||
| import com.iformall.service.WxCouponPasswordService; | import com.iformall.service.WxCouponPasswordService; | ||||
| import com.iformall.service.WxCouponService; | import com.iformall.service.WxCouponService; | ||||
| import com.iformall.service.WxFlowService; | import com.iformall.service.WxFlowService; | ||||
| import com.iformall.service.WxMallService; | |||||
| import com.iformall.utils.DateUtils; | import com.iformall.utils.DateUtils; | ||||
| import com.iformall.utils.RedisLock; | import com.iformall.utils.RedisLock; | ||||
| @@ -50,6 +51,8 @@ public class WxCouponController extends BaseController { | |||||
| @Autowired | @Autowired | ||||
| private WxFlowService wxFlowService; | private WxFlowService wxFlowService; | ||||
| @Autowired | @Autowired | ||||
| private WxMallService wxMallService; | |||||
| @Autowired | |||||
| RedisLock redisLock; | RedisLock redisLock; | ||||
| @ApiOperation("分页列表接口") | @ApiOperation("分页列表接口") | ||||
| @@ -312,6 +315,8 @@ public class WxCouponController extends BaseController { | |||||
| public ResultData findCardCountList(@ModelAttribute WxCoupon wxCoupon, Integer pageNum, Integer pageSize) { | public ResultData findCardCountList(@ModelAttribute WxCoupon wxCoupon, Integer pageNum, Integer pageSize) { | ||||
| //默认时间本月第一天,截止到当天 | //默认时间本月第一天,截止到当天 | ||||
| Map<String, Object> result = new HashedMap(); | Map<String, Object> result = new HashedMap(); | ||||
| TenantEntity tenantEntity = getTenantInfo(); | |||||
| List<TenantEntity> tenantEntitys = wxMallService.getTenantEntitys(tenantEntity); | |||||
| if (wxCoupon.getStartdate() == null) { | if (wxCoupon.getStartdate() == null) { | ||||
| wxCoupon.setStartdate(DateUtils.getFirstDayForCurrMonth()); | wxCoupon.setStartdate(DateUtils.getFirstDayForCurrMonth()); | ||||
| } | } | ||||
| @@ -319,7 +324,7 @@ public class WxCouponController extends BaseController { | |||||
| wxCoupon.setEnddate(DateUtils.stringToDate(DateUtils.getSystemTime("yyyy-MM-dd") + " 23:59:59")); | wxCoupon.setEnddate(DateUtils.stringToDate(DateUtils.getSystemTime("yyyy-MM-dd") + " 23:59:59")); | ||||
| } | } | ||||
| wxCoupon.setSourceType(EnumCouponSourceType.COUPONSource_Admin.getCode()); | wxCoupon.setSourceType(EnumCouponSourceType.COUPONSource_Admin.getCode()); | ||||
| PageInfo<WxCouponStatisVo> pageInfo = wxCouponService.findCountData(wxCoupon, pageNum, pageSize); | |||||
| PageInfo<WxCouponStatisVo> pageInfo = wxCouponService.findCountData(wxCoupon,tenantEntitys, pageNum, pageSize); | |||||
| for (WxCouponStatisVo coupon : pageInfo.getList()) { | for (WxCouponStatisVo coupon : pageInfo.getList()) { | ||||
| if (coupon.getSaleAmount() == null) { | if (coupon.getSaleAmount() == null) { | ||||
| coupon.setSaleAmount(0); | coupon.setSaleAmount(0); | ||||
| @@ -343,6 +348,8 @@ public class WxCouponController extends BaseController { | |||||
| @SystemControllerLog(description = "券投放-券营销列表") | @SystemControllerLog(description = "券投放-券营销列表") | ||||
| public ResultData findCouponCountList(@ModelAttribute WxCoupon wxCoupon, Integer pageNum, Integer pageSize) { | public ResultData findCouponCountList(@ModelAttribute WxCoupon wxCoupon, Integer pageNum, Integer pageSize) { | ||||
| //默认时间本月第一天,截止到当天 | //默认时间本月第一天,截止到当天 | ||||
| TenantEntity tenantEntity = getTenantInfo(); | |||||
| List<TenantEntity> tenantEntitys = wxMallService.getTenantEntitys(tenantEntity); | |||||
| Map<String, Object> result = new HashedMap(); | Map<String, Object> result = new HashedMap(); | ||||
| if (wxCoupon.getStartdate() == null) { | if (wxCoupon.getStartdate() == null) { | ||||
| wxCoupon.setStartdate(DateUtils.getFirstDayForCurrMonth()); | wxCoupon.setStartdate(DateUtils.getFirstDayForCurrMonth()); | ||||
| @@ -353,7 +360,7 @@ public class WxCouponController extends BaseController { | |||||
| wxCoupon.setSourceType(EnumCouponSourceType.COUPONSource_Admin.getCode()); | wxCoupon.setSourceType(EnumCouponSourceType.COUPONSource_Admin.getCode()); | ||||
| PageInfo<WxCouponStatisVo> pageInfo = wxCouponService.findCouponData(wxCoupon, pageNum, pageSize); | |||||
| PageInfo<WxCouponStatisVo> pageInfo = wxCouponService.findCouponData(wxCoupon, tenantEntitys, pageNum, pageSize); | |||||
| for (WxCouponStatisVo coupon : pageInfo.getList()) { | for (WxCouponStatisVo coupon : pageInfo.getList()) { | ||||
| if (coupon.getSumSubsidy() == null) { | if (coupon.getSumSubsidy() == null) { | ||||
| coupon.setSumSubsidy(0); | coupon.setSumSubsidy(0); | ||||
| @@ -372,10 +379,12 @@ public class WxCouponController extends BaseController { | |||||
| @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) | @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) | ||||
| @SystemControllerLog(description = "券投放-砍价营销列表") | @SystemControllerLog(description = "券投放-砍价营销列表") | ||||
| public ResultData findPressCountList(@ModelAttribute WxCoupon wxCoupon, Integer pageNum, Integer pageSize) { | public ResultData findPressCountList(@ModelAttribute WxCoupon wxCoupon, Integer pageNum, Integer pageSize) { | ||||
| TenantEntity tenantEntity = getTenantInfo(); | |||||
| List<TenantEntity> tenantEntitys = wxMallService.getTenantEntitys(tenantEntity); | |||||
| Map<String,Object> result = new HashedMap(); | Map<String,Object> result = new HashedMap(); | ||||
| wxCoupon.updateTenantInfo(getTenantInfo()); | |||||
| wxCoupon.updateTenantInfo(tenantEntity); | |||||
| wxCoupon.setSourceType(EnumCouponSourceType.COUPONSource_Admin.getCode()); | wxCoupon.setSourceType(EnumCouponSourceType.COUPONSource_Admin.getCode()); | ||||
| PageInfo<WxCouponStatisVo> pages = wxCouponService.findPressData(wxCoupon,pageNum,pageSize); | |||||
| PageInfo<WxCouponStatisVo> pages = wxCouponService.findPressData(wxCoupon,tenantEntitys,pageNum,pageSize); | |||||
| return new ResultData(pages); | return new ResultData(pages); | ||||
| } | } | ||||
| @@ -4,7 +4,9 @@ import com.github.pagehelper.PageInfo; | |||||
| import com.iformall.annotation.SystemControllerLog; | import com.iformall.annotation.SystemControllerLog; | ||||
| import com.iformall.common.ResultData; | import com.iformall.common.ResultData; | ||||
| import com.iformall.controller.base.BaseController; | import com.iformall.controller.base.BaseController; | ||||
| import com.iformall.domain.po.base.TenantEntity; | |||||
| import com.iformall.domain.vo.WxOrderGroupMarketing; | import com.iformall.domain.vo.WxOrderGroupMarketing; | ||||
| import com.iformall.service.WxMallService; | |||||
| import com.iformall.service.WxOrderGroupService; | import com.iformall.service.WxOrderGroupService; | ||||
| import io.swagger.annotations.Api; | import io.swagger.annotations.Api; | ||||
| import io.swagger.annotations.ApiImplicitParam; | import io.swagger.annotations.ApiImplicitParam; | ||||
| @@ -18,6 +20,8 @@ import org.springframework.web.bind.annotation.ModelAttribute; | |||||
| import org.springframework.web.bind.annotation.RequestMapping; | import org.springframework.web.bind.annotation.RequestMapping; | ||||
| import org.springframework.web.bind.annotation.RestController; | import org.springframework.web.bind.annotation.RestController; | ||||
| import java.util.List; | |||||
| @RestController | @RestController | ||||
| @RequestMapping("/orderGroup") | @RequestMapping("/orderGroup") | ||||
| @Api(description = "拼团相关接口") | @Api(description = "拼团相关接口") | ||||
| @@ -26,6 +30,8 @@ public class WxOrderGroupController extends BaseController { | |||||
| @Autowired | @Autowired | ||||
| WxOrderGroupService wxOrderGroupService; | WxOrderGroupService wxOrderGroupService; | ||||
| @Autowired | |||||
| WxMallService wxMallService; | |||||
| @ApiOperation(value = "拼团营销分析") | @ApiOperation(value = "拼团营销分析") | ||||
| @GetMapping("queryOrderGroupMarketingList") | @GetMapping("queryOrderGroupMarketingList") | ||||
| @@ -36,8 +42,10 @@ public class WxOrderGroupController extends BaseController { | |||||
| }) | }) | ||||
| @SystemControllerLog(description = "订单管理-拼团营销分析") | @SystemControllerLog(description = "订单管理-拼团营销分析") | ||||
| public ResultData queryOrderGroupMarketingList(@ModelAttribute WxOrderGroupMarketing wxOrderGroupMarketing, Integer pageNum, Integer pageSize) { | public ResultData queryOrderGroupMarketingList(@ModelAttribute WxOrderGroupMarketing wxOrderGroupMarketing, Integer pageNum, Integer pageSize) { | ||||
| wxOrderGroupMarketing.updateTenantInfo(getTenantInfo()); | |||||
| final PageInfo<WxOrderGroupMarketing> page = wxOrderGroupService.queryOrderGroupMarketingList(wxOrderGroupMarketing, pageNum, pageSize); | |||||
| TenantEntity tenantEntity = getTenantInfo(); | |||||
| List<TenantEntity> tenantEntitys = wxMallService.getTenantEntitys(tenantEntity); | |||||
| wxOrderGroupMarketing.updateTenantInfo(tenantEntity); | |||||
| final PageInfo<WxOrderGroupMarketing> page = wxOrderGroupService.queryOrderGroupMarketingList(wxOrderGroupMarketing,tenantEntitys, pageNum, pageSize); | |||||
| return new ResultData(page); | return new ResultData(page); | ||||
| } | } | ||||
| @@ -16,10 +16,7 @@ import com.iformall.domain.po.base.TenantEntity; | |||||
| import com.iformall.domain.vo.WxCouponStatisVo; | import com.iformall.domain.vo.WxCouponStatisVo; | ||||
| import com.iformall.enums.*; | import com.iformall.enums.*; | ||||
| import com.iformall.mapper.WxCouponChannelMapper; | import com.iformall.mapper.WxCouponChannelMapper; | ||||
| import com.iformall.service.WxCouponPasswordService; | |||||
| import com.iformall.service.WxCouponService; | |||||
| import com.iformall.service.WxFlowService; | |||||
| import com.iformall.service.WxMerchantService; | |||||
| import com.iformall.service.*; | |||||
| import com.iformall.utils.DateUtils; | import com.iformall.utils.DateUtils; | ||||
| import com.iformall.utils.RedisLock; | import com.iformall.utils.RedisLock; | ||||
| import io.swagger.annotations.Api; | import io.swagger.annotations.Api; | ||||
| @@ -55,6 +52,8 @@ public class WxCouponController extends BaseController { | |||||
| @Autowired | @Autowired | ||||
| private WxMerchantService wxMerchantService; | private WxMerchantService wxMerchantService; | ||||
| @Autowired | @Autowired | ||||
| private WxMallService wxMallService; | |||||
| @Autowired | |||||
| RedisLock redisLock; | RedisLock redisLock; | ||||
| @ApiOperation("分页列表接口") | @ApiOperation("分页列表接口") | ||||
| @@ -350,6 +349,8 @@ public class WxCouponController extends BaseController { | |||||
| public ResultData findCardCountList(@ModelAttribute WxCoupon wxCoupon, Integer pageNum, Integer pageSize) { | public ResultData findCardCountList(@ModelAttribute WxCoupon wxCoupon, Integer pageNum, Integer pageSize) { | ||||
| //默认时间本月第一天,截止到当天 | //默认时间本月第一天,截止到当天 | ||||
| Map<String, Object> result = new HashedMap(); | Map<String, Object> result = new HashedMap(); | ||||
| TenantEntity tenantEntity = getTenantInfo(); | |||||
| List<TenantEntity> tenantEntitys = wxMallService.getTenantEntitys(tenantEntity); | |||||
| if (wxCoupon.getStartdate() == null) { | if (wxCoupon.getStartdate() == null) { | ||||
| wxCoupon.setStartdate(DateUtils.getFirstDayForCurrMonth()); | wxCoupon.setStartdate(DateUtils.getFirstDayForCurrMonth()); | ||||
| } | } | ||||
| @@ -357,7 +358,7 @@ public class WxCouponController extends BaseController { | |||||
| wxCoupon.setEnddate(DateUtils.stringToDate(DateUtils.getSystemTime("yyyy-MM-dd") + " 23:59:59")); | wxCoupon.setEnddate(DateUtils.stringToDate(DateUtils.getSystemTime("yyyy-MM-dd") + " 23:59:59")); | ||||
| } | } | ||||
| wxCoupon.setSourceType(EnumCouponSourceType.COUPONSource_Bapi.getCode()); | wxCoupon.setSourceType(EnumCouponSourceType.COUPONSource_Bapi.getCode()); | ||||
| PageInfo<WxCouponStatisVo> pageInfo = wxCouponService.findCountData(wxCoupon, pageNum, pageSize); | |||||
| PageInfo<WxCouponStatisVo> pageInfo = wxCouponService.findCountData(wxCoupon, tenantEntitys, pageNum, pageSize); | |||||
| for (WxCouponStatisVo coupon : pageInfo.getList()) { | for (WxCouponStatisVo coupon : pageInfo.getList()) { | ||||
| if (coupon.getSaleAmount() == null) { | if (coupon.getSaleAmount() == null) { | ||||
| coupon.setSaleAmount(0); | coupon.setSaleAmount(0); | ||||
| @@ -380,6 +381,9 @@ public class WxCouponController extends BaseController { | |||||
| @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) | @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) | ||||
| public ResultData findCouponCountList(@ModelAttribute WxCoupon wxCoupon, Integer pageNum, Integer pageSize) { | public ResultData findCouponCountList(@ModelAttribute WxCoupon wxCoupon, Integer pageNum, Integer pageSize) { | ||||
| //默认时间本月第一天,截止到当天 | //默认时间本月第一天,截止到当天 | ||||
| TenantEntity tenantEntity = getTenantInfo(); | |||||
| List<TenantEntity> tenantEntitys = wxMallService.getTenantEntitys(tenantEntity); | |||||
| Map<String, Object> result = new HashedMap(); | Map<String, Object> result = new HashedMap(); | ||||
| if (wxCoupon.getStartdate() == null) { | if (wxCoupon.getStartdate() == null) { | ||||
| wxCoupon.setStartdate(DateUtils.getFirstDayForCurrMonth()); | wxCoupon.setStartdate(DateUtils.getFirstDayForCurrMonth()); | ||||
| @@ -390,7 +394,7 @@ public class WxCouponController extends BaseController { | |||||
| wxCoupon.setSourceType(EnumCouponSourceType.COUPONSource_Bapi.getCode()); | wxCoupon.setSourceType(EnumCouponSourceType.COUPONSource_Bapi.getCode()); | ||||
| PageInfo<WxCouponStatisVo> pageInfo = wxCouponService.findCouponData(wxCoupon, pageNum, pageSize); | |||||
| PageInfo<WxCouponStatisVo> pageInfo = wxCouponService.findCouponData(wxCoupon,tenantEntitys, pageNum, pageSize); | |||||
| for (WxCouponStatisVo coupon : pageInfo.getList()) { | for (WxCouponStatisVo coupon : pageInfo.getList()) { | ||||
| if (coupon.getSumSubsidy() == null) { | if (coupon.getSumSubsidy() == null) { | ||||
| coupon.setSumSubsidy(0); | coupon.setSumSubsidy(0); | ||||
| @@ -408,10 +412,12 @@ public class WxCouponController extends BaseController { | |||||
| @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), | @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), | ||||
| @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) | @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) | ||||
| public ResultData findPressCountList(@ModelAttribute WxCoupon wxCoupon, Integer pageNum, Integer pageSize) { | public ResultData findPressCountList(@ModelAttribute WxCoupon wxCoupon, Integer pageNum, Integer pageSize) { | ||||
| TenantEntity tenantEntity = getTenantInfo(); | |||||
| List<TenantEntity> tenantEntitys = wxMallService.getTenantEntitys(tenantEntity); | |||||
| Map<String,Object> result = new HashedMap(); | Map<String,Object> result = new HashedMap(); | ||||
| wxCoupon.updateTenantInfo(getTenantInfo()); | |||||
| wxCoupon.updateTenantInfo(tenantEntity); | |||||
| wxCoupon.setSourceType(EnumCouponSourceType.COUPONSource_Bapi.getCode()); | wxCoupon.setSourceType(EnumCouponSourceType.COUPONSource_Bapi.getCode()); | ||||
| PageInfo<WxCouponStatisVo> pages = wxCouponService.findPressData(wxCoupon,pageNum,pageSize); | |||||
| PageInfo<WxCouponStatisVo> pages = wxCouponService.findPressData(wxCoupon,tenantEntitys,pageNum,pageSize); | |||||
| return new ResultData(pages); | return new ResultData(pages); | ||||
| } | } | ||||
| @@ -4,12 +4,13 @@ import com.github.pagehelper.PageInfo; | |||||
| import com.iformall.common.ErrorCode; | import com.iformall.common.ErrorCode; | ||||
| import com.iformall.common.Result; | import com.iformall.common.Result; | ||||
| import com.iformall.common.ResultData; | import com.iformall.common.ResultData; | ||||
| import com.iformall.domain.po.WxCUser; | |||||
| import com.iformall.domain.po.WxOrder; | import com.iformall.domain.po.WxOrder; | ||||
| import com.iformall.domain.po.WxOrderGroup; | import com.iformall.domain.po.WxOrderGroup; | ||||
| import com.iformall.domain.po.base.TenantEntity; | |||||
| import com.iformall.domain.vo.WxOrderGroupMarketing; | import com.iformall.domain.vo.WxOrderGroupMarketing; | ||||
| import com.iformall.enums.EnumOrderStatus; | import com.iformall.enums.EnumOrderStatus; | ||||
| import com.iformall.service.WxCouponService; | import com.iformall.service.WxCouponService; | ||||
| import com.iformall.service.WxMallService; | |||||
| import com.iformall.service.WxOrderGroupService; | import com.iformall.service.WxOrderGroupService; | ||||
| import com.iformall.service.WxOrderService; | import com.iformall.service.WxOrderService; | ||||
| import io.swagger.annotations.Api; | import io.swagger.annotations.Api; | ||||
| @@ -21,6 +22,7 @@ import org.slf4j.LoggerFactory; | |||||
| import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||
| import org.springframework.web.bind.annotation.*; | import org.springframework.web.bind.annotation.*; | ||||
| import java.util.List; | |||||
| import java.util.Map; | import java.util.Map; | ||||
| @RestController | @RestController | ||||
| @@ -38,6 +40,9 @@ public class WxOrderGroupController extends BaseController { | |||||
| @Autowired | @Autowired | ||||
| WxOrderGroupService wxOrderGroupService; | WxOrderGroupService wxOrderGroupService; | ||||
| @Autowired | |||||
| WxMallService wxMallService; | |||||
| @ApiOperation(value = "查询差1个的团购信息") | @ApiOperation(value = "查询差1个的团购信息") | ||||
| @GetMapping("queryRemainOne") | @GetMapping("queryRemainOne") | ||||
| @@ -151,7 +156,10 @@ public class WxOrderGroupController extends BaseController { | |||||
| @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true), | @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true), | ||||
| }) | }) | ||||
| public ResultData queryOrderGroupMarketingList(@ModelAttribute WxOrderGroupMarketing wxOrderGroupMarketing, Integer pageNum, Integer pageSize) { | public ResultData queryOrderGroupMarketingList(@ModelAttribute WxOrderGroupMarketing wxOrderGroupMarketing, Integer pageNum, Integer pageSize) { | ||||
| final PageInfo<WxOrderGroupMarketing> page = wxOrderGroupService.queryOrderGroupMarketingList(wxOrderGroupMarketing, pageNum, pageSize); | |||||
| TenantEntity tenantEntity = getTenantInfo(); | |||||
| List<TenantEntity> tenantEntitys = wxMallService.getTenantEntitys(tenantEntity); | |||||
| wxOrderGroupMarketing.updateTenantInfo(tenantEntity); | |||||
| final PageInfo<WxOrderGroupMarketing> page = wxOrderGroupService.queryOrderGroupMarketingList(wxOrderGroupMarketing, tenantEntitys, pageNum, pageSize); | |||||
| return new ResultData(page); | return new ResultData(page); | ||||
| } | } | ||||
| @@ -208,16 +208,18 @@ public class ChartDataSchedule { | |||||
| } | } | ||||
| public void carNewMemberData(Date createtime, Date date, TenantEntity tenantEntity) { | public void carNewMemberData(Date createtime, Date date, TenantEntity tenantEntity) { | ||||
| List<TenantEntity> tenantEntitys = wxMallMapper.getTenantEntitys(tenantEntity); | |||||
| // List<TenantEntity> tenantEntitys = wxMallMapper.getTenantEntitys(tenantEntity); | |||||
| WxCUserBasicInfoDto wxCUserBasicInfoDto = new WxCUserBasicInfoDto(); | WxCUserBasicInfoDto wxCUserBasicInfoDto = new WxCUserBasicInfoDto(); | ||||
| wxCUserBasicInfoDto.updateTenantInfo(tenantEntity); | wxCUserBasicInfoDto.updateTenantInfo(tenantEntity); | ||||
| wxCUserBasicInfoDto.setFinalTenantId(tenantEntity.getFinalTenantId()); | |||||
| wxCUserBasicInfoDto.setStartTime(date); | wxCUserBasicInfoDto.setStartTime(date); | ||||
| wxCUserBasicInfoDto.setEndTime(date); | wxCUserBasicInfoDto.setEndTime(date); | ||||
| Integer carUserCount = wxCUserCarService.countUser(wxCUserBasicInfoDto,tenantEntitys); | |||||
| Integer carUserCount = wxCUserCarService.countUser(wxCUserBasicInfoDto); | |||||
| addChartData(tenantEntity, carUserCount.toString(), EnumChartType.CAR_NEW_MEMBER.getCode(), date, createtime); | addChartData(tenantEntity, carUserCount.toString(), EnumChartType.CAR_NEW_MEMBER.getCode(), date, createtime); | ||||
| } | } | ||||
| public void carMemberData(HashMap<String, Object> params, Date createtime, Date date, TenantEntity tenantEntity) { | public void carMemberData(HashMap<String, Object> params, Date createtime, Date date, TenantEntity tenantEntity) { | ||||
| params.put("finalTenantId",tenantEntity.getFinalTenantId()); | |||||
| List<Map<String, Object>> carCountHistory = wxCUserCarMapper.queryCarCountHistory(params); | List<Map<String, Object>> carCountHistory = wxCUserCarMapper.queryCarCountHistory(params); | ||||
| Long userCount = carCountHistory.isEmpty() ? 0L : (Long) carCountHistory.get(0).get("count"); | Long userCount = carCountHistory.isEmpty() ? 0L : (Long) carCountHistory.get(0).get("count"); | ||||
| addChartData(tenantEntity, userCount.toString(), EnumChartType.CAR_MEMBER.getCode(), date, createtime); | addChartData(tenantEntity, userCount.toString(), EnumChartType.CAR_MEMBER.getCode(), date, createtime); | ||||
| @@ -10,9 +10,9 @@ import org.apache.ibatis.annotations.Param; | |||||
| import com.iformall.domain.po.WxCoupon; | import com.iformall.domain.po.WxCoupon; | ||||
| public interface WxCouponMapper extends CommonMapper<WxCoupon, Long> { | public interface WxCouponMapper extends CommonMapper<WxCoupon, Long> { | ||||
| List<WxCouponStatisVo> findPressData(WxCoupon wxCoupon); | |||||
| List<WxCouponStatisVo> findCouponData(WxCoupon wxCoupon); | |||||
| List<WxCouponStatisVo> findCountData(WxCoupon wxCoupon); | |||||
| List<WxCouponStatisVo> findPressData(@Param("tenantEntitys")List<TenantEntity> tenantEntitys, @Param("wxCoupon")WxCoupon wxCoupon); | |||||
| List<WxCouponStatisVo> findCouponData(@Param("tenantEntitys")List<TenantEntity> tenantEntitys, @Param("wxCoupon")WxCoupon wxCoupon); | |||||
| List<WxCouponStatisVo> findCountData(@Param("tenantEntitys")List<TenantEntity> tenantEntitys, @Param("wxCoupon")WxCoupon wxCoupon); | |||||
| List<WxCoupon> findList(WxCoupon wxCoupon); | List<WxCoupon> findList(WxCoupon wxCoupon); | ||||
| List<WxCoupon> findCouponList(WxCoupon wxCoupon); | List<WxCoupon> findCouponList(WxCoupon wxCoupon); | ||||
| @@ -26,7 +26,7 @@ public interface WxOrderGroupMapper extends CommonMapper<WxOrderGroup, Long> { | |||||
| int updateOrderGroup(WxOrderGroup wxOrderGroup); | int updateOrderGroup(WxOrderGroup wxOrderGroup); | ||||
| List<WxOrderGroupMarketing> queryOrderGroupMarketingList(WxOrderGroupMarketing marketing); | |||||
| List<WxOrderGroupMarketing> queryOrderGroupMarketingList(@Param("tenantEntitys")List<TenantEntity> tenantEntitys, @Param("marketing")WxOrderGroupMarketing marketing); | |||||
| List<Map<String, Object>> queryOrderGroupSuccessCountAndTime(Map<String, Object> params); | List<Map<String, Object>> queryOrderGroupSuccessCountAndTime(Map<String, Object> params); | ||||
| @@ -39,10 +39,9 @@ public interface WxCUserCarService { | |||||
| * 根据实体查询count | * 根据实体查询count | ||||
| * | * | ||||
| * @param dto | * @param dto | ||||
| * @param tenantEntitys | |||||
| * @return | * @return | ||||
| */ | */ | ||||
| Integer countUser(WxCUserBasicInfoDto dto, List<TenantEntity> tenantEntitys); | |||||
| Integer countUser(WxCUserBasicInfoDto dto); | |||||
| /** | /** | ||||
| * 根据实体查询 | * 根据实体查询 | ||||
| * | * | ||||
| @@ -26,25 +26,28 @@ public interface WxCouponService { | |||||
| /** | /** | ||||
| * 卡类列表,包括统计 | * 卡类列表,包括统计 | ||||
| * @param record | * @param record | ||||
| * @param tenantEntitys | |||||
| * @return | * @return | ||||
| */ | */ | ||||
| PageInfo<WxCouponStatisVo> findCountData(WxCoupon record, Integer pageNum, Integer pageSize); | |||||
| PageInfo<WxCouponStatisVo> findCountData(WxCoupon record, List<TenantEntity> tenantEntitys, Integer pageNum, Integer pageSize); | |||||
| /** | /** | ||||
| * 券列表,包括统计 | * 券列表,包括统计 | ||||
| * @param record | * @param record | ||||
| * @param tenantEntitys | |||||
| * @return | * @return | ||||
| */ | */ | ||||
| PageInfo<WxCouponStatisVo> findCouponData(WxCoupon record,Integer pageNum, Integer pageSize); | |||||
| PageInfo<WxCouponStatisVo> findCouponData(WxCoupon record, List<TenantEntity> tenantEntitys, Integer pageNum, Integer pageSize); | |||||
| /** | /** | ||||
| * 砍价列表,包括统计 | * 砍价列表,包括统计 | ||||
| * @param record | * @param record | ||||
| * @param tenantEntitys | |||||
| * @param pageNum | * @param pageNum | ||||
| * @param pageSize | * @param pageSize | ||||
| * @return | * @return | ||||
| */ | */ | ||||
| PageInfo<WxCouponStatisVo> findPressData(WxCoupon record,Integer pageNum, Integer pageSize); | |||||
| PageInfo<WxCouponStatisVo> findPressData(WxCoupon record, List<TenantEntity> tenantEntitys, Integer pageNum, Integer pageSize); | |||||
| /** | /** | ||||
| * 根据Id获得实体 | * 根据Id获得实体 | ||||
| @@ -5,6 +5,7 @@ import com.iformall.common.ResultData; | |||||
| import com.iformall.domain.po.WxCoupon; | import com.iformall.domain.po.WxCoupon; | ||||
| import com.iformall.domain.po.WxOrder; | import com.iformall.domain.po.WxOrder; | ||||
| import com.iformall.domain.po.WxOrderGroup; | import com.iformall.domain.po.WxOrderGroup; | ||||
| import com.iformall.domain.po.base.TenantEntity; | |||||
| import com.iformall.domain.vo.WxOrderGroupMarketing; | import com.iformall.domain.vo.WxOrderGroupMarketing; | ||||
| import java.util.List; | import java.util.List; | ||||
| @@ -31,6 +32,6 @@ public interface WxOrderGroupService { | |||||
| List<WxOrderGroup> findList(WxOrderGroup group); | List<WxOrderGroup> findList(WxOrderGroup group); | ||||
| PageInfo<WxOrderGroupMarketing> queryOrderGroupMarketingList(WxOrderGroupMarketing marketing, Integer pageNum, Integer pageSize); | |||||
| PageInfo<WxOrderGroupMarketing> queryOrderGroupMarketingList(WxOrderGroupMarketing marketing, List<TenantEntity> tenantEntitys, Integer pageNum, Integer pageSize); | |||||
| } | } | ||||
| @@ -618,19 +618,21 @@ public class DataTowerServiceImpl implements DataTowerService { | |||||
| SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); | ||||
| WxCUserBasicInfoDto wxCUserBasicInfoDto = new WxCUserBasicInfoDto(); | WxCUserBasicInfoDto wxCUserBasicInfoDto = new WxCUserBasicInfoDto(); | ||||
| wxCUserBasicInfoDto.updateTenantInfo(tenantEntity); | wxCUserBasicInfoDto.updateTenantInfo(tenantEntity); | ||||
| wxCUserBasicInfoDto.setFinalTenantId(tenantEntity.getFinalTenantId()); | |||||
| try { | try { | ||||
| wxCUserBasicInfoDto.setStartTime(sdf.parse(oneWeekStartdate+ " 00:00:00")); | wxCUserBasicInfoDto.setStartTime(sdf.parse(oneWeekStartdate+ " 00:00:00")); | ||||
| wxCUserBasicInfoDto.setEndTime(sdf.parse(oneWeekEndDate+ " 23:59:59")); | wxCUserBasicInfoDto.setEndTime(sdf.parse(oneWeekEndDate+ " 23:59:59")); | ||||
| }catch (Exception e){ | }catch (Exception e){ | ||||
| e.printStackTrace(); | e.printStackTrace(); | ||||
| } | } | ||||
| datamap.put("oneWeekNewCarUserCount",wxCUserCarService.countUser(wxCUserBasicInfoDto,tenantEntitys)); | |||||
| datamap.put("oneWeekNewCarUserCount",wxCUserCarService.countUser(wxCUserBasicInfoDto)); | |||||
| logger.info("停车-近一周新增停车会员数-结束"); | logger.info("停车-近一周新增停车会员数-结束"); | ||||
| //停车会员总数 | //停车会员总数 | ||||
| logger.info("停车-停车会员总数-开始"); | logger.info("停车-停车会员总数-开始"); | ||||
| wxCUserBasicInfoDto = new WxCUserBasicInfoDto(); | wxCUserBasicInfoDto = new WxCUserBasicInfoDto(); | ||||
| wxCUserBasicInfoDto.updateTenantInfo(tenantEntity); | wxCUserBasicInfoDto.updateTenantInfo(tenantEntity); | ||||
| datamap.put("newCarUserSumCount",wxCUserCarService.countUser(wxCUserBasicInfoDto,tenantEntitys)); | |||||
| wxCUserBasicInfoDto.setFinalTenantId(tenantEntity.getFinalTenantId()); | |||||
| datamap.put("newCarUserSumCount",wxCUserCarService.countUser(wxCUserBasicInfoDto)); | |||||
| logger.info("停车-停车会员总数-结束"); | logger.info("停车-停车会员总数-结束"); | ||||
| // 查询近一周的缴费车辆----end------ | // 查询近一周的缴费车辆----end------ | ||||
| @@ -40,14 +40,9 @@ public class WxCUserCarServiceImpl implements WxCUserCarService { | |||||
| } | } | ||||
| @Override | @Override | ||||
| public Integer countUser(WxCUserBasicInfoDto dto, List<TenantEntity> tenantEntitys) { | |||||
| int i = 0; | |||||
| for (TenantEntity tenantEntity:tenantEntitys) { | |||||
| dto.updateTenantInfo(tenantEntity); | |||||
| Integer integer = wxCUserCarMapper.countUser(dto); | |||||
| i += (integer==null?0:integer); | |||||
| } | |||||
| return i; | |||||
| public Integer countUser(WxCUserBasicInfoDto dto) { | |||||
| Integer integer = wxCUserCarMapper.countUser(dto); | |||||
| return integer==null?0:integer; | |||||
| } | } | ||||
| @Override | @Override | ||||
| @@ -127,10 +127,9 @@ public class WxChartServiceImpl implements WxChartDataService { | |||||
| enddate = enddate + " 23:59:59"; | enddate = enddate + " 23:59:59"; | ||||
| } | } | ||||
| TenantEntity tenantEntity = new TenantEntity() {{ | |||||
| setTenantId(tenantId); | |||||
| setParentTenantId(parentTenantId); | |||||
| }}; | |||||
| TenantEntity tenantEntity = new TenantEntity(); | |||||
| tenantEntity.setTenantId(tenantId); | |||||
| tenantEntity.setParentTenantId(parentTenantId); | |||||
| //出租率 | //出租率 | ||||
| if (chart.equals(EnumChart.CZL.getCode())) { | if (chart.equals(EnumChart.CZL.getCode())) { | ||||
| @@ -1033,18 +1032,20 @@ public class WxChartServiceImpl implements WxChartDataService { | |||||
| String oneWeekEndDate = DateUtils.getTimeBefore(1, new Date()); | String oneWeekEndDate = DateUtils.getTimeBefore(1, new Date()); | ||||
| SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); | ||||
| WxCUserBasicInfoDto wxCUserBasicInfoDto = new WxCUserBasicInfoDto(); | WxCUserBasicInfoDto wxCUserBasicInfoDto = new WxCUserBasicInfoDto(); | ||||
| // wxCUserBasicInfoDto.updateTenantInfo(tenantEntity); | |||||
| wxCUserBasicInfoDto.updateTenantInfo(tenantEntity); | |||||
| wxCUserBasicInfoDto.setFinalTenantId(tenantEntity.getFinalTenantId()); | |||||
| try { | try { | ||||
| wxCUserBasicInfoDto.setStartTime(sdf.parse(oneWeekStartdate)); | wxCUserBasicInfoDto.setStartTime(sdf.parse(oneWeekStartdate)); | ||||
| wxCUserBasicInfoDto.setEndTime(sdf.parse(oneWeekEndDate)); | wxCUserBasicInfoDto.setEndTime(sdf.parse(oneWeekEndDate)); | ||||
| } catch (Exception e) { | } catch (Exception e) { | ||||
| e.printStackTrace(); | e.printStackTrace(); | ||||
| } | } | ||||
| datamap.put("oneWeekNewCarUserCount", wxCUserCarService.countUser(wxCUserBasicInfoDto,tenantEntitys)); | |||||
| datamap.put("oneWeekNewCarUserCount", wxCUserCarService.countUser(wxCUserBasicInfoDto)); | |||||
| //停车会员总数 | //停车会员总数 | ||||
| wxCUserBasicInfoDto = new WxCUserBasicInfoDto(); | wxCUserBasicInfoDto = new WxCUserBasicInfoDto(); | ||||
| // wxCUserBasicInfoDto.updateTenantInfo(tenantEntity); | |||||
| datamap.put("newCarUserSumCount", wxCUserCarService.countUser(wxCUserBasicInfoDto,tenantEntitys)); | |||||
| wxCUserBasicInfoDto.updateTenantInfo(tenantEntity); | |||||
| wxCUserBasicInfoDto.setFinalTenantId(tenantEntity.getFinalTenantId()); | |||||
| datamap.put("newCarUserSumCount", wxCUserCarService.countUser(wxCUserBasicInfoDto)); | |||||
| return new ResultData(datamap); | return new ResultData(datamap); | ||||
| } | } | ||||
| @@ -2140,7 +2141,8 @@ public class WxChartServiceImpl implements WxChartDataService { | |||||
| dto.setEndTime(DateUtils.stringToDate(enddate)); | dto.setEndTime(DateUtils.stringToDate(enddate)); | ||||
| long total = wxCUserBasicInfoService.findCount(tenantEntity,dto); | long total = wxCUserBasicInfoService.findCount(tenantEntity,dto); | ||||
| dto.updateTenantInfo(tenantEntity); | dto.updateTenantInfo(tenantEntity); | ||||
| long userCountWithCar = wxCUserCarService.countUser(dto,tenantEntitys); | |||||
| dto.setFinalTenantId(tenantEntity.getFinalTenantId()); | |||||
| long userCountWithCar = wxCUserCarService.countUser(dto); | |||||
| Map userWithCar = new HashMap(); | Map userWithCar = new HashMap(); | ||||
| userWithCar.put("title", "已绑定车牌"); | userWithCar.put("title", "已绑定车牌"); | ||||
| userWithCar.put("count", userCountWithCar); | userWithCar.put("count", userCountWithCar); | ||||
| @@ -173,8 +173,8 @@ public class WxCouponServiceImpl implements WxCouponService { | |||||
| @Override | @Override | ||||
| public PageInfo<WxCouponStatisVo> findCountData(WxCoupon record,Integer pageNum, Integer pageSize) { | |||||
| return PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() -> wxCouponMapper.findCountData(record)); | |||||
| public PageInfo<WxCouponStatisVo> findCountData(WxCoupon record, List<TenantEntity> tenantEntitys, Integer pageNum, Integer pageSize) { | |||||
| return PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() -> wxCouponMapper.findCountData(tenantEntitys,record)); | |||||
| } | } | ||||
| @Override | @Override | ||||
| @@ -542,8 +542,8 @@ public class WxCouponServiceImpl implements WxCouponService { | |||||
| } | } | ||||
| @Override | @Override | ||||
| public PageInfo<WxCouponStatisVo> findCouponData(WxCoupon record, Integer pageNum, Integer pageSize) { | |||||
| return PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() -> wxCouponMapper.findCouponData(record)); | |||||
| public PageInfo<WxCouponStatisVo> findCouponData(WxCoupon record, List<TenantEntity> tenantEntitys, Integer pageNum, Integer pageSize) { | |||||
| return PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() -> wxCouponMapper.findCouponData(tenantEntitys,record)); | |||||
| } | } | ||||
| @Override | @Override | ||||
| @@ -609,8 +609,8 @@ public class WxCouponServiceImpl implements WxCouponService { | |||||
| } | } | ||||
| @Override | @Override | ||||
| public PageInfo<WxCouponStatisVo> findPressData(WxCoupon record, Integer pageNum, Integer pageSize) { | |||||
| return PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() -> wxCouponMapper.findPressData(record)); | |||||
| public PageInfo<WxCouponStatisVo> findPressData(WxCoupon record, List<TenantEntity> tenantEntitys, Integer pageNum, Integer pageSize) { | |||||
| return PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() -> wxCouponMapper.findPressData(tenantEntitys,record)); | |||||
| } | } | ||||
| @Override | @Override | ||||
| @@ -8,6 +8,7 @@ import com.iformall.common.IdWorker; | |||||
| import com.iformall.common.Result; | import com.iformall.common.Result; | ||||
| import com.iformall.common.ResultData; | import com.iformall.common.ResultData; | ||||
| import com.iformall.domain.po.*; | import com.iformall.domain.po.*; | ||||
| import com.iformall.domain.po.base.TenantEntity; | |||||
| import com.iformall.domain.vo.WxOrderGroupMarketing; | import com.iformall.domain.vo.WxOrderGroupMarketing; | ||||
| import com.iformall.enums.*; | import com.iformall.enums.*; | ||||
| import com.iformall.exception.MallinkException; | import com.iformall.exception.MallinkException; | ||||
| @@ -405,9 +406,9 @@ public class WxOrderGroupServiceImpl implements WxOrderGroupService { | |||||
| } | } | ||||
| @Override | @Override | ||||
| public PageInfo<WxOrderGroupMarketing> queryOrderGroupMarketingList(WxOrderGroupMarketing marketing, Integer pageIndex, Integer pageSize) { | |||||
| public PageInfo<WxOrderGroupMarketing> queryOrderGroupMarketingList(WxOrderGroupMarketing marketing, List<TenantEntity> tenantEntitys, Integer pageIndex, Integer pageSize) { | |||||
| PageHelper.startPage(pageIndex, pageSize); | PageHelper.startPage(pageIndex, pageSize); | ||||
| List<WxOrderGroupMarketing> result = wxOrderGroupMapper.queryOrderGroupMarketingList(marketing); | |||||
| List<WxOrderGroupMarketing> result = wxOrderGroupMapper.queryOrderGroupMarketingList(tenantEntitys,marketing); | |||||
| PageInfo<WxOrderGroupMarketing> pageInfo = new PageInfo<>(result); | PageInfo<WxOrderGroupMarketing> pageInfo = new PageInfo<>(result); | ||||
| return pageInfo; | return pageInfo; | ||||
| } | } | ||||
| @@ -746,141 +746,191 @@ | |||||
| where c.type = 100 and sc.create_date between #{startdate} and #{enddate} | where c.type = 100 and sc.create_date between #{startdate} and #{enddate} | ||||
| </select> | </select> | ||||
| <select id="findCountData" parameterType="com.iformall.domain.po.WxCoupon" resultMap="statisMap"> | |||||
| <select id="findCountData" resultMap="statisMap"> | |||||
| select c.*, | select c.*, | ||||
| IFNULL(round((select sum(wcs.real_payment) from wx_card_info ci | IFNULL(round((select sum(wcs.real_payment) from wx_card_info ci | ||||
| left join wx_coupon wc on wc.id = ci.coupon_id | |||||
| left join (<foreach collection="tenantEntitys" item="tenantEntity" index="index" separator="union all"> | |||||
| SELECT * from wx_coupon${tenantEntity.shardTableSuffix} | |||||
| </foreach>) wc on wc.id = ci.coupon_id | |||||
| left join wx_card_spend wcs on wcs.card_id = ci.id | left join wx_card_spend wcs on wcs.card_id = ci.id | ||||
| where wc.id = c.id)/(select sum(ci.sale_amount) from wx_card_info ci | where wc.id = c.id)/(select sum(ci.sale_amount) from wx_card_info ci | ||||
| left join wx_coupon wc on wc.id = ci.coupon_id | |||||
| left join (<foreach collection="tenantEntitys" item="tenantEntity" index="index" separator="union all"> | |||||
| SELECT * from wx_coupon${tenantEntity.shardTableSuffix} | |||||
| </foreach>) wc on wc.id = ci.coupon_id | |||||
| where wc.id = c.id)*100,2),0) payment_rate, | where wc.id = c.id)*100,2),0) payment_rate, | ||||
| (select count(wco.id) from wx_coupon wc | |||||
| left join wx_coupon_order wco on wc.id = wco.coupon_id | |||||
| (select count(wco.id) from (<foreach collection="tenantEntitys" item="tenantEntity" index="index" separator="union all"> | |||||
| SELECT * from wx_coupon${tenantEntity.shardTableSuffix} | |||||
| </foreach>) wc | |||||
| left join (<foreach collection="tenantEntitys" item="tenantEntity" index="index" separator="union all"> | |||||
| SELECT * from wx_coupon_order${tenantEntity.shardTableSuffix} | |||||
| </foreach>) wco on wc.id = wco.coupon_id | |||||
| where wc.id = c.id) as sale_count, | where wc.id = c.id) as sale_count, | ||||
| (select count(distinct wcs.coupon_order_id) from wx_card_info ci | (select count(distinct wcs.coupon_order_id) from wx_card_info ci | ||||
| left join wx_coupon wc on wc.id = ci.coupon_id | |||||
| left join (<foreach collection="tenantEntitys" item="tenantEntity" index="index" separator="union all"> | |||||
| SELECT * from wx_coupon${tenantEntity.shardTableSuffix} | |||||
| </foreach>) wc on wc.id = ci.coupon_id | |||||
| left join wx_card_transfer_info wcs on wcs.coupon_order_id = ci.id | left join wx_card_transfer_info wcs on wcs.coupon_order_id = ci.id | ||||
| where wc.id = c.id) as transfer_count, | where wc.id = c.id) as transfer_count, | ||||
| (select sum(ci.sale_amount) from wx_card_info ci | (select sum(ci.sale_amount) from wx_card_info ci | ||||
| left join wx_coupon wc on wc.id = ci.coupon_id | |||||
| left join (<foreach collection="tenantEntitys" item="tenantEntity" index="index" separator="union all"> | |||||
| SELECT * from wx_coupon${tenantEntity.shardTableSuffix} | |||||
| </foreach>) wc on wc.id = ci.coupon_id | |||||
| where wc.id = c.id) as sale_amount, | where wc.id = c.id) as sale_amount, | ||||
| (select sum(wcs.real_payment) from wx_card_info ci | (select sum(wcs.real_payment) from wx_card_info ci | ||||
| left join wx_coupon wc on wc.id = ci.coupon_id | |||||
| left join (<foreach collection="tenantEntitys" item="tenantEntity" index="index" separator="union all"> | |||||
| SELECT * from wx_coupon${tenantEntity.shardTableSuffix} | |||||
| </foreach>) wc on wc.id = ci.coupon_id | |||||
| left join wx_card_spend wcs on wcs.card_id = ci.id | left join wx_card_spend wcs on wcs.card_id = ci.id | ||||
| where wc.id = c.id) as sum_payment, | where wc.id = c.id) as sum_payment, | ||||
| (select sum(sc.subsidy) from wx_card_info ci | (select sum(sc.subsidy) from wx_card_info ci | ||||
| left join wx_coupon wc on wc.id = ci.coupon_id | |||||
| left join (<foreach collection="tenantEntitys" item="tenantEntity" index="index" separator="union all"> | |||||
| SELECT * from wx_coupon${tenantEntity.shardTableSuffix} | |||||
| </foreach>) wc on wc.id = ci.coupon_id | |||||
| left join wx_merchant_subsidy sc on sc.coupon_order_id = ci.id | left join wx_merchant_subsidy sc on sc.coupon_order_id = ci.id | ||||
| where wc.id = c.id) as sum_subsidy | where wc.id = c.id) as sum_subsidy | ||||
| from wx_coupon c where c.type = 100 | |||||
| <if test="title != null and title !=''"> | |||||
| and c.title like concat('%', #{title},'%') | |||||
| from (<foreach collection="tenantEntitys" item="tenantEntity" index="index" separator="union all"> | |||||
| SELECT * from wx_coupon${tenantEntity.shardTableSuffix} | |||||
| </foreach>) c where c.type = 100 | |||||
| <if test="wxCoupon.title != null and wxCoupon.title !=''"> | |||||
| and c.title like concat('%', #{wxCoupon.title},'%') | |||||
| </if> | </if> | ||||
| <if test="id != null"> | |||||
| and c.id = #{id} | |||||
| <if test="wxCoupon.id != null"> | |||||
| and c.id = #{wxCoupon.id} | |||||
| </if> | </if> | ||||
| <if test=" null != sortColumns">order by ${sortColumns}</if> | |||||
| <if test=" null == sortColumns">order by c.status asc,c.create_date desc</if> | |||||
| <if test=" null != wxCoupon.sortColumns">order by ${wxCoupon.sortColumns}</if> | |||||
| <if test=" null == wxCoupon.sortColumns">order by c.status asc,c.create_date desc</if> | |||||
| </select> | </select> | ||||
| <select id="findCouponData" parameterType="com.iformall.domain.po.WxCoupon" resultMap="statisMap"> | |||||
| <select id="findCouponData" resultMap="statisMap"> | |||||
| select c.*, | select c.*, | ||||
| IFNULL(round((select count(wco.id) from wx_coupon wc,wx_coupon_order wco where wco.coupon_id = wc.id and | |||||
| wco.coupon_order_status = 1 and wc.id = c.id)/(select count(wco.id) from wx_coupon_order wco where wco.coupon_id | |||||
| IFNULL(round((select count(wco.id) from (<foreach collection="tenantEntitys" item="tenantEntity" index="index" separator="union all"> | |||||
| SELECT * from wx_coupon${tenantEntity.shardTableSuffix} | |||||
| </foreach>) wc,(<foreach collection="tenantEntitys" item="tenantEntity" index="index" separator="union all"> | |||||
| SELECT * from wx_coupon_order${tenantEntity.shardTableSuffix} | |||||
| </foreach>) wco where wco.coupon_id = wc.id and | |||||
| wco.coupon_order_status = 1 and wc.id = c.id)/(select count(wco.id) from (<foreach collection="tenantEntitys" item="tenantEntity" index="index" separator="union all"> | |||||
| SELECT * from wx_coupon_order${tenantEntity.shardTableSuffix} | |||||
| </foreach>) wco where wco.coupon_id | |||||
| = c.id)*100,2),0) payment_rate, | = c.id)*100,2),0) payment_rate, | ||||
| (select count(wco.id) from wx_coupon_order wco where wco.coupon_id = c.id) as sale_count, | |||||
| (select count(wco.id) from wx_coupon wc,wx_coupon_order wco where wco.coupon_id = wc.id and | |||||
| (select count(wco.id) from (<foreach collection="tenantEntitys" item="tenantEntity" index="index" separator="union all"> | |||||
| SELECT * from wx_coupon_order${tenantEntity.shardTableSuffix} | |||||
| </foreach>) wco where wco.coupon_id = c.id) as sale_count, | |||||
| (select count(wco.id) from (<foreach collection="tenantEntitys" item="tenantEntity" index="index" separator="union all"> | |||||
| SELECT * from wx_coupon${tenantEntity.shardTableSuffix} | |||||
| </foreach>) wc,(<foreach collection="tenantEntitys" item="tenantEntity" index="index" separator="union all"> | |||||
| SELECT * from wx_coupon_order${tenantEntity.shardTableSuffix} | |||||
| </foreach>) wco where wco.coupon_id = wc.id and | |||||
| wco.coupon_order_status = 1 and wc.id = c.id) as sum_payment, | wco.coupon_order_status = 1 and wc.id = c.id) as sum_payment, | ||||
| (select count(wco.id) from wx_coupon wc,wx_coupon_order wco where wco.coupon_id = wc.id and | |||||
| (select count(wco.id) from (<foreach collection="tenantEntitys" item="tenantEntity" index="index" separator="union all"> | |||||
| SELECT * from wx_coupon${tenantEntity.shardTableSuffix} | |||||
| </foreach>) wc,(<foreach collection="tenantEntitys" item="tenantEntity" index="index" separator="union all"> | |||||
| SELECT * from wx_coupon_order${tenantEntity.shardTableSuffix} | |||||
| </foreach>) wco where wco.coupon_id = wc.id and | |||||
| wco.coupon_order_status = 3 and wc.id = c.id) as backpay_count, | wco.coupon_order_status = 3 and wc.id = c.id) as backpay_count, | ||||
| (select sum(sc.subsidy) from wx_coupon wc | |||||
| left join wx_coupon_order wo on wo.coupon_id = wc.id | |||||
| (select sum(sc.subsidy) from (<foreach collection="tenantEntitys" item="tenantEntity" index="index" separator="union all"> | |||||
| SELECT * from wx_coupon${tenantEntity.shardTableSuffix} | |||||
| </foreach>) wc | |||||
| left join (<foreach collection="tenantEntitys" item="tenantEntity" index="index" separator="union all"> | |||||
| SELECT * from wx_coupon_order${tenantEntity.shardTableSuffix} | |||||
| </foreach>) wo on wo.coupon_id = wc.id | |||||
| left join wx_merchant_subsidy sc on sc.coupon_order_id = wo.id | left join wx_merchant_subsidy sc on sc.coupon_order_id = wo.id | ||||
| where wc.id = c.id) as sum_subsidy | where wc.id = c.id) as sum_subsidy | ||||
| from wx_coupon c where c.type not in(8,9,100) | |||||
| <if test=" 1 == type "> | |||||
| from (<foreach collection="tenantEntitys" item="tenantEntity" index="index" separator="union all"> | |||||
| SELECT * from wx_coupon${tenantEntity.shardTableSuffix} | |||||
| </foreach>) c where c.type not in(8,9,100) | |||||
| <if test=" 1 == wxCoupon.type "> | |||||
| and c.sale_price > 0 | and c.sale_price > 0 | ||||
| </if> | </if> | ||||
| <if test=" 2 == type "> | |||||
| <if test=" 2 == wxCoupon.type "> | |||||
| and c.sale_price = 0 | and c.sale_price = 0 | ||||
| </if> | </if> | ||||
| <if test="title != null and title != ''"> | |||||
| and c.title like concat('%', #{title},'%') | |||||
| <if test="wxCoupon.title != null and wxCoupon.title != ''"> | |||||
| and c.title like concat('%', #{wxCoupon.title},'%') | |||||
| </if> | </if> | ||||
| <if test="id != null"> | |||||
| and c.id = #{id} | |||||
| <if test="wxCoupon.id != null"> | |||||
| and c.id = #{wxCoupon.id} | |||||
| </if> | </if> | ||||
| <if test=" null != sortColumns">order by ${sortColumns}</if> | |||||
| <if test=" null == sortColumns">order by c.status asc,c.create_date desc</if> | |||||
| <if test=" null != wxCoupon.sortColumns">order by ${wxCoupon.sortColumns}</if> | |||||
| <if test=" null == wxCoupon.sortColumns">order by c.status asc,c.create_date desc</if> | |||||
| </select> | </select> | ||||
| <select id="findPressData" parameterType="com.iformall.domain.po.WxCoupon" resultMap="statisMap"> | |||||
| <select id="findPressData" resultMap="statisMap"> | |||||
| select c.id,c.tenant_id, c.`cover_img`,c.`title`,c.`sale_price`,c.`price`, | select c.id,c.tenant_id, c.`cover_img`,c.`title`,c.`sale_price`,c.`price`, | ||||
| ifnull(op.press_count,0) as press_count, | ifnull(op.press_count,0) as press_count, | ||||
| ifnull(o.press_succ_count,0) as press_succ_count, | ifnull(o.press_succ_count,0) as press_succ_count, | ||||
| ifnull(op2.join_count,0) as join_count, | ifnull(op2.join_count,0) as join_count, | ||||
| ifnull(round(o.press_succ_count/op.press_count*100,2),0) as change_rate, | ifnull(round(o.press_succ_count/op.press_count*100,2),0) as change_rate, | ||||
| ifnull(round(cop.xCount/op.press_count*100,2),0) as payment_rate | ifnull(round(cop.xCount/op.press_count*100,2),0) as payment_rate | ||||
| FROM wx_coupon c | |||||
| left join (SELECT count(id) as press_count, coupon_id FROM wx_order_press WHERE `first` = 1 | |||||
| <if test=" null != tenantId and '' != tenantId"> | |||||
| and `tenant_id` = #{tenantId} | |||||
| FROM (<foreach collection="tenantEntitys" item="tenantEntity" index="index" separator="union all"> | |||||
| SELECT * from wx_coupon${tenantEntity.shardTableSuffix} | |||||
| </foreach>) c | |||||
| left join (SELECT count(id) as press_count, coupon_id FROM (<foreach collection="tenantEntitys" item="tenantEntity" index="index" separator="union all"> | |||||
| SELECT * from wx_order_press${tenantEntity.shardTableSuffix} | |||||
| </foreach>) wx_order_press WHERE `first` = 1 | |||||
| <if test=" null != wxCoupon.tenantId and '' != wxCoupon.tenantId"> | |||||
| and `tenant_id` = #{wxCoupon.tenantId} | |||||
| </if> | </if> | ||||
| <if test=" null != parentTenantId and '' != parentTenantId"> | |||||
| and `parent_tenant_id` = #{parentTenantId} | |||||
| <if test=" null != wxCoupon.parentTenantId and '' != wxCoupon.parentTenantId"> | |||||
| and `parent_tenant_id` = #{wxCoupon.parentTenantId} | |||||
| </if> | </if> | ||||
| group by coupon_id) op on op.coupon_id = c.id | group by coupon_id) op on op.coupon_id = c.id | ||||
| left join (SELECT count(id) as press_succ_count, product_id FROM wx_order WHERE order_status = 1 | |||||
| <if test=" null != tenantId and '' != tenantId"> | |||||
| and `tenant_id` = #{tenantId} | |||||
| left join (SELECT count(id) as press_succ_count, product_id FROM (<foreach collection="tenantEntitys" item="tenantEntity" index="index" separator="union all"> | |||||
| SELECT * from wx_order${tenantEntity.shardTableSuffix} | |||||
| </foreach>) wx_order WHERE order_status = 1 | |||||
| <if test=" null != wxCoupon.tenantId and '' != wxCoupon.tenantId"> | |||||
| and `tenant_id` = #{wxCoupon.tenantId} | |||||
| </if> | </if> | ||||
| <if test=" null != parentTenantId and '' != parentTenantId"> | |||||
| and `parent_tenant_id` = #{parentTenantId} | |||||
| <if test=" null != wxCoupon.parentTenantId and '' != wxCoupon.parentTenantId"> | |||||
| and `parent_tenant_id` = #{wxCoupon.parentTenantId} | |||||
| </if> | </if> | ||||
| group by product_id) o on o.product_id = c.id | group by product_id) o on o.product_id = c.id | ||||
| left join (SELECT count(id) as join_count, coupon_id FROM wx_order_press WHERE 1=1 | |||||
| <if test=" null != tenantId and '' != tenantId"> | |||||
| and `tenant_id` = #{tenantId} | |||||
| left join (SELECT count(id) as join_count, coupon_id FROM (SELECT count(id) as press_count, coupon_id FROM (<foreach collection="tenantEntitys" item="tenantEntity" index="index" separator="union all"> | |||||
| SELECT * from wx_order_press${tenantEntity.shardTableSuffix} | |||||
| </foreach>) wx_order_press WHERE 1=1 | |||||
| <if test=" null != wxCoupon.tenantId and '' != wxCoupon.tenantId"> | |||||
| and `tenant_id` = #{wxCoupon.tenantId} | |||||
| </if> | </if> | ||||
| <if test=" null != parentTenantId and '' != parentTenantId"> | |||||
| and `parent_tenant_id` = #{parentTenantId} | |||||
| <if test=" null != wxCoupon.parentTenantId and '' != wxCoupon.parentTenantId"> | |||||
| and `parent_tenant_id` = #{wxCoupon.parentTenantId} | |||||
| </if> | </if> | ||||
| group by coupon_id) op2 on op2.coupon_id = c.id | group by coupon_id) op2 on op2.coupon_id = c.id | ||||
| left join (SELECT count(id) as xCount, coupon_id FROM wx_coupon_order WHERE coupon_order_status = 1 | |||||
| <if test=" null != tenantId and '' != tenantId"> | |||||
| and `tenant_id` = #{tenantId} | |||||
| left join (SELECT count(id) as xCount, coupon_id FROM (SELECT count(id) as join_count, coupon_id FROM (SELECT count(id) as press_count, coupon_id FROM (<foreach collection="tenantEntitys" item="tenantEntity" index="index" separator="union all"> | |||||
| SELECT * from wx_coupon_order${tenantEntity.shardTableSuffix} | |||||
| </foreach>) wx_coupon_order WHERE coupon_order_status = 1 | |||||
| <if test=" null != wxCoupon.tenantId and '' != wxCoupon.tenantId"> | |||||
| and `tenant_id` = #{wxCoupon.tenantId} | |||||
| </if> | </if> | ||||
| <if test=" null != parentTenantId and '' != parentTenantId"> | |||||
| and `parent_tenant_id` = #{parentTenantId} | |||||
| <if test=" null != wxCoupon.parentTenantId and '' != wxCoupon.parentTenantId"> | |||||
| and `parent_tenant_id` = #{wxCoupon.parentTenantId} | |||||
| </if> | </if> | ||||
| group by coupon_id) cop on cop.coupon_id = c.id | group by coupon_id) cop on cop.coupon_id = c.id | ||||
| where c.type = 8 | where c.type = 8 | ||||
| <if test=" null != tenantId and '' != tenantId"> | |||||
| and c.`tenant_id` = #{tenantId} | |||||
| <if test=" null != wxCoupon.tenantId and '' != wxCoupon.tenantId"> | |||||
| and c.`tenant_id` = #{wxCoupon.tenantId} | |||||
| </if> | </if> | ||||
| <if test=" null != parentTenantId and '' != parentTenantId"> | |||||
| and c.`parent_tenant_id` = #{parentTenantId} | |||||
| <if test=" null != wxCoupon.parentTenantId and '' != wxCoupon.parentTenantId"> | |||||
| and c.`parent_tenant_id` = #{wxCoupon.parentTenantId} | |||||
| </if> | </if> | ||||
| <if test="id != null"> | |||||
| and c.id = #{id} | |||||
| <if test="wxCoupon.id != null"> | |||||
| and c.id = #{wxCoupon.id} | |||||
| </if> | </if> | ||||
| <if test="title != null and title != ''"> | |||||
| and c.title like concat('%', #{title},'%') | |||||
| <if test="wxCoupon.title != null and wxCoupon.title != ''"> | |||||
| and c.title like concat('%', #{wxCoupon.title},'%') | |||||
| </if> | </if> | ||||
| <if test=" null != startdate and null!=enddate"> | |||||
| and c.`create_date` between #{startdate} and #{enddate} | |||||
| <if test=" null != wxCoupon.startdate and null!=wxCoupon.enddate"> | |||||
| and c.`create_date` between #{wxCoupon.startdate} and #{wxCoupon.enddate} | |||||
| </if> | </if> | ||||
| <if test=" null != sortColumns">order by ${sortColumns}</if> | |||||
| <if test=" null == sortColumns">order by c.status asc,c.create_date desc</if> | |||||
| <if test=" null != wxCoupon.sortColumns">order by ${wxCoupon.sortColumns}</if> | |||||
| <if test=" null == wxCoupon.sortColumns">order by c.status asc,c.create_date desc</if> | |||||
| </select> | </select> | ||||
| <select id="findCouponOrderCount" | <select id="findCouponOrderCount" | ||||
| @@ -964,7 +1014,9 @@ | |||||
| <!--砍价--> | <!--砍价--> | ||||
| <select id="pressSendHistory" | <select id="pressSendHistory" | ||||
| resultType="com.iformall.domain.vo.WxCouponStatisVo"> | resultType="com.iformall.domain.vo.WxCouponStatisVo"> | ||||
| select DATE_FORMAT(wop.create_date,'%Y-%m-%d') xtime,count(wop.id) xcount from wx_coupon wc | |||||
| select DATE_FORMAT(wop.create_date,'%Y-%m-%d') xtime,count(wop.id) xcount from (<foreach collection="tenantEntitys" item="tenantEntity" index="index" separator="union all"> | |||||
| SELECT * from wx_coupon${tenantEntity.shardTableSuffix} | |||||
| </foreach>) wc | |||||
| left join (<foreach collection="tenantEntitys" item="tenantEntity" index="index" separator="union all"> | left join (<foreach collection="tenantEntitys" item="tenantEntity" index="index" separator="union all"> | ||||
| SELECT * from wx_order${tenantEntity.shardTableSuffix} | SELECT * from wx_order${tenantEntity.shardTableSuffix} | ||||
| </foreach>) wo on wo.product_id = wc.id | </foreach>) wo on wo.product_id = wc.id | ||||
| @@ -109,7 +109,7 @@ | |||||
| </update> | </update> | ||||
| <select id="queryOrderGroupMarketingList" parameterType="com.iformall.domain.vo.WxOrderGroupMarketing" | |||||
| <select id="queryOrderGroupMarketingList" | |||||
| resultType="com.iformall.domain.vo.WxOrderGroupMarketing"> | resultType="com.iformall.domain.vo.WxOrderGroupMarketing"> | ||||
| SELECT c.tenant_id,c.parent_tenant_id, c.id, c.cover_img, c.title, | SELECT c.tenant_id,c.parent_tenant_id, c.id, c.cover_img, c.title, | ||||
| IFNULL(og.group_total_count,0) as group_total_count, | IFNULL(og.group_total_count,0) as group_total_count, | ||||
| @@ -121,27 +121,39 @@ | |||||
| ROUND(IFNULL((co.verify_count / o.success_people), 0) * 100) verify_ratio, | ROUND(IFNULL((co.verify_count / o.success_people), 0) * 100) verify_ratio, | ||||
| ROUND(c.price / 100, 2) price, | ROUND(c.price / 100, 2) price, | ||||
| ROUND(c.sale_price / 100, 2) sale_price | ROUND(c.sale_price / 100, 2) sale_price | ||||
| FROM wx_coupon c | |||||
| left join (SELECT count(*) group_total_count, coupon_id FROM wx_order_group group by coupon_id) og on og.coupon_id = c.id | |||||
| left join (SELECT count(*) group_success_count, coupon_id FROM wx_order_group WHERE status = 11 group by coupon_id) og2 on og2.coupon_id = c.id | |||||
| left join (SELECT count(*) success_people, product_id FROM wx_order WHERE order_status = 11 group by product_id ) o on o.product_id = c.id | |||||
| left join (SELECT count(*) verify_count, coupon_id FROM wx_coupon_order WHERE coupon_type = 9 AND coupon_order_status = 1 group by coupon_id ) co on co.coupon_id = c.id | |||||
| left join (SELECT count(*) total_people, product_id FROM wx_order WHERE order_group_id != 0 group by product_id ) o2 on o2.product_id = c.id | |||||
| FROM (<foreach collection="tenantEntitys" item="tenantEntity" index="index" separator="union all"> | |||||
| SELECT * from wx_coupon${tenantEntity.shardTableSuffix} | |||||
| </foreach>) c | |||||
| left join (SELECT count(*) group_total_count, coupon_id FROM (<foreach collection="tenantEntitys" item="tenantEntity" index="index" separator="union all"> | |||||
| SELECT * from wx_order_group${tenantEntity.shardTableSuffix} | |||||
| </foreach>) wx_order_group group by coupon_id) og on og.coupon_id = c.id | |||||
| left join (SELECT count(*) group_success_count, coupon_id FROM (<foreach collection="tenantEntitys" item="tenantEntity" index="index" separator="union all"> | |||||
| SELECT * from wx_order_group${tenantEntity.shardTableSuffix} | |||||
| </foreach>) wx_order_group WHERE status = 11 group by coupon_id) og2 on og2.coupon_id = c.id | |||||
| left join (SELECT count(*) success_people, product_id FROM (<foreach collection="tenantEntitys" item="tenantEntity" index="index" separator="union all"> | |||||
| SELECT * from wx_order${tenantEntity.shardTableSuffix} | |||||
| </foreach>) wx_order WHERE order_status = 11 group by product_id ) o on o.product_id = c.id | |||||
| left join (SELECT count(*) verify_count, coupon_id FROM (<foreach collection="tenantEntitys" item="tenantEntity" index="index" separator="union all"> | |||||
| SELECT * from wx_coupon_order${tenantEntity.shardTableSuffix} | |||||
| </foreach>) wx_coupon_order WHERE coupon_type = 9 AND coupon_order_status = 1 group by coupon_id ) co on co.coupon_id = c.id | |||||
| left join (SELECT count(*) total_people, product_id FROM (<foreach collection="tenantEntitys" item="tenantEntity" index="index" separator="union all"> | |||||
| SELECT * from wx_order${tenantEntity.shardTableSuffix} | |||||
| </foreach>) wx_order WHERE order_group_id != 0 group by product_id ) o2 on o2.product_id = c.id | |||||
| WHERE type = 9 | WHERE type = 9 | ||||
| <if test=" null != tenantId and '' != tenantId"> | |||||
| and c.`tenant_id` = #{tenantId} | |||||
| <if test=" null != marketing.tenantId and '' != marketing.tenantId"> | |||||
| and c.`tenant_id` = #{marketing.tenantId} | |||||
| </if> | </if> | ||||
| <if test=" null != parentTenantId and '' != parentTenantId"> | |||||
| and c.`parent_tenant_id` = #{parentTenantId} | |||||
| <if test=" null != marketing.parentTenantId and '' != marketing.parentTenantId"> | |||||
| and c.`parent_tenant_id` = #{marketing.parentTenantId} | |||||
| </if> | </if> | ||||
| <if test=" null != couponId and ''!=couponId"> | |||||
| and c.coupon_id=#{couponId} | |||||
| <if test=" null != marketing.couponId and ''! = marketing.couponId"> | |||||
| and c.coupon_id=#{marketing.couponId} | |||||
| </if> | </if> | ||||
| <if test=" null != title and ''!=title"> | |||||
| and c.title like concat('%',#{title},'%') | |||||
| <if test=" null != marketing.title and ''! = marketing.title"> | |||||
| and c.title like concat('%',#{marketing.title},'%') | |||||
| </if> | </if> | ||||
| <if test=" null != sortColumns"> order by ${sortColumns} </if> | |||||
| <if test=" null == sortColumns">order by c.status asc,c.create_date desc</if> | |||||
| <if test=" null != marketing.sortColumns"> order by ${marketing.sortColumns} </if> | |||||
| <if test=" null == marketing.sortColumns">order by c.status asc,c.create_date desc</if> | |||||
| </select> | </select> | ||||
| <select id="queryOrderGroupSuccessCountAndTime" parameterType="hashmap" resultType="hashmap"> | <select id="queryOrderGroupSuccessCountAndTime" parameterType="hashmap" resultType="hashmap"> | ||||