Commit fe2cd05b authored by hezhen's avatar hezhen

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

parents 15be9e20 a03f731d
...@@ -4,6 +4,8 @@ package com.github.wxiaoqi.security.common.constant; ...@@ -4,6 +4,8 @@ package com.github.wxiaoqi.security.common.constant;
* Created by ace on 2017/8/29. * Created by ace on 2017/8/29.
*/ */
public class CommonConstants { public class CommonConstants {
public static final int SYS_TRUE = 1;
public static final int SYS_FALSE = 0;
public final static String RESOURCE_TYPE_MENU = "menu"; public final static String RESOURCE_TYPE_MENU = "menu";
public final static String RESOURCE_TYPE_BTN = "button"; public final static String RESOURCE_TYPE_BTN = "button";
// 用户token异常 // 用户token异常
......
...@@ -9,7 +9,7 @@ import org.springframework.web.bind.annotation.RestControllerAdvice; ...@@ -9,7 +9,7 @@ import org.springframework.web.bind.annotation.RestControllerAdvice;
@RestControllerAdvice("com.xxfc.platform") @RestControllerAdvice("com.xxfc.platform")
public class PlatformExceptionHandler { public class PlatformExceptionHandler {
@ExceptionHandler(value = {BaseException.class,Exception.class}) @ExceptionHandler(value = {BaseException.class})
public BaseResponse baseExceptionHandler(Exception e) { public BaseResponse baseExceptionHandler(Exception e) {
if (e instanceof BaseException){ if (e instanceof BaseException){
BaseException be = (BaseException) e; BaseException be = (BaseException) e;
......
...@@ -29,10 +29,10 @@ public class CampsiteShopCarousel implements Serializable { ...@@ -29,10 +29,10 @@ public class CampsiteShopCarousel implements Serializable {
private Integer id; private Integer id;
/** /**
* 商家id * 营地id
*/ */
@Column(name = "shop_id") @Column(name = "shop_id")
@ApiModelProperty(value = "商家id") @ApiModelProperty(value = "营地id")
private Integer shopId; private Integer shopId;
/** /**
......
...@@ -9,7 +9,7 @@ import lombok.Data; ...@@ -9,7 +9,7 @@ import lombok.Data;
/** /**
* 店铺类型表 * 店铺与类型
* *
* @author libin * @author libin
* @email 18178966185@163.com * @email 18178966185@163.com
......
...@@ -194,5 +194,12 @@ public class BaseOrder implements Serializable { ...@@ -194,5 +194,12 @@ public class BaseOrder implements Serializable {
*/ */
@Column(name = "has_discount") @Column(name = "has_discount")
@ApiModelProperty(value = "是否有优惠") @ApiModelProperty(value = "是否有优惠")
private Long hasDiscount; private Integer hasDiscount;
/**
* 是否已支付
*/
@Column(name = "has_pay")
@ApiModelProperty(value = "是否已支付")
private Integer hasPay;
} }
package com.xxfc.platform.order.entity;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.*;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 订单退款记录表
*
* @author zjw
* @email nishijjo@qq.com
* @date 2019-06-18 11:08:09
*/
@Data
@Table(name = "order_refund")
public class OrderRefund implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@Id
@GeneratedValue(generator = "JDBC")
@ApiModelProperty("主键")
private Integer id;
/**
* 订单id
*/
@Column(name = "order_id")
@ApiModelProperty(value = "订单id")
private Integer orderId;
/**
* 退款对应的流水号
*/
@Column(name = "trade_no")
@ApiModelProperty(value = "退款对应的流水号")
private Integer tradeNo;
/**
* 退款时间
*/
@Column(name = "refund_time")
@ApiModelProperty(value = "退款时间")
private Long refundTime;
/**
* 退款类型 1--订单款;2--押金
*/
@Column(name = "refund_type")
@ApiModelProperty(value = "退款类型 1--订单款;2--押金")
private Integer refundType;
/**
* 退款状态 0--失败;1--成功
*/
@Column(name = "refund_status")
@ApiModelProperty(value = "退款状态 0--失败;1--成功")
private Integer refundStatus;
/**
* 退款金额
*/
@Column(name = "refund_amount")
@ApiModelProperty(value = "退款金额")
private Integer refundAmount;
/**
* 退款说明
*/
@Column(name = "refund_desc")
@ApiModelProperty(value = "退款说明")
private String refundDesc;
/**
* 创建时间
*/
@Column(name = "crt_time")
@ApiModelProperty(value = "创建时间", hidden = true )
private Long crtTime;
}
...@@ -50,11 +50,6 @@ public class AddRentVehicleDTO{ ...@@ -50,11 +50,6 @@ public class AddRentVehicleDTO{
@ApiModelProperty(value = "还车地点") @ApiModelProperty(value = "还车地点")
private String endAddr; private String endAddr;
//费用详情
@Column(name = "cost_detail")
@ApiModelProperty(value = "费用详情")
private String costDetail;
//取车城市编号 //取车城市编号
@Column(name = "start_city") @Column(name = "start_city")
@ApiModelProperty(value = "取车城市编号") @ApiModelProperty(value = "取车城市编号")
......
...@@ -17,6 +17,8 @@ public class RentVehiclePriceVO extends OrderPriceVO{ ...@@ -17,6 +17,8 @@ public class RentVehiclePriceVO extends OrderPriceVO{
BigDecimal deposit; BigDecimal deposit;
@ApiModelProperty(value = "天数") @ApiModelProperty(value = "天数")
Integer dayNum; Integer dayNum;
@ApiModelProperty(value = "车辆天数")
Integer vehicleDayNum;
@ApiModelProperty(value = "车辆个数") @ApiModelProperty(value = "车辆个数")
Integer vehicleNum; Integer vehicleNum;
@ApiModelProperty(value = "司机个数") @ApiModelProperty(value = "司机个数")
......
...@@ -6,15 +6,23 @@ import com.github.wxiaoqi.security.common.util.process.ResultCode; ...@@ -6,15 +6,23 @@ import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.xxfc.platform.order.contant.enumerate.OrderStatusEnum; import com.xxfc.platform.order.contant.enumerate.OrderStatusEnum;
import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum; import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum;
import com.xxfc.platform.order.entity.BaseOrder; import com.xxfc.platform.order.entity.BaseOrder;
import com.xxfc.platform.order.entity.OrderRefund;
import com.xxfc.platform.order.entity.OrderRentVehicleDetail;
import com.xxfc.platform.order.mapper.BaseOrderMapper; import com.xxfc.platform.order.mapper.BaseOrderMapper;
import com.xxfc.platform.order.pojo.order.OrderPageVO; import com.xxfc.platform.order.pojo.order.OrderPageVO;
import com.xxfc.platform.universal.feign.ThirdFeign;
import com.xxfc.platform.universal.vo.OrderRefundVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.HashMap; import java.util.HashMap;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_TRUE;
/** /**
* *
* *
...@@ -24,6 +32,16 @@ import java.util.Map; ...@@ -24,6 +32,16 @@ import java.util.Map;
*/ */
@Service @Service
public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> { public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
@Autowired
OrderRentVehicleBiz orderRentVehicleBiz;
@Autowired
OrderRefundBiz orderRefundBiz;
@Autowired
ThirdFeign thirdFeign;
public List<OrderPageVO> pageByParm(Map<String, Object> paramMap){ public List<OrderPageVO> pageByParm(Map<String, Object> paramMap){
return mapper.pageByParm(paramMap); return mapper.pageByParm(paramMap);
} }
...@@ -48,6 +66,32 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> { ...@@ -48,6 +66,32 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
setStatus(OrderStatusEnum.ORDER_CANCEL.getCode()); setStatus(OrderStatusEnum.ORDER_CANCEL.getCode());
setCancelReason(baseOrder.getCancelReason()); setCancelReason(baseOrder.getCancelReason());
}}); }});
//触发退款流程
//判断是否已支付
if(baseOrder.getHasPay().equals(SYS_TRUE)) {
//判断订单类型
if(OrderTypeEnum.RentVehicle.getCode().equals(baseOrder.getType())) {
OrderRentVehicleDetail orvd = orderRentVehicleBiz.selectOne(new OrderRentVehicleDetail(){{
setOrderId(baseOrder.getId());
}});
//计算退款金额
// 1、押金 + 租金(规则扣除)
BigDecimal refundAmont = orvd.getDeposit().add(baseOrder.getGoodsAmount());
thirdFeign.refund(new OrderRefundVo(){{
setAmount(baseOrder.getRealAmount().multiply(new BigDecimal("100")).intValue());
setRefundAmount(refundAmont.multiply(new BigDecimal("100")).intValue());
setOrderNo(baseOrder.getNo());
setRefundDesc("取消订单退款:"+ refundAmont.toString());
}});
//创建订单退款记录
}else if (OrderTypeEnum.TOUR.getCode().equals(baseOrder.getType())) {
}
}
}else { }else {
throw new BaseException(ResultCode.FAILED_CODE); throw new BaseException(ResultCode.FAILED_CODE);
} }
......
package com.xxfc.platform.order.biz;
import org.springframework.stereotype.Service;
import com.xxfc.platform.order.entity.OrderRefund;
import com.xxfc.platform.order.mapper.OrderRefundMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
/**
* 订单退款记录表
*
* @author zjw
* @email nishijjo@qq.com
* @date 2019-06-18 11:08:09
*/
@Service
public class OrderRefundBiz extends BaseBiz<OrderRefundMapper,OrderRefund> {
}
\ No newline at end of file
package com.xxfc.platform.order.mapper;
import com.xxfc.platform.order.entity.OrderRefund;
import tk.mybatis.mapper.common.Mapper;
/**
* 订单退款记录表
*
* @author zjw
* @email nishijjo@qq.com
* @date 2019-06-18 11:08:09
*/
public interface OrderRefundMapper extends Mapper<OrderRefund> {
}
...@@ -26,6 +26,7 @@ import com.xxfc.platform.order.pojo.pay.RentVehicleOrderPayVO; ...@@ -26,6 +26,7 @@ import com.xxfc.platform.order.pojo.pay.RentVehicleOrderPayVO;
import com.xxfc.platform.universal.constant.enumerate.PayChannelEnum; import com.xxfc.platform.universal.constant.enumerate.PayChannelEnum;
import com.xxfc.platform.universal.feign.ThirdFeign; import com.xxfc.platform.universal.feign.ThirdFeign;
import com.xxfc.platform.universal.vo.OrderPayVo; import com.xxfc.platform.universal.vo.OrderPayVo;
import com.xxfc.platform.universal.vo.OrderRefundVo;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
...@@ -39,6 +40,8 @@ import org.springframework.web.bind.annotation.*; ...@@ -39,6 +40,8 @@ import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal; import java.math.BigDecimal;
import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_TRUE;
@Controller @Controller
@RequestMapping("baseOrder") @RequestMapping("baseOrder")
@Api(value="订单",tags={"订单"}) @Api(value="订单",tags={"订单"})
...@@ -250,9 +253,14 @@ public class BaseOrderController extends CommonBaseController { ...@@ -250,9 +253,14 @@ public class BaseOrderController extends CommonBaseController {
}}); }});
if(OrderStatusEnum.ORDER_UNPAY.getCode().equals(baseOrder.getStatus())) { if(OrderStatusEnum.ORDER_UNPAY.getCode().equals(baseOrder.getStatus())) {
baseOrder.setStatus(OrderStatusEnum.ORDER_TOSTART.getCode()); BaseOrder updateOrder = new BaseOrder(){{
baseOrder.setOutTradeNo(dto.getTradeNo()); setNo(dto.getOrderNo());
baseOrderBiz.updateById(baseOrder); setStatus(OrderStatusEnum.ORDER_TOSTART.getCode());
setOutTradeNo(dto.getTradeNo());
setHasPay(SYS_TRUE);
setPayTime(System.currentTimeMillis());
}};
baseOrderBiz.updateSelectiveById(updateOrder);
}else { }else {
log.error(" exception notifyUrl : " + JSONUtil.toJsonStr(dto)); log.error(" exception notifyUrl : " + JSONUtil.toJsonStr(dto));
} }
......
package com.xxfc.platform.order.rest;
import com.github.wxiaoqi.security.common.rest.BaseController;
import com.xxfc.platform.order.biz.OrderRefundBiz;
import com.xxfc.platform.order.entity.OrderRefund;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("orderRefund")
public class OrderRefundController extends BaseController<OrderRefundBiz,OrderRefund> {
}
\ No newline at end of file
...@@ -97,17 +97,17 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl ...@@ -97,17 +97,17 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
//当前用户 //当前用户
AppUserDTO dto = detail.getAppUserDTO(); AppUserDTO dto = detail.getAppUserDTO();
// //如果用户存在,并且为会员,并且车辆有优惠价 //如果用户存在,并且为会员,并且车辆有优惠价
// if(null != dto && detail.getRentFreeDay() > 0 && dto.getRentFreeDays() > 0) { if(null != dto && detail.getRentFreeDay() > 0 && dto.getRentFreeDays() > 0) {
// if(detail.getDayNum() > dto.getRentFreeDays()) { if(detail.getDayNum() > dto.getRentFreeDays()) {
// freeDayNum = dto.getRentFreeDays(); freeDayNum = dto.getRentFreeDays();
// }else { }else {
// freeDayNum = detail.getDayNum(); freeDayNum = detail.getDayNum();
// } }
// vehicleDayNum = detail.getDayNum() - freeDayNum; vehicleDayNum = detail.getDayNum() - freeDayNum;
// }else { }else {
// vehicleDayNum = detail.getDayNum(); vehicleDayNum = detail.getDayNum();
// } }
//计算价格 //计算价格
//计算车辆费用 //计算车辆费用
...@@ -130,7 +130,7 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl ...@@ -130,7 +130,7 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
}else { }else {
modelAmount = vehicleModel.getPrice(); modelAmount = vehicleModel.getPrice();
} }
vehicleAmount = vehicleAmount.add(modelAmount.multiply(BigDecimal.valueOf(detail.getDayNum()))); vehicleAmount = vehicleAmount.add(modelAmount.multiply(BigDecimal.valueOf(vehicleDayNum)));
if(DRIVER_TYPE_COMPANY.equals(detail.getDriverType())) { if(DRIVER_TYPE_COMPANY.equals(detail.getDriverType())) {
//计算司机费用 //计算司机费用
driverAmount = driverAmount.add(DRIVER_PRICE.multiply(BigDecimal.valueOf(detail.getDayNum()))); driverAmount = driverAmount.add(DRIVER_PRICE.multiply(BigDecimal.valueOf(detail.getDayNum())));
...@@ -160,11 +160,12 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl ...@@ -160,11 +160,12 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
rvp.setDamageSafePrice(DAMAGE_SAFE); rvp.setDamageSafePrice(DAMAGE_SAFE);
rvp.setModelName(vehicleModel.getName()); rvp.setModelName(vehicleModel.getName());
rvp.setDayNum(detail.getDayNum()); rvp.setDayNum(detail.getDayNum());
rvp.setVehicleDayNum(vehicleDayNum);
rvp.setVehicleNum(1); rvp.setVehicleNum(1);
rvp.setDriverNum(1); rvp.setDriverNum(1);
//设置收费明细 //设置收费明细
costDetail(rvp, handlechildren(detail)); costDetail(rvp, handlechildren(detail, vehicleDayNum));
return rvp; return rvp;
} }
...@@ -186,8 +187,11 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl ...@@ -186,8 +187,11 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
return modelAmount; return modelAmount;
} }
private String handlechildren(RentVehicleBO detail) { private String handlechildren(RentVehicleBO detail, Integer vehicleDayNum) {
StringBuffer childrenStr = new StringBuffer("${tem_0101}"); StringBuffer childrenStr = new StringBuffer("");
if(vehicleDayNum > 0) {
childrenStr.append(",${tem_0101}");
}
if(DRIVER_TYPE_COMPANY.equals(detail.getDriverType())) { if(DRIVER_TYPE_COMPANY.equals(detail.getDriverType())) {
childrenStr.append(",${tem_0102}"); childrenStr.append(",${tem_0102}");
} }
...@@ -195,6 +199,9 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl ...@@ -195,6 +199,9 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
if(DRIVER_TYPE_DAMAGE_SAFE.equals(detail.getDamageSafe())) { if(DRIVER_TYPE_DAMAGE_SAFE.equals(detail.getDamageSafe())) {
childrenStr.append(",${tem_0104}"); childrenStr.append(",${tem_0104}");
} }
if(childrenStr.length() > 0){
childrenStr.deleteCharAt(1);
}
return childrenStr.toString(); return childrenStr.toString();
} }
......
...@@ -57,7 +57,7 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To ...@@ -57,7 +57,7 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
VehicleFeign vehicleFeign; VehicleFeign vehicleFeign;
private static Integer IS_CHILD = 0; private static Integer IS_CHILD = 1;
// private static BigDecimal DRIVER_PRICE = new BigDecimal("600.00"); // private static BigDecimal DRIVER_PRICE = new BigDecimal("600.00");
// private static BigDecimal DAMAGE_SAFE = new BigDecimal("100.00"); //车损免赔 // private static BigDecimal DAMAGE_SAFE = new BigDecimal("100.00"); //车损免赔
......
<?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">
<mapper namespace="com.xxfc.platform.order.mapper.OrderRefundMapper">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.xxfc.platform.order.entity.OrderRefund" id="orderRefundMap">
<result property="id" column="id"/>
<result property="orderId" column="order_id"/>
<result property="tradeNo" column="trade_no"/>
<result property="refundTime" column="refund_time"/>
<result property="refundType" column="refund_type"/>
<result property="refundStatus" column="refund_status"/>
<result property="refundAmount" column="refund_amount"/>
<result property="refundDesc" column="refund_desc"/>
<result property="crtTime" column="crt_time"/>
</resultMap>
</mapper>
\ No newline at end of file
...@@ -91,15 +91,18 @@ public class TourTagBiz extends BaseBiz<TourTagMapper,TourTag> { ...@@ -91,15 +91,18 @@ public class TourTagBiz extends BaseBiz<TourTagMapper,TourTag> {
List<Integer> tagIds = tourTags.stream().map(TourTag::getId).collect(Collectors.toList()); List<Integer> tagIds = tourTags.stream().map(TourTag::getId).collect(Collectors.toList());
Map<Integer, List<TourTagBannerDTO>> tourTagBannerMap = tourTagBannerBiz.findTourTagBannersByTagIds(tagIds); Map<Integer, List<TourTagBannerDTO>> tourTagBannerMap = tourTagBannerBiz.findTourTagBannersByTagIds(tagIds);
tourTags.forEach(tourTag -> { tourTags.forEach(tourTag -> {
});
for (TourTag tourTag:tourTags){
//vo转换 //vo转换
TourTagDTO tourTagDTO = new TourTagDTO(); TourTagDTO tourTagDTO = new TourTagDTO();
BeanUtils.copyProperties(tourTag,tourTagDTO); BeanUtils.copyProperties(tourTag,tourTagDTO);
//根据旅游标签id查询出标签banner相关信息 //根据旅游标签id查询出标签banner相关信息
List<TourTagBannerDTO> tagBannerDTOS = tourTagBannerMap.get(tourTag.getId()); List<TourTagBannerDTO> tagBannerDTOS = tourTagBannerMap.get(tourTag.getId());
//banner 数量 //banner 数量
tourTagDTO.setBannerNums(tagBannerDTOS.size()); tourTagDTO.setBannerNums(tagBannerDTOS==null?0:tagBannerDTOS.size());
tourTagAndBannerDTOS.add(TourTagAndBannerDTO.builder().tourTagDTO(tourTagDTO).tourTagBannerDTOS(tagBannerDTOS).build()); tourTagAndBannerDTOS.add(TourTagAndBannerDTO.builder().tourTagDTO(tourTagDTO).tourTagBannerDTOS(tagBannerDTOS).build());
}); }
//组装数据 //组装数据
tourTagAndBannerDTOPageDataVO.setData(tourTagAndBannerDTOS); tourTagAndBannerDTOPageDataVO.setData(tourTagAndBannerDTOS);
tourTagAndBannerDTOPageDataVO.setPageNum(pageDataVO.getPageNum()); tourTagAndBannerDTOPageDataVO.setPageNum(pageDataVO.getPageNum());
......
package com.xxfc.platform.vehicle.constant;
/**
* @author libin
* @version 1.0
* @description 车型评分类型
* @data 2019/6/18 15:39
*/
public enum VehicleScoreType {
/**
* 服务态度
*/
SERVICE,
/**
* 司机
*/
DRIVER,
/**
* 检验感受
*/
EXPERIENCE;
}
package com.xxfc.platform.vehicle.entity;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.*;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 用户评分表
*
* @author libin
* @email 18178966185@163.com
* @date 2019-06-18 15:03:58
*/
@Data
@Table(name = "vehicle_user_score")
public class VehicleUserScore implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键id
*/
@Id
@GeneratedValue(generator = "JDBC")
@ApiModelProperty("主键id")
private Integer id;
/**
* 用户id
*/
@Column(name = "user_id")
@ApiModelProperty(value = "用户id")
private Integer userId;
/**
* 订单id
*/
@Column(name = "order_id")
@ApiModelProperty(value = "订单id")
private Integer orderId;
/**
* 车型id
*/
@Column(name = "model_id")
@ApiModelProperty(value = "车型id")
private Integer modelId;
/**
* 评分类型
*/
@Column(name = "type")
@ApiModelProperty(value = "评分类型")
private Integer type;
/**
* 评价分
*/
@Column(name = "ave_score")
@ApiModelProperty(value = "评价分")
private Integer aveScore;
/**
* 评分明细
*/
@Column(name = "scores")
@ApiModelProperty(value = "评分明细")
private String scores;
/**
* 是否匿名;0-否;1-是
*/
@Column(name = "is_anony")
@ApiModelProperty(value = "是否匿名;0-否;1-是")
private Integer isAnony;
/**
* 评价
*/
@Column(name = "comment")
@ApiModelProperty(value = "评价")
private String comment;
/**
* 图片
*/
@Column(name = "imgs")
@ApiModelProperty(value = "图片")
private String imgs;
/**
* 状态:0-未审核;1-已审核;2-审核不通过
*/
@Column(name = "status")
@ApiModelProperty(value = "状态:0-未审核;1-已审核;2-审核不通过")
private Integer status;
/**
* 创建时间
*/
@Column(name = "crt_time")
@ApiModelProperty(value = "创建时间", hidden = true )
private Long crtTime;
/**
* 更新时间
*/
@Column(name = "upd_time")
@ApiModelProperty(value = "更新时间", hidden = true )
private Long updTime;
/**
* 是否删除;0-正常;1-删除
*/
@Column(name = "is_del")
@ApiModelProperty(value = "是否删除;0-正常;1-删除")
private Integer isDel;
}
package com.xxfc.platform.vehicle.pojo.dto;
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 ScoreTypeDTO {
/**
* 评分类型
*/
@Enumerated(EnumType.STRING)
private VehicleScoreType vehicleScoreType;
/**
* 评分
*/
private int score;
}
package com.xxfc.platform.vehicle.pojo.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author libin
* @version 1.0
* @description 车型评分
* @data 2019/6/18 15:15
*/
@Data
public class VehicleUserScoreDTO {
@ApiModelProperty("主键id")
private Integer id;
/**
* 用户id
*/
@ApiModelProperty(value = "用户id")
private Integer userId;
/**
* 订单id
*/
@ApiModelProperty(value = "订单id")
private Integer orderId;
/**
* 车型id
*/
@ApiModelProperty(value = "车型id")
private Integer modelId;
/**
* 评分类型
*/
@ApiModelProperty(value = "评分类型")
private Integer type;
/**
* 评价分
*/
@ApiModelProperty(value = "评价分")
private Integer aveScore;
/**
* 评分明细
*/
@ApiModelProperty(value = "评分明细")
private String scores;
/**
* 是否匿名;0-否;1-是
*/
@ApiModelProperty(value = "是否匿名;0-否;1-是")
private Integer isAnony;
/**
* 评价
*/
@ApiModelProperty(value = "评价")
private String comment;
/**
* 图片
*/
@ApiModelProperty(value = "图片")
private String imgs;
/**
* 状态:0-未审核;1-已审核;2-审核不通过
*/
@ApiModelProperty(value = "状态:0-未审核;1-已审核;2-审核不通过")
private Integer status;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间", hidden = true )
private Long crtTime;
/**
* 更新时间
*/
@ApiModelProperty(value = "更新时间", hidden = true )
private Long updTime;
/**
* 是否删除;0-正常;1-删除
*/
@ApiModelProperty(value = "是否删除;0-正常;1-删除")
private Integer isDel;
/**
* 服务类型评分
*/
@ApiModelProperty(value = "服务类型评分")
private List<ScoreTypeDTO> scoretype;
}
\ No newline at end of file
package com.xxfc.platform.vehicle.pojo.vo;
import lombok.Data;
/**
* @author libin
* @version 1.0
* @description TODO
* @data 2019/6/18 15:26
*/
@Data
public class VehicleUserScoreVo {
}
package com.xxfc.platform.vehicle.biz;
import com.alibaba.fastjson.JSONObject;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.vehicle.entity.VehicleUserScore;
import com.xxfc.platform.vehicle.mapper.VehicleUserScoreMapper;
import com.xxfc.platform.vehicle.pojo.dto.ScoreTypeDTO;
import com.xxfc.platform.vehicle.pojo.dto.VehicleUserScoreDTO;
import com.xxfc.platform.vehicle.pojo.vo.VehicleUserScoreVo;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.time.Instant;
import java.util.List;
/**
* 用户评分表
*
* @author libin
* @email 18178966185@163.com
* @date 2019-06-18 15:03:58
*/
@Service
public class VehicleUserScoreBiz extends BaseBiz<VehicleUserScoreMapper, VehicleUserScore> {
/**
* 根据车型id查询
* @param modelId
* @return
*/
public PageDataVO<VehicleUserScoreVo> findVehicleUserScorePageByModelId(Integer modelId) {
return null;
}
/**
* 保存评分
* @param vehicleUserScoreDTO
* @return
*/
public int saveVehicleUserScore(VehicleUserScoreDTO vehicleUserScoreDTO) {
vehicleUserScoreDTO.setCrtTime(Instant.now().toEpochMilli());
List<ScoreTypeDTO> scoretype = vehicleUserScoreDTO.getScoretype();
vehicleUserScoreDTO.setComment(JSONObject.toJSONString(scoretype));
double avgScore = scoretype.stream().mapToInt(ScoreTypeDTO::getScore).average().getAsDouble();
VehicleUserScore vehicleUserScore = new VehicleUserScore();
BeanUtils.copyProperties(vehicleUserScoreDTO,vehicleUserScore);
//vehicleUserScore.setAveScore();
return mapper.insertSelective(vehicleUserScore);
}
}
\ No newline at end of file
package com.xxfc.platform.vehicle.mapper;
import com.xxfc.platform.vehicle.entity.VehicleUserScore;
import tk.mybatis.mapper.common.Mapper;
/**
* 用户评分表
*
* @author libin
* @email 18178966185@163.com
* @date 2019-06-18 15:03:58
*/
public interface VehicleUserScoreMapper extends Mapper<VehicleUserScore> {
}
package com.xxfc.platform.vehicle.rest;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.vehicle.biz.VehicleUserScoreBiz;
import com.xxfc.platform.vehicle.entity.VehicleUserScore;
import com.xxfc.platform.vehicle.pojo.dto.VehicleUserScoreDTO;
import com.xxfc.platform.vehicle.pojo.vo.VehicleUserScoreVo;
import org.springframework.web.bind.annotation.*;
/**
* @author libin
* @version 1.0
* @description 评分
* @data 2019/6/18 15:32
*/
@RestController
@RequestMapping("vehicleUserScore")
public class VehicleUserScoreController extends BaseController<VehicleUserScoreBiz, VehicleUserScore> {
/**
* 保存评分
* @param vehicleUserScoreDTO
* @return
*/
@PostMapping("/score")
public ObjectRestResponse<Void> saveVehicleUserScore(VehicleUserScoreDTO vehicleUserScoreDTO){
int effectRows = getBaseBiz().saveVehicleUserScore(vehicleUserScoreDTO);
if (effectRows>0){
return ObjectRestResponse.succ();
}
return ObjectRestResponse.createDefaultFail();
}
/**
* 根据车型查询评分列表
*
* @param modelId
* @return
*/
@GetMapping("/scores")
public ObjectRestResponse<PageDataVO<VehicleUserScoreVo>> findVehicleUserScorePageByModelId(@RequestParam("modelId") Integer modelId) {
PageDataVO<VehicleUserScoreVo> pageDataVO = getBaseBiz().findVehicleUserScorePageByModelId(modelId);
return ObjectRestResponse.succ(pageDataVO);
}
}
\ No newline at end of file
<?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">
<mapper namespace="com.xxfc.platform.vehicle.mapper.VehicleUserScoreMapper">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.xxfc.platform.vehicle.entity.VehicleUserScore" id="vehicleUserScoreMap">
<result property="id" column="id"/>
<result property="userId" column="user_id"/>
<result property="orderId" column="order_id"/>
<result property="modelId" column="model_id"/>
<result property="type" column="type"/>
<result property="aveScore" column="ave_score"/>
<result property="scores" column="scores"/>
<result property="isAnony" column="is_anony"/>
<result property="comment" column="comment"/>
<result property="imgs" column="imgs"/>
<result property="status" column="status"/>
<result property="crtTime" column="crt_time"/>
<result property="updTime" column="upd_time"/>
<result property="isDel" column="is_del"/>
</resultMap>
</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