package com.boying.service.impl; import cn.hutool.http.Header; import cn.hutool.http.HttpRequest; import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.boying.common.R; import com.boying.common.ReturnData; import com.boying.common.SystemConfigProperties; import com.boying.entity.Ticket; import com.boying.mapper.TicketMapper; import cn.hutool.core.date.DateUtil; import com.boying.service.TicketService; import com.boying.util.HTTPEntityUtil; import com.google.gson.Gson; import lombok.AllArgsConstructor; import org.springframework.http.HttpHeaders; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import org.springframework.web.client.RestTemplate; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.Map; /** * @author kdq * @version 1.0.0 * @ClassName TicketServiceImpl.java * @Description TODO * @createTime 2022年11月20日 10:31:00 */ @Service @AllArgsConstructor public class TicketServiceImpl extends ServiceImpl implements TicketService { private final TicketMapper ticketMapper; private SystemConfigProperties systemConfigProperties; @Override public Integer count1() { QueryWrapper wrapper = new QueryWrapper<>(); wrapper.lambda() .between(Ticket::getCreateTime,DateUtil.beginOfDay(new Date()),DateUtil.endOfDay(new Date())) .isNotNull(Ticket::getPayCode); return ticketMapper.selectCount(wrapper); } @Override public int count2() { QueryWrapper wrapper = new QueryWrapper<>(); wrapper.lambda() .between(Ticket::getCreateTime,DateUtil.beginOfDay(new Date()),DateUtil.endOfDay(new Date())) .eq(Ticket::getPayStatus,1); return ticketMapper.selectCount(wrapper); } @Override public double sumByPrice() { Double a = null; QueryWrapper wrapper = new QueryWrapper<>(); wrapper.select("IFNULL(ROUND(SUM(money)),0) as money"); wrapper.lambda().between(Ticket::getCreateTime,DateUtil.beginOfDay(new Date()),DateUtil.endOfDay(new Date())) .eq(Ticket::getPayStatus,1); Map map = getMap(wrapper); a = Double.valueOf(map.get("money").toString()); if(a==null){ return 0.0; }else{ return a; } } @Override public int count3() { QueryWrapper wrapper = new QueryWrapper<>(); wrapper.lambda() .between(Ticket::getCreateTime,DateUtil.beginOfMonth(new Date()),DateUtil.endOfMonth(new Date())); return ticketMapper.selectCount(wrapper); } @Override public double sumByPrice2() { Double a = null; QueryWrapper wrapper = new QueryWrapper<>(); wrapper.select("IFNULL(ROUND(SUM(money)),0) as money"); wrapper.lambda().between(Ticket::getCreateTime,DateUtil.beginOfMonth(new Date()),DateUtil.endOfMonth(new Date())) .eq(Ticket::getPayStatus,1); Map map = getMap(wrapper); a = Double.valueOf(map.get("money").toString()); if(a==null){ return 0; }else{ return a; } } @Override public int count4() { QueryWrapper wrapper = new QueryWrapper<>(); wrapper.lambda() .eq(Ticket::getPayStatus,1); int a = count(wrapper)*100; int b = count(); return (a/b); } @Override public int count5(int type) { QueryWrapper wrapper = new QueryWrapper<>(); wrapper.lambda() .between(Ticket::getCreateTime,DateUtil.beginOfDay(new Date()),DateUtil.endOfDay(new Date())) .eq(Ticket::getType,1); if(type==1){ return ticketMapper.selectCount(wrapper); }else{ wrapper.lambda().eq(Ticket::getStatus,1); return ticketMapper.selectCount(wrapper); } } @Override public int count6() { QueryWrapper wrapper = new QueryWrapper<>(); wrapper.lambda() .between(Ticket::getCreateTime,DateUtil.beginOfDay(new Date()),DateUtil.endOfDay(new Date())) .eq(Ticket::getType,1); return ticketMapper.selectCount(wrapper); } @Override public double sumByPrice3() { Double a = null; QueryWrapper wrapper = new QueryWrapper<>(); wrapper.select("IFNULL(ROUND(SUM(money)),0) as money"); wrapper.lambda().between(Ticket::getCreateTime,DateUtil.beginOfDay(new Date()),DateUtil.endOfDay(new Date())) .eq(Ticket::getType,0) .eq(Ticket::getPayStatus,1); Map map = getMap(wrapper); a = Double.valueOf(map.get("money").toString()); if(a==null){ return 0.0; }else{ return a; } } @Override public void uploadInfo(Ticket ticket) { DateFormat sdf= new SimpleDateFormat("yyyy年MM月dd日"); String ffzfIp = systemConfigProperties.getFfzfIp(); String info = systemConfigProperties.getInfo(); Map map = new HashMap<>(); String jsonString = JSONUtil.toJsonStr(ticket); Gson gson = new Gson(); map = gson.fromJson(jsonString, map.getClass()); System.out.println(jsonString); RestTemplate restTemplate = new RestTemplate(); ResponseEntity entity = restTemplate.postForEntity(ffzfIp+info, HTTPEntityUtil.setEntity(map), R.class); int code = entity.getBody().getCode(); if(code == 0){ ticket.setPush(1); try { Date date = new Date(); String format = sdf.format(date); ticket.setWordDate(format); }catch (Exception e){ e.printStackTrace(); } this.updateById(ticket); } } @Override public Ticket getNumber(Ticket byId) { String ffzfIp = systemConfigProperties.getFfzfIp(); String getNumber = systemConfigProperties.getGetNumber(); String loginIp = systemConfigProperties.getLoginIp(); Map paramMap = new HashMap<>(); paramMap.put("username","test"); paramMap.put("password","ttt000"); paramMap.put("randomStr","blockPuzzle"); paramMap.put("grant_type","password"); String body = HttpRequest.post(loginIp) .header(Header.CONTENT_TYPE, "application/x-www-form-urlencoded") .header("TENANT-ID", "1") .header("isToken", "false") .header(Header.AUTHORIZATION, "Basic YXBwOmFwcA==") .form(paramMap) .timeout(15000) .execute() .body(); System.out.println(body); JSONObject map = JSON.parseObject(body); String access_token = (String)map.get("access_token"); String body1 = HttpRequest.get(ffzfIp+getNumber) .header(Header.CONTENT_TYPE, "application/json") .header("TENANT-ID", "1") .header(Header.AUTHORIZATION, "bearer "+access_token) .timeout(15000) .execute() .body(); System.out.println(body1); JSONObject map1 = JSON.parseObject(body1); String data = (String)map1.get("data"); String[] split = data.split("-"); byId.setYear(split[0]); byId.setNumber(split[1]); updateById(byId); return byId; } }