|  |  | 
 |  |  | import com.matrix.system.app.vo.ShoppingGoodsListVo; | 
 |  |  | import com.matrix.system.common.bean.SysUsers; | 
 |  |  | import com.matrix.system.common.tools.DataAuthUtil; | 
 |  |  | import com.matrix.system.hive.action.util.QueryUtil; | 
 |  |  | import com.matrix.system.hive.bean.ShoppingGoodsCategory; | 
 |  |  | import com.matrix.system.hive.bean.SysOrder; | 
 |  |  | import com.matrix.system.hive.plugin.util.CollectionUtils; | 
 |  |  | 
 |  |  |         if (!DataAuthUtil.hasAllShopAuth()) { | 
 |  |  |             orderListDto.setShopId(user.getShopId()); | 
 |  |  |         } | 
 |  |  |         QueryUtil.setQueryLimitCom(orderListDto); | 
 |  |  |         return AjaxResult.buildSuccessInstance(sysOrderService.findApiOrderListInPage(orderListDto, pageVo), sysOrderService.findApiOrderListTotal(orderListDto)); | 
 |  |  |     } | 
 |  |  |  | 
 
 |  |  | 
 |  |  |         int start = (businessesDto.getPageNum() - 1) * businessesDto.getPageSize(); | 
 |  |  |         int size = businessesDto.getPageSize(); | 
 |  |  |         Calendar calendar = Calendar.getInstance(); | 
 |  |  |         calendar.add(calenderUnit, 1); | 
 |  |  |         calendar.add(calenderUnit, -start); | 
 |  |  |         String endTime = DateUtil.dateToString(calendar.getTime(), DateUtil.DATE_FORMAT_DD); | 
 |  |  |         calendar.add(calenderUnit, -size); | 
 |  |  | 
 |  |  |     }) | 
 |  |  |     @PostMapping(value = "/findVipAchieve") | 
 |  |  |     public AjaxResult findVipAchieve(@RequestBody BusinessesDto businessesDto) { | 
 |  |  |         AchieveNew achieveNew = new AchieveNew(); | 
 |  |  |         String unit = ""; | 
 |  |  |         int calenderUnit; | 
 |  |  |         if (BusinessesDto.DAY.equals(businessesDto.getType())) { | 
 |  |  |             achieveNew.setT1("%Y-%m-%d"); | 
 |  |  |             unit = "日"; | 
 |  |  |             calenderUnit = Calendar.DATE; | 
 |  |  |         } else { | 
 |  |  |             achieveNew.setT1("%Y-%m"); | 
 |  |  |             unit = "月"; | 
 |  |  |             calenderUnit = Calendar.MONTH; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         SysUsers sysUsers = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); | 
 |  |  |         if (businessesDto.getStaffId() == null) { | 
 |  |  |         int start = (businessesDto.getPageNum() - 1) * businessesDto.getPageSize(); | 
 |  |  |         int size = businessesDto.getPageSize(); | 
 |  |  |         Calendar calendar = Calendar.getInstance(); | 
 |  |  |         calendar.add(calenderUnit, 1); | 
 |  |  |         calendar.add(calenderUnit, -start); | 
 |  |  |         String endTime = DateUtil.dateToString(calendar.getTime(), DateUtil.DATE_FORMAT_DD); | 
 |  |  |         calendar.add(calenderUnit, -size); | 
 |  |  |         String startTime = DateUtil.dateToString(calendar.getTime(), DateUtil.DATE_FORMAT_DD); | 
 |  |  |         List<Date> xAxis = StatisticsTimeUtil.getTimeSpace(startTime, endTime, unit); | 
 |  |  |         List<StatisticsTimeDaoParam> timeSpaceParam = StatisticsTimeUtil.buidParam(xAxis); | 
 |  |  |         List<StatisticsTimeDaoParam> statisticsTimeDaoParams = timeSpaceParam.subList(0, timeSpaceParam.size() - 2); | 
 |  |  |         List<VipAchieveDataShowVo> list = tjVipSumDao.selectVipAchieveInPage(statisticsTimeDaoParams, businessesDto.getStaffId()); | 
 |  |  |  | 
 |  |  |             businessesDto.setStaffId(sysUsers.getSuId()); | 
 |  |  |         List<VipAchieveDataShowVo> result = new ArrayList<>(); | 
 |  |  |         for (int i = list.size() - 1; i >= 0; i--) { | 
 |  |  |             VipAchieveDataShowVo item = list.get(i); | 
 |  |  |             String dataTime = item.getTime(); | 
 |  |  |             if (BusinessesDto.DAY.equals(businessesDto.getType())) { | 
 |  |  |                 item.setTime(DateUtil.dateToString(DateUtil.stringToDate(dataTime, DateUtil.DATE_FORMAT_DD), DateUtil.DATE_FORMAT_DD)); | 
 |  |  |             } else { | 
 |  |  |                 item.setTime(DateUtil.dateToString(DateUtil.stringToDate(dataTime, DateUtil.MONTH), DateUtil.MONTH)); | 
 |  |  |             } | 
 |  |  |             result.add(item); | 
 |  |  |         } | 
 |  |  |         achieveNew.setVipId(businessesDto.getStaffId()); | 
 |  |  |  | 
 |  |  |         PaginationVO pageVo = new PaginationVO(); | 
 |  |  |         pageVo.setLimit(businessesDto.getPageSize()); | 
 |  |  |         pageVo.setOffset((businessesDto.getPageNum() - 1) * businessesDto.getPageSize()); | 
 |  |  |         return AjaxResult.buildSuccessInstance(tjVipSumDao.selectVipAchieveInPage(achieveNew, pageVo)); | 
 |  |  |         return AjaxResult.buildSuccessInstance(result); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @ApiOperation(value = "员工专项", notes = "员工专项") | 
 
 |  |  | 
 |  |  |     @ApiModelProperty(hidden = true) | 
 |  |  |     private Long shopId; | 
 |  |  |  | 
 |  |  |     @ApiModelProperty(hidden = true) | 
 |  |  |     private Long companyId; | 
 |  |  |  | 
 |  |  |     public Long getCompanyId() { | 
 |  |  |         return companyId; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public void setCompanyId(Long companyId) { | 
 |  |  |         this.companyId = companyId; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public Long getShopId() { | 
 |  |  |         return shopId; | 
 |  |  |     } | 
 
 |  |  | 
 |  |  |     Map<String, BigDecimal> selectCardRefund(@Param("list") List<StatisticsTimeDaoParam> timeSpaceParam, @Param("shopId") Long shopId, @Param("companyId") Long companyId); | 
 |  |  |     Map<String, BigDecimal> selectCashRefund(@Param("list") List<StatisticsTimeDaoParam> timeSpaceParam, @Param("shopId") Long shopId, @Param("companyId") Long companyId); | 
 |  |  |  | 
 |  |  |     List<VipAchieveDataShowVo> selectVipAchieveInPage(@Param("record") AchieveNew achieveNew, @Param("pageVo") PaginationVO pageVo); | 
 |  |  |     List<VipAchieveDataShowVo> selectVipAchieveInPage(@Param("list") List<StatisticsTimeDaoParam> timeSpaceParam, @Param("userId") Long userId); | 
 |  |  |  | 
 |  |  |     Map<String, BigDecimal> selectStaffOrderAchieve(@Param("list") List<StatisticsTimeDaoParam> timeSpaceParam, @Param("staffId") Long staffId); | 
 |  |  |     Map<String, BigDecimal> selectStaffCashAchieve(@Param("list") List<StatisticsTimeDaoParam> timeSpaceParam, @Param("staffId") Long staffId); | 
 
 |  |  | 
 |  |  |             sum(IFNULL(proj_percentage, 0)) projCommission | 
 |  |  |         from achieve_new a | 
 |  |  |         left join sys_order b on a.beault_id=b.STAFF_ID and (date_format(b.ORDER_TIME, '%Y-%m-%d') >= date_format(#{startTime}, '%Y-%m-%d') and date_format(#{endTime}, '%Y-%m-%d') >= date_format(b.ORDER_TIME, '%Y-%m-%d')) | 
 |  |  |         where a.beault_id=#{userId} | 
 |  |  |         where a.beault_id=#{userId} and a.order_type = '订单' | 
 |  |  |         and (date_format(datatime, '%Y-%m-%d') >= date_format(#{startTime}, '%Y-%m-%d') and date_format(#{endTime}, '%Y-%m-%d') >= date_format(datatime, '%Y-%m-%d')) | 
 |  |  |     </select> | 
 |  |  |  | 
 
 |  |  | 
 |  |  |             measure measure, | 
 |  |  |             a.good_type goodsType | 
 |  |  |         from shopping_goods a | 
 |  |  |         where 1=1 and staus = '上架' | 
 |  |  |         where 1=1 and staus = '上架' and a.is_del=1 | 
 |  |  |         <if test="record.queryKey != null and record.queryKey != ''"> | 
 |  |  |             and (instr(name,#{record.queryKey}) or instr(code ,#{record.queryKey}) or instr(zjm ,#{record.queryKey})) | 
 |  |  |         </if> | 
 
 |  |  | 
 |  |  |             <if test="record.shopId != null"> | 
 |  |  |                 and a.shop_id=#{record.shopId} | 
 |  |  |             </if> | 
 |  |  |             <if test="record.companyId != null"> | 
 |  |  |                 and a.company_id=#{record.companyId} | 
 |  |  |             </if> | 
 |  |  |         </where> | 
 |  |  |         <if test="pageVo !=null"><!-- 判断pageVo对象是否为空 --> | 
 |  |  |             order by a.order_time desc | 
 |  |  | 
 |  |  |             <if test="record.shopId != null"> | 
 |  |  |                 and a.shop_id=#{record.shopId} | 
 |  |  |             </if> | 
 |  |  |             <if test="record.companyId != null"> | 
 |  |  |                 and a.company_id=#{record.companyId} | 
 |  |  |             </if> | 
 |  |  |         </where> | 
 |  |  |     </select> | 
 |  |  |  | 
 
 |  |  | 
 |  |  |     </select> | 
 |  |  |  | 
 |  |  |     <select id="selectVipAchieveInPage" resultType="com.matrix.system.app.vo.VipAchieveDataShowVo"> | 
 |  |  |         select | 
 |  |  |             date_format(a.datatime, #{record.t1}) time, | 
 |  |  |             ROUND(sum(IFNULL(zk_total, 0)), 2) orderAmount, | 
 |  |  |             ROUND(sum(IFNULL(proj_cash, 0)), 2) cashAmount, | 
 |  |  |             ROUND(sum(IFNULL(card_cash, 0)), 2) cardAmount, | 
 |  |  |             ROUND(sum(IFNULL(goods_cash, 0)), 2) goodsAmount, | 
 |  |  |             ROUND(sum(IFNULL(consume, 0)), 2) cardUseAmount, | 
 |  |  |             ROUND(sum(IFNULL(his_consume, 0)), 2) hisConsume, | 
 |  |  |             ROUND(sum(IFNULL(free_consume, 0)), 2) freeConsume, | 
 |  |  |             ROUND(sum(IFNULL(proj_percentage, 0)), 2) commission, | 
 |  |  |             ROUND(sum(IFNULL(number_of_people, 0)), 2) peopleNum, | 
 |  |  |             ROUND(sum(IFNULL(proj_num, 0)), 2) projNum, | 
 |  |  |             ROUND(sum(IFNULL(proj_time, 0)), 2) serviceTime | 
 |  |  |         from ( | 
 |  |  |             select * from ( | 
 |  |  |                 select * from ( | 
 |  |  |                     select date_format(date_add(now(), INTERVAL -(@rowd := @rowd + 1) DAY), '%Y-%m-%d') datatime | 
 |  |  |                     from achieve_new a, (select @rowd := 0) t | 
 |  |  |                 ) a | 
 |  |  |             ) a | 
 |  |  |             left join ( | 
 |  |  |         <foreach collection="list" index="index" item="item"   separator="union all"  > | 
 |  |  |             select | 
 |  |  |                 date_format(a.datatime, '%Y-%m-%d') datatime1, | 
 |  |  |                 SUM((IFNULL(a.card_cash,0) +IFNULL(a.proj_cash,0) + IFNULL(a.goods_cash,0))) as zk_total, | 
 |  |  |                 SUM(IFNULL(a.proj_cash,0)) proj_cash, | 
 |  |  |                 SUM(IFNULL(a.goods_cash, 0)) goods_cash, | 
 |  |  |                 SUM(IFNULL(a.card_cash,0)) card_cash, | 
 |  |  |                 SUM(IFNULL(a.consume, 0)) consume | 
 |  |  |                 from achieve_new a where a.sale_id=#{record.vipId} | 
 |  |  |             group by date_format(a.datatime, '%Y-%m-%d') | 
 |  |  |             ) b on a.datatime=b.datatime1 | 
 |  |  |             left join ( | 
 |  |  |             select | 
 |  |  |                 date_format(b.datatime, '%Y-%m-%d') datatime2, | 
 |  |  |                 SUM(IFNULL(b.his_consume, 0)) his_consume, | 
 |  |  |                 SUM(IFNULL(b.free_consume, 0)) free_consume, | 
 |  |  |                 SUM(IFNULL(b.proj_percentage, 0)) proj_percentage, | 
 |  |  |                 SUM(IFNULL(b.number_of_people, 0)) number_of_people, | 
 |  |  |                 SUM(IFNULL(b.proj_num, 0)) proj_num, | 
 |  |  |                 SUM(IFNULL(b.proj_time, 0)) proj_time | 
 |  |  |             from achieve_new b where b.beault_id=#{record.vipId} | 
 |  |  |             group by date_format(b.datatime, '%Y-%m-%d') | 
 |  |  |             ) c on a.datatime=c.datatime2 | 
 |  |  |         ) a | 
 |  |  |         group by date_format(a.datatime, #{record.t1}) | 
 |  |  |         order by a.datatime desc | 
 |  |  |         <if test="pageVo !=null"><!-- 判断pageVo对象是否为空 --> | 
 |  |  |             <if test="pageVo.offset >=0  and pageVo.limit >0"> | 
 |  |  |                 limit | 
 |  |  |                 #{pageVo.offset},#{pageVo.limit} | 
 |  |  |             </if> | 
 |  |  |         </if> | 
 |  |  |                 #{item.beginTime} time, | 
 |  |  |                 (select ifnull(sum(card_cash),0) from achieve_new a where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>) orderAmount, | 
 |  |  |                 (select ifnull(sum(case t3 when '现金业绩' then card_cash else 0 end),0) from achieve_new a where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>) cashAmount, | 
 |  |  |                 (select ifnull(sum(case t3 when '划扣业绩' then card_cash else 0 end),0) from achieve_new a where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>) cardAmount, | 
 |  |  |                 (select ifnull(sum(ifnull(proj_percentage, 0)),0) from achieve_new a where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]> and order_type='订单') goodsAmount, | 
 |  |  |                 (select ifnull(sum(ifnull(his_consume, 0)),0) from achieve_new a where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>) hisConsume, | 
 |  |  |                 (select ifnull(sum(ifnull(free_consume, 0)),0) from achieve_new a where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>) freeConsume, | 
 |  |  |                 (select ifnull(sum(ifnull(proj_percentage, 0)),0) from achieve_new a where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]> and order_type='服务单') commission, | 
 |  |  |                 (select ifnull(sum(ifnull(number_of_people, 0)),0) from achieve_new a where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>) peopleNum, | 
 |  |  |                 (select ifnull(sum(ifnull(proj_num, 0)),0) from achieve_new a where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>) projNum, | 
 |  |  |                 (select ifnull(sum(ifnull(proj_time, 0)),0) from achieve_new a where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>) serviceTime | 
 |  |  |             from dual | 
 |  |  |         </foreach> | 
 |  |  |     </select> | 
 |  |  |  | 
 |  |  |     <select id="selectStaffOrderAchieve" resultType="java.util.TreeMap"> |