Commit 373a75da authored by hezhen's avatar hezhen

Merge branch 'base-modify' of http://113.105.137.151:22280/youjj/cloud-platform into base-modify

parents b0eb42d0 9c215c17
...@@ -32,7 +32,6 @@ import java.lang.reflect.Parameter; ...@@ -32,7 +32,6 @@ import java.lang.reflect.Parameter;
*/ */
@Aspect @Aspect
@Component @Component
@ComponentScan("com.xxfc.platform")
@ConditionalOnClass(value = UserFeign.class) @ConditionalOnClass(value = UserFeign.class)
public class TokenAop { public class TokenAop {
......
...@@ -21,7 +21,9 @@ import org.springframework.transaction.annotation.EnableTransactionManagement; ...@@ -21,7 +21,9 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
@EnableDiscoveryClient @EnableDiscoveryClient
@EnableCircuitBreaker @EnableCircuitBreaker
@SpringBootApplication @SpringBootApplication
@EnableFeignClients({"com.github.wxiaoqi.security","com.xxfc.platform"})
@EnableFeignClients({"com.github.wxiaoqi.security.auth.client.feign","com.xxfc.platform","com.github.wxiaoqi.security.admin.feign"})
//@EnableFeignClients({"com.github.wxiaoqi.security","com.xxfc.platform"})
@EnableScheduling @EnableScheduling
@EnableAceAuthClient @EnableAceAuthClient
@EnableAceCache @EnableAceCache
......
...@@ -3,6 +3,7 @@ package com.xinxincaravan.caravan.vehicle.biz; ...@@ -3,6 +3,7 @@ package com.xinxincaravan.caravan.vehicle.biz;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.github.wxiaoqi.security.common.exception.BaseException; import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xinxincaravan.caravan.vehicle.constant.ResCode.ResCode; import com.xinxincaravan.caravan.vehicle.constant.ResCode.ResCode;
import com.xinxincaravan.caravan.vehicle.entity.Vehicle; import com.xinxincaravan.caravan.vehicle.entity.Vehicle;
import com.xinxincaravan.caravan.vehicle.entity.VehicleDepartureLog; import com.xinxincaravan.caravan.vehicle.entity.VehicleDepartureLog;
...@@ -61,4 +62,5 @@ public class VehicleDepartureService { ...@@ -61,4 +62,5 @@ public class VehicleDepartureService {
statisticData.setDepartureMileage(vehicleDepartureLogMapper.selectMileageByVehicleId(vehicle.getId())); statisticData.setDepartureMileage(vehicleDepartureLogMapper.selectMileageByVehicleId(vehicle.getId()));
return statisticData; return statisticData;
} }
} }
...@@ -2,12 +2,15 @@ package com.xinxincaravan.caravan.vehicle.rest; ...@@ -2,12 +2,15 @@ package com.xinxincaravan.caravan.vehicle.rest;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken; import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken;
import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig; import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xinxincaravan.caravan.vehicle.biz.VehicleBiz; import com.xinxincaravan.caravan.vehicle.biz.VehicleBiz;
import com.xinxincaravan.caravan.vehicle.biz.VehicleDepartureService; import com.xinxincaravan.caravan.vehicle.biz.VehicleDepartureService;
import com.xinxincaravan.caravan.vehicle.common.RestResponse; import com.xinxincaravan.caravan.vehicle.common.RestResponse;
import com.xinxincaravan.caravan.vehicle.constant.ResCode.ResCode; import com.xinxincaravan.caravan.vehicle.constant.ResCode.ResCode;
import com.xinxincaravan.caravan.vehicle.entity.VehicleDepartureLog;
import com.xinxincaravan.caravan.vehicle.feign.UserFeign; import com.xinxincaravan.caravan.vehicle.feign.UserFeign;
import com.xinxincaravan.caravan.vehicle.feign.dto.UserDTO; import com.xinxincaravan.caravan.vehicle.feign.dto.UserDTO;
import com.xinxincaravan.caravan.vehicle.vo.VehicleDepartureStatisticDataVo;
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;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
...@@ -17,6 +20,9 @@ import javax.servlet.http.HttpServletRequest; ...@@ -17,6 +20,9 @@ import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
/**
* 车辆出行状态
*/
@IgnoreClientToken @IgnoreClientToken
@RestController @RestController
@RequestMapping("departure") @RequestMapping("departure")
...@@ -33,6 +39,7 @@ public class VehicleDepartureController { ...@@ -33,6 +39,7 @@ public class VehicleDepartureController {
@Autowired @Autowired
private UserAuthConfig userAuthConfig; private UserAuthConfig userAuthConfig;
@GetMapping("page") @GetMapping("page")
public RestResponse page(String numberPlate, Integer page, Integer limit, HttpServletRequest request) { public RestResponse page(String numberPlate, Integer page, Integer limit, HttpServletRequest request) {
if (page == null || limit == null) { if (page == null || limit == null) {
...@@ -70,6 +77,4 @@ public class VehicleDepartureController { ...@@ -70,6 +77,4 @@ public class VehicleDepartureController {
} }
return RestResponse.suc(vehicleDepartureService.statistic(numberPlate)); return RestResponse.suc(vehicleDepartureService.statistic(numberPlate));
} }
} }
package com.xxfc.platform.campsite.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Table;
import java.io.Serializable;
/**
* 店铺类型表
*
* @author libin
* @email 18178966185@163.com
* @date 2019-06-17 10:28:48
*/
@Data
@Table(name = "campsite_tag")
@ApiModel(value = "店铺类型dto")
public class CampsiteTagListDTO implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("主键id")
private Integer id;
/**
* 名称
*/
@ApiModelProperty(value = "名称")
private String name;
}
...@@ -28,6 +28,18 @@ public class CampsiteShopDetailVo { ...@@ -28,6 +28,18 @@ public class CampsiteShopDetailVo {
@ApiModelProperty("店铺名称") @ApiModelProperty("店铺名称")
private String name; private String name;
/**
* 地址-省/直辖市(名称)
*/
@ApiModelProperty("地址-省/直辖市(名称)")
private String provinceName;
/**
* 地址-市(名称)
*/
@ApiModelProperty("地址-市(名称)")
private String cityName;
/** /**
* 具体地址 * 具体地址
*/ */
...@@ -57,7 +69,20 @@ public class CampsiteShopDetailVo { ...@@ -57,7 +69,20 @@ public class CampsiteShopDetailVo {
* *
*/ */
@ApiModelProperty("类型列表") @ApiModelProperty("类型列表")
private String typeNames; private List<String> typeNames;
/**
* 经度
*/
@ApiModelProperty(value = "经度")
private Double longitude;
/**
* 纬度
*/
@ApiModelProperty(value = "纬度")
private Double latitude;
/** /**
*轮播图列表 *轮播图列表
......
package com.xxfc.platform.campsite.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Table;
import java.io.Serializable;
/**
* 店铺类型表
*
* @author libin
* @email 18178966185@163.com
* @date 2019-06-17 10:28:48
*/
@Data
@Table(name = "campsite_tag")
@ApiModel(value = "店铺类型vo")
public class CampsiteTagListVo implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("主键id")
private Integer id;
/**
* 名称
*/
@ApiModelProperty(value = "名称")
private String name;
}
...@@ -64,7 +64,7 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper,CampsiteShop> { ...@@ -64,7 +64,7 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper,CampsiteShop> {
return campsiteShopPageDataVO; return campsiteShopPageDataVO;
} }
if (log.isDebugEnabled()){ if (log.isDebugEnabled()){
log.debug("根据type=[{}]查询到的店铺数据:[{}]",type,campsiteShopPageDTOS); log.debug("根据type=【{}】查询到的店铺数据:【{}】",type,campsiteShopPageDTOS);
} }
List<CampsiteShopPageVo> campsiteShopPageVoList = new ArrayList<>(); List<CampsiteShopPageVo> campsiteShopPageVoList = new ArrayList<>();
for (CampsiteShopPageDTO campsiteShopPageDTO : campsiteShopPageDTOS) { for (CampsiteShopPageDTO campsiteShopPageDTO : campsiteShopPageDTOS) {
...@@ -88,13 +88,13 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper,CampsiteShop> { ...@@ -88,13 +88,13 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper,CampsiteShop> {
//从店铺表根据店铺id查询 //从店铺表根据店铺id查询
CampsiteShopDetailDTO campsiteShopDetailDTO = mapper.findCampsiteShopDetailById(id); CampsiteShopDetailDTO campsiteShopDetailDTO = mapper.findCampsiteShopDetailById(id);
if (log.isDebugEnabled()){ if (log.isDebugEnabled()){
log.debug("根据店铺id=[{}]查询出店铺信息[{}]",id,campsiteShopDetailDTO); log.debug("根据店铺id=【{}】查询出店铺信息【{}】",id,campsiteShopDetailDTO);
} }
BeanUtils.copyProperties(campsiteShopDetailDTO,campsiteShopDetailVo); BeanUtils.copyProperties(campsiteShopDetailDTO,campsiteShopDetailVo);
//从轮播表根据店铺id查询 //从轮播表根据店铺id查询
List<CampsiteShopCarouselDetailDTO> campsiteShopCarouselDTOS = campsiteShopCarouselBiz.findByCampsiteShopId(id); List<CampsiteShopCarouselDetailDTO> campsiteShopCarouselDTOS = campsiteShopCarouselBiz.findByCampsiteShopId(id);
if (log.isDebugEnabled()){ if (log.isDebugEnabled()){
log.debug("根据店铺id=[{}]查询出店铺轮播图信息:[{}]",id,campsiteShopCarouselDTOS); log.debug("根据店铺id=【{}】查询出店铺轮播图信息:【{}】",id,campsiteShopCarouselDTOS);
} }
List<CampsiteShopCarouselDetailVo> campsiteShopCarouselDetailVos = new ArrayList<>(); List<CampsiteShopCarouselDetailVo> campsiteShopCarouselDetailVos = new ArrayList<>();
campsiteShopCarouselDTOS.forEach(campsiteShopCarouselDetailDTO -> { campsiteShopCarouselDTOS.forEach(campsiteShopCarouselDetailDTO -> {
...@@ -106,15 +106,13 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper,CampsiteShop> { ...@@ -106,15 +106,13 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper,CampsiteShop> {
//从店铺类型表根据店铺id查询 -->类型列表拼接 //从店铺类型表根据店铺id查询 -->类型列表拼接
List<String> typeNameList = campsiteShopTagBiz.findByCampsiteShopId(id); List<String> typeNameList = campsiteShopTagBiz.findByCampsiteShopId(id);
if (log.isDebugEnabled()){ if (log.isDebugEnabled()){
log.debug("根据店铺id=[{}]查询出店铺类型:[{}]",id,typeNameList); log.debug("根据店铺id=【{}】查询出店铺类型:【{}】",id,typeNameList);
} }
campsiteShopDetailVo.setTypeNames(typeNameList.stream().collect(Collectors.joining("|"))); campsiteShopDetailVo.setTypeNames(typeNameList);
//具体地址拼接
campsiteShopDetailVo.setAddress(String.format("%s%s%s",campsiteShopDetailDTO.getProvinceName(),campsiteShopDetailDTO.getCityName(),campsiteShopDetailDTO.getAddress()));
//根据经纬度算距离 //根据经纬度算距离
double distance = getDistance(campsiteShopDetailDTO.getLongitude(),campsiteShopDetailDTO.getLatitude(),longitude,latitude); double distance = getDistance(campsiteShopDetailDTO.getLongitude(),campsiteShopDetailDTO.getLatitude(),longitude,latitude);
if (log.isDebugEnabled()){ if (log.isDebugEnabled()){
log.debug("根据店铺经度=[{}],纬度=[{}]和自己所在位置的经度=[{}],纬度=[{}]计算出的距离:[{}km]",campsiteShopDetailDTO.getLongitude(),campsiteShopDetailDTO.getLatitude(),longitude,latitude,distance); log.debug("根据店铺经度=【{}】,纬度=【{}】和自己所在位置的经度=【{}】,纬度=【{}】计算出的距离:【{}km】",campsiteShopDetailDTO.getLongitude(),campsiteShopDetailDTO.getLatitude(),longitude,latitude,distance);
} }
campsiteShopDetailVo.setDistance(String.format("%.1f",distance)); campsiteShopDetailVo.setDistance(String.format("%.1f",distance));
return campsiteShopDetailVo; return campsiteShopDetailVo;
......
package com.xxfc.platform.campsite.biz; package com.xxfc.platform.campsite.biz;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.xxfc.platform.campsite.dto.CampsiteTagListDTO;
import com.xxfc.platform.campsite.vo.CampsiteTagListVo;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.xxfc.platform.campsite.entity.CampsiteTag; import com.xxfc.platform.campsite.entity.CampsiteTag;
import com.xxfc.platform.campsite.mapper.CampsiteTagMapper; import com.xxfc.platform.campsite.mapper.CampsiteTagMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import java.util.List;
/** /**
* 店铺类型表 * 店铺类型表
* *
...@@ -15,4 +23,17 @@ import com.github.wxiaoqi.security.common.biz.BaseBiz; ...@@ -15,4 +23,17 @@ import com.github.wxiaoqi.security.common.biz.BaseBiz;
*/ */
@Service @Service
public class CampsiteTagBiz extends BaseBiz<CampsiteTagMapper,CampsiteTag> { public class CampsiteTagBiz extends BaseBiz<CampsiteTagMapper,CampsiteTag> {
/**
* 查询营地列表
* @return
*/
public List<CampsiteTagListVo> findCampsiteTags() {
List<CampsiteTagListDTO> campsiteTagListDTOS = mapper.findCampsiteTags();
if (CollectionUtils.isEmpty(campsiteTagListDTOS)){
return null;
}
List<CampsiteTagListVo> campsiteTagListVos = JSONObject.parseObject(JSONObject.toJSONString(campsiteTagListDTOS),new TypeReference<List<CampsiteTagListVo>>(){});
return campsiteTagListVos;
}
} }
\ No newline at end of file
package com.xxfc.platform.campsite.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
/**
* ${DESCRIPTION}
*
* @author wanghaobin
* @create 2017-06-21 8:39
*/
@Configuration
@Primary
public class RedisConfiguration {
@Bean
public RedisTemplate<String, Object> customRedisTemplate(RedisConnectionFactory factory) {
RedisTemplate redisTemplate = new RedisTemplate();
redisTemplate.setConnectionFactory(factory);
RedisSerializer<String> stringSerializer = new StringRedisSerializer();
redisTemplate.setKeySerializer(stringSerializer);
redisTemplate.setValueSerializer(stringSerializer);
redisTemplate.setHashKeySerializer(stringSerializer);
redisTemplate.setHashValueSerializer(stringSerializer);
redisTemplate.afterPropertiesSet();
return redisTemplate;
}
}
package com.xxfc.platform.campsite.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;
@Configuration
public class RestConfiguration {
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
}
package com.xxfc.platform.campsite.mapper; package com.xxfc.platform.campsite.mapper;
import com.xxfc.platform.campsite.dto.CampsiteTagListDTO;
import com.xxfc.platform.campsite.entity.CampsiteTag; import com.xxfc.platform.campsite.entity.CampsiteTag;
import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.Mapper;
import java.util.List;
/** /**
* 店铺类型表 * 店铺类型表
* *
...@@ -11,5 +14,11 @@ import tk.mybatis.mapper.common.Mapper; ...@@ -11,5 +14,11 @@ import tk.mybatis.mapper.common.Mapper;
* @date 2019-06-17 10:28:48 * @date 2019-06-17 10:28:48
*/ */
public interface CampsiteTagMapper extends Mapper<CampsiteTag> { public interface CampsiteTagMapper extends Mapper<CampsiteTag> {
/**
* 查询可用营地列表
* @return
*/
List<CampsiteTagListDTO> findCampsiteTags();
} }
package com.xxfc.platform.campsite.rest; package com.xxfc.platform.campsite.rest;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController; import com.github.wxiaoqi.security.common.rest.BaseController;
import com.xxfc.platform.campsite.biz.CampsiteTagBiz; import com.xxfc.platform.campsite.biz.CampsiteTagBiz;
import com.xxfc.platform.campsite.entity.CampsiteTag; import com.xxfc.platform.campsite.entity.CampsiteTag;
import org.springframework.stereotype.Controller; import com.xxfc.platform.campsite.vo.CampsiteTagListVo;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/** /**
* @author libin * @author libin
* @version 1.0 * @version 1.0
...@@ -17,4 +22,15 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -17,4 +22,15 @@ import org.springframework.web.bind.annotation.RestController;
@RequestMapping("campsiteTag") @RequestMapping("campsiteTag")
public class CampsiteTagController extends BaseController<CampsiteTagBiz,CampsiteTag> { public class CampsiteTagController extends BaseController<CampsiteTagBiz,CampsiteTag> {
/**
* 查询营地列表
* @return
*/
@GetMapping("/app/unauth/tags")
@IgnoreClientToken
public ObjectRestResponse<CampsiteTagListVo> findCampstieTags(){
List<CampsiteTagListVo> campsiteTagListVolist = getBaseBiz().findCampsiteTags();
return ObjectRestResponse.succ(campsiteTagListVolist);
}
} }
\ No newline at end of file
...@@ -15,4 +15,7 @@ ...@@ -15,4 +15,7 @@
<result property="isDel" column="is_del"/> <result property="isDel" column="is_del"/>
</resultMap> </resultMap>
<select id="findCampsiteTags" resultType="com.xxfc.platform.campsite.dto.CampsiteTagListDTO">
select `id`,`name` from `campsite_tag` where `is_del`=0;
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -7,7 +7,7 @@ import javax.persistence.Id; ...@@ -7,7 +7,7 @@ import javax.persistence.Id;
import java.util.Date; import java.util.Date;
@Data @Data
public class Vehicle { public class Vehicle {
/** /**
* 主键(uuid) * 主键(uuid)
*/ */
......
...@@ -74,6 +74,11 @@ public class VehiclePlatCata implements Serializable { ...@@ -74,6 +74,11 @@ public class VehiclePlatCata implements Serializable {
@Column(name = "isMore") @Column(name = "isMore")
@ApiModelProperty(value = "多选 0:单选 1:多选" ) @ApiModelProperty(value = "多选 0:单选 1:多选" )
private Integer isMore; private Integer isMore;
//是否多选
@Column(name = "start_using")
@ApiModelProperty(value = "是否作为客户端查询条件:0-否,1-是" )
private Integer startUsing;
} }
package com.xxfc.platform.vehicle.pojo;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Id;
import java.util.Date;
@Data
public class VehicleVo {
/**
* 主键(uuid)
*/
@Id
private String id;
/**
* 车辆编号,0-没有
*/
private Integer code;
/**
* 车辆状态: 1-正常运行 2-维修 3-报废
*/
private Integer status;
/**
* 车牌号,空字符串-没有
*/
@Column(name = "number_plate")
private String numberPlate;
/**
* 品牌(编码,对应关系见相关常量),0-未填写
*/
private Integer brand;
/**
* 所属分支机构(id)
*/
@Column(name = "subordinate_branch")
private Integer subordinateBranch;
/**
* 用途类型:租赁房车(1)、展车等,对应关系见车辆常量表
*/
@Column(name = "use_type")
private Integer useType;
/**
* 备注信息
*/
private String remark;
/**
* 车架号
*/
private String vin;
/**
* 保险公司,见常量表
*/
private Integer insuranceCompany;
/**
* 保险单号
*/
private String insuranceNo;
/**
* 保险开始时间
*/
private Date insuranceStartDate;
/**
* 保险结束时间
*/
private Date insuranceEndDate;
/**
* 年审时间
*/
private Date annualVerificationDate;
/**
* 保养时间
*/
private Date maintenanceDate;
/**
* 保养里程数
*/
private Integer maintenanceMileage;
/**
* 车辆所属人-类型
*/
private Integer belongTo;
/**
* 所属人 名称
*/
private String belongToName;
/**
* 行驶证路径
*/
private String drivingLicensePath;
/**
* 发动机号
*/
private String engineNum;
/**
* 生产商
*/
private String manufacturer;
/**
* 收车时间
*/
private Date receiveTime;
/**
* 最后更新里程数
*/
private Integer mileageLastUpdate;
/**
* 停车分公司id
*/
private Integer parkBranchCompanyId;
/**
* 预计目的地分公司id
*/
private Integer expectDestinationBranchCompanyId;
/**
* 车型id
*/
private Integer modelId;
/**
*片区id
*/
private Integer zoneId;
/**
* 当前页
*/
private Integer page;
/**
* 每页条数
*/
private Integer limit;
}
\ No newline at end of file
...@@ -3,6 +3,7 @@ package com.xxfc.platform.vehicle.pojo.dto; ...@@ -3,6 +3,7 @@ package com.xxfc.platform.vehicle.pojo.dto;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.List; import java.util.List;
/** /**
...@@ -18,6 +19,20 @@ public class VehicleUserScoreDTO { ...@@ -18,6 +19,20 @@ public class VehicleUserScoreDTO {
@ApiModelProperty("主键id") @ApiModelProperty("主键id")
private Integer id; private Integer id;
/**
* 订单id
*/
@ApiModelProperty(value = "订单id")
@NotNull(message = "订单id不能为空")
private Integer orderId;
/**
* 车型id
*/
@ApiModelProperty(value = "车型id")
@NotNull(message = "车型id不能为空")
private Integer modelId;
/** /**
* 评分类型 * 评分类型
*/ */
......
package com.xxfc.platform.vehicle.pojo.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author libin
* @version 1.0
* @description 车型评分
* @data 2019/6/18 15:15
*/
@Data
public class VehicleUserScoreDetailDTO {
/**
* 用户id
*/
@ApiModelProperty("用户id")
private Integer userId;
/**
* 评价分
*/
@ApiModelProperty(value = "评价分")
private Integer aveScore;
/**
* 评价
*/
@ApiModelProperty(value = "评价")
private String comment;
/**
* 图片
*/
@ApiModelProperty(value = "图片")
private String imgs;
/**
* 车型名称
*/
@ApiModelProperty(value ="车型名称")
private String modelName;
/**
* 车型关键标签
*/
@ApiModelProperty(value = "车型关键标签")
private String modelKeyWorld;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间", hidden = true )
private Long crtTime;
/**
* 评分明细
*/
@ApiModelProperty(value = "评分明细")
private String scores;
}
\ No newline at end of file
package com.xxfc.platform.vehicle.pojo.vo;
import com.xxfc.platform.vehicle.constant.VehicleScoreType;
import lombok.Data;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
/**
* @author libin
* @version 1.0
* @description TODO
* @data 2019/6/18 15:45
*/
@Data
public class ScoreTypeVo {
/**
* 评分类型
*/
@Enumerated(EnumType.STRING)
private VehicleScoreType vehicleScoreType;
/**
* 评分
*/
private int score;
}
...@@ -3,10 +3,12 @@ package com.xxfc.platform.vehicle.pojo.vo; ...@@ -3,10 +3,12 @@ package com.xxfc.platform.vehicle.pojo.vo;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.util.List;
/** /**
* @author libin * @author libin
* @version 1.0 * @version 1.0
* @description TODO * @description 订单评价vo
* @data 2019/6/18 15:26 * @data 2019/6/18 15:26
*/ */
@Data @Data
...@@ -19,10 +21,10 @@ public class VehicleUserScoreVo { ...@@ -19,10 +21,10 @@ public class VehicleUserScoreVo {
private Integer id; private Integer id;
/** /**
* 用户id * 用户id
*/ */
@ApiModelProperty(value = "用户id") @ApiModelProperty("用户id")
private Integer userId; private String userId;
/** /**
* 用户名 * 用户名
...@@ -67,10 +69,26 @@ public class VehicleUserScoreVo { ...@@ -67,10 +69,26 @@ public class VehicleUserScoreVo {
@ApiModelProperty(value = "图片") @ApiModelProperty(value = "图片")
private String imgs; private String imgs;
/**
* 车型名称
*/
@ApiModelProperty(value ="车型名称")
private String modelName;
/**
* 车型关键标签
*/
@ApiModelProperty(value = "车型关键标签")
private String modelKeyWorld;
/** /**
* 创建时间 * 创建时间
*/ */
@ApiModelProperty(value = "创建时间", hidden = true ) @ApiModelProperty(value = "创建时间", hidden = true )
private Long crtTime; private Long crtTime;
/**
* 类型-评分
*/
private List<ScoreTypeVo> scoreTypeVos;
} }
...@@ -7,8 +7,10 @@ import com.github.pagehelper.PageHelper; ...@@ -7,8 +7,10 @@ import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.exception.BaseException; import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.process.ResultCode; import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.vo.PageDataVO; import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.google.common.base.Function;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.xxfc.platform.vehicle.common.CustomIllegalParamException; import com.xxfc.platform.vehicle.common.CustomIllegalParamException;
...@@ -26,6 +28,7 @@ import com.xxfc.platform.vehicle.mapper.VehicleMapper; ...@@ -26,6 +28,7 @@ import com.xxfc.platform.vehicle.mapper.VehicleMapper;
import com.xxfc.platform.vehicle.pojo.*; import com.xxfc.platform.vehicle.pojo.*;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.BeanUtilsBean;
import org.apache.commons.beanutils.PropertyUtils; import org.apache.commons.beanutils.PropertyUtils;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.MapUtils; import org.apache.commons.collections.MapUtils;
...@@ -45,8 +48,12 @@ import org.springframework.stereotype.Service; ...@@ -45,8 +48,12 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import tk.mybatis.mapper.entity.Example;
import tk.mybatis.mapper.weekend.WeekendSqls;
import java.io.File; import java.io.File;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.util.*; import java.util.*;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -75,6 +82,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> { ...@@ -75,6 +82,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> {
@Autowired @Autowired
private RedisTemplate customRedisTemplate; private RedisTemplate customRedisTemplate;
@Value("${vehicle.baseUploadPath}") @Value("${vehicle.baseUploadPath}")
private String baseUploadPath ; private String baseUploadPath ;
...@@ -912,4 +920,97 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> { ...@@ -912,4 +920,97 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> {
PageInfo<Vehicle> usableVehicleInfo = new PageInfo<>(lists); PageInfo<Vehicle> usableVehicleInfo = new PageInfo<>(lists);
return PageDataVO.pageInfo(usableVehicleInfo); return PageDataVO.pageInfo(usableVehicleInfo);
} }
/**
* 保存
* @param vehicle
* @return
*/
@Transactional
public ObjectRestResponse save(Vehicle vehicle){
if (vehicle==null) {
ObjectRestResponse.createDefaultFail();
}
String id = vehicle.getId();
if (StringUtils.isBlank(id)) {
insertSelective(vehicle);
insertSelective(vehicle);
}else {
updateSelectiveById(vehicle);
}
return ObjectRestResponse.succ();
}
/**
* 查找
* @param vehicleVo
* @param page
* @param limit
* @return
*/
public ObjectRestResponse findListByVehicle(VehicleVo vehicleVo, Integer page, Integer limit){
Vehicle vehicle = new Vehicle();
// vehicleVo复制一份到vehicle
try {
BeanUtilsBean.getInstance().copyProperties(vehicle,vehicleVo);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
return ObjectRestResponse.createDefaultFail();
}
WeekendSqls<Vehicle> sqls = WeekendSqls.<Vehicle>custom();
//车辆状态
if (vehicle.getStatus()!=null||vehicle.getStatus()!=0){
sqls.andEqualTo(Vehicle::getStatus,vehicle.getStatus());
}
//车牌号
if (StringUtils.isBlank(vehicle.getNumberPlate())){
sqls.andEqualTo(Vehicle::getNumberPlate,vehicle.getNumberPlate());
Function<Vehicle, Integer> getStatus = Vehicle::getStatus;
}
//公司
if (vehicle.getSubordinateBranch()==null||vehicle.getSubordinateBranch()==0){
sqls.andEqualTo(Vehicle::getSubordinateBranch,vehicle.getSubordinateBranch());
}
//大区
if (vehicleVo.getZoneId()==null||vehicleVo.getZoneId()==0){
//获取大区内的公司id
Example example= Example.builder(BranchCompany.class).where(WeekendSqls.<BranchCompany>custom()
.andEqualTo(BranchCompany::getZoneId,vehicleVo.getZoneId())).build();
List<BranchCompany> branchCompanies = branchCompanyBiz.selectByExample(example);
ArrayList<Integer> bIds = new ArrayList<>();
for (BranchCompany branchCompany : branchCompanies) {
bIds.add(branchCompany.getId());
}
sqls.andIn(Vehicle::getSubordinateBranch,bIds);
}
sqls.andEqualTo(Vehicle::getStatus,0);
Example exa = Example.builder(Vehicle.class).where(sqls).build();
PageDataVO<Object> objectPageDataVO = PageDataVO.pageInfo(page, limit, () -> selectByExample(exa));
return ObjectRestResponse.succ(objectPageDataVO);
}
/**
* 查询条
* @param id
* @return
*/
public ObjectRestResponse getOneById(Integer id){
return ObjectRestResponse.succ(selectByExample(
Example.builder(Vehicle.class)
.where(WeekendSqls.<Vehicle>custom()
.andEqualTo(Vehicle::getId,id)
.andEqualTo(Vehicle::getStatus,0))
.build()));
}
} }
...@@ -58,4 +58,12 @@ public class VehicleCataBiz extends BaseBiz<VehicleCataMapper, VehicleCata> { ...@@ -58,4 +58,12 @@ public class VehicleCataBiz extends BaseBiz<VehicleCataMapper, VehicleCata> {
mapper.addCataList(vcs); mapper.addCataList(vcs);
} }
public void updateIsdalByVehicleModelId(VehicleCata vehicleCata){
mapper.updateIsdalByVehicleModelId( vehicleCata);
}
public void updateIsdalByVehicleCataId(VehicleCata vehicleCata) {
mapper.updateIsdalByVehicleCataId(vehicleCata);
}
} }
...@@ -2,7 +2,9 @@ package com.xxfc.platform.vehicle.biz; ...@@ -2,7 +2,9 @@ package com.xxfc.platform.vehicle.biz;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.exception.BaseException; import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xxfc.platform.vehicle.constant.ResCode.ResCode; import com.xxfc.platform.vehicle.constant.ResCode.ResCode;
import com.xxfc.platform.vehicle.entity.Vehicle; import com.xxfc.platform.vehicle.entity.Vehicle;
import com.xxfc.platform.vehicle.entity.VehicleDepartureLog; import com.xxfc.platform.vehicle.entity.VehicleDepartureLog;
...@@ -12,12 +14,16 @@ import com.xxfc.platform.vehicle.pojo.VehicleDepartureLogVo; ...@@ -12,12 +14,16 @@ import com.xxfc.platform.vehicle.pojo.VehicleDepartureLogVo;
import com.xxfc.platform.vehicle.pojo.VehicleDepartureStatisticDataVo; import com.xxfc.platform.vehicle.pojo.VehicleDepartureStatisticDataVo;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example;
import tk.mybatis.mapper.weekend.WeekendSqls;
import java.util.Arrays; import java.util.Arrays;
import java.util.Date;
import java.util.List; import java.util.List;
@Service @Service
public class VehicleDepartureService { public class VehicleDepartureService extends BaseBiz<VehicleDepartureLogMapper, VehicleDepartureLog> {
@Autowired @Autowired
VehicleDepartureLogMapper vehicleDepartureLogMapper; VehicleDepartureLogMapper vehicleDepartureLogMapper;
...@@ -61,4 +67,51 @@ public class VehicleDepartureService { ...@@ -61,4 +67,51 @@ public class VehicleDepartureService {
statisticData.setDepartureMileage(vehicleDepartureLogMapper.selectMileageByVehicleId(vehicle.getId())); statisticData.setDepartureMileage(vehicleDepartureLogMapper.selectMileageByVehicleId(vehicle.getId()));
return statisticData; return statisticData;
} }
@Transactional
public ObjectRestResponse save(VehicleDepartureLog vehicleDepartureLog) {
Integer id = vehicleDepartureLog.getId();
if (id == null || id == 0) {
vehicleDepartureLog.setCreateTime(new Date());
vehicleDepartureLog.setState(0);
insertSelective(vehicleDepartureLog);
} else {
vehicleDepartureLog.setUpdateTime(new Date());
updateSelectiveById(vehicleDepartureLog);
}
return ObjectRestResponse.succ();
}
public ObjectRestResponse findOne(Integer vid) throws Exception {
Example exm = Example.builder(VehicleDepartureLog.class)
.where(WeekendSqls.<VehicleDepartureLog>custom()
.andEqualTo(VehicleDepartureLog::getVehicleId, vid)
.andEqualTo(VehicleDepartureLog::getState, 0))
.orderByDesc("create_time")
.build();
List<VehicleDepartureLog> vehicleDepartureLogs = mapper.selectByExample(exm);
if (vehicleDepartureLogs.size() == 1) {
VehicleDepartureLog vehicleDepartureLog = vehicleDepartureLogs.get(1);
if (vehicleDepartureLog!=null) {
return ObjectRestResponse.succ(vehicleDepartureLog);
}
}
return ObjectRestResponse.createDefaultFail();
}
@Transactional
public ObjectRestResponse collect(VehicleDepartureLog vdl){
vdl.setArrivalTime(new Date());
vdl.setState(1);
updateSelectiveById(vdl);
return ObjectRestResponse.succ();
}
} }
...@@ -64,4 +64,13 @@ public class VehicleModelBiz extends BaseBiz<VehicleModelMapper, VehicleModel> { ...@@ -64,4 +64,13 @@ public class VehicleModelBiz extends BaseBiz<VehicleModelMapper, VehicleModel> {
} }
/**
*更新车型的评分
* @param modelId
* @param avgScore
* @return
*/
public int updateScoreByModelIdAndavgScore(Integer modelId, int avgScore) {
return mapper.updateScoreByModelIdAndavgScore(modelId,avgScore);
}
} }
\ No newline at end of file
...@@ -11,6 +11,7 @@ import com.github.wxiaoqi.security.common.util.process.ResultCode; ...@@ -11,6 +11,7 @@ import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.vo.PageDataVO; import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.vehicle.common.RestResponse; import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.constant.RedisKey; import com.xxfc.platform.vehicle.constant.RedisKey;
import com.xxfc.platform.vehicle.entity.Vehicle;
import com.xxfc.platform.vehicle.entity.VehicleCata; import com.xxfc.platform.vehicle.entity.VehicleCata;
import com.xxfc.platform.vehicle.entity.VehiclePlatCata; import com.xxfc.platform.vehicle.entity.VehiclePlatCata;
import com.xxfc.platform.vehicle.mapper.VehiclePlatCataMapper; import com.xxfc.platform.vehicle.mapper.VehiclePlatCataMapper;
...@@ -19,9 +20,13 @@ import com.xxfc.platform.vehicle.pojo.CataVo; ...@@ -19,9 +20,13 @@ import com.xxfc.platform.vehicle.pojo.CataVo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.assertj.core.util.Arrays; import org.assertj.core.util.Arrays;
import org.springframework.aop.framework.AopContext; import org.springframework.aop.framework.AopContext;
import org.springframework.aop.framework.AopProxyUtils;
import org.springframework.aop.support.AopUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example; import tk.mybatis.mapper.entity.Example;
import tk.mybatis.mapper.weekend.WeekendSqls; import tk.mybatis.mapper.weekend.WeekendSqls;
...@@ -139,7 +144,7 @@ public class VehiclePlatCataBiz extends BaseBiz<VehiclePlatCataMapper, VehiclePl ...@@ -139,7 +144,7 @@ public class VehiclePlatCataBiz extends BaseBiz<VehiclePlatCataMapper, VehiclePl
* @param cascade * @param cascade
* @return * @return
*/ */
@Transactional
public ObjectRestResponse addCascade(Cascade<VehiclePlatCata> cascade) { public ObjectRestResponse addCascade(Cascade<VehiclePlatCata> cascade) {
//取出一级标签 //取出一级标签
...@@ -147,9 +152,10 @@ public class VehiclePlatCataBiz extends BaseBiz<VehiclePlatCataMapper, VehiclePl ...@@ -147,9 +152,10 @@ public class VehiclePlatCataBiz extends BaseBiz<VehiclePlatCataMapper, VehiclePl
parent.setCrtTime(System.currentTimeMillis()); parent.setCrtTime(System.currentTimeMillis());
parent.setState(0); parent.setState(0);
//插入一级标签获得id //插入一级标签获得id
parent.setIsMore(0);
parent.setRank(0);
mapper.insertSelective(parent); mapper.insertSelective(parent);
Integer parentId = parent.getId(); Integer parentId = parent.getId();
int i = 1/0;
//取出二级标签 //取出二级标签
List<VehiclePlatCata> childrens = cascade.getChildren(); List<VehiclePlatCata> childrens = cascade.getChildren();
//逐条插入二级标签 //逐条插入二级标签
...@@ -158,12 +164,13 @@ public class VehiclePlatCataBiz extends BaseBiz<VehiclePlatCataMapper, VehiclePl ...@@ -158,12 +164,13 @@ public class VehiclePlatCataBiz extends BaseBiz<VehiclePlatCataMapper, VehiclePl
children.setState(0); children.setState(0);
children.setCrtTime(System.currentTimeMillis()); children.setCrtTime(System.currentTimeMillis());
} }
mapper.addPlatCataList(childrens); mapper.addPlatCataList(childrens);
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
} }
/** /**
* 根据父类id获取子标签 * 根据父类id获取子标签
* *
...@@ -295,9 +302,9 @@ public class VehiclePlatCataBiz extends BaseBiz<VehiclePlatCataMapper, VehiclePl ...@@ -295,9 +302,9 @@ public class VehiclePlatCataBiz extends BaseBiz<VehiclePlatCataMapper, VehiclePl
* @param cas * @param cas
* @return * @return
*/ */
@Transactional
public ObjectRestResponse updateAndAdd( Cascade<VehiclePlatCata> cas) { public ObjectRestResponse updateAndAdd( Cascade<VehiclePlatCata> cas) {
try {
if (cas==null||cas.getParent()==null) { if (cas==null||cas.getParent()==null) {
return ObjectRestResponse.createDefaultFail(); return ObjectRestResponse.createDefaultFail();
} }
...@@ -309,10 +316,6 @@ public class VehiclePlatCataBiz extends BaseBiz<VehiclePlatCataMapper, VehiclePl ...@@ -309,10 +316,6 @@ public class VehiclePlatCataBiz extends BaseBiz<VehiclePlatCataMapper, VehiclePl
return updateCascade(cas); return updateCascade(cas);
} }
} catch (Exception e) {
e.printStackTrace();
return ObjectRestResponse.createDefaultFail();
}
} }
...@@ -322,7 +325,7 @@ public class VehiclePlatCataBiz extends BaseBiz<VehiclePlatCataMapper, VehiclePl ...@@ -322,7 +325,7 @@ public class VehiclePlatCataBiz extends BaseBiz<VehiclePlatCataMapper, VehiclePl
* @param cas * @param cas
* @return * @return
*/ */
@Transactional
public ObjectRestResponse updateCascade(Cascade<VehiclePlatCata> cas) { public ObjectRestResponse updateCascade(Cascade<VehiclePlatCata> cas) {
try { try {
...@@ -341,7 +344,7 @@ public class VehiclePlatCataBiz extends BaseBiz<VehiclePlatCataMapper, VehiclePl ...@@ -341,7 +344,7 @@ public class VehiclePlatCataBiz extends BaseBiz<VehiclePlatCataMapper, VehiclePl
//遍历 //遍历
for (VehiclePlatCata child : children) { for (VehiclePlatCata child : children) {
//判断子标签是更新还是新增 //判断子标签是更新还是新增
if (child.getId()==null){ if (child.getId()==null||child.getId()==0){
child.setState(0); child.setState(0);
child.setUpdTime(System.currentTimeMillis()); child.setUpdTime(System.currentTimeMillis());
//添加 //添加
...@@ -353,7 +356,8 @@ public class VehiclePlatCataBiz extends BaseBiz<VehiclePlatCataMapper, VehiclePl ...@@ -353,7 +356,8 @@ public class VehiclePlatCataBiz extends BaseBiz<VehiclePlatCataMapper, VehiclePl
VehicleCata vehicleCata = new VehicleCata(); VehicleCata vehicleCata = new VehicleCata();
vehicleCata.setCataId(id); vehicleCata.setCataId(id);
//修改车型和标签的中间表 //修改车型和标签的中间表
vehicleCataBiz.delete(vehicleCata); vehicleCata.setIsdel(1);
vehicleCataBiz.updateIsdalByVehicleCataId(vehicleCata);
} }
//更新 //更新
...@@ -405,4 +409,57 @@ public class VehiclePlatCataBiz extends BaseBiz<VehiclePlatCataMapper, VehiclePl ...@@ -405,4 +409,57 @@ public class VehiclePlatCataBiz extends BaseBiz<VehiclePlatCataMapper, VehiclePl
return ObjectRestResponse.succ(vehiclePlatCatas); return ObjectRestResponse.succ(vehiclePlatCatas);
} }
/**
* 删除一级标签及其子标签
* @param id
* @return
*/
@Transactional
public ObjectRestResponse deleteCascadeById(Integer id){
//修改一级标签
VehiclePlatCata vehiclePlatCata = new VehiclePlatCata();
vehiclePlatCata.setId(id);
vehiclePlatCata.setState(1);
updateSelectiveById(vehiclePlatCata);
//修改子标签
VehiclePlatCata vpc = new VehiclePlatCata();
vpc.setState(1);
mapper.updateByExampleSelective(vpc,Example.builder(VehiclePlatCata.class)
.andWhere(WeekendSqls.<VehiclePlatCata>custom()
.andEqualTo(VehiclePlatCata::getParentId,id)).build());
return ObjectRestResponse.succ();
}
/**
* 修改客户端查询条件
* @param id
* @param startUsing
* @return
*/
@Transactional
public ObjectRestResponse setStartUsingById(Integer id, Integer startUsing){
VehiclePlatCata vehiclePlatCata = new VehiclePlatCata();
vehiclePlatCata.setId(id);
vehiclePlatCata.setStartUsing(startUsing);
updateSelectiveById(vehiclePlatCata);
return ObjectRestResponse.succ();
}
/**
* 修改单选还是多选
* @param id
* @param isMore
* @return
*/
@Transactional
public ObjectRestResponse setIsore(Integer id, Integer isMore){
VehiclePlatCata vehiclePlatCata = new VehiclePlatCata();
vehiclePlatCata.setId(id);
vehiclePlatCata.setIsMore(isMore);
updateSelectiveById(vehiclePlatCata);
return ObjectRestResponse.succ();
}
} }
package com.xxfc.platform.vehicle.biz; package com.xxfc.platform.vehicle.biz;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.github.wxiaoqi.security.admin.feign.UserFeign; import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO; import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
import com.github.wxiaoqi.security.admin.vo.AppUserVo;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.vo.PageDataVO; import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.vehicle.entity.VehicleUserScore; import com.xxfc.platform.vehicle.entity.VehicleUserScore;
import com.xxfc.platform.vehicle.mapper.VehicleUserScoreMapper; import com.xxfc.platform.vehicle.mapper.VehicleUserScoreMapper;
import com.xxfc.platform.vehicle.pojo.dto.ScoreTypeDTO; import com.xxfc.platform.vehicle.pojo.dto.ScoreTypeDTO;
import com.xxfc.platform.vehicle.pojo.dto.VehicleUserScoreDTO; import com.xxfc.platform.vehicle.pojo.dto.VehicleUserScoreDTO;
import com.xxfc.platform.vehicle.pojo.dto.VehicleUserScoreDetailDTO;
import com.xxfc.platform.vehicle.pojo.dto.VehicleUserScoreListDTO; import com.xxfc.platform.vehicle.pojo.dto.VehicleUserScoreListDTO;
import com.xxfc.platform.vehicle.pojo.vo.ScoreTypeVo;
import com.xxfc.platform.vehicle.pojo.vo.VehicleUserScoreVo; import com.xxfc.platform.vehicle.pojo.vo.VehicleUserScoreVo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.time.Instant; import java.time.Instant;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -32,16 +44,48 @@ import java.util.stream.Collectors; ...@@ -32,16 +44,48 @@ import java.util.stream.Collectors;
@Slf4j @Slf4j
public class VehicleUserScoreBiz extends BaseBiz<VehicleUserScoreMapper, VehicleUserScore> { public class VehicleUserScoreBiz extends BaseBiz<VehicleUserScoreMapper, VehicleUserScore> {
@Resource
private UserFeign userFeign;
@Autowired
private VehicleModelBiz vehicleModelBiz;
/** /**
* 根据车型id查询 * 根据车型id查询
* @param modelId * @param modelId
* @return * @return
*/ */
public PageDataVO<VehicleUserScoreVo> findVehicleUserScorePageByModelId(Integer modelId,Integer pageNo,Integer pageSize) { public PageDataVO<VehicleUserScoreVo> findVehicleUserScorePageByModelId(Integer modelId,Integer pageNo,Integer pageSize) {
PageDataVO<VehicleUserScoreVo> pageDataVO = new PageDataVO<>();
//根据模型id查找 //根据模型id查找
PageDataVO<VehicleUserScoreListDTO> vehicleUserScoreDTOPageDataVO = PageDataVO.pageInfo(pageNo,pageSize,()->mapper.findyByModelIdAndApproved(modelId,1)); PageDataVO<VehicleUserScoreListDTO> vehicleUserScoreDTOPageDataVO = PageDataVO.pageInfo(pageNo,pageSize,()->mapper.findyByModelIdAndApproved(modelId,1));
List<Integer> userIds = vehicleUserScoreDTOPageDataVO.getData().stream().map(VehicleUserScoreListDTO::getUserId).collect(Collectors.toList()); List<VehicleUserScoreListDTO> dataVOData = vehicleUserScoreDTOPageDataVO.getData();
return null; if (CollectionUtils.isEmpty(dataVOData)){
return pageDataVO;
}
if (log.isDebugEnabled()){
log.debug("根据车型id查找出的评价:【{}】",dataVOData);
}
//设置用户信息
List<Integer> userIds = dataVOData.stream().map(VehicleUserScoreListDTO::getUserId).distinct().collect(Collectors.toList());
List<AppUserVo> appUserVos = userFeign.getByUserIds(userIds).getData();
if (log.isDebugEnabled()){
log.debug("根据用户ids查询出用户信息:【{}】",appUserVos);
}
Map<Integer, AppUserVo> userMap = appUserVos.stream().collect(Collectors.toMap(AppUserVo::getUserid, Function.identity()));
List<VehicleUserScoreVo> vehicleUserScoreVos = dataVOData.stream().map(vehicleUserScoreListDTO -> {
VehicleUserScoreVo vehicleUserScoreVo = new VehicleUserScoreVo();
BeanUtils.copyProperties(vehicleUserScoreListDTO, vehicleUserScoreVo);
vehicleUserScoreVo.setUserName(userMap.get(vehicleUserScoreListDTO.getUserId()).getNickname());
vehicleUserScoreVo.setHeadUrl(userMap.get(vehicleUserScoreListDTO.getUserId()).getHeadimgurl());
return vehicleUserScoreVo;
}).sorted(Comparator.comparing(VehicleUserScoreVo::getCrtTime).reversed()).collect(Collectors.toList());
//组装数据
pageDataVO.setPageNum(vehicleUserScoreDTOPageDataVO.getPageNum());
pageDataVO.setPageSize(vehicleUserScoreDTOPageDataVO.getPageSize());
pageDataVO.setTotalCount(vehicleUserScoreDTOPageDataVO.getTotalCount());
pageDataVO.setTotalPage(vehicleUserScoreDTOPageDataVO.getTotalPage());
pageDataVO.setData(vehicleUserScoreVos);
return pageDataVO;
} }
/** /**
...@@ -51,18 +95,59 @@ public class VehicleUserScoreBiz extends BaseBiz<VehicleUserScoreMapper, Vehicle ...@@ -51,18 +95,59 @@ public class VehicleUserScoreBiz extends BaseBiz<VehicleUserScoreMapper, Vehicle
*/ */
public int saveVehicleUserScore(VehicleUserScoreDTO vehicleUserScoreDTO, AppUserDTO appUserDTO) { public int saveVehicleUserScore(VehicleUserScoreDTO vehicleUserScoreDTO, AppUserDTO appUserDTO) {
if (log.isDebugEnabled()){ if (log.isDebugEnabled()){
log.debug("用户:{},评分的数据:【{}】",appUserDTO.getNickname(),vehicleUserScoreDTO); log.debug("用户:【{}】,评分的数据:【{}】",appUserDTO.getNickname(),vehicleUserScoreDTO);
} }
vehicleUserScoreDTO.setCrtTime(Instant.now().toEpochMilli()); vehicleUserScoreDTO.setCrtTime(Instant.now().toEpochMilli());
List<ScoreTypeDTO> scoretype = vehicleUserScoreDTO.getScoretype(); List<ScoreTypeDTO> scoretype = vehicleUserScoreDTO.getScoretype();
//评分明细 int avgScore =0;
vehicleUserScoreDTO.setComment(JSONObject.toJSONString(scoretype)); if (CollectionUtils.isNotEmpty(scoretype)) {
//计算平均分值 //评分明细
double avgScore = scoretype.stream().mapToInt(ScoreTypeDTO::getScore).average().getAsDouble(); vehicleUserScoreDTO.setScores(JSONObject.toJSONString(scoretype));
//计算平均分值
double avgScored = scoretype.stream().mapToInt(ScoreTypeDTO::getScore).average().getAsDouble();
avgScore = Long.valueOf(Math.round(avgScored)).intValue();
//更改车型的评分
if (0 != avgScore) {
vehicleModelBiz.updateScoreByModelIdAndavgScore(vehicleUserScoreDTO.getModelId(), avgScore);
}
}
VehicleUserScore vehicleUserScore = new VehicleUserScore(); VehicleUserScore vehicleUserScore = new VehicleUserScore();
BeanUtils.copyProperties(vehicleUserScoreDTO,vehicleUserScore); BeanUtils.copyProperties(vehicleUserScoreDTO,vehicleUserScore);
vehicleUserScore.setAveScore(Long.valueOf(Math.round(avgScore)).intValue()); vehicleUserScore.setAveScore(avgScore);
vehicleUserScore.setUserId(appUserDTO.getUserid()); vehicleUserScore.setUserId(appUserDTO.getUserid());
vehicleUserScore.setUpdTime(Instant.now().toEpochMilli());
return mapper.insertSelective(vehicleUserScore); return mapper.insertSelective(vehicleUserScore);
} }
/**
* 根据订单id查询订单评价
* @param orderId
* @return
*/
public VehicleUserScoreVo findVehicleUserScoreDetailByOrderId(Integer orderId) {
VehicleUserScoreVo vehicleUserScoreVo = new VehicleUserScoreVo();
//根据订单id查询
VehicleUserScoreDetailDTO vehicleUserScoreDetailDTO = mapper.findVehicleUserScoreDetailByOrderId(orderId);
if (log.isDebugEnabled()){
log.debug("根据订单id:【{}】查询到的订单评价内容:【{}】",orderId,vehicleUserScoreDetailDTO);
}
BeanUtils.copyProperties(vehicleUserScoreDetailDTO,vehicleUserScoreVo);
//评分明细数据转换
String scores = vehicleUserScoreDetailDTO.getScores();
if (StringUtils.isNotEmpty(scores)){
List<ScoreTypeVo> typeVos = JSONObject.parseObject(scores, new TypeReference<List<ScoreTypeVo>>() {});
vehicleUserScoreVo.setScoreTypeVos(typeVos);
}
//根据用户id查询用户信息
ObjectRestResponse<List<AppUserVo>> appuserResponse = userFeign.getByUserIds(Arrays.asList(vehicleUserScoreDetailDTO.getUserId()));
if (log.isDebugEnabled()){
log.debug("根据用户id:【{}】查询到的用户信息:【{}】",vehicleUserScoreDetailDTO.getUserId(),appuserResponse.getData());
}
AppUserVo appUserVo = appuserResponse.getData().get(0);
vehicleUserScoreVo.setUserName(appUserVo.getNickname());
vehicleUserScoreVo.setHeadUrl(appUserVo.getHeadimgurl());
return vehicleUserScoreVo;
}
} }
\ No newline at end of file
...@@ -2,6 +2,7 @@ package com.xxfc.platform.vehicle.mapper; ...@@ -2,6 +2,7 @@ package com.xxfc.platform.vehicle.mapper;
import com.xxfc.platform.vehicle.entity.VehicleCata; import com.xxfc.platform.vehicle.entity.VehicleCata;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.Mapper;
import java.util.List; import java.util.List;
...@@ -24,4 +25,7 @@ public interface VehicleCataMapper extends Mapper<VehicleCata> { ...@@ -24,4 +25,7 @@ public interface VehicleCataMapper extends Mapper<VehicleCata> {
VehicleCata getOne(@Param("vehicleModelId")Integer vehicleModelId,@Param("cataId")Integer cataId ); VehicleCata getOne(@Param("vehicleModelId")Integer vehicleModelId,@Param("cataId")Integer cataId );
void updateIsdalByVehicleModelId(VehicleCata vehicleCata);
void updateIsdalByVehicleCataId(VehicleCata vehicleCata);
} }
...@@ -4,10 +4,11 @@ import com.xxfc.platform.vehicle.entity.VehicleDepartureLog; ...@@ -4,10 +4,11 @@ import com.xxfc.platform.vehicle.entity.VehicleDepartureLog;
import com.xxfc.platform.vehicle.pojo.VehicleDepartureLogVo; import com.xxfc.platform.vehicle.pojo.VehicleDepartureLogVo;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.BaseMapper; import tk.mybatis.mapper.common.BaseMapper;
import tk.mybatis.mapper.common.Mapper;
import java.util.List; import java.util.List;
public interface VehicleDepartureLogMapper extends BaseMapper<VehicleDepartureLog> { public interface VehicleDepartureLogMapper extends BaseMapper<VehicleDepartureLog>, Mapper<VehicleDepartureLog> {
VehicleDepartureLog selectLastByVehicleId(String vehicleId); VehicleDepartureLog selectLastByVehicleId(String vehicleId);
......
...@@ -3,6 +3,7 @@ package com.xxfc.platform.vehicle.mapper; ...@@ -3,6 +3,7 @@ package com.xxfc.platform.vehicle.mapper;
import com.xxfc.platform.vehicle.entity.VehicleModel; import com.xxfc.platform.vehicle.entity.VehicleModel;
import com.xxfc.platform.vehicle.pojo.VehicleModelQueryCondition; import com.xxfc.platform.vehicle.pojo.VehicleModelQueryCondition;
import com.xxfc.platform.vehicle.pojo.VehicleModelVo; import com.xxfc.platform.vehicle.pojo.VehicleModelVo;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.Mapper;
import java.util.List; import java.util.List;
...@@ -18,4 +19,11 @@ public interface VehicleModelMapper extends Mapper<VehicleModel> { ...@@ -18,4 +19,11 @@ public interface VehicleModelMapper extends Mapper<VehicleModel> {
List<VehicleModelVo> findVehicleModelPage(VehicleModelQueryCondition vmqc); List<VehicleModelVo> findVehicleModelPage(VehicleModelQueryCondition vmqc);
/**
* 根据车型id和车型某个订单的评价的平均分值计算
* @param modelId
* @param avgScore
* @return
*/
int updateScoreByModelIdAndavgScore(@Param("modelId") Integer modelId, @Param("avgScore") int avgScore);
} }
package com.xxfc.platform.vehicle.mapper; package com.xxfc.platform.vehicle.mapper;
import com.xxfc.platform.vehicle.entity.VehicleUserScore; import com.xxfc.platform.vehicle.entity.VehicleUserScore;
import com.xxfc.platform.vehicle.pojo.dto.VehicleUserScoreDetailDTO;
import com.xxfc.platform.vehicle.pojo.dto.VehicleUserScoreListDTO; import com.xxfc.platform.vehicle.pojo.dto.VehicleUserScoreListDTO;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Select;
...@@ -25,4 +26,11 @@ public interface VehicleUserScoreMapper extends Mapper<VehicleUserScore> { ...@@ -25,4 +26,11 @@ public interface VehicleUserScoreMapper extends Mapper<VehicleUserScore> {
*/ */
@Select("select `user_id` as `userId`,`comment` as `comment`,`ave_score` as `aveScore`,`is_anony` as `isAnony`,`imgs` as `imgs`,`crt_time` as `crtTime` from `vehicle_user_score` where `model_id`=#{modelId} and `status`=#{status}") @Select("select `user_id` as `userId`,`comment` as `comment`,`ave_score` as `aveScore`,`is_anony` as `isAnony`,`imgs` as `imgs`,`crt_time` as `crtTime` from `vehicle_user_score` where `model_id`=#{modelId} and `status`=#{status}")
List<VehicleUserScoreListDTO> findyByModelIdAndApproved(@Param("modelId") Integer modelId, @Param("status") Integer status); List<VehicleUserScoreListDTO> findyByModelIdAndApproved(@Param("modelId") Integer modelId, @Param("status") Integer status);
/**
* 根据订单查询评价
* @param orderId
* @return
*/
VehicleUserScoreDetailDTO findVehicleUserScoreDetailByOrderId(Integer orderId);
} }
...@@ -10,8 +10,11 @@ import com.xxfc.platform.vehicle.common.RestResponse; ...@@ -10,8 +10,11 @@ import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.common.VehicleBaseController; import com.xxfc.platform.vehicle.common.VehicleBaseController;
import com.xxfc.platform.vehicle.entity.VehiclePlatCata; import com.xxfc.platform.vehicle.entity.VehiclePlatCata;
import com.xxfc.platform.vehicle.pojo.*; import com.xxfc.platform.vehicle.pojo.*;
import lombok.Data;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.annotations.Update;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import sun.java2d.pipe.AATextRenderer; import sun.java2d.pipe.AATextRenderer;
...@@ -62,7 +65,7 @@ public class VehicleCataController extends VehicleBaseController<VehiclePlatCata ...@@ -62,7 +65,7 @@ public class VehicleCataController extends VehicleBaseController<VehiclePlatCata
* @return * @return
*/ */
@GetMapping(value = "/add/fingCatasByParentId/{parentId}") @GetMapping(value = "/add/fingCatasByParentId/{parentId}")
public ObjectRestResponse fingCatasByParentId(@PathVariable Integer parentId ){ public ObjectRestResponse fingCatasByParentId(@PathVariable("parentId") Integer parentId ){
return baseBiz.fingCatasByParentId(parentId); return baseBiz.fingCatasByParentId(parentId);
} }
...@@ -73,7 +76,7 @@ public class VehicleCataController extends VehicleBaseController<VehiclePlatCata ...@@ -73,7 +76,7 @@ public class VehicleCataController extends VehicleBaseController<VehiclePlatCata
* @return * @return
*/ */
@GetMapping(value = "/add/findCascade/{id}") @GetMapping(value = "/add/findCascade/{id}")
public ObjectRestResponse findCascade(@PathVariable Integer id){ public ObjectRestResponse findCascade(@PathVariable("id") Integer id){
return baseBiz.findCascade(id); return baseBiz.findCascade(id);
...@@ -87,14 +90,16 @@ public class VehicleCataController extends VehicleBaseController<VehiclePlatCata ...@@ -87,14 +90,16 @@ public class VehicleCataController extends VehicleBaseController<VehiclePlatCata
* @param sort 分类 0-增加车型页面,1-标签管理页面 * @param sort 分类 0-增加车型页面,1-标签管理页面
* @return * @return
*/ */
@GetMapping(value = "/add/fingCatasByParentId/{page}/{limit}/{sort}") @GetMapping(value = "/add/getCascades/{page}/{limit}/{sort}")
public ObjectRestResponse getCascades( public ObjectRestResponse getCascades(
@PathVariable Integer page // @PathVariable("page") Integer page
,@PathVariable Integer limit // ,@PathVariable("limit") Integer limit
,@PathVariable Integer sort){ // ,@PathVariable("sort") Integer sort){
@PathVariable Integer page
,@PathVariable Integer limit
,@PathVariable Integer sort){
return baseBiz.getCascades(page,limit,sort); return baseBiz.getCascades(page,limit,sort);
} }
...@@ -105,14 +110,11 @@ public class VehicleCataController extends VehicleBaseController<VehiclePlatCata ...@@ -105,14 +110,11 @@ public class VehicleCataController extends VehicleBaseController<VehiclePlatCata
* @return * @return
*/ */
@PostMapping(value = "/add/addCascade/") @PostMapping(value = "/add/addCascade/")
@Transactional
public ObjectRestResponse addCascade(@RequestBody Cascade<VehiclePlatCata> cascade){ public ObjectRestResponse addCascade(@RequestBody Cascade<VehiclePlatCata> cascade){
try {
return baseBiz.addCascade(cascade); return baseBiz.addCascade(cascade);
} catch (Exception e) {
e.printStackTrace();
return ObjectRestResponse.createDefaultFail();
}
} }
...@@ -136,7 +138,7 @@ public class VehicleCataController extends VehicleBaseController<VehiclePlatCata ...@@ -136,7 +138,7 @@ public class VehicleCataController extends VehicleBaseController<VehiclePlatCata
* @return * @return
*/ */
@PutMapping("/add/updateParentRank/{id}/{rank}") @PutMapping("/add/updateParentRank/{id}/{rank}")
public ObjectRestResponse updateParentRank(@PathVariable Integer id,@PathVariable Integer rank){ public ObjectRestResponse updateParentRank(@PathVariable("id") Integer id,@PathVariable("rank") Integer rank){
return baseBiz.updateParentRank(id,rank); return baseBiz.updateParentRank(id,rank);
} }
...@@ -152,6 +154,40 @@ public class VehicleCataController extends VehicleBaseController<VehiclePlatCata ...@@ -152,6 +154,40 @@ public class VehicleCataController extends VehicleBaseController<VehiclePlatCata
return baseBiz.getCatasByIds(ids); return baseBiz.getCatasByIds(ids);
} }
/**
* 删除一级标签及其子标签
* @param id 标签id
* @return
*/
@DeleteMapping("/add/deleteCascadeById/{id}")
public ObjectRestResponse deleteCascadeById(@PathVariable("id") Integer id){
return baseBiz.deleteCascadeById(id);
}
/**
* 修改客户端查询条件
* @param id
* @param startUsing
* @return
*/
@PutMapping("/add/setStartUsingById/{id}/{startUsing}")
public ObjectRestResponse setStartUsingById(@PathVariable("id") Integer id,@PathVariable("startUsing") Integer startUsing){
return baseBiz.setStartUsingById(id,startUsing);
}
/**
* 修改单选还是多选
* @param id
* @param isMore
* @return
*/
@PutMapping("/add/setIsMore/{id}/{isMore}")
public ObjectRestResponse setIsMore (@PathVariable("id") Integer id,@PathVariable("isMore") Integer isMore){
return baseBiz.setIsore(id,isMore);
}
/* @RequestMapping(value = "/{id}", method = RequestMethod.GET) /* @RequestMapping(value = "/{id}", method = RequestMethod.GET)
public RestResponse<Vehicle> get(@PathVariable String id) { public RestResponse<Vehicle> get(@PathVariable String id) {
return RestResponse.data(baseBiz.get(id)); return RestResponse.data(baseBiz.get(id));
......
...@@ -51,9 +51,9 @@ import static com.xxfc.platform.vehicle.constant.VehicleConstant.USER_APP; ...@@ -51,9 +51,9 @@ import static com.xxfc.platform.vehicle.constant.VehicleConstant.USER_APP;
@RestController @RestController
@RequestMapping("/vehicleInfo") @RequestMapping("/vehicleInfo")
@Slf4j @Slf4j
@IgnoreClientToken @IgnoreClientToken
@Api(value="车辆管理controller",tags={"车辆管理接口"}) @Api(value = "车辆管理controller", tags = {"车辆管理接口"})
public class VehicleController extends BaseController<VehicleBiz> { public class VehicleController extends BaseController<VehicleBiz> {
@Autowired @Autowired
...@@ -301,14 +301,14 @@ public class VehicleController extends BaseController<VehicleBiz> { ...@@ -301,14 +301,14 @@ public class VehicleController extends BaseController<VehicleBiz> {
public ObjectRestResponse<PageDataVO<UsableVehicleModelVO>> rentUsableVehicle(UsableVeicleDTO dto) throws Exception { public ObjectRestResponse<PageDataVO<UsableVehicleModelVO>> rentUsableVehicle(UsableVeicleDTO dto) throws Exception {
//根据时间 获得 可用车辆 //根据时间 获得 可用车辆
//结合车型 //结合车型
if(StringUtils.isNotBlank(dto.getCatasStr())) { if (StringUtils.isNotBlank(dto.getCatasStr())) {
List<Integer> catasIds = Pattern.compile(",").splitAsStream(dto.getCatasStr()).map((s)-> Integer.parseInt(s)).collect(Collectors.toList()); List<Integer> catasIds = Pattern.compile(",").splitAsStream(dto.getCatasStr()).map((s) -> Integer.parseInt(s)).collect(Collectors.toList());
List<VehiclePlatCata> catas = vehiclePlatCataBiz.selectByExample(new Example.Builder(VehiclePlatCata.class) List<VehiclePlatCata> catas = vehiclePlatCataBiz.selectByExample(new Example.Builder(VehiclePlatCata.class)
.where(WeekendSqls.<VehiclePlatCata>custom().andIn(VehiclePlatCata::getId, catasIds)).build()); .where(WeekendSqls.<VehiclePlatCata>custom().andIn(VehiclePlatCata::getId, catasIds)).build());
Map<Integer, List<VehiclePlatCata>> vpcMap = new HashMap<Integer, List<VehiclePlatCata>>(); Map<Integer, List<VehiclePlatCata>> vpcMap = new HashMap<Integer, List<VehiclePlatCata>>();
for(VehiclePlatCata vpc : catas) { for (VehiclePlatCata vpc : catas) {
List<VehiclePlatCata> vpcs = vpcMap.get(vpc.getParentId()); List<VehiclePlatCata> vpcs = vpcMap.get(vpc.getParentId());
if(null == vpcs) { if (null == vpcs) {
vpcs = new ArrayList<VehiclePlatCata>(); vpcs = new ArrayList<VehiclePlatCata>();
} }
vpcs.add(vpc); vpcs.add(vpc);
...@@ -347,14 +347,14 @@ public class VehicleController extends BaseController<VehicleBiz> { ...@@ -347,14 +347,14 @@ public class VehicleController extends BaseController<VehicleBiz> {
//默认USER_APP 预约 //默认USER_APP 预约
Integer operatorId = USER_APP; Integer operatorId = USER_APP;
String userName = dto.getUserName(); String userName = dto.getUserName();
//BaseContextHandler.getName(); //BaseContextHandler.getName();
BookVehicleVO bookVehicleVo = BeanUtil.toBean(dto, BookVehicleVO.class); BookVehicleVO bookVehicleVo = BeanUtil.toBean(dto, BookVehicleVO.class);
dto.setLimit(1); dto.setLimit(1);
dto.setPage(1); dto.setPage(1);
//查询可车辆信息 //查询可车辆信息
PageDataVO<Vehicle> pageDataVO = vehicleBiz.searchUsableVehicle(dto); PageDataVO<Vehicle> pageDataVO = vehicleBiz.searchUsableVehicle(dto);
if(pageDataVO.getData().size() <= 0) { if (pageDataVO.getData().size() <= 0) {
throw new BaseException(ResultCode.NOTEXIST_CODE); throw new BaseException(ResultCode.NOTEXIST_CODE);
} }
bookVehicleVo.setVehicle(pageDataVO.getData().get(0).getId()); bookVehicleVo.setVehicle(pageDataVO.getData().get(0).getId());
...@@ -364,4 +364,41 @@ public class VehicleController extends BaseController<VehicleBiz> { ...@@ -364,4 +364,41 @@ public class VehicleController extends BaseController<VehicleBiz> {
return ObjectRestResponse.succ(bookVehicleVo.getVehicle()); return ObjectRestResponse.succ(bookVehicleVo.getVehicle());
} }
/**
* 保存
*
* @param vehicle
* @return
*/
@PostMapping("/add/seva")
public ObjectRestResponse seva(Vehicle vehicle) {
return baseBiz.save(vehicle);
}
/**
* 查找
* @param vehicleVo
* @param page
* @param limit
* @return
*/
@PostMapping("/add/findListByVehicle/{page}/{limit}")
public ObjectRestResponse findListByVehicle(
@RequestBody VehicleVo vehicleVo
, @PathVariable("page") Integer page
, @PathVariable("limit") Integer limit) {
return baseBiz.findListByVehicle(vehicleVo,page,limit);
}
/**
* 查询一条
* @param id
* @return
*/
@GetMapping("/add/getOneById/{id}")
public ObjectRestResponse getOneById(@PathVariable("id")Integer id){
return baseBiz.getOneById(id);
}
} }
...@@ -4,14 +4,14 @@ import com.github.wxiaoqi.security.admin.feign.UserFeign; ...@@ -4,14 +4,14 @@ import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.UserDTO; import com.github.wxiaoqi.security.admin.feign.dto.UserDTO;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken; import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken;
import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig; import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xxfc.platform.vehicle.biz.VehicleBiz; import com.xxfc.platform.vehicle.biz.VehicleBiz;
import com.xxfc.platform.vehicle.biz.VehicleDepartureService; import com.xxfc.platform.vehicle.biz.VehicleDepartureService;
import com.xxfc.platform.vehicle.common.RestResponse; import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.constant.ResCode.ResCode; import com.xxfc.platform.vehicle.constant.ResCode.ResCode;
import com.xxfc.platform.vehicle.entity.VehicleDepartureLog;
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.*;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.List; import java.util.List;
...@@ -70,5 +70,38 @@ public class VehicleDepartureController { ...@@ -70,5 +70,38 @@ public class VehicleDepartureController {
return RestResponse.suc(vehicleDepartureService.statistic(numberPlate)); return RestResponse.suc(vehicleDepartureService.statistic(numberPlate));
} }
/**
* 保存(出车)
* @param vehicleDepartureLog
* @return
*/
@PostMapping("/app/save")
public ObjectRestResponse save(@RequestBody VehicleDepartureLog vehicleDepartureLog){
return vehicleDepartureService.save(vehicleDepartureLog);
}
/**
* 查询一条
* @param vid 车辆id
* @return
* @throws Exception
*/
@GetMapping("/app/findOne/{id}")
public ObjectRestResponse findOne(@PathVariable Integer vid) throws Exception {
return vehicleDepartureService.findOne(vid);
}
/**
*
* 收车
* @param vdl
* @return
* @throws Exception
*/
@PutMapping("/app/collect")
public ObjectRestResponse collect(@RequestBody VehicleDepartureLog vdl) throws Exception {
return vehicleDepartureService.collect(vdl);
}
} }
...@@ -7,6 +7,7 @@ import com.github.wxiaoqi.security.common.exception.BaseException; ...@@ -7,6 +7,7 @@ import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController; import com.github.wxiaoqi.security.common.rest.BaseController;
import com.github.wxiaoqi.security.common.util.process.ResultCode; import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.xxfc.platform.vehicle.biz.VehicleBiz;
import com.xxfc.platform.vehicle.biz.VehicleCataBiz; import com.xxfc.platform.vehicle.biz.VehicleCataBiz;
import com.xxfc.platform.vehicle.biz.VehicleModelBiz; import com.xxfc.platform.vehicle.biz.VehicleModelBiz;
import com.xxfc.platform.vehicle.biz.VehiclePlatCataBiz; import com.xxfc.platform.vehicle.biz.VehiclePlatCataBiz;
...@@ -24,13 +25,17 @@ import io.swagger.annotations.ApiParam; ...@@ -24,13 +25,17 @@ import io.swagger.annotations.ApiParam;
import net.bytebuddy.implementation.bytecode.Throw; import net.bytebuddy.implementation.bytecode.Throw;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Select;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import tk.mybatis.mapper.entity.Example;
import tk.mybatis.mapper.weekend.WeekendSqls;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List;
@RestController @RestController
@RequestMapping("vehicleModel") @RequestMapping("vehicleModel")
...@@ -49,6 +54,7 @@ public class VehicleModelController extends BaseController<VehicleModelBiz, Vehi ...@@ -49,6 +54,7 @@ public class VehicleModelController extends BaseController<VehicleModelBiz, Vehi
@Autowired @Autowired
private UserFeign userFeign; private UserFeign userFeign;
//修改评分 //修改评分
@RequestMapping(value = "/app/addScore", method = RequestMethod.GET) @RequestMapping(value = "/app/addScore", method = RequestMethod.GET)
public RestResponse addScore( public RestResponse addScore(
...@@ -126,7 +132,7 @@ public class VehicleModelController extends BaseController<VehicleModelBiz, Vehi ...@@ -126,7 +132,7 @@ public class VehicleModelController extends BaseController<VehicleModelBiz, Vehi
if (StringUtils.isBlank(host)) { if (StringUtils.isBlank(host)) {
return ObjectRestResponse.createDefaultFail(); return ObjectRestResponse.createDefaultFail();
} }
//设置信息 //设置信息
vm.setCrtName(uorr.getData().getName()); vm.setCrtName(uorr.getData().getName());
vm.setCrtUser(uorr.getData().getId()); vm.setCrtUser(uorr.getData().getId());
vm.setCrtTime(new Date()); vm.setCrtTime(new Date());
...@@ -155,7 +161,7 @@ public class VehicleModelController extends BaseController<VehicleModelBiz, Vehi ...@@ -155,7 +161,7 @@ public class VehicleModelController extends BaseController<VehicleModelBiz, Vehi
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
} catch (NumberFormatException e) { } catch (NumberFormatException e) {
e.printStackTrace(); e.printStackTrace();
throw new BaseException(ResultCode.FAILED_CODE); throw new BaseException(ResultCode.FAILED_CODE);
} }
} }
...@@ -189,14 +195,14 @@ public class VehicleModelController extends BaseController<VehicleModelBiz, Vehi ...@@ -189,14 +195,14 @@ public class VehicleModelController extends BaseController<VehicleModelBiz, Vehi
vm.setUpdTime(new Date()); vm.setUpdTime(new Date());
try { try {
//修改车型 //修改车型
vehicleModelBiz.updateSelectiveById(vm); vehicleModelBiz.updateSelectiveById(vm);
VehicleCata vcDelete = new VehicleCata(); VehicleCata vcDelete = new VehicleCata();
vcDelete.setVehicleModelId(vm.getId()); vcDelete.setVehicleModelId(vm.getId());
// 删除车型对应的标签 // 删除车型对应的标签
vehicleCataBiz.delete(vcDelete); vehicleCataBiz.delete(vcDelete);
ArrayList<VehicleCata> vcs = new ArrayList<>(); ArrayList<VehicleCata> vcs = new ArrayList<>();
//从新插入车型对应的标签 //从新插入车型对应的标签
// 获取cataid // 获取cataid
String[] config = vm.getConfig().split(","); String[] config = vm.getConfig().split(",");
for (String con : config) { for (String con : config) {
...@@ -210,7 +216,7 @@ public class VehicleModelController extends BaseController<VehicleModelBiz, Vehi ...@@ -210,7 +216,7 @@ public class VehicleModelController extends BaseController<VehicleModelBiz, Vehi
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
} catch (NumberFormatException e) { } catch (NumberFormatException e) {
e.printStackTrace(); e.printStackTrace();
throw new BaseException(ResultCode.FAILED_CODE); throw new BaseException(ResultCode.FAILED_CODE);
} }
} }
...@@ -221,16 +227,37 @@ public class VehicleModelController extends BaseController<VehicleModelBiz, Vehi ...@@ -221,16 +227,37 @@ public class VehicleModelController extends BaseController<VehicleModelBiz, Vehi
@DeleteMapping(value = "/app/{id}") @DeleteMapping(value = "/app/{id}")
@ResponseBody @ResponseBody
@Transactional @Transactional
public ObjectRestResponse<VehicleModel> remove(@PathVariable int id){ public ObjectRestResponse<VehicleModel> remove(@PathVariable int id) {
try {
vehicleModelBiz.deleteById(id); //1.先判断是否有属于该车型可用的车辆,有不能删除,无可以进行删除
VehicleCata vehicleCata = new VehicleCata(); //根据车型查询对应的车辆
vehicleCata.setVehicleModelId(id); // Example exa = Example.builder(Vehicle.class).where(
vehicleCataBiz.delete(vehicleCata); // WeekendSqls.<Vehicle>custom()
return ObjectRestResponse.succ(); // .andEqualTo(Vehicle::getModelId, id)
} catch (Exception e) { // .andEqualTo(Vehicle::getStatus, 1)
e.printStackTrace(); // .orEqualTo(Vehicle::getStatus,"2")
throw new BaseException(ResultCode.FAILED_CODE); // ).build();
} //
// List<Vehicle> vehicles = vehicleBiz.selectByExample(exa);
//
// //判断是查询到对应的车辆
// if (vehicles != null) {
// ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE, "该车型,无法删除");
// }
//2.进行逻辑删除
VehicleModel vm = new VehicleModel();
vm.setId(id);
vm.setIsdel(1);
vehicleModelBiz.updateById(vm);
//3.删除车型对应的标签
VehicleCata vehicleCata = new VehicleCata();
vehicleCata.setVehicleModelId(id);
vehicleCata.setIsdel(1);
vehicleCataBiz.updateIsdalByVehicleModelId(vehicleCata);
return ObjectRestResponse.succ();
} }
} }
\ No newline at end of file
package com.xxfc.platform.vehicle.rest; package com.xxfc.platform.vehicle.rest;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO; import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
import com.github.wxiaoqi.security.common.annotation.BeanValid;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController; import com.github.wxiaoqi.security.common.rest.BaseController;
import com.github.wxiaoqi.security.common.vo.PageDataVO; import com.github.wxiaoqi.security.common.vo.PageDataVO;
...@@ -23,10 +24,11 @@ public class VehicleUserScoreController extends BaseController<VehicleUserScoreB ...@@ -23,10 +24,11 @@ public class VehicleUserScoreController extends BaseController<VehicleUserScoreB
/** /**
* 保存评论 * 保存评论
* @param vehicleUserScoreDTO * @param vehicleUserScoreDTO
* @param appUserDTO
* @return * @return
*/ */
@PostMapping("/score") @PostMapping("/score")
public ObjectRestResponse<Void> saveVehicleUserScore(@RequestBody VehicleUserScoreDTO vehicleUserScoreDTO, AppUserDTO appUserDTO){ public ObjectRestResponse<Void> saveVehicleUserScore(@RequestBody @BeanValid VehicleUserScoreDTO vehicleUserScoreDTO, AppUserDTO appUserDTO){
int effectRows = getBaseBiz().saveVehicleUserScore(vehicleUserScoreDTO,appUserDTO); int effectRows = getBaseBiz().saveVehicleUserScore(vehicleUserScoreDTO,appUserDTO);
if (effectRows>0){ if (effectRows>0){
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
...@@ -37,13 +39,26 @@ public class VehicleUserScoreController extends BaseController<VehicleUserScoreB ...@@ -37,13 +39,26 @@ public class VehicleUserScoreController extends BaseController<VehicleUserScoreB
* 根据车型查询评论列表 根据评分时间排序 * 根据车型查询评论列表 根据评分时间排序
* *
* @param modelId * @param modelId
* @param pageNo
* @param pageSize
* @return * @return
*/ */
@GetMapping("/scores") @GetMapping("/app/unauth/scores")
public ObjectRestResponse<PageDataVO<VehicleUserScoreVo>> findVehicleUserScorePageByModelId(@RequestParam("modelId") Integer modelId, public ObjectRestResponse<PageDataVO<VehicleUserScoreVo>> findVehicleUserScorePageByModelId(@RequestParam("modelId") Integer modelId,
@RequestParam("pageNo")Integer pageNo, @RequestParam(value = "pageNo",required = false,defaultValue = "1")Integer pageNo,
@RequestParam("pageSize") Integer pageSize) { @RequestParam(value = "pageSize",required = false,defaultValue = "10") Integer pageSize) {
PageDataVO<VehicleUserScoreVo> pageDataVO = getBaseBiz().findVehicleUserScorePageByModelId(modelId,pageNo,pageSize); PageDataVO<VehicleUserScoreVo> pageDataVO = getBaseBiz().findVehicleUserScorePageByModelId(modelId,pageNo,pageSize);
return ObjectRestResponse.succ(pageDataVO); return ObjectRestResponse.succ(pageDataVO);
} }
/**
* 根据订单id查询评价详情
* @param orderId
* @return
*/
@GetMapping("/score/order/{orderId}")
public ObjectRestResponse findVehicleUserScoreDetailByOrderId(@PathVariable("orderId") Integer orderId){
VehicleUserScoreVo vehicleUserScoreVo = getBaseBiz().findVehicleUserScoreDetailByOrderId(orderId);
return ObjectRestResponse.succ(vehicleUserScoreVo);
}
} }
\ No newline at end of file
...@@ -36,5 +36,10 @@ ...@@ -36,5 +36,10 @@
</trim> </trim>
) and vehicle_model_id=#{vehicleModelId} ) and vehicle_model_id=#{vehicleModelId}
</update> </update>
<update id="updateIsdalByVehicleModelId" parameterType="com.xxfc.platform.vehicle.entity.VehicleCata">
update vehicle_cata set isdel=#{isdel} where vehicle_model_id=#{vehicleModelId}
</update>
<update id="updateIsdalByVehicleCataId" parameterType="com.xxfc.platform.vehicle.entity.VehicleCata">
update vehicle_cata set isdel=#{isdel} where cata_id=#{cataId}
</update>
</mapper> </mapper>
\ No newline at end of file
...@@ -26,4 +26,8 @@ ...@@ -26,4 +26,8 @@
</if> </if>
ORDER BY vmqc.id ASC ORDER BY vmqc.id ASC
</select> </select>
<update id="updateScoreByModelIdAndavgScore">
update `vehicle_model` set `score`=(`score`+#{avgScore})/2 where `id`=#{modelId}
</update>
</mapper> </mapper>
\ No newline at end of file
...@@ -7,12 +7,12 @@ ...@@ -7,12 +7,12 @@
<insert id="addPlatCataList" parameterType="java.util.List"> <insert id="addPlatCataList" parameterType="java.util.List">
insert into vehicle_plat_cata ( insert into vehicle_plat_cata (
parent_id,name,icon,depict,rank,level,state,crt_time,upd_time,isMore parent_id,name,icon,depict,rank,level,state,crt_time,upd_time,isMore,start_using
) VALUES ) VALUES
<foreach collection ="vpclist" item="vpc" index="index" separator =","> <foreach collection ="vpclist" item="vpc" index="index" separator =",">
(#{vpc.parentId},#{vpc.name},#{vpc.icon},#{vpc.depict} (#{vpc.parentId},#{vpc.name},#{vpc.icon},#{vpc.depict}
,#{vpc.rank},#{vpc.level},#{vpc.state},#{vpc.crtTime} ,#{vpc.rank},#{vpc.level},#{vpc.state},#{vpc.crtTime}
,#{vpc.updTime},#{vpc.isMore}) ,#{vpc.updTime},#{vpc.isMore},#{vpc.startUsing})
</foreach> </foreach>
</insert> </insert>
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<mapper namespace="com.xxfc.platform.vehicle.mapper.VehicleUserScoreMapper"> <mapper namespace="com.xxfc.platform.vehicle.mapper.VehicleUserScoreMapper">
<!-- 可根据自己的需求,是否要使用 --> <!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.xxfc.platform.vehicle.entity.VehicleUserScore" id="vehicleUserScoreMap"> <resultMap type="com.xxfc.platform.vehicle.entity.VehicleUserScore" id="vehicleUserScoreMap">
<result property="id" column="id"/> <result property="id" column="id"/>
<result property="userId" column="user_id"/> <result property="userId" column="user_id"/>
...@@ -21,4 +21,9 @@ ...@@ -21,4 +21,9 @@
<result property="isDel" column="is_del"/> <result property="isDel" column="is_del"/>
</resultMap> </resultMap>
<select id="findVehicleUserScoreDetailByOrderId"
resultType="com.xxfc.platform.vehicle.pojo.dto.VehicleUserScoreDetailDTO">
SELECT vus.user_id as `userId`,vus.ave_score as `aveScore`,vus.comment as `comment`, vus.imgs as `imgs`,vus.crt_time as `crtTime`,vus.scores as `scores`,vm.name as `modelName`,vm.keyword as `modelKeyWorld`
FROM `vehicle_user_score` as `vus` left JOIN `vehicle_model` as `vm` on vus.model_id=vm.id WHERE vus.order_id=#{orderId} ;
</select>
</mapper> </mapper>
\ No newline at end of file
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