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

創建項目

parent 3aac0aa2
...@@ -45,6 +45,7 @@ ...@@ -45,6 +45,7 @@
<module>xx-common</module> <module>xx-common</module>
<module>xx-order</module> <module>xx-order</module>
<module>xx-vehicle</module> <module>xx-vehicle</module>
<module>xx-universal</module>
</modules> </modules>
<packaging>pom</packaging> <packaging>pom</packaging>
<developers> <developers>
......
...@@ -24,7 +24,7 @@ import java.util.List; ...@@ -24,7 +24,7 @@ import java.util.List;
@Transactional @Transactional
public class MemberInfoService extends BaseBiz<MemberInfoMapper, MemberInfo> { public class MemberInfoService extends BaseBiz<MemberInfoMapper, MemberInfo> {
@Autowired //@Autowired
MemberFamilyInfoMapper memberFamilyInfoMapper; MemberFamilyInfoMapper memberFamilyInfoMapper;
public void insert(MemberInfoVo memberInfoVo) { public void insert(MemberInfoVo memberInfoVo) {
......
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>ace-security</artifactId>
<groupId>com.github.wxiaoqi</groupId>
<version>2.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>xx-universal</artifactId>
<packaging>pom</packaging>
<modules>
<module>xx-universal-api</module>
<module>xx-universal-server</module>
</modules>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>com.xxfc.common</groupId>
<artifactId>xx-common-platform</artifactId>
<version>2.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.xxfc.platform</groupId>
<artifactId>xx-universal-api</artifactId>
</project>
\ No newline at end of file
package com.xxfc.platform.universal.api;
import com.xxfc.platform.universal.model.JuheResult;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@FeignClient("xx-third-party")
@RequestMapping("3p/tv")
public interface ITrafficViolationsService {
/**
* 获取支持的城市
* @param province
* @return
*/
@RequestMapping(value = "city", method = RequestMethod.GET)
JuheResult getCityInfo(String province);
/**
* 查违章
* @param city 城市代码
* @param hphm 车牌号码
* @param hpzl 车辆类型 01:大车,02:小车
* @param engineno 发动机号
* @param classno 车架号
* @return
*/
@RequestMapping(value = "trafficViolations", method = RequestMethod.GET)
JuheResult queryTrafficViolations(String city, String hphm, String hpzl, String engineno, String classno);
/**
* 获取剩余查询次数
* @return
*/
@RequestMapping(value = "balance", method = RequestMethod.GET)
JuheResult getBalance();
/**
* 根据车牌查归属地
* @param hphm 车牌号码
* @return
*/
@RequestMapping(value = "carPre", method = RequestMethod.GET)
JuheResult carPre(String hphm);
}
package com.xxfc.platform.universal.entity;
import javax.persistence.*;
@Table(name = "member_family_info")
public class MemberFamilyInfo {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY, generator = "JDBC")
private Integer id;
@Column(name = "member_id")
private Integer memberId;
/**
* 姓名
*/
private String name;
/**
* 关系
*/
private String relationship;
/**
* @return id
*/
public Integer getId() {
return id;
}
/**
* @param id
*/
public void setId(Integer id) {
this.id = id;
}
/**
* @return member_id
*/
public Integer getMemberId() {
return memberId;
}
/**
* @param memberId
*/
public void setMemberId(Integer memberId) {
this.memberId = memberId;
}
/**
* 获取姓名
*
* @return name - 姓名
*/
public String getName() {
return name;
}
/**
* 设置姓名
*
* @param name 姓名
*/
public void setName(String name) {
this.name = name == null ? null : name.trim();
}
/**
* 获取关系
*
* @return relationship - 关系
*/
public String getRelationship() {
return relationship;
}
/**
* 设置关系
*
* @param relationship 关系
*/
public void setRelationship(String relationship) {
this.relationship = relationship == null ? null : relationship.trim();
}
}
\ No newline at end of file
package com.xxfc.platform.universal.entity;
import javax.persistence.*;
import java.util.Date;
@Table(name = "member_info")
public class MemberInfo {
public static final Boolean SEX_MAN = false;
public static final Boolean SEX_WOMAN = true;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY, generator = "JDBC")
private Integer id;
/**
* 姓名
*/
private String name;
/**
* 性别(0:男,1:女)
*/
private Boolean sex;
/**
* 卡号
*/
@Column(name = "card_number")
private String cardNumber;
/**
* 生日
*/
private Date birthday;
/**
* 身份证号
*/
@Column(name = "id_number")
private String idNumber;
/**
* 证件地址
*/
@Column(name = "certificate_address")
private String certificateAddress;
/**
* 电子邮件
*/
private String email;
/**
* 微信
*/
private String wx;
/**
* 会员类型(0:会员,1:VIP会员,2:砖石会员)
*/
@Column(name = "member_type")
private Byte memberType;
/**
* 联系电话
*/
private String telephone;
/**
* 手机
*/
@Column(name = "mobile_phone")
private String mobilePhone;
/**
* 常住地址
*/
private String address;
/**
* 工作单位
*/
private String workplace;
/**
* 职务
*/
private String job;
/**
* 邀约人
*/
private String inviter;
/**
* 职业
*/
private String profession;
/**
* 支付方式(0:现金,1:刷卡,2:微信支付,3:支付宝支付,4:银行转账)
*/
@Column(name = "pay_type")
private Byte payType;
/**
* 会员签名日期
*/
@Column(name = "member_signature_date")
private Date memberSignatureDate;
/**
* 经理
*/
private String manager;
/**
* 经理签名日期
*/
@Column(name = "manager_signature_date")
private Date managerSignatureDate;
/**
* 创建日期
*/
@Column(name = "create_date")
private Date createDate;
/**
* 创建人用户id
*/
@Column(name = "create_user_id")
private Integer createUserId;
/**
* 创建人姓名
*/
@Column(name = "create_user_name")
private String createUserName;
/**
* 会员状态(-1:停用,0:未审核,1:正常)
*/
private Byte state;
/**
* @return id
*/
public Integer getId() {
return id;
}
/**
* @param id
*/
public void setId(Integer id) {
this.id = id;
}
/**
* 获取姓名
*
* @return name - 姓名
*/
public String getName() {
return name;
}
/**
* 设置姓名
*
* @param name 姓名
*/
public void setName(String name) {
this.name = name == null ? null : name.trim();
}
/**
* 获取性别(0:男,1:女)
*
* @return sex - 性别(0:男,1:女)
*/
public Boolean getSex() {
return sex;
}
/**
* 设置性别(0:男,1:女)
*
* @param sex 性别(0:男,1:女)
*/
public void setSex(Boolean sex) {
this.sex = sex;
}
/**
* 获取卡号
*
* @return card_number - 卡号
*/
public String getCardNumber() {
return cardNumber;
}
/**
* 设置卡号
*
* @param cardNumber 卡号
*/
public void setCardNumber(String cardNumber) {
this.cardNumber = cardNumber == null ? null : cardNumber.trim();
}
/**
* 获取生日
*
* @return birthday - 生日
*/
public Date getBirthday() {
return birthday;
}
/**
* 设置生日
*
* @param birthday 生日
*/
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
/**
* 获取身份证号
*
* @return id_number - 身份证号
*/
public String getIdNumber() {
return idNumber;
}
/**
* 设置身份证号
*
* @param idNumber 身份证号
*/
public void setIdNumber(String idNumber) {
this.idNumber = idNumber == null ? null : idNumber.trim();
}
/**
* 获取证件地址
*
* @return certificate_address - 证件地址
*/
public String getCertificateAddress() {
return certificateAddress;
}
/**
* 设置证件地址
*
* @param certificateAddress 证件地址
*/
public void setCertificateAddress(String certificateAddress) {
this.certificateAddress = certificateAddress == null ? null : certificateAddress.trim();
}
/**
* 获取电子邮件
*
* @return email - 电子邮件
*/
public String getEmail() {
return email;
}
/**
* 设置电子邮件
*
* @param email 电子邮件
*/
public void setEmail(String email) {
this.email = email == null ? null : email.trim();
}
/**
* 获取微信
*
* @return wx - 微信
*/
public String getWx() {
return wx;
}
/**
* 设置微信
*
* @param wx 微信
*/
public void setWx(String wx) {
this.wx = wx == null ? null : wx.trim();
}
/**
* 获取会员类型(0:会员,1:VIP会员,2:砖石会员)
*
* @return member_type - 会员类型(0:会员,1:VIP会员,2:砖石会员)
*/
public Byte getMemberType() {
return memberType;
}
/**
* 设置会员类型(0:会员,1:VIP会员,2:砖石会员)
*
* @param memberType 会员类型(0:会员,1:VIP会员,2:砖石会员)
*/
public void setMemberType(Byte memberType) {
this.memberType = memberType;
}
/**
* 获取联系电话
*
* @return telephone - 联系电话
*/
public String getTelephone() {
return telephone;
}
/**
* 设置联系电话
*
* @param telephone 联系电话
*/
public void setTelephone(String telephone) {
this.telephone = telephone == null ? null : telephone.trim();
}
/**
* 获取手机
*
* @return mobile_phone - 手机
*/
public String getMobilePhone() {
return mobilePhone;
}
/**
* 设置手机
*
* @param mobilePhone 手机
*/
public void setMobilePhone(String mobilePhone) {
this.mobilePhone = mobilePhone == null ? null : mobilePhone.trim();
}
/**
* 获取常住地址
*
* @return address - 常住地址
*/
public String getAddress() {
return address;
}
/**
* 设置常住地址
*
* @param address 常住地址
*/
public void setAddress(String address) {
this.address = address == null ? null : address.trim();
}
/**
* 获取工作单位
*
* @return workplace - 工作单位
*/
public String getWorkplace() {
return workplace;
}
/**
* 设置工作单位
*
* @param workplace 工作单位
*/
public void setWorkplace(String workplace) {
this.workplace = workplace == null ? null : workplace.trim();
}
/**
* 获取职务
*
* @return job - 职务
*/
public String getJob() {
return job;
}
/**
* 设置职务
*
* @param job 职务
*/
public void setJob(String job) {
this.job = job == null ? null : job.trim();
}
/**
* 获取邀约人
*
* @return inviter - 邀约人
*/
public String getInviter() {
return inviter;
}
/**
* 设置邀约人
*
* @param inviter 邀约人
*/
public void setInviter(String inviter) {
this.inviter = inviter == null ? null : inviter.trim();
}
/**
* 获取职业
*
* @return profession - 职业
*/
public String getProfession() {
return profession;
}
/**
* 设置职业
*
* @param profession 职业
*/
public void setProfession(String profession) {
this.profession = profession == null ? null : profession.trim();
}
/**
* 获取支付方式(0:现金,1:刷卡,2:微信支付,3:支付宝支付,4:银行转账)
*
* @return pay_type - 支付方式(0:现金,1:刷卡,2:微信支付,3:支付宝支付,4:银行转账)
*/
public Byte getPayType() {
return payType;
}
/**
* 设置支付方式(0:现金,1:刷卡,2:微信支付,3:支付宝支付,4:银行转账)
*
* @param payType 支付方式(0:现金,1:刷卡,2:微信支付,3:支付宝支付,4:银行转账)
*/
public void setPayType(Byte payType) {
this.payType = payType;
}
/**
* 获取会员签名日期
*
* @return member_signature_date - 会员签名日期
*/
public Date getMemberSignatureDate() {
return memberSignatureDate;
}
/**
* 设置会员签名日期
*
* @param memberSignatureDate 会员签名日期
*/
public void setMemberSignatureDate(Date memberSignatureDate) {
this.memberSignatureDate = memberSignatureDate;
}
/**
* 获取经理
*
* @return manager - 经理
*/
public String getManager() {
return manager;
}
/**
* 设置经理
*
* @param manager 经理
*/
public void setManager(String manager) {
this.manager = manager == null ? null : manager.trim();
}
/**
* 获取经理签名日期
*
* @return manager_signature_date - 经理签名日期
*/
public Date getManagerSignatureDate() {
return managerSignatureDate;
}
/**
* 设置经理签名日期
*
* @param managerSignatureDate 经理签名日期
*/
public void setManagerSignatureDate(Date managerSignatureDate) {
this.managerSignatureDate = managerSignatureDate;
}
/**
* 获取创建日期
*
* @return create_date - 创建日期
*/
public Date getCreateDate() {
return createDate;
}
/**
* 设置创建日期
*
* @param createDate 创建日期
*/
public void setCreateDate(Date createDate) {
this.createDate = createDate;
}
/**
* 获取创建人用户id
*
* @return create_user_id - 创建人用户id
*/
public Integer getCreateUserId() {
return createUserId;
}
/**
* 设置创建人用户id
*
* @param createUserId 创建人用户id
*/
public void setCreateUserId(Integer createUserId) {
this.createUserId = createUserId;
}
/**
* 获取创建人姓名
*
* @return create_user_name - 创建人姓名
*/
public String getCreateUserName() {
return createUserName;
}
/**
* 设置创建人姓名
*
* @param createUserName 创建人姓名
*/
public void setCreateUserName(String createUserName) {
this.createUserName = createUserName == null ? null : createUserName.trim();
}
/**
* 获取会员状态(-1:停用,0:未审核,1:正常)
*
* @return state - 会员状态(-1:停用,0:未审核,1:正常)
*/
public Byte getState() {
return state;
}
/**
* 设置会员状态(-1:停用,0:未审核,1:正常)
*
* @param state 会员状态(-1:停用,0:未审核,1:正常)
*/
public void setState(Byte state) {
this.state = state;
}
}
\ No newline at end of file
package com.xxfc.platform.universal.model;
import lombok.Data;
/**
* 根据车牌前缀查地区的返回结果
*/
@Data
public class JuheCarPreInfo {
String city_name;
String city_code;
String abbr;
String engine;
String engineno;
String classa;
String classno;
String province;
}
package com.xxfc.platform.universal.model;
import lombok.Data;
@Data
public class JuheResult<T> {
String resultcode;
String reason;
T result;
Integer error_code;
}
package com.xxfc.platform.universal.model;
import lombok.Data;
/**
* 车辆违章查询剩余次数
*/
@Data
public class JuheTrafficViolationsBalanceInfo {
String surplus;
}
package com.xxfc.platform.universal.model;
import lombok.Data;
@Data
public class JuheTrafficViolationsCityInfo {
String city_name;
String city_code;
String abbr;
String engine;
String engineno;
String classa;
String classno;
String regist;
String registno;
}
package com.xxfc.platform.universal.model;
import lombok.Data;
import java.util.List;
/**
* 违章信息
*/
@Data
public class JuheTrafficViolationsInfo {
/**
* 省份代码
*/
String province;
/**
* 城市代码
*/
String city;
/**
* 车牌号码
*/
String hphm;
/**
* 牌类型,默认02:小型车,01:大型车
*/
String hpzl;
/**
* 违章信息列表
*/
List<JuheTrafficViolationsInfoItem> lists;
}
package com.xxfc.platform.universal.model;
import lombok.Data;
/**
* 违章信息项
*/
@Data
public class JuheTrafficViolationsInfoItem {
String data;
String area;
String act;
String code;
String fen;
String wzcity;
String money;
String handled;
String archiveno;
}
package com.xxfc.platform.universal.model;
import lombok.Data;
import java.util.List;
@Data
public class JuheTrafficViolationsProvinceInfo {
String province;
String province_code;
List<JuheTrafficViolationsCityInfo> citys;
}
package com.xxfc.platform.universal.vo;
import lombok.Data;
@Data
public class MemberFamilyInfoVo {
private Integer id;
/**
* 会员id
*/
private Integer memberId;
/**
* 姓名
*/
private String name;
/**
* 关系
*/
private String relationship;
}
package com.xxfc.platform.universal.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
import java.util.List;
@Data
public class MemberInfoVo {
private Integer id;
/**
* 姓名
*/
private String name;
/**
* 性别(0:男,1:女)
*/
private Boolean sex;
/**
* 卡号
*/
private String cardNumber;
/**
* 生日
*/
@JsonFormat(pattern="yyyy-MM-dd", timezone="GMT+8")
private Date birthday;
/**
* 身份证号
*/
private String idNumber;
/**
* 证件地址
*/
private String certificateAddress;
/**
* 电子邮件
*/
private String email;
/**
* 微信
*/
private String wx;
/**
* 会员类型(0:会员,1:VIP会员,2:砖石会员)
*/
private Byte memberType;
/**
* 联系电话
*/
private String telephone;
/**
* 手机
*/
private String mobilePhone;
/**
* 常住地址
*/
private String address;
/**
* 工作单位
*/
private String workplace;
/**
* 职务
*/
private String job;
/**
* 邀约人
*/
private String inviter;
/**
* 职业
*/
private String profession;
/**
* 支付方式(0:现金,1:刷卡,2:微信支付,3:支付宝支付,4:银行转账)
*/
private Byte payType;
/**
* 会员签名日期
*/
@JsonFormat(pattern="yyyy-MM-dd", timezone="GMT+8")
private Date memberSignatureDate;
/**
* 经理
*/
private String manager;
/**
* 经理签名日期
*/
@JsonFormat(pattern="yyyy-MM-dd", timezone="GMT+8")
private Date managerSignatureDate;
/**
* 创建日期
*/
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
private Date createDate;
/**
* 创建人用户id
*/
private Integer createUserId;
/**
* 创建人姓名
*/
private String createUserName;
/**
* 会员状态(-1:停用,0:未审核,1:正常)
*/
private Byte state;
private List<MemberFamilyInfoVo> family;
public List<MemberFamilyInfoVo> getFamily() {
return family;
}
public void setFamily(List<MemberFamilyInfoVo> family) {
this.family = family;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>xx-common-platform-web</artifactId>
<groupId>com.xxfc.common</groupId>
<version>2.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.xxfc.platform</groupId>
<artifactId>xx-universal-server</artifactId>
<dependencies>
<dependency>
<groupId>com.xxfc.platform</groupId>
<artifactId>xx-universal-api</artifactId>
<version>2.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>
\ No newline at end of file
package com.xxfc.platform.universal;
import com.ace.cache.EnableAceCache;
import com.github.wxiaoqi.security.auth.client.EnableAceAuthClient;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@SpringBootApplication
@EnableDiscoveryClient
@EnableAceAuthClient
@EnableAceCache
@EnableTransactionManagement
@MapperScan("com.xxfc.platform.universal.mapper")
@EnableFeignClients({"com.github.wxiaoqi.security.auth.client.feign"})
public class UniversalApplication {
public static void main(String[] args) {
SpringApplication.run(UniversalApplication.class, args);
}
}
package com.xxfc.platform.universal.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;
@Configuration
public class RestConfiguration {
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
}
package com.xxfc.platform.universal.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 org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import java.util.ArrayList;
import java.util.Collections;
@Configuration("thirdpartyWebConfig")
@Primary
public class WebConfiguration implements WebMvcConfigurer {
@Bean
GlobalExceptionHandler getGlobalExceptionHandler() {
return new GlobalExceptionHandler();
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(getServiceAuthRestInterceptor()).
addPathPatterns(getIncludePathPatterns()).addPathPatterns("/3p/**");
registry.addInterceptor(getUserAuthRestInterceptor()).
addPathPatterns(getIncludePathPatterns());
}
@Bean
ServiceAuthRestInterceptor getServiceAuthRestInterceptor() {
return new ServiceAuthRestInterceptor();
}
@Bean
UserAuthRestInterceptor getUserAuthRestInterceptor() {
return new UserAuthRestInterceptor();
}
/**
* 需要用户和服务认证判断的路径
* @return
*/
private ArrayList<String> getIncludePathPatterns() {
ArrayList<String> list = new ArrayList<>();
String[] urls = {
"/3p/**"
};
Collections.addAll(list, urls);
return list;
}
}
package com.xxfc.platform.universal.controller;
import com.github.wxiaoqi.security.common.msg.BaseResponse;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.msg.TableResultResponse;
import com.xxfc.platform.universal.service.MemberInfoService;
import com.xxfc.platform.universal.vo.MemberInfoVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("member/info")
public class MemberInfoController {
// @Autowired
// MemberInfoService memberInfoService;
//
// @PostMapping("")
// public BaseResponse insert(@RequestBody MemberInfoVo memberInfoVo) {
// memberInfoService.insert(memberInfoVo);
// return new BaseResponse();
// }
//
// @DeleteMapping("/{id}")
// public BaseResponse delete(@PathVariable("id") Integer id) {
// memberInfoService.deleteById(id);
// return new BaseResponse();
// }
//
// @GetMapping("/{id}")
// public ObjectRestResponse<MemberInfoVo> get(@PathVariable("id") Integer id) {
// return new ObjectRestResponse<MemberInfoVo>().data(memberInfoService.selectById(id));
// }
//
// @GetMapping("/all")
// public TableResultResponse<MemberInfoVo> getAll(String name, Integer page, Integer limit) {
// return new TableResultResponse<MemberInfoVo>().data(memberInfoService.selectAll(name, page, limit));
// }
//
// @PutMapping("")
// public BaseResponse update(@RequestBody MemberInfoVo memberInfoVo) {
// memberInfoService.updateSelectiveById(memberInfoVo);
// return new BaseResponse();
// }
}
package com.xxfc.platform.universal.controller;
import com.xxfc.platform.universal.api.ITrafficViolationsService;
import com.xxfc.platform.universal.model.JuheResult;
import com.xxfc.platform.universal.service.TrafficViolationsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("3p/tv")
public class TrafficViolationsController {
//implements ITrafficViolationsService {
// @Autowired
// TrafficViolationsService tvService;
//
// @Override
// @GetMapping("city")
// public JuheResult getCityInfo(String province) {
// return tvService.getCity(province);
// }
//
// @Override
// @GetMapping("trafficViolations")
// public JuheResult queryTrafficViolations(String city, String hphm, String hpzl, String engineno, String classno) {
// return tvService.queryViolations(city, hphm, hpzl, engineno, classno);
// }
//
// @Override
// @GetMapping("balance")
// public JuheResult getBalance() {
// return tvService.queryBalance();
// }
//
// @Override
// @GetMapping("carPre")
// public JuheResult carPre(String hphm) {
// return tvService.queryCityByHphm(hphm);
// }
}
package com.xxfc.platform.universal.mapper;
import com.github.wxiaoqi.security.common.mapper.MysqlMapper;
import com.xxfc.platform.universal.entity.MemberFamilyInfo;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
public interface MemberFamilyInfoMapper
extends MysqlMapper<MemberFamilyInfo> {
@Delete("delete from member_family_info where member_id = #{id}")
int deleteByMemberId(Integer id);
@Select("select * from member_family_info where member_id = #{id}")
List<MemberFamilyInfo> selectByMemberId(Integer id);
int deleteByMemberIdNotInIds(@Param("memberId") Integer memberId, @Param("ids") List<Integer> ids);
}
\ No newline at end of file
package com.xxfc.platform.universal.mapper;
import com.xxfc.platform.universal.entity.MemberInfo;
import com.xxfc.platform.universal.vo.MemberInfoVo;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
public interface MemberInfoMapper extends Mapper<MemberInfo> {
List<MemberInfoVo> selectVoAll();
List<MemberInfoVo> selectVoByName(@Param("name") String name);
}
\ No newline at end of file
package com.xxfc.platform.universal.service;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.context.BaseContextHandler;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.xxfc.platform.universal.entity.MemberFamilyInfo;
import com.xxfc.platform.universal.entity.MemberInfo;
import com.xxfc.platform.universal.mapper.MemberFamilyInfoMapper;
import com.xxfc.platform.universal.mapper.MemberInfoMapper;
import com.xxfc.platform.universal.vo.MemberFamilyInfoVo;
import com.xxfc.platform.universal.vo.MemberInfoVo;
import org.springframework.beans.BeanUtils;
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.Date;
import java.util.List;
//@Service
//@Transactional
public class MemberInfoService extends BaseBiz<MemberInfoMapper, MemberInfo> {
//@Autowired
MemberFamilyInfoMapper memberFamilyInfoMapper;
public void insert(MemberInfoVo memberInfoVo) {
MemberInfo memberInfo = new MemberInfo();
BeanUtils.copyProperties(memberInfoVo, memberInfo);
if (null == memberInfo.getCreateDate()) {
memberInfo.setCreateDate(new Date());
}
memberInfo.setState((byte) 0);
memberInfo.setCreateUserId(Integer.valueOf(BaseContextHandler.getUserID()));
memberInfo.setCreateUserName(BaseContextHandler.getName());
super.insert(memberInfo);
List<MemberFamilyInfoVo> family = memberInfoVo.getFamily();
if (null != family && family.size() > 0) {
List<MemberFamilyInfo> familyInfos = new ArrayList<>();
for (MemberFamilyInfoVo info : family) {
MemberFamilyInfo familyInfo = new MemberFamilyInfo();
BeanUtils.copyProperties(info, familyInfo);
familyInfo.setMemberId(memberInfo.getId());
familyInfos.add(familyInfo);
}
memberFamilyInfoMapper.insertList(familyInfos);
}
}
public void deleteById(Integer id) {
super.deleteById(id);
memberFamilyInfoMapper.deleteByMemberId(id);
}
public MemberInfoVo selectById(Integer id) {
MemberInfo info = super.selectById(id);
if (null == info) {
throw new BaseException("用户不存在");
}
MemberInfoVo result = new MemberInfoVo();
BeanUtils.copyProperties(info, result);
List<MemberFamilyInfo> family = memberFamilyInfoMapper.selectByMemberId(id);
List<MemberFamilyInfoVo> familyInfoVos = new ArrayList<>();
for (MemberFamilyInfo familyInfo : family) {
MemberFamilyInfoVo familyInfoVo = new MemberFamilyInfoVo();
BeanUtils.copyProperties(familyInfo, familyInfoVo);
familyInfoVos.add(familyInfoVo);
}
result.setFamily(familyInfoVos);
return result;
}
public PageInfo<MemberInfoVo> selectAll(String name, Integer pageNum, Integer pageSize) {
PageHelper.startPage(pageNum, pageSize);
if (name != null) {
name = name.trim();
if (name.length() > 0) {
return new PageInfo<>(mapper.selectVoByName(name.trim()));
}
}
return new PageInfo<>(mapper.selectVoAll());
}
public void updateSelectiveById(MemberInfoVo memberInfoVo) {
MemberInfo memberInfo = new MemberInfo();
BeanUtils.copyProperties(memberInfoVo, memberInfo);
super.updateSelectiveById(memberInfo);
List<MemberFamilyInfoVo> family = memberInfoVo.getFamily();
if (null != family && family.size() > 0) {
List<Integer> ids = new ArrayList<>();
for (MemberFamilyInfoVo memberFamilyInfoVo : family) {
MemberFamilyInfo info = new MemberFamilyInfo();
BeanUtils.copyProperties(memberFamilyInfoVo, info);
info.setMemberId(memberInfoVo.getId());
if (null == info.getId()) {
memberFamilyInfoMapper.insert(info);
} else {
memberFamilyInfoMapper.updateByPrimaryKeySelective(info);
}
ids.add(info.getId());
}
memberFamilyInfoMapper.deleteByMemberIdNotInIds(memberInfoVo.getId(), ids);
} else {
memberFamilyInfoMapper.deleteByMemberId(memberInfoVo.getId());
}
}
}
package com.xxfc.platform.universal.service;
import com.alibaba.fastjson.JSON;
import com.xxfc.platform.universal.model.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestClientException;
import org.springframework.web.client.RestTemplate;
import java.util.HashMap;
import java.util.Map;
/**
* 违章查询
*/
//@Service
public class TrafficViolationsService {
@Value("${juhe.key}")
private String KEY;
//支持的城市
private static final String URL_GET_CITY = "http://v.juhe.cn/wz/citys?" +
"province={province}&dtype={dtype}&format={format}&callback={callback}&key={key}";
//查违章
private static final String URL_QUERY_WZ = "http://v.juhe.cn/wz/query?" +
"dtype={dtype}&city={city}&hphm={hphm}&hpzl={hpzl}&engineno={engineno}&classno={classno}&key={key}";
//剩余次数
private static final String URL_BALANCE = "http://v.juhe.cn/wz/status?" +
"dtype={dtype}&key={key}";
//根据车牌查城市
private static final String URL_CAR_PRE = "http://v.juhe.cn/wz/carPre?" +
"hphm={hphm}&key={key}";
@Autowired
RestTemplate restTemplate;
/**
* 获取支持城市
* province string N 默认全部,省份简写,如:ZJ、JS
* dtype string N 返回数据格式:json或xml或jsonp,默认json
* format int N 格式选择1或2,默认1
* callback String N 返回格式选择jsonp时,必须传递
* {"resultcode":"101","reason":"error key","result":null,"error_code":10001}
*/
public JuheResult<Map<String, JuheTrafficViolationsProvinceInfo>> getCity(String province) {
Map<String, String> paramsMap = new HashMap<>();
paramsMap.put("key", KEY);
paramsMap.put("province", province == null ? "" : province);
paramsMap.put("dtype", "json");
paramsMap.put("format", "");
paramsMap.put("callback", "");
return query(URL_GET_CITY, paramsMap);
}
/**
* 查违章
* dtype string 否 返回数据格式:默认:json
* city String 是 城市代码 *
* hphm String 是 号牌号码 完整7位 ,需要utf8 urlencode*
* hpzl String 是 号牌类型,默认02:小型车,01:大型车
* engineno String 否 发动机号 (具体是否需要根据城市接口中的参数填写)
* classno String 否 车架号 (具体是否需要根据城市接口中的参数填写)
*/
public JuheResult<JuheTrafficViolationsInfo> queryViolations(String city, String hphm, String hpzl,
String engineno, String classno) {
Map<String, String> paramsMap = new HashMap<>();
paramsMap.put("key", KEY);
paramsMap.put("dtype", "json");
paramsMap.put("city", city);
paramsMap.put("hphm", hphm);
paramsMap.put("hpzl", hpzl);
paramsMap.put("engineno", engineno);
paramsMap.put("classno", classno);
return query(URL_QUERY_WZ, paramsMap);
}
/**
* 查询剩余次数
*/
public JuheResult<JuheTrafficViolationsBalanceInfo> queryBalance() {
Map<String, String> paramsMap = new HashMap<>();
paramsMap.put("key", KEY);
paramsMap.put("dtype", "json");
return query(URL_BALANCE, paramsMap);
}
/**
* 根据车牌前缀查城市参数
*/
public JuheResult<JuheCarPreInfo> queryCityByHphm(String hphm) {
Map<String, String> paramsMap = new HashMap<>();
paramsMap.put("key", KEY);
paramsMap.put("hphm", hphm);
return query(URL_CAR_PRE, paramsMap);
}
private JuheResult query(String url, Map<String, String> paramsMap) {
try {
String responseStr = restTemplate.getForObject(url, String.class, paramsMap);
return JSON.parseObject(responseStr, JuheResult.class);
} catch (RestClientException ex) {
JuheResult result = new JuheResult();
result.setReason("请求错误");
result.setResultcode("500");
return result;
}
}
}
#spring:
# application:
# name: vehicle
# cloud:
# nacos:
# config:
# server-addr: 127.0.0.1:8848
# file-extension: yaml
# profiles:
# active: dev
spring:
profiles:
active: dev
application:
name: xx-universal
cloud:
nacos:
config:
file-extension: yaml
---
spring:
profiles: dev
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848
---
spring:
profiles: pro
cloud:
nacos:
config:
server-addr: 10.5.52.2:8848
\ 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.universal.mapper.MemberFamilyInfoMapper">
<resultMap id="BaseResultMap" type="com.xxfc.platform.universal.entity.MemberFamilyInfo">
<!--
WARNING - @mbg.generated
-->
<id column="id" jdbcType="INTEGER" property="id" />
<result column="member_id" jdbcType="INTEGER" property="memberId" />
<result column="name" jdbcType="VARCHAR" property="name" />
<result column="relationship" jdbcType="VARCHAR" property="relationship" />
</resultMap>
<sql id="Base_Column_List">
<!--
WARNING - @mbg.generated
-->
id, member_id, name, relationship
</sql>
<delete id="deleteByMemberIdNotInIds">
delete from member_family_info
where member_id = #{memberId}
<foreach collection="ids" item="id">
and id != #{id}
</foreach>
</delete>
</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.universal.mapper.MemberInfoMapper">
<resultMap id="BaseResultMap" type="com.xxfc.platform.universal.entity.MemberInfo">
<!--
WARNING - @mbg.generated
-->
<id column="id" jdbcType="INTEGER" property="id" />
<result column="name" jdbcType="VARCHAR" property="name" />
<result column="sex" jdbcType="BIT" property="sex" />
<result column="card_number" jdbcType="VARCHAR" property="cardNumber" />
<result column="birthday" jdbcType="TIMESTAMP" property="birthday" />
<result column="id_number" jdbcType="VARCHAR" property="idNumber" />
<result column="certificate_address" jdbcType="VARCHAR" property="certificateAddress" />
<result column="email" jdbcType="VARCHAR" property="email" />
<result column="wx" jdbcType="VARCHAR" property="wx" />
<result column="member_type" jdbcType="TINYINT" property="memberType" />
<result column="telephone" jdbcType="VARCHAR" property="telephone" />
<result column="mobile_phone" jdbcType="VARCHAR" property="mobilePhone" />
<result column="address" jdbcType="VARCHAR" property="address" />
<result column="workplace" jdbcType="VARCHAR" property="workplace" />
<result column="job" jdbcType="VARCHAR" property="job" />
<result column="inviter" jdbcType="VARCHAR" property="inviter" />
<result column="profession" jdbcType="VARCHAR" property="profession" />
<result column="pay_type" jdbcType="TINYINT" property="payType" />
<result column="member_signature_date" jdbcType="TIMESTAMP" property="memberSignatureDate" />
<result column="manager" jdbcType="VARCHAR" property="manager" />
<result column="manager_signature_date" jdbcType="TIMESTAMP" property="managerSignatureDate" />
<result column="create_date" jdbcType="TIMESTAMP" property="createDate" />
<result column="create_user_id" jdbcType="INTEGER" property="createUserId" />
<result column="create_user_name" jdbcType="VARCHAR" property="createUserName" />
<result column="state" jdbcType="TINYINT" property="state" />
</resultMap>
<sql id="Base_Column_List">
<!--
WARNING - @mbg.generated
-->
id, name, sex, card_number, birthday, id_number, certificate_address, email, wx,
member_type, telephone, mobile_phone, address, workplace, job, inviter, profession,
pay_type, member_signature_date, manager, manager_signature_date, create_date, create_user_id,
create_user_name, state
</sql>
<resultMap id="MemberInfoVoResultMap" type="com.xxfc.platform.universal.vo.MemberInfoVo">
<id column="id" jdbcType="INTEGER" property="id" />
<result column="name" jdbcType="VARCHAR" property="name" />
<result column="sex" jdbcType="BIT" property="sex" />
<result column="card_number" jdbcType="VARCHAR" property="cardNumber" />
<result column="birthday" jdbcType="VARCHAR" property="birthday" />
<result column="id_number" jdbcType="VARCHAR" property="idNumber" />
<result column="certificate_address" jdbcType="VARCHAR" property="certificateAddress" />
<result column="email" jdbcType="VARCHAR" property="email" />
<result column="wx" jdbcType="VARCHAR" property="wx" />
<result column="member_type" jdbcType="TINYINT" property="memberType" />
<result column="telephone" jdbcType="VARCHAR" property="telephone" />
<result column="mobile_phone" jdbcType="VARCHAR" property="mobilePhone" />
<result column="address" jdbcType="VARCHAR" property="address" />
<result column="workplace" jdbcType="VARCHAR" property="workplace" />
<result column="job" jdbcType="VARCHAR" property="job" />
<result column="inviter" jdbcType="VARCHAR" property="inviter" />
<result column="profession" jdbcType="VARCHAR" property="profession" />
<result column="pay_type" jdbcType="TINYINT" property="payType" />
<result column="member_signature_date" jdbcType="TIMESTAMP" property="memberSignatureDate" />
<result column="manager" jdbcType="VARCHAR" property="manager" />
<result column="manager_signature_date" jdbcType="TIMESTAMP" property="managerSignatureDate" />
<result column="create_date" jdbcType="TIMESTAMP" property="createDate" />
<result column="create_user_id" jdbcType="INTEGER" property="createUserId" />
<result column="create_user_name" jdbcType="VARCHAR" property="createUserName" />
<result column="state" jdbcType="TINYINT" property="state" />
<collection column="memberId=id" javaType="ArrayList" ofType="com.xxfc.platform.universal.entity.MemberFamilyInfo" property="family" select="selectFamilyInfoByMemberId" />
</resultMap>
<select id="selectVoAll" resultMap="MemberInfoVoResultMap">
select * from member_info
</select>
<select id="selectFamilyInfoByMemberId" resultType="com.xxfc.platform.universal.entity.MemberFamilyInfo">
select * from member_family_info where member_id = #{memberId}
</select>
<select id="selectVoByName" resultMap="MemberInfoVoResultMap">
select * from member_info
where name = #{name}
</select>
</mapper>
\ No newline at end of file
package com.xxfc.platform.vehicle.vo; package com.xxfc.platform.vehicle.vo;
import com.xxfc.platform.vehicle.entity.BranchCompany; import com.xxfc.platform.vehicle.entity.BranchCompany;
import com.xxfc.platform.vehicle.entity.Vehicle;
import com.xxfc.platform.vehicle.entity.VehicleModel; import com.xxfc.platform.vehicle.entity.VehicleModel;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal;
import java.util.List; import java.util.List;
@Data @Data
public class UsableVehicleVO extends VehicleModel { public class UsableVehicleVO {
//车辆id //车辆id
String vehicleId; // String vehicleId;
Vehicle vehicle;
BigDecimal distance;
VehicleModel vehicleModel;
// String companyName;
BranchCompany company; BranchCompany company;
} }
\ No newline at end of file
...@@ -3,6 +3,7 @@ package com.xxfc.platform.vehicle.vo; ...@@ -3,6 +3,7 @@ package com.xxfc.platform.vehicle.vo;
import lombok.Data; import lombok.Data;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.List;
@Data @Data
public class UsableVeicleDTO { public class UsableVeicleDTO {
...@@ -13,4 +14,7 @@ public class UsableVeicleDTO { ...@@ -13,4 +14,7 @@ public class UsableVeicleDTO {
String lat; String lat;
String startDate; String startDate;
String endDate; String endDate;
String priceStart;
String priceEnd;
List<Integer> catas;
} }
\ No newline at end of file
package com.xxfc.platform.vehicle.biz; package com.xxfc.platform.vehicle.biz;
import cn.hutool.core.bean.BeanUtil;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
...@@ -829,7 +830,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> { ...@@ -829,7 +830,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> {
public List<UsableVehicleVO> searchUsable(UsableVeicleDTO dto){ public List<UsableVehicleVO> searchUsable(UsableVeicleDTO dto){
//adjustBookedInfoParam(params, ); //adjustBookedInfoParam(params, );
Map<String, Object> params = new HashMap<String, Object>(); Map<String, Object> params = BeanUtil.beanToMap(dto);
List<String> notBookedDates = Lists.newArrayList(); List<String> notBookedDates = Lists.newArrayList();
if(StringUtils.isNotBlank(dto.getStartDate())&& if(StringUtils.isNotBlank(dto.getStartDate())&&
StringUtils.isNotBlank(dto.getEndDate())) { StringUtils.isNotBlank(dto.getEndDate())) {
......
...@@ -57,8 +57,9 @@ public class BranchCompanyController extends BaseController<BranchCompanyBiz> { ...@@ -57,8 +57,9 @@ public class BranchCompanyController extends BaseController<BranchCompanyBiz> {
return RestResponse.data(baseBiz.getAll(page,limit,addrProvince, addrCity, addrTown, null)); return RestResponse.data(baseBiz.getAll(page,limit,addrProvince, addrCity, addrTown, null));
} }
@IgnoreUserToken
@RequestMapping(value ="/search",method = RequestMethod.GET) @RequestMapping(value ="/search",method = RequestMethod.GET)
@IgnoreUserToken
@IgnoreClientToken
public RestResponse<PageDataVO<BranchCompany>> search(@Validated CompanySearchDTO vo) { public RestResponse<PageDataVO<BranchCompany>> search(@Validated CompanySearchDTO vo) {
return RestResponse.data(baseBiz.search(vo)); return RestResponse.data(baseBiz.search(vo));
} }
......
...@@ -19,6 +19,8 @@ import com.xxfc.platform.vehicle.entity.VehicleBookInfo; ...@@ -19,6 +19,8 @@ import com.xxfc.platform.vehicle.entity.VehicleBookInfo;
import com.xxfc.platform.vehicle.feign.UserFeign; import com.xxfc.platform.vehicle.feign.UserFeign;
import com.xxfc.platform.vehicle.feign.dto.UserDTO; import com.xxfc.platform.vehicle.feign.dto.UserDTO;
import com.xxfc.platform.vehicle.vo.*; import com.xxfc.platform.vehicle.vo.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.joda.time.DateTime; import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat; import org.joda.time.format.DateTimeFormat;
...@@ -34,6 +36,7 @@ import java.util.List; ...@@ -34,6 +36,7 @@ import java.util.List;
@RequestMapping("/vehicleInfo") @RequestMapping("/vehicleInfo")
@Slf4j @Slf4j
@IgnoreClientToken @IgnoreClientToken
@Api(value = "车辆管理")
public class VehicleController extends BaseController<VehicleBiz> { public class VehicleController extends BaseController<VehicleBiz> {
@Autowired @Autowired
...@@ -252,7 +255,9 @@ public class VehicleController extends BaseController<VehicleBiz> { ...@@ -252,7 +255,9 @@ public class VehicleController extends BaseController<VehicleBiz> {
* @param dto * @param dto
* @return * @return
*/ */
@ApiOperation("可用车辆查询")
@RequestMapping(value = "/rent/usable-vehicle", method = RequestMethod.GET) @RequestMapping(value = "/rent/usable-vehicle", method = RequestMethod.GET)
@IgnoreUserToken
public ObjectRestResponse<PageDataVO<UsableVehicleVO>> rentUsableVehicle(UsableVeicleDTO dto) throws Exception { public ObjectRestResponse<PageDataVO<UsableVehicleVO>> rentUsableVehicle(UsableVeicleDTO dto) throws Exception {
//根据时间 获得 可用车辆 //根据时间 获得 可用车辆
//结合车型 //结合车型
......
...@@ -3,7 +3,10 @@ ...@@ -3,7 +3,10 @@
<mapper namespace="com.xxfc.platform.vehicle.mapper.VehicleMapper"> <mapper namespace="com.xxfc.platform.vehicle.mapper.VehicleMapper">
<resultMap id="searchUsableMap" type="com.xxfc.platform.vehicle.vo.UsableVehicleVO"> <resultMap id="searchUsableMap" type="com.xxfc.platform.vehicle.vo.UsableVehicleVO">
<!-- <collection column="company_id" property="company_id" ofType="com.xxfc.platform.vehicle" select="getAttribute" >--> <!-- <collection column="company_id" property="id" ofType="com.xxfc.platform.vehicle.entity.BranchCompany" select="com.xxfc.platform.vehicle.mapper.BranchCompanyMapper.selectByPrimaryKey" />-->
<result column="park_branch_company_id" property="companyId" jdbcType="VARCHAR" 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" />
</resultMap> </resultMap>
<update id="updateStatusById" parameterType="java.util.Map"> <update id="updateStatusById" parameterType="java.util.Map">
...@@ -216,8 +219,11 @@ ...@@ -216,8 +219,11 @@
</select> </select>
<select id="searchUsable" parameterType="java.util.Map" <select id="searchUsable" parameterType="java.util.Map"
resultType="com.xxfc.platform.vehicle.vo.UsableVehicleVO"> resultMap="searchUsableMap">
select v.id as vehicleId, v.park_branch_company_id as company_id select distinct vm.id as model_id, bc.id as company_id
<if test="lon != null and lat != null">
,st_distance_sphere(point(#{lon}, #{lat}), point(bc.longitude, bc.latitude)) as distance
</if>
<if test=" yearMonthAndParam !=null "> <if test=" yearMonthAndParam !=null ">
,vbi.booked_date ,vbi.booked_date
</if> </if>
...@@ -226,7 +232,8 @@ ...@@ -226,7 +232,8 @@
left join left join
vehicle_book_info vbi on v.`id` = vbi.vehicle vehicle_book_info vbi on v.`id` = vbi.vehicle
</if> </if>
left join branch_company bc on v.`subordinate_branch` = bc.id left join vehicle_model vm on v.model_id = vm.id
left join branch_company bc on v.park_branch_company_id = bc.id
<where> <where>
<!-- 若需根据预定日期条件查询,针对换为位操作 --> <!-- 若需根据预定日期条件查询,针对换为位操作 -->
<if test=" yearMonthAndParam !=null "> <if test=" yearMonthAndParam !=null ">
...@@ -238,8 +245,10 @@ ...@@ -238,8 +245,10 @@
</foreach> </foreach>
</if> </if>
</where> </where>
<if test="lon != null and lat != null">
order by v.code order by
distance asc
</if>
</select> </select>
<select id="lockByCode" resultType="com.xxfc.platform.vehicle.entity.Vehicle" <select id="lockByCode" resultType="com.xxfc.platform.vehicle.entity.Vehicle"
......
...@@ -7,16 +7,26 @@ import cn.hutool.core.io.FileUtil; ...@@ -7,16 +7,26 @@ import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileWriter; import cn.hutool.core.io.file.FileWriter;
import cn.hutool.core.util.PinyinUtil; import cn.hutool.core.util.PinyinUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONObject;
import com.github.stuxuhai.jpinyin.PinyinHelper; import com.github.stuxuhai.jpinyin.PinyinHelper;
import com.github.wxiaoqi.security.common.msg.TableResultResponse;
import com.github.wxiaoqi.security.common.util.Query;
import com.xxfc.platform.vehicle.VehicleApplication; import com.xxfc.platform.vehicle.VehicleApplication;
import com.xxfc.platform.vehicle.biz.SysRegionBiz; import com.xxfc.platform.vehicle.biz.SysRegionBiz;
import com.xxfc.platform.vehicle.entity.SysRegion; import com.xxfc.platform.vehicle.entity.SysRegion;
import lombok.Builder;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
@RunWith(SpringJUnit4ClassRunner.class) @RunWith(SpringJUnit4ClassRunner.class)
...@@ -26,38 +36,90 @@ public class RegionTest { ...@@ -26,38 +36,90 @@ public class RegionTest {
@Autowired @Autowired
SysRegionBiz sysRegionBiz; SysRegionBiz sysRegionBiz;
@Data
public class Title{
String title;
List<String> lists;
}
@Data
public class City{
List<Title> city;
}
@Data
public class NewData{
Long id;
String name;
}
@Data
public class NewTitle{
String title;
List<NewData> lists;
}
@Data
public class NewCity{
List<NewTitle> city;
}
@Test @Test
public void test() throws Exception { public void test() throws Exception {
List<SysRegion> sysRegions = sysRegionBiz.selectCity(); String jsonstr = "{\"city\":[{\"title\":\"A\",\"lists\":[\"阿坝\",\"阿拉善\",\"阿里\",\"安康\",\"安庆\",\"鞍山\",\"安顺\",\"安阳\",\"澳门\"]},{\"title\":\"B\",\"lists\":[\"北京\",\"白银\",\"保定\",\"宝鸡\",\"保山\",\"包头\",\"巴中\",\"北海\",\"蚌埠\",\"本溪\",\"毕节\",\"滨州\",\"百色\",\"亳州\"]},{\"title\":\"C\",\"lists\":[\"重庆\",\"成都\",\"长沙\",\"长春\",\"沧州\",\"常德\",\"昌都\",\"长治\",\"常州\",\"巢湖\",\"潮州\",\"承德\",\"郴州\",\"赤峰\",\"池州\",\"崇左\",\"楚雄\",\"滁州\",\"朝阳\"]},{\"title\":\"D\",\"lists\":[\"大连\",\"东莞\",\"大理\",\"丹东\",\"大庆\",\"大同\",\"大兴安岭\",\"德宏\",\"德阳\",\"德州\",\"定西\",\"迪庆\",\"东营\"]},{\"title\":\"E\",\"lists\":[\"鄂尔多斯\",\"恩施\",\"鄂州\"]},{\"title\":\"F\",\"lists\":[\"福州\",\"防城港\",\"佛山\",\"抚顺\",\"抚州\",\"阜新\",\"阜阳\"]},{\"title\":\"G\",\"lists\":[\"广州\",\"桂林\",\"贵阳\",\"甘南\",\"赣州\",\"甘孜\",\"广安\",\"广元\",\"贵港\",\"果洛\"]},{\"title\":\"H\",\"lists\":[\"杭州\",\"哈尔滨\",\"合肥\",\"海口\",\"呼和浩特\",\"海北\",\"海东\",\"海南\",\"海西\",\"邯郸\",\"汉中\",\"鹤壁\",\"河池\",\"鹤岗\",\"黑河\",\"衡水\",\"衡阳\",\"河源\",\"贺州\",\"红河\",\"淮安\",\"淮北\",\"怀化\",\"淮南\",\"黄冈\",\"黄南\",\"黄山\",\"黄石\",\"惠州\",\"葫芦岛\",\"呼伦贝尔\",\"湖州\",\"菏泽\"]},{\"title\":\"J\",\"lists\":[\"济南\",\"佳木斯\",\"吉安\",\"江门\",\"焦作\",\"嘉兴\",\"嘉峪关\",\"揭阳\",\"吉林\",\"金昌\",\"晋城\",\"景德镇\",\"荆门\",\"荆州\",\"金华\",\"济宁\",\"晋中\",\"锦州\",\"九江\",\"酒泉\"]},{\"title\":\"K\",\"lists\":[\"昆明\",\"开封\"]},{\"title\":\"L\",\"lists\":[\"兰州\",\"拉萨\",\"来宾\",\"莱芜\",\"廊坊\",\"乐山\",\"凉山\",\"连云港\",\"聊城\",\"辽阳\",\"辽源\",\"丽江\",\"临沧\",\"临汾\",\"临夏\",\"临沂\",\"林芝\",\"丽水\",\"六安\",\"六盘水\",\"柳州\",\"陇南\",\"龙岩\",\"娄底\",\"漯河\",\"洛阳\",\"泸州\",\"吕梁\"]},{\"title\":\"M\",\"lists\":[\"马鞍山\",\"茂名\",\"眉山\",\"梅州\",\"绵阳\",\"牡丹江\"]},{\"title\":\"N\",\"lists\":[\"南京\",\"南昌\",\"南宁\",\"宁波\",\"南充\",\"南平\",\"南通\",\"南阳\",\"那曲\",\"内江\",\"宁德\",\"怒江\"]},{\"title\":\"P\",\"lists\":[\"盘锦\",\"攀枝花\",\"平顶山\",\"平凉\",\"萍乡\",\"莆田\",\"濮阳\"]},{\"title\":\"Q\",\"lists\":[\"青岛\",\"黔东南\",\"黔南\",\"黔西南\",\"庆阳\",\"清远\",\"秦皇岛\",\"钦州\",\"齐齐哈尔\",\"泉州\",\"曲靖\",\"衢州\"]},{\"title\":\"R\",\"lists\":[\"日喀则\",\"日照\"]},{\"title\":\"S\",\"lists\":[\"上海\",\"深圳\",\"苏州\",\"沈阳\",\"石家庄\",\"三门峡\",\"三明\",\"三亚\",\"商洛\",\"商丘\",\"上饶\",\"山南\",\"汕头\",\"汕尾\",\"韶关\",\"绍兴\",\"邵阳\",\"十堰\",\"朔州\",\"四平\",\"绥化\",\"遂宁\",\"随州\",\"宿迁\",\"宿州\"]},{\"title\":\"T\",\"lists\":[\"天津\",\"太原\",\"泰安\",\"泰州\",\"台州\",\"唐山\",\"天水\",\"铁岭\",\"铜川\",\"通化\",\"通辽\",\"铜陵\",\"铜仁\",\"台湾\"]},{\"title\":\"W\",\"lists\":[\"武汉\",\"乌鲁木齐\",\"无锡\",\"威海\",\"潍坊\",\"文山\",\"温州\",\"乌海\",\"芜湖\",\"乌兰察布\",\"武威\",\"梧州\"]},{\"title\":\"X\",\"lists\":[\"厦门\",\"西安\",\"西宁\",\"襄阳\",\"湘潭\",\"湘西\",\"咸宁\",\"咸阳\",\"孝感\",\"邢台\",\"新乡\",\"信阳\",\"新余\",\"忻州\",\"西双版纳\",\"宣城\",\"许昌\",\"徐州\",\"香港\",\"锡林郭勒\",\"兴安\"]},{\"title\":\"Y\",\"lists\":[\"银川\",\"雅安\",\"延安\",\"延边\",\"盐城\",\"阳江\",\"阳泉\",\"扬州\",\"烟台\",\"宜宾\",\"宜昌\",\"宜春\",\"营口\",\"益阳\",\"永州\",\"岳阳\",\"榆林\",\"运城\",\"云浮\",\"玉树\",\"玉溪\",\"玉林\"]},{\"title\":\"Z\",\"lists\":[\"杂多县\",\"赞皇县\",\"枣强县\",\"枣阳市\",\"枣庄\",\"泽库县\",\"曾都区\",\"泽普县\",\"泽州县\",\"札达县\",\"扎赉特旗\",\"扎兰屯市\",\"扎鲁特旗\",\"扎囊县\",\"张北县\",\"张店区\",\"章贡区\",\"张家港\",\"张家界\",\"张家口\",\"漳平市\",\"漳浦县\",\"章丘市\",\"樟树市\",\"张湾区\",\"彰武县\",\"漳县\",\"张掖\",\"漳州\",\"长子县\",\"湛河区\",\"湛江\",\"站前区\",\"沾益县\",\"诏安县\",\"召陵区\",\"昭平县\",\"肇庆\",\"昭通\",\"赵县\",\"昭阳区\",\"招远市\",\"肇源县\",\"肇州县\",\"柞水县\",\"柘城县\",\"浙江\",\"镇安县\",\"振安区\",\"镇巴县\",\"正安县\",\"正定县\",\"正蓝旗\",\"正宁县\",\"蒸湘区\",\"正镶白旗\",\"正阳县\",\"郑州\",\"镇海区\",\"镇江\",\"浈江区\",\"镇康县\",\"镇赉县\",\"镇平县\",\"振兴区\",\"镇雄县\",\"镇原县\",\"志丹县\",\"治多县\",\"芝罘区\",\"枝江市\",\"芷江侗族自治县\",\"织金县\",\"中方县\",\"中江县\",\"钟楼区\",\"中牟县\",\"中宁县\",\"中山\",\"中山区\",\"钟山区\",\"钟山县\",\"中卫\",\"钟祥市\",\"中阳县\",\"中原区\",\"周村区\",\"周口\",\"周宁县\",\"舟曲县\",\"舟山\",\"周至县\",\"庄河市\",\"诸城市\",\"珠海\",\"珠晖区\",\"诸暨市\",\"驻马店\",\"准格尔旗\",\"涿鹿县\",\"卓尼\",\"涿州市\",\"卓资县\",\"珠山区\",\"竹山县\",\"竹溪县\",\"株洲\",\"株洲县\",\"淄博\",\"子长县\",\"淄川区\",\"自贡\",\"秭归县\",\"紫金县\",\"自流井区\",\"资溪县\",\"资兴市\",\"资阳\"]}]}";
String str = new String(); //City city = JSONObject.parseObject
str += "{ \n\"city\": ["; City city = JSONUtil.toBean(jsonstr, City.class);
for(int i = 1;i<=26;i++) { NewCity newCity = new NewCity();
str += "\n{ \"title\": \""+(char)(64+i)+"\", \n"; newCity.setCity(new ArrayList<NewTitle>());
str += "\"lists\":[\n"; for(Title title : city.getCity()) {
Boolean flag = false; NewTitle newTitle = new NewTitle();
for(SysRegion sysRegion : sysRegions) { newTitle.setTitle(title.getTitle());
if(PinyinHelper.getShortPinyin(sysRegion.getName()).substring(0,1).equals(String.valueOf((char)(96+i)))){ newTitle.setLists(new ArrayList<NewData>());
//(sysRegion.getName())) for(String str : title.getLists()) {
String name = sysRegion.getName(); TableResultResponse<SysRegion> sysRegionTableResultResponse = sysRegionBiz.selectByQuery(new Query(new HashMap<String, Object>(){{
if("直辖县级".equals(name)) { put("name", str);
//获得父级 }}));
SysRegion sysRegionP = sysRegionBiz.selectOne(SysRegion.builder().parentId(sysRegion.getId()).build()); NewData newData = new NewData(){{
name = sysRegionP.getName(); setId(sysRegionTableResultResponse.getData().getRows().get(0).getId());
} setName(sysRegionTableResultResponse.getData().getRows().get(0).getName());
str += "{\"id\":"+sysRegion.getId()+", \"name\":\""+name+"\"},\n"; }};
flag = true; // builder()
} // .id(sysRegionTableResultResponse.getData().getRows().get(0).getId()).name(sysRegionTableResultResponse.getData().getRows().get(0).getName()).build();
} newTitle.getLists().add(newData);
if(flag) {
str = StrUtil.sub(str, 0, str.length() - 2);
} }
str += "]"; newCity.getCity().add(newTitle);
str += "},\n";
} }
str = StrUtil.sub(str, 0, str.length() - 2); //
str += "] \n }"; // List<SysRegion> sysRegions = sysRegionBiz.selectCity();
// String str = new String();
// str += "{ \n\"city\": [";
// for(int i = 1;i<=26;i++) {
// str += "\n{ \"title\": \""+(char)(64+i)+"\", \n";
// str += "\"lists\":[\n";
// Boolean flag = false;
// for(SysRegion sysRegion : sysRegions) {
// if(PinyinHelper.getShortPinyin(sysRegion.getName()).substring(0,1).equals(String.valueOf((char)(96+i)))){
// //(sysRegion.getName()))
// String name = sysRegion.getName();
// if("直辖县级".equals(name)) {
// //获得父级
// SysRegion sysRegionP = sysRegionBiz.selectOne(SysRegion.builder().id(sysRegion.getParentId()).build());
// name = sysRegionP.getName();
// }
// str += "{\"id\":"+sysRegion.getId()+", \"name\":\""+name+"\"},\n";
// flag = true;
// }
// }
// if(flag) {
// str = StrUtil.sub(str, 0, str.length() - 2);
// }
// str += "]";
// str += "},\n";
// }
// str = StrUtil.sub(str, 0, str.length() - 2);
// str += "] \n }";
FileWriter writer = new FileWriter("D://"+ DateUtil.currentSeconds()+ "test.properties"); FileWriter writer = new FileWriter("D://"+ DateUtil.currentSeconds()+ "test.properties");
writer.write(str); writer.write(JSONUtil.toJsonStr(newCity));
System.out.println("test"); System.out.println("test");
} }
} }
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