Commit dfea0d80 authored by 周健威's avatar 周健威

Merge branch 'master-vehicle-price' into dev

parents 47be6160 0962e039
......@@ -16,6 +16,7 @@ spring:
server-addr: 127.0.0.1:8848
#共用配置,暂定一个
shared-dataids: common-dev.yaml
namespace: tiande_spcloud
---
spring:
profiles: pro
......
package com.github.wxiaoqi.security.common.biz;
import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.msg.TableResultResponse;
import com.github.wxiaoqi.security.common.util.EntityUtils;
import com.github.wxiaoqi.security.common.util.Query;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import org.springframework.beans.factory.annotation.Autowired;
import tk.mybatis.mapper.common.Mapper;
import tk.mybatis.mapper.entity.Example;
import tk.mybatis.mapper.weekend.Fn;
import tk.mybatis.mapper.weekend.WeekendSqls;
import java.lang.reflect.Field;
import java.lang.reflect.ParameterizedType;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.function.Supplier;
/**
* Created by Mr.AG
......@@ -24,6 +32,9 @@ public abstract class BaseBiz<M extends Mapper<T>, T> {
@Autowired
protected M mapper;
//第二个泛型class
protected Class<T> entityClass = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[1];
public void setMapper(M mapper) {
this.mapper = mapper;
}
......@@ -32,11 +43,69 @@ public abstract class BaseBiz<M extends Mapper<T>, T> {
return mapper.selectOne(entity);
}
public WeekendSqls<T> newWeekendSql() {
return WeekendSqls.<T>custom();
}
public T selectById(Object id) {
return mapper.selectByPrimaryKey(id);
}
public void updateByWeekendSelective(T target, Function<WeekendSqls<T>, WeekendSqls<T>> where) {
WeekendSqls whereSqls = where.apply(WeekendSqls.<T>custom());
Example.Builder builder = new Example.Builder(entityClass)
.where(whereSqls);
Example example = builder.build();
mapper.updateByExampleSelective(target, example);
}
public List<T> selectByWeekend(Function<WeekendSqls<T>, WeekendSqls<T>> where, String orderStr) {
WeekendSqls whereSqls = where.apply(WeekendSqls.<T>custom());
Example.Builder builder = new Example.Builder(entityClass)
.where(whereSqls);
Example example = builder.build();
if(StrUtil.isNotBlank(orderStr)) {
example.setOrderByClause(orderStr);
}
return selectByExample(example);
}
public List<T> selectByWeekendsOr(Supplier<List<WeekendSqls<T>>> where, String orderStr) {
List<WeekendSqls<T>> whereSqlss = where.get();
Example.Builder builder = new Example.Builder(entityClass);
for(WeekendSqls weekendSqls : whereSqlss) {
builder.andWhere(weekendSqls);
}
Example example = builder.build();
if(StrUtil.isNotBlank(orderStr)) {
example.setOrderByClause(orderStr);
}
return selectByExample(example);
}
public List<T> selectByWeekend(Function<WeekendSqls<T>, WeekendSqls<T>> where) {
return selectByWeekend(where, null);
}
public List<T> selectByAttrs(Fn<T, Object> attrFn, List attrFnList) {
return selectByExample(new Example.Builder(entityClass)
.where(WeekendSqls.<T>custom().andIn(attrFn, attrFnList)).build());
}
public List<T> selectBetween(Fn<T, Object> attrFn, Object start, Object end) {
return selectBetween(attrFn, start, end, null);
}
public List<T> selectBetween(Fn<T, Object> attrFn, Object start, Object end, Fn<T, Object> deleteAttrFn) {
WeekendSqls<T> weekendSqls = WeekendSqls.<T>custom()
.andGreaterThanOrEqualTo(attrFn, start)
.andLessThanOrEqualTo(attrFn, end);
if(null != deleteAttrFn) {
weekendSqls.andEqualTo(deleteAttrFn, 0);
}
return selectByExample(new Example.Builder(entityClass)
.where(weekendSqls).build());
}
public List<T> selectList(T entity) {
return mapper.select(entity);
......@@ -125,6 +194,88 @@ public abstract class BaseBiz<M extends Mapper<T>, T> {
return new TableResultResponse<T>(result.getTotal(), list);
}
public TableResultResponse<T> selectPageByQuery(Query query) {
Class<T> clazz = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[1];
Example example = new Example(clazz);
Example.Criteria criteria=null;
if (checkFieldName(clazz,"isDel")){
criteria=example.createCriteria();
criteria.andEqualTo("isDel",0);
}
if (checkFieldName(clazz,"isDelete")){
criteria=example.createCriteria();
criteria.andEqualTo("isDelete",0);
}
if(query.entrySet().size()>0) {
if (criteria==null){
criteria=example.createCriteria();
}
for (Map.Entry<String, Object> entry : query.entrySet()) {
if(null != entry.getValue()) {
criteria.andLike(entry.getKey(), "%" + entry.getValue().toString() + "%");
}
}
}
if (checkFieldName(clazz,"sortOrder")) {
example.setOrderByClause("sort_order desc");
}else if(checkFieldName(clazz,"rank")){
example.setOrderByClause("rank desc");
}else {
example.setOrderByClause("id desc");
}
Page<Object> result = PageHelper.startPage(query.getPage(), query.getLimit());
List<T> list = mapper.selectByExample(example);
return new TableResultResponse<T>(result.getTotal(), list);
}
public ObjectRestResponse selectAll(){
List<T> list = selectListAlls();
return ObjectRestResponse.succ(list);
}
public List<T> selectListAlls(){
Class<T> clazz = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[1];
Example example = new Example(clazz);
Example.Criteria criteria=example.createCriteria();
if (checkFieldName(clazz,"isDel")){
criteria.andEqualTo("isDel",0);
}
if (checkFieldName(clazz,"sortOrder")){
example.setOrderByClause("sort_order desc");
}else if(checkFieldName(clazz,"rank")){
example.setOrderByClause("rank desc");
}else {
example.setOrderByClause("id desc");
}
return mapper.selectByExample(example);
}
public List<T> getList(String appId)throws Exception{
Class<T> clazz = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[1];
Example example = new Example(clazz);
Example.Criteria criteria=example.createCriteria();
if (checkFieldName(clazz,"isDel")){
criteria.andEqualTo("isDel",0);
}
example.setOrderByClause("id desc");
return mapper.selectByExample(example);
}
public boolean checkFieldName(Class<T> clazz,String fieldname){
Field[] fields=clazz.getDeclaredFields();
boolean flag=false;
for (int i = 0; i < fields.length; i++) {
if(fields[i].getName().equals(fieldname))
{
flag=true;
break;
}
}
return flag;
}
}
......@@ -5,6 +5,7 @@ import com.github.wxiaoqi.security.common.context.BaseContextHandler;
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 com.github.wxiaoqi.security.common.util.ReflectionUtils;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -76,7 +77,7 @@ public class BaseController<Biz extends BaseBiz,Entity> extends CommonBaseContro
public TableResultResponse<Entity> list(@RequestParam Map<String, Object> params){
//查询列表数据
Query query = new Query(params);
return baseBiz.selectByQuery(query);
return baseBiz.selectPageByQuery(query);
}
@ApiOperation("根据参数查询,等于")
......@@ -88,4 +89,22 @@ public class BaseController<Biz extends BaseBiz,Entity> extends CommonBaseContro
}
@ApiOperation("查询所有")
@RequestMapping(value = "/alls",method = RequestMethod.GET)
@ResponseBody
public ObjectRestResponse alls(){
return baseBiz.selectAll();
}
@ApiOperation("删除")
@RequestMapping(value = "/del",method = RequestMethod.DELETE)
@ResponseBody
public ObjectRestResponse del( Entity entity){
ReflectionUtils.setFieldValue(entity,"isDel",1);
baseBiz.updateSelectiveById(entity);
return ObjectRestResponse.succ();
}
}
package com.github.wxiaoqi.security.common.vo;
import java.util.List;
public interface DataInter {
List<Integer> getDataCompanyIds();
List<Integer> getDataCorporationIds();
void setDataCompanyIds(List<Integer> dataCompanyIds);
void setDataCorporationIds(List<Integer> dataCorporationIds);
}
......@@ -5,6 +5,7 @@ spring:
nacos:
discovery:
server-addr: 127.0.0.1:8848
namespace: tiande_spcloud
server:
port: 8764 #启动端口
......
......@@ -19,6 +19,7 @@ spring:
server-addr: 127.0.0.1:8848
#共用配置,暂定一个
shared-dataids: common-dev.yaml,mongodb-log-dev.yaml
namespace: tiande_spcloud
---
spring:
profiles: pro
......
package com.github.wxiaoqi.security.admin.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
......@@ -7,6 +10,7 @@ import javax.persistence.Table;
import java.util.Date;
@Table(name = "base_user")
@Data
public class User {
@Id
@GeneratedValue(generator = "JDBC")//此处加上注解
......@@ -38,9 +42,16 @@ public class User {
private Integer status;
@Column(name = "zone_id")
@ApiModelProperty("片区id")
private Integer zoneId;
@Column(name = "corporation_id")
@ApiModelProperty("公司id")
private Long corporationId;
@Column(name = "company_id")
@ApiModelProperty("门店id")
private Integer companyId;
private String description;
......@@ -78,6 +89,10 @@ public class User {
@Column(name = "data_company")
private String dataCompany;
@Column(name = "data_corporation")
private String dataCorporation;
private String attr1;
private String attr2;
......@@ -94,445 +109,5 @@ public class User {
private String attr8;
/**
* @return id
*/
public Integer getId() {
return id;
}
/**
* @param id
*/
public void setId(Integer id) {
this.id = id;
}
/**
* @return username
*/
public String getUsername() {
return username;
}
/**
* @param username
*/
public void setUsername(String username) {
this.username = username;
}
/**
* @return password
*/
public String getPassword() {
return password;
}
/**
* @param password
*/
public void setPassword(String password) {
this.password = password;
}
/**
* @return name
*/
public String getName() {
return name;
}
/**
* @param name
*/
public void setName(String name) {
this.name = name;
}
/**
* @return birthday
*/
public String getBirthday() {
return birthday;
}
/**
* @param birthday
*/
public void setBirthday(String birthday) {
this.birthday = birthday;
}
/**
* @return address
*/
public String getAddress() {
return address;
}
/**
* @param address
*/
public void setAddress(String address) {
this.address = address;
}
/**
* @return mobile_phone
*/
public String getMobilePhone() {
return mobilePhone;
}
/**
* @param mobilePhone
*/
public void setMobilePhone(String mobilePhone) {
this.mobilePhone = mobilePhone;
}
/**
* @return tel_phone
*/
public String getTelPhone() {
return telPhone;
}
/**
* @param telPhone
*/
public void setTelPhone(String telPhone) {
this.telPhone = telPhone;
}
/**
* @return email
*/
public String getEmail() {
return email;
}
/**
* @param email
*/
public void setEmail(String email) {
this.email = email;
}
/**
* @return sex
*/
public String getSex() {
return sex;
}
/**
* @param sex
*/
public void setSex(String sex) {
this.sex = sex;
}
/**
* @return type
*/
public String getType() {
return type;
}
/**
* @param type
*/
public void setType(String type) {
this.type = type;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public Integer getZoneId() {
return zoneId;
}
public void setZoneId(Integer zoneId) {
this.zoneId = zoneId;
}
public Integer getCompanyId() {
return companyId;
}
public void setCompanyId(Integer companyId) {
this.companyId = companyId;
}
/**
* @return description
*/
public String getDescription() {
return description;
}
/**
* @param description
*/
public void setDescription(String description) {
this.description = description;
}
/**
* @return crt_time
*/
public Date getCrtTime() {
return crtTime;
}
/**
* @param crtTime
*/
public void setCrtTime(Date crtTime) {
this.crtTime = crtTime;
}
/**
* @return crt_user
*/
public String getCrtUser() {
return crtUser;
}
/**
* @param crtUser
*/
public void setCrtUser(String crtUser) {
this.crtUser = crtUser;
}
/**
* @return crt_name
*/
public String getCrtName() {
return crtName;
}
/**
* @param crtName
*/
public void setCrtName(String crtName) {
this.crtName = crtName;
}
/**
* @return crt_host
*/
public String getCrtHost() {
return crtHost;
}
/**
* @param crtHost
*/
public void setCrtHost(String crtHost) {
this.crtHost = crtHost;
}
/**
* @return upd_time
*/
public Date getUpdTime() {
return updTime;
}
/**
* @param updTime
*/
public void setUpdTime(Date updTime) {
this.updTime = updTime;
}
/**
* @return upd_user
*/
public String getUpdUser() {
return updUser;
}
/**
* @param updUser
*/
public void setUpdUser(String updUser) {
this.updUser = updUser;
}
/**
* @return upd_name
*/
public String getUpdName() {
return updName;
}
/**
* @param updName
*/
public void setUpdName(String updName) {
this.updName = updName;
}
/**
* @return upd_host
*/
public String getUpdHost() {
return updHost;
}
/**
* @param updHost
*/
public void setUpdHost(String updHost) {
this.updHost = updHost;
}
public Integer getDataAll() {
return dataAll;
}
public void setDataAll(Integer dataAll) {
this.dataAll = dataAll;
}
public String getDataZone() {
return dataZone;
}
public void setDataZone(String dataZone) {
this.dataZone = dataZone;
}
public String getDataCompany() {
return dataCompany;
}
public void setDataCompany(String dataCompany) {
this.dataCompany = dataCompany;
}
/**
* @return attr1
*/
public String getAttr1() {
return attr1;
}
/**
* @param attr1
*/
public void setAttr1(String attr1) {
this.attr1 = attr1;
}
/**
* @return attr2
*/
public String getAttr2() {
return attr2;
}
/**
* @param attr2
*/
public void setAttr2(String attr2) {
this.attr2 = attr2;
}
/**
* @return attr3
*/
public String getAttr3() {
return attr3;
}
/**
* @param attr3
*/
public void setAttr3(String attr3) {
this.attr3 = attr3;
}
/**
* @return attr4
*/
public String getAttr4() {
return attr4;
}
/**
* @param attr4
*/
public void setAttr4(String attr4) {
this.attr4 = attr4;
}
/**
* @return attr5
*/
public String getAttr5() {
return attr5;
}
/**
* @param attr5
*/
public void setAttr5(String attr5) {
this.attr5 = attr5;
}
/**
* @return attr6
*/
public String getAttr6() {
return attr6;
}
/**
* @param attr6
*/
public void setAttr6(String attr6) {
this.attr6 = attr6;
}
/**
* @return attr7
*/
public String getAttr7() {
return attr7;
}
/**
* @param attr7
*/
public void setAttr7(String attr7) {
this.attr7 = attr7;
}
/**
* @return attr8
*/
public String getAttr8() {
return attr8;
}
/**
* @param attr8
*/
public void setAttr8(String attr8) {
this.attr8 = attr8;
}
}
\ No newline at end of file
......@@ -20,6 +20,10 @@ public class UserDTO extends User {
return str2List(getDataCompany());
}
public List<Integer> dataCorporation2List() {
return str2List(getDataCorporation());
}
private List<Integer> str2List(String str) {
if(StringUtils.isNotBlank(str)) {
return Arrays.asList(str.split(",")).parallelStream().map(s -> Integer.valueOf(s)).collect(Collectors.toList());
......
......@@ -6,12 +6,15 @@ import com.github.wxiaoqi.security.admin.feign.dto.UserDTO;
import com.github.wxiaoqi.security.common.context.BaseContextHandler;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.vo.DataInter;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List;
public interface UserRestInterface {
public interface UserRestInterface {
public UserFeign getUserFeign();
default HttpServletRequest getRequest() {
......@@ -41,4 +44,28 @@ public interface UserRestInterface {
throw new BaseException(ResultCode.NOTEXIST_CODE);
}
}
default void setPowerData(DataInter dataInter){
UserDTO userDTO = getAdminUserInfo();
if (userDTO == null) {
return;
}
Integer dataAll=userDTO.getDataAll()== null ? 2 : userDTO.getDataAll();
if (dataAll == 2){
List<Integer> dataCompany2List = userDTO.dataCompany2List();
if (dataCompany2List != null && dataCompany2List.size() > 0){
dataInter.setDataCompanyIds(dataCompany2List);
}else {
List<Integer> dataCorporation2List = userDTO.dataCorporation2List();
if (dataCorporation2List != null && dataCorporation2List.size() > 0){
dataInter.setDataCorporationIds(dataCorporation2List);
}else {
List<Integer> ids=new ArrayList<>();
ids.add(0);
dataInter.setDataCompanyIds(ids);
}
}
}
}
}
package com.github.wxiaoqi.security.admin.vo;
import com.github.wxiaoqi.security.admin.entity.Group;
import com.github.wxiaoqi.security.admin.entity.User;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/7/8 16:08
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class BaseUserVo extends User {
private String companyName;
private String corporationName;
private List<Group> groupList;
private String groupStr;
public String getGroupStr(){
if (groupList != null && groupList.size() > 0){
groupStr= groupList.stream().map(Group::getName).collect(Collectors.joining(","));
}
return groupStr;
}
}
......@@ -7,20 +7,28 @@ import com.github.pagehelper.PageHelper;
import com.github.wxiaoqi.security.admin.entity.User;
import com.github.wxiaoqi.security.admin.mapper.MenuMapper;
import com.github.wxiaoqi.security.admin.mapper.UserMapper;
import com.github.wxiaoqi.security.admin.vo.BaseUserVo;
import com.github.wxiaoqi.security.auth.client.jwt.UserAuthUtil;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.constant.UserConstant;
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 com.xxfc.platform.vehicle.entity.CompanyInfo;
import com.xxfc.platform.vehicle.feign.VehicleFeign;
import com.xxfc.platform.vehicle.pojo.CompanySearchDTO;
import com.xxfc.platform.vehicle.pojo.CompanySearchVO;
import com.xxfc.platform.vehicle.pojo.dto.CompanyInfoFindDTO;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
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.*;
import java.util.stream.Collectors;
import static com.github.wxiaoqi.security.auth.common.constatns.CommonConstants.DATA_ALL_TRUE;
......@@ -39,6 +47,14 @@ public class UserBiz extends BaseBiz<UserMapper,User> {
@Autowired
private UserAuthUtil userAuthUtil;
@Autowired
private VehicleFeign vehicleFeign;
@Autowired
private GroupBiz groupBiz;
@Override
public void insertSelective(User entity) {
String password = new BCryptPasswordEncoder(UserConstant.PW_ENCORDER_SALT).encode(entity.getPassword());
......@@ -70,7 +86,10 @@ public class UserBiz extends BaseBiz<UserMapper,User> {
return mapper.selectOne(user);
}
public TableResultResponse<User> selectPage(Query query, User currentUser) {
public TableResultResponse<BaseUserVo> selectPage(Query query, User currentUser) {
List<BaseUserVo> userVos=new ArrayList<>();
List<User> list =new ArrayList<>();
Page<Object> result;
if(DATA_ALL_TRUE.equals(currentUser.getDataAll())) {
Example example = new Example(User.class);
if(query.entrySet().size()>0) {
......@@ -80,9 +99,8 @@ public class UserBiz extends BaseBiz<UserMapper,User> {
}
}
example.createCriteria().andGreaterThan("id",1);
Page<Object> result = PageHelper.startPage(query.getPage(), query.getLimit());
List<User> list = mapper.selectByExample(example);
return new TableResultResponse<User>(result.getTotal(), list);
result = PageHelper.startPage(query.getPage(), query.getLimit());
list = mapper.selectByExample(example);
}else {
Example example = new Example(User.class);
if(query.entrySet().size()>0) {
......@@ -97,11 +115,59 @@ public class UserBiz extends BaseBiz<UserMapper,User> {
if(StringUtils.isNotBlank(currentUser.getDataZone())){
example.createCriteria().andIn("zoneId", Arrays.asList(currentUser.getDataZone().split(",")));
}
if(StringUtils.isNotBlank(currentUser.getDataCorporation())){
example.createCriteria().andIn("corporationId", Arrays.asList(currentUser.getDataCorporation().split(",")));
}
example.createCriteria().andGreaterThan("id",1);
Page<Object> result = PageHelper.startPage(query.getPage(), query.getLimit());
List<User> list = mapper.selectByExample(example);
return new TableResultResponse<User>(result.getTotal(), list);
result = PageHelper.startPage(query.getPage(), query.getLimit());
list = mapper.selectByExample(example);
}
if (list.size() > 0){
List<Long> corporationIds=list.stream().map(User::getCorporationId).distinct().collect(Collectors.toList());
CompanyInfoFindDTO companyInfoFindDTO=new CompanyInfoFindDTO();
companyInfoFindDTO.setIds(corporationIds);
ObjectRestResponse< List<CompanyInfo>> restResponse = vehicleFeign.listByIds(companyInfoFindDTO);
Map<Long,CompanyInfo> companyInfoMaps=new HashMap<>();
if (restResponse.getData() != null){
List<CompanyInfo> companyInfos=restResponse.getData();
if (companyInfos != null && companyInfos.size() > 0){
for (CompanyInfo companyInfo:companyInfos){
companyInfoMaps.put(companyInfo.getId(),companyInfo);
}
}
}
List<Integer> companyIds=list.stream().map(User::getCompanyId).distinct().collect(Collectors.toList());
CompanySearchDTO companySearchDTO=new CompanySearchDTO();
companySearchDTO.setCompanyIds(companyIds);
ObjectRestResponse<List<CompanySearchVO>> restResponse1= vehicleFeign.listByIds(companySearchDTO);
Map<Integer,CompanySearchVO> companyMaps=new HashMap<>();
if (restResponse1.getData() != null){
List<CompanySearchVO> companySearchVOS=restResponse1.getData();
if (companySearchVOS != null && companySearchVOS.size() > 0){
for (CompanySearchVO companySearchVO:companySearchVOS){
companyMaps.put(companySearchVO.getId(),companySearchVO);
}
}
}
for (User user : list){
BaseUserVo userVo=new BaseUserVo();
BeanUtils.copyProperties(user,userVo);
CompanyInfo companyInfo=companyInfoMaps.get(userVo.getCorporationId());
if (companyInfo != null ){
userVo.setCorporationName(companyInfo.getName());
}
CompanySearchVO companySearchVO= companyMaps.get(userVo.getCompanyId());
if (companySearchVO != null ){
userVo.setCompanyName(companySearchVO.getName());
}
userVo.setGroupList(groupBiz.getUserGroups(userVo.getId()));
userVos.add(userVo);
}
}
return new TableResultResponse<BaseUserVo>(result.getTotal(), userVos);
}
public List<User> getCountByUsername(String username){
......
......@@ -3,6 +3,7 @@ package com.github.wxiaoqi.security.admin.config;
import com.github.wxiaoqi.security.auth.client.interceptor.ServiceAuthRestInterceptor;
import com.github.wxiaoqi.security.auth.client.interceptor.UserAuthRestInterceptor;
import com.github.wxiaoqi.security.common.handler.GlobalExceptionHandler;
import com.github.wxiaoqi.security.common.interceptor.CorsInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
......@@ -33,7 +34,10 @@ public class WebConfiguration implements WebMvcConfigurer {
registry.addInterceptor(getUserAuthRestInterceptor()).
addPathPatterns(getIncludePathPatterns());
}
@Bean
CorsInterceptor getCorsInterceptor() {
return new CorsInterceptor();
}
@Bean
ServiceAuthRestInterceptor getServiceAuthRestInterceptor() {
return new ServiceAuthRestInterceptor();
......
......@@ -5,7 +5,6 @@ import com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel;
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 io.swagger.models.auth.In;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import tk.mybatis.mapper.entity.Example;
......
......@@ -7,6 +7,7 @@ import com.github.wxiaoqi.security.admin.entity.Menu;
import com.github.wxiaoqi.security.admin.entity.User;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
import com.github.wxiaoqi.security.admin.rpc.service.PermissionService;
import com.github.wxiaoqi.security.admin.vo.BaseUserVo;
import com.github.wxiaoqi.security.admin.vo.FrontUser;
import com.github.wxiaoqi.security.admin.vo.GroupUsers;
import com.github.wxiaoqi.security.admin.vo.MenuTree;
......@@ -147,15 +148,10 @@ public class UserController extends CommonBaseController {
@RequestMapping(value = "/page",method = RequestMethod.GET)
@ResponseBody
public TableResultResponse<User> list(@RequestParam Map<String, Object> params){
public TableResultResponse<BaseUserVo> list(@RequestParam Map<String, Object> params)throws Exception{
//查询列表数据
Query query = new Query(params);
try {
return userBiz.selectPage(query, userBiz.getUserByUsername(userAuthUtil.getInfoFromToken(userAuthConfig.getToken(request)).getUniqueName()));
}catch (Exception e) {
log.error(e.getMessage());
return new TableResultResponse<User>();
}
return userBiz.selectPage(query, userBiz.getUserByUsername(userAuthUtil.getInfoFromToken(userAuthConfig.getToken(request)).getUniqueName()));
}
......
......@@ -18,7 +18,7 @@ spring:
server-addr: 127.0.0.1:8848
#共用配置,暂定一个
shared-dataids: common-dev.yaml,mongodb-log-dev.yaml
namespace: tiande_spcloud
---
spring:
profiles: pro
......
......@@ -240,7 +240,7 @@
<if test="realName !=null and realName != ''">
and d.realname like CONCAT('%',#{realName},'%')
</if>
<if test="citySet != null ">
<if test="citySet != null and citySet.size > 0 ">
and d.city_code in
<foreach collection="citySet" item="item" index="index" open="(" separator="," close=")">
#{item}
......
......@@ -26,6 +26,7 @@ spring:
server-addr: 127.0.0.1:8848
#共用配置,暂定一个
shared-dataids: common-dev.yaml,mongodb-log-dev.yaml
namespace: tiande_spcloud
---
spring:
profiles: pro
......
......@@ -26,6 +26,7 @@ spring:
server-addr: 127.0.0.1:8848
#共用配置,暂定一个
shared-dataids: common-dev.yaml,mongodb-log-dev.yaml
namespace: tiande_spcloud
---
spring:
profiles: pro
......
......@@ -16,7 +16,7 @@ spring:
server-addr: 127.0.0.1:8848
#共用配置,暂定一个
shared-dataids: common-dev.yaml,mongodb-log-dev.yaml
namespace: tiande_spcloud
---
spring:
profiles: pro
......
......@@ -26,6 +26,7 @@ spring:
server-addr: 127.0.0.1:8848
#共用配置,暂定一个
shared-dataids: common-dev.yaml,mongodb-log-dev.yaml
namespace: tiande_spcloud
---
spring:
profiles: pro
......
......@@ -8,6 +8,7 @@ import com.xxfc.platform.order.entity.OrderItem;
import com.xxfc.platform.order.entity.inter.OrderDetail;
import com.xxfc.platform.order.entity.OrderRentVehicleDetail;
import com.xxfc.platform.order.pojo.OrderAccompanyDTO;
import com.xxfc.platform.vehicle.entity.Vehicle;
import com.xxfc.platform.vehicle.entity.VehicleModel;
import com.xxfc.platform.vehicle.pojo.BookVehicleVO;
import io.swagger.annotations.ApiModelProperty;
......@@ -68,12 +69,24 @@ public class RentVehicleBO extends OrderRentVehicleDetail implements OrderDetail
private Date startDate;
/**
* 开始时间
* 结束时间
*/
private Date endDate;
/**
* 开始时间字符串
*/
private String startDateStr;
/**
* 结束时间字符串
*/
private String endDateStr;
public void initDate() {
this.startDate = DateUtil.date(getStartTime());
this.endDate = DateUtil.date(getEndTime());
this.startDateStr = DateUtil.formatDate(this.startDate);
this.startDateStr = DateUtil.formatDate(this.endDate);
}
}
......@@ -124,6 +124,9 @@ public class AddRentVehicleDTO extends AddOrderCommonDTO{
@ApiModelProperty(value = "随车物品", hidden = true)
private List<OrderAccompanyDTO> accompanyItems;
@ApiModelProperty(value = "车辆id")
private String vehicleId;
public void setStartTime(Long startTime) {
this.startTime = startTime;
this.bookStartDate = YMR_SLASH_FORMATTER.format(LocalDateTime.ofInstant(Instant.ofEpochMilli(startTime), ZoneOffset.ofHours(8)));
......
......@@ -35,6 +35,7 @@ import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.constant.AccompanyingItemType;
import com.xxfc.platform.vehicle.entity.BranchCompany;
import com.xxfc.platform.vehicle.entity.VehicleBookRecord;
import com.xxfc.platform.vehicle.entity.VehicleHolidayPriceInfo;
import com.xxfc.platform.vehicle.entity.VehicleModel;
import com.xxfc.platform.vehicle.feign.VehicleFeign;
import com.xxfc.platform.vehicle.pojo.RentVehicleBookDTO;
......@@ -309,7 +310,12 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
VehicleModel vehicleModel = vehicleFeign.get(detail.getModelId()).getData();
detail.initDate();
List<VehicleModelCalendarPriceDTO> metaVmcpds = vehicleFeign.findVehicleModelCalendarPriceByDate(detail.getStartTime(), detail.getEndTime(), detail.getModelId(), dto.getUserid()).getData();
List<VehicleModelCalendarPriceDTO> metaVmcpds = vehicleFeign.getByVehicleIdFeign(detail.getVehicleId(), detail.getStartDateStr(), detail.getEndDateStr(), dto.getUserid(), detail.getStartCompanyId()).getData();
// List<VehicleModelCalendarPriceDTO> metaVmcpds = vehicleFeign.findVehicleModelCalendarPriceByDate(detail.getStartTime(), detail.getEndTime(), detail.getModelId(), dto.getUserid()).getData();
// List<VehicleModelCalendarPriceDTO> metaVmcpds;
// for (VehicleHolidayPriceInfo vhpi : vhpis) {
// vhpi.getAllModelUse()
// }
List<VMCalendarPriceCostDTO> vmcpds = Convert.toList(VMCalendarPriceCostDTO.class, metaVmcpds);
......@@ -333,17 +339,6 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
}
// //循环价格列表 获得对应消耗的免费天数
// for(VehicleModelCalendarPriceDTO vmcpd : vmcpds) {
// //如果新的相加消耗天数 大于 拥有天数
// if(freeDayNum+ vmcpd.getFreeDays() > dto.getRentFreeDays()) {
// //freeDayNum = dto.getRentFreeDays();
// break;
// }else {
// freeDayNum += detail.getDayNum();
// cutDayNum += 1;
// }
// }
// vehicleOrderItem.setCutNum(cutDayNum);
vehicleOrderItem.initDetail(dto.getRentFreeDays());
freeDayNum = vehicleOrderItem.getCutNum();
offsetNum = vehicleOrderItem.getOffsetNum();
......@@ -367,25 +362,6 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
String[] prices = StrUtil.isBlank(vehicleModel.getRentDiscountPrice())
?new String[]{vehicleModel.getPrice().toString(),vehicleModel.getPrice().toString(),vehicleModel.getPrice().toString()}
:vehicleModel.getRentDiscountPrice().split(",");
// HandleDiscountDTO handleDiscountDTO = new HandleDiscountDTO();
// handleDiscountDTO.setRebate(100);
// handleDiscountDTO.setModelAmount(vehicleModel.getPrice());
// switch (MemberEnum.getByCode(dto.getMemberLevel())) {
// case NORMAL:
// handleDiscountDTO = handleDiscount(dto, vehicleModel, prices, NORMAL);
// detail.getOrder().setHasMemberRight(SYS_TRUE);
// break;
// case GOLD:
// handleDiscountDTO = handleDiscount(dto, vehicleModel, prices, GOLD);
// detail.getOrder().setHasMemberRight(SYS_TRUE);
// break;
// case DIAMOND:
// handleDiscountDTO = handleDiscount(dto, vehicleModel, prices, DIAMOND);
// detail.getOrder().setHasMemberRight(SYS_TRUE);
// break;
// default:
// break;
// }
//设置是否使用会员权益
for(VMCalendarPriceCostDTO vmcpcd : vehicleOrderItem.getVehicleDetail()) {
if(!vmcpcd.getNo_discount_price().equals(vmcpcd.getPrice())) {
......@@ -395,7 +371,6 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
}
detail.setRebate(dto.getDiscount());
// vehicleOrderItem.setUnitPrice(handleDiscountDTO.getModelAmount());
}
//计算价格
......@@ -577,6 +552,7 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
rentVehicleBookDTO.setNumberPlate(numberPlate);
rentVehicleBookDTO.setStatus(status);
rentVehicleBookDTO.setUseType(detail.getUseType());
rentVehicleBookDTO.setVehicleId(detail.getVehicleId());
if (detail.getRentFreeDay() > 0) {//使用了免费天数
rentVehicleBookDTO.setMemberUse(detail.getAppUserDTO().getMemberType());
}
......
......@@ -16,7 +16,7 @@ spring:
server-addr: 127.0.0.1:8848
#共用配置,+ mongodb日志配置
shared-dataids: common-dev.yaml,mongodb-log-dev.yaml
namespace: tiande_spcloud
#---
#spring:
# profiles: pro
......
......@@ -26,6 +26,7 @@ spring:
server-addr: 127.0.0.1:8848
#共用配置,暂定一个
shared-dataids: common-dev.yaml,mongodb-log-dev.yaml
namespace: tiande_spcloud
---
spring:
profiles: pro
......
......@@ -24,6 +24,15 @@ public class GoodSearchDTO extends PageParam {
//商品名
@ApiModelProperty(value = "标签id")
private String tagId;
@ApiModelProperty("公司id")
private Long corporationId;
@ApiModelProperty("门店id")
private Integer companyId;
......
......@@ -123,4 +123,12 @@ public class TourGoodDTO {
@ApiModelProperty("seo*html标签优化")
private String imgDesc;
@ApiModelProperty("公司id")
private Long corporationId;
@ApiModelProperty("门店id")
private Integer companyId;
}
......@@ -149,4 +149,15 @@ public class TourGood implements Serializable {
@Column(name = "img_desc")
@ApiModelProperty("seo*html标签优化")
private String imgDesc;
@Column(name = "corporation_id")
@ApiModelProperty("公司id")
private Long corporationId;
@Column(name = "company_id")
@ApiModelProperty("门店id")
private Integer companyId;
}
......@@ -141,4 +141,13 @@ public class TourGoodDetailVo {
@ApiModelProperty("seo*html标签优化")
private String imgDesc;
@ApiModelProperty("公司id")
private Long corporationId;
@ApiModelProperty("门店id")
private Integer companyId;
}
......@@ -108,6 +108,26 @@ public class TourGoodVo implements Serializable {
//标签id
@ApiModelProperty(value = "标签")
private String tagNames;
@ApiModelProperty("公司id")
private Long corporationId;
@ApiModelProperty("门店id")
private Integer companyId;
@ApiModelProperty("公司")
private String corporationName;
@ApiModelProperty("门店")
private String companyName;
}
......@@ -18,6 +18,11 @@ import com.xxfc.platform.tour.dto.*;
import com.xxfc.platform.tour.entity.*;
import com.xxfc.platform.tour.mapper.*;
import com.xxfc.platform.tour.vo.TourGoodVo;
import com.xxfc.platform.vehicle.entity.CompanyInfo;
import com.xxfc.platform.vehicle.feign.VehicleFeign;
import com.xxfc.platform.vehicle.pojo.CompanySearchDTO;
import com.xxfc.platform.vehicle.pojo.CompanySearchVO;
import com.xxfc.platform.vehicle.pojo.dto.CompanyInfoFindDTO;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.collections.CollectionUtils;
......@@ -63,6 +68,10 @@ public class TourGoodBiz extends BaseBiz<TourGoodMapper, TourGood> {
@Autowired
private UserFeign userFeign;
@Autowired
private VehicleFeign vehicleFeign;
/**
* 查询旅游路线列表
*
......@@ -105,7 +114,50 @@ public class TourGoodBiz extends BaseBiz<TourGoodMapper, TourGood> {
public PageDataVO<TourGoodVo> getAll(GoodSearchDTO dto) {
PageHelper.startPage(dto.getPage(), dto.getLimit());
PageInfo<TourGoodVo> goodPageInfo = new PageInfo<>(mapper.findGoodList(dto));
return PageDataVO.pageInfo(goodPageInfo);
goodPageInfo.getList();
PageDataVO<TourGoodVo> dataVO = PageDataVO.pageInfo(goodPageInfo);
List<TourGoodVo> list = dataVO.getData();
if (list != null && list.size() > 0){
List<Long> corporationIds=list.stream().map(TourGoodVo::getCorporationId).distinct().collect(Collectors.toList());
CompanyInfoFindDTO companyInfoFindDTO=new CompanyInfoFindDTO();
companyInfoFindDTO.setIds(corporationIds);
ObjectRestResponse< List<CompanyInfo>> restResponse = vehicleFeign.listByIds(companyInfoFindDTO);
Map<Long,CompanyInfo> companyInfoMaps=new HashMap<>();
if (restResponse.getData() != null){
List<CompanyInfo> companyInfos=restResponse.getData();
if (companyInfos != null && companyInfos.size() > 0){
for (CompanyInfo companyInfo:companyInfos){
companyInfoMaps.put(companyInfo.getId(),companyInfo);
}
}
}
List<Integer> companyIds=list.stream().map(TourGoodVo::getCompanyId).distinct().collect(Collectors.toList());
CompanySearchDTO companySearchDTO=new CompanySearchDTO();
companySearchDTO.setCompanyIds(companyIds);
ObjectRestResponse<List<CompanySearchVO>> restResponse1= vehicleFeign.listByIds(companySearchDTO);
Map<Integer,CompanySearchVO> companyMaps=new HashMap<>();
if (restResponse1.getData() != null){
List<CompanySearchVO> companySearchVOS=restResponse1.getData();
if (companySearchVOS != null && companySearchVOS.size() > 0){
for (CompanySearchVO companySearchVO:companySearchVOS){
companyMaps.put(companySearchVO.getId(),companySearchVO);
}
}
}
for (TourGoodVo tourGoodVo : list){
CompanyInfo companyInfo=companyInfoMaps.get(tourGoodVo.getCorporationId());
if (companyInfo != null ){
tourGoodVo.setCorporationName(companyInfo.getName());
}
CompanySearchVO companySearchVO= companyMaps.get(tourGoodVo.getCompanyId());
if (companySearchVO != null ){
tourGoodVo.setCompanyName(companySearchVO.getName());
}
}
}
return dataVO;
}
//获取商品列表
......
......@@ -37,6 +37,7 @@ spring:
server-addr: 127.0.0.1:8848
#共用配置,暂定一个
shared-dataids: common-dev.yaml,mongodb-log-dev.yaml
namespace: tiande_spcloud
---
spring:
profiles: pro
......
......@@ -25,6 +25,8 @@
<result property="stock" column="stock"/>
<result property="unit" column="unit"/>
<result property="isOutside" column="is_outside"/>
<result property="corporationId" column="corporation_id"/>
<result property="companyId" column="company_id"/>
</resultMap>
<resultMap type="com.xxfc.platform.tour.vo.TourGoodVo" id="tourGoodVoMap">
......@@ -49,6 +51,8 @@
<result property="unit" column="unit"/>
<result property="tagNames" column="tagNames"/>
<result property="isOutside" column="is_outside"/>
<result property="corporationId" column="corporation_id"/>
<result property="companyId" column="company_id"/>
</resultMap>
<!--查询旅游路线列表-->
......@@ -113,6 +117,12 @@
<if test="params.name != null and params.name != ''">
and (g.`name` like CONCAT('%',#{params.name},'%') or g.introduce like CONCAT('%',#{params.name},'%'))
</if>
<if test="params.companyId != null and params.companyId > 0">
and g.company_id=#{params.companyId}
</if>
<if test="params.corporationId != null and params.corporationId > 0 ">
and g.corporation_id=#{params.corporationId}
</if>
<if test="params.tagId != null and params.tagId != '' ">
and g.id in (SELECT good_id from tour_good_tag
where tag_id = #{params.tagId} and is_del=0 )
......
......@@ -17,6 +17,7 @@ spring:
server-addr: 127.0.0.1:8848
#共用配置,暂定一个
shared-dataids: common-dev.yaml,mongodb-log-dev.yaml
namespace: tiande_spcloud
---
spring:
profiles: pro
......
......@@ -75,6 +75,9 @@ public class DictionaryKey {
public static final String ACT_TOUR = "ACT_TOUR";
public static final String ACT_MEMBER = "ACT_MEMBER";
public static final String VEHICLE_MANUFACTURER = "VEHICLE_MANUFACTURER";
public static final String VEHICLE = "VEHICLE";
/**
* 支付价格减低
*/
......
......@@ -27,6 +27,7 @@ spring:
server-addr: 127.0.0.1:8848
#共用配置,暂定一个
shared-dataids: common-dev.yaml,mongodb-log-dev.yaml
namespace: tiande_spcloud
---
spring:
profiles: pro
......
......@@ -17,6 +17,7 @@ spring:
server-addr: 127.0.0.1:8848
#共用配置,暂定一个
shared-dataids: common-dev.yaml,mongodb-log-dev.yaml
namespace: tiande_spcloud
---
spring:
profiles: pro
......
......@@ -22,12 +22,22 @@ public class BranchCompany {
@ApiModelProperty("主键id")
private Integer companyBaseId;
@Column(name = "company_id")
@ApiModelProperty("公司id")
private Long companyId;
/**
* 分公司名称
*/
@ApiModelProperty("分公司名称")
private String name;
@Column(name = "short_name")
@ApiModelProperty("简称")
private String shortName;
/**
* 分支机构类型
*/
......
package com.xxfc.platform.vehicle.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
@Data
@Table(name = "branch_company_apply")
public class BranchCompanyApply {
@Id
@GeneratedValue(generator = "JDBC")
@ApiModelProperty("主键id")
private Long id;
@ApiModelProperty("公司名称")
private String name;
@ApiModelProperty("联系人")
private String contact;
@ApiModelProperty("联系电话")
private String moblie;
@ApiModelProperty("入驻类型:1-公司入驻;2-个人入驻")
private Integer type;
@ApiModelProperty("状态:0-未读;1-已读")
private Integer status;
@Column(name = "crt_time")
private Long crtTime;
@Column(name = "upd_time")
private Long updTime;
@Column(name = "is_del")
private Integer isDel;
}
\ No newline at end of file
package com.xxfc.platform.vehicle.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
@Data
@Table(name = "company_info")
public class CompanyInfo {
@Id
@GeneratedValue(generator = "JDBC")
@ApiModelProperty("主键id")
private Long id;
@ApiModelProperty("公司名称")
private String name;
@ApiModelProperty("法人姓名")
@Column(name = "legal_person")
private String legalPerson;
@ApiModelProperty("公司名称")
@Column(name = "legal_id_number")
private String legalIdNumber;
@ApiModelProperty("联系人")
private String contact;
@ApiModelProperty("联系电话")
private String mobile;
@ApiModelProperty("营业执照")
@Column(name = "business_license")
private String businessLicense;
@Column(name = "crt_time")
private Long crtTime;
@Column(name = "upd_time")
private Long updTime;
@Column(name = "is_del")
private Integer isDel;
}
\ No newline at end of file
package com.xxfc.platform.vehicle.entity;
import com.github.wxiaoqi.security.common.vo.DataInter;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.*;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
......@@ -21,7 +20,7 @@ import java.util.Date;
*/
@Data
@Table(name = "vehicle_common_price_info")
public class VehicleCommonPriceInfo implements Serializable {
public class VehicleCommonPriceInfo implements Serializable, DataInter {
private static final long serialVersionUID = 1L;
/**
......@@ -112,4 +111,9 @@ public class VehicleCommonPriceInfo implements Serializable {
@Column(name = "is_del")
private Integer isDel;
@Transient
List<Integer> dataCompanyIds;
@Transient
List<Integer> dataCorporationIds;
}
package com.xxfc.platform.vehicle.entity;
import com.github.wxiaoqi.security.common.vo.DataInter;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -7,6 +8,7 @@ import javax.persistence.*;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
......@@ -18,7 +20,7 @@ import java.util.Date;
*/
@Data
@Table(name = "vehicle_holiday_price_info")
public class VehicleHolidayPriceInfo implements Serializable {
public class VehicleHolidayPriceInfo implements Serializable, DataInter {
private static final long serialVersionUID = 1L;
/**
......@@ -117,8 +119,14 @@ public class VehicleHolidayPriceInfo implements Serializable {
private Integer isDel;
@Transient
private String startDate;
private String startTime;
@Transient
private String endDate;
private String endTime;
@Transient
List<Integer> dataCompanyIds;
@Transient
List<Integer> dataCorporationIds;
}
......@@ -8,10 +8,12 @@ import com.xxfc.platform.vehicle.entity.*;
import com.xxfc.platform.vehicle.pojo.*;
import com.xxfc.platform.vehicle.pojo.dto.BranchCompanyAreaDTO;
import com.xxfc.platform.vehicle.pojo.dto.BranchCompanyFindDTO;
import com.xxfc.platform.vehicle.pojo.dto.CompanyInfoFindDTO;
import com.xxfc.platform.vehicle.pojo.dto.VehicleModelCalendarPriceDTO;
import com.xxfc.platform.vehicle.pojo.vo.AccompanyingItemVo;
import com.xxfc.platform.vehicle.pojo.vo.BranComanyLeaderVo;
import com.xxfc.platform.vehicle.pojo.vo.BranchCompanyListVO;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
......@@ -217,4 +219,16 @@ public interface VehicleFeign {
@GetMapping("/branchCompany/compnays_area")
public List<BranchCompanyAreaDTO> findBranchCompnayAreaByIds(@RequestParam("companyIds") List<Integer> compnayIds);
@ApiOperation("列表")
@RequestMapping(value = "company/info/app/unauth/listByIds", method = RequestMethod.POST)
ObjectRestResponse<List<CompanyInfo>> listByIds(@RequestBody CompanyInfoFindDTO companyInfoFindDTO);
@PostMapping("branchCompany/app/unauth/listByIds")
ObjectRestResponse<List<CompanySearchVO>> listByIds(@RequestBody CompanySearchDTO vo);
@GetMapping(value = "/vehicleHolidayPriceInfo/getByVehicleIdFeign")
public ObjectRestResponse<List<VehicleModelCalendarPriceDTO>> getByVehicleIdFeign(
@RequestParam("vehicleId") String vehicleId, @RequestParam("startDate") String startDate, @RequestParam("endDate") String endDate, @RequestParam("userId") Integer userId, @RequestParam("companyId") Integer companyId);
}
......@@ -174,4 +174,19 @@ public class AddOrUpdateVehicleVo {
//可用会员类型
private Integer memberUse;
/**
* 车辆状况:1、全新,2、9成新,3、8成新,4、7成新
*/
private Integer vehicleStatus;
/**
* 车身状况:1、无剐蹭,2、微瑕疵,3、无瑕疵
*/
private Integer vehicleBodyStatus;
/**
* 内饰:1、全新,2、9成新,3、8成新,4、7成新
*/
private Integer vehicleInnerStatus;
}
\ No newline at end of file
package com.xxfc.platform.vehicle.pojo;
import com.github.wxiaoqi.security.common.vo.DataInter;
import com.github.wxiaoqi.security.common.vo.PageParam;
import lombok.Data;
import java.util.List;
@Data
public class CompanySearchDTO {
Integer page;
Integer limit;
public class CompanySearchDTO extends PageParam implements DataInter {
Integer addrCity;
String lon;
String lat;
Integer state;
Integer isShow = 1;
Integer isDel = 0;
Integer isShow;
Integer isDel;
Integer addrProvince;
Long companyId;
String name;
Integer id;
List<Integer> companyIds;
List<Integer> dataCorporationIds;
List<Integer> dataCompanyIds;
}
......@@ -8,4 +8,6 @@ import java.math.BigDecimal;
@Data
public class CompanySearchVO extends BranchCompany {
BigDecimal distance;
String companyName;
}
......@@ -107,6 +107,9 @@ public class RentVehicleBookDTO extends PageParam {
@ApiModelProperty("会员免费类型")
Integer memberUse;
@ApiModelProperty("车辆id")
String vehicleId;
/**
* 用途 1 租车
*/
......
......@@ -56,7 +56,10 @@ public class ResultVehicleVo {
*/
private String parkBranchCompanyName;
/**
* 所属公司名称
*/
private String companyName;
/**
* 目的地分支机构(id)
......
......@@ -15,6 +15,8 @@ public class UsableVehicleModelVO {
@ApiModelProperty(value = "车型信息")
VehicleModel vehicleModel;
private String vehicleIds;
@ApiModelProperty(value = "公司信息")
BranchCompany company;
......
......@@ -88,6 +88,10 @@ public class VehicleExcelVo {
private String insuranceNo;
/**
* 所属公司名称
*/
private String companyName;
/**
......
package com.xxfc.platform.vehicle.pojo;
import com.sun.org.apache.xpath.internal.operations.Bool;
import lombok.Data;
import java.util.Date;
......@@ -29,9 +28,19 @@ public class VehiclePageQueryVo {
private Integer brand;
/**
* 所属分支机构(id)
* 所属门店(id)
*/
private Integer subordinateBranch;
/**
* 停靠门店
*/
private Integer parkBranchCompanyId;
/**
* 所属公司
*/
private Integer companyId;
/**
* 所属省份(id)
*/
......
package com.xxfc.platform.vehicle.pojo.dto;
import com.github.wxiaoqi.security.common.vo.PageParam;
import lombok.Data;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/8/23 16:27
*/
@Data
public class BranchCompanyApplyFindDTO extends PageParam {
private Integer status;
private Integer type;
private Long startTime;
private Long endTime;
}
package com.xxfc.platform.vehicle.pojo.dto;
import com.github.wxiaoqi.security.common.vo.PageParam;
import lombok.Data;
import java.util.List;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/8/23 16:27
*/
@Data
public class CompanyInfoFindDTO extends PageParam {
private String name;
private List<Long> ids;
}
......@@ -7,4 +7,16 @@ import lombok.Data;
public class VehicleCommonPriceDto extends PageParam {
private Integer companyId;
private Integer modelId;
private Integer code;
private String numberPlate;
/**
* 所属门店(id)
*/
private Integer subordinateBranch;
/**
* 停靠门店
*/
private Integer parkBranchCompanyId;
}
......@@ -16,4 +16,8 @@ public class VehicleCommonPriceVo extends VehicleCommonPriceInfo {
private Integer mileage = 0;
//车辆状况
private Integer vehicleStatus;
private String modelName;
private Integer vehicleBodyStatus;
}
package com.xxfc.platform.vehicle.pojo.vo;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class VehicleHolidayPriceInfoVo {
private Integer festivalId;
private String festivalDay;
private String startTime;
private String endTime;
private BigDecimal rentPrice;
private Integer rentFreeDay;
private String vehicleId;
private Integer allModelUse;
private Integer allVehicleUse;
}
package com.xxfc.platform.vehicle.pojo.vo;
import com.xxfc.platform.vehicle.entity.Vehicle;
import com.xxfc.platform.vehicle.pojo.dto.VehicleModelCalendarPriceDTO;
import lombok.Data;
import java.util.List;
@Data
public class VehicleVO extends Vehicle {
private List<VehicleModelCalendarPriceDTO> priceDTOS;
}
\ No newline at end of file
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.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.vehicle.entity.*;
import com.xxfc.platform.vehicle.mapper.BranchCompanyApplyMapper;
import com.xxfc.platform.vehicle.pojo.dto.BranchCompanyApplyFindDTO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import tk.mybatis.mapper.entity.Example;
import java.util.List;
@Service
@Slf4j
public class BranchCompanyApplyBiz extends BaseBiz<BranchCompanyApplyMapper, BranchCompanyApply>{
public ObjectRestResponse addOrUpd(BranchCompanyApply branchCompanyApply){
Long id = branchCompanyApply.getId() == null ? 0L :branchCompanyApply.getId();
if (id > 0L){
updateSelectiveById(branchCompanyApply);
}else {
insertSelective(branchCompanyApply);
}
return ObjectRestResponse.succ();
}
public List<BranchCompanyApply> getList(BranchCompanyApplyFindDTO applyFindDTO){
Example example=new Example(BranchCompanyApply.class);
Example.Criteria criteria = example.createCriteria();
criteria.andEqualTo("isDel",0);
if (applyFindDTO.getStatus() != null ){
criteria.andEqualTo("status",applyFindDTO.getStatus());
}
if (applyFindDTO.getType() != null ){
criteria.andEqualTo("type",applyFindDTO.getType());
}
if (applyFindDTO.getStartTime() != null && applyFindDTO.getStartTime() > 0 ){
criteria.andGreaterThanOrEqualTo("crtTime",applyFindDTO.getStartTime());
}
if (applyFindDTO.getEndTime() != null && applyFindDTO.getEndTime() > 0 ){
criteria.andLessThanOrEqualTo("crtTime",applyFindDTO.getEndTime());
}
example.setOrderByClause("crt_time desc ");
return selectByExample(example);
}
public ObjectRestResponse selectList(BranchCompanyApplyFindDTO applyFindDTO){
PageHelper.startPage(applyFindDTO.getPage(), applyFindDTO.getLimit());
PageInfo<BranchCompanyApply> pageInfo = new PageInfo<>(getList(applyFindDTO));
return ObjectRestResponse.succ(PageDataVO.pageInfo(pageInfo));
}
}
......@@ -24,6 +24,7 @@ import com.xxfc.platform.vehicle.mapper.BranchCompanyMapper;
import com.xxfc.platform.vehicle.pojo.BranchCompanyVo;
import com.xxfc.platform.vehicle.pojo.CompanyDetail;
import com.xxfc.platform.vehicle.pojo.CompanySearchDTO;
import com.xxfc.platform.vehicle.pojo.CompanySearchVO;
import com.xxfc.platform.vehicle.pojo.dto.BranchCompanyAreaDTO;
import com.xxfc.platform.vehicle.pojo.dto.BranchCompanyFindDTO;
import com.xxfc.platform.vehicle.pojo.dto.BranchCompanyListDTO;
......@@ -53,8 +54,7 @@ import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import static com.github.wxiaoqi.security.auth.common.constatns.CommonConstants.DATA_ALL_FALSE;
import static com.xxfc.platform.vehicle.constant.DbColumnConstant.COMPANY_ZONE_ID;
import static com.xxfc.platform.vehicle.constant.DbColumnConstant.ID;
import static com.xxfc.platform.vehicle.constant.DbColumnConstant.*;
import static com.xxfc.platform.vehicle.constant.RedisKey.BRANCH_COMPANY_CACHE_DATAZONE;
@Service
......@@ -207,6 +207,9 @@ public class BranchCompanyBiz extends BaseBiz<BranchCompanyMapper, BranchCompany
if (StringUtils.isNotBlank(userDTO.getDataCompany())) {
criteria.andIn(ID, userDTO.dataCompany2List());
}
if (StringUtils.isNotBlank(userDTO.getDataCorporation())) {
criteria.andIn(COMPANY_COMPANY_ID, userDTO.dataCorporation2List());
}
}
example.setOrderByClause("`id` desc");
PageHelper.startPage(page, limit);
......@@ -214,13 +217,18 @@ public class BranchCompanyBiz extends BaseBiz<BranchCompanyMapper, BranchCompany
return PageDataVO.pageInfo(branchCompanyPageInfo);
}
public PageDataVO<BranchCompany> search(CompanySearchDTO vo) {
public PageDataVO<CompanySearchVO> search(CompanySearchDTO vo) {
PageHelper.startPage(vo.getPage(), vo.getLimit());
PageInfo<BranchCompany> branchCompanyPageInfo = new PageInfo<>(mapper.search(vo.getLon(), vo.getLat(), vo.getAddrCity(), vo.getState(), vo.getIsShow(), vo.getIsDel()));
PageInfo<CompanySearchVO> branchCompanyPageInfo = new PageInfo<>(getList(vo));
return PageDataVO.pageInfo(branchCompanyPageInfo);
}
public List<CompanySearchVO> getList(CompanySearchDTO vo){
return mapper.search(vo);
}
@Cache(key = RedisKey.BRANCH_COMPANY_CACHE_ALL)
public List<BranchCompany> getAll() {
Example example = new Example(BranchCompany.class);
......
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.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.vehicle.entity.CompanyInfo;
import com.xxfc.platform.vehicle.mapper.CompanyInfoMapper;
import com.xxfc.platform.vehicle.pojo.dto.CompanyInfoFindDTO;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import tk.mybatis.mapper.entity.Example;
import java.util.List;
@Service
@Slf4j
public class CompanyInfoBiz extends BaseBiz<CompanyInfoMapper, CompanyInfo>{
public ObjectRestResponse addOrUpd(CompanyInfo companyInfo){
Long id = companyInfo.getId() == null ? 0L :companyInfo.getId();
if (id > 0L){
updateSelectiveById(companyInfo);
}else {
insertSelective(companyInfo);
}
return ObjectRestResponse.succ();
}
public List<CompanyInfo> getList(CompanyInfoFindDTO companyInfoFindDTO){
Example example=new Example(CompanyInfo.class);
Example.Criteria criteria = example.createCriteria();
criteria.andEqualTo("isDel",0);
if (StringUtils.isNotBlank(companyInfoFindDTO.getName()) ){
criteria.andLike("name","%" + companyInfoFindDTO.getName() + "%");
}
if (companyInfoFindDTO.getIds() != null && companyInfoFindDTO.getIds().size() > 0){
criteria.andIn("id",companyInfoFindDTO.getIds());
}
example.setOrderByClause("crt_time desc ");
return selectByExample(example);
}
public ObjectRestResponse selectList(CompanyInfoFindDTO companyInfoFindDTO){
PageHelper.startPage(companyInfoFindDTO.getPage(), companyInfoFindDTO.getLimit());
PageInfo<CompanyInfo> pageInfo = new PageInfo<>(getList(companyInfoFindDTO));
return ObjectRestResponse.succ(PageDataVO.pageInfo(pageInfo));
}
}
......@@ -3,6 +3,7 @@ package com.xxfc.platform.vehicle.biz;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONArray;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
......@@ -17,6 +18,9 @@ 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.universal.constant.DictionaryKey;
import com.xxfc.platform.universal.entity.Dictionary;
import com.xxfc.platform.universal.feign.ThirdFeign;
import com.xxfc.platform.vehicle.common.CustomIllegalParamException;
import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.constant.*;
......@@ -93,7 +97,8 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
@Autowired
private VehicleJobHandler vehicleJobHandler;
@Autowired
private ThirdFeign thirdFeign;
@Override
public UserFeign getUserFeign() {
return userFeign;
......@@ -1393,20 +1398,18 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
/**
* 获取所属公司所有车辆
* @param companyId
* @param companyIds
* @return
*/
public List<Vehicle> getAllVehicleByCompanyId(Integer companyId, Integer modelId) {
Example example = new Example(Vehicle.class);
Example.Criteria criteria = example.createCriteria();
if (companyId != null) {
criteria.andEqualTo("subordinateBranch", companyId);
public List<Vehicle> getAllVehicleByCompanyId(List<Integer> companyIds, Integer modelId) {
Map<String, Object> param = new HashMap<>();
if (companyIds != null) {
param.put("companyIds", companyIds);
}
if (modelId != null) {
criteria.andEqualTo("modelId", modelId);
param.put("modelId", modelId);
}
criteria.andEqualTo("isDel", 0);
return mapper.selectByExample(example);
return mapper.getAllVehicleByParam(param);
}
public ObjectRestResponse<PageDataVO<VehicleAndModelInfoVo>> getVehicle(VehiclePlanDto vehiclePlanDto) {
......@@ -1545,4 +1548,18 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
return mapper.getAllVehicleInfo();
}
/**
* 获取所有车辆生产商
* @return
*/
public ObjectRestResponse getAllManufacturer() {
Dictionary dictionary = thirdFeign.findDictionaryByTypeAndCode(DictionaryKey.VEHICLE, DictionaryKey.VEHICLE_MANUFACTURER);
if (dictionary != null && StringUtils.isNotBlank(dictionary.getDetail())) {
return ObjectRestResponse.succ(JSONArray.parseArray(dictionary.getDetail()));
} else {
return ObjectRestResponse.succ(new JSONArray());
}
}
}
......@@ -41,6 +41,7 @@ public class VehicleCommonPriceInfoBiz extends BaseBiz<VehicleCommonPriceInfoMap
public UserFeign getUserFeign() {
return userFeign;
}
public ObjectRestResponse<VehicleCommonPriceInfo> addOrUpdate(VehicleCommonPriceInfo vehicleCommonPriceInfo) {
if (vehicleCommonPriceInfo == null) {
return ObjectRestResponse.paramIsEmpty();
......@@ -49,17 +50,19 @@ public class VehicleCommonPriceInfoBiz extends BaseBiz<VehicleCommonPriceInfoMap
if (vehicle == null) {
return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE, "车辆不存在!");
}
setPowerData(vehicleCommonPriceInfo);
vehicleCommonPriceInfo.setCompanyId(vehicle.getSubordinateBranch());
List<Vehicle> vehicleList = null;
if (vehicleCommonPriceInfo.getAllVehicleUse() != null && vehicleCommonPriceInfo.getAllVehicleUse() == 1) {//所有车辆可用
vehicleList = vehicleBiz.getAllVehicleByCompanyId(vehicle.getSubordinateBranch(), null);
vehicleList = vehicleBiz.getAllVehicleByCompanyId(vehicleCommonPriceInfo.getDataCompanyIds(), null);
}
if (vehicleCommonPriceInfo.getAllModelUse() != null && vehicleCommonPriceInfo.getAllModelUse() == 1) {//所有车型可用
vehicleList = vehicleBiz.getAllVehicleByCompanyId(vehicle.getSubordinateBranch(), null);
if (vehicleCommonPriceInfo.getAllModelUse() != null && vehicleCommonPriceInfo.getAllModelUse() == 1) {//车型可用
vehicleList = vehicleBiz.getAllVehicleByCompanyId(vehicleCommonPriceInfo.getDataCompanyIds(), vehicle.getModelId());
}
if (vehicleList == null || vehicleList.size() <= 0) { //单个车辆可用
VehicleCommonPriceInfo oldValue = getByVehicleId(vehicleCommonPriceInfo.getVehicleId());
if (oldValue == null) {
vehicleCommonPriceInfo.setId(null);
insertSelectiveRe(vehicleCommonPriceInfo);
} else {
BeanUtil.copyProperties(vehicleCommonPriceInfo, oldValue, CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true));
......@@ -67,16 +70,20 @@ public class VehicleCommonPriceInfoBiz extends BaseBiz<VehicleCommonPriceInfoMap
}
} else {
vehicleList.parallelStream().forEach(vehicleInfo -> {
VehicleCommonPriceInfo oldValue = getByVehicleId(vehicleInfo.getId());
vehicleCommonPriceInfo.setVehicleId(vehicleInfo.getId());
vehicleCommonPriceInfo.setCompanyId(vehicleInfo.getSubordinateBranch());
vehicleCommonPriceInfo.setModelId(vehicleInfo.getModelId());
if (oldValue == null) {
insertSelectiveRe(vehicleCommonPriceInfo);
} else {
BeanUtil.copyProperties(vehicleCommonPriceInfo, oldValue, CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true));
updateSelectiveByIdRe(oldValue);
if (vehicleInfo != null) {
VehicleCommonPriceInfo oldValue = getByVehicleId(vehicleInfo.getId());
vehicleCommonPriceInfo.setVehicleId(vehicleInfo.getId());
vehicleCommonPriceInfo.setCompanyId(vehicleInfo.getSubordinateBranch());
vehicleCommonPriceInfo.setModelId(vehicleInfo.getModelId());
vehicleCommonPriceInfo.setId(null);
if (oldValue == null) {
insertSelectiveRe(vehicleCommonPriceInfo);
} else {
BeanUtil.copyProperties(vehicleCommonPriceInfo, oldValue, CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true));
updateSelectiveByIdRe(oldValue);
}
}
});
}
return ObjectRestResponse.succ();
......
......@@ -73,7 +73,9 @@ public class WebConfiguration implements WebMvcConfigurer {
"/vehicleInfo/**",
"/branchCompany/**",
"/vehicleModel/**",
"/departure/**"
"/departure/**",
"/company/**",
"/vehicleHolidayPriceInfo/**"
};
Collections.addAll(list, urls);
return list;
......
package com.xxfc.platform.vehicle.mapper;
import com.xxfc.platform.vehicle.entity.BranchCompanyApply;
import tk.mybatis.mapper.additional.idlist.SelectByIdListMapper;
import tk.mybatis.mapper.common.Mapper;
public interface BranchCompanyApplyMapper extends Mapper<BranchCompanyApply>, SelectByIdListMapper<BranchCompanyApply,Long> {
}
\ No newline at end of file
......@@ -2,6 +2,8 @@ package com.xxfc.platform.vehicle.mapper;
import com.alibaba.fastjson.JSONObject;
import com.xxfc.platform.vehicle.entity.BranchCompany;
import com.xxfc.platform.vehicle.pojo.CompanySearchDTO;
import com.xxfc.platform.vehicle.pojo.CompanySearchVO;
import com.xxfc.platform.vehicle.pojo.dto.BranchCompanyAreaDTO;
import com.xxfc.platform.vehicle.pojo.dto.BranchCompanyListDTO;
import org.apache.ibatis.annotations.Param;
......@@ -13,7 +15,7 @@ import java.util.List;
import java.util.Map;
public interface BranchCompanyMapper extends Mapper<BranchCompany>, SelectByIdListMapper<BranchCompany,Integer> {
List<BranchCompany> search(@Param("lon") String lon, @Param("lat") String lat, @Param("addrCity") Integer addrCity, Integer state, Integer isShow, Integer isDel);
List<CompanySearchVO> search(CompanySearchDTO companySearchDTO);
List<BranchCompany> selectByZoneId(Map<String, Object> param);
List<Integer> findCompanyIdsByAreaId(@Param("areaId") Integer areaId);
......
package com.xxfc.platform.vehicle.mapper;
import com.xxfc.platform.vehicle.entity.CompanyInfo;
import tk.mybatis.mapper.additional.idlist.SelectByIdListMapper;
import tk.mybatis.mapper.common.Mapper;
public interface CompanyInfoMapper extends Mapper<CompanyInfo>, SelectByIdListMapper<CompanyInfo,Long> {
}
\ No newline at end of file
package com.xxfc.platform.vehicle.mapper;
import com.xxfc.platform.vehicle.entity.VehicleHolidayPriceInfo;
import com.xxfc.platform.vehicle.pojo.vo.VehicleHolidayPriceInfoVo;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
/**
* 车辆节假日价格信息表
*
......@@ -11,5 +14,7 @@ import tk.mybatis.mapper.common.Mapper;
* @date 2020-05-11 09:16:23
*/
public interface VehicleHolidayPriceInfoMapper extends Mapper<VehicleHolidayPriceInfo> {
List<VehicleHolidayPriceInfoVo> getAll(String vehicleId, Integer festivalId);
Integer selectMaxFestivalId();
}
......@@ -55,4 +55,6 @@ public interface VehicleMapper extends Mapper<Vehicle> {
List<String> findExistVehicleIds();
List<BranchCompanyVehicleCountVo> getAllVehicleInfo();
List<Vehicle> getAllVehicleByParam(Map<String, Object> param);
}
\ No newline at end of file
......@@ -19,6 +19,7 @@ import com.xxfc.platform.vehicle.entity.BranchCompany;
import com.xxfc.platform.vehicle.pojo.BranchCompanyVo;
import com.xxfc.platform.vehicle.pojo.CompanyDetail;
import com.xxfc.platform.vehicle.pojo.CompanySearchDTO;
import com.xxfc.platform.vehicle.pojo.CompanySearchVO;
import com.xxfc.platform.vehicle.pojo.dto.BranchCompanyAreaDTO;
import com.xxfc.platform.vehicle.pojo.dto.BranchCompanyFindDTO;
import com.xxfc.platform.vehicle.pojo.vo.BranComanyLeaderVo;
......@@ -74,12 +75,6 @@ public class BranchCompanyController extends BaseController<BranchCompanyBiz> {
return RestResponse.data(baseBiz.getAll(page,limit,addrProvince, addrCity, addrTown, null,null));
}
@RequestMapping(value ="/search",method = RequestMethod.GET)
@IgnoreUserToken
@IgnoreClientToken
public RestResponse<PageDataVO<BranchCompany>> search(@Validated CompanySearchDTO vo) {
return RestResponse.data(baseBiz.search(vo));
}
@RequestMapping(value ="",method = RequestMethod.GET)
public RestResponse<List<BranchCompany>> getAll() {
......@@ -234,4 +229,17 @@ public class BranchCompanyController extends BaseController<BranchCompanyBiz> {
return baseBiz.findBranchCompanyAreaByIds(compnayIds);
}
@GetMapping("/alls")
public ObjectRestResponse alls(CompanySearchDTO vo){
return ObjectRestResponse.succ(baseBiz.getList(vo));
}
@PostMapping("app/unauth/listByIds")
@IgnoreUserToken
public ObjectRestResponse<List<CompanySearchVO>> listByIds(@RequestBody CompanySearchDTO vo){
return ObjectRestResponse.succ(baseBiz.getList(vo));
}
}
package com.xxfc.platform.vehicle.rest;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
......@@ -21,8 +22,10 @@ import com.xxfc.platform.vehicle.constant.VehicleMemberType;
import com.xxfc.platform.vehicle.entity.Vehicle;
import com.xxfc.platform.vehicle.entity.VehicleBookRecord;
import com.xxfc.platform.vehicle.pojo.*;
import com.xxfc.platform.vehicle.pojo.dto.VehicleModelCalendarPriceDTO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -33,6 +36,7 @@ import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
import java.util.HashSet;
import java.util.List;
import static com.github.wxiaoqi.security.common.constant.CommonConstants.*;
import static com.xxfc.platform.vehicle.constant.VehicleConstant.USER_APP;
......@@ -123,7 +127,22 @@ public class RentVehicleController extends BaseController<VehicleBiz> implements
}
//设置显示是否有车
dto.setYearNo4Where(Boolean.TRUE);
return ObjectRestResponse.succ(vehicleBiz.searchUsableModel(dto));
PageDataVO<UsableVehicleModelVO> uvmvpdvs = vehicleBiz.searchUsableModel(dto);
// if(CollUtil.isNotEmpty(uvmvpdvs.getData())){
// uvmvpdvs.getData().forEach(data -> {
// if(StrUtil.isNotBlank(data.getVehicleIds())) {
// String[] strs = StrUtil.split(data.getVehicleIds(), ",");
// List<Vehicle> vehicleList = vehicleBiz.selectByWeekend(w -> {
// w.andIn(Vehicle::getId, CollUtil.toList(strs));
// return w;
// });
// vehicleList.forEach(vehicle -> {
// baseBiz
// });
// }
// });
// }
return ObjectRestResponse.succ(uvmvpdvs);
}
/**
......@@ -181,6 +200,8 @@ public class RentVehicleController extends BaseController<VehicleBiz> implements
setIsDel(SYS_FALSE);
}});
bookVehicleId = vehicle.getId();
}else if(null != dto.getVehicleId()){
bookVehicleId = dto.getVehicleId();
}else {
dto.setLimit(1);
dto.setPage(1);
......
......@@ -9,7 +9,7 @@ import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("vehicleCommonPriceInfo")
public class VehicleCommonPriceInfoController extends BaseController<VehicleCommonPriceInfoBiz,VehicleCommonPriceInfo> {
public class VehicleCommonPriceInfoController extends BaseController<VehicleCommonPriceInfoBiz,VehicleCommonPriceInfo>{
@PostMapping(value = "/admin/addOrUpdate")
public ObjectRestResponse saveOrUpdate(@RequestBody VehicleCommonPriceInfo vehicleCommonPriceInfo) {
......
......@@ -129,6 +129,11 @@ public class VehicleController extends BaseController<VehicleBiz> implements Use
return RestResponse.suc(vehicles);
}
@GetMapping(value = "getAllManufacturer")
public ObjectRestResponse getAllManufacturer() {
return baseBiz.getAllManufacturer();
}
@PostMapping(value = "/test")
public ObjectRestResponse test(@RequestBody VehicleBookRecord vehicleBookRecord) {
return vehicleBiz.addVehicleBookRecord(vehicleBookRecord);
......
package com.xxfc.platform.vehicle.rest;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController;
import com.xxfc.platform.vehicle.biz.VehicleBiz;
import com.xxfc.platform.vehicle.biz.VehicleHolidayPriceInfoBiz;
import com.xxfc.platform.vehicle.entity.Vehicle;
import com.xxfc.platform.vehicle.entity.VehicleHolidayPriceInfo;
import com.xxfc.platform.vehicle.pojo.dto.VehicleModelCalendarPriceDTO;
import com.xxfc.platform.vehicle.pojo.vo.VehicleVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("vehicleHolidayPriceInfo")
public class VehicleHolidayPriceInfoController extends BaseController<VehicleHolidayPriceInfoBiz, VehicleHolidayPriceInfo> {
@Autowired
VehicleBiz vehicleBiz;
@PostMapping(value = "/saveOrUpdate")
public ObjectRestResponse saveOrUpdate(@RequestBody VehicleHolidayPriceInfo vehicleHolidayPriceInfo) {
return baseBiz.addOrUpdate(vehicleHolidayPriceInfo);
}
@GetMapping(value = "getByVehicleId")
public ObjectRestResponse getByVehicleId(String vehicleId, String startDate, String endDate) {
return ObjectRestResponse.succ(baseBiz.getByVehicleIdAndDate(vehicleId, startDate, endDate));
public ObjectRestResponse getByVehicleId(String vehicleId, String startTime, String endTime) {
return ObjectRestResponse.succ(baseBiz.getByVehicleIdAndDate(vehicleId, startTime, endTime));
}
@GetMapping(value = "getByVehicleIdFeign")
@IgnoreUserToken
public ObjectRestResponse<List<VehicleModelCalendarPriceDTO>> getByVehicleIdFeign(String vehicleId, String startDate, String endDate, Integer userId, Integer companyId) {
return ObjectRestResponse.succ(baseBiz.getSynthesizePrice(vehicleId, startDate, endDate, userId, companyId));
}
@GetMapping(value = "calendarPrice")
@IgnoreUserToken
public ObjectRestResponse<List<VehicleModelCalendarPriceDTO>> calendarPrice(String vehicleId, String startDate, String endDate, Integer companyId) {
Integer userId = Integer.valueOf(getCurrentUserId());
return ObjectRestResponse.succ(baseBiz.getSynthesizePrice(vehicleId, startDate, endDate, userId, companyId));
}
@DeleteMapping(value = "deleteByVehicleId")
public ObjectRestResponse deleteByVehicleId(String vehicleId, Integer festivalId) {
return baseBiz.deleteByVehicleId(vehicleId, festivalId);
}
@GetMapping(value = "multiCalendarPrice")
@IgnoreUserToken
public ObjectRestResponse<List<VehicleVO>> multiCalendarPrice(String vehicleIds, String startDate, String endDate, Integer companyId) {
Integer userId = Integer.valueOf(getCurrentUserId());
List<VehicleVO> vehicleVOS = CollUtil.newArrayList();
if(StrUtil.isNotBlank(vehicleIds)) {
String[] strs = StrUtil.split(vehicleIds, ",");
List<Vehicle> vehicleList = vehicleBiz.selectByWeekend(w -> {
w.andIn(Vehicle::getId, CollUtil.toList(strs));
return w;
});
for (Vehicle vehicle : vehicleList) {
VehicleVO vehicleVO = BeanUtil.toBean(vehicle, VehicleVO.class);
vehicleVO.setPriceDTOS(baseBiz.getSynthesizePrice(vehicle.getId(), startDate, endDate, userId, companyId));
vehicleVOS.add(vehicleVO);
}
}
return ObjectRestResponse.succ(vehicleVOS);
}
@GetMapping(value = "getAllByVehicleId")
public ObjectRestResponse getAllByVehicleId(String vehicleId) {
return baseBiz.getByVehicleId(vehicleId);
}
@GetMapping(value = "getOne")
public ObjectRestResponse getOne(Integer id) {
return ObjectRestResponse.succ(baseBiz.selectById(id));
}
@GetMapping(value = "getAll")
public ObjectRestResponse getAll(String vehicleId, Integer festivalId) {
return baseBiz.getAll(vehicleId, festivalId);
}
}
\ No newline at end of file
package com.xxfc.platform.vehicle.rest.admin;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.rest.UserRestInterface;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
import com.github.wxiaoqi.security.common.rest.BaseController;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.vehicle.biz.BranchCompanyBiz;
import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.entity.BranchCompany;
import com.xxfc.platform.vehicle.pojo.CompanySearchDTO;
import com.xxfc.platform.vehicle.pojo.CompanySearchVO;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("admin/branchCompany")
@Slf4j
@IgnoreClientToken
@IgnoreUserToken
@Api(value="公司controller",tags={"公司操作接口"})
public class AdminBranchCompanyController extends BaseController<BranchCompanyBiz,BranchCompany> implements UserRestInterface {
@Autowired
UserFeign userFeign;
@Override
public UserFeign getUserFeign() {
return userFeign;
}
@RequestMapping(value ="/search",method = RequestMethod.GET)
public RestResponse<PageDataVO<CompanySearchVO>> search(@Validated CompanySearchDTO vo) {
setPowerData(vo);
return RestResponse.data(baseBiz.search(vo));
}
@RequestMapping(value ="/details",method = RequestMethod.GET)
public RestResponse details(@Validated CompanySearchDTO vo) {
List<CompanySearchVO> list = baseBiz.getList(vo);
CompanySearchVO companySearchVO=new CompanySearchVO();
if (list.size() > 0){
companySearchVO=list.get(0);
}
return RestResponse.data(companySearchVO);
}
}
package com.xxfc.platform.vehicle.rest.admin;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xxfc.platform.vehicle.biz.BranchCompanyApplyBiz;
import com.xxfc.platform.vehicle.common.BaseController;
import com.xxfc.platform.vehicle.entity.BranchCompanyApply;
import com.xxfc.platform.vehicle.pojo.dto.BranchCompanyApplyFindDTO;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("company/apply")
public class CompanyApplyController extends BaseController<BranchCompanyApplyBiz> {
@ApiOperation("查询入驻公司列表")
@RequestMapping(value = "/selectList", method = RequestMethod.GET)
public ObjectRestResponse getList(BranchCompanyApplyFindDTO applyFindDTO){
return baseBiz.selectList(applyFindDTO);
}
@ApiOperation("更新入驻公司")
@RequestMapping(value = "/upd", method = RequestMethod.POST)
public ObjectRestResponse updCompany(@RequestBody BranchCompanyApply branchCompanyApply){
return baseBiz.addOrUpd(branchCompanyApply);
}
@ApiOperation("新增入驻公司")
@RequestMapping(value = "app/unauth/add", method = RequestMethod.POST)
@IgnoreUserToken
public ObjectRestResponse addCompany(@RequestBody BranchCompanyApply branchCompanyApply){
return baseBiz.addOrUpd(branchCompanyApply);
}
}
package com.xxfc.platform.vehicle.rest.admin;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController;
import com.xxfc.platform.vehicle.biz.CompanyInfoBiz;
import com.xxfc.platform.vehicle.entity.CompanyInfo;
import com.xxfc.platform.vehicle.pojo.dto.CompanyInfoFindDTO;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping("company/info")
public class CompanyInfoController extends BaseController<CompanyInfoBiz,CompanyInfo> {
@ApiOperation("查询公司列表")
@RequestMapping(value = "/selectList", method = RequestMethod.GET)
public ObjectRestResponse getList(CompanyInfoFindDTO companyInfoFindDTO){
return baseBiz.selectList(companyInfoFindDTO);
}
@ApiOperation("新增公司")
@RequestMapping(value = "/save", method = RequestMethod.POST)
public ObjectRestResponse saveCompany(@RequestBody CompanyInfo companyInfo){
return baseBiz.addOrUpd(companyInfo);
}
@ApiOperation("更新公司")
@RequestMapping(value = "/upd", method = RequestMethod.POST)
public ObjectRestResponse updCompany(@RequestBody CompanyInfo companyInfo){
return baseBiz.addOrUpd(companyInfo);
}
@ApiOperation("列表")
@RequestMapping(value = "app/unauth/listByIds", method = RequestMethod.POST)
@IgnoreUserToken
@IgnoreClientToken
public ObjectRestResponse<List<CompanyInfo>> listByIds(@RequestBody CompanyInfoFindDTO companyInfoFindDTO){
return ObjectRestResponse.succ(baseBiz.getList(companyInfoFindDTO));
}
@ApiOperation("删除")
@RequestMapping(value = "/del", method = RequestMethod.POST)
public ObjectRestResponse delCompany(@RequestBody CompanyInfo companyInfo){
companyInfo.setIsDel(1);
return baseBiz.addOrUpd(companyInfo);
}
}
......@@ -26,7 +26,7 @@ spring:
server-addr: 127.0.0.1:8848
#共用配置,暂定一个
shared-dataids: common-dev.yaml,mongodb-log-dev.yaml
namespace: tiande_spcloud
---
spring:
profiles: pro
......
......@@ -7,6 +7,7 @@
-->
<id column="id" property="id" jdbcType="INTEGER"/>
<result column="name" property="name" jdbcType="VARCHAR"/>
<result column="short_name" property="shortName" jdbcType="VARCHAR"/>
<result column="branch_type" property="branchType" jdbcType="INTEGER"/>
<result column="subordinate_branch" property="subordinateBranch" jdbcType="INTEGER"/>
<result column="addr_province" property="addrProvince" jdbcType="INTEGER"/>
......@@ -23,32 +24,66 @@
<result column="state" property="state"/>
</resultMap>
<select id="search" resultType="com.xxfc.platform.vehicle.pojo.CompanySearchVO">
select *
<select id="search" parameterType="com.xxfc.platform.vehicle.pojo.CompanySearchDTO" resultType="com.xxfc.platform.vehicle.pojo.CompanySearchVO">
select c.*,i.name as companyName
<if test="lon != null and lat != null">
, st_distance_sphere(point(#{lon}, #{lat}), point(longitude, latitude)) as distance
, st_distance_sphere(point(#{lon}, #{lat}), point(c.longitude, c.latitude)) as distance
</if>
from branch_company
from branch_company c
LEFT JOIN company_info i on c.company_id=i.id
<where>
c.is_del = 0
<if test="id != null">
and c.id = #{id}
</if>
<if test="addrCity != null">
and (addr_city = #{addrCity} or addr_province = #{addrCity} or addr_town = #{addrCity})
and (c.addr_city = #{addrCity} or c.addr_province = #{addrCity} or c.addr_town = #{addrCity})
</if>
<if test="addrProvince != null">
and c.addr_province = #{addrProvince}
</if>
<if test="lon != null and lat != null">
and longitude is not null and latitude is not null
and c.longitude is not null and c.latitude is not null
</if>
<if test="state != null">
and state = #{state}
and c.state = #{state}
</if>
<if test="companyId != null">
and c.company_id = #{companyId}
</if>
<if test="isShow != null">
and is_show = #{isShow}
and c.is_show = #{isShow}
</if>
<if test="name != null and name != '' ">
and ( c.name like concat('%',#{name},'%') or c.short_name like concat('%',#{name},'%') )
</if>
<if test="isDel != null">
and is_del = #{isDel}
<if test="companyIds != null and companyIds.size > 0">
and c.id in
<foreach collection="companyIds" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</if>
<if test="dataCompanyIds != null and dataCompanyIds.size > 0">
and c.id in
<foreach collection="dataCompanyIds" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</if>
<if test="dataCorporationIds != null and dataCorporationIds.size > 0">
and c.company_id in
<foreach collection="dataCorporationIds" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</if>
</where>
<if test="lon != null and lat != null">
order by distance asc
</if>
<choose>
<when test="lon != null and lat != null">
order by c.distance asc
</when>
<otherwise>
order by c.id desc
</otherwise>
</choose>
</select>
<select id="selectByZoneId" parameterType="java.util.Map"
resultType="com.xxfc.platform.vehicle.entity.BranchCompany">
......
......@@ -11,18 +11,32 @@
YEAR (NOW()) - YEAR (v.vehicle_register_date)
) as vehicleAge,
v.vehicle_status,
v.vehicle_body_status,
vm.name as modelName,
v.mileage_last_update AS mileage
FROM
vehicle_common_price_info vci
LEFT JOIN vehicle v ON v.id = vci.vehicle_id
vehicle v
LEFT JOIN vehicle_common_price_info vci ON v.id = vci.vehicle_id
LEFT JOIN branch_company bc2 ON v.subordinate_branch = bc2.id
LEFT JOIN company_info ci on ci.id = bc2.company_id
LEFT JOIN vehicle_model vm ON v.model_id = vm.id
<where>
<if test="companyId != null and companyId > 0">
and vci.company_id = #{companyId}
</if>
<if test="modelId != null and modelId > 0">
and vci.model_id = #{modelId}
</if>
and v.is_del = 0 and v.status &lt; 3
<if test="subordinateBranch !=null ">
and ( v.park_branch_company_id = #{subordinateBranch})
</if>
<if test="parkBranchCompanyId !=null ">
and ( bc.id = #{parkBranchCompanyId})
</if>
<if test="companyId !=null ">
and ( ci.id = #{companyId})
</if>
<if test="numberPlate !=null and numberPlate != ''">
and v.number_plate like concat('%',#{numberPlate},'%')
</if>
and v.is_del = 0
</where>
order by vci.upd_time DESC
</select>
......
......@@ -3,5 +3,17 @@
<mapper namespace="com.xxfc.platform.vehicle.mapper.VehicleHolidayPriceInfoMapper">
<select id="getAll" resultType="com.xxfc.platform.vehicle.pojo.vo.VehicleHolidayPriceInfoVo">
select festival_id, festival_day, MIN(festival_date) as startTime, MAX(festival_date) as endTime, rent_price, rent_free_day,vehicle_id from vehicle_holiday_price_info
where is_del = 0
GROUP BY festival_id,festival_day,rent_price, rent_free_day,vehicle_id
HAVING vehicle_id = #{vehicleId}
<if test="festivalId != null">
and festival_id = #{festivalId}
</if>
</select>
<select id="selectMaxFestivalId" resultType="java.lang.Integer">
select max(festival_id) from vehicle_holiday_price_info
</select>
</mapper>
\ No newline at end of file
......@@ -3,15 +3,10 @@
<mapper namespace="com.xxfc.platform.vehicle.mapper.VehicleMapper">
<resultMap id="searchUsableModelMap" type="com.xxfc.platform.vehicle.pojo.UsableVehicleModelVO">
<!-- <collection column="company_id" property="id" ofType="com.xxfc.platform.vehicle.entity.BranchCompany" select="com.xxfc.platform.vehicle.mapper.BranchCompanyMapper.selectByPrimaryKey" />-->
<!-- <result column="company_id" property="companyId" jdbcType="VARCHAR" javaType="java.lang.Integer"/>-->
<!-- <result column="model_id" property="modelId" jdbcType="INTEGER" javaType="java.lang.Integer"/>-->
<!-- <result column="vehicle_id" property="modelId" jdbcType="INTEGER" javaType="java.lang.Integer"/>-->
<association property="company" column="company_id"
select="com.xxfc.platform.vehicle.mapper.BranchCompanyMapper.selectByPrimaryKey"/>
<association property="vehicleModel" column="model_id"
select="com.xxfc.platform.vehicle.mapper.VehicleModelMapper.selectByPrimaryKey"/>
<!-- <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">
......@@ -74,8 +69,10 @@
v.vehicle_status,
v.vehicle_body_status,
v.vehicle_inner_status,
v.vehicle_register_date,
v.mileage_last_update as mileage,
c.val as useTypeName,
ci.name as companyName,
vm.name as vehicleType
<if test=" yearMonthAndParam != null ">
,vbi.booked_date
......@@ -96,6 +93,7 @@
LEFT JOIN vehicle_book_record v2 on v2.id = (select id from vehicle_book_record where vehicle_id = v.id order by update_time DESC LIMIT 1)
LEFT JOIN vehicle_departure_log v3 on v2.id = v3.book_record_id
LEFT JOIN vehicle_model vm ON v.model_id = vm.id
LEFT JOIN company_info ci on ci.id = bc2.company_id
LEFT JOIN (select * from constant where type = 2) c ON v.use_type = c.code
where
v.is_del=0
......@@ -170,6 +168,12 @@
<if test="subordinateBranch !=null ">
and ( v.park_branch_company_id = #{subordinateBranch})
</if>
<if test="parkBranchCompanyId !=null ">
and ( bc.id = #{parkBranchCompanyId})
</if>
<if test="companyId !=null ">
and ( ci.id = #{companyId})
</if>
<if test=" addrProvince !=null or addrCity !=null or zoneId !=null ">
<if test="addrProvince !=null">
and bc.addr_province=#{addrProvince}
......@@ -227,8 +231,10 @@
v.vehicle_status,
v.vehicle_body_status,
v.vehicle_inner_status,
v.vehicle_register_date,
v.mileage_last_update as mileage,
c.val as useTypeName,
ci.name as companyName,
vm.name as vehicleType
<if test=" yearMonthAndParam !=null ">
,vbi.booked_date
......@@ -247,6 +253,7 @@
LEFT JOIN vehicle_book_record v2 on v2.id = (select id from vehicle_book_record where vehicle_id = v.id order by update_time DESC LIMIT 1)
LEFT JOIN vehicle_departure_log v3 on v2.id = v3.book_record_id
LEFT JOIN vehicle_model vm ON v.model_id = vm.id
LEFT JOIN company_info ci on ci.id = bc2.company_id
LEFT JOIN (select * from constant where type = 2) c ON v.use_type = c.code
where
v.is_del=0
......@@ -335,8 +342,13 @@
</foreach>
</if>
<if test="subordinateBranch !=null ">
and ( v.park_branch_company_id = #{subordinateBranch} or
v.expect_destination_branch_company_id=#{subordinateBranch} )
and ( v.park_branch_company_id = #{subordinateBranch})
</if>
<if test="parkBranchCompanyId !=null ">
and ( bc.id = #{parkBranchCompanyId})
</if>
<if test="companyId !=null ">
and ( ci.id = #{companyId})
</if>
<if test=" addrProvince !=null or addrCity !=null or zoneId !=null ">
<if test="addrProvince !=null">
......@@ -359,8 +371,10 @@
select
v.`code`,
v.number_plate,
v.vehicle_register_date,
bc.name as parkBranchCompanyName,
c.val as useType,
ci.name as companyName,
vm.name as vehicleType
from vehicle v
<if test=" yearMonthAndParam != null ">
......@@ -378,6 +392,7 @@
LEFT JOIN vehicle_book_record v2 on v2.vehicle_id = v.id
LEFT JOIN vehicle_departure_log v3 on v2.id = v3.book_record_id
LEFT JOIN vehicle_model vm ON v.model_id = vm.id
LEFT JOIN company_info ci on ci.id = bc2.company_id
LEFT JOIN (select * from constant where type = 2) c ON v.use_type = c.code
where
v.is_del=0
......@@ -452,6 +467,12 @@
<if test="subordinateBranch !=null ">
and ( v.park_branch_company_id = #{subordinateBranch})
</if>
<if test="parkBranchCompanyId !=null ">
and ( bc.id = #{parkBranchCompanyId})
</if>
<if test="companyId !=null ">
and ( ci.id = #{companyId})
</if>
<if test=" addrProvince !=null or addrCity !=null or zoneId !=null ">
<if test="addrProvince !=null">
and bc.addr_province=#{addrProvince}
......@@ -472,6 +493,7 @@
select
v.`code`,
v.number_plate,
v.vehicle_register_date,
bc.name as parkBranchCompanyName,
c.val as useType,
vm.name as vehicleType
......@@ -740,6 +762,20 @@
ORDER BY parkCompanyName
</select>
<select id="getAllVehicleByParam" resultType="com.xxfc.platform.vehicle.entity.Vehicle">
select * from vehicle v
where v.is_del != 1
<if test="modelId != null and modelId != ''">
and v.model_id = #{modelId}
</if>
<if test="companyIds != null and companyIds.size > 0">
and v.subordinate_branch in
<foreach collection="companyIds" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</if>
</select>
<select id="countVehicleByParam" parameterType="com.xxfc.platform.vehicle.pojo.dto.VehiclePlanDto"
resultType="com.xxfc.platform.vehicle.pojo.VehicleCountVo">
SELECT count(*) total ,
......@@ -828,7 +864,7 @@
<select id="searchUsableModel" parameterType="java.util.Map"
resultMap="searchUsableModelMap">
(select distinct vm.id as model_id, bc.id as company_id
(select distinct vm.id as model_id, bc.id as company_id, group_concat(v.id) as vehicle_ids
<if test=" catas != null ">
,GROUP_CONCAT(vc.cata_id) as catas
</if>
......@@ -875,31 +911,32 @@
</if>
)
<!-- union 所有下架车型 -->
<if test="startCompanyId != null or parkBranchCompanyId != null ">
union
(select vm.id as model_id, bc.id as company_id
<if test=" catas != null ">
,null as catas
</if>
<if test=" yearMonthAndParam !=null and yearNo4Where != null and yearNo4Where == true">
,0 as hasVehicle
</if>
<if test="lon != null and lat != null">
<!-- 处理距离 -->
,st_distance_sphere(point(#{lon}, #{lat}), point(bc.longitude, bc.latitude)) as distance
</if>
from vehicle_model vm
left join branch_company bc on
<choose>
<when test="startCompanyId != null">
bc.id = #{startCompanyId}
</when>
<otherwise>
bc.id = #{parkBranchCompanyId}
</otherwise>
</choose>
where vm.isdel = 0 and vm.status = 0 and vm.app_show = 1)
</if>
<!-- -->
<!-- <if test="startCompanyId != null or parkBranchCompanyId != null ">-->
<!-- union-->
<!-- (select vm.id as model_id, bc.id as company_id-->
<!-- <if test=" catas != null ">-->
<!-- ,null as catas-->
<!-- </if>-->
<!-- <if test=" yearMonthAndParam !=null and yearNo4Where != null and yearNo4Where == true">-->
<!-- ,0 as hasVehicle-->
<!-- </if>-->
<!-- <if test="lon != null and lat != null">-->
<!-- &lt;!&ndash; 处理距离 &ndash;&gt;-->
<!-- ,st_distance_sphere(point(#{lon}, #{lat}), point(bc.longitude, bc.latitude)) as distance-->
<!-- </if>-->
<!-- from vehicle_model vm-->
<!-- left join branch_company bc on-->
<!-- <choose>-->
<!-- <when test="startCompanyId != null">-->
<!-- bc.id = #{startCompanyId}-->
<!-- </when>-->
<!-- <otherwise>-->
<!-- bc.id = #{parkBranchCompanyId}-->
<!-- </otherwise>-->
<!-- </choose>-->
<!-- where vm.isdel = 0 and vm.status = 0 and vm.app_show = 1)-->
<!-- </if>-->
<if test="lon != null and lat != null">
order by
<if test=" yearMonthAndParam !=null and yearNo4Where != null and yearNo4Where == true">
......
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