package com.huimv.admin.service.impl; import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.huimv.admin.common.utils.DataUill; import com.huimv.admin.common.utils.Result; import com.huimv.admin.common.utils.ResultCode; import com.huimv.admin.entity.ProdSale; import com.huimv.admin.entity.vo.ProdSaleVo; import com.huimv.admin.mapper.ProdSaleMapper; import com.huimv.admin.service.IProdSaleService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletRequest; import java.text.DecimalFormat; import java.text.NumberFormat; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.List; import java.util.Map; /** *

* 服务实现类 *

* * @author author * @since 2023-02-22 */ @Service public class ProdSaleServiceImpl extends ServiceImpl implements IProdSaleService { @Autowired private ProdSaleMapper saleMapper; @Override public Result list(HttpServletRequest httpServletRequest, Map paramsMap) { String farmId = paramsMap.get("farmId"); String displayType = paramsMap.get("displayType"); String startTime = paramsMap.get("startTime"); String endTime = paramsMap.get("endTime"); if (StringUtils.isBlank(displayType)){ displayType = "0"; } Integer moneyCount = 0; Integer quantityCount = 0; Integer moneyCount1 = 0; Integer quantityCount1 = 0; ProdSaleVo prodSaleVo = new ProdSaleVo(); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("display_type",Integer.parseInt(displayType)); queryWrapper.eq("farm_id", farmId); if (StringUtils.isBlank(startTime) || StringUtils.isBlank(endTime)) { Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.DATE, calendar.get(Calendar.DATE) - 7); queryWrapper.ge("creat_time", calendar.getTime()).orderByAsc("creat_time"); List prodSales = saleMapper.selectList(queryWrapper); if (prodSales.size() == 0) { prodSaleVo.setMoneyRate("0"); prodSaleVo.setQuantityRate("0"); prodSaleVo.setSales(null); } else { prodSaleVo.setSales(prodSales); } } else { startTime = startTime + " 00:00:00"; endTime = endTime + " 23:59:59"; queryWrapper.between("creat_time", startTime, endTime).orderByAsc("creat_time"); List prodSales = saleMapper.selectList(queryWrapper); if (prodSales.size() == 0) { prodSaleVo.setMoneyRate("0"); prodSaleVo.setQuantityRate("0"); prodSaleVo.setSales(null); } else { prodSaleVo.setSales(prodSales); } } //本月 Date timesMonthmorning = DataUill.getTimesMonthmorning(); QueryWrapper saleQueryWrapper = new QueryWrapper<>(); saleQueryWrapper.eq("display_type",Integer.parseInt(displayType)); saleQueryWrapper.ge("creat_time", timesMonthmorning).eq("farm_id", farmId); List prodSales = saleMapper.selectList(saleQueryWrapper); for (ProdSale prodSale : prodSales) { moneyCount = moneyCount + Integer.parseInt(prodSale.getSaleMoney()); quantityCount = quantityCount + prodSale.getSaleQuantity(); } //上个月 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //格式化时间 //获取上个月的第一天 Calendar cal_1 = Calendar.getInstance();//获取当前日期 cal_1.add(Calendar.MONTH, -1); cal_1.set(Calendar.DAY_OF_MONTH, 1);//设置为1号 cal_1.set(Calendar.HOUR_OF_DAY, 0); cal_1.set(Calendar.MINUTE, 0); cal_1.set(Calendar.SECOND, 0); String firstDay = format.format(cal_1.getTime()); //获取上个月的最后一天 Calendar cal_2 = Calendar.getInstance(); cal_2.set(Calendar.DAY_OF_MONTH, 0);//设置为1号,当前日期既为本月第一天 cal_2.set(Calendar.HOUR_OF_DAY, 23); cal_2.set(Calendar.MINUTE, 59); cal_2.set(Calendar.SECOND, 59); String lastDay = format.format(cal_2.getTime()); QueryWrapper queryWrapper1 = new QueryWrapper<>(); queryWrapper1.eq("display_type",Integer.parseInt(displayType)); queryWrapper1.between("creat_time", firstDay, lastDay); List prodSales1 = saleMapper.selectList(queryWrapper1); for (ProdSale prodSale : prodSales1) { moneyCount1 = moneyCount1 + Integer.parseInt(prodSale.getSaleMoney()); quantityCount1 = quantityCount1 + prodSale.getSaleQuantity(); } prodSaleVo.setMoneyCountLast(moneyCount1.toString()); prodSaleVo.setQuantityCountLast(quantityCount1.toString()); prodSaleVo.setMoneyCount(moneyCount.toString());//本月销售数量 prodSaleVo.setQuantityCount(quantityCount.toString());//本月销售额 double a = ((moneyCount.doubleValue() - moneyCount1.doubleValue()) / moneyCount1.doubleValue())*100; double b = (quantityCount.doubleValue() - quantityCount1.doubleValue())/ quantityCount1.doubleValue()*100; DecimalFormat df = new DecimalFormat("#.00"); prodSaleVo.setMoneyRate(df.format(a)); prodSaleVo.setQuantityRate(df.format(b)); return new Result(ResultCode.SUCCESS, prodSaleVo); } @Override public Result add(HttpServletRequest httpServletRequest, Map paramsMap) { return new Result(ResultCode.SUCCESS,"添加成功"); } @Override public Result listScreen(HttpServletRequest httpServletRequest, Map paramsMap) { String farmId = paramsMap.get("farmId"); String type = paramsMap.get("type"); String displayType = paramsMap.get("displayType"); if (StringUtils.isBlank(displayType)){ displayType = "0"; } QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("display_type",Integer.parseInt(displayType)); queryWrapper.eq("farm_id", farmId); if (type == null || type == "") { type = "1"; } if ("1".equals(type)) { queryWrapper.ge("creat_time", DateUtil.offsetMonth(DateUtil.beginOfMonth(new Date()),-6)); List prodSales = saleMapper.listMonth(queryWrapper); return new Result(ResultCode.SUCCESS,prodSales); } else { queryWrapper.ge("creat_time", DateUtil.offsetMonth(DateUtil.beginOfMonth(new Date()),-60)); List prodSales = saleMapper.listYear(queryWrapper); return new Result(ResultCode.SUCCESS,prodSales); } } }