Commit aeb7191d authored by hezhen's avatar hezhen

添加商品模块

parent 9fa02f55
......@@ -18,6 +18,10 @@ public class User {
@GeneratedValue(generator = "JDBC")//此处加上注解
private Integer id;
@Column(name = "app_user_id")
private Integer appUserId;
private String username;
private String password;
......
......@@ -40,6 +40,9 @@ public interface UserFeign {
@RequestMapping(value = "/public/v2/userinfo-by-token")
ObjectRestResponse<UserDTO> userinfoByTokenV2(@RequestParam("token") String token,@RequestParam("flag") boolean flag);
@RequestMapping(value = "/public/v2/userinfo-by-appUserId")
ObjectRestResponse<UserDTO> userinfoByAppUserIdV2(@RequestParam("appUserId") Integer appUserId);
@RequestMapping(value = "/public/userinfo-by-uid")
public ObjectRestResponse<UserDTO> userinfoByUid(@RequestParam("uid") Integer uid);
......
......@@ -5,6 +5,7 @@ import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
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.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.vo.DataInter;
import com.github.wxiaoqi.security.common.vo.DataInterBean;
......@@ -96,4 +97,12 @@ public interface UserRestInterface {
return dataInterBean;
}
default List<Integer> getCompanyIds(){
UserDTO userDTO = getAdminUserInfoV2(Boolean.FALSE);
if (userDTO != null){
return userDTO.getCompanyIds();
}
return null;
}
}
......@@ -170,6 +170,7 @@ public class CompanyInfoBiz extends BaseBiz<CompanyInfoMapper, CompanyInfo>{
user.setCorporationId(branchId);
user.setDataAll(2);
user.setDataCorporation(branchId+"");
user.setAppUserId(appUserId);
userBiz.insertSelective(user);
}
......
......@@ -184,6 +184,16 @@ public class UserBiz extends BaseBiz<UserMapper,User> {
return mapper.selectByPrimaryKey(userId);
}
public User getUserByAppUserId(Integer appUserId){
User user = new User();
user.setAppUserId(appUserId);
List<User> select = mapper.select(user);
if (select.size() > 0){
return select.get(0);
}
return null;
}
public List<BaseUserVo> getList(BaseUserDTO baseUserDTO){
return mapper.selectList(baseUserDTO);
......
......@@ -59,6 +59,9 @@ public class PublicController {
@Autowired
VehicleFeign vehicleFeign;
@Autowired
BranchCompanyBiz branchCompanyBiz;
@RequestMapping(value = "/userinfo-by-token", method = RequestMethod.GET)
public @ResponseBody
ObjectRestResponse userinfoByToken(String token) throws Exception {
......@@ -84,17 +87,40 @@ public class PublicController {
if (user == null) {
return ObjectRestResponse.createFailedResult(ResultCode.USER_NOTEXIST_CODE, ResultCode.getMsg(ResultCode.USER_NOTEXIST_CODE));
}
if (!flag && user.getDataCorporation() != null){
CompanySearchDTO companySearchDTO =new CompanySearchDTO();
companySearchDTO.setCompanyIds(Arrays.asList(user.getDataCorporation().split(",")).parallelStream().map(s -> Integer.valueOf(s)).collect(Collectors.toList()));
ObjectRestResponse<List<CompanySearchVO>> restResponse=vehicleFeign.listByIds(companySearchDTO);
if (restResponse != null ){
List<CompanySearchVO> companySearchVOList=restResponse.getData();
if (user.getDataCorporation() != null){
com.github.wxiaoqi.security.admin.dto.CompanySearchDTO companySearchDTO =new com.github.wxiaoqi.security.admin.dto.CompanySearchDTO();
companySearchDTO.setDataCorporationIds(Arrays.asList(user.getDataCorporation().split(",")).parallelStream().map(s -> Integer.valueOf(s)).collect(Collectors.toList()));
List<com.github.wxiaoqi.security.admin.vo.CompanySearchVO> companySearchVOList=branchCompanyBiz.getList(companySearchDTO);
if(companySearchVOList != null && companySearchVOList.size() > 0){
List<Integer> companyIds = companySearchVOList.stream().map(CompanySearchVO::getId).distinct().collect(Collectors.toList());
List<Integer> companyIds = companySearchVOList.stream().map(com.github.wxiaoqi.security.admin.vo.CompanySearchVO::getId).distinct().collect(Collectors.toList());
user.setCompanyIds(companyIds);
}
}else if (user.getDataCompany() != null ){
List<Integer> companyIds = Arrays.asList(user.getDataCompany().split(",")).parallelStream().map(s -> Integer.valueOf(s)).collect(Collectors.toList());
user.setCompanyIds(companyIds);
}
return new ObjectRestResponse<User>().rel(true).data(user);
}
@RequestMapping(value = "v2/userinfo-by-appUserId", method = RequestMethod.GET)
public @ResponseBody
ObjectRestResponse userinfoByAppUserIdV2(Integer appUserId){
User user = userBiz.getUserByAppUserId(appUserId);
if (user == null) {
return ObjectRestResponse.createFailedResult(ResultCode.USER_NOTEXIST_CODE, ResultCode.getMsg(ResultCode.USER_NOTEXIST_CODE));
}
if (user.getDataCorporation() != null){
com.github.wxiaoqi.security.admin.dto.CompanySearchDTO companySearchDTO =new com.github.wxiaoqi.security.admin.dto.CompanySearchDTO();
companySearchDTO.setDataCorporationIds(Arrays.asList(user.getDataCorporation().split(",")).parallelStream().map(s -> Integer.valueOf(s)).collect(Collectors.toList()));
List<com.github.wxiaoqi.security.admin.vo.CompanySearchVO> companySearchVOList=branchCompanyBiz.getList(companySearchDTO);
if(companySearchVOList != null && companySearchVOList.size() > 0){
List<Integer> companyIds = companySearchVOList.stream().map(com.github.wxiaoqi.security.admin.vo.CompanySearchVO::getId).distinct().collect(Collectors.toList());
user.setCompanyIds(companyIds);
}
}else if (user.getDataCompany() != null ){
List<Integer> companyIds = Arrays.asList(user.getDataCompany().split(",")).parallelStream().map(s -> Integer.valueOf(s)).collect(Collectors.toList());
user.setCompanyIds(companyIds);
}
return new ObjectRestResponse<User>().rel(true).data(user);
}
......
package com.xxfc.platform.vehicle.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.math.BigDecimal;
import java.util.Date;
@Data
......@@ -32,27 +35,101 @@ public class Vehicle {
@Column(name = "number_plate")
private String numberPlate;
/**
* 品牌(编码,对应关系见相关常量),0-未填写
*/
@ApiModelProperty("商品名称")
private String name;
@Column(name = "goods_type")
@ApiModelProperty("商品类型 1--房车;2--机车;3--游艇")
private Integer goodsType;
@ApiModelProperty("品牌(编码,对应关系见相关常量)")
private Integer brand;
@Column(name = "brand_id")
@ApiModelProperty("品牌id")
private Integer brandId;
@Column(name = "category_id")
@ApiModelProperty("型号id")
private Integer categoryId;
/**
* 所属分支机构(id)
*/
@Column(name = "subordinate_branch")
private Integer subordinateBranch;
@ApiModelProperty("封面")
private String cover;
@ApiModelProperty("banner图,逗号隔开")
private String images;
@Column(name = "price_type")
@ApiModelProperty("价格类型:1-按天;2-按小时")
private Integer priceType;
@ApiModelProperty("价格")
private BigDecimal price;
@Column(name = "holiday_price")
@ApiModelProperty("假日价格")
private BigDecimal holidayPrice;
@Column(name = "deposit_type")
@ApiModelProperty("押金类型:1-线上;2-线下")
private Integer depositType;
@ApiModelProperty("押金")
private BigDecimal deposit;
@Column(name = "vio_deposit")
@ApiModelProperty("违章押金")
private BigDecimal vioDeposit;
/**
* 备注信息
*/
private String remark;
@ApiModelProperty("实物图片(逗开隔开)")
private String picture;
@ApiModelProperty("商品标签(逗号隔开)")
private String tags;
/**
* 用途类型:租赁房车(1)、展车等,对应关系见车辆常量表
*/
@Column(name = "use_type")
private Integer useType;
/**
* 备注信息
*/
private String remark;
/**
* 车架号
......@@ -223,4 +300,15 @@ public class Vehicle {
@Column(name = "vehicle_register_date")
private Date vehicleRegisterDate;
@ApiModelProperty("状态:1-上架;2-下架")
private Integer state;
@Transient
@ApiModelProperty("扩展信息list")
private String extensionList;
}
\ 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.Id;
import javax.persistence.Table;
import java.math.BigDecimal;
@Data
@Table(name = "vehicle_apply")
public class VehicleApply {
/**
* 主键(uuid)
*/
@Id
private String id;
@Column(name = "vehicle_id")
@ApiModelProperty("商品id")
private String vehicleId;
/**
* 车牌号,空字符串-没有
*/
@Column(name = "number_plate")
private String numberPlate;
@ApiModelProperty("商品名称")
private String name;
@Column(name = "goods_type")
@ApiModelProperty("商品类型 1--房车;2--机车;3--游艇")
private Integer goodsType;
@Column(name = "brand_id")
@ApiModelProperty("品牌id")
private Integer brandId;
@Column(name = "category_id")
@ApiModelProperty("型号id")
private Integer categoryId;
/**
* 所属分支机构(id)
*/
@Column(name = "subordinate_branch")
private Integer subordinateBranch;
@ApiModelProperty("封面")
private String cover;
@ApiModelProperty("banner图,逗号隔开")
private String images;
@Column(name = "price_type")
@ApiModelProperty("价格类型:1-按天;2-按小时")
private Integer priceType;
@ApiModelProperty("价格")
private BigDecimal price;
@Column(name = "holiday_price")
@ApiModelProperty("假日价格")
private BigDecimal holidayPrice;
@Column(name = "deposit_type")
@ApiModelProperty("押金类型:1-线上;2-线下")
private Integer depositType;
@ApiModelProperty("押金")
private BigDecimal deposit;
@Column(name = "vio_deposit")
@ApiModelProperty("违章押金")
private BigDecimal vioDeposit;
/**
* 备注信息
*/
private String remark;
@ApiModelProperty("实物图片(逗开隔开)")
private String picture;
@ApiModelProperty("商品标签(逗号隔开)")
private String tags;
@Column(name = "form_type")
@ApiModelProperty("表单提交类型:1-申请入驻:2-修改信息")
private Integer formType;
@Column(name = "extension_list")
@ApiModelProperty("扩展信息list")
private String extensionList;
@Column(name = "change_json")
@ApiModelProperty("改变的json")
private String changeJson;
@Column(name = "apply_status")
@ApiModelProperty("状态:0-待审核;1-审核成功;2-驳回")
private Integer applyStatus;
@ApiModelProperty("失败原因")
private String reason;
@Column(name = "crt_time")
private Long crtTime;
@Column(name = "upd_time")
private Long updTime;
@Column(name = "is_del")
@ApiModelProperty("是否删除:0-正常;1-删除")
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;
import java.io.Serializable;
/**
* 平台车辆扩展信息关联表
*
* @author zjw
* @email nishijjo@qq.com
* @date 2019-05-25 10:13:57
*/
@Data
@Table(name = "vehicle_extension")
public class VehicleExtension implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(generator = "JDBC")
@ApiModelProperty("主键id")
private Integer id;
@Column(name = "vehicle_id")
@ApiModelProperty(value = "车辆id")
private String vehicleId;
@Column(name = "parent_cata_id")
@ApiModelProperty(value = "父级扩展id")
private Integer parentCataId;
@Column(name = "cata_id")
@ApiModelProperty(value = "扩展id")
private Integer cataId;
//删除状态 0:有效 1:删除
@Column(name = "is_del")
@ApiModelProperty(value = "删除状态 0:有效 1:删除")
private Integer isDel;
//创建时间
@Column(name = "crt_time")
@ApiModelProperty(value = "创建时间", hidden = true )
private Long crtTime;
//更新时间
@Column(name = "upd_time")
@ApiModelProperty(value = "更新时间", hidden = true )
private Long updTime;
}
package com.xxfc.platform.vehicle.pojo.dto;
import com.github.wxiaoqi.security.common.vo.DataInter;
import com.github.wxiaoqi.security.common.vo.PageParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/8/23 16:27
*/
@Data
public class VehicleApplyFindDTO extends PageParam implements DataInter {
@ApiModelProperty("商品名称")
private String name;
@ApiModelProperty("商品类型 1--房车;2--机车;3--游艇")
private Integer goodsType;
@ApiModelProperty("表单提交类型:1-申请入驻:2-修改信息")
private Integer formType;
@ApiModelProperty("状态:0-待审核;1-审核成功;2-驳回")
private Integer applyStatus;
@ApiModelProperty("店铺id")
private Integer branchId;
List<Integer> dataCorporationIds;
List<Integer> dataCompanyIds;
Integer bizType;
}
package com.xxfc.platform.vehicle.pojo.dto;
import com.xxfc.platform.vehicle.entity.Vehicle;
import com.xxfc.platform.vehicle.entity.VehicleExtension;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/10/15 18:06
*/
@Data
@Builder(toBuilder = true)
@NoArgsConstructor
@AllArgsConstructor
public class VehicleDTO extends Vehicle {
private List<VehicleExtension> extensions;
}
package com.xxfc.platform.vehicle.pojo.dto;
import com.github.wxiaoqi.security.common.vo.DataInter;
import com.github.wxiaoqi.security.common.vo.PageParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/8/23 16:27
*/
@Data
public class VehicleFindDTO extends PageParam implements DataInter {
@ApiModelProperty("商品名称")
private String name;
@ApiModelProperty("商品类型 1--房车;2--机车;3--游艇")
private Integer goodsType;
@ApiModelProperty("状态:1-上架;2-下架")
private Integer state;
@ApiModelProperty("品牌id")
private Integer brandId;
@ApiModelProperty("型号id")
private Integer categoryId;
@ApiModelProperty("店铺id")
private Integer branchId;
@ApiModelProperty("是否全网最低价")
private Integer isMinPrice;
List<Integer> dataCorporationIds;
List<Integer> dataCompanyIds;
Integer bizType;
}
package com.xxfc.platform.vehicle.pojo.vo;
import com.xxfc.platform.vehicle.entity.VehicleApply;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class VehicleApplyVo extends VehicleApply {
@ApiModelProperty("店铺名称")
String companyName;
}
......@@ -2,6 +2,7 @@ package com.xxfc.platform.vehicle.pojo.vo;
import com.xxfc.platform.vehicle.entity.Vehicle;
import com.xxfc.platform.vehicle.pojo.dto.VehicleModelCalendarPriceDTO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
......@@ -9,4 +10,16 @@ import java.util.List;
@Data
public class VehicleVO extends Vehicle {
private List<VehicleModelCalendarPriceDTO> priceDTOS;
@ApiModelProperty("品牌名称")
private String brandName;
@ApiModelProperty("型号名称")
private String categoryName;
@ApiModelProperty("店铺名称")
private String companyName;
}
\ No newline at end of file
package com.xxfc.platform.vehicle.biz;
import com.alibaba.fastjson.JSONObject;
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.BeanUtils;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.vehicle.entity.Vehicle;
import com.xxfc.platform.vehicle.entity.VehicleApply;
import com.xxfc.platform.vehicle.mapper.VehicleApplyMapper;
import com.xxfc.platform.vehicle.pojo.dto.VehicleApplyFindDTO;
import com.xxfc.platform.vehicle.pojo.vo.VehicleApplyVo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@Service
@Slf4j
public class VehicleApplyBiz extends BaseBiz<VehicleApplyMapper, VehicleApply>{
@Autowired
VehicleBiz vehicleBiz;
@Autowired
VehicleExtensionBiz extensionBiz;
@Transactional(rollbackFor = Exception.class)
public VehicleApply saveApply(Vehicle vehicle){
if (vehicle == null || StringUtils.isBlank(vehicle.getName()) || vehicle.getSubordinateBranch() == null || vehicle.getSubordinateBranch() == 0){
throw new BaseException("参数不能为空",ResultCode.FAILED_CODE);
}
String vehicleId=StringUtils.isBlank(vehicle.getId()) ? "" : vehicle.getId();
List<Vehicle> list=vehicleBiz.getListByExample(vehicleId,vehicle.getName());
if (list.size() > 0){
throw new BaseException("公司名称不能重复",ResultCode.FAILED_CODE);
}
Vehicle vehicle1=null;
Integer formType=2;
String detailJson=null;
if (StringUtils.isNotBlank(vehicleId)){
if (checkStatus(vehicleId) > 0L){
throw new BaseException("已存在待审核记录",ResultCode.FAILED_CODE);
}
vehicle1=vehicleBiz.selectById(vehicleId);
Vehicle vehicle2=vehicle;
BeanUtils.copyPropertiesTargetIsEquals(vehicle1,vehicle2);
detailJson= JSONObject.toJSONString(vehicle2);
}else {
formType=1;
detailJson= JSONObject.toJSONString(vehicle);
}
VehicleApply vehicleApply=new VehicleApply();
BeanUtils.copyProperties(vehicle,vehicleApply);
vehicleApply.setChangeJson(detailJson);
vehicleApply.setFormType(formType);
vehicleApply.setVehicleId(vehicleId);
vehicleApply.setId(null);
insertSelective(vehicleApply);
return vehicleApply;
}
public Long checkStatus(String vehicleId){
VehicleApply vehicleApply=new VehicleApply();
vehicleApply.setVehicleId(vehicleId);
vehicleApply.setApplyStatus(0);
return selectCount(vehicleApply);
}
public List<VehicleApplyVo> getList(VehicleApplyFindDTO vehicleApplyFindDTO){
return mapper.selectList(vehicleApplyFindDTO);
}
public ObjectRestResponse selectList(VehicleApplyFindDTO vehicleApplyFindDTO){
PageHelper.startPage(vehicleApplyFindDTO.getPage(), vehicleApplyFindDTO.getLimit());
PageInfo<VehicleApplyVo> pageInfo = new PageInfo<>(getList(vehicleApplyFindDTO));
return ObjectRestResponse.succ(PageDataVO.pageInfo(pageInfo));
}
public VehicleApply getApplyInfo(Long id){
VehicleApply vehicleApply = selectById(id);
if (vehicleApply == null ){
throw new BaseException("申请记录不存在",ResultCode.FAILED_CODE);
}
return vehicleApply;
}
@Transactional(rollbackFor = Exception.class)
public void audit(VehicleApply vehicleApply) {
Integer status=vehicleApply.getApplyStatus();
if (status == 2 && StringUtils.isBlank(vehicleApply.getReason())){
throw new BaseException("驳回原因不能为空",ResultCode.FAILED_CODE);
}
updateSelectiveById(vehicleApply);
if (status == 1){
vehicleApply=selectById(vehicleApply.getId());
if (vehicleApply == null ){
throw new BaseException("申请记录不存在",ResultCode.FAILED_CODE);
}
String vehicleId =vehicleBiz.addOrUpd(vehicleApply);
if (StringUtils.isNotBlank(vehicleId)){
VehicleApply vehicleApply1=new VehicleApply();
vehicleApply1.setId(vehicleApply.getId());
vehicleApply1.setVehicleId(vehicleId);
updateSelectiveById(vehicleApply1);
String extensionList=vehicleApply.getExtensionList();
if (StringUtils.isNotBlank(extensionList)){
extensionBiz.saveOrUpd(vehicleId,extensionList);
}
}
}
}
public VehicleApply getVehicleInfo(String vehicleId){
return mapper.getOneByOrderUpdTime(vehicleId);
}
}
......@@ -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 cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONArray;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
......@@ -31,8 +32,10 @@ import com.xxfc.platform.vehicle.mapper.BookRecordAccItemMapper;
import com.xxfc.platform.vehicle.mapper.VehicleBookInfoMapper;
import com.xxfc.platform.vehicle.mapper.VehicleMapper;
import com.xxfc.platform.vehicle.pojo.*;
import com.xxfc.platform.vehicle.pojo.dto.VehicleFindDTO;
import com.xxfc.platform.vehicle.pojo.dto.VehiclePlanDto;
import com.xxfc.platform.vehicle.pojo.vo.UsableVeicleVO;
import com.xxfc.platform.vehicle.pojo.vo.VehicleVO;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.BeanUtilsBean;
......@@ -1578,4 +1581,41 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
}
}
public List<Vehicle> getListByExample(String vehicleId,String name){
Example example=new Example(Vehicle.class);
example.createCriteria().andEqualTo("name",name).andNotEqualTo("id",vehicleId);
return selectByExample(example);
}
public String addOrUpd(VehicleApply vehicleApply){
String vehicleId=StringUtils.isBlank(vehicleApply.getVehicleId()) ? "" : vehicleApply.getVehicleId();
List<Vehicle> list=getListByExample(vehicleId,vehicleApply.getName());
if (list.size() > 0){
throw new BaseException("公司名称不能重复", ResultCode.FAILED_CODE);
}
Vehicle vehicle= JSONUtil.toBean(vehicleApply.getChangeJson(),Vehicle.class);
if (StringUtils.isNotBlank(vehicleApply.getVehicleId())){
vehicle.setId(vehicleId);
updateSelectiveById(vehicle);
}else {
vehicle.setId(UUID.randomUUID().toString());
insertSelective(vehicle);
vehicleId=vehicle.getId();
}
return vehicleId;
}
public List<VehicleVO> getList(VehicleFindDTO vehicleFindDTO){
return mapper.selectList(vehicleFindDTO);
}
public ObjectRestResponse selectList(VehicleFindDTO vehicleFindDTO){
PageHelper.startPage(vehicleFindDTO.getPage(), vehicleFindDTO.getLimit());
PageInfo<VehicleVO> pageInfo = new PageInfo<>(getList(vehicleFindDTO));
return ObjectRestResponse.succ(PageDataVO.pageInfo(pageInfo));
}
}
package com.xxfc.platform.vehicle.biz;
import com.alibaba.fastjson.JSONObject;
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.BeanUtils;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.vehicle.entity.Vehicle;
import com.xxfc.platform.vehicle.entity.VehicleApply;
import com.xxfc.platform.vehicle.entity.VehicleExtension;
import com.xxfc.platform.vehicle.entity.VehiclePlatCata;
import com.xxfc.platform.vehicle.mapper.VehicleApplyMapper;
import com.xxfc.platform.vehicle.mapper.VehicleEextensionMapper;
import com.xxfc.platform.vehicle.pojo.dto.VehicleApplyFindDTO;
import com.xxfc.platform.vehicle.pojo.vo.VehicleApplyVo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
@Service
@Slf4j
public class VehicleExtensionBiz extends BaseBiz<VehicleEextensionMapper, VehicleExtension>{
@Autowired
VehiclePlatCataBiz vehiclePlatCataBiz;
@Transactional(rollbackFor = Exception.class)
public void saveOrUpd(String vehicleId,String extensionList){
if (StringUtils.isBlank(vehicleId) || StringUtils.isBlank(extensionList)){
throw new BaseException("参数不能为空",ResultCode.FAILED_CODE);
}
List<Integer> list = Arrays.asList(extensionList.split(",")).parallelStream().map(s -> Integer.valueOf(s)).collect(Collectors.toList());
List<Integer> ids=new ArrayList<>();
if (list.size() > 0L){
for (Integer extensionId:list){
VehiclePlatCata vehiclePlatCata = vehiclePlatCataBiz.selectById(extensionId);
if (vehiclePlatCata == null ){
continue;
}
VehicleExtension vehicleExtension=new VehicleExtension();
vehicleExtension.setCataId(extensionId);
vehicleExtension.setVehicleId(vehicleId);
vehicleExtension.setIsDel(0);
VehicleExtension vehicleExtension1=selectOne(vehicleExtension);
Integer id;
if (vehicleExtension1 == null){
vehicleExtension.setParentCataId(vehiclePlatCata.getParentId());
insertSelective(vehicleExtension);
id=vehicleExtension.getId();
}else {
id=vehicleExtension1.getId();
}
ids.add(id);
}
}
mapper.delByIds(ids,vehicleId);
}
}
......@@ -75,7 +75,9 @@ public class WebConfiguration implements WebMvcConfigurer {
"/vehicleModel/**",
"/departure/**",
"/company/**",
"/vehicleHolidayPriceInfo/**"
"/vehicleHolidayPriceInfo/**",
"/app/**",
"/backstage/**",
};
Collections.addAll(list, urls);
return list;
......
package com.xxfc.platform.vehicle.mapper;
import com.xxfc.platform.vehicle.entity.VehicleApply;
import com.xxfc.platform.vehicle.pojo.dto.VehicleApplyFindDTO;
import com.xxfc.platform.vehicle.pojo.vo.VehicleApplyVo;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import tk.mybatis.mapper.additional.idlist.SelectByIdListMapper;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
public interface VehicleApplyMapper extends Mapper<VehicleApply>, SelectByIdListMapper<VehicleApply,Integer> {
List<VehicleApplyVo> selectList(VehicleApplyFindDTO vehicleApplyFindDTO);
@Select("SELECT * FROM vehicle_apply WHERE vehicle_id=#{vehicleId} and form_type=2 ORDER BY upd_time DESC LIMIT 1")
VehicleApply getOneByOrderUpdTime(@Param("vehicleId") String vehicleId);
}
\ No newline at end of file
package com.xxfc.platform.vehicle.mapper;
import com.xxfc.platform.vehicle.entity.VehicleExtension;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.additional.idlist.SelectByIdListMapper;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
public interface VehicleEextensionMapper extends Mapper<VehicleExtension>, SelectByIdListMapper<VehicleExtension,Integer> {
void delByIds(@Param("ids") List<Integer> ids,@Param("vehicleId")String vehicleId);
}
\ No newline at end of file
......@@ -2,8 +2,10 @@ package com.xxfc.platform.vehicle.mapper;
import com.xxfc.platform.vehicle.entity.Vehicle;
import com.xxfc.platform.vehicle.pojo.*;
import com.xxfc.platform.vehicle.pojo.dto.VehicleFindDTO;
import com.xxfc.platform.vehicle.pojo.dto.VehiclePlanDto;
import com.xxfc.platform.vehicle.pojo.vo.UsableVeicleVO;
import com.xxfc.platform.vehicle.pojo.vo.VehicleVO;
import org.apache.ibatis.annotations.Select;
import org.springframework.data.repository.query.Param;
import tk.mybatis.mapper.common.Mapper;
......@@ -58,4 +60,6 @@ public interface VehicleMapper extends Mapper<Vehicle> {
List<BranchCompanyVehicleCountVo> getAllVehicleInfo();
List<Vehicle> getAllVehicleByParam(Map<String, Object> param);
List<VehicleVO> selectList(VehicleFindDTO vehicleFindDTO);
}
\ No newline at end of file
package com.xxfc.platform.vehicle.rest;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xxfc.platform.vehicle.biz.VehicleApplyBiz;
import com.xxfc.platform.vehicle.entity.Vehicle;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @author Administrator
*/
@Slf4j
@RestController
@RequestMapping("app/vehicle")
@Api(tags = {"商家入驻"})
public class AppVehicleApplyController extends BaseController<VehicleApplyBiz> {
@PostMapping("apply")
@ApiModelProperty("商家入驻申请")
public ObjectRestResponse apply(@RequestBody Vehicle vehicle) {
if (vehicle.getSubordinateBranch() == null || vehicle.getSubordinateBranch() == 0){
List<Integer> companyIds = getCompanyIds();
if (companyIds != null && companyIds.size() > 0){
vehicle.setSubordinateBranch(companyIds.get(0));
}
}
return ObjectRestResponse.succ(baseBiz.saveApply(vehicle));
}
}
package com.xxfc.platform.vehicle.rest;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.UserDTO;
import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
import com.github.wxiaoqi.security.auth.client.jwt.UserAuthUtil;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.CommonBaseController;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;
@Slf4j
public class BaseController<Biz extends BaseBiz> extends CommonBaseController {
@Autowired
protected Biz baseBiz;
@Autowired
protected UserAuthConfig userAuthConfig;
@Autowired
private UserAuthUtil userAuthUtil;
@Autowired
UserFeign userFeign;
public String getUserName()throws Exception{ return userAuthUtil.getInfoFromToken(userAuthConfig.getToken(request)).getUniqueName(); }
public Biz getBaseBiz() {
return baseBiz;
}
public String getUserId()throws Exception{ return userAuthUtil.getInfoFromToken(userAuthConfig.getToken(request)).getId(); }
public List<Integer> getCompanyIds(){
Integer currentUserIdInt = getCurrentUserIdInt();
if (currentUserIdInt != null && currentUserIdInt > 0 ){
ObjectRestResponse<UserDTO> restResponse = userFeign.userinfoByAppUserIdV2(currentUserIdInt);
if (restResponse.getData() != null){
UserDTO userDTO =restResponse.getData();
if (userDTO != null){
return userDTO.getCompanyIds();
}
}
}
return null;
}
}
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.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController;
import com.xxfc.platform.vehicle.biz.VehicleApplyBiz;
import com.xxfc.platform.vehicle.entity.Vehicle;
import com.xxfc.platform.vehicle.entity.VehicleApply;
import com.xxfc.platform.vehicle.pojo.dto.VehicleApplyFindDTO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @author Administrator
*/
@Slf4j
@RestController
@RequestMapping("backstage/vehicle")
@Api(tags = {"商品申请"})
public class AdminVehicleApplyController extends BaseController<VehicleApplyBiz, VehicleApply>implements UserRestInterface {
@Autowired
UserFeign userFeign;
@Override
public UserFeign getUserFeign() {
return userFeign;
}
@GetMapping("apply/selectList")
@ApiModelProperty("列表")
public ObjectRestResponse applySelectList(VehicleApplyFindDTO vehicleApplyFindDTO) {
return baseBiz.selectList(vehicleApplyFindDTO);
}
@GetMapping("apply/info/{id}")
@ApiModelProperty("信息")
public ObjectRestResponse applyInfo(@PathVariable("id") Long id ) {
return ObjectRestResponse.succ( baseBiz.getApplyInfo(id));
}
@GetMapping("info/{id}")
@ApiModelProperty("商家信息")
public ObjectRestResponse info(@PathVariable("id") Long id ) {
return ObjectRestResponse.succ(baseBiz.selectById(id));
}
@PostMapping("audit")
@ApiModelProperty("商家入驻审核")
public ObjectRestResponse audit(@RequestBody VehicleApply vehicleApply) {
baseBiz.audit(vehicleApply);
return ObjectRestResponse.succ();
}
@PostMapping("apply")
@ApiModelProperty("商家入驻申请")
public ObjectRestResponse apply(@RequestBody Vehicle vehicle) {
if (vehicle.getSubordinateBranch() == null || vehicle.getSubordinateBranch() == 0){
List<Integer> companyIds = getCompanyIds();
if (companyIds != null && companyIds.size() > 0){
vehicle.setSubordinateBranch(companyIds.get(0));
}
}
return ObjectRestResponse.succ(baseBiz.saveApply(vehicle));
}
@GetMapping("shop/apply/selectList")
@ApiModelProperty("列表")
public ObjectRestResponse shopApplySelectList(VehicleApplyFindDTO vehicleApplyFindDTO) {
setPowerData(vehicleApplyFindDTO);
return baseBiz.selectList(vehicleApplyFindDTO);
}
}
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.common.msg.ObjectRestResponse;
import com.xxfc.platform.vehicle.biz.VehicleBiz;
import com.xxfc.platform.vehicle.pojo.dto.VehicleFindDTO;
import com.xxfc.platform.vehicle.rest.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* @author Administrator
*/
@Slf4j
@RestController
@RequestMapping("backstage/vehicle")
@Api(tags = {"商品申请"})
public class AdminVehicleController extends BaseController<VehicleBiz> implements UserRestInterface {
@Autowired
UserFeign userFeign;
@Override
public UserFeign getUserFeign() {
return userFeign;
}
@GetMapping("shop/selectList")
@ApiModelProperty("店铺商品列表")
public ObjectRestResponse shopSelectList(VehicleFindDTO vehicleFindDTO) {
setPowerData(vehicleFindDTO);
return baseBiz.selectList(vehicleFindDTO);
}
@GetMapping("selectList")
@ApiModelProperty("运营商品列表")
public ObjectRestResponse selectList(VehicleFindDTO vehicleFindDTO) {
return baseBiz.selectList(vehicleFindDTO);
}
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.xxfc.platform.vehicle.mapper.VehicleApplyMapper">
<select id="selectList" resultType="com.xxfc.platform.vehicle.pojo.vo.VehicleApplyVo" parameterType="com.xxfc.platform.vehicle.pojo.dto.VehicleApplyFindDTO">
SELECT
a.*,
i.`name` as companyName
FROM vehicle_apply a
LEFT JOIN branch_company i on a.subordinate_branch=i.id
<where>
<if test="name != null and name != ''">
AND ( a.`name` like concat('%',#{name},'%') or i.`name` like concat('%',#{name},'%') )
</if>
<if test="formType != null ">
AND a.`form_type`= #{formType}
</if>
<if test="branchId != null and branchId > 0">
AND a.`subordinate_branch`= #{branchId}
</if>
<if test="applyStatus != null ">
AND a.`apply_status`= #{applyStatus}
</if>
<if test="goodsType != null ">
AND a.`goods_type`= #{goodsType}
</if>
<if test="dataCompanyIds != null and dataCompanyIds.size > 0">
and i.id in
<foreach collection="dataCompanyIds" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</if>
<if test="dataCorporationIds != null and dataCorporationIds.size > 0">
and i.company_id in
<foreach collection="dataCorporationIds" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</if>
</where>
order by a.upd_time DESC
</select>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.xxfc.platform.vehicle.mapper.VehicleEextensionMapper">
<update id="delByIds">
update vehicle_extension set is_del=1
<where>
vehicle_id=#{vehicleId} and is_del=0
<if test="ids!=null and ids.size()!=0">
and id not in
<foreach collection="ids" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</where>
</update>
</mapper>
\ No newline at end of file
......@@ -1271,4 +1271,59 @@
on sevbr.vehicle_id = vbrs.vehicle_id and sevbr.min_book_start_date = IFNULL(vbrs.actual_start_date, vbrs.book_start_date) and vbrs.status != 4 and vbrs.status != 6
</sql>
<select id="selectList" resultType="com.xxfc.platform.vehicle.pojo.vo.VehicleVO" parameterType="com.xxfc.platform.vehicle.pojo.dto.VehicleFindDTO">
SELECT
v.*,
b.cn_name as brandName,
c.`name` categoryName,
bc.`name` as companyName
FROM vehicle v
LEFT JOIN vehicle_brand b ON v.brand_id=b.id
LEFT JOIN vehicle_category c ON v.category_id=c.id
LEFT JOIN branch_company bc ON v.subordinate_branch=bc.id
<where>
<if test="name != null and name != ''">
AND ( v.`name` like concat('%',#{name},'%') or v.`number_plate` like concat('%',#{name},'%') )
</if>
<if test="brandId != null and brandId > 0">
AND v.`brand_id`= #{brandId}
</if>
<if test="categoryId != null and categoryId > 0">
AND v.`category_id`= #{categoryId}
</if>
<if test="branchId != null and branchId > 0">
AND v.`subordinate_branch`= #{branchId}
</if>
<if test="state != null ">
AND v.`state`= #{state}
</if>
<if test="goodsType != null ">
AND v.`goods_type`= #{goodsType}
</if>
<if test="dataCompanyIds != null and dataCompanyIds.size > 0">
and bc.id in
<foreach collection="dataCompanyIds" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</if>
<if test="dataCorporationIds != null and dataCorporationIds.size > 0">
and bc.company_id in
<foreach collection="dataCorporationIds" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</if>
</where>
<choose>
<when test="isMinPrice !=null and isMinPrice==1">
ORDER BY v.price ASC,v.create_time DESC
</when>
<otherwise>
ORDER BY v.create_time DESC
</otherwise>
</choose>
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment