Commit fba230f1 authored by jiaorz's avatar jiaorz

新增车辆排班列表接口

parents 9a44ae1a b1250388
......@@ -32,7 +32,4 @@ public class AppUserDetail {
private Long updatetime;
private Integer isdel;
@Column(name = "rent_free_days")
private Integer rentFreeDays;
}
......@@ -72,9 +72,9 @@ public class BaseUserMember implements Serializable {
/**
* 剩余天数
*/
@Column(name = "s_number")
@Column(name = "rent_free_days")
@ApiModelProperty(value = "剩余天数")
private Integer sNumber;
private Integer rentFreeDays;
/**
* 有效期;0代表永久
......
......@@ -6,6 +6,7 @@ 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 org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
......@@ -22,6 +23,12 @@ import java.util.List;
public interface UserFeign {
@RequestMapping(value = "/public/userinfo-by-token")
public ObjectRestResponse<UserDTO> userinfoByToken(@RequestParam("token") String token);
/**
* token获取用户信息
* @param token
* @return
*/
@RequestMapping(value = "/public/app/userinfo-by-token")
public ObjectRestResponse<AppUserDTO> userDetailByToken(@RequestParam("token") String token);
......@@ -35,9 +42,26 @@ public interface UserFeign {
public ObjectRestResponse authentication( @RequestParam(value="userId")Integer userId,
@RequestParam(value="idNumber")String idNumber,
@RequestParam(value="status")Integer status);
@RequestMapping(value = "/member/levels", method = RequestMethod.GET)
/**
* 获取会员等级列表
* @return
*/
@RequestMapping(value = "/member/app/unauth/levels", method = RequestMethod.GET)
public List<BaseUserMemberLevel> levels();
/**
* 获取单个会员等级
* @return
*/
@RequestMapping(value = "/member/app/unauth/level/{type}", method = RequestMethod.GET)
public List<BaseUserMemberLevel> level(@PathVariable Integer type);
/**
* 批量获取用户基本信息
* @param ids
* @return
*/
@RequestMapping(value = "/public/getByUserIds", method = RequestMethod.GET)
public ObjectRestResponse<List<AppUserVo>> getByUserIds(@RequestParam("ids")List<Integer> ids);
}
......@@ -26,6 +26,7 @@ public class AppUserDTO {
private String idNumber;
private Integer certificationStatus;
private Integer rentFreeDays;
private Integer totalNumber;
private Integer memberLevel;
private Integer memberNo;
private Long cardLeave;
......
......@@ -32,7 +32,6 @@ import java.lang.reflect.Parameter;
*/
@Aspect
@Component
@ComponentScan("com.xxfc.platform")
@ConditionalOnClass(value = UserFeign.class)
public class TokenAop {
......
package com.github.wxiaoqi.security.admin.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 用户会员
*
* @author zjw
* @email nishijjo@qq.com
* @date 2019-06-18 19:38:56
*/
@Data
public class UserMemberVo {
/**
* 主键id
*/
@ApiModelProperty("主键id")
private Integer id;
/**
* 用户id
*/
@ApiModelProperty(value = "用户id")
private Integer userId;
/**
* 会员编号
*/
@ApiModelProperty(value = "会员编号")
private String memberNo;
/**
* 会员等级
*/
@ApiModelProperty(value = "会员等级")
private Integer memberLevel;
/**
* 卡内余额
*/
@ApiModelProperty(value = "卡内余额")
private Integer cardLeave;
/**
* 0:未支付 1:绑定 2:解绑
*/
@ApiModelProperty(value = "0:未支付 1:绑定 2:解绑")
private Integer isBind;
/**
* 赠送总天数
*/
@ApiModelProperty(value = "赠送总天数")
private Integer totalNumber;
/**
* 剩余天数
*/
@ApiModelProperty(value = "剩余天数")
private Integer rentFreeDays;
/**
* 有效期;0代表永久
*/
@ApiModelProperty(value = "有效期;0代表永久")
private Long validTime;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间", hidden = true )
private Long crtTime;
/**
* 更新时间
*/
@ApiModelProperty(value = "更新时间", hidden = true )
private Long updTime;
/**
* 是否删除;0-正常;1-删除
*/
@ApiModelProperty(value = "是否删除;0-正常;1-删除")
private Integer isDel;
}
......@@ -21,7 +21,9 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
@EnableDiscoveryClient
@EnableCircuitBreaker
@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
@EnableAceAuthClient
@EnableAceCache
......
package com.github.wxiaoqi.security.admin.biz;
import com.ace.cache.annotation.Cache;
import com.github.wxiaoqi.security.admin.vo.UserMemberVo;
import org.springframework.stereotype.Service;
import com.github.wxiaoqi.security.admin.entity.BaseUserMember;
import com.github.wxiaoqi.security.admin.mapper.BaseUserMemberMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import org.springframework.transaction.annotation.Transactional;
/**
* 用户会员表
......@@ -14,5 +16,14 @@ import com.github.wxiaoqi.security.common.biz.BaseBiz;
* @date 2019-06-18 19:38:56
*/
@Service
@Transactional(rollbackFor = Exception.class)
public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper,BaseUserMember> {
//获取用户会员信息
@Cache(key = "user:member{1}")
public UserMemberVo getMemberInfoByUserId(Integer userId){
return mapper.getInfoByUserId(userId);
}
}
\ No newline at end of file
package com.github.wxiaoqi.security.admin.biz;
import com.ace.cache.annotation.Cache;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.github.wxiaoqi.security.admin.entity.AppUser;
import com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel;
import com.github.wxiaoqi.security.admin.entity.Group;
import com.github.wxiaoqi.security.admin.entity.User;
import com.github.wxiaoqi.security.admin.mapper.AppUserMapper;
import com.github.wxiaoqi.security.admin.mapper.BaseUserMemberLevelMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.msg.TableResultResponse;
import com.github.wxiaoqi.security.common.util.Query;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Set;
import static com.github.wxiaoqi.security.auth.common.constatns.CommonConstants.DATA_ALL_TRUE;
/**
* @author keliii
*/
@Service
public class UserMemberBiz extends BaseBiz<BaseUserMemberLevelMapper,BaseUserMemberLevel> {
public class UserMemberLevelBiz extends BaseBiz<BaseUserMemberLevelMapper,BaseUserMemberLevel> {
@Transactional
@Cache(key="member")
public List<BaseUserMemberLevel> getLevesls() {
return mapper.selectAll();
Example example=new Example(BaseUserMemberLevel.class);
example.createCriteria().andEqualTo("isdel",0);
example.setOrderByClause(" level asc ");
return mapper.selectByExample(example);
}
}
package com.github.wxiaoqi.security.admin.mapper;
import com.github.wxiaoqi.security.admin.entity.BaseUserMember;
import com.github.wxiaoqi.security.admin.vo.UserMemberVo;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;
/**
......@@ -11,5 +13,8 @@ import tk.mybatis.mapper.common.Mapper;
* @date 2019-06-18 19:38:56
*/
public interface BaseUserMemberMapper extends Mapper<BaseUserMember> {
//获取用户会员信息
public UserMemberVo getInfoByUserId(@Param("userId")Integer userId);
}
......@@ -3,13 +3,16 @@ 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.AppUserDetailBiz;
import com.github.wxiaoqi.security.admin.biz.BaseUserMemberBiz;
import com.github.wxiaoqi.security.admin.entity.AppUser;
import com.github.wxiaoqi.security.admin.entity.AppUserDetail;
import com.github.wxiaoqi.security.admin.entity.Group;
import com.github.wxiaoqi.security.admin.entity.User;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
import com.github.wxiaoqi.security.admin.vo.AppUserGroups;
import com.github.wxiaoqi.security.admin.vo.AppUserInfoVo;
import com.github.wxiaoqi.security.admin.vo.AppUserVo;
import com.github.wxiaoqi.security.admin.vo.UserMemberVo;
import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
import com.github.wxiaoqi.security.auth.client.jwt.UserAuthUtil;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
......@@ -18,6 +21,7 @@ import com.github.wxiaoqi.security.common.rest.CommonBaseController;
import com.github.wxiaoqi.security.common.util.Query;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.beanutils.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
......@@ -45,6 +49,9 @@ public class AppUserController extends CommonBaseController {
@Autowired
AppUserDetailBiz userDetailBiz;
@Autowired
private BaseUserMemberBiz userMemberBiz;
@GetMapping("page")
public TableResultResponse list(@RequestParam Map<String, Object> params) {
Query query = new Query(params);
......@@ -102,17 +109,26 @@ public class AppUserController extends CommonBaseController {
* @throws Exception
*/
@GetMapping("/info")
public ObjectRestResponse<AppUserVo> getUserInfo()throws Exception {
public ObjectRestResponse<AppUserDTO> getUserInfo()throws Exception {
String username = userAuthUtil.getInfoFromToken(userAuthConfig.getToken(request)).getId();
if (username == null) {
throw new Exception();
}
AppUserDTO userDTO=new AppUserDTO();
Integer userid=Integer.parseInt(username);
AppUserVo user = userDetailBiz.getUserInfoById(userid);
if (user == null) {
AppUserVo userVo = userDetailBiz.getUserInfoById(userid);
if (userVo == null) {
throw new Exception();
}
return ObjectRestResponse.succ(user);
BeanUtils.copyProperties(userDTO,userVo);
if(userVo.getIsMember()!=null&&userVo.getIsMember()>0){
//获取用户会员信息
UserMemberVo memberVo=userMemberBiz.getMemberInfoByUserId(userid);
if(memberVo!=null){
BeanUtils.copyProperties(userDTO,memberVo);
}
}
return ObjectRestResponse.succ(userDTO);
}
/**
......@@ -130,13 +146,5 @@ public class AppUserController extends CommonBaseController {
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);
}
}
package com.github.wxiaoqi.security.admin.rest;
import com.github.wxiaoqi.security.admin.biz.AppUserDetailBiz;
import com.github.wxiaoqi.security.admin.biz.UserBiz;
import com.github.wxiaoqi.security.admin.biz.UserMemberBiz;
import com.github.wxiaoqi.security.admin.entity.AppUserDetail;
import com.github.wxiaoqi.security.admin.biz.UserMemberLevelBiz;
import com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel;
import com.github.wxiaoqi.security.admin.entity.User;
import com.github.wxiaoqi.security.auth.client.jwt.UserAuthUtil;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import io.swagger.models.auth.In;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.util.List;
......@@ -24,14 +16,30 @@ import java.util.List;
*/
@RestController
@RequestMapping("member")
public class MemberController {
public class MemberLevelController {
@Autowired
private UserMemberBiz memberBiz;
private UserMemberLevelBiz memberBiz;
@RequestMapping(value = "/levels", method = RequestMethod.GET)
@RequestMapping(value = "/app/unauth/levels", method = RequestMethod.GET)
public @ResponseBody
List<BaseUserMemberLevel> levels(String token) throws Exception {
List<BaseUserMemberLevel> levels() throws Exception {
return memberBiz.getLevesls();
}
@RequestMapping(value = "/app/unauth/level/{type}", method = RequestMethod.GET)
public @ResponseBody
BaseUserMemberLevel level(@PathVariable Integer type) throws Exception {
List<BaseUserMemberLevel> list=memberBiz.getLevesls();
if(type!=null){
if(list.size()>0){
for (BaseUserMemberLevel userMemberLevel:list){
if(userMemberLevel.getLevel()!=null&&userMemberLevel.getLevel()==type){
return userMemberLevel;
}
}
}
}
return null;
}
}
package com.github.wxiaoqi.security.admin.rest;
import com.github.wxiaoqi.security.admin.biz.AppUserDetailBiz;
import com.github.wxiaoqi.security.admin.biz.AppUserLoginBiz;
import com.github.wxiaoqi.security.admin.biz.MenuBiz;
import com.github.wxiaoqi.security.admin.biz.UserBiz;
import com.github.wxiaoqi.security.admin.biz.*;
import com.github.wxiaoqi.security.admin.entity.AppUserDetail;
import com.github.wxiaoqi.security.admin.entity.Group;
import com.github.wxiaoqi.security.admin.entity.Menu;
......@@ -13,6 +10,7 @@ import com.github.wxiaoqi.security.admin.rpc.service.PermissionService;
import com.github.wxiaoqi.security.admin.vo.AppUserVo;
import com.github.wxiaoqi.security.admin.vo.FrontUser;
import com.github.wxiaoqi.security.admin.vo.MenuTree;
import com.github.wxiaoqi.security.admin.vo.UserMemberVo;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken;
import com.github.wxiaoqi.security.auth.client.jwt.UserAuthUtil;
import com.github.wxiaoqi.security.common.exception.BaseException;
......@@ -45,11 +43,10 @@ public class PublicController {
@Autowired
private UserBiz userBiz;
@Autowired
private AppUserLoginBiz userLoginBiz;
@Autowired
private AppUserDetailBiz detailBiz;
@Autowired
private BaseUserMemberBiz userMemberBiz;
@Autowired
private UserAuthUtil userAuthUtil;
......@@ -77,12 +74,20 @@ public class PublicController {
}
AppUserDTO userDTO=new AppUserDTO();
Integer userid=Integer.parseInt(username);
AppUserDetail user = detailBiz.getUserByUserid(userid);
if (user == null) {
//获取用户基础信息
AppUserVo userVo = detailBiz.getUserInfoById(userid);
if (userVo == null) {
throw new BaseException(ResultCode.NOTEXIST_CODE);
}
BeanUtils.copyProperties(userDTO,user);
return new ObjectRestResponse<AppUserDetail>().rel(true).data(user);
BeanUtils.copyProperties(userDTO,userVo);
if(userVo.getIsMember()!=null&&userVo.getIsMember()>0){
//获取用户会员信息
UserMemberVo memberVo=userMemberBiz.getMemberInfoByUserId(userid);
if(memberVo!=null){
BeanUtils.copyProperties(userDTO,memberVo);
}
}
return new ObjectRestResponse<AppUserDetail>().rel(true).data(userDTO);
}
@GetMapping("/getByUserIds")
......
......@@ -7,6 +7,7 @@ import com.github.wxiaoqi.security.admin.biz.AppUserLoginBiz;
import com.github.wxiaoqi.security.admin.biz.ElementBiz;
import com.github.wxiaoqi.security.admin.constant.RedisKey;
import com.github.wxiaoqi.security.admin.entity.*;
import com.github.wxiaoqi.security.admin.vo.AppUserVo;
import com.github.wxiaoqi.security.api.vo.authority.PermissionInfo;
import com.github.wxiaoqi.security.api.vo.user.AppUserInfo;
import com.github.wxiaoqi.security.common.msg.BaseResponse;
......@@ -258,13 +259,13 @@ public class AppPermissionService {
if (userLoign != null) {
data.put("nickname", nickname);
data.put("headerurl", headimgurl);
AppUserDetail appUserDetail = appUserDetailBiz.getUserByUserid(userid);
if (appUserDetail != null) {
if (StringUtils.isNotBlank(appUserDetail.getNickname())) {
data.put("nickname", appUserDetail.getNickname());
AppUserVo userVo = appUserDetailBiz.getUserInfoById(userid);
if (userVo != null) {
if (StringUtils.isNotBlank(userVo.getNickname())) {
data.put("nickname", userVo.getNickname());
}
if (StringUtils.isNotBlank(appUserDetail.getHeadimgurl())) {
data.put("headerurl", appUserDetail.getHeadimgurl());
if (StringUtils.isNotBlank(userVo.getHeadimgurl())) {
data.put("headerurl", userVo.getHeadimgurl());
}
}
// 缓存操作
......@@ -336,9 +337,9 @@ public class AppPermissionService {
}
userLogin.setUpdatetime(now);
appUserLoginBiz.updateSelectiveById(userLogin);
AppUserDetail userDetail = appUserDetailBiz.getUserByUserid(userid);
if (userDetail == null) {
userDetail = new AppUserDetail();
AppUserVo userVo = appUserDetailBiz.getUserInfoById(userid);
AppUserDetail userDetail = new AppUserDetail();
if (userVo == null) {
userDetail.setUserid(userid);
userDetail.setHeadimgurl(headimgurl);
userDetail.setNickname(nickname);
......@@ -346,11 +347,12 @@ public class AppPermissionService {
userDetail.setUpdatetime(now);
userDetail.setIsdel(0);
appUserDetailBiz.insertSelective(userDetail);
} else {
} /*else {
userDetail.setId(userVo.getId());
userDetail.setHeadimgurl(headimgurl);
userDetail.setNickname(nickname);
appUserDetailBiz.updateSelectiveById(userDetail);
}
}*/
// 登录结果要做做统一处理
JSONObject data = autoLogin(userid, username, headimgurl, nickname);
// 到im注册,获取返回结果
......@@ -432,12 +434,12 @@ public class AppPermissionService {
return JsonResultUtil.createFailedResult(ResultCode.EXIST_CODE, "用户已被禁用");
}
Integer userid = userLogin.getId();
AppUserDetail userDetail = appUserDetailBiz.getUserByUserid(userid);
AppUserVo userVo = appUserDetailBiz.getUserInfoById(userid);
String headimgurl = "";
String nickname = "";
if (userDetail != null) {
headimgurl = userDetail.getHeadimgurl();
nickname = userDetail.getNickname();
if (userVo != null) {
headimgurl = userVo.getHeadimgurl();
nickname = userVo.getNickname();
}
JSONObject data = autoLogin(userid, userLogin.getUsername(), headimgurl, nickname);
// 到im注册,获取返回结果
......
......@@ -4,6 +4,7 @@
<resultMap id="AppUserVoMap" type="com.github.wxiaoqi.security.admin.vo.AppUserVo">
<result column="id" property="id" />
<result column="userid" property="userid" />
<result column="im_userid" property="imUserid" />
<result column="username" property="username" />
<result column="wx_openid" property="wxOpenid" />
<result column="unionid" property="unionid" />
......@@ -11,11 +12,10 @@
<result column="status" property="status" />
<result column="id_number" property="idNumber" />
<result column="certification_status" property="certificationStatus" />
<result column="isMember" property="is_member" />
<result column="is_member" property="isMember" />
<result column="nickname" property="nickname" />
<result column="realname" property="realname" />
<result column="headimgurl" property="headimgurl" />
<result column="isMember" property="is_member" />
<result column="birthday" property="birthday" />
<result column="email" property="email" />
<result column="sex" property="sex" />
......@@ -26,7 +26,7 @@
<!-- 获取用户信息 -->
<select id="getUserInfo" resultMap="AppUserVoMap">
select * from app_user_login l
select l.im_userid,l.username,l.wx_openid,l.unionid,l.openid,l.status,l.id_number,l.certification_status,d.* from app_user_login l
left join app_user_detail d
on d.userid = l.id where d.userid = #{userId} limit 1
</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.github.wxiaoqi.security.admin.mapper.BaseUserMemberMapper">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.github.wxiaoqi.security.admin.vo.UserMemberVo" id="baseUserMemberMap">
<result property="id" column="id"/>
<result property="userId" column="user_id"/>
<result property="memberNo" column="member_no"/>
<result property="memberLevel" column="member_level"/>
<result property="cardLeave" column="card_leave"/>
<result property="isBind" column="is_bind"/>
<result property="totalNumber" column="total_number"/>
<result property="rentFreeDays" column="rent_free_days"/>
<result property="validTime" column="valid_time"/>
<result property="crtTime" column="crt_time"/>
<result property="updTime" column="upd_time"/>
<result property="isDel" column="is_del"/>
</resultMap>
<select id="getInfoByUserId" resultMap="baseUserMemberMap">
select * from base_user_member where user_id=#{userId} and is_del=0 limit 1
</select>
</mapper>
\ No newline at end of file
......@@ -10,7 +10,7 @@ spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
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
password: sslcloud123*()
jackson:
......
#代码生成器,配置信息
#\u4EE3\u7801\u751F\u6210\u5668\uFF0C\u914D\u7F6E\u4FE1\u606F
#包名
package=com.xxfc.platform.order
#作者
author=zjw
#\u5305\u540D
package=com.xxfc.platform.campsite
#\u4F5C\u8005
author=libin
#Email
email=nishijjo@qq.com
#表前错误的Unicode字符串!
email=18178966185@163.com
#\u8868\u524D\u9519\u8BEF\u7684Unicode\u5B57\u7B26\u4E32!
tablePrefix=
#前端模块前缀
#\u524D\u7AEF\u6A21\u5757\u524D\u7F00
mainModule=auth
#类型转换,配置信息
#\u7C7B\u578B\u8F6C\u6362\uFF0C\u914D\u7F6E\u4FE1\u606F
tinyint=Integer
smallint=Integer
mediumint=Integer
......
......@@ -5,8 +5,9 @@ import ${package}.biz.${className}Biz;
import ${package}.entity.${className};
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Controller
@RestController
@RequestMapping("${secondModuleName}")
public class ${className}Controller extends BaseController<${className}Biz,${className}> {
......
......@@ -3,6 +3,7 @@ package com.xinxincaravan.caravan.vehicle.biz;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
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.entity.Vehicle;
import com.xinxincaravan.caravan.vehicle.entity.VehicleDepartureLog;
......@@ -61,4 +62,5 @@ public class VehicleDepartureService {
statisticData.setDepartureMileage(vehicleDepartureLogMapper.selectMileageByVehicleId(vehicle.getId()));
return statisticData;
}
}
......@@ -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.config.UserAuthConfig;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xinxincaravan.caravan.vehicle.biz.VehicleBiz;
import com.xinxincaravan.caravan.vehicle.biz.VehicleDepartureService;
import com.xinxincaravan.caravan.vehicle.common.RestResponse;
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.dto.UserDTO;
import com.xinxincaravan.caravan.vehicle.vo.VehicleDepartureStatisticDataVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
......@@ -17,6 +20,9 @@ import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List;
/**
* 车辆出行状态
*/
@IgnoreClientToken
@RestController
@RequestMapping("departure")
......@@ -33,6 +39,7 @@ public class VehicleDepartureController {
@Autowired
private UserAuthConfig userAuthConfig;
@GetMapping("page")
public RestResponse page(String numberPlate, Integer page, Integer limit, HttpServletRequest request) {
if (page == null || limit == null) {
......@@ -70,6 +77,4 @@ public class VehicleDepartureController {
}
return RestResponse.suc(vehicleDepartureService.statistic(numberPlate));
}
}
......@@ -7,12 +7,13 @@
<groupId>com.github.wxiaoqi</groupId>
<version>2.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>xx-campsite</artifactId>
<packaging>pom</packaging>
<groupId>com.xxfc.platform</groupId>
<modules>
<module>xx-campsite-api</module>
<module>xx-campsite-server</module>
</modules>
<modelVersion>4.0.0</modelVersion>
<packaging>pom</packaging>
<artifactId>xx-campsite</artifactId>
</project>
\ No newline at end of file
......@@ -3,15 +3,13 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>xx-campsite</artifactId>
<groupId>com.github.wxiaoqi</groupId>
<groupId>com.xxfc.common</groupId>
<artifactId>xx-common-platform</artifactId>
<version>2.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.xxfc.platform</groupId>
<artifactId>xx-campsite-api</artifactId>
<name>xx-campsite-api</name>
<description>The xxfc campsite api</description>
<dependencies>
<dependency>
<groupId>com.github.wxiaoqi</groupId>
......
......@@ -17,14 +17,9 @@ import java.io.Serializable;
*/
@Data
@Table(name = "campsite_shop")
@ApiModel(value = "营地店铺vo" )
@ApiModel(value = "营地店铺dto" )
public class CampsiteShopDTO implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("主键id")
private Integer id;
/**
* 店铺名称
*/
......@@ -164,10 +159,9 @@ public class CampsiteShopDTO implements Serializable {
private Long updTime;
/**
* 是否删除:0-正常;1-删除
* 热度值
*/
@ApiModelProperty(value = "是否删除:0-正常;1-删除")
private Integer isDel;
@ApiModelProperty(value = "热度值")
private Integer hot;
}
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;
}
......@@ -196,5 +196,17 @@ public class CampsiteShop implements Serializable {
@ApiModelProperty(value = "是否删除:0-正常;1-删除")
private Integer isDel;
/**
* 热度值
*/
@Column(name = "hot")
@ApiModelProperty(value = "热度值")
private Integer hot;
/**
* 上下架状态 0-创建状态 1-上架 2-下架
*/
@Column(name = "sale_state")
@ApiModelProperty(value = "上下架状态 0-创建状态 1-上架 2-下架")
private Integer saleState;
}
......@@ -59,9 +59,9 @@ public class CampsiteTag implements Serializable {
/**
* 创建时间
*/
@Column(name = "ctr_time")
@Column(name = "crt_time")
@ApiModelProperty(value = "创建时间")
private Long ctrTime;
private Long crtTime;
/**
* 更新时间
......@@ -77,5 +77,10 @@ public class CampsiteTag implements Serializable {
@ApiModelProperty(value = "是否删除:0-正常;1-删除")
private Integer isDel;
/**
* 标签底图
*/
@Column(name = "tag_url")
@ApiModelProperty(value = "标签底图")
private String tagUrl;
}
......@@ -28,6 +28,18 @@ public class CampsiteShopDetailVo {
@ApiModelProperty("店铺名称")
private String name;
/**
* 地址-省/直辖市(名称)
*/
@ApiModelProperty("地址-省/直辖市(名称)")
private String provinceName;
/**
* 地址-市(名称)
*/
@ApiModelProperty("地址-市(名称)")
private String cityName;
/**
* 具体地址
*/
......@@ -57,7 +69,20 @@ public class CampsiteShopDetailVo {
*
*/
@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;
}
......@@ -3,25 +3,36 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>xx-campsite</artifactId>
<groupId>com.github.wxiaoqi</groupId>
<groupId>com.xxfc.common</groupId>
<artifactId>xx-common-platform-web</artifactId>
<version>2.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.xxfc.platform</groupId>
<artifactId>xx-campsite-server</artifactId>
<name>xx-campsite-server</name>
<description>the xxfc travel Campsite</description>
<dependencies>
<dependency>
<groupId>com.github.wxiaoqi</groupId>
<groupId>com.xxfc.platform</groupId>
<artifactId>xx-campsite-api</artifactId>
<version>2.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.xxfc.common</groupId>
<artifactId>xx-common-platform-web</artifactId>
<version>2.0-SNAPSHOT</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
\ No newline at end of file
......@@ -64,7 +64,7 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper,CampsiteShop> {
return campsiteShopPageDataVO;
}
if (log.isDebugEnabled()){
log.debug("根据type=[{}]查询到的店铺数据:[{}]",type,campsiteShopPageDTOS);
log.debug("根据type=【{}】查询到的店铺数据:【{}】",type,campsiteShopPageDTOS);
}
List<CampsiteShopPageVo> campsiteShopPageVoList = new ArrayList<>();
for (CampsiteShopPageDTO campsiteShopPageDTO : campsiteShopPageDTOS) {
......@@ -88,13 +88,13 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper,CampsiteShop> {
//从店铺表根据店铺id查询
CampsiteShopDetailDTO campsiteShopDetailDTO = mapper.findCampsiteShopDetailById(id);
if (log.isDebugEnabled()){
log.debug("根据店铺id=[{}]查询出店铺信息[{}]",id,campsiteShopDetailDTO);
log.debug("根据店铺id=【{}】查询出店铺信息【{}】",id,campsiteShopDetailDTO);
}
BeanUtils.copyProperties(campsiteShopDetailDTO,campsiteShopDetailVo);
//从轮播表根据店铺id查询
List<CampsiteShopCarouselDetailDTO> campsiteShopCarouselDTOS = campsiteShopCarouselBiz.findByCampsiteShopId(id);
if (log.isDebugEnabled()){
log.debug("根据店铺id=[{}]查询出店铺轮播图信息:[{}]",id,campsiteShopCarouselDTOS);
log.debug("根据店铺id=【{}】查询出店铺轮播图信息:【{}】",id,campsiteShopCarouselDTOS);
}
List<CampsiteShopCarouselDetailVo> campsiteShopCarouselDetailVos = new ArrayList<>();
campsiteShopCarouselDTOS.forEach(campsiteShopCarouselDetailDTO -> {
......@@ -106,15 +106,13 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper,CampsiteShop> {
//从店铺类型表根据店铺id查询 -->类型列表拼接
List<String> typeNameList = campsiteShopTagBiz.findByCampsiteShopId(id);
if (log.isDebugEnabled()){
log.debug("根据店铺id=[{}]查询出店铺类型:[{}]",id,typeNameList);
log.debug("根据店铺id=【{}】查询出店铺类型:【{}】",id,typeNameList);
}
campsiteShopDetailVo.setTypeNames(typeNameList.stream().collect(Collectors.joining("|")));
//具体地址拼接
campsiteShopDetailVo.setAddress(String.format("%s%s%s",campsiteShopDetailDTO.getProvinceName(),campsiteShopDetailDTO.getCityName(),campsiteShopDetailDTO.getAddress()));
campsiteShopDetailVo.setTypeNames(typeNameList);
//根据经纬度算距离
double distance = getDistance(campsiteShopDetailDTO.getLongitude(),campsiteShopDetailDTO.getLatitude(),longitude,latitude);
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));
return campsiteShopDetailVo;
......
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 com.xxfc.platform.campsite.entity.CampsiteTag;
import com.xxfc.platform.campsite.mapper.CampsiteTagMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import java.util.List;
/**
* 店铺类型表
*
......@@ -15,4 +23,26 @@ import com.github.wxiaoqi.security.common.biz.BaseBiz;
*/
@Service
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;
}
/**
* 更新营地类型状态
* @param tagId
* @return
*/
public int updateCampsiteTagStatus(Integer tagId) {
return mapper.updateCampsiteTagStatus(tagId,1);
}
}
\ 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;
import com.xxfc.platform.campsite.dto.CampsiteTagListDTO;
import com.xxfc.platform.campsite.entity.CampsiteTag;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
/**
* 店铺类型表
*
......@@ -11,5 +16,20 @@ import tk.mybatis.mapper.common.Mapper;
* @date 2019-06-17 10:28:48
*/
public interface CampsiteTagMapper extends Mapper<CampsiteTag> {
/**
* 查询可用营地列表
* @return
*/
List<CampsiteTagListDTO> findCampsiteTags();
/**
* 更新类型的删除状态
* @param tagId
* @param status
* @return
*/
@Update("update `campsite_tag` set `is_del`=#{status} where `id`=#{tagId}")
int updateCampsiteTagStatus(@Param("tagId") Integer tagId, @Param("status") int status);
}
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.xxfc.platform.campsite.biz.CampsiteTagBiz;
import com.xxfc.platform.campsite.entity.CampsiteTag;
import org.springframework.stereotype.Controller;
import com.xxfc.platform.campsite.vo.CampsiteTagListVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @author libin
* @version 1.0
* @description 店铺类型
* @description 营地类型
* @data 2019/6/17 13:36
*/
@RestController
@RequestMapping("campsiteTag")
@Api(tags = "营地类型")
public class CampsiteTagController extends BaseController<CampsiteTagBiz,CampsiteTag> {
/**
* 查询营地列表
* @return
*/
@GetMapping("/app/unauth/tags")
@IgnoreClientToken
@ApiOperation(value = "营地列表")
public ObjectRestResponse<CampsiteTagListVo> findCampstieTags(){
List<CampsiteTagListVo> campsiteTagListVolist = getBaseBiz().findCampsiteTags();
return ObjectRestResponse.succ(campsiteTagListVolist);
}
/**
* 根据id逻辑删除
* @param id
* @return
*/
@Override
public ObjectRestResponse<CampsiteTag> remove(@PathVariable("id") int id) {
int effectRows = getBaseBiz().updateCampsiteTagStatus(id);
if (effectRows>0){
ObjectRestResponse.succ();
}
return ObjectRestResponse.createDefaultFail();
}
}
\ No newline at end of file
......@@ -10,9 +10,12 @@
<result property="name" column="name"/>
<result property="isSearch" column="is_search"/>
<result property="rank" column="rank"/>
<result property="ctrTime" column="ctr_time"/>
<result property="crtTime" column="crt_time"/>
<result property="updTime" column="upd_time"/>
<result property="isDel" column="is_del"/>
</resultMap>
<select id="findCampsiteTags" resultType="com.xxfc.platform.campsite.dto.CampsiteTagListDTO">
select `id`,`name` from `campsite_tag` where `is_del`=0;
</select>
</mapper>
\ No newline at end of file
......@@ -54,7 +54,7 @@
<!--查询旅游路线列表-->
<select id="getGoodList" parameterType="java.util.Map" resultMap="tourGoodMap">
SELECT * from tour_good t
where t.is_del=1 AND t.status=1
where t.is_del=0 AND t.status=1
<if test="params.query != null and params.query != ''">
and (t.`name` like CONCAT('%',#{params.query},'%') or t.introduce like CONCAT('%',#{params.query},'%'))
</if>
......
......@@ -7,7 +7,7 @@ import javax.persistence.Id;
import java.util.Date;
@Data
public class Vehicle {
public class Vehicle {
/**
* 主键(uuid)
*/
......
......@@ -74,6 +74,11 @@ public class VehiclePlatCata implements Serializable {
@Column(name = "isMore")
@ApiModelProperty(value = "多选 0:单选 1:多选" )
private Integer isMore;
//是否多选
@Column(name = "start_using")
@ApiModelProperty(value = "是否作为客户端查询条件:0-否,1-是" )
private Integer startUsing;
}
package com.xxfc.platform.vehicle.pojo;
import com.xxfc.platform.vehicle.entity.Vehicle;
import com.xxfc.platform.vehicle.entity.VehicleBookRecord;
import com.xxfc.platform.vehicle.entity.VehicleModel;
import lombok.Data;
import java.util.List;
@Data
public class VehicleAndModelInfoVo extends Vehicle {
VehicleModel vehicleModel;
List<VehicleBookRecord> vehicleBookRecord;
}
package com.xxfc.platform.vehicle.pojo;
import com.xxfc.platform.vehicle.entity.Vehicle;
import com.xxfc.platform.vehicle.entity.VehicleBookRecord;
import lombok.Data;
@Data
public class VehicleRecordInfoVo extends VehicleBookRecord {
Vehicle vehicle;
VehicleAndModelInfoVo vehicleAndModelInfoVo;
}
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;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
......@@ -19,21 +20,17 @@ public class VehicleUserScoreDTO {
private Integer id;
/**
* 用户id
*/
@ApiModelProperty(value = "用户id")
private Integer userId;
/**
* 订单id
* 订单id
*/
@ApiModelProperty(value = "订单id")
@NotNull(message = "订单id不能为空")
private Integer orderId;
/**
* 车型id
* 车型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.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 VehicleUserScoreListDTO {
/**
* 用户id
*/
@ApiModelProperty(value = "用户id")
private Integer userId;
/**
* 评价分
*/
@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;
}
\ 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;
}
package com.xxfc.platform.vehicle.pojo.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author libin
* @version 1.0
* @description TODO
* @description 订单评价vo
* @data 2019/6/18 15:26
*/
@Data
public class VehicleUserScoreVo {
/**
* 主键id
*/
@ApiModelProperty("主键id")
private Integer id;
/**
* 用户id
*/
@ApiModelProperty("用户id")
private String 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 ="车型名称")
private String modelName;
/**
* 车型关键标签
*/
@ApiModelProperty(value = "车型关键标签")
private String modelKeyWorld;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间", hidden = true )
private Long crtTime;
/**
* 类型-评分
*/
private List<ScoreTypeVo> scoreTypeVos;
}
......@@ -7,8 +7,11 @@ import com.github.pagehelper.PageHelper;
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.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.Query;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
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.Maps;
import com.xxfc.platform.vehicle.common.CustomIllegalParamException;
......@@ -27,6 +30,7 @@ import com.xxfc.platform.vehicle.pojo.*;
import com.xxfc.platform.vehicle.pojo.dto.VehiclePlanDto;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.BeanUtilsBean;
import org.apache.commons.beanutils.PropertyUtils;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.MapUtils;
......@@ -46,8 +50,11 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.web.multipart.MultipartFile;
import tk.mybatis.mapper.entity.Example;
import tk.mybatis.mapper.weekend.WeekendSqls;
import java.io.File;
import java.lang.reflect.InvocationTargetException;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
......@@ -76,6 +83,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> {
@Autowired
private RedisTemplate customRedisTemplate;
@Value("${vehicle.baseUploadPath}")
private String baseUploadPath ;
......@@ -914,7 +922,107 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> {
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()));
}
public List<VehicleCountVo> countVehicleByParam(VehiclePlanDto vehiclePlanDto) {
return mapper.countVehicleByParam(vehiclePlanDto);
}
public PageDataVO<VehicleAndModelInfoVo> getAllVehicle(VehiclePlanDto vehiclePlanDto) {
Query query = new Query(vehiclePlanDto);
PageDataVO<VehicleAndModelInfoVo> pageDataVO = PageDataVO.pageInfo(query, () -> mapper.getAllVehicle(query.getSuper()));
return pageDataVO;
}
}
......@@ -58,4 +58,12 @@ public class VehicleCataBiz extends BaseBiz<VehicleCataMapper, VehicleCata> {
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;
import com.github.pagehelper.PageHelper;
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.msg.ObjectRestResponse;
import com.xxfc.platform.vehicle.constant.ResCode.ResCode;
import com.xxfc.platform.vehicle.entity.Vehicle;
import com.xxfc.platform.vehicle.entity.VehicleDepartureLog;
......@@ -12,12 +14,16 @@ import com.xxfc.platform.vehicle.pojo.VehicleDepartureLogVo;
import com.xxfc.platform.vehicle.pojo.VehicleDepartureStatisticDataVo;
import org.springframework.beans.factory.annotation.Autowired;
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.Date;
import java.util.List;
@Service
public class VehicleDepartureService {
public class VehicleDepartureService extends BaseBiz<VehicleDepartureLogMapper, VehicleDepartureLog> {
@Autowired
VehicleDepartureLogMapper vehicleDepartureLogMapper;
......@@ -61,4 +67,51 @@ public class VehicleDepartureService {
statisticData.setDepartureMileage(vehicleDepartureLogMapper.selectMileageByVehicleId(vehicle.getId()));
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> {
}
/**
*更新车型的评分
* @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;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.vehicle.common.RestResponse;
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.VehiclePlatCata;
import com.xxfc.platform.vehicle.mapper.VehiclePlatCataMapper;
......@@ -18,9 +19,14 @@ import com.xxfc.platform.vehicle.pojo.Cascade;
import com.xxfc.platform.vehicle.pojo.CataVo;
import lombok.extern.slf4j.Slf4j;
import org.assertj.core.util.Arrays;
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.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example;
import tk.mybatis.mapper.weekend.WeekendSqls;
......@@ -138,7 +144,7 @@ public class VehiclePlatCataBiz extends BaseBiz<VehiclePlatCataMapper, VehiclePl
* @param cascade
* @return
*/
@Transactional
public ObjectRestResponse addCascade(Cascade<VehiclePlatCata> cascade) {
//取出一级标签
......@@ -146,9 +152,10 @@ public class VehiclePlatCataBiz extends BaseBiz<VehiclePlatCataMapper, VehiclePl
parent.setCrtTime(System.currentTimeMillis());
parent.setState(0);
//插入一级标签获得id
parent.setIsMore(0);
parent.setRank(0);
mapper.insertSelective(parent);
Integer parentId = parent.getId();
//取出二级标签
List<VehiclePlatCata> childrens = cascade.getChildren();
//逐条插入二级标签
......@@ -157,12 +164,13 @@ public class VehiclePlatCataBiz extends BaseBiz<VehiclePlatCataMapper, VehiclePl
children.setState(0);
children.setCrtTime(System.currentTimeMillis());
}
mapper.addPlatCataList(childrens);
return ObjectRestResponse.succ();
mapper.addPlatCataList(childrens);
return ObjectRestResponse.succ();
}
/**
* 根据父类id获取子标签
*
......@@ -294,9 +302,9 @@ public class VehiclePlatCataBiz extends BaseBiz<VehiclePlatCataMapper, VehiclePl
* @param cas
* @return
*/
@Transactional
public ObjectRestResponse updateAndAdd( Cascade<VehiclePlatCata> cas) {
try {
if (cas==null||cas.getParent()==null) {
return ObjectRestResponse.createDefaultFail();
}
......@@ -308,10 +316,6 @@ public class VehiclePlatCataBiz extends BaseBiz<VehiclePlatCataMapper, VehiclePl
return updateCascade(cas);
}
} catch (Exception e) {
e.printStackTrace();
return ObjectRestResponse.createDefaultFail();
}
}
......@@ -321,7 +325,7 @@ public class VehiclePlatCataBiz extends BaseBiz<VehiclePlatCataMapper, VehiclePl
* @param cas
* @return
*/
@Transactional
public ObjectRestResponse updateCascade(Cascade<VehiclePlatCata> cas) {
try {
......@@ -340,7 +344,7 @@ public class VehiclePlatCataBiz extends BaseBiz<VehiclePlatCataMapper, VehiclePl
//遍历
for (VehiclePlatCata child : children) {
//判断子标签是更新还是新增
if (child.getId()==null){
if (child.getId()==null||child.getId()==0){
child.setState(0);
child.setUpdTime(System.currentTimeMillis());
//添加
......@@ -352,7 +356,8 @@ public class VehiclePlatCataBiz extends BaseBiz<VehiclePlatCataMapper, VehiclePl
VehicleCata vehicleCata = new VehicleCata();
vehicleCata.setCataId(id);
//修改车型和标签的中间表
vehicleCataBiz.delete(vehicleCata);
vehicleCata.setIsdel(1);
vehicleCataBiz.updateIsdalByVehicleCataId(vehicleCata);
}
//更新
......@@ -404,4 +409,57 @@ public class VehiclePlatCataBiz extends BaseBiz<VehiclePlatCataMapper, VehiclePl
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;
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.dto.AppUserDTO;
import com.github.wxiaoqi.security.admin.vo.AppUserVo;
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.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.dto.VehicleUserScoreDetailDTO;
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 io.swagger.annotations.ApiModelProperty;
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.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.time.Instant;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
......@@ -23,16 +41,51 @@ import java.util.List;
* @date 2019-06-18 15:03:58
*/
@Service
@Slf4j
public class VehicleUserScoreBiz extends BaseBiz<VehicleUserScoreMapper, VehicleUserScore> {
@Resource
private UserFeign userFeign;
@Autowired
private VehicleModelBiz vehicleModelBiz;
/**
* 根据车型id查询
* @param modelId
* @return
*/
public PageDataVO<VehicleUserScoreVo> findVehicleUserScorePageByModelId(Integer modelId) {
return null;
public PageDataVO<VehicleUserScoreVo> findVehicleUserScorePageByModelId(Integer modelId,Integer pageNo,Integer pageSize) {
PageDataVO<VehicleUserScoreVo> pageDataVO = new PageDataVO<>();
//根据模型id查找
PageDataVO<VehicleUserScoreListDTO> vehicleUserScoreDTOPageDataVO = PageDataVO.pageInfo(pageNo,pageSize,()->mapper.findyByModelIdAndApproved(modelId,1));
List<VehicleUserScoreListDTO> dataVOData = vehicleUserScoreDTOPageDataVO.getData();
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;
}
/**
......@@ -40,14 +93,61 @@ public class VehicleUserScoreBiz extends BaseBiz<VehicleUserScoreMapper, Vehicle
* @param vehicleUserScoreDTO
* @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());
List<ScoreTypeDTO> scoretype = vehicleUserScoreDTO.getScoretype();
vehicleUserScoreDTO.setComment(JSONObject.toJSONString(scoretype));
double avgScore = scoretype.stream().mapToInt(ScoreTypeDTO::getScore).average().getAsDouble();
int avgScore =0;
if (CollectionUtils.isNotEmpty(scoretype)) {
//评分明细
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();
BeanUtils.copyProperties(vehicleUserScoreDTO,vehicleUserScore);
//vehicleUserScore.setAveScore();
vehicleUserScore.setAveScore(avgScore);
vehicleUserScore.setUserId(appUserDTO.getUserid());
vehicleUserScore.setUpdTime(Instant.now().toEpochMilli());
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
......@@ -23,5 +23,4 @@ public class VehicleBaseController<Biz extends BaseBiz> {
return userFeign.userDetailByToken(userAuthConfig.getToken(request)).getData();
}
}
......@@ -32,4 +32,6 @@ public interface VehicleBookRecordMapper extends Mapper<VehicleBookRecord> {
public VehicleBookRecord getById(Map<String, Object> params);
public List<VehicleRecordInfoVo> getByParam(Map<String, Object> params);
public List<VehicleBookRecord> getByVehicleId(String vehicleId);
}
\ No newline at end of file
......@@ -2,6 +2,7 @@ package com.xxfc.platform.vehicle.mapper;
import com.xxfc.platform.vehicle.entity.VehicleCata;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
......@@ -24,4 +25,7 @@ public interface VehicleCataMapper extends Mapper<VehicleCata> {
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;
import com.xxfc.platform.vehicle.pojo.VehicleDepartureLogVo;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.BaseMapper;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
public interface VehicleDepartureLogMapper extends BaseMapper<VehicleDepartureLog> {
public interface VehicleDepartureLogMapper extends BaseMapper<VehicleDepartureLog>, Mapper<VehicleDepartureLog> {
VehicleDepartureLog selectLastByVehicleId(String vehicleId);
......
package com.xxfc.platform.vehicle.mapper;
import com.xxfc.platform.vehicle.entity.Vehicle;
import com.xxfc.platform.vehicle.pojo.AddOrUpdateVehicleVo;
import com.xxfc.platform.vehicle.pojo.QueryVehicleVo;
import com.xxfc.platform.vehicle.pojo.UsableVehicleModelVO;
import com.xxfc.platform.vehicle.pojo.VehicleCountVo;
import com.xxfc.platform.vehicle.pojo.*;
import com.xxfc.platform.vehicle.pojo.dto.VehiclePlanDto;
import org.springframework.data.repository.query.Param;
import tk.mybatis.mapper.common.Mapper;
......@@ -38,4 +35,6 @@ public interface VehicleMapper extends Mapper<Vehicle> {
List<Vehicle> searchUsableVehicle(Map<String, Object> params);
List<VehicleCountVo> countVehicleByParam(VehiclePlanDto vehiclePlanDto);
List<VehicleAndModelInfoVo> getAllVehicle(Map<String, Object> params);
}
\ No newline at end of file
......@@ -3,6 +3,7 @@ package com.xxfc.platform.vehicle.mapper;
import com.xxfc.platform.vehicle.entity.VehicleModel;
import com.xxfc.platform.vehicle.pojo.VehicleModelQueryCondition;
import com.xxfc.platform.vehicle.pojo.VehicleModelVo;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
......@@ -18,4 +19,11 @@ public interface VehicleModelMapper extends Mapper<VehicleModel> {
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;
import com.xxfc.platform.vehicle.entity.VehicleUserScore;
import com.xxfc.platform.vehicle.pojo.dto.VehicleUserScoreDetailDTO;
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 java.util.List;
/**
* 用户评分表
*
......@@ -11,5 +17,20 @@ import tk.mybatis.mapper.common.Mapper;
* @date 2019-06-18 15:03:58
*/
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);
/**
* 根据订单查询评价
* @param orderId
* @return
*/
VehicleUserScoreDetailDTO findVehicleUserScoreDetailByOrderId(Integer orderId);
}
......@@ -10,8 +10,11 @@ import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.common.VehicleBaseController;
import com.xxfc.platform.vehicle.entity.VehiclePlatCata;
import com.xxfc.platform.vehicle.pojo.*;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.annotations.Update;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import sun.java2d.pipe.AATextRenderer;
......@@ -62,7 +65,7 @@ public class VehicleCataController extends VehicleBaseController<VehiclePlatCata
* @return
*/
@GetMapping(value = "/add/fingCatasByParentId/{parentId}")
public ObjectRestResponse fingCatasByParentId(@PathVariable Integer parentId ){
public ObjectRestResponse fingCatasByParentId(@PathVariable("parentId") Integer parentId ){
return baseBiz.fingCatasByParentId(parentId);
}
......@@ -73,7 +76,7 @@ public class VehicleCataController extends VehicleBaseController<VehiclePlatCata
* @return
*/
@GetMapping(value = "/add/findCascade/{id}")
public ObjectRestResponse findCascade(@PathVariable Integer id){
public ObjectRestResponse findCascade(@PathVariable("id") Integer id){
return baseBiz.findCascade(id);
......@@ -87,14 +90,16 @@ public class VehicleCataController extends VehicleBaseController<VehiclePlatCata
* @param sort 分类 0-增加车型页面,1-标签管理页面
* @return
*/
@GetMapping(value = "/add/fingCatasByParentId/{page}/{limit}/{sort}")
@GetMapping(value = "/add/getCascades/{page}/{limit}/{sort}")
public ObjectRestResponse getCascades(
@PathVariable Integer page
,@PathVariable Integer limit
,@PathVariable Integer sort){
// @PathVariable("page") Integer page
// ,@PathVariable("limit") Integer limit
// ,@PathVariable("sort") Integer sort){
@PathVariable Integer page
,@PathVariable Integer limit
,@PathVariable Integer sort){
return baseBiz.getCascades(page,limit,sort);
}
......@@ -105,14 +110,11 @@ public class VehicleCataController extends VehicleBaseController<VehiclePlatCata
* @return
*/
@PostMapping(value = "/add/addCascade/")
@Transactional
public ObjectRestResponse addCascade(@RequestBody Cascade<VehiclePlatCata> cascade){
try {
return baseBiz.addCascade(cascade);
} catch (Exception e) {
e.printStackTrace();
return ObjectRestResponse.createDefaultFail();
}
}
......@@ -136,7 +138,7 @@ public class VehicleCataController extends VehicleBaseController<VehiclePlatCata
* @return
*/
@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);
}
......@@ -152,6 +154,40 @@ public class VehicleCataController extends VehicleBaseController<VehiclePlatCata
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)
public RestResponse<Vehicle> get(@PathVariable String id) {
return RestResponse.data(baseBiz.get(id));
......
......@@ -314,14 +314,14 @@ public class VehicleController extends BaseController<VehicleBiz> {
public ObjectRestResponse<PageDataVO<UsableVehicleModelVO>> rentUsableVehicle(UsableVeicleDTO dto) throws Exception {
//根据时间 获得 可用车辆
//结合车型
if(StringUtils.isNotBlank(dto.getCatasStr())) {
List<Integer> catasIds = Pattern.compile(",").splitAsStream(dto.getCatasStr()).map((s)-> Integer.parseInt(s)).collect(Collectors.toList());
if (StringUtils.isNotBlank(dto.getCatasStr())) {
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)
.where(WeekendSqls.<VehiclePlatCata>custom().andIn(VehiclePlatCata::getId, catasIds)).build());
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());
if(null == vpcs) {
if (null == vpcs) {
vpcs = new ArrayList<VehiclePlatCata>();
}
vpcs.add(vpc);
......@@ -360,14 +360,14 @@ public class VehicleController extends BaseController<VehicleBiz> {
//默认USER_APP 预约
Integer operatorId = USER_APP;
String userName = dto.getUserName();
//BaseContextHandler.getName();
//BaseContextHandler.getName();
BookVehicleVO bookVehicleVo = BeanUtil.toBean(dto, BookVehicleVO.class);
dto.setLimit(1);
dto.setPage(1);
//查询可车辆信息
PageDataVO<Vehicle> pageDataVO = vehicleBiz.searchUsableVehicle(dto);
if(pageDataVO.getData().size() <= 0) {
if (pageDataVO.getData().size() <= 0) {
throw new BaseException(ResultCode.NOTEXIST_CODE);
}
bookVehicleVo.setVehicle(pageDataVO.getData().get(0).getId());
......@@ -387,13 +387,50 @@ public class VehicleController extends BaseController<VehicleBiz> {
//获取警告信息
List<VehicleWarningMsg> vehicleWarningMsgs = vehicleWarningMsgBiz.getAllByParam(vehiclePlanDto);
//获取列表
PageDataVO<VehicleRecordInfoVo> pageDataVO = vehicleBookRecordBiz.getListByParam(vehiclePlanDto);
PageDataVO<VehicleAndModelInfoVo> pageDataVO = baseBiz.getAllVehicle(vehiclePlanDto);
Map<String, Object> map = Maps.newHashMap();
map.put("vehicleCountVos",vehicleCountVos);
map.put("vehicleWarningMsgs",vehicleWarningMsgs);
map.put("vehicleRecordInfoVo",pageDataVO);
map.put("vehicleAndModelInfoVo",pageDataVO);
return ObjectRestResponse.succ(map);
}
/**
* 保存
*
* @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;
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.config.UserAuthConfig;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xxfc.platform.vehicle.biz.VehicleBiz;
import com.xxfc.platform.vehicle.biz.VehicleDepartureService;
import com.xxfc.platform.vehicle.common.RestResponse;
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.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
......@@ -70,5 +70,38 @@ public class VehicleDepartureController {
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;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController;
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.VehicleModelBiz;
import com.xxfc.platform.vehicle.biz.VehiclePlatCataBiz;
......@@ -24,13 +25,17 @@ import io.swagger.annotations.ApiParam;
import net.bytebuddy.implementation.bytecode.Throw;
import org.apache.commons.lang.StringUtils;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Select;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import tk.mybatis.mapper.entity.Example;
import tk.mybatis.mapper.weekend.WeekendSqls;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@RestController
@RequestMapping("vehicleModel")
......@@ -49,6 +54,7 @@ public class VehicleModelController extends BaseController<VehicleModelBiz, Vehi
@Autowired
private UserFeign userFeign;
//修改评分
@RequestMapping(value = "/app/addScore", method = RequestMethod.GET)
public RestResponse addScore(
......@@ -126,7 +132,7 @@ public class VehicleModelController extends BaseController<VehicleModelBiz, Vehi
if (StringUtils.isBlank(host)) {
return ObjectRestResponse.createDefaultFail();
}
//设置信息
//设置信息
vm.setCrtName(uorr.getData().getName());
vm.setCrtUser(uorr.getData().getId());
vm.setCrtTime(new Date());
......@@ -155,7 +161,7 @@ public class VehicleModelController extends BaseController<VehicleModelBiz, Vehi
return ObjectRestResponse.succ();
} catch (NumberFormatException e) {
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
vm.setUpdTime(new Date());
try {
//修改车型
//修改车型
vehicleModelBiz.updateSelectiveById(vm);
VehicleCata vcDelete = new VehicleCata();
vcDelete.setVehicleModelId(vm.getId());
// 删除车型对应的标签
// 删除车型对应的标签
vehicleCataBiz.delete(vcDelete);
ArrayList<VehicleCata> vcs = new ArrayList<>();
//从新插入车型对应的标签
//从新插入车型对应的标签
// 获取cataid
String[] config = vm.getConfig().split(",");
for (String con : config) {
......@@ -210,7 +216,7 @@ public class VehicleModelController extends BaseController<VehicleModelBiz, Vehi
return ObjectRestResponse.succ();
} catch (NumberFormatException e) {
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
@DeleteMapping(value = "/app/{id}")
@ResponseBody
@Transactional
public ObjectRestResponse<VehicleModel> remove(@PathVariable int id){
try {
vehicleModelBiz.deleteById(id);
VehicleCata vehicleCata = new VehicleCata();
vehicleCata.setVehicleModelId(id);
vehicleCataBiz.delete(vehicleCata);
return ObjectRestResponse.succ();
} catch (Exception e) {
e.printStackTrace();
throw new BaseException(ResultCode.FAILED_CODE);
}
public ObjectRestResponse<VehicleModel> remove(@PathVariable int id) {
//1.先判断是否有属于该车型可用的车辆,有不能删除,无可以进行删除
//根据车型查询对应的车辆
// Example exa = Example.builder(Vehicle.class).where(
// WeekendSqls.<Vehicle>custom()
// .andEqualTo(Vehicle::getModelId, id)
// .andEqualTo(Vehicle::getStatus, 1)
// .orEqualTo(Vehicle::getStatus,"2")
// ).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;
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.rest.BaseController;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
......@@ -12,7 +14,7 @@ import org.springframework.web.bind.annotation.*;
/**
* @author libin
* @version 1.0
* @description 评
* @description 评
* @data 2019/6/18 15:32
*/
@RestController
......@@ -20,27 +22,43 @@ import org.springframework.web.bind.annotation.*;
public class VehicleUserScoreController extends BaseController<VehicleUserScoreBiz, VehicleUserScore> {
/**
* 保存评
* 保存评
* @param vehicleUserScoreDTO
* @param appUserDTO
* @return
*/
@PostMapping("/score")
public ObjectRestResponse<Void> saveVehicleUserScore(VehicleUserScoreDTO vehicleUserScoreDTO){
int effectRows = getBaseBiz().saveVehicleUserScore(vehicleUserScoreDTO);
public ObjectRestResponse<Void> saveVehicleUserScore(@RequestBody @BeanValid VehicleUserScoreDTO vehicleUserScoreDTO, AppUserDTO appUserDTO){
int effectRows = getBaseBiz().saveVehicleUserScore(vehicleUserScoreDTO,appUserDTO);
if (effectRows>0){
return ObjectRestResponse.succ();
}
return ObjectRestResponse.createDefaultFail();
}
/**
* 根据车型查询评分列表
* 根据车型查询评论列表 根据评分时间排序
*
* @param modelId
* @param pageNo
* @param pageSize
* @return
*/
@GetMapping("/scores")
public ObjectRestResponse<PageDataVO<VehicleUserScoreVo>> findVehicleUserScorePageByModelId(@RequestParam("modelId") Integer modelId) {
PageDataVO<VehicleUserScoreVo> pageDataVO = getBaseBiz().findVehicleUserScorePageByModelId(modelId);
@GetMapping("/app/unauth/scores")
public ObjectRestResponse<PageDataVO<VehicleUserScoreVo>> findVehicleUserScorePageByModelId(@RequestParam("modelId") Integer modelId,
@RequestParam(value = "pageNo",required = false,defaultValue = "1")Integer pageNo,
@RequestParam(value = "pageSize",required = false,defaultValue = "10") Integer pageSize) {
PageDataVO<VehicleUserScoreVo> pageDataVO = getBaseBiz().findVehicleUserScorePageByModelId(modelId,pageNo,pageSize);
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
......@@ -3,7 +3,7 @@
<mapper namespace="com.xxfc.platform.vehicle.mapper.VehicleBookRecordMapper" >
<resultMap id="getVehicleMap" type="com.xxfc.platform.vehicle.pojo.VehicleRecordInfoVo">
<association property="vehicleId" column="vehicle" select="com.xxfc.platform.vehicle.mapper.VehicleMapper.selectByPrimaryKey" />
<association property="vehicle" column="vehicle_id" select="com.xxfc.platform.vehicle.mapper.VehicleMapper.selectById" />
</resultMap>
<update id="changeRecordStatus" parameterType="java.util.Map">
......@@ -312,13 +312,50 @@
where id = #{id}
</select>
<select id="getByVehicleId" parameterType="java.lang.String" resultType="com.xxfc.platform.vehicle.entity.VehicleBookRecord" >
select
vbr.`id`,
vbr.`vehicle_id`,
vbr.`status`,
vbr.`book_type`,
vbr.`book_user`,
vbr.`book_user_name`,
vbr.`contact_info`,
vbr.`book_start_date`,
vbr.`book_end_date`,
vbr.`lift_location`,
vbr.`lift_addr`,
vbr.`remark`,
vbr.`create_time`,
vbr.`update_time`,
vbr.`destination`,
vbr.`reviewer_apply`,
vbr.`reviewer_name_apply`,
vbr.`reviewer_return`,
vbr.`reviewer_name_return`,
vbr.`reviewer_cancel`,
vbr.`reviewer_name_cancel`,
vbr.`actual_start_date`,
vbr.`actual_end_date`,
vbr.`reviewer_lift`,
vbr.`reviewer_name_lift`,
vbr.lift_company,
vbr.lift_remark,
vbr.ret_company,
vbr.mileage_lift,
vbr.mileage_ret,
vbr.have_violation,
vbr.ret_remark
from vehicle_book_record vbr
where vehicle_id = #{vehicleId}
</select>
<select id="getByParam" parameterType="java.util.Map" resultMap="getVehicleMap">
select v1.* from vehicle_book_record v1
left join vehicle v2 on v2.id = v1.vehicle
left join vehicle v2 on v2.id = v1.vehicle_id
<where>
<if test="startTime != null">
and v1.create_time between startTime and endTime
and v1.create_time between #{startTime} and #{endTime}
</if>
<if test="numberPlate != null">
and v2.number_plate = #{numberPlate}
......@@ -333,6 +370,7 @@
and v2.park_branch_company_id = #{parkBranchCompanyId}
</if>
</where>
order By v1.create_time DESC
</select>
<insert id="createTbIfNotExists" parameterType="java.lang.String">
......
......@@ -36,5 +36,10 @@
</trim>
) and vehicle_model_id=#{vehicleModelId}
</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>
\ No newline at end of file
......@@ -14,6 +14,12 @@
<!-- <association property="vehicle" column="vehicle_id" select="com.xxfc.platform.vehicle.mapper.VehicleMapper.selectByPrimaryKey" />-->
</resultMap>
<resultMap id="searchModel" type="com.xxfc.platform.vehicle.pojo.VehicleAndModelInfoVo">
<association property="vehicleModel" column="model_id"
select="com.xxfc.platform.vehicle.mapper.VehicleModelMapper.selectByPrimaryKey"/>
<association property="vehicleBookRecord" column="id" select="com.xxfc.platform.vehicle.mapper.VehicleBookRecordMapper.getByVehicleId" />
</resultMap>
<update id="updateStatusById" parameterType="java.util.Map">
update vehicle set status = #{status} where id in
<foreach collection="idList" index="i" item="item" separator="," open="(" close=")">
......@@ -239,6 +245,12 @@
where number_plate = #{numberPlate}
</select>
<select id="selectById" resultMap="searchModel">
select * from vehicle
where id = #{id}
order By create_time DESC
</select>
<update id="updateStatusByIdAndStatus">
update vehicle
set status = #{status}
......@@ -297,7 +309,27 @@
distance asc
</if>
</select>
<select id="getAllVehicle" parameterType="java.util.Map" resultMap="searchModel">
select *
from vehicle v1
<where>
<if test="startTime != null">
and v1.create_time between #{startTime} and #{endTime}
</if>
<if test="numberPlate != null">
and v1.number_plate = #{numberPlate}
</if>
<if test="status != null">
and v1.status = #{status}
</if>
<if test="subordinateBranch != null">
and v1.subordinate_branch = #{subordinateBranch}
</if>
<if test="parkBranchCompanyId != null">
and v1.park_branch_company_id = #{parkBranchCompanyId}
</if>
</where>
</select>
<select id="countVehicleByParam" parameterType="com.xxfc.platform.vehicle.pojo.dto.VehiclePlanDto"
resultType="com.xxfc.platform.vehicle.pojo.VehicleCountVo">
SELECT count(*) total ,
......@@ -325,10 +357,10 @@
ELSE
'不可用'
END detail
from vehicle v1 GROUP BY travel_status
from vehicle v1
<where>
<if test="startTime != null">
and v1.update_time between startTime and endTime
and v1.create_time between #{startTime} and #{endTime}
</if>
<if test="numberPlate != null">
and v1.number_plate = #{numberPlate}
......@@ -343,11 +375,12 @@
and v1.park_branch_company_id = #{parkBranchCompanyId}
</if>
</where>
GROUP BY travel_status
union all
SELECT count(*) total, '0' travel_status, '总数' detail from vehicle v2
<where>
<if test="startTime != null">
and v2.update_time between startTime and endTime
and v2.create_time between #{startTime} and #{endTime}
</if>
<if test="numberPlate != null">
and v2.number_plate = #{numberPlate}
......@@ -380,10 +413,10 @@
ELSE
'报废'
END travel_status
FROM vehicle v3 GROUP BY status
FROM vehicle v3
<where>
<if test="startTime != null">
and v3.update_time between startTime and endTime
and v3.create_time between #{startTime} and #{endTime}
</if>
<if test="numberPlate != null">
and v3.number_plate = #{numberPlate}
......@@ -398,6 +431,7 @@
and v3.park_branch_company_id = #{parkBranchCompanyId}
</if>
</where>
GROUP BY status
</select>
......
......@@ -26,4 +26,8 @@
</if>
ORDER BY vmqc.id ASC
</select>
<update id="updateScoreByModelIdAndavgScore">
update `vehicle_model` set `score`=(`score`+#{avgScore})/2 where `id`=#{modelId}
</update>
</mapper>
\ No newline at end of file
......@@ -7,12 +7,12 @@
<insert id="addPlatCataList" parameterType="java.util.List">
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
<foreach collection ="vpclist" item="vpc" index="index" separator =",">
(#{vpc.parentId},#{vpc.name},#{vpc.icon},#{vpc.depict}
,#{vpc.rank},#{vpc.level},#{vpc.state},#{vpc.crtTime}
,#{vpc.updTime},#{vpc.isMore})
,#{vpc.updTime},#{vpc.isMore},#{vpc.startUsing})
</foreach>
</insert>
......
......@@ -3,7 +3,7 @@
<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"/>
......@@ -21,4 +21,9 @@
<result property="isDel" column="is_del"/>
</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>
\ No newline at end of file
......@@ -34,7 +34,7 @@
and w.vehicle_id = #{vehicleId}
</if>
<if test="startTime != null">
and w.create_time between startTime and endTime
and w.create_time between #{startTime} and #{endTime}
</if>
<if test="numberPlate != null">
and v.number_plate = #{numberPlate}
......
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