Commit 40a0c447 authored by libin's avatar libin

wg

parents bc26eb01 39114f9c
...@@ -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异常
......
package com.github.wxiaoqi.security.admin.feign; package com.github.wxiaoqi.security.admin.feign;
import com.github.wxiaoqi.security.admin.entity.AppUserDetail;
import com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel; import com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO; import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
import com.github.wxiaoqi.security.admin.feign.dto.UserDTO; import com.github.wxiaoqi.security.admin.feign.dto.UserDTO;
import com.github.wxiaoqi.security.admin.vo.AppUserVo;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
...@@ -12,7 +11,6 @@ import org.springframework.web.bind.annotation.RequestMethod; ...@@ -12,7 +11,6 @@ import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* ${DESCRIPTION} * ${DESCRIPTION}
...@@ -40,9 +38,6 @@ public interface UserFeign { ...@@ -40,9 +38,6 @@ public interface UserFeign {
@RequestMapping(value = "/member/levels", method = RequestMethod.GET) @RequestMapping(value = "/member/levels", method = RequestMethod.GET)
public List<BaseUserMemberLevel> levels(); public List<BaseUserMemberLevel> levels();
@RequestMapping(value = "/public/app/userinfo-by-id") @RequestMapping(value = "/public/getByUserIds", method = RequestMethod.GET)
public Map<Integer, AppUserDetail> userDetailById(List<Integer> userids); public ObjectRestResponse<List<AppUserVo>> getByUserIds(@RequestParam("ids")List<Integer> ids);
} }
...@@ -45,7 +45,6 @@ public class AppUserDetailBiz extends BaseBiz<AppUserDetailMapper, AppUserDetail ...@@ -45,7 +45,6 @@ public class AppUserDetailBiz extends BaseBiz<AppUserDetailMapper, AppUserDetail
return null; return null;
} }
public AppUserVo getUserInfoById(Integer userid){ public AppUserVo getUserInfoById(Integer userid){
return mapper.getUserInfo(userid); return mapper.getUserInfo(userid);
} }
......
package com.github.wxiaoqi.security.admin.rest; package com.github.wxiaoqi.security.admin.rest;
import com.ace.cache.annotation.Cache;
import com.github.wxiaoqi.security.admin.biz.AppUserBiz; import com.github.wxiaoqi.security.admin.biz.AppUserBiz;
import com.github.wxiaoqi.security.admin.biz.AppUserDetailBiz; import com.github.wxiaoqi.security.admin.biz.AppUserDetailBiz;
import com.github.wxiaoqi.security.admin.entity.AppUser; import com.github.wxiaoqi.security.admin.entity.AppUser;
...@@ -20,6 +21,7 @@ import lombok.extern.slf4j.Slf4j; ...@@ -20,6 +21,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -128,5 +130,26 @@ public class AppUserController extends CommonBaseController { ...@@ -128,5 +130,26 @@ public class AppUserController extends CommonBaseController {
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
} }
@GetMapping("/findByUserId")
public ObjectRestResponse<AppUserDetail> findByUserId(Integer id) {
if(id == null || id < 0) {
return ObjectRestResponse.createFailedResult(500, "参数id为空");
}
AppUserDetail appUserDetail = userDetailBiz.getUserByUserid(id);
return ObjectRestResponse.succ(appUserDetail);
}
@GetMapping("/getByUserIds")
public ObjectRestResponse<List<AppUserDetail>> getByUserIds(@RequestParam("ids") List<Integer> ids) {
if(ids == null) {
return ObjectRestResponse.createFailedResult(500, "参数id为空");
}
List<AppUserDetail> appUserDetails = new ArrayList<>();
for (Integer id : ids) {
AppUserDetail appUserDetail = userDetailBiz.getUserByUserid(id);
appUserDetails.add(appUserDetail);
}
return ObjectRestResponse.succ(appUserDetails);
}
} }
...@@ -104,6 +104,7 @@ public class UserController extends CommonBaseController { ...@@ -104,6 +104,7 @@ public class UserController extends CommonBaseController {
} }
} }
@RequestMapping(value = "/front/menus", method = RequestMethod.GET) @RequestMapping(value = "/front/menus", method = RequestMethod.GET)
public @ResponseBody public @ResponseBody
List<MenuTree> getMenusByUsername(String token) throws Exception { List<MenuTree> getMenusByUsername(String token) throws Exception {
......
...@@ -10,7 +10,7 @@ spring: ...@@ -10,7 +10,7 @@ spring:
datasource: datasource:
type: com.alibaba.druid.pool.DruidDataSource type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.jdbc.Driver driverClassName: com.mysql.jdbc.Driver
url: jdbc:mysql://10.5.52.3:3306/xxfc_order?useUnicode=true&characterEncoding=UTF-8 url: jdbc:mysql://10.5.52.3:3306/vehicle?useUnicode=true&characterEncoding=UTF-8
username: root username: root
password: sslcloud123*() password: sslcloud123*()
jackson: jackson:
......
#代码生成器,配置信息 #\u4EE3\u7801\u751F\u6210\u5668\uFF0C\u914D\u7F6E\u4FE1\u606F
#包名 #\u5305\u540D
package=com.xxfc.platform.order package=com.xxfc.platform.campsite
#作者 #\u4F5C\u8005
author=zjw author=libin
#Email #Email
email=nishijjo@qq.com email=18178966185@163.com
#表前错误的Unicode字符串! #\u8868\u524D\u9519\u8BEF\u7684Unicode\u5B57\u7B26\u4E32!
tablePrefix= tablePrefix=
#前端模块前缀 #\u524D\u7AEF\u6A21\u5757\u524D\u7F00
mainModule=auth mainModule=auth
#类型转换,配置信息 #\u7C7B\u578B\u8F6C\u6362\uFF0C\u914D\u7F6E\u4FE1\u606F
tinyint=Integer tinyint=Integer
smallint=Integer smallint=Integer
mediumint=Integer mediumint=Integer
......
...@@ -5,8 +5,9 @@ import ${package}.biz.${className}Biz; ...@@ -5,8 +5,9 @@ import ${package}.biz.${className}Biz;
import ${package}.entity.${className}; import ${package}.entity.${className};
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Controller @RestController
@RequestMapping("${secondModuleName}") @RequestMapping("${secondModuleName}")
public class ${className}Controller extends BaseController<${className}Biz,${className}> { public class ${className}Controller extends BaseController<${className}Biz,${className}> {
......
...@@ -195,4 +195,18 @@ public class BaseOrder implements Serializable { ...@@ -195,4 +195,18 @@ public class BaseOrder implements Serializable {
@Column(name = "has_discount") @Column(name = "has_discount")
@ApiModelProperty(value = "是否有优惠") @ApiModelProperty(value = "是否有优惠")
private Long hasDiscount; private Long hasDiscount;
/**
* 是否已支付
*/
@Column(name = "has_pay")
@ApiModelProperty(value = "是否已支付")
private Integer hasPay;
@Transient
private String username;
@Transient
private String vehicalNumberPlat;
} }
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;
}
...@@ -2,7 +2,6 @@ package com.xxfc.platform.order.entity; ...@@ -2,7 +2,6 @@ package com.xxfc.platform.order.entity;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.*; import javax.persistence.*;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
......
package com.xxfc.platform.order.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.RequiredArgsConstructor;
import javax.persistence.*;
@Table(name = "order_vehicle_crosstown")
@Data
@RequiredArgsConstructor
public class OrderVehicaleCrosstown {
/**
* 主键id
*/
@Id
private Integer id;
/**
* 订单id
*/
@Column(name = "order_id")
private Integer orderId;
/**
* 订单号
*/
@Column(name = "order_no")
private String orderNo;
/**
* 驾驶人
*/
@Column(name = "license_name")
private String licenseName;
/**
* 驾驶人手机号
*/
@Column(name = "license_phone")
private String licensePhone;
/**
* 驾驶证照
*/
@Column(name = "license_img")
private String licenseImg;
/**
* 公里数(公里)
*/
private Integer mileage;
/**
* 公里数取证照
*/
@Column(name = "mileage_img")
private String mileageImg;
/**
* 审核状态;0-未审核;1-已审核
*/
private Boolean status;
/**
* 审核时间
*/
@Column(name = "status_time")
private Long statusTime;
/**
* 审核名称
*/
@Column(name = "status_name")
private String statusName;
/**
* 审核人id
*/
@Column(name = "status_id")
private Integer statusId;
/**
* 是否删除;0-正常;1-删除
*/
@Column(name = "is_del")
private Boolean isDel;
/**
* 取证图片
*/
private String imgs;
/**
* 备注
*/
private String remak;
/**
* 创建时间
*/
private Long crtTime;
/**
* 更新时间
*/
private Long updTime;
/**
* 钥匙图片
*/
private String vehicleKey;
/**
* 是否有扣除项
*/
private Boolean isDed;
/**
* 扣除项明细
*/
private String dedDetail;
/**
* 驾驶人身份证号
*/
private String licenseIdCard;
/**
* 1、交车, 2、还车
*/
private Integer type;
}
\ No newline at end of file
...@@ -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 = "司机个数")
......
...@@ -25,7 +25,6 @@ ...@@ -25,7 +25,6 @@
<version>2.0-SNAPSHOT</version> <version>2.0-SNAPSHOT</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
</dependencies> </dependencies>
<build> <build>
...@@ -50,6 +49,11 @@ ...@@ -50,6 +49,11 @@
<version>5.1.30</version> <version>5.1.30</version>
<scope>runtime</scope> <scope>runtime</scope>
</dependency> </dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.9.3</version>
</dependency>
<dependency> <dependency>
<groupId>tk.mybatis</groupId> <groupId>tk.mybatis</groupId>
<artifactId>mapper</artifactId> <artifactId>mapper</artifactId>
......
...@@ -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,12 +32,25 @@ import java.util.Map; ...@@ -24,12 +32,25 @@ 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);
} }
public List<OrderPageVO> listOrder(Map<String, Object> paramMap){ public List<OrderPageVO> listOrder(Map<String, Object> paramMap){
return mapper.listOrder(paramMap); return mapper.listOrder(paramMap);
} }
public List<OrderPageVO> getRentVehicle (Map<String, Object> paramMap) {
return mapper.getRentVehicle(paramMap);
}
private static Map<Integer, List<Integer>> cancelAble; private static Map<Integer, List<Integer>> cancelAble;
static { static {
cancelAble = new HashMap<Integer, List<Integer>>(); cancelAble = new HashMap<Integer, List<Integer>>();
...@@ -48,6 +69,32 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> { ...@@ -48,6 +69,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.biz;
import com.ace.cache.annotation.Cache;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.xxfc.platform.order.entity.OrderVehicaleCrosstown;
import com.xxfc.platform.order.mapper.OrderVehicaleCrosstownMapper;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class OrderVehicalCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapper, OrderVehicaleCrosstown> {
public OrderVehicaleCrosstown get(Integer id){
return selectById(id);
}
public List<OrderVehicaleCrosstown> selectByOrderId(OrderVehicaleCrosstown orderVehicaleCrosstown) {
return mapper.selectByOrderId(orderVehicaleCrosstown);
}
}
package com.xxfc.platform.order.config;
import feign.RequestInterceptor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.util.Enumeration;
/**
* 自定义的请求头处理类,处理服务发送时的请求头;
* 将服务接收到的请求头中的uniqueId和token字段取出来,并设置到新的请求头里面去转发给下游服务
* 比如A服务收到一个请求,请求头里面包含uniqueId和token字段,A处理时会使用Feign客户端调用B服务
* 那么uniqueId和token这两个字段就会添加到请求头中一并发给B服务;
*
* @author mozping
* @version 1.0
* @date 2018/6/27 14:13
* @see FeignHeadConfiguration
* @since JDK1.8
*/
@Configuration
@Slf4j
public class FeignHeadConfiguration {
@Bean
public RequestInterceptor requestInterceptor() {
return requestTemplate -> {
ServletRequestAttributes attrs = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
if (attrs != null) {
HttpServletRequest request = attrs.getRequest();
Enumeration<String> headerNames = request.getHeaderNames();
if (headerNames != null) {
while (headerNames.hasMoreElements()) {
String name = headerNames.nextElement();
String value = request.getHeader(name);
/**
* 遍历请求头里面的属性字段,将logId和token添加到新的请求头中转发到下游服务
* */
if ("Authorization".equalsIgnoreCase(name)) {
log.debug("添加自定义请求头key:" + name + ",value:" + value);
requestTemplate.header(name, value);
} else {
log.debug("FeignHeadConfiguration", "非自定义请求头key:" + name + ",value:" + value + "不需要添加!");
}
}
} else {
log.warn("FeignHeadConfiguration", "获取请求头失败!");
}
}
};
}
}
...@@ -17,4 +17,5 @@ import java.util.Map; ...@@ -17,4 +17,5 @@ import java.util.Map;
public interface BaseOrderMapper extends Mapper<BaseOrder> { public interface BaseOrderMapper extends Mapper<BaseOrder> {
public List<OrderPageVO> pageByParm(Map<String, Object> paramMap); public List<OrderPageVO> pageByParm(Map<String, Object> paramMap);
public List<OrderPageVO> listOrder(Map<String, Object> paramMap); public List<OrderPageVO> listOrder(Map<String, Object> paramMap);
public List<OrderPageVO> getRentVehicle(Map<String, Object> paramMap);
} }
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> {
}
package com.xxfc.platform.order.mapper;
import com.xxfc.platform.order.entity.OrderVehicaleCrosstown;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
public interface OrderVehicaleCrosstownMapper extends Mapper<OrderVehicaleCrosstown> {
List<OrderVehicaleCrosstown> selectByOrderId(OrderVehicaleCrosstown orderVehicaleCrosstown);
}
\ No newline at end of file
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
package com.xxfc.platform.order.rest;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xxfc.platform.order.biz.OrderVehicalCrosstownBiz;
import com.xxfc.platform.order.entity.OrderVehicaleCrosstown;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping(value = "/orderVehicle")
@Api(value = "交还车记录", tags = {"交还车记录"})
@Slf4j
public class OrderVehicleCrosstownController {
@Autowired
OrderVehicalCrosstownBiz orderVehicalCrosstownBiz;
@PostMapping(value = "/add")
@ApiOperation(value = "添加交还车记录")
public ObjectRestResponse<?> add(OrderVehicaleCrosstown orderVehicaleCrosstown) {
log.info("添加的参数:orderVehicaleCrosstown = {}", orderVehicaleCrosstown);
if (orderVehicaleCrosstown == null) {
return ObjectRestResponse.createFailedResult(500, "参数为空!");
}
if (orderVehicaleCrosstown.getId() != null) {
OrderVehicaleCrosstown oldValue = orderVehicalCrosstownBiz.get(orderVehicaleCrosstown.getId());
if (oldValue != null) {
BeanUtil.copyProperties(orderVehicaleCrosstown, oldValue, CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true));
orderVehicalCrosstownBiz.updateSelectiveById(oldValue);
return ObjectRestResponse.succ();
}
orderVehicalCrosstownBiz.insertSelective(orderVehicaleCrosstown);
return ObjectRestResponse.succ();
} else {
orderVehicalCrosstownBiz.insertSelective(orderVehicaleCrosstown);
return ObjectRestResponse.succ();
}
}
@GetMapping(value = "/{id}")
@ApiOperation(value = "查询记录信息")
public ObjectRestResponse<OrderVehicaleCrosstown> get(@PathVariable Integer id) {
return ObjectRestResponse.succ(orderVehicalCrosstownBiz.get(id));
}
@GetMapping(value = "/getByOrderId")
@ApiOperation(value = "根据订单Id获取所有记录信息")
public ObjectRestResponse<List<OrderVehicaleCrosstown>> getByOrderId(OrderVehicaleCrosstown orderVehicaleCrosstown) {
if (orderVehicaleCrosstown == null) {
return ObjectRestResponse.createFailedResult(500, "参数orderId为空");
}
return ObjectRestResponse.succ(orderVehicalCrosstownBiz.selectByOrderId(orderVehicaleCrosstown));
}
}
...@@ -78,7 +78,7 @@ public abstract class AbstractOrderHandle<Biz extends BaseBiz, Detail extends Or ...@@ -78,7 +78,7 @@ public abstract class AbstractOrderHandle<Biz extends BaseBiz, Detail extends Or
detail.setOrderId(detail.getOrder().getId()); detail.setOrderId(detail.getOrder().getId());
detailBiz.insertSelective(detail); detailBiz.insertSelective(detail);
detail.getOrder().setDetailId(detail.getId()); detail.getOrder().setDetailId(detail.getId());
baseOrderBiz.updateById(detail.getOrder()); baseOrderBiz.updateSelectiveById(detail.getOrder());
} }
// /** // /**
......
...@@ -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"); //车损免赔
...@@ -113,11 +113,11 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To ...@@ -113,11 +113,11 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
bo.setStartCityName(sysRegion.getName()); bo.setStartCityName(sysRegion.getName());
//设置verificationId 核销id //设置verificationId 核销id
bo.setVerificationId(tourFeign.entityList(BeanUtil.beanToMap(new TourGoodVerification(){{ // bo.setVerificationId(tourFeign.entityList(BeanUtil.beanToMap(new TourGoodVerification(){{
setSpeId(bo.getSpePriceId()); // setSpeId(bo.getSpePriceId());
setGoodId(bo.getGoodId()); // setGoodId(bo.getGoodId());
setSiteId(bo.getSiteId()); // setSiteId(bo.getSiteId());
}})).getData().get(0).getId()); // }})).getData().get(0).getId());
//扣減庫存 //扣減庫存
tourFeign.stock(bo.getSpePriceId(), bo.getTotalNumber()); tourFeign.stock(bo.getSpePriceId(), bo.getTotalNumber());
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
<javaClientGenerator targetPackage="${targetMapperPackage}" targetProject="${targetJavaProject}" <javaClientGenerator targetPackage="${targetMapperPackage}" targetProject="${targetJavaProject}"
type="XMLMAPPER"/> type="XMLMAPPER"/>
<!-- <table tableName="vehicle" domainObjectName="Vehicle">--> <!-- <table tableName="order_vehicle_crosstown" domainObjectName="Vehicle">-->
<!-- </table>--> <!-- </table>-->
<!-- <table tableName="vehicle_book_info" domainObjectName="VehicleBookInfo">--> <!-- <table tableName="vehicle_book_info" domainObjectName="VehicleBookInfo">-->
<!-- </table>--> <!-- </table>-->
...@@ -37,7 +37,7 @@ ...@@ -37,7 +37,7 @@
<!-- </table>--> <!-- </table>-->
<!-- <table tableName="branch_company_stock_info" domainObjectName="BranchCompanyStockInfo"></table>--> <!-- <table tableName="branch_company_stock_info" domainObjectName="BranchCompanyStockInfo"></table>-->
<!-- <table tableName="branch_company_stock_apply_info" domainObjectName="BranchCompanyStockApplyInfo"></table>--> <!-- <table tableName="branch_company_stock_apply_info" domainObjectName="BranchCompanyStockApplyInfo"></table>-->
<table tableName="base_order" domainObjectName="baseOrder"></table> <table tableName="order_vehicle_crosstown" domainObjectName="OrderVehicaleCrosstown"></table>
<!-- <table tableName="vehicle_upkeep_log" domainObjectName="VehicleUpkeepLog"></table>--> <!-- <table tableName="vehicle_upkeep_log" domainObjectName="VehicleUpkeepLog"></table>-->
</context> </context>
</generatorConfiguration> </generatorConfiguration>
\ No newline at end of file
...@@ -68,6 +68,9 @@ ...@@ -68,6 +68,9 @@
</if> </if>
<if test="status != null"> <if test="status != null">
and b.status = #{status} and b.status = #{status}
</if>
<if test="type != null">
and b.type = #{type}
</if> </if>
<if test="no != null"> <if test="no != null">
and no like CONCAT ("%", #{no}, "%") and no like CONCAT ("%", #{no}, "%")
...@@ -80,6 +83,34 @@ ...@@ -80,6 +83,34 @@
and r.start_company_id = #{startCompanyId} and r.start_company_id = #{startCompanyId}
or t.start_company_id = #{startCompanyId} or t.start_company_id = #{startCompanyId}
</if> </if>
<if test="startZoneId != null">
and r.start_zone_id = #{startZoneId}
or t.start_zone_id = #{startZoneId}
</if>
</where>
order by b.crt_time desc
</select>
<select id="getRentVehicle" parameterType="Map" resultMap="orderPageMap">
select b.*
from base_order b
LEFT JOIN order_rent_vehicle_detail r on r.order_id = b.id
<where>
<if test="userId != null">
and b.user_id = #{userId}
</if>
<if test="status != null">
and b.status = #{status}
</if>
<if test="no != null">
and no like CONCAT ("%", #{no}, "%")
</if>
<if test="startTime != null">
and r.start_time between #{startTime} and #{endTime}
</if>
<if test="startCompanyId != null">
and r.start_company_id = #{startCompanyId}
</if>
</where> </where>
order by b.crt_time desc order by b.crt_time desc
</select> </select>
......
<?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
<?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.OrderVehicaleCrosstownMapper">
<resultMap id="BaseResultMap" type="com.xxfc.platform.order.entity.OrderVehicaleCrosstown">
<!--
WARNING - @mbg.generated
-->
<id column="id" jdbcType="INTEGER" property="id" />
<result column="order_id" jdbcType="INTEGER" property="orderId" />
<result column="order_no" jdbcType="VARCHAR" property="orderNo" />
<result column="license_name" jdbcType="VARCHAR" property="licenseName" />
<result column="license_phone" jdbcType="VARCHAR" property="licensePhone" />
<result column="license_img" jdbcType="VARCHAR" property="licenseImg" />
<result column="mileage" jdbcType="INTEGER" property="mileage" />
<result column="mileage_img" jdbcType="VARCHAR" property="mileageImg" />
<result column="status" jdbcType="BIT" property="status" />
<result column="status_time" jdbcType="BIGINT" property="statusTime" />
<result column="status_name" jdbcType="VARCHAR" property="statusName" />
<result column="status_id" jdbcType="INTEGER" property="statusId" />
<result column="is_del" jdbcType="BIT" property="isDel" />
<result column="imgs" jdbcType="LONGVARCHAR" property="imgs" />
<result column="remak" jdbcType="LONGVARCHAR" property="remak" />
<result column="crt_time" jdbcType="BIGINT" property="crtTime" />
<result column="upd_time" jdbcType="BIGINT" property="updTime" />
<result column="vehicle_key" jdbcType="LONGVARCHAR" property="vehicleKey"/>
<result column="license_id_card" jdbcType="VARCHAR" property="licenseIdCard"/>
<result column="is_ded" jdbcType="BIT" property="isDeD" />
<result column="ded_detail" jdbcType="LONGVARCHAR" property="dedDetail" />
<result column="type" jdbcType="INTEGER" property="type"/>
</resultMap>
<select id="selectByOrderId" parameterType="com.xxfc.platform.order.entity.OrderVehicaleCrosstown" resultMap="BaseResultMap">
select *
from order_vehicle_crosstown
<where>
<if test="status != null">
and status = #{status}
</if>
<if test="type != null">
and type = #{type}
</if>
<if test="orderId != null">
and order_id = #{orderId}
</if>
<if test="orderNo != null">
and order_no = #{orderNo}
</if>
</where>
</select>
</mapper>
\ No newline at end of file
...@@ -72,6 +72,11 @@ public class TourGoodDTO { ...@@ -72,6 +72,11 @@ public class TourGoodDTO {
@ApiModelProperty(value = "状态:0-未发布;1-上架;2-下架") @ApiModelProperty(value = "状态:0-未发布;1-上架;2-下架")
private Integer status; private Integer status;
//是否省外;0-省内;1-省外
@ApiModelProperty(value = "是否省外;0-省内;1-省外")
private Integer isOutside;
//是否推荐:0-未推荐;1-已推荐 //是否推荐:0-未推荐;1-已推荐
@ApiModelProperty(value = "是否推荐:0-未推荐;1-已推荐") @ApiModelProperty(value = "是否推荐:0-未推荐;1-已推荐")
private Integer recommend; private Integer recommend;
......
...@@ -91,6 +91,11 @@ public class TourGood implements Serializable { ...@@ -91,6 +91,11 @@ public class TourGood implements Serializable {
@ApiModelProperty(value = "状态:0-未发布;1-上架;2-下架") @ApiModelProperty(value = "状态:0-未发布;1-上架;2-下架")
private Integer status; private Integer status;
//是否省外;0-省内;1-省外
@Column(name = "is_outside")
@ApiModelProperty(value = "是否省外;0-省内;1-省外")
private Integer isOutside;
//创建时间 //创建时间
@Column(name = "crt_time") @Column(name = "crt_time")
@ApiModelProperty(value = "创建时间", hidden = true ) @ApiModelProperty(value = "创建时间", hidden = true )
......
...@@ -84,6 +84,10 @@ public class TourGoodDetailVo { ...@@ -84,6 +84,10 @@ public class TourGoodDetailVo {
@ApiModelProperty(value = "更新时间", hidden = true ) @ApiModelProperty(value = "更新时间", hidden = true )
private Long updTime; private Long updTime;
//是否省外;0-省内;1-省外
@ApiModelProperty(value = "是否省外;0-省内;1-省外")
private Integer isOutside;
//是否推荐:0-未推荐;1-已推荐 //是否推荐:0-未推荐;1-已推荐
@ApiModelProperty(value = "是否推荐:0-未推荐;1-已推荐") @ApiModelProperty(value = "是否推荐:0-未推荐;1-已推荐")
private Integer recommend; private Integer recommend;
......
...@@ -2,11 +2,6 @@ package com.xxfc.platform.tour.vo; ...@@ -2,11 +2,6 @@ package com.xxfc.platform.tour.vo;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
...@@ -74,6 +69,10 @@ public class TourGoodVo implements Serializable { ...@@ -74,6 +69,10 @@ public class TourGoodVo implements Serializable {
@ApiModelProperty(value = "状态:0-未发布;1-上架;2-下架") @ApiModelProperty(value = "状态:0-未发布;1-上架;2-下架")
private Integer status; private Integer status;
//是否省外;0-省内;1-省外
@ApiModelProperty(value = "是否省外;0-省内;1-省外")
private Integer isOutside;
//天数 //天数
@ApiModelProperty(value = "天数") @ApiModelProperty(value = "天数")
private Integer number; private Integer number;
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
<result property="isMember" column="is_member"/> <result property="isMember" column="is_member"/>
<result property="stock" column="stock"/> <result property="stock" column="stock"/>
<result property="unit" column="unit"/> <result property="unit" column="unit"/>
<result property="isOutside" column="is_outside"/>
</resultMap> </resultMap>
<resultMap type="com.xxfc.platform.tour.vo.TourGoodVo" id="tourGoodVoMap"> <resultMap type="com.xxfc.platform.tour.vo.TourGoodVo" id="tourGoodVoMap">
...@@ -47,12 +48,13 @@ ...@@ -47,12 +48,13 @@
<result property="stock" column="stock"/> <result property="stock" column="stock"/>
<result property="unit" column="unit"/> <result property="unit" column="unit"/>
<result property="tagNames" column="tagNames"/> <result property="tagNames" column="tagNames"/>
<result property="isOutside" column="is_outside"/>
</resultMap> </resultMap>
<!--查询旅游路线列表--> <!--查询旅游路线列表-->
<select id="getGoodList" parameterType="java.util.Map" resultMap="tourGoodMap"> <select id="getGoodList" parameterType="java.util.Map" resultMap="tourGoodMap">
SELECT * from tour_good t SELECT * from tour_good t
where t.is_del=1 AND t.g.status=1 where t.is_del=1 AND t.status=1
<if test="params.query != null and params.query != ''"> <if test="params.query != null and params.query != ''">
and (t.`name` like CONCAT('%',#{params.query},'%') or t.introduce like CONCAT('%',#{params.query},'%')) and (t.`name` like CONCAT('%',#{params.query},'%') or t.introduce like CONCAT('%',#{params.query},'%'))
</if> </if>
......
...@@ -2,14 +2,15 @@ package com.xxfc.platform.vehicle.feign; ...@@ -2,14 +2,15 @@ package com.xxfc.platform.vehicle.feign;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xxfc.platform.vehicle.common.RestResponse; import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.entity.Vehicle;
import com.xxfc.platform.vehicle.entity.VehicleModel; import com.xxfc.platform.vehicle.entity.VehicleModel;
import com.xxfc.platform.vehicle.pojo.BookVehicleVO;
import com.xxfc.platform.vehicle.pojo.CompanyDetail; import com.xxfc.platform.vehicle.pojo.CompanyDetail;
import com.xxfc.platform.vehicle.pojo.RentVehicleBookDTO; import com.xxfc.platform.vehicle.pojo.RentVehicleBookDTO;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.List;
/** /**
* Created by ace on 2017/9/15. * Created by ace on 2017/9/15.
*/ */
...@@ -18,6 +19,15 @@ public interface VehicleFeign { ...@@ -18,6 +19,15 @@ public interface VehicleFeign {
@GetMapping(value = "/vehicleModel/{id}") @GetMapping(value = "/vehicleModel/{id}")
public ObjectRestResponse<VehicleModel> get(@PathVariable("id") int id); public ObjectRestResponse<VehicleModel> get(@PathVariable("id") int id);
@GetMapping(value = "/vehicleInfo/{id}")
public ObjectRestResponse<Vehicle> get(@PathVariable("id") String id);
@RequestMapping(value = "/vehicleInfo/findById", method = RequestMethod.GET)
public RestResponse<Vehicle> findById(@RequestParam("id")String id);
@RequestMapping(value = "/vehicleInfo/getByIds", method = RequestMethod.GET)
public RestResponse< List<Vehicle>> getByIds(@RequestParam("ids") List<String> id);
//修改评分 //修改评分
@RequestMapping(value = "/vehicleModel/app/addScore", method = RequestMethod.GET) @RequestMapping(value = "/vehicleModel/app/addScore", method = RequestMethod.GET)
public RestResponse addScore(@RequestParam(value="id")Integer id, @RequestParam(value="score")Integer score); public RestResponse addScore(@RequestParam(value="id")Integer id, @RequestParam(value="score")Integer score);
......
...@@ -18,24 +18,6 @@ public class VehicleUserScoreDTO { ...@@ -18,24 +18,6 @@ public class VehicleUserScoreDTO {
@ApiModelProperty("主键id") @ApiModelProperty("主键id")
private Integer 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;
/** /**
* 评分类型 * 评分类型
*/ */
......
package com.xxfc.platform.vehicle.pojo.vo; package com.xxfc.platform.vehicle.pojo.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
/** /**
...@@ -10,4 +11,66 @@ import lombok.Data; ...@@ -10,4 +11,66 @@ import lombok.Data;
*/ */
@Data @Data
public class VehicleUserScoreVo { public class VehicleUserScoreVo {
/**
* 主键id
*/
@ApiModelProperty("主键id")
private Integer id;
/**
* 用户id
*/
@ApiModelProperty(value = "用户id")
private Integer userId;
/**
* 用户名
*/
@ApiModelProperty(value = "用户名")
private String userName;
/**
* 用户头像地址
*/
@ApiModelProperty(value = "用户头像地址")
private String headUrl;
/**
* 评分类型
*/
@ApiModelProperty(value = "评分类型")
private Integer type;
/**
* 评价分
*/
@ApiModelProperty(value = "评价分")
private Integer aveScore;
/**
* 是否匿名;0-否;1-是
*/
@ApiModelProperty(value = "是否匿名;0-否;1-是")
private Integer isAnony;
/**
* 评价
*/
@ApiModelProperty(value = "评价")
private String comment;
/**
* 图片
*/
@ApiModelProperty(value = "图片")
private String imgs;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间", hidden = true )
private Long crtTime;
} }
...@@ -2,6 +2,7 @@ package com.xxfc.platform.vehicle.biz; ...@@ -2,6 +2,7 @@ package com.xxfc.platform.vehicle.biz;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.ace.cache.annotation.Cache;
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.biz.BaseBiz;
...@@ -121,6 +122,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> { ...@@ -121,6 +122,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> {
return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),headers, HttpStatus.CREATED); return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),headers, HttpStatus.CREATED);
} }
@Cache(key = "vehical")
public Vehicle get(String id){ public Vehicle get(String id){
return mapper.selectByPrimaryKey(id); return mapper.selectByPrimaryKey(id);
} }
......
...@@ -18,6 +18,7 @@ import com.xxfc.platform.vehicle.pojo.Cascade; ...@@ -18,6 +18,7 @@ import com.xxfc.platform.vehicle.pojo.Cascade;
import com.xxfc.platform.vehicle.pojo.CataVo; 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.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;
...@@ -148,7 +149,7 @@ public class VehiclePlatCataBiz extends BaseBiz<VehiclePlatCataMapper, VehiclePl ...@@ -148,7 +149,7 @@ public class VehiclePlatCataBiz extends BaseBiz<VehiclePlatCataMapper, VehiclePl
//插入一级标签获得id //插入一级标签获得id
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();
//逐条插入二级标签 //逐条插入二级标签
......
package com.xxfc.platform.vehicle.biz; package com.xxfc.platform.vehicle.biz;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
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.VehicleUserScoreListDTO;
import com.xxfc.platform.vehicle.pojo.vo.VehicleUserScoreVo; import com.xxfc.platform.vehicle.pojo.vo.VehicleUserScoreVo;
import io.swagger.annotations.ApiModelProperty; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.Instant; import java.time.Instant;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/** /**
...@@ -23,15 +29,18 @@ import java.util.List; ...@@ -23,15 +29,18 @@ import java.util.List;
* @date 2019-06-18 15:03:58 * @date 2019-06-18 15:03:58
*/ */
@Service @Service
@Slf4j
public class VehicleUserScoreBiz extends BaseBiz<VehicleUserScoreMapper, VehicleUserScore> { public class VehicleUserScoreBiz extends BaseBiz<VehicleUserScoreMapper, VehicleUserScore> {
/** /**
* 根据车型id查询 * 根据车型id查询
* @param modelId * @param modelId
* @return * @return
*/ */
public PageDataVO<VehicleUserScoreVo> findVehicleUserScorePageByModelId(Integer modelId) { public PageDataVO<VehicleUserScoreVo> findVehicleUserScorePageByModelId(Integer modelId,Integer pageNo,Integer pageSize) {
//根据模型id查找
PageDataVO<VehicleUserScoreListDTO> vehicleUserScoreDTOPageDataVO = PageDataVO.pageInfo(pageNo,pageSize,()->mapper.findyByModelIdAndApproved(modelId,1));
List<Integer> userIds = vehicleUserScoreDTOPageDataVO.getData().stream().map(VehicleUserScoreListDTO::getUserId).collect(Collectors.toList());
return null; return null;
} }
...@@ -40,14 +49,20 @@ public class VehicleUserScoreBiz extends BaseBiz<VehicleUserScoreMapper, Vehicle ...@@ -40,14 +49,20 @@ public class VehicleUserScoreBiz extends BaseBiz<VehicleUserScoreMapper, Vehicle
* @param vehicleUserScoreDTO * @param vehicleUserScoreDTO
* @return * @return
*/ */
public int saveVehicleUserScore(VehicleUserScoreDTO vehicleUserScoreDTO) { public int saveVehicleUserScore(VehicleUserScoreDTO vehicleUserScoreDTO, AppUserDTO appUserDTO) {
if (log.isDebugEnabled()){
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();
//评分明细
vehicleUserScoreDTO.setComment(JSONObject.toJSONString(scoretype)); vehicleUserScoreDTO.setComment(JSONObject.toJSONString(scoretype));
//计算平均分值
double avgScore = scoretype.stream().mapToInt(ScoreTypeDTO::getScore).average().getAsDouble(); double avgScore = scoretype.stream().mapToInt(ScoreTypeDTO::getScore).average().getAsDouble();
VehicleUserScore vehicleUserScore = new VehicleUserScore(); VehicleUserScore vehicleUserScore = new VehicleUserScore();
BeanUtils.copyProperties(vehicleUserScoreDTO,vehicleUserScore); BeanUtils.copyProperties(vehicleUserScoreDTO,vehicleUserScore);
//vehicleUserScore.setAveScore(); vehicleUserScore.setAveScore(Long.valueOf(Math.round(avgScore)).intValue());
vehicleUserScore.setUserId(appUserDTO.getUserid());
return mapper.insertSelective(vehicleUserScore); return mapper.insertSelective(vehicleUserScore);
} }
} }
\ No newline at end of file
...@@ -23,5 +23,4 @@ public class VehicleBaseController<Biz extends BaseBiz> { ...@@ -23,5 +23,4 @@ public class VehicleBaseController<Biz extends BaseBiz> {
return userFeign.userDetailByToken(userAuthConfig.getToken(request)).getData(); return userFeign.userDetailByToken(userAuthConfig.getToken(request)).getData();
} }
} }
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.VehicleUserScoreListDTO;
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;
/** /**
* 用户评分表 * 用户评分表
* *
...@@ -12,4 +17,12 @@ import tk.mybatis.mapper.common.Mapper; ...@@ -12,4 +17,12 @@ import tk.mybatis.mapper.common.Mapper;
*/ */
public interface VehicleUserScoreMapper extends Mapper<VehicleUserScore> { public interface VehicleUserScoreMapper extends Mapper<VehicleUserScore> {
/**
* 根据审核状态和车型id查询评论
* @param modelId
* @param status
* @return
*/
@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);
} }
package com.xxfc.platform.vehicle.rest; package com.xxfc.platform.vehicle.rest;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.ace.cache.annotation.Cache;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONException; import com.alibaba.fastjson.JSONException;
import com.github.wxiaoqi.security.admin.feign.UserFeign; import com.github.wxiaoqi.security.admin.feign.UserFeign;
...@@ -94,6 +95,26 @@ public class VehicleController extends BaseController<VehicleBiz> { ...@@ -94,6 +95,26 @@ public class VehicleController extends BaseController<VehicleBiz> {
return baseBiz.discard(idList); return baseBiz.discard(idList);
} }
@RequestMapping(value = "/findById", method = RequestMethod.GET)
public RestResponse<Vehicle> findById(String id) {
Vehicle vehicle = baseBiz.get(id);
return RestResponse.data(vehicle);
}
@RequestMapping(value = "/vehicleInfo/getByIds", method = RequestMethod.GET)
public RestResponse< List<Vehicle>> getByIds(@RequestParam("ids") List<String> ids){
if(ids == null) {
return RestResponse.codeAndMessage(500, "参数为空!");
}
List<Vehicle> vehicles = new ArrayList<>();
for(String id : ids) {
log.info("查询车辆信息Id:{}",id);
Vehicle vehicle = baseBiz.get(id);
vehicles.add(vehicle);
}
return RestResponse.suc(vehicles);
}
@RequestMapping(value = "/page", method = RequestMethod.GET) @RequestMapping(value = "/page", method = RequestMethod.GET)
public RestResponse<PageDataVO<QueryVehicleVo>> getByPage(@RequestParam String vehiclePageQueryVoJson) throws Exception { public RestResponse<PageDataVO<QueryVehicleVo>> getByPage(@RequestParam String vehiclePageQueryVoJson) throws Exception {
VehiclePageQueryVo vehiclePageQueryVo = null; VehiclePageQueryVo vehiclePageQueryVo = null;
......
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.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;
...@@ -12,7 +13,7 @@ import org.springframework.web.bind.annotation.*; ...@@ -12,7 +13,7 @@ import org.springframework.web.bind.annotation.*;
/** /**
* @author libin * @author libin
* @version 1.0 * @version 1.0
* @description 评 * @description 评
* @data 2019/6/18 15:32 * @data 2019/6/18 15:32
*/ */
@RestController @RestController
...@@ -20,27 +21,29 @@ import org.springframework.web.bind.annotation.*; ...@@ -20,27 +21,29 @@ import org.springframework.web.bind.annotation.*;
public class VehicleUserScoreController extends BaseController<VehicleUserScoreBiz, VehicleUserScore> { public class VehicleUserScoreController extends BaseController<VehicleUserScoreBiz, VehicleUserScore> {
/** /**
* 保存评 * 保存评
* @param vehicleUserScoreDTO * @param vehicleUserScoreDTO
* @return * @return
*/ */
@PostMapping("/score") @PostMapping("/score")
public ObjectRestResponse<Void> saveVehicleUserScore(VehicleUserScoreDTO vehicleUserScoreDTO){ public ObjectRestResponse<Void> saveVehicleUserScore(@RequestBody VehicleUserScoreDTO vehicleUserScoreDTO, AppUserDTO appUserDTO){
int effectRows = getBaseBiz().saveVehicleUserScore(vehicleUserScoreDTO); int effectRows = getBaseBiz().saveVehicleUserScore(vehicleUserScoreDTO,appUserDTO);
if (effectRows>0){ if (effectRows>0){
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
} }
return ObjectRestResponse.createDefaultFail(); return ObjectRestResponse.createDefaultFail();
} }
/** /**
* 根据车型查询评分列表 * 根据车型查询评论列表 根据评分时间排序
* *
* @param modelId * @param modelId
* @return * @return
*/ */
@GetMapping("/scores") @GetMapping("/scores")
public ObjectRestResponse<PageDataVO<VehicleUserScoreVo>> findVehicleUserScorePageByModelId(@RequestParam("modelId") Integer modelId) { public ObjectRestResponse<PageDataVO<VehicleUserScoreVo>> findVehicleUserScorePageByModelId(@RequestParam("modelId") Integer modelId,
PageDataVO<VehicleUserScoreVo> pageDataVO = getBaseBiz().findVehicleUserScorePageByModelId(modelId); @RequestParam("pageNo")Integer pageNo,
@RequestParam("pageSize") Integer pageSize) {
PageDataVO<VehicleUserScoreVo> pageDataVO = getBaseBiz().findVehicleUserScorePageByModelId(modelId,pageNo,pageSize);
return ObjectRestResponse.succ(pageDataVO); return ObjectRestResponse.succ(pageDataVO);
} }
} }
\ 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