Commit 9dc71acf authored by libin's avatar libin

大屏统计调整

parent b1cafa25
package com.xxfc.platform.order.entity; package com.github.wxiaoqi.security.admin.entity;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
......
package com.xxfc.platform.order.biz; package com.github.wxiaoqi.security.admin.biz;
import com.github.wxiaoqi.security.admin.entity.UserProfileDisplay;
import com.github.wxiaoqi.security.admin.mapper.UserProfileDisplayMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.xxfc.platform.order.entity.UserProfileDisplay;
import com.xxfc.platform.order.mapper.UserProfileDisplayMapper;
import com.xxfc.platform.order.pojo.vo.UserProfileDisplayVo; import com.xxfc.platform.order.pojo.vo.UserProfileDisplayVo;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
......
package com.xxfc.platform.order.mapper; package com.github.wxiaoqi.security.admin.mapper;
import com.xxfc.platform.order.entity.UserProfileDisplay; import com.github.wxiaoqi.security.admin.entity.UserProfileDisplay;
import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.Mapper;
/** /**
......
package com.github.wxiaoqi.security.admin.rest;
import com.github.wxiaoqi.security.admin.biz.UserProfileDisplayBiz;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xxfc.platform.order.pojo.vo.UserProfileDisplayVo;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/12/26 10:11
*/
@RestController
@RequestMapping("/large_screen")
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class LargeScreenDisplayUserController {
private final UserProfileDisplayBiz userProfileDisplayBiz;
/**
* 用户概况
*
* @return
*/
@GetMapping("/user_profile_display")
public ObjectRestResponse<UserProfileDisplayVo> findUserProfileData() {
UserProfileDisplayVo userProfileDisplayVo = userProfileDisplayBiz.findUserProfileData();
return ObjectRestResponse.succ(userProfileDisplayVo);
}
}
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xxfc.platform.order.mapper.UserProfileDisplayMapper"> <mapper namespace="com.github.wxiaoqi.security.admin.mapper.UserProfileDisplayMapper">
<!-- 可根据自己的需求,是否要使用 --> <!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.xxfc.platform.order.entity.UserProfileDisplay" id="userProfileDisplayMap"> <resultMap type="com.github.wxiaoqi.security.admin.entity.UserProfileDisplay" id="userProfileDisplayMap">
<result property="id" column="id"/> <result property="id" column="id"/>
<result property="membersNum" column="travel_num"/> <result property="membersNum" column="travel_num"/>
<result property="provinceCode" column="province_code"/> <result property="provinceCode" column="province_code"/>
......
package com.xxfc.platform.order.bo; package com.xxfc.platform.order.bo;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
...@@ -19,26 +18,12 @@ import java.math.BigDecimal; ...@@ -19,26 +18,12 @@ import java.math.BigDecimal;
@NoArgsConstructor @NoArgsConstructor
public class LargeScreenDisplayConstantDataBo implements Serializable { public class LargeScreenDisplayConstantDataBo implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/**
* 公司数量
*/
private int companyNum;
/**
* 营地数量
*/
private int campsiteNum;
/**
* 旅游路线数量
*/
private int tourNum;
/** /**
* 订单金额基础金额 * 订单金额基础金额
*/ */
@JsonIgnore
private BigDecimal baseOrderAmount = BigDecimal.ZERO; private BigDecimal baseOrderAmount = BigDecimal.ZERO;
/** /**
* 订单基础单量 * 订单基础单量
*/ */
@JsonIgnore
private int baseOrderNum; private int baseOrderNum;
} }
...@@ -54,7 +54,7 @@ public class OrderProfileDisplay { ...@@ -54,7 +54,7 @@ public class OrderProfileDisplay {
@Column(name = "pay_way") @Column(name = "pay_way")
private Integer payWay; private Integer payWay;
/** /**
* 支付终端 1:app 2:ios * 支付终端 1:app 2:小程序 3:公众号 4:ios
*/ */
@Column(name = "pay_terminal") @Column(name = "pay_terminal")
private Integer payTerminal; private Integer payTerminal;
......
package com.xxfc.platform.order.pojo.vo; package com.xxfc.platform.order.pojo.vo;
import com.xxfc.platform.order.entity.UserProfileDisplay; import com.github.wxiaoqi.security.admin.entity.UserProfileDisplay;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
......
...@@ -2,11 +2,8 @@ package com.xxfc.platform.order.rest; ...@@ -2,11 +2,8 @@ package com.xxfc.platform.order.rest;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xxfc.platform.order.biz.OrderProfileDisplayBiz; import com.xxfc.platform.order.biz.OrderProfileDisplayBiz;
import com.xxfc.platform.order.biz.UserProfileDisplayBiz;
import com.xxfc.platform.order.biz.VehicleProfileDisplayBiz;
import com.xxfc.platform.order.pojo.vo.LargeScreenDisplayDataVo; import com.xxfc.platform.order.pojo.vo.LargeScreenDisplayDataVo;
import com.xxfc.platform.order.pojo.vo.UserProfileDisplayVo; import com.xxfc.platform.order.pojo.vo.UserProfileDisplayVo;
import com.xxfc.platform.order.pojo.vo.VehicleProfileDisplayVo;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
...@@ -26,31 +23,10 @@ import java.util.Date; ...@@ -26,31 +23,10 @@ import java.util.Date;
@RequestMapping("/large_screen") @RequestMapping("/large_screen")
@RequiredArgsConstructor(onConstructor = @__(@Autowired)) @RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class LargeScreenDisplayController { public class LargeScreenDisplayController {
private final VehicleProfileDisplayBiz vehicleProfileDisplayBiz;
private final UserProfileDisplayBiz userProfileDisplayBiz;
private final OrderProfileDisplayBiz orderProfileDisplayBiz;
/**
* 车辆概况
*
* @return
*/
@GetMapping("/vehicle_profile_display")
public ObjectRestResponse<VehicleProfileDisplayVo> findLargeScreenDisplayData() {
VehicleProfileDisplayVo vehicleProfileDisplayVo = vehicleProfileDisplayBiz.findVehicleProfileDisplayData();
return ObjectRestResponse.succ(vehicleProfileDisplayVo);
}
/** private final OrderProfileDisplayBiz orderProfileDisplayBiz;
* 用户概况
*
* @return
*/
@GetMapping("/user_profile_display")
public ObjectRestResponse<UserProfileDisplayVo> findUserProfileData() {
UserProfileDisplayVo userProfileDisplayVo = userProfileDisplayBiz.findUserProfileData();
return ObjectRestResponse.succ(userProfileDisplayVo);
}
/** /**
* 基础数据 与 订单概况 * 基础数据 与 订单概况
......
package com.xxfc.platform.order.entity; package com.xxfc.platform.vehicle.entity;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
......
package com.xxfc.platform.vehicle.pojo.bo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/12/26 9:45
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class LargeScreenDisplayCCTConstantDataBo implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 公司数量
*/
private int companyNum;
/**
* 营地数量
*/
private int campsiteNum;
/**
* 旅游路线数量
*/
private int tourNum;
}
package com.xxfc.platform.vehicle.pojo.vo;
import com.xxfc.platform.vehicle.pojo.bo.LargeScreenDisplayCCTConstantDataBo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Objects;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/12/26 8:44
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class LargeScreenDisplayBaseDataVo implements Serializable {
private static final long serialVersionUID = 1L;
private LargeScreenDisplayCCTConstantDataBo largeScreenDisplayCCTConstantDataBo;
private VehicleProfileDisplayVo vehicleProfileDisplayVo;
public LargeScreenDisplayCCTConstantDataBo getLargeScreenDisplayCCTConstantDataBo() {
return Objects.isNull(largeScreenDisplayCCTConstantDataBo)?new LargeScreenDisplayCCTConstantDataBo():largeScreenDisplayCCTConstantDataBo;
}
public VehicleProfileDisplayVo getVehicleProfileDisplayVo() {
return Objects.isNull(vehicleProfileDisplayVo)?new VehicleProfileDisplayVo():vehicleProfileDisplayVo;
}
}
package com.xxfc.platform.order.pojo.vo; package com.xxfc.platform.vehicle.pojo.vo;
import com.xxfc.platform.order.entity.VehicleProfileDisplay; import com.xxfc.platform.vehicle.entity.VehicleProfileDisplay;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
......
package com.xxfc.platform.order.biz; package com.xxfc.platform.vehicle.biz;
import com.alibaba.fastjson.JSON;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.xxfc.platform.order.entity.VehicleProfileDisplay; import com.xxfc.platform.universal.entity.Dictionary;
import com.xxfc.platform.order.mapper.VehicleProfileDisplayMapper; import com.xxfc.platform.universal.feign.ThirdFeign;
import com.xxfc.platform.order.pojo.vo.VehicleProfileDisplayVo; import com.xxfc.platform.vehicle.entity.VehicleProfileDisplay;
import com.xxfc.platform.vehicle.mapper.VehicleProfileDisplayMapper;
import com.xxfc.platform.vehicle.pojo.bo.LargeScreenDisplayCCTConstantDataBo;
import com.xxfc.platform.vehicle.pojo.vo.LargeScreenDisplayBaseDataVo;
import com.xxfc.platform.vehicle.pojo.vo.VehicleProfileDisplayVo;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import java.util.List; import java.util.List;
import java.util.concurrent.CountDownLatch;
/** /**
* @author libin * @author libin
...@@ -18,17 +28,51 @@ import java.util.List; ...@@ -18,17 +28,51 @@ import java.util.List;
* @description * @description
* @data 2019/12/24 17:06 * @data 2019/12/24 17:06
*/ */
@Slf4j
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Service @Service
@RequiredArgsConstructor(onConstructor = @__(@Autowired)) @RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class VehicleProfileDisplayBiz extends BaseBiz<VehicleProfileDisplayMapper, VehicleProfileDisplay> { public class VehicleProfileDisplayBiz extends BaseBiz<VehicleProfileDisplayMapper, VehicleProfileDisplay> {
/**
* 字典查询type
*/
@Value("large.screen.type:LARGE_SCREEN_DISPLAY")
private String largeScreenType;
/**
* 字典查询code
*/
@Value("large.screen.cct.code:LARGE_SCREEN_DISPLAY_CCT_CONSTANT")
private String largeScreenCode;
public VehicleProfileDisplayVo findVehicleProfileDisplayData() { private final ThirdFeign thirdFeign;
private final ThreadPoolTaskExecutor executor;
public LargeScreenDisplayBaseDataVo findVehicleProfileDisplayData() {
LargeScreenDisplayBaseDataVo largeScreenDisplayBaseDataVo = new LargeScreenDisplayBaseDataVo();
VehicleProfileDisplayVo vehicleProfileDisplayVo = new VehicleProfileDisplayVo(); VehicleProfileDisplayVo vehicleProfileDisplayVo = new VehicleProfileDisplayVo();
//1.查询全部固定数据 //1.查询全部固定数据
List<VehicleProfileDisplay> vehicleProfileDisplays = mapper.selectAll(); List<VehicleProfileDisplay> vehicleProfileDisplays = mapper.selectAll();
CountDownLatch latch = new CountDownLatch(1);
executor.execute(()->{
try {
Dictionary dictionary = thirdFeign.findDictionaryByTypeAndCode(largeScreenType, largeScreenType);
if (dictionary != null && StringUtils.hasText(dictionary.getDetail())) {
LargeScreenDisplayCCTConstantDataBo largeScreenDisplayConstantDataBo = JSON.parseObject(dictionary.getDetail(), LargeScreenDisplayCCTConstantDataBo.class);
largeScreenDisplayBaseDataVo.setLargeScreenDisplayCCTConstantDataBo(largeScreenDisplayConstantDataBo);
}
}catch (Exception ex){
log.error("字典数据查询失败【{}】",ex);
}finally {
latch.countDown();
}
});
if (CollectionUtils.isEmpty(vehicleProfileDisplays)) { if (CollectionUtils.isEmpty(vehicleProfileDisplays)) {
return vehicleProfileDisplayVo; try {
latch.await();
} catch (InterruptedException e) {
log.error("查询失败【{}】",e);
}
return largeScreenDisplayBaseDataVo;
} }
long travelNum = 0; long travelNum = 0;
long toTravelNum = 0; long toTravelNum = 0;
...@@ -40,10 +84,17 @@ public class VehicleProfileDisplayBiz extends BaseBiz<VehicleProfileDisplayMappe ...@@ -40,10 +84,17 @@ public class VehicleProfileDisplayBiz extends BaseBiz<VehicleProfileDisplayMappe
maintenanceNum = +vehicleProfileDisplay.getMaintenanceNum(); maintenanceNum = +vehicleProfileDisplay.getMaintenanceNum();
inMaintenanceNum = +vehicleProfileDisplay.getInMaintenanceNum(); inMaintenanceNum = +vehicleProfileDisplay.getInMaintenanceNum();
} }
vehicleProfileDisplayVo.setTravelNum(travelNum); vehicleProfileDisplayVo.setTravelNum(travelNum);
vehicleProfileDisplayVo.setToTravelNum(toTravelNum); vehicleProfileDisplayVo.setToTravelNum(toTravelNum);
vehicleProfileDisplayVo.setMaintenanceNum(maintenanceNum); vehicleProfileDisplayVo.setMaintenanceNum(maintenanceNum);
vehicleProfileDisplayVo.setInMaintenanceNum(inMaintenanceNum); vehicleProfileDisplayVo.setInMaintenanceNum(inMaintenanceNum);
return vehicleProfileDisplayVo; largeScreenDisplayBaseDataVo.setVehicleProfileDisplayVo(vehicleProfileDisplayVo);
try {
latch.await();
} catch (InterruptedException e) {
log.error("查询失败【{}】",e);
}
return largeScreenDisplayBaseDataVo;
} }
} }
package com.xxfc.platform.order.mapper; package com.xxfc.platform.vehicle.mapper;
import com.xxfc.platform.order.entity.VehicleProfileDisplay; import com.xxfc.platform.vehicle.entity.VehicleProfileDisplay;
import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.Mapper;
/** /**
......
package com.xxfc.platform.vehicle.rest;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xxfc.platform.vehicle.biz.VehicleProfileDisplayBiz;
import com.xxfc.platform.vehicle.pojo.vo.LargeScreenDisplayBaseDataVo;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/12/26 9:41
*/
@RestController
@RequestMapping("/large_screen")
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class LargeScreenDisplayCCTVehicleController {
private final VehicleProfileDisplayBiz vehicleProfileDisplayBiz;
/**
* 车辆概况
*
* @return
*/
@GetMapping("/base_cct_vehicle_profile_display")
public ObjectRestResponse<LargeScreenDisplayBaseDataVo> findLargeScreenDisplayData() {
LargeScreenDisplayBaseDataVo largeScreenDisplayBaseDataVo = vehicleProfileDisplayBiz.findVehicleProfileDisplayData();
return ObjectRestResponse.succ(largeScreenDisplayBaseDataVo);
}
}
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xxfc.platform.order.mapper.VehicleProfileDisplayMapper"> <mapper namespace="com.xxfc.platform.vehicle.mapper.VehicleProfileDisplayMapper">
<!-- 可根据自己的需求,是否要使用 --> <!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.xxfc.platform.order.entity.VehicleProfileDisplay" id="vehicleProfileDisplayMap"> <resultMap type="com.xxfc.platform.vehicle.entity.VehicleProfileDisplay" id="vehicleProfileDisplayMap">
<result property="id" column="id"/> <result property="id" column="id"/>
<result property="provinceName" column="province_name"/> <result property="provinceName" column="province_name"/>
<result property="provinceCode" column="province_code"/> <result property="provinceCode" column="province_code"/>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment