123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 |
- package com.ruoyi.demo.service.impl;
- import cn.hutool.core.date.DateField;
- import cn.hutool.core.date.DateUtil;
- import cn.hutool.core.lang.Dict;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.ruoyi.demo.entity.*;
- import com.ruoyi.demo.entity.bo.PlanBo;
- import com.ruoyi.demo.entity.bo.StatisticsAddBo;
- import com.ruoyi.demo.entity.vo.PlanHomeVo;
- import com.ruoyi.demo.entity.vo.ScanListVo;
- import com.ruoyi.demo.entity.vo.TimeAndCountVo;
- import com.ruoyi.demo.mapper.*;
- import com.ruoyi.demo.service.StatisticsService;
- import com.ruoyi.demo.utils.SignUtil;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import java.util.*;
- @Service
- @Transactional
- public class StatisticsServiceImpl implements StatisticsService {
- @Autowired
- StatisticsMapper statisticsMapper;
- @Autowired
- DlUserMapper dlUserMapper;
- @Autowired
- AppMapper appMapper;
- @Autowired
- EquipmentMapper equipmentMapper;
- @Autowired
- PlanMapper planMapper;
- @Override
- public MyPage<ScanListVo> getScanList(PlanBo bo) {
- QueryWrapper<Statistics> queryWrapper = new QueryWrapper<>();
- if (bo.getStartTime() != null)
- queryWrapper.apply("`time` >= STR_TO_DATE({0},'%Y-%m-%d %H:%i:%s')", bo.getStartTime());
- if (bo.getEndTime() != null)
- queryWrapper.apply("`time` <= STR_TO_DATE({0},'%Y-%m-%d %H:%i:%s')", bo.getEndTime());
- Page<Statistics> page = new Page<>();
- List<Statistics> list = statisticsMapper.selectPage(page, queryWrapper).getRecords();
- List<ScanListVo> vos = new ArrayList<>();
- for (Statistics statistics : list) {
- vos.add(new ScanListVo(statistics));
- }
- return new MyPage<>(page, vos);
- }
- @Override
- public PlanHomeVo getScanTotal() {
- PlanHomeVo vo = new PlanHomeVo();
- vo.setTotal(statisticsMapper.selectTotal());
- vo.setTime(DateUtil.date());
- return vo;
- }
- @Override
- public String getSign(StatisticsAddBo bo) {
- QueryWrapper<App> appQueryWrapper = new QueryWrapper<>();
- appQueryWrapper.eq("appkey", bo.getAppkey());
- appQueryWrapper.eq("state", 1);
- appQueryWrapper.eq("deleted", "0");
- App app = appMapper.selectOne(appQueryWrapper);
- if (app == null)
- return "error";
- Map<String, Object> params = Dict.create()
- .set("appkey", bo.getAppkey())
- .set("equipmentCode", bo.getEquipmentCode())
- .set("goodsId", bo.getGoodsId())
- .set("goodsName", bo.getGoodsName())
- .set("time", bo.getTime())
- .set("userId", bo.getUserId())
- .set("userName", bo.getUserName())
- .set("userTelephone", bo.getUserTelephone())
- .set("vendorId", bo.getVendorId())
- .set("vendorName", bo.getVendorName())
- .set("sign", bo.getSign());
- return SignUtil.sign(params, app.getAppSecret());
- }
- // 添加扫码行为记录
- @Override
- public int add(StatisticsAddBo bo) {
- QueryWrapper<App> appQueryWrapper = new QueryWrapper<>();
- appQueryWrapper.eq("appkey", bo.getAppkey());
- appQueryWrapper.eq("state", 1);
- appQueryWrapper.eq("deleted", "0");
- App app = appMapper.selectOne(appQueryWrapper);
- if (app == null)
- return -1;
- Map<String, Object> params = Dict.create()
- .set("appkey", bo.getAppkey())
- .set("equipmentCode", bo.getEquipmentCode())
- .set("goodsId", bo.getGoodsId())
- .set("goodsName", bo.getGoodsName())
- .set("time", bo.getTime())
- .set("userId", bo.getUserId())
- .set("userName", bo.getUserName())
- .set("userTelephone", bo.getUserTelephone())
- .set("vendorId", bo.getVendorId())
- .set("vendorName", bo.getVendorName())
- .set("sign", bo.getSign());
- if (!SignUtil.verify(params, app.getAppSecret()))
- return -3;
- // 验证通过后,如果用户不存在,则添加用户;否则不管
- QueryWrapper<Equipment> equipmentQueryWrapper = new QueryWrapper<>();
- equipmentQueryWrapper.eq("equipment_code", bo.getEquipmentCode());
- Equipment equipment = equipmentMapper.selectOne(equipmentQueryWrapper);
- QueryWrapper<DlUser> userQueryWrapper = new QueryWrapper<>();
- userQueryWrapper.eq("user_id", bo.getUserId());
- DlUser user = dlUserMapper.selectOne(userQueryWrapper);
- if (user == null)
- dlUserMapper.insert(new DlUser(bo, equipment));
- // 添加扫码行为记录
- return statisticsMapper.insert(new Statistics(bo, equipment));
- }
- @Override
- public Map<String, Integer> getTimeDis(String option) {
- Map<String, Integer> map = new LinkedHashMap<>();
- if (option.equals("day")) { // 时间粒度:天
- for (int i = 0; i < 30; i++) {
- String day = DateUtil.offsetDay(new Date(), -i).toString("yyyy-MM-dd");
- map.put(day, statisticsMapper.selectTimeDisByDay(day));
- }
- } else if (option.equals("year")) { // 时间粒度:年
- for (int i = 0; i < 12; i++) {
- String year = DateUtil.offset(DateUtil.date(), DateField.YEAR, -i).toString("yyyy");
- map.put(year, statisticsMapper.selectTimeDisByYear(year));
- }
- } else { // 时间粒度:月
- for (int i = 0; i < 12; i++) {
- String month = DateUtil.offsetMonth(new Date(), -i).toString("yyyy-MM");
- map.put(month, statisticsMapper.selectTimeDisByMonth(month));
- }
- }
- return map;
- }
- @Override
- public List<TimeAndCountVo> getTimeDisToVo(String option) {
- List<TimeAndCountVo> vos = new ArrayList<>();
- if (option.equals("day")) { // 时间粒度:天
- for (int i = 0; i < 30; i++) {
- TimeAndCountVo vo = new TimeAndCountVo();
- vo.setTime(DateUtil.offsetDay(new Date(), -i).toString("yyyy-MM-dd"));
- vo.setCount(statisticsMapper.selectTimeDisByDay(vo.getTime()));
- vos.add(vo);
- }
- } else if (option.equals("year")) { // 时间粒度:年
- for (int i = 0; i < 12; i++) {
- TimeAndCountVo vo = new TimeAndCountVo();
- vo.setTime(DateUtil.offset(DateUtil.date(), DateField.YEAR, -i).toString("yyyy"));
- vo.setCount(statisticsMapper.selectTimeDisByYear(vo.getTime()));
- vos.add(vo);
- }
- } else { // 时间粒度:月
- for (int i = 0; i < 12; i++) {
- TimeAndCountVo vo = new TimeAndCountVo();
- vo.setTime(DateUtil.offsetMonth(new Date(), -i).toString("yyyy-MM"));
- vo.setCount(statisticsMapper.selectTimeDisByMonth(vo.getTime()));
- vos.add(vo);
- }
- }
- return vos;
- }
- }
|