Commit bafe6846 authored by hanfeng's avatar hanfeng

解决冲突

parents bd21410b b5632461
......@@ -32,24 +32,28 @@ public class ServiceAuthRestInterceptor extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
HandlerMethod handlerMethod = (HandlerMethod) handler;
// 配置该注解,说明不进行服务拦截
IgnoreClientToken annotation = handlerMethod.getBeanType().getAnnotation(IgnoreClientToken.class);
if (annotation == null) {
annotation = handlerMethod.getMethodAnnotation(IgnoreClientToken.class);
}
if (annotation != null) {
return super.preHandle(request, response, handler);
}
String token = request.getHeader(serviceAuthConfig.getTokenHeader());
IJWTInfo infoFromToken = serviceAuthUtil.getInfoFromToken(token);
String uniqueName = infoFromToken.getUniqueName();
for (String client : serviceAuthUtil.getAllowedClient()) {
if (client.equals(uniqueName)) {
if (handler instanceof HandlerMethod) {
HandlerMethod handlerMethod = (HandlerMethod) handler;
// 配置该注解,说明不进行服务拦截
IgnoreClientToken annotation = handlerMethod.getBeanType().getAnnotation(IgnoreClientToken.class);
if (annotation == null) {
annotation = handlerMethod.getMethodAnnotation(IgnoreClientToken.class);
}
if (annotation != null) {
return super.preHandle(request, response, handler);
}
String token = request.getHeader(serviceAuthConfig.getTokenHeader());
IJWTInfo infoFromToken = serviceAuthUtil.getInfoFromToken(token);
String uniqueName = infoFromToken.getUniqueName();
for (String client : serviceAuthUtil.getAllowedClient()) {
if (client.equals(uniqueName)) {
return super.preHandle(request, response, handler);
}
}
throw new ClientForbiddenException("Client is Forbidden!");
} else {
return super.preHandle(request, response, handler);
}
throw new ClientForbiddenException("Client is Forbidden!");
}
}
......@@ -31,38 +31,42 @@ public class UserAuthRestInterceptor extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
HandlerMethod handlerMethod = (HandlerMethod) handler;
// 配置该注解,说明不进行用户拦截
IgnoreUserToken annotation = handlerMethod.getBeanType().getAnnotation(IgnoreUserToken.class);
if (annotation == null) {
annotation = handlerMethod.getMethodAnnotation(IgnoreUserToken.class);
}
String token = request.getHeader(userAuthConfig.getTokenHeader());
if (StringUtils.isEmpty(token)) {
if (request.getCookies() != null) {
for (Cookie cookie : request.getCookies()) {
if (cookie.getName().equals(userAuthConfig.getTokenHeader())) {
token = cookie.getValue();
if (handler instanceof HandlerMethod) {
HandlerMethod handlerMethod = (HandlerMethod) handler;
// 配置该注解,说明不进行用户拦截
IgnoreUserToken annotation = handlerMethod.getBeanType().getAnnotation(IgnoreUserToken.class);
if (annotation == null) {
annotation = handlerMethod.getMethodAnnotation(IgnoreUserToken.class);
}
String token = request.getHeader(userAuthConfig.getTokenHeader());
if (StringUtils.isEmpty(token)) {
if (request.getCookies() != null) {
for (Cookie cookie : request.getCookies()) {
if (cookie.getName().equals(userAuthConfig.getTokenHeader())) {
token = cookie.getValue();
}
}
}
}
}
IJWTInfo infoFromToken = null;
try {
infoFromToken = userAuthUtil.getInfoFromToken(token);
}catch (Exception e){
if (annotation != null) {
return super.preHandle(request, response, handler);
}else {
throw e;
IJWTInfo infoFromToken = null;
try {
infoFromToken = userAuthUtil.getInfoFromToken(token);
} catch (Exception e) {
if (annotation != null) {
return super.preHandle(request, response, handler);
} else {
throw e;
}
}
BaseContextHandler.setUsername(infoFromToken.getUniqueName());
BaseContextHandler.setName(infoFromToken.getName());
BaseContextHandler.setUserID(infoFromToken.getId());
BaseContextHandler.setToken(token);
// 这里可以添加RequestType
return super.preHandle(request, response, handler);
}else {
return super.preHandle(request, response, handler);
}
BaseContextHandler.setUsername(infoFromToken.getUniqueName());
BaseContextHandler.setName(infoFromToken.getName());
BaseContextHandler.setUserID(infoFromToken.getId());
BaseContextHandler.setToken(token);
// 这里可以添加RequestType
return super.preHandle(request, response, handler);
}
@Override
......
......@@ -40,4 +40,43 @@ public class StringToolsUtil {
String REGEX_ID_CARD = "(^\\d{18}$)|(^\\d{15}$)";
return Pattern.matches(REGEX_ID_CARD, idCard);
}
public static boolean isNumer( String str){
boolean flag = false;
try{
if(StringUtils.isBlank(str)) {
flag = false;
}
Pattern regex =Pattern.compile("[0-9]*");
Matcher m = regex .matcher(str);
flag = m.matches();
}catch(Exception e){
flag = false;
}
return flag;
}
public static boolean isBigDecimal(String str) {
if (str == null || str.trim().length() == 0) {
return false;
}
char[] chars = str.toCharArray();
int sz = chars.length;
int i = (chars[0] == '-') ? 1 : 0;
if (i == sz) return false;
if (chars[i] == '.') return false;//除了负号,第一位不能为'小数点'
boolean radixPoint = false;
for (; i < sz; i++) {
if (chars[i] == '.') {
if (radixPoint) return false;
radixPoint = true;
} else if (!(chars[i] >= '0' && chars[i] <= '9')) {
return false;
}
}
return true;
}
}
package com.xxfc.platform.campsite.dto;
import com.github.wxiaoqi.security.common.vo.PageParam;
import lombok.Data;
/**
* @author libin
* @version 1.0
* @description 公众号
* @data 2019/8/22 14:07
*/
@Data
public class CampsiteShopFindDTO extends PageParam {
private Integer addrProvince;
private Integer addrCity;
private Integer type;
}
......@@ -98,6 +98,9 @@ public class CampsiteShopPageDTO implements Serializable {
@ApiModelProperty("地址")
private String address;
@ApiModelProperty("联系人")
private String concat;
@Override
public boolean equals(Object o) {
if (this == o) {
......
package com.xxfc.platform.campsite.vo;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
......@@ -7,8 +8,6 @@ import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Column;
import javax.persistence.Table;
import java.io.Serializable;
......@@ -67,13 +66,6 @@ public class CampsiteShopPageVo implements Serializable {
@ApiModelProperty(value = "店铺类型名称")
private String storeTypeName;
/**
* 店铺类型id
*/
@ApiModelProperty(value = "店铺类型id")
private String storeId;
/**
* 经度
*/
......@@ -96,8 +88,12 @@ public class CampsiteShopPageVo implements Serializable {
* 创建时间
*/
@ApiModelProperty(value = "创建时间", hidden = true)
@JsonIgnore
private Long crtTime;
@ApiModelProperty("联系人")
private String concat;
@ApiModelProperty(value = "電話")
private String phone;
......
......@@ -4,7 +4,6 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Table;
import java.io.Serializable;
......
......@@ -61,7 +61,6 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper, CampsiteShop> {
*/
private static final String CAMPSITE_LIST_CACHE_PREKEY = "campsite_cache:";
private static final String CAMSITE_DETAIL_CACHE_PREKEY = "campsite:detail:cache:";
private static final String CAMPSITE_CACHE_ALL = "all";
private static final long CAMPSITE_CACHE_EXPIRE_TIME = 6000;
/**
......@@ -81,27 +80,27 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper, CampsiteShop> {
}
public PageDataVO<CampsiteShopPageVo> findCampsiteShopPageByType(Integer type, Integer pageNo, Integer pageSize) {
String result;
if (Objects.isNull(type)) {
result = campHashOperations.get(CAMPSITE_LIST_CACHE_PREKEY,String.format("%s%d%d",CAMPSITE_CACHE_ALL,pageNo,pageSize));
} else {
result = campHashOperations.get(CAMPSITE_LIST_CACHE_PREKEY, String.format("%s%d%d", String.valueOf(type), pageNo, pageSize));
}
public PageDataVO<CampsiteShopPageVo> findCampsiteShopPageByType(CampsiteShopFindDTO campsiteShopFindDTO) {
String campsite_cache_key = String.format("%s%s%s%s%s", campsiteShopFindDTO.getType() == null ? "" : campsiteShopFindDTO.getType() + ":",
campsiteShopFindDTO.getAddrProvince() == null ? "" : campsiteShopFindDTO.getAddrProvince() + ":",
campsiteShopFindDTO.getAddrCity()==null?"":campsiteShopFindDTO.getAddrCity()+":",
campsiteShopFindDTO.getPage()+":",
campsiteShopFindDTO.getLimit());
String result = campHashOperations.get(CAMPSITE_LIST_CACHE_PREKEY,campsite_cache_key);
if (result != null) {
return JSONObject.parseObject(result, new TypeReference<PageDataVO<CampsiteShopPageVo>>() {
});
}
PageDataVO<CampsiteShopPageVo> campsiteShopPageDataVO = new PageDataVO<>();
PageDataVO<CampsiteShopPageDTO> pageDataVO = PageDataVO.pageInfo(pageNo, pageSize, () -> mapper.findAllCampsiteShopsByType(type));
PageDataVO<CampsiteShopPageDTO> pageDataVO = PageDataVO.pageInfo(campsiteShopFindDTO.getPage(), campsiteShopFindDTO.getLimit(), () -> mapper.findAllCampsiteShopsByTypeOrCode(campsiteShopFindDTO.getType(),campsiteShopFindDTO.getAddrProvince(),campsiteShopFindDTO.getAddrCity()));
List<CampsiteShopPageDTO> campsiteShopPageDTOS = pageDataVO.getData();
if (CollectionUtils.isEmpty(campsiteShopPageDTOS)) {
campsiteShopPageDataVO.setData(new ArrayList<CampsiteShopPageVo>());
campsiteShopPageDataVO.setData(Collections.EMPTY_LIST);
return campsiteShopPageDataVO;
}
if (log.isDebugEnabled()) {
log.debug("根据type=【{}】查询到的店铺数据:【{}】", type, campsiteShopPageDTOS);
log.debug("根据type=【{}】查询到的店铺数据:【{}】", campsiteShopFindDTO.getType(), campsiteShopPageDTOS);
}
List<CampsiteShopPageVo> campsiteShopPageVoList = new ArrayList<>();
......@@ -119,11 +118,7 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper, CampsiteShop> {
campsiteShopPageDataVO.setPageNum(pageDataVO.getPageNum());
campsiteShopPageDataVO.setData(campsiteShopPageVoList);
if (Objects.isNull(type)) {
campHashOperations.put(CAMPSITE_LIST_CACHE_PREKEY, String.format("%s%d%d",CAMPSITE_CACHE_ALL,pageNo,pageSize), JSONObject.toJSONString(campsiteShopPageDataVO));
} else {
campHashOperations.put(CAMPSITE_LIST_CACHE_PREKEY, String.format("%s%d%d", String.valueOf(type), pageNo, pageSize), JSONObject.toJSONString(campsiteShopPageDataVO));
}
campHashOperations.put(CAMPSITE_LIST_CACHE_PREKEY,campsite_cache_key,JSONObject.toJSONString(campsiteShopPageDataVO));
return campsiteShopPageDataVO;
}
......@@ -169,7 +164,7 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper, CampsiteShop> {
}
campsiteShopDetailVo.setTypeNames(shopTagDTOS == null ? Collections.EMPTY_LIST : shopTagDTOS.stream().map(CampsiteShopTagDTO::getName).collect(Collectors.toList()));
//根据经纬度算距离
if (campsiteShopDetailDTO.getLongitude()!=null && campsiteShopDetailDTO.getLatitude()!=null) {
if (campsiteShopDetailDTO.getLongitude() != null && campsiteShopDetailDTO.getLatitude() != null) {
double distance = getDistance(campsiteShopDetailDTO.getLongitude(), campsiteShopDetailDTO.getLatitude(), longitude, latitude);
if (log.isDebugEnabled()) {
log.debug("根据店铺经度=【{}】,纬度=【{}】和自己所在位置的经度=【{}】,纬度=【{}】计算出的距离:【{}km】", campsiteShopDetailDTO.getLongitude(), campsiteShopDetailDTO.getLatitude(), longitude, latitude, distance);
......@@ -309,7 +304,6 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper, CampsiteShop> {
}
public int upperOrLowerShelves(Integer id, Integer status) {
int effectRows = mapper.updateCampsiteSaleStatusById(id, status);
if (effectRows > 0) {
......
package com.xxfc.platform.campsite.biz;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.xxfc.platform.campsite.dto.CampsiteShopCarouselDTO;
import com.xxfc.platform.campsite.dto.CampsiteShopCarouselDetailDTO;
import com.xxfc.platform.campsite.entity.CampsiteShopCarousel;
import com.xxfc.platform.campsite.mapper.CampsiteShopCarouselMapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.stereotype.Service;
import com.xxfc.platform.campsite.entity.CampsiteShopCarousel;
import com.xxfc.platform.campsite.mapper.CampsiteShopCarouselMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
......
......@@ -13,7 +13,7 @@ import java.util.List;
/**
* 营地店铺表
*
*
* @author libin
* @email 18178966185@163.com
* @date 2019-06-17 10:28:48
......@@ -23,12 +23,16 @@ public interface CampsiteShopMapper extends Mapper<CampsiteShop> {
/**
* 根据店铺类型查找店铺列表
*
* @param typeId
*/
List<CampsiteShopPageDTO> findAllCampsiteShopsByType(@Param("typeId") Integer typeId);
List<CampsiteShopPageDTO> findAllCampsiteShopsByTypeOrCode(@Param("typeId") Integer typeId,
@Param("proviceCode") Integer proviceCode,
@Param("cityCode") Integer cityCode);
/**
* 首页营地列表
*
* @param start
* @param size
* @return
......@@ -39,6 +43,7 @@ public interface CampsiteShopMapper extends Mapper<CampsiteShop> {
/**
* 根据店铺id查询
*
* @param id
* @return
*/
......@@ -46,6 +51,7 @@ public interface CampsiteShopMapper extends Mapper<CampsiteShop> {
/**
* 根据条件查询
*
* @param campsiteShopAdminFindDTO
* @return
*/
......@@ -53,14 +59,16 @@ public interface CampsiteShopMapper extends Mapper<CampsiteShop> {
/**
* 更新店铺的状态
*
* @param id
* @param status
* @return
*/
int updateCampsiteStatusById(@Param("id") int id,@Param("status") int status);
int updateCampsiteStatusById(@Param("id") int id, @Param("status") int status);
/**
* 更新店铺的上下架状态
*
* @param id
* @param status
* @return
......@@ -69,6 +77,7 @@ public interface CampsiteShopMapper extends Mapper<CampsiteShop> {
/**
* 检验营地名称
*
* @param id
* @param name
* @return
......
......@@ -5,16 +5,13 @@ import com.github.wxiaoqi.security.common.rest.BaseController;
import com.github.wxiaoqi.security.common.vo.GoodDataVO;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.campsite.biz.CampsiteShopBiz;
import com.xxfc.platform.campsite.dto.CampsiteShopFindDTO;
import com.xxfc.platform.campsite.entity.CampsiteShop;
import com.xxfc.platform.campsite.vo.CampsiteShopDetailVo;
import com.xxfc.platform.campsite.vo.CampsiteShopPageVo;
import com.xxfc.platform.campsite.vo.CampsiteShopVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.util.List;
......@@ -32,10 +29,14 @@ public class CampsiteShopController extends BaseController<CampsiteShopBiz, Camp
@ApiOperation("分页查询营地列表")
@GetMapping("/app/unauth/shops")
public ObjectRestResponse<PageDataVO<CampsiteShopVo>> findCampsiteShopPageByType(@RequestParam(value = "type", required = false) Integer type,
public ObjectRestResponse<PageDataVO<CampsiteShopPageVo>> findCampsiteShopPageByType(@RequestParam(value = "type", required = false) Integer type,
@RequestParam(value = "pageNo", required = false, defaultValue = "1") Integer pageNo,
@RequestParam(value = "pageSize", required = false, defaultValue = "6") Integer pageSize) {
PageDataVO<CampsiteShopPageVo> pageDataVO = getBaseBiz().findCampsiteShopPageByType(type, pageNo, pageSize);
CampsiteShopFindDTO campsiteShopFindDTO = new CampsiteShopFindDTO();
campsiteShopFindDTO.setType(type);
campsiteShopFindDTO.setPage(pageNo);
campsiteShopFindDTO.setLimit(pageSize);
PageDataVO<CampsiteShopPageVo> pageDataVO = getBaseBiz().findCampsiteShopPageByType(campsiteShopFindDTO);
return ObjectRestResponse.succ(pageDataVO);
}
......@@ -64,5 +65,11 @@ public class CampsiteShopController extends BaseController<CampsiteShopBiz, Camp
public ObjectRestResponse findRandomVehicle(Integer number) {
return baseBiz.findRandomVehicle(number);
}
@PostMapping(value = "/app/unauth/webchat_official/campsites")
public ObjectRestResponse<PageDataVO<CampsiteShopPageVo>> findCampsitesForPublicNumber(@RequestBody CampsiteShopFindDTO campsiteShopFindDTO){
PageDataVO<CampsiteShopPageVo> campsiteShops = baseBiz.findCampsiteShopPageByType(campsiteShopFindDTO);
return ObjectRestResponse.succ(campsiteShops);
}
}
\ No newline at end of file
......@@ -35,16 +35,23 @@
</resultMap>
<!--根据类型查询全部-->
<select id="findAllCampsiteShopsByType" resultType="com.xxfc.platform.campsite.dto.CampsiteShopPageDTO">
<select id="findAllCampsiteShopsByTypeOrCode" resultType="com.xxfc.platform.campsite.dto.CampsiteShopPageDTO">
select cs.id as `id`,cs.name as `name`,cs.logo as `logo`,cs.url as `url`,cs.province_name as `provinceName`,cs.city_name as `cityName`,cs.service_phone as `phone`,
cs.longitude as `longitude`,cs.latitude as `latitude`,`address` as `address`,cs.hot as `hot`,cs.crt_time as `crtTime`,ct.id as `storeId`,ct.name as `storeTypeName`
cs.longitude as `longitude`,cs.latitude as `latitude`,`address` as `address`,cs.hot as `hot`,cs.crt_time as `crtTime`,cs.concat as `concat`,ct.id as `storeId`,ct.name as `storeTypeName`
FROM `campsite_shop_tag` cst
left JOIN `campsite_shop` cs on cst.shop_id=cs.id
left JOIN `campsite_tag` ct on cst.tag_id=ct.id
where cs.sale_state=1 and cs.is_del=0
<if test="typeId!=null">
and cst.tag_id=#{typeId}
</if> order by `crtTime` DESC
</if>
<if test="proviceCode != null">
and `province`=#{proviceCode}
</if>
<if test="cityCode != null">
and `city`=#{cityCode}
</if>
order by `crtTime` DESC
</select>
<!--首页查询全部-->
......
......@@ -17,7 +17,7 @@ import tk.mybatis.spring.annotation.MapperScan;
})
@EnableDiscoveryClient
@EnableAceAuthClient
@EnableFeignClients(basePackages = {"com.xxfc.platform","com.github.wxiaoqi.security"})
@EnableFeignClients(value = {"com.xxfc.platform","com.github.wxiaoqi.security"})
@MapperScan(basePackages = "com.xxfc.platform.uccn.mapper")
public class UccnApplication {
public static void main(String[] args) {
......
......@@ -18,6 +18,10 @@ public class BranchCompany {
@ApiModelProperty("主键id")
private Integer id;
@Column(name = "company_base_id")
@ApiModelProperty("主键id")
private Integer companyBaseId;
/**
* 分公司名称
*/
......@@ -39,6 +43,7 @@ public class BranchCompany {
private Integer subordinateBranch;
/**
* 地址-省/直辖市(编码)
*/
......@@ -46,6 +51,13 @@ public class BranchCompany {
@ApiModelProperty("地址-省/直辖市(编码)")
private Integer addrProvince;
/**
* 地址-省/直辖市(编码)名称
*/
@Column(name = "province_name")
@ApiModelProperty("地址-省/直辖市(编码)名称")
private String provinceName;
/**
* 地址-市(编码)
*/
......@@ -53,6 +65,14 @@ public class BranchCompany {
@ApiModelProperty("地址-市(编码)")
private Integer addrCity;
/**
* 地址-市(编码)名称
*/
@Column(name = "city_name")
@ApiModelProperty("地址-市(编码名称")
private String cityName;
/**
* 地址-镇/县(编码)
*/
......@@ -60,6 +80,13 @@ public class BranchCompany {
@ApiModelProperty("地址-镇/县(编码)")
private Integer addrTown;
/**
* 地址-县名称
*/
@Column(name = "town_name")
@ApiModelProperty("县名称")
private String townName;
/**
* 详细地址
*/
......@@ -119,4 +146,16 @@ public class BranchCompany {
@ApiModelProperty("旅游客服电话")
private String tourServicePhone;
/**
* 上下架:1-上架;2-下架
*/
private Integer state;
/**
* 是否删除:0-正常;1-删除
*/
@Column(name = "is_del")
private Integer isDel;
}
\ No newline at end of file
......@@ -9,7 +9,7 @@ public class BranchCompanyStockApplyInfo {
@GeneratedValue(strategy = GenerationType.IDENTITY, generator = "JDBC")
private Integer id;
@Column(name = "company_id")
@Column(name = "company_base_id")
private Integer companyId;
/**
......
package com.xxfc.platform.vehicle.entity;
import lombok.Data;
import javax.persistence.*;
import java.math.BigDecimal;
@Data
@Table(name = "branch_company_stock_info_right")
public class BranchCompanyStockRight{
/**
* 分公司ID
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY, generator = "JDBC")
private Integer id;
/**
* 有限公司id
*/
@Column(name = "company_base_id")
private Integer companyBaseId;
/**
* 剩余股份
*/
private Integer balance;
/**
* 股份总数
*/
private Integer total;
/**
* 股份单价
*/
private BigDecimal price;
/**
* 股价类型:1-万/股;2-港万/股
*/
private Integer type;
@Column(name = "stock_state")
private Integer stockState;
/**
* 创建时间
*/
@Column(name = "crt_time")
private Long crtTime;
/**
* 排序
*/
private Integer rank;
/**
* 更新时间
*/
@Column(name = "upd_time")
private Long updTime;
/**
* 是否删除:0-正常;1-删除
*/
@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_base")
public class CompanyBase {
@Id
@GeneratedValue(generator = "JDBC")
@ApiModelProperty("主键id")
private Integer id;
/**
* 分公司名称
*/
@ApiModelProperty("分公司名称")
private String name;
/**
* 公司封面
*/
@ApiModelProperty("公司封面")
private String cover;
/**
* 轮播图
*/
@ApiModelProperty("轮播图")
private String images;
/**
* 片区id
*/
@Column(name = "zone_id")
@ApiModelProperty("片区id")
private Integer zoneId;
/**
* 公司简介
*/
@ApiModelProperty("公司简介")
private String describes;
/**
* 详情
*/
@ApiModelProperty("详情")
private String content;
/**
* 地址-省/直辖市(编码)
*/
@Column(name = "addr_province")
@ApiModelProperty("地址-省/直辖市(编码)")
private Integer addrProvince;
/**
* 地址-市(编码)
*/
@Column(name = "addr_city")
@ApiModelProperty("地址-市(编码)")
private Integer addrCity;
/**
* 地址-镇/县(编码)
*/
@Column(name = "addr_town")
@ApiModelProperty("地址-镇/县(编码)")
private Integer addrTown;
/**
* 创建时间
*/
@Column(name = "crt_time")
@ApiModelProperty("创建时间")
private Long crtTime;
/**
* 更新时间
*/
@Column(name = "upd_time")
@ApiModelProperty("更新时间")
private Long updTime;
/**
* 是否删除:0-正常;1-删除
*/
@Column(name = "is_del")
@ApiModelProperty("更新时间")
private Integer isDel;
@Column(name = "province_name")
private String provinceName;
@Column(name = "city_name")
private String cityName;
@Column(name = "town_name")
private String townName;
}
\ No newline at end of file
......@@ -27,7 +27,4 @@ public class VehicleBookHourInfo {
@Column(name = "update_time")
private Date updateTime;
@Column(name = "book_record_id")
private Long bookRecordId;
}
\ No newline at end of file
......@@ -109,7 +109,7 @@ public class ResultVehicleVo {
*/
private Date maintenanceDate;
/**
* 保养公里
* 当前公里数
*/
private Integer mileage;
......
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 BranchCompanyFindDTO extends PageParam {
private Integer addrProvince;
private Integer addrCity;
}
package com.xxfc.platform.vehicle.pojo.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/8/23 16:06
*/
@Data
public class BranchCompanyListDTO {
private Integer comnpanyBaseId;
/**
* 分公司名称
*/
@ApiModelProperty("分公司名称")
private String name;
/**
* 公司封面
*/
@ApiModelProperty("公司封面")
private String cover;
@ApiModelProperty("地址-省/直辖市")
private String provinceName;
@ApiModelProperty("地址-市")
private String cityName;
@ApiModelProperty("地址-镇/县")
private String townName;
@ApiModelProperty("具体地址")
private String address;
/**
* 负责人
*/
@ApiModelProperty("负责人")
private String leader;
/**
* 负责人联系方式
*/
@ApiModelProperty("负责人联系方式")
private String leaderContactInfo;
/**
*公司地址-纬度
*/
@ApiModelProperty("公司地址-纬度")
private BigDecimal latitude;
/**
* 公司地址-经度
*/
@ApiModelProperty("公司地址-经度")
private BigDecimal longitude;
}
package com.xxfc.platform.vehicle.pojo.dto;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/8/23 11:03
*/
@Data
public class BranchCompanyStockRightDTO {
private Integer id;
private String companyName;
private Integer balance;
private Integer total;
private BigDecimal price;
private String cover;
private Integer type;
}
package com.xxfc.platform.vehicle.pojo.dto;
import com.github.wxiaoqi.security.common.vo.PageParam;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/8/22 19:58
*/
@Data
public class BranchCompanyStockRightFindDTO extends PageParam {
private Integer addrProvince;
private Integer addrCity;
private BigDecimal price;
}
package com.xxfc.platform.vehicle.pojo.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/8/23 13:51
*/
@Data
public class CompanyBaseDetailDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 分公司名称
*/
@ApiModelProperty("分公司名称")
private String name;
/**
* 公司封面
*/
@ApiModelProperty("公司封面")
private String cover;
/**
* 轮播图
*/
@ApiModelProperty("轮播图")
private String images;
@ApiModelProperty("公司简介")
private String describes;
@ApiModelProperty("详情")
private String content;
@ApiModelProperty("地址-省/直辖市")
private String provinceName;
@ApiModelProperty("地址-市")
private String cityName;
@ApiModelProperty("地址-镇/县")
private String townName;
@ApiModelProperty("具体地址")
private String address;
}
package com.xxfc.platform.vehicle.pojo.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/8/23 16:06
*/
@Data
public class BranchCompanyListVO {
private Integer comnpanyBaseId;
/**
* 分公司名称
*/
@ApiModelProperty("分公司名称")
private String name;
/**
* 公司封面
*/
@ApiModelProperty("公司封面")
private String cover;
@ApiModelProperty("地址-省/直辖市")
private String provinceName;
@ApiModelProperty("地址-市")
private String cityName;
@ApiModelProperty("地址-镇/县")
private String townName;
@ApiModelProperty("具体地址")
private String address;
/**
* 负责人
*/
@ApiModelProperty("负责人")
private String leader;
/**
* 负责人联系方式
*/
@ApiModelProperty("负责人联系方式")
private String leaderContactInfo;
/**
*公司地址-纬度
*/
@ApiModelProperty("公司地址-纬度")
private BigDecimal latitude;
/**
* 公司地址-经度
*/
@ApiModelProperty("公司地址-经度")
private BigDecimal longitude;
}
package com.xxfc.platform.vehicle.pojo.vo;
import lombok.Data;
import java.math.BigDecimal;
/**
* 分公司股份信息
*/
@Data
public class BranchCompanyStockInfoRightVo {
Integer id;
Integer companyId;
String companyName;
Integer balance;
Integer rank;
Integer total;
BigDecimal price;
Integer addrProvince;
Integer addrCity;
Integer state;
String companyPic;
String info;
}
package com.xxfc.platform.vehicle.pojo.vo;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/8/22 20:03
*/
@Data
public class BranchCompanyStockRightForWeChatOfficeVO {
private Integer id;
private String companyName;
private Integer balance;
private Integer total;
private BigDecimal price;
private String cover;
private Integer type;
}
package com.xxfc.platform.vehicle.pojo.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/8/23 12:18
*/
@Data
public class CompanyBaseVo {
/**
* 分公司名称
*/
@ApiModelProperty("分公司名称")
private String name;
/**
* 公司封面
*/
@ApiModelProperty("公司封面")
private String cover;
/**
* 轮播图
*/
@ApiModelProperty("轮播图")
private String images;
@ApiModelProperty("公司简介")
private String describes;
@ApiModelProperty("详情")
private String content;
@ApiModelProperty("地址-省/直辖市")
private String provinceName;
@ApiModelProperty("地址-市")
private String cityName;
@ApiModelProperty("地址-镇/县")
private String townName;
@ApiModelProperty("具体地址")
private String address;
}
package com.xxfc.platform.vehicle.pojo.vo;
import com.github.wxiaoqi.security.common.vo.PageParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* 分公司信息
*/
@Data
public class CompanyVo extends PageParam {
/**
* 公司基本信息表
*/
@ApiModelProperty("公司基本信息id")
Integer id;
@ApiModelProperty("公司全名称")
String name;
@ApiModelProperty("公司封面")
String cover;
@ApiModelProperty("轮播图")
String images;
@ApiModelProperty("片区id")
Integer zoneId;
@ApiModelProperty("公司简介")
String describes;
@ApiModelProperty("详情")
String content;
@ApiModelProperty("地址-省/直辖市(编码)")
Integer addrProvince;
@ApiModelProperty("地址-省/直辖市(编码)名称")
String provinceName;
@ApiModelProperty("地址-市(编码)")
Integer addrCity;
@ApiModelProperty("地址-市(编码)名称")
String cityName;
@ApiModelProperty("地址-镇/县(编码)")
Integer addrTown;
@ApiModelProperty("地址-镇/县(编码)名称")
String townName;
/**
* 分支机构
*/
@ApiModelProperty("分支机构id")
Integer companyId;
@ApiModelProperty("分支机构名称")
String companyName;
@ApiModelProperty("详细地址")
String addrDetail;
@ApiModelProperty("上下架:1-上架;2-下架")
Integer state;
@ApiModelProperty("负责人")
private String leader;
@ApiModelProperty("负责人联系方式")
private String leaderContactInfo;
@ApiModelProperty("公司状态")
private Integer status;
@ApiModelProperty("公司地址-纬度")
private BigDecimal latitude;
@ApiModelProperty("公司地址-经度")
private BigDecimal longitude;
@ApiModelProperty("租车客服电话")
private String vehiceServicePhone;
@ApiModelProperty("旅游客服电话")
private String tourServicePhone;
/**
* 股权信息
*/
@ApiModelProperty("股份id")
Integer stockId;
@ApiModelProperty("剩余股份")
Integer balance;
@ApiModelProperty("股份总数")
Integer total;
@ApiModelProperty("股份单价")
BigDecimal price;
@ApiModelProperty("排序")
Integer rank;
@ApiModelProperty("(-1:下架,0:筹备中,1:筹备完成,2:上架)")
Integer stockState;
@ApiModelProperty("股价类型:1-万/股;2-港万/股")
Integer type;
}
......@@ -21,7 +21,10 @@ 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.dto.BranchCompanyFindDTO;
import com.xxfc.platform.vehicle.pojo.dto.BranchCompanyListDTO;
import com.xxfc.platform.vehicle.pojo.vo.BranComanyLeaderVo;
import com.xxfc.platform.vehicle.pojo.vo.BranchCompanyListVO;
import com.xxfc.platform.vehicle.util.excel.ExcelImport;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
......@@ -369,4 +372,26 @@ public class BranchCompanyBiz extends BaseBiz<BranchCompanyMapper, BranchCompany
return branComanyLeaderVo;
}));
}
public PageDataVO<BranchCompanyListVO> findBranchCompanyWithPage(BranchCompanyFindDTO branchCompanyFindDTO) {
PageDataVO<BranchCompanyListVO> pageDataVO = new PageDataVO<>();
PageDataVO<BranchCompanyListDTO> dataVO = PageDataVO.pageInfo(branchCompanyFindDTO.getPage(), branchCompanyFindDTO.getLimit(), () -> mapper.findBranchCompanys(branchCompanyFindDTO.getAddrProvince(), branchCompanyFindDTO.getAddrCity()));
List<BranchCompanyListDTO> data = dataVO.getData();
if (CollectionUtils.isEmpty(data)){
return pageDataVO;
}
List<BranchCompanyListVO> branchCompanyListVOS = new ArrayList<>();
BranchCompanyListVO branchCompanyListVO;
for (BranchCompanyListDTO companyListDTO : data) {
branchCompanyListVO = new BranchCompanyListVO();
BeanUtils.copyProperties(companyListDTO,branchCompanyListVO);
branchCompanyListVOS.add(branchCompanyListVO);
}
pageDataVO.setData(branchCompanyListVOS);
pageDataVO.setPageSize(dataVO.getPageSize());
pageDataVO.setPageNum(dataVO.getPageNum());
pageDataVO.setTotalPage(dataVO.getTotalPage());
pageDataVO.setTotalCount(dataVO.getTotalCount());
return pageDataVO;
}
}
package com.xxfc.platform.vehicle.biz;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.xxfc.platform.vehicle.constant.BranchCompanyStockApplyState;
import com.xxfc.platform.vehicle.constant.ResCode.ResCode;
import com.xxfc.platform.vehicle.entity.BranchCompanyStockApplyInfo;
import com.xxfc.platform.vehicle.entity.BranchCompanyStockRight;
import com.xxfc.platform.vehicle.mapper.BranchCompanyStockApplyInfoMapper;
import com.xxfc.platform.vehicle.pojo.BranchCompanyStockApplyInfoVo;
import com.xxfc.platform.vehicle.pojo.BranchCompanyStockApplyVo;
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.Date;
@Service
public class BranchCompanyStockApplyInfoBiz extends BaseBiz<BranchCompanyStockApplyInfoMapper, BranchCompanyStockApplyInfo> {
@Autowired
BranchCompanyStockRightBiz branchCompanyStockRightBiz;
/**
* 申请购买
* @param applyVo
*/
public void apply(BranchCompanyStockApplyVo applyVo) {
BranchCompanyStockRight stockInfo = branchCompanyStockRightBiz.selectByCompanyId(applyVo.getCompanyId());
if (stockInfo == null) {
throw new BaseException(ResCode.BRANCH_COMPANY_STOCK_UNEXIST.getDesc(), ResCode.BRANCH_COMPANY_STOCK_UNEXIST.getCode());
}
if (stockInfo.getBalance() <= 0) {
throw new BaseException(ResCode.BRANCH_COMPANY_STOCK_NO_BALANCE.getDesc(), ResCode.BRANCH_COMPANY_STOCK_NO_BALANCE.getCode());
}
if (stockInfo.getBalance() < applyVo.getCount()) {
throw new BaseException(ResCode.BRANCH_COMPANY_STOCK_BALANCE_NOT_ENOUGH.getDesc(), ResCode.BRANCH_COMPANY_STOCK_BALANCE_NOT_ENOUGH.getCode());
}
BranchCompanyStockApplyInfo applyInfo = new BranchCompanyStockApplyInfo();
BeanUtils.copyProperties(applyVo, applyInfo);
applyInfo.setState(BranchCompanyStockApplyState.Apply.getCode());
applyInfo.setCreateTime(new Date());
mapper.insertSelective(applyInfo);
}
public PageInfo<BranchCompanyStockApplyInfoVo> selectApplyAll(Integer page, Integer limit) {
PageHelper.startPage(page, limit);
return new PageInfo<>(mapper.selectVoAll());
}
/**
* 取消申请,修改申请状态
* @param applyId
*/
public void cancelApply(Integer applyId) {
BranchCompanyStockApplyInfo applyInfo = mapper.selectByPrimaryKey(applyId);
if (applyInfo == null) {
throw new BaseException(ResCode.BRANCH_COMPANY_STOCK_APPLY_INFO_UNEXIST.getDesc(),
ResCode.BRANCH_COMPANY_STOCK_APPLY_INFO_UNEXIST.getCode());
}
applyInfo.setState(BranchCompanyStockApplyState.Cancel.getCode());
applyInfo.setUpdateTime(new Date());
mapper.updateByPrimaryKeySelective(applyInfo);
}
/**
* 确认申请购买股权,修改库存
* @param applyId
*/
@Transactional
public void buy(Integer applyId) {
BranchCompanyStockApplyInfo applyInfo = mapper.selectByPrimaryKey(applyId);
if (applyInfo == null) {
throw new BaseException(ResCode.BRANCH_COMPANY_STOCK_APPLY_INFO_UNEXIST.getDesc(),
ResCode.BRANCH_COMPANY_STOCK_APPLY_INFO_UNEXIST.getCode());
}
if (!applyInfo.getState().equals(BranchCompanyStockApplyState.Apply.getCode())) {
throw new BaseException(ResCode.BRANCH_COMPANY_STOCK_APPLY_INFO_STATE_LOCKED.getDesc(),
ResCode.BRANCH_COMPANY_STOCK_APPLY_INFO_STATE_LOCKED.getCode());
}
BranchCompanyStockRight stockInfo = branchCompanyStockRightBiz.selectById(applyInfo.getCompanyId());
if (stockInfo == null) {
throw new BaseException(ResCode.BRANCH_COMPANY_STOCK_UNEXIST.getDesc(), ResCode.BRANCH_COMPANY_STOCK_UNEXIST.getCode());
}
if (stockInfo.getBalance() < applyInfo.getCount()) {
throw new BaseException(ResCode.BRANCH_COMPANY_STOCK_BALANCE_NOT_ENOUGH.getDesc(), ResCode.BRANCH_COMPANY_STOCK_BALANCE_NOT_ENOUGH.getCode());
}
int result = branchCompanyStockRightBiz.updateBalance(applyInfo.getCompanyId(), stockInfo.getBalance() - applyInfo.getCount(), stockInfo.getBalance());
if (result == 0) {
throw new BaseException(ResCode.BRANCH_COMPANY_STOCK_BALANCE_NOT_ENOUGH.getDesc(), ResCode.BRANCH_COMPANY_STOCK_BALANCE_NOT_ENOUGH.getCode());
}
applyInfo.setState(BranchCompanyStockApplyState.Buy.getCode());
applyInfo.setUpdateTime(new Date());
mapper.updateByPrimaryKey(applyInfo);
}
public BranchCompanyStockApplyInfo getApplyById(Integer id) {
return mapper.selectByPrimaryKey(id);
}
public void updateApply(BranchCompanyStockApplyInfo applyInfo) {
mapper.updateByPrimaryKeySelective(applyInfo);
}
public void deleteApply(Integer id) {
mapper.deleteByPrimaryKey(id);
}
}
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.util.StringToolsUtil;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.vehicle.entity.BranchCompanyStockRight;
import com.xxfc.platform.vehicle.mapper.*;
import com.xxfc.platform.vehicle.pojo.BranchCompanyStockSearchVo;
import com.xxfc.platform.vehicle.pojo.dto.BranchCompanyStockRightDTO;
import com.xxfc.platform.vehicle.pojo.dto.BranchCompanyStockRightFindDTO;
import com.xxfc.platform.vehicle.pojo.vo.BranchCompanyStockInfoRightVo;
import com.xxfc.platform.vehicle.pojo.vo.BranchCompanyStockRightForWeChatOfficeVO;
import com.xxfc.platform.vehicle.util.excel.ExcelImport;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import tk.mybatis.mapper.entity.Example;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
@Service
public class BranchCompanyStockRightBiz extends BaseBiz<BranchCompanyStockRightMapper, BranchCompanyStockRight> {
@Autowired
BranchCompanyBiz branchCompanyBiz;
@Autowired
BranchCompanyStockApplyInfoBiz branchCompanyStockApplyInfoBiz;
@Value("${branchCompanyPic.stock}")
private String companyPic;
//获取股权列表
public PageInfo<BranchCompanyStockInfoRightVo> search(BranchCompanyStockSearchVo searchVo) {
PageHelper.startPage(searchVo.getPage(), searchVo.getLimit());
return new PageInfo<>(mapper.search(searchVo));
}
//更新股权
public ObjectRestResponse updStockInfo(BranchCompanyStockInfoRightVo stockInfoVo) {
if (stockInfoVo == null || stockInfoVo.getCompanyId() == null || stockInfoVo.getCompanyId() == 0) {
}
Integer id = stockInfoVo.getId();
if (!checkInfo(id, stockInfoVo.getCompanyId())) {
return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE, "分公司已存在");
}
BranchCompanyStockRight stockInfo = new BranchCompanyStockRight();
BeanUtils.copyProperties(stockInfoVo, stockInfo);
if (stockInfo.getBalance() == null) {
stockInfo.setBalance(stockInfo.getTotal());
}
if (stockInfoVo.getState() == null) {
stockInfo.setStockState(0);
}
if (id == null || id == 0) {
mapper.insertSelective(stockInfo);
} else {
mapper.updateByPrimaryKeySelective(stockInfo);
}
return ObjectRestResponse.succ();
}
//检查是否存在分公司
public boolean checkInfo(Integer id, Integer companyId) {
Example example = new Example(BranchCompanyStockRight.class);
Example.Criteria criteria = example.createCriteria();
criteria.andEqualTo("companyId", companyId);
if (id != null && id > 0) {
criteria.andNotEqualTo("id", id);
}
List<BranchCompanyStockRight> list = mapper.selectByExample(example);
if (list.size() > 0)
return false;
return true;
}
//获取股权信息
public BranchCompanyStockInfoRightVo getInfoById(Integer id) {
return mapper.selectInfoById(id);
}
/**
* 获取所有的股权单价
*
* @return
*/
public List<Integer> getAllPrice() {
return mapper.selectAllPrice();
}
//更新股份
public int updateBalance(Integer companyId, Integer balance, Integer lastBalance) {
return mapper.updateBalance(companyId, balance, lastBalance);
}
//删除股权
public void delete(Integer id) {
BranchCompanyStockRight stockRight = new BranchCompanyStockRight();
stockRight.setId(id);
stockRight.setIsDel(1);
mapper.updateByPrimaryKeySelective(stockRight);
}
//导入
public ObjectRestResponse<String> importExcel(MultipartFile multipartfile, HttpServletRequest request) {
try {
List<String[]> readExcel = ExcelImport.getExcelData(multipartfile);
if (readExcel.size() < 4) {
return ObjectRestResponse.createFailedResult(ResultCode.NULL_CODE, "导入不能没数据!!!");
}
List<BranchCompanyStockRight> list = new ArrayList<>();
for (int i = 3; i < readExcel.size(); i++) {
BranchCompanyStockRight stockInfoVo = new BranchCompanyStockRight();
String[] str = readExcel.get(i);
String companyName = str[2];
Integer companyId = mapper.getCompanyInfo(companyName);
if (companyId == null || companyId == 0) {
return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE, "第" + (i + 1) + "行的" + companyName + "不匹配");
}
String str3 = str[3];
if (StringUtils.isBlank(str3)) {
return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE, "第" + (i + 1) + "行的股价不能为空");
}
if (str3.contains("万港币/股")) {
str3 = str3.replace("万港币/股", "");
} else {
str3 = str3.replace("万/股", "");
}
if (!StringToolsUtil.isBigDecimal(str3) || !StringToolsUtil.isNumer(str[4]) || !StringToolsUtil.isNumer(str[5])) {
return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE, "第" + (i + 1) + "行的数据格式不对");
}
BigDecimal price = new BigDecimal(str3);
price = price.multiply(new BigDecimal("10000"));
Integer balance = Integer.parseInt(str[4]);
Integer total = Integer.parseInt(str[5]) + balance;
stockInfoVo.setPrice(price);
stockInfoVo.setBalance(balance);
stockInfoVo.setTotal(total);
stockInfoVo.setStockState(2);
list.add(stockInfoVo);
}
mapper.addCompamyList(list);
} catch (Exception e) {
e.printStackTrace();
return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE, "网络异常!");
}
return ObjectRestResponse.succ();
}
public PageDataVO<BranchCompanyStockRightForWeChatOfficeVO> findWithPageByPriceOrCode(BranchCompanyStockRightFindDTO branchCompanyStockRightFindDTO) {
PageDataVO<BranchCompanyStockRightForWeChatOfficeVO> dataPage = new PageDataVO<>();
PageDataVO<BranchCompanyStockRightDTO> pageDataVO = PageDataVO.pageInfo(branchCompanyStockRightFindDTO.getPage(), branchCompanyStockRightFindDTO.getLimit(),
() -> mapper.findWithPageByPriceOrCode(branchCompanyStockRightFindDTO.getPrice(), branchCompanyStockRightFindDTO.getAddrProvince(), branchCompanyStockRightFindDTO.getAddrCity()));
List<BranchCompanyStockRightDTO> data = pageDataVO.getData();
if (CollectionUtils.isEmpty(data)){
return dataPage;
}
List<BranchCompanyStockRightForWeChatOfficeVO> stockRights = new ArrayList<>();
BranchCompanyStockRightForWeChatOfficeVO branchCompanyStockRightForWeChatOfficeVO;
for (BranchCompanyStockRightDTO branchCompanyStockRight : data) {
branchCompanyStockRightForWeChatOfficeVO= new BranchCompanyStockRightForWeChatOfficeVO();
BeanUtils.copyProperties(branchCompanyStockRight,branchCompanyStockRightForWeChatOfficeVO);
stockRights.add(branchCompanyStockRightForWeChatOfficeVO);
}
dataPage.setTotalCount(pageDataVO.getTotalCount());
dataPage.setTotalPage(pageDataVO.getTotalPage());
dataPage.setPageNum(pageDataVO.getPageNum());
dataPage.setPageSize(pageDataVO.getPageSize());
dataPage.setData(stockRights);
return dataPage;
}
public BranchCompanyStockRight selectByCompanyId(Integer companyId) {
BranchCompanyStockRight branchCompanyStockRight = new BranchCompanyStockRight();
branchCompanyStockRight.setCompanyBaseId(companyId);
branchCompanyStockRight.setIsDel(0);
BranchCompanyStockRight result = mapper.selectOne(branchCompanyStockRight);
return result;
}
}
......@@ -231,6 +231,25 @@ public class VehicleActiveService {
throw new BaseException(ResCode.VEHICLE_DEPARTURE_VEHICLE_UNDEPARTURE.getDesc(),
ResCode.VEHICLE_DEPARTURE_VEHICLE_UNDEPARTURE.getCode());
}
DateTime arrivalDate = new DateTime(vehicleBookRecord.getBookEndDate());
DateTime actualArrivalDate = new DateTime(new Date());
if(actualArrivalDate.compareTo(arrivalDate) < 0) { //实际还车时间小于预计还车时间,需要释放后面的时间
BookVehicleVO bookVehicleVo = new BookVehicleVO();
BeanUtils.copyProperties(vehicleBookRecord, bookVehicleVo);
bookVehicleVo.setNotCheckTimeLegal(Boolean.TRUE);
bookVehicleVo.setBookStartDate(null);
bookVehicleVo.setBookEndDate(null);
bookVehicleVo.setUnbookStartDate(actualArrivalDate.toString(DATE_TIME_FORMATTER));
bookVehicleVo.setUnbookEndDate(arrivalDate.toString(DATE_TIME_FORMATTER));
try {
Boolean hasSuc = vehicleBiz.unbookVehicle(bookVehicleVo);
if(!hasSuc){
throw new BaseException(ResCode.VEHICLE_UNBOOK_FAIL.getDesc(), ResCode.VEHICLE_UNBOOK_FAIL.getCode());
}
} catch ( Exception e) {
e.printStackTrace();
}
}
departureLog.setMileageEnd(arrivalVo.getMileage());
departureLog.setRecycleMan(arrivalVo.getRecycleMan());
departureLog.setRecycleManTel(arrivalVo.getRecycleManTel());
......
......@@ -538,10 +538,10 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
public boolean filterHourInfoBooked(String vehicleId, Map<String, Integer> hourInfo) {
if(MapUtils.isEmpty(hourInfo)) {
return false;
}
for(Map.Entry<String, Integer> entry : hourInfo.entrySet()) {
VehicleBookHourInfoDto vehicleBookHourInfoDto = new VehicleBookHourInfoDto();
vehicleBookHourInfoDto.setYearMonthDay(entry.getKey());
vehicleBookHourInfoDto.setVehicleId(vehicleId);
if(entry.getValue() == 0) {//0点 查询是否有已经预约的记录
Map<String, Object> param = new HashMap<>();
param.put("vehicleId", vehicleId);
......@@ -551,6 +551,9 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
return false;
}
}
VehicleBookHourInfoDto vehicleBookHourInfoDto = new VehicleBookHourInfoDto();
vehicleBookHourInfoDto.setYearMonthDay(entry.getKey());
vehicleBookHourInfoDto.setVehicleId(vehicleId);
List<VehicleBookHourInfo> vehicleBookHourInfos = vehicleBookHourInfoBiz.selectByVehicleAndDate(vehicleBookHourInfoDto);
if(vehicleBookHourInfos != null && vehicleBookHourInfos.size() > 0) {
if((vehicleBookHourInfos.get(0).getBookedHour() & entry.getValue()) != 0) { // 已经被预定
......
......@@ -9,17 +9,22 @@ import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.google.common.collect.Maps;
import com.xxfc.platform.vehicle.constant.ResCode.ResCode;
import com.xxfc.platform.vehicle.entity.VehicleBookHourInfo;
import com.xxfc.platform.vehicle.entity.VehicleBookRecord;
import com.xxfc.platform.vehicle.mapper.VehicleBookHourInfoMapper;
import com.xxfc.platform.vehicle.pojo.VehicleBookHourInfoDto;
import com.xxfc.platform.vehicle.pojo.VehicleDepartureLogVo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
......@@ -28,6 +33,11 @@ import java.util.Map;
@Service
public class VehicleBookHourInfoBiz extends BaseBiz<VehicleBookHourInfoMapper, VehicleBookHourInfo> {
@Autowired
private VehicleBookRecordBiz vehicleBookRecordBiz;
@Autowired
VehicleDepartureService vehicleDepartureService;
public static final DateTimeFormatter DEFAULT_DATE_TIME_FORMATTER = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
public static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormat.forPattern("yyyy-MM-dd");
......@@ -48,42 +58,33 @@ public class VehicleBookHourInfoBiz extends BaseBiz<VehicleBookHourInfoMapper, V
throw new BaseException(ResultCode.ONLY_BOOK_FROM_TODAY);
}
}
if (bookStartDate.compareTo(bookEndDate) > 0) {
throw new BaseException(ResultCode.END_TIME_FROM_TODAY);
}
// if (bookStartDate.compareTo(bookEndDate) >= 0) {
// throw new BaseException(ResultCode.END_TIME_FROM_TODAY);
// }
Map<String, Integer> predictableHours = Maps.newHashMap();
//预定开始小时
int hour = new DateTime(startDate).hourOfDay().get();
int endHour = new DateTime(endDate).hourOfDay().get();
//获取开始天的预定小时
int startPredictableHour = 0;
if(hour > 0 ) {
for (int curentHour = hour; curentHour <= 24; curentHour++) {
startPredictableHour |= 1 << (curentHour - 1);
for (int curentHour = hour; curentHour <= 23; curentHour++) {
startPredictableHour |= 1 << (curentHour);
}
}
//获取结束天的预定小时
int endPredictableHour = 0;
if(endHour > 0) {
for (int curentHour = 0; curentHour < endHour; curentHour++) {
for (int curentHour = 0; curentHour <= endHour; curentHour++) {
endPredictableHour |= 1 << (curentHour);
}
}
DateTime startDay = DateTime.parse(DateTime.parse(bookStartDate, DEFAULT_DATE_TIME_FORMATTER).toString(DATE_TIME_FORMATTER), DATE_TIME_FORMATTER);
DateTime endDay = DateTime.parse(DateTime.parse(bookEndDate, DEFAULT_DATE_TIME_FORMATTER).toString(DATE_TIME_FORMATTER), DATE_TIME_FORMATTER);
if(startPredictableHour == 0) { //如果是0点就直接预订全天
startPredictableHour = 16777215;
}
if(DateTime.parse(bookStartDate, DEFAULT_DATE_TIME_FORMATTER).toString(DATE_TIME_FORMATTER).equals(DateTime.parse(bookEndDate, DEFAULT_DATE_TIME_FORMATTER).toString(DATE_TIME_FORMATTER))) {//同一天预定
//如果开始时间是0点开始
if(startPredictableHour == 0 || endPredictableHour == 0) {
predictableHours.put(DateTime.parse(bookStartDate, DEFAULT_DATE_TIME_FORMATTER).toString(DATE_TIME_FORMATTER), startPredictableHour | endPredictableHour);
} else {
predictableHours.put(DateTime.parse(bookStartDate, DEFAULT_DATE_TIME_FORMATTER).toString(DATE_TIME_FORMATTER), startPredictableHour & endPredictableHour);
}
} else { //非同一天开始
if(startPredictableHour == 0) { //如果是0点就直接预订全天
startPredictableHour = 16777215;
}
predictableHours.put(DateTime.parse(bookStartDate, DEFAULT_DATE_TIME_FORMATTER).toString(DATE_TIME_FORMATTER), startPredictableHour);
predictableHours.put(DateTime.parse(bookEndDate, DEFAULT_DATE_TIME_FORMATTER).toString(DATE_TIME_FORMATTER), endPredictableHour);
}
......@@ -155,10 +156,63 @@ public class VehicleBookHourInfoBiz extends BaseBiz<VehicleBookHourInfoMapper, V
return ObjectRestResponse.succ();
}
public static void main(String[] args) throws Exception{
Integer a = 7936 & 2047;
System.out.println(a);
public ObjectRestResponse checkBookHourInfo() {
List<VehicleBookHourInfoDto> vehicleBookHourInfos = new ArrayList<>();
List<VehicleBookRecord> list = vehicleBookRecordBiz.selectListAll();
if(CollectionUtils.isNotEmpty(list)) {
for(VehicleBookRecord vehicleBookRecord : list) {
VehicleDepartureLogVo vehicleDepartureLog = vehicleDepartureService.getByRecordId(vehicleBookRecord.getId());
if((vehicleDepartureLog == null || vehicleDepartureLog.getState() != 1) && (vehicleBookRecord.getStatus() == 2 || vehicleBookRecord.getStatus() == 1)) { //未出车或未还车
Map<String, Integer> map = getPredictableHours(new DateTime(vehicleBookRecord.getBookStartDate()).toString(DEFAULT_DATE_TIME_FORMATTER), new DateTime(vehicleBookRecord.getBookEndDate()).toString(DEFAULT_DATE_TIME_FORMATTER), Boolean.TRUE);
for(Map.Entry<String, Integer> entry : map.entrySet()) {
VehicleBookHourInfoDto vehicleBookHourInfoDto = new VehicleBookHourInfoDto();
vehicleBookHourInfoDto.setVehicleId(vehicleBookRecord.getVehicleId());
vehicleBookHourInfoDto.setYearMonthDay(entry.getKey());
vehicleBookHourInfoDto.setBookedHour(entry.getValue());
save(vehicleBookHourInfoDto);
vehicleBookHourInfos.add(vehicleBookHourInfoDto);
// vehicleBookHourInfoDto.setVehicleId(vehicleBookRecord.getVehicleId());
// vehicleBookHourInfoDto.setYearMonthDay(entry.getKey());
// List<VehicleBookHourInfo> vehicleBookHourInfoList = mapper.selectByVehicleAndDate(vehicleBookHourInfoDto);
// log.info("获取到的小时信息: vehicleBookHourInfoList = {}", vehicleBookHourInfoList);
// if(CollectionUtils.isNotEmpty(vehicleBookHourInfoList)) {
// if(entry.getValue() == 0){ //0点
// vehicleBookHourInfoList.get(0).setBookedHour(vehicleBookHourInfoList.get(0).getBookedHour() | 1);
// updateSelectiveByIdRe(vehicleBookHourInfoList.get(0));
// } else {
// if((vehicleBookHourInfoList.get(0).getBookedHour() & entry.getValue()) == entry.getValue()) {
// log.info("已经预订时间正确,右移一位,原数据为:{}, 修改后的数据为: {}", vehicleBookHourInfoList.get(0).getBookedHour(), vehicleBookHourInfoList.get(0).getBookedHour() >> 1);
// vehicleBookHourInfoList.get(0).setBookedHour(vehicleBookHourInfoList.get(0).getBookedHour() >> 1);
// updateSelectiveByIdRe(vehicleBookHourInfoList.get(0));
// } else {
// vehicleBookHourInfos.add(vehicleBookRecord);
// }
// }
// } else { //如果数据不存在就补充进去
// VehicleBookHourInfoDto vehicleBookHourInfoDto1 = new VehicleBookHourInfoDto();
// vehicleBookHourInfoDto1.setVehicleId(vehicleBookRecord.getVehicleId());
// vehicleBookHourInfoDto1.setYearMonthDay(entry.getKey());
// vehicleBookHourInfoDto1.setBookedHour(entry.getValue());
// vehicleBookHourInfoDto1.setBookRecordId(vehicleBookRecord.getId());
// save(vehicleBookHourInfoDto1);
// }
}
}
}
}
return ObjectRestResponse.succ(vehicleBookHourInfos);
}
// public static void main(String[] args) throws Exception{
// VehicleBookHourInfoBiz vehicleBookHourInfoBiz = new VehicleBookHourInfoBiz();
// Map<String, Integer> map = vehicleBookHourInfoBiz.getPredictableHours("2019-08-26 10:00:00", "2019-08-27 10:00:00", Boolean.TRUE);
// for(Map.Entry<String, Integer> entry : map.entrySet()) {
// System.out.println(entry.getKey());
// System.out.println(entry.getValue());
// }
// Integer a = 7936 & 2047;
// System.out.println(a);
// }
}
package com.xxfc.platform.vehicle.mapper;
import com.xxfc.platform.vehicle.entity.BranchCompany;
import com.xxfc.platform.vehicle.pojo.dto.BranchCompanyListDTO;
import com.xxfc.platform.vehicle.pojo.vo.BranchCompanyListVO;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.additional.idlist.SelectByIdListMapper;
import tk.mybatis.mapper.common.Mapper;
......@@ -13,4 +15,6 @@ public interface BranchCompanyMapper extends Mapper<BranchCompany>, SelectByIdLi
List<BranchCompany> selectByZoneId(Map<String, Object> param);
List<Integer> findCompanyIdsByAreaId(@Param("areaId") Integer areaId);
List<BranchCompanyListDTO > findBranchCompanys(@Param("provinceCode") Integer provinceCode,@Param("cityCode") Integer cityCode);
}
\ No newline at end of file
package com.xxfc.platform.vehicle.mapper;
import com.xxfc.platform.vehicle.entity.BranchCompanyStockRight;
import com.xxfc.platform.vehicle.pojo.BranchCompanyStockSearchVo;
import com.xxfc.platform.vehicle.pojo.dto.BranchCompanyStockRightDTO;
import com.xxfc.platform.vehicle.pojo.vo.BranchCompanyStockInfoRightVo;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;
import java.math.BigDecimal;
import java.util.List;
public interface BranchCompanyStockRightMapper extends Mapper<BranchCompanyStockRight> {
//获取股权列表
List<BranchCompanyStockInfoRightVo> search(BranchCompanyStockSearchVo searchVo);
//获取股价列表
List<Integer> selectAllPrice();
//获取一条记录
BranchCompanyStockInfoRightVo selectInfoById(@Param("id")Integer id);
//修改股权
int updateBalance(@Param("companyId") Integer companyId, @Param("balance") Integer balance, @Param("lastBalance") Integer lastBalance);
//批量添加
int addCompamyList(@Param("list") List<BranchCompanyStockRight> list);
Integer getCompanyInfo(@Param("name")String name);
List<BranchCompanyStockRightDTO> findWithPageByPriceOrCode(@Param("price") BigDecimal price, @Param("provinceCode") Integer provinceCode, @Param("cityCode") Integer cityCode);
}
\ No newline at end of file
package com.xxfc.platform.vehicle.mapper;
import com.xxfc.platform.vehicle.entity.CompanyBase;
import com.xxfc.platform.vehicle.pojo.dto.CompanyBaseDetailDTO;
import com.xxfc.platform.vehicle.pojo.vo.CompanyVo;
import org.apache.ibatis.annotations.*;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
public interface CompanyBaseMapper extends Mapper<CompanyBase> {
@Select("SELECT cb.name,cb.cover,cb.images,cb.describes,cb.content,cb.province_name AS `provinceName`,cb.city_name AS `cityName`,cb.town_name AS `townName`,bc.addr_detail AS `address` FROM (SELECT * FROM `company_base` WHERE `id`=#{id}) AS `cb` LEFT JOIN `branch_company` AS `bc` ON bc.company_base_id = cb.id;")
/* @Results(value = {
@Result(property = "name",column = "name"),
@Result(property = "cover",column = "cover"),
@Result(property = "cover",column = "cover"),
@Result(property = "provinceName",column = "addr_province"),
@Result(property = "cityName",column = "addr_city"),
@Result(property = "townName",column = "addr_town")
})*/
@ResultType(value = CompanyBaseDetailDTO.class)
CompanyBaseDetailDTO findCompanyBaseById(@Param("id") Integer id);
List<CompanyBase> getList(CompanyVo companyVo);
}
\ No newline at end of file
......@@ -17,4 +17,7 @@ public interface SysRegionMapper extends Mapper<SysRegion> {
public Integer getNumber(@Param("name") String name);
//获取地区的编号
public Integer getNumberV2(@Param("name") String name, @Param("type") Integer type);
//获取地区的编号
public String getName(@Param("code") Integer code);
}
......@@ -19,7 +19,9 @@ import com.xxfc.platform.vehicle.pojo.BranchCompanyVo;
import com.xxfc.platform.vehicle.pojo.CompanyDetail;
import com.xxfc.platform.vehicle.pojo.CompanySearchDTO;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.vehicle.pojo.dto.BranchCompanyFindDTO;
import com.xxfc.platform.vehicle.pojo.vo.BranComanyLeaderVo;
import com.xxfc.platform.vehicle.pojo.vo.BranchCompanyListVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
......@@ -198,4 +200,10 @@ public class BranchCompanyController extends BaseController<BranchCompanyBiz> {
Map<Integer, BranComanyLeaderVo> findCompanyLeaderMapByIds(@RequestParam("companyIds") List<Integer> companyIds){
return baseBiz.findCompanyLeaderMapByIds(companyIds);
}
@PostMapping("/app/unauth/companys")
public ObjectRestResponse<PageDataVO<BranchCompanyListVO>> findBranchCompanyWithPage(@RequestBody BranchCompanyFindDTO branchCompanyFindDTO){
PageDataVO<BranchCompanyListVO> pageDataVO = baseBiz.findBranchCompanyWithPage(branchCompanyFindDTO);
return ObjectRestResponse.succ(pageDataVO);
}
}
package com.xxfc.platform.vehicle.rest;
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.util.process.ResultCode;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.vehicle.biz.BranchCompanyStockApplyInfoBiz;
import com.xxfc.platform.vehicle.biz.BranchCompanyStockRightBiz;
import com.xxfc.platform.vehicle.common.BaseController;
import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.constant.ResCode.ResCode;
import com.xxfc.platform.vehicle.entity.BranchCompanyStockApplyInfo;
import com.xxfc.platform.vehicle.pojo.BranchCompanyStockApplyVo;
import com.xxfc.platform.vehicle.pojo.BranchCompanyStockSearchVo;
import com.xxfc.platform.vehicle.pojo.dto.BranchCompanyStockRightFindDTO;
import com.xxfc.platform.vehicle.pojo.vo.BranchCompanyStockInfoRightVo;
import com.xxfc.platform.vehicle.pojo.vo.BranchCompanyStockRightForWeChatOfficeVO;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.util.List;
@RestController
@IgnoreClientToken
@IgnoreUserToken
@RequestMapping("branchCompany/stock/right")
public class BranchCompanyStockRightController extends BaseController<BranchCompanyStockRightBiz> {
@Autowired
BranchCompanyStockApplyInfoBiz branchCompanyStockApplyInfoBiz;
/**
* 搜索
* @param searchVo
* @return
*/
@ApiOperation(value = "获取股权列表")
@GetMapping("search")
public RestResponse search(BranchCompanyStockSearchVo searchVo) {
if (searchVo.getPage() == null || searchVo.getLimit() == null) {
searchVo.setPage(1);
searchVo.setLimit(10);
}
return RestResponse.suc(baseBiz.search(searchVo));
}
@ApiOperation(value = "获取股权信息")
@GetMapping("info/{id}")
public RestResponse getInfo(@PathVariable("id") Integer id) {
if (id == null) {
return RestResponse.codeAndMessage(ResCode.INVALID_REST_REQ_PARAM.getCode(),
ResCode.INVALID_REST_REQ_PARAM.getDesc());
}
return RestResponse.suc(baseBiz.getInfoById(id));
}
/**
* 编辑
* @return
*/
@RequestMapping(value ="/updStockInfo",method = RequestMethod.POST)
public ObjectRestResponse updStockInfo(@RequestBody BranchCompanyStockInfoRightVo stockInfoVo) {
if (stockInfoVo==null||stockInfoVo.getCompanyId()==null||stockInfoVo.getCompanyId()==0 || stockInfoVo.getTotal() == null || stockInfoVo.getPrice() == null) {
return ObjectRestResponse.createFailedResult(ResultCode.NULL_CODE,"参数不能为空");
}
return baseBiz.updStockInfo(stockInfoVo);
}
/**
* 新增
* @return
*/
@RequestMapping(value ="/addStockInfo",method = RequestMethod.POST)
public ObjectRestResponse addStockInfo(@RequestBody BranchCompanyStockInfoRightVo stockInfoVo) {
if (stockInfoVo==null||stockInfoVo.getCompanyId()==null||stockInfoVo.getCompanyId()==0|| stockInfoVo.getTotal() == null || stockInfoVo.getPrice() == null) {
return ObjectRestResponse.createFailedResult(ResultCode.NULL_CODE,"参数不能为空");
}
return baseBiz.updStockInfo(stockInfoVo);
}
/**
* 删除
* @param id
* @return
*/
@DeleteMapping("{id}")
public ObjectRestResponse delete(@PathVariable("id") Integer id) {
baseBiz.delete(id);
return ObjectRestResponse.succ();
}
/**
* 申请购买
* @param applyVo
* @return
*/
@PostMapping("/app/unauth/apply")
public RestResponse apply(@RequestBody BranchCompanyStockApplyVo applyVo) {
if (applyVo.getCompanyId() == null || applyVo.getName() == null || applyVo.getTel() == null || applyVo.getCount() == null) {
return RestResponse.codeAndMessage(ResCode.INVALID_REST_REQ_PARAM.getCode(),
ResCode.INVALID_REST_REQ_PARAM.getDesc());
}
branchCompanyStockApplyInfoBiz.apply(applyVo);
return RestResponse.suc();
}
@GetMapping("apply/page")
public RestResponse applyPage(Integer page, Integer limit) {
if (page == null || limit == null) {
page = 1;
limit = 10;
}
return RestResponse.suc(branchCompanyStockApplyInfoBiz.selectApplyAll(page, limit));
}
@GetMapping("apply/{id}")
public RestResponse getApplyById(@PathVariable("id") Integer id) {
if (id == null) {
return RestResponse.codeAndMessage(ResCode.INVALID_REST_REQ_PARAM.getCode(),
ResCode.INVALID_REST_REQ_PARAM.getDesc());
}
return RestResponse.suc(branchCompanyStockApplyInfoBiz.getApplyById(id));
}
@PutMapping("apply")
public RestResponse updateApply(BranchCompanyStockApplyInfo applyInfo) {
if (applyInfo.getId() == null) {
return RestResponse.codeAndMessage(ResCode.INVALID_REST_REQ_PARAM.getCode(),
ResCode.INVALID_REST_REQ_PARAM.getDesc());
}
branchCompanyStockApplyInfoBiz.updateApply(applyInfo);
return RestResponse.suc();
}
@DeleteMapping("apply/{id}")
public RestResponse deleteApply(@PathVariable("id") Integer id) {
if (id == null) {
return RestResponse.codeAndMessage(ResCode.INVALID_REST_REQ_PARAM.getCode(),
ResCode.INVALID_REST_REQ_PARAM.getDesc());
}
branchCompanyStockApplyInfoBiz.deleteApply(id);
return RestResponse.suc();
}
/**
* 取消申请,放弃购买
* @return
*/
@PostMapping("apply/cancel")
public RestResponse cancel(Integer applyId) {
if (applyId == null) {
return RestResponse.codeAndMessage(ResCode.INVALID_REST_REQ_PARAM.getCode(),
ResCode.INVALID_REST_REQ_PARAM.getDesc());
}
branchCompanyStockApplyInfoBiz.cancelApply(applyId);
return RestResponse.suc();
}
/**
* 确认购买,减库存
*/
@PostMapping("apply/buy")
public RestResponse buy(Integer applyId) {
if (applyId == null) {
return RestResponse.codeAndMessage(ResCode.INVALID_REST_REQ_PARAM.getCode(),
ResCode.INVALID_REST_REQ_PARAM.getDesc());
}
branchCompanyStockApplyInfoBiz.buy(applyId);
return RestResponse.suc();
}
@GetMapping("allPrice")
public RestResponse getAllPrice() {
return RestResponse.suc(baseBiz.getAllPrice());
}
/**
* 导入
* @param multipartfile
* @param request
* @return
*/
@PostMapping("importExcel")
public ObjectRestResponse<String> importExcel(@RequestParam(value = "file") MultipartFile multipartfile,
HttpServletRequest request) {
return baseBiz.importExcel(multipartfile,request);
}
@GetMapping("/app/unauth/stock_right_price")
public ObjectRestResponse<List<Integer>> getStorkRightPrices(){
List<Integer> allPrice = baseBiz.getAllPrice();
return ObjectRestResponse.succ(allPrice);
}
/**
* 微信公众号查询
* @param branchCompanyStockRightFindDTO
* @return
*/
@PostMapping("/app/unauth/webchat_office/stockrights")
public ObjectRestResponse<PageDataVO<BranchCompanyStockRightForWeChatOfficeVO>> findBranchCompanyStockRightsForWechatOffice(@RequestBody BranchCompanyStockRightFindDTO branchCompanyStockRightFindDTO){
PageDataVO<BranchCompanyStockRightForWeChatOfficeVO> branchCompanyStockRightForWeChatOfficeVOPageDataVO = baseBiz.findWithPageByPriceOrCode(branchCompanyStockRightFindDTO);
return ObjectRestResponse.succ(branchCompanyStockRightForWeChatOfficeVOPageDataVO);
}
}
package com.xxfc.platform.vehicle.rest;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xxfc.platform.vehicle.biz.CompanyBaseBiz;
import com.xxfc.platform.vehicle.pojo.vo.CompanyBaseVo;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/8/23 12:16
*/
@RestController("companyBaseApp")
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
@RequestMapping("/company_base")
public class CompanyBaseController {
private final CompanyBaseBiz companyBaseBiz;
@GetMapping("/app/unauth/detail/{id}")
public ObjectRestResponse<CompanyBaseVo> findCompanyDetailById(@PathVariable(value = "id") Integer id){
CompanyBaseVo companyBaseVo = companyBaseBiz.findCompanyDetailById(id);
return ObjectRestResponse.succ(companyBaseVo);
}
}
......@@ -72,6 +72,9 @@ public class VehicleController extends BaseController<VehicleBiz> implements Use
@Autowired
BranchCompanyBiz branchCompanyBiz;
@Autowired
VehicleBookHourInfoBiz vehicleBookHourInfoBiz;
public UserFeign getUserFeign() {
return userFeign;
}
......@@ -209,7 +212,7 @@ public class VehicleController extends BaseController<VehicleBiz> implements Use
Integer operatorId = Integer.parseInt(BaseContextHandler.getUserID());
String userName = BaseContextHandler.getName();
bookVehicleVo.setStatus(VehicleBookRecordStatus.APPROVE.getCode());
bookVehicleVo.setNotCheckTimeLegal(Boolean.TRUE);
bookVehicleVo.setNotCheckTimeLegal(Boolean.FALSE);
baseBiz.applyVehicle(operatorId, bookVehicleVo, userName);
return RestResponse.suc();
}
......@@ -506,4 +509,11 @@ public class VehicleController extends BaseController<VehicleBiz> implements Use
public ObjectRestResponse checkHourInfo() {
return vehicleBookRecordBiz.checkDateInvalide();
}
@GetMapping("/app/unauth/checkBookHourInfo")
@IgnoreClientToken
@IgnoreUserToken
public ObjectRestResponse checkBookHourInfo() {
return vehicleBookHourInfoBiz.checkBookHourInfo();
}
}
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.xxfc.platform.vehicle.biz.CompanyBaseBiz;
import com.xxfc.platform.vehicle.common.BaseController;
import com.xxfc.platform.vehicle.pojo.vo.CompanyVo;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
@RestController
@IgnoreClientToken
@IgnoreUserToken
@RequestMapping("company/base")
public class CompanyController extends BaseController<CompanyBaseBiz> {
@ApiOperation("同步分公司信息")
@PostMapping("synchro")
public ObjectRestResponse<String> synchro() {
return baseBiz.synchro();
}
@ApiOperation("同步分公司地址")
@PostMapping("synchro2")
public ObjectRestResponse<String> synchro2() {
return baseBiz.synchro2();
}
@ApiOperation("查询公司列表")
@RequestMapping(value = "/list", method = RequestMethod.GET)
public ObjectRestResponse getList(CompanyVo companyVo){
return baseBiz.getList(companyVo);
}
@ApiOperation("设置基础信息")
@RequestMapping(value = "/updCompany", method = RequestMethod.POST)
public ObjectRestResponse updCompany(@RequestBody CompanyVo companyVo){
return baseBiz.updCompany(companyVo);
}
@ApiOperation("添加分公司")
@RequestMapping(value = "/addCompany", method = RequestMethod.POST)
public ObjectRestResponse addCompany(@RequestBody CompanyVo companyVo){
return baseBiz.updCompany(companyVo);
}
@ApiOperation("获取详情")
@RequestMapping(value = "/getCompanyDetail", method = RequestMethod.GET)
public ObjectRestResponse getCompanyDetail(CompanyVo companyVo){
return baseBiz.getCompanyDetail(companyVo);
}
@ApiOperation("设置股权信息")
@RequestMapping(value = "/updStockInfo", method = RequestMethod.POST)
public ObjectRestResponse updStockInfo(CompanyVo companyVo){
return baseBiz.updStockInfo(companyVo);
}
@ApiOperation("设置详情")
@RequestMapping(value = "/updCompanyDetail", method = RequestMethod.POST)
public ObjectRestResponse updCompanyDetail(CompanyVo companyVo){
return baseBiz.updCompanyDetail(companyVo);
}
@ApiOperation("删除")
@RequestMapping(value = "/del", method = RequestMethod.POST)
public ObjectRestResponse del(@RequestParam(value = "id",defaultValue = "0") Integer id){
return baseBiz.delCompany(id);
}
/**
* 导入
* @param multipartfile
* @param request
* @return
*/
@PostMapping("app/unauth/importExcel")
public ObjectRestResponse importExcel(@RequestParam(value = "file") MultipartFile multipartfile,
HttpServletRequest request) {
return baseBiz.importExcel(multipartfile,request);
}
}
......@@ -23,7 +23,7 @@ spring:
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848,10.1.37.166:8848
server-addr: 127.0.0.1:8848
#共用配置,暂定一个
shared-dataids: common-dev.yaml,mongodb-log-dev.yaml
......
<?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.BranchCompanyMapper" >
<resultMap id="BaseResultMap" type="com.xxfc.platform.vehicle.entity.BranchCompany" >
<!--
WARNING - @mbg.generated
-->
<id column="id" property="id" jdbcType="INTEGER" />
<result column="name" property="name" 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" />
<result column="addr_city" property="addrCity" jdbcType="INTEGER" />
<result column="addr_town" property="addrTown" jdbcType="INTEGER" />
<result column="addr_detail" property="addrDetail" jdbcType="VARCHAR" />
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
<result column="vehice_service_phone" property="vehiceServicePhone"/>
<result column="tour_service_phone" property="tourServicePhone"/>
<result column="longitude" property="longitude"/>
<result column="latitude" property="latitude"/>
<result column="zone_id" property="zoneId"/>
</resultMap>
<mapper namespace="com.xxfc.platform.vehicle.mapper.BranchCompanyMapper">
<resultMap id="BaseResultMap" type="com.xxfc.platform.vehicle.entity.BranchCompany">
<!--
WARNING - @mbg.generated
-->
<id column="id" property="id" jdbcType="INTEGER"/>
<result column="name" property="name" 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"/>
<result column="addr_city" property="addrCity" jdbcType="INTEGER"/>
<result column="addr_town" property="addrTown" jdbcType="INTEGER"/>
<result column="addr_detail" property="addrDetail" jdbcType="VARCHAR"/>
<result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
<result column="vehice_service_phone" property="vehiceServicePhone"/>
<result column="tour_service_phone" property="tourServicePhone"/>
<result column="longitude" property="longitude"/>
<result column="latitude" property="latitude"/>
<result column="zone_id" property="zoneId"/>
</resultMap>
<select id="search" resultType="com.xxfc.platform.vehicle.pojo.CompanySearchVO">
select *
<select id="search" resultType="com.xxfc.platform.vehicle.pojo.CompanySearchVO">
select *
<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(longitude, latitude)) as distance
</if>
from branch_company
from branch_company
<where>
<if test="addrCity != null">
and addr_city = #{addrCity}
......@@ -39,18 +39,44 @@
<if test="lon != null and lat != null">
order by distance asc
</if>
</select>
<select id="selectByZoneId" parameterType="java.util.Map" resultType="com.xxfc.platform.vehicle.entity.BranchCompany">
</select>
<select id="selectByZoneId" parameterType="java.util.Map"
resultType="com.xxfc.platform.vehicle.entity.BranchCompany">
select * from branch_company
where zone_id = #{zoneId}
<if test="ids != null and ids.size > 0">
and id in
and id in
<foreach collection="ids" item="id" open="(" separator="," close=")">
#{id}
#{id}
</foreach>
</if>
</select>
<select id="findCompanyIdsByAreaId" resultType="integer">
<select id="findCompanyIdsByAreaId" resultType="integer">
select `id` from `branch_company` where `zone_id`=#{areaId}
</select>
<select id="findBranchCompanys" resultType="com.xxfc.platform.vehicle.pojo.dto.BranchCompanyListDTO">
SELECT
cb.id AS `comnpanyBaseId`,
cb.province_name AS `provinceName`,
cb.city_name AS `cityName`,
cb.town_name AS `townName`,
bc.addr_detail AS `address`,
bc.NAME AS `name`,
cb.cover,
bc.leader,
bc.leader_contact_info AS `leaderContactInfo`,
bc.longitude,
bc.latitude
FROM
(SELECT * FROM `branch_company` WHERE `is_del`=0) AS `bc`
INNER JOIN (SELECT * FROM `company_base` WHERE `is_del`=0
<if test="provinceCode != null">
AND `addr_province`=#{provinceCode}
</if>
<if test="cityCode != null">
AND `addr_city`=#{cityCode}
</if>
) AS `cb` ON cb.id = bc.company_base_id
</select>
</mapper>
\ No newline at end of file
......@@ -17,7 +17,7 @@
<select id="selectVoAll" resultType="com.xxfc.platform.vehicle.pojo.BranchCompanyStockApplyInfoVo">
select a.*, b.company_name
from branch_company_stock_apply_info a
left join branch_company_stock_info b on a.company_id = b.id
left join `company_base` b on a.company_id = b.id
order by a.create_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.BranchCompanyStockRightMapper">
<update id="updateBalance">
update branch_company_stock_info_right
set balance = #{balance}
where id = #{companyId} and balance = #{lastBalance}
</update>
<select id="search" resultType="com.xxfc.platform.vehicle.pojo.vo.BranchCompanyStockInfoRightVo">
SELECT
distinct r.company_id as companyId,
r.id,
r.balance,
r.company_pic as companyPic,
r.info,
r.price,
r.rank,
r.total,
r.stock_state,
c.addr_city AS addrCity,
c.addr_province AS addrProvince,
c.`name` AS companyName
FROM
branch_company_stock_info_right r
LEFT JOIN branch_company c ON r.company_id = c.id
<trim prefix="where" suffixOverrides="and">
c.is_del = 0 and
<if test="companyName != null">
c.name like CONCAT('%',#{companyName},'%')
</if>
<if test="addrProvince != null">
c.addr_province = #{addrProvince} and
</if>
<if test="addrCity != null">
c.addr_city = #{addrCity} and
</if>
<if test="priceStart">
r.price >= #{priceStart} and
</if>
<if test="priceEnd">
r.price &lt;= #{priceEnd} and
</if>
</trim>
order by rank DESC,price DESC
</select>
<select id="selectAllPrice" resultType="integer">
SELECT DISTINCT
`price`
FROM
( SELECT `price` / 10000 AS `price` FROM branch_company_stock_info_right WHERE is_del = 0 ) AS `bcsir` ORDER BY price DESC
</select>
<select id="selectInfoById" resultType="com.xxfc.platform.vehicle.pojo.vo.BranchCompanyStockInfoRightVo">
SELECT
distinct r.company_id as companyId,
r.id,
r.balance,
r.company_pic as companyPic,
r.info,
r.price,
r.rank,
r.total,
r.stock_state,
c.addr_city AS addrCity,
c.addr_province AS addrProvince,
c.`name` AS companyName
FROM
branch_company_stock_info_right r
LEFT JOIN branch_company c ON r.company_id = c.id
where c.is_del = 0 and r.id=#{id} and r.is_del=0
</select>
<select id="getCompanyInfo" resultType="Integer">
SELECT id FROM branch_company WHERE `name`=#{name} and is_del=0 limit 1
</select>
<insert id="addCompamyList" parameterType="java.util.List">
insert into branch_company_stock_info_right (
company_id,balance,total,price,stock_state,company_pic,crt_time,upd_time
) VALUES
<foreach collection="list" item="item" index="index" separator=",">
(#{item.companyId},#{item.balance},#{item.total},#{item.price},#{item.stockState}
,#{item.companyPic},#{item.crtTime},#{item.updTime})
</foreach>
</insert>
<select id="findWithPageByPriceOrCode"
resultType="com.xxfc.platform.vehicle.pojo.dto.BranchCompanyStockRightDTO">
SELECT
cb.id,
bcsir.balance,
bcsir.total,
bcsir.type,
bcsir.price/10000 as `price`,
cb.cover,
cb.name as `companyName`
FROM
( SELECT id, company_base_id, balance, total, price, type FROM `branch_company_stock_info_right` WHERE
`stock_state` =
2 AND `is_del`=0
<if test="price != null">
AND `price`=#{price}*10000
</if>
) AS `bcsir`
INNER JOIN ( SELECT id, `name`, cover FROM `company_base` WHERE 1=1
<if test="provinceCode != null">
AND `addr_province`=#{provinceCode}
</if>
<if test="cityCode != null">
AND `addr_city`=#{cityCode}
</if>
) AS `cb` ON cb.id = bcsir.company_base_id order by bcsir.price 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.CompanyBaseMapper" >
<select id="getList" parameterType="com.xxfc.platform.vehicle.pojo.vo.CompanyVo" resultType="com.xxfc.platform.vehicle.pojo.vo.CompanyVo">
SELECT
c.id as companyId,
c.`name` as companyName,
c.addr_detail as addrDetail,
c.state,
c.status,
c.leader,
c.leader_contact_info as leaderContactInfo,
c.latitude,
c.longitude,
c.vehice_service_phone as vehiceServicePhone,
c.tour_service_phone as tourServicePhone,
c.zone_id as zoneId,
c.addr_province as addrProvince,
c.province_name as provinceName,
c.addr_city as addrCity,
c.city_name as cityName,
c.addr_town as addrTown,
c.town_name as townName,
b.cover,
b.id,
b.`name`,
r.id as stockId,
r.balance,
r.rank,
r.stock_state as stockState,
r.total,
r.type,
r.price
FROM branch_company c
LEFT JOIN company_base b ON c.company_base_id=b.id
LEFT JOIN branch_company_stock_info_right r ON c.company_base_id=r.company_base_id
<where>
b.is_del=0
<if test="zoneId != null and zoneId !='' ">
and c.zone_id = #{zoneId}
</if>
<if test="addrProvince != null and addrProvince != ''">
and c.addr_province =#{addrProvince}
</if>
<if test="addrCity != null and addrCity != ''">
and c.addr_city =#{addrCity}
</if>
<if test="name != null and name != ''">
and b.`name` like CONCAT('%',#{name},'%')
</if>
</where>
order by c.id desc
</select>
</mapper>
\ No newline at end of file
......@@ -18,6 +18,10 @@
<select id="getNumber" resultType="Integer">
select `id` from sys_region where name like CONCAT('%',#{name},'%') limit 1
</select>
<select id="getName" resultType="String">
select `name` from sys_region where id=#{code}
</select>
<select id="getNumberV2" resultType="Integer">
select `id` from sys_region where name like CONCAT('%',#{name},'%') and type=#{type} limit 1
</select>
......
......@@ -344,7 +344,7 @@
</select>
<select id="selectByNumberPlate" resultType="com.xxfc.platform.vehicle.entity.Vehicle">
select * from vehicle
where number_plate = #{numberPlate} and is_del=0
where number_plate = #{numberPlate} and is_del=0
</select>
<select id="selectById" resultMap="searchModel">
......
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