Commit 7b5d654d authored by hanfeng's avatar hanfeng

Merge branch 'base-modify' of http://10.5.52.3/youjj/cloud-platform into base-modify

parents d422d9d6 1a3bc9ac
package com.xxfc.platform.app.biz; package com.xxfc.platform.app.biz;
import com.github.wxiaoqi.security.common.util.EntityUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.xxfc.platform.app.entity.Cofig; import com.xxfc.platform.app.entity.Cofig;
...@@ -22,4 +23,14 @@ public class CofigBiz extends BaseBiz<CofigMapper,Cofig> { ...@@ -22,4 +23,14 @@ public class CofigBiz extends BaseBiz<CofigMapper,Cofig> {
return mapper.getAllByType(list); return mapper.getAllByType(list);
} }
/**
* 修改配置
* @param cofig
* @return
*/
public int updateConfig(Cofig cofig) {
EntityUtils.setUpdatedInfo(cofig);
return mapper.updateConfig(cofig);
}
} }
\ No newline at end of file
...@@ -2,6 +2,7 @@ package com.xxfc.platform.app.mapper; ...@@ -2,6 +2,7 @@ package com.xxfc.platform.app.mapper;
import com.xxfc.platform.app.entity.Cofig; import com.xxfc.platform.app.entity.Cofig;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;
import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.Mapper;
import java.util.List; import java.util.List;
...@@ -15,5 +16,12 @@ import java.util.List; ...@@ -15,5 +16,12 @@ import java.util.List;
public interface CofigMapper extends Mapper<Cofig> { public interface CofigMapper extends Mapper<Cofig> {
public List<Cofig> getAllByType(@Param("typeList")List<Integer> list); public List<Cofig> getAllByType(@Param("typeList")List<Integer> list);
/**
* 更新配置
* @param cofig
* @return
*/
@Update("update config set `title`=#{title},`value`=#{value}`,`type`=#{type},`upd_time`=#{updTime} where `id`=#{id}")
int updateConfig(Cofig cofig);
} }
package com.xxfc.platform.app.rest.admin; package com.xxfc.platform.app.rest.admin;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController; import com.github.wxiaoqi.security.common.rest.BaseController;
import com.xxfc.platform.app.biz.CofigBiz; import com.xxfc.platform.app.biz.CofigBiz;
import com.xxfc.platform.app.entity.Cofig; import com.xxfc.platform.app.entity.Cofig;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
/** /**
...@@ -18,4 +20,17 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -18,4 +20,17 @@ import org.springframework.web.bind.annotation.RestController;
public class CofigAdminController extends BaseController<CofigBiz,Cofig> { public class CofigAdminController extends BaseController<CofigBiz,Cofig> {
/**
* 修改通用配置
* @param cofig
* @return
*/
@Override
public ObjectRestResponse<Cofig> update(@RequestBody Cofig cofig) {
int rows = getBaseBiz().updateConfig(cofig);
if (rows>0){
return ObjectRestResponse.succ();
}
return ObjectRestResponse.createDefaultFail();
}
} }
\ No newline at end of file
package com.xxfc.platform.tour.dto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* @author libin
* @version 1.0
* @description 标签和banner DTO
* @data 2019/6/12 13:53
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class TourTagAndBannerDTO {
/**
* 旅游标签
*/
private TourTagDTO tourTagDTO;
/**
* 标签对应的banner
*/
private List<TourTagBannerDTO> tourTagBannerDTOS;
}
package com.xxfc.platform.tour.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author libin
* @version 1.0
* @description banner
* @data 2019/6/12 13:50
*/
@Data
public class TourTagBannerDTO {
/**
* 首页banner图主键
*/
@ApiModelProperty("首页banner图主键")
private Long id;
/**
* 标签id
*/
@ApiModelProperty(value = "标签id")
private Integer tagId;
/**
* 标题
*/
@ApiModelProperty(value = "标题")
private String title;
/**
* 封面
*/
@ApiModelProperty(value = "封面")
private String cover;
/**
* 创建人
*/
@ApiModelProperty(value = "创建人")
private String crtName;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间", hidden = true )
private Long crtTime;
/**
* 更新人
*/
@ApiModelProperty(value = "更新人")
private String updName;
/**
* 修改时间
*/
@ApiModelProperty(value = "修改时间", hidden = true )
private Long updTime;
/**
* 跳转链接
*/
@ApiModelProperty(value = "跳转链接")
private String url;
/**
* 是否删除,0否,1是
*/
@ApiModelProperty(value = "是否删除,0否,1是")
private Integer isDel;
}
package com.xxfc.platform.tour.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
/**
* @author libin
* @version 1.0
* @description 旅游标签DTO
* @data 2019/6/12 13:35
*/
@Data
public class TourTagDTO {
/**
* 主键id
*/
@ApiModelProperty("主键id")
private Integer id;
/**
* 名称
*/
@ApiModelProperty(value = "名称")
private String name;
/**
* 图片
*/
@ApiModelProperty(value = "图片")
private String img;
/**
* 描述
*/
@ApiModelProperty(value = "描述")
private String describe;
/**
* 链接
*/
@ApiModelProperty(value = "链接")
private String link;
/**
* 是否热门:0-否;1-是
*/
@ApiModelProperty(value = "是否热门:0-否;1-是")
private Integer isHot;
/**
* 成单量
*/
@ApiModelProperty(value = "成单量")
private Integer count;
/**
* 排序
*/
@ApiModelProperty(value = "排序")
private Integer rank;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间")
private Long ctrTime;
/**
* 更新时间
*/
@ApiModelProperty(value = "更新时间", hidden = true )
private Long updTime;
/**
* 是否删除:0-正常;1-删除
*/
@ApiModelProperty(value = "是否删除:0-正常;1-删除")
private Integer isDel;
@ApiModelProperty(value = "banner数量")
private int bannerNums;
}
...@@ -4,7 +4,10 @@ import java.io.Serializable; ...@@ -4,7 +4,10 @@ import java.io.Serializable;
import java.util.Date; import java.util.Date;
import javax.persistence.*; import javax.persistence.*;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
/** /**
...@@ -16,62 +19,88 @@ import lombok.Data; ...@@ -16,62 +19,88 @@ import lombok.Data;
*/ */
@Data @Data
@Table(name = "tour_banner") @Table(name = "tour_banner")
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class TourBanner implements Serializable { public class TourBanner implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
//首页banner图主键 /**
* 首页banner图主键
*/
@Id @Id
@GeneratedValue(generator = "JDBC") @GeneratedValue(generator = "JDBC")
@ApiModelProperty("首页banner图主键") @ApiModelProperty("首页banner图主键")
private Long id; private Long id;
//标题 /**
@Column(name = "title") * 标题
*/
@Column(name = "title")
@ApiModelProperty(value = "标题") @ApiModelProperty(value = "标题")
private String title; private String title;
//封面 /**
@Column(name = "cover") * 封面
*/
@Column(name = "cover")
@ApiModelProperty(value = "封面") @ApiModelProperty(value = "封面")
private String cover; private String cover;
//创建人 /**
@Column(name = "crt_name") * 创建人
*/
@Column(name = "crt_name")
@ApiModelProperty(value = "创建人") @ApiModelProperty(value = "创建人")
private String crtName; private String crtName;
//创建时间 /**
@Column(name = "crt_time") * 创建时间
*/
@Column(name = "crt_time")
@ApiModelProperty(value = "创建时间", hidden = true ) @ApiModelProperty(value = "创建时间", hidden = true )
private Long crtTime; private Long crtTime;
//更新人 /**
@Column(name = "upd_name") * 更新人
*/
@Column(name = "upd_name")
@ApiModelProperty(value = "更新人") @ApiModelProperty(value = "更新人")
private String updName; private String updName;
//修改时间 /**
@Column(name = "upd_time") * 修改时间
*/
@Column(name = "upd_time")
@ApiModelProperty(value = "修改时间", hidden = true ) @ApiModelProperty(value = "修改时间", hidden = true )
private Long updTime; private Long updTime;
//跳转链接 /**
@Column(name = "url") * 跳转链接
*/
@Column(name = "url")
@ApiModelProperty(value = "跳转链接") @ApiModelProperty(value = "跳转链接")
private String url; private String url;
//是否删除,0否,1是 /**
@Column(name = "is_del") * 是否删除,0否,1是
*/
@Column(name = "is_del")
@ApiModelProperty(value = "是否删除,0否,1是") @ApiModelProperty(value = "是否删除,0否,1是")
private Integer isDel; private Integer isDel;
/**
* 排序
*/
@Column(name = "rank") @Column(name = "rank")
@ApiModelProperty(value = "排序") @ApiModelProperty(value = "排序")
private Integer rank; private Integer rank;
/**
*'类型:0-app首页,1-app旅游页;2-租车',
*/
@Column(name = "type") @Column(name = "type")
@ApiModelProperty(value = "类型") @ApiModelProperty(value = "banner类型")
private Integer type; private Integer type;
} }
package com.xxfc.platform.tour.entity; package com.xxfc.platform.tour.entity;
import java.io.Serializable; import java.io.Serializable;
import java.util.List;
import javax.persistence.*; import javax.persistence.*;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
...@@ -103,6 +104,4 @@ public class TourTag implements Serializable { ...@@ -103,6 +104,4 @@ public class TourTag implements Serializable {
@Column(name = "is_del") @Column(name = "is_del")
@ApiModelProperty(value = "是否删除:0-正常;1-删除") @ApiModelProperty(value = "是否删除:0-正常;1-删除")
private Integer isDel; private Integer isDel;
} }
...@@ -89,6 +89,6 @@ public class TourTagBanner implements Serializable { ...@@ -89,6 +89,6 @@ public class TourTagBanner implements Serializable {
@Column(name = "is_del") @Column(name = "is_del")
@ApiModelProperty(value = "是否删除,0否,1是") @ApiModelProperty(value = "是否删除,0否,1是")
private Integer isDel; private Integer isDel;
} }
package com.xxfc.platform.tour.biz; package com.xxfc.platform.tour.biz;
import com.ace.cache.annotation.Cache;
import com.ace.cache.annotation.CacheClear; import com.ace.cache.annotation.CacheClear;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.tour.comstnt.RedisKey; import com.xxfc.platform.tour.comstnt.RedisKey;
import com.xxfc.platform.tour.mapper.TourBannerMapper; import com.xxfc.platform.tour.mapper.TourBannerMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.xxfc.platform.tour.entity.TourBanner; import com.xxfc.platform.tour.entity.TourBanner;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import java.time.Instant;
import java.util.List; import java.util.List;
/** /**
...@@ -22,30 +22,68 @@ import java.util.List; ...@@ -22,30 +22,68 @@ import java.util.List;
@Service @Service
public class TourBannerBiz extends BaseBiz<TourBannerMapper,TourBanner> { public class TourBannerBiz extends BaseBiz<TourBannerMapper,TourBanner> {
@CacheClear(key = RedisKey.CONSTANT_CODE_PREFIX_BANNER)
public void update(TourBanner banner) {
this.updateSelectiveById(banner);
}
@Autowired
private RedisTemplate redisTemplate;
// @Cache(key = RedisKey.CONSTANT_CODE_PREFIX_BANNER) @CacheClear(key = RedisKey.CONSTANT_CODE_PREFIX_BANNER)
public List<TourBanner> findBannerList(Integer type) { public void remove(int id) {
this.deleteById(id);
}
public List<TourBanner> findBannerList(Integer type) {
TourBanner banner = new TourBanner(); TourBanner banner = new TourBanner();
banner.setIsDel(0); banner.setIsDel(0);
banner.setType(type); banner.setType(type);
return mapper.findBannerListByisDelOrderByRank(banner);
return mapper.findBannerListByIsDelOrderByRank(banner);
} }
/**
* 更改banner信息
* @param banner
* @param userInfo
* @return
*/
public int update(TourBanner banner, AppUserDTO userInfo) {
banner.setUpdName(userInfo.getRealname()==null?userInfo.getNickname():userInfo.getRealname());
banner.setUpdTime(Instant.now().toEpochMilli());
return mapper.updateByPrimaryKeySelective(banner);
}
@CacheClear(key = RedisKey.CONSTANT_CODE_PREFIX_BANNER) /**
public void update(TourBanner banner) { * 分页查询banner
this.updateSelectiveById(banner); * @param pageNo
* @param pageSize
* @return
*/
public PageDataVO<TourBanner> findBannePage(Integer pageNo, Integer pageSize) {
return PageDataVO.pageInfo(pageNo, pageSize, () -> mapper.findBannerListByisDelOrderByRank(TourBanner.builder().isDel(0).build()));
} }
@CacheClear(key = RedisKey.CONSTANT_CODE_PREFIX_BANNER) /**
public void remove(int id) { * 保存banner
this.deleteById(id); * @param banner
* @param userInfo
* @return
*/
public int save(TourBanner banner, AppUserDTO userInfo) {
banner.setCrtName(userInfo.getRealname()==null?userInfo.getNickname():userInfo.getRealname());
banner.setCrtTime(Instant.now().toEpochMilli());
return mapper.insert(banner);
} }
/**
* 逻辑删除
* @param id
* @param status
* @param userInfo
* @return
*/
public int updateBannerStatus(Integer id, int status, AppUserDTO userInfo) {
String crtName = userInfo.getRealname() == null ? userInfo.getNickname() : userInfo.getRealname();
return mapper.updateByPrimaryKeySelective(TourBanner.builder().id(Long.valueOf(id)).isDel(status).updName(crtName).updTime(Instant.now().toEpochMilli()).build());
}
} }
\ No newline at end of file
package com.xxfc.platform.tour.biz; package com.xxfc.platform.tour.biz;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
import com.github.wxiaoqi.security.common.util.EntityUtils;
import com.github.wxiaoqi.security.common.vo.PageDataVO; import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.tour.dto.TourTagBannerDTO;
import com.xxfc.platform.tour.mapper.TourTagBannerMapper; import com.xxfc.platform.tour.mapper.TourTagBannerMapper;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.xxfc.platform.tour.entity.TourTagBanner; import com.xxfc.platform.tour.entity.TourTagBanner;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import org.springframework.transaction.annotation.Transactional;
import java.time.Instant;
import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
...@@ -46,8 +53,74 @@ public class TourTagBannerBiz extends BaseBiz<TourTagBannerMapper,TourTagBanner> ...@@ -46,8 +53,74 @@ public class TourTagBannerBiz extends BaseBiz<TourTagBannerMapper,TourTagBanner>
* @param status * @param status
* @return * @return
*/ */
@Transactional(rollbackFor = Exception.class)
public int updateTourTagBannerStatusById(int id, int status) { public int updateTourTagBannerStatusById(int id, int status) {
return mapper.updateTourTagBannerStatusById(id,status); return mapper.updateTourTagBannerStatusById(id,status);
} }
/**
* 保存标签轮播图
* @param tourTagBannerDTO
* @return
*/
@Transactional(rollbackFor = Exception.class)
public int save(TourTagBannerDTO tourTagBannerDTO, AppUserDTO appUserDTO) {
TourTagBanner tourTagBanner = new TourTagBanner();
BeanUtils.copyProperties(tourTagBannerDTO,tourTagBanner);
//设置相关信息
tourTagBanner.setCrtTime(Instant.now().toEpochMilli());
tourTagBanner.setCrtName(appUserDTO.getRealname()==null?appUserDTO.getNickname():appUserDTO.getRealname());
return mapper.insert(tourTagBanner);
}
/**
* 根据标签id查询
* @param tagId
* @return
*/
public List<TourTagBannerDTO> findTourTagBannersByTagId(Integer tagId) {
List<TourTagBanner> tourTagBanners = mapper.findByTagId(tagId);
List<TourTagBannerDTO> tourTagBannerDTOS = new ArrayList<>(tourTagBanners.size());
for (TourTagBanner tourTagBanner : tourTagBanners) {
TourTagBannerDTO tourTagBannerDTO = new TourTagBannerDTO();
BeanUtils.copyProperties(tourTagBanner,tourTagBannerDTO);
tourTagBannerDTOS.add(tourTagBannerDTO);
}
return tourTagBannerDTOS;
}
/**
*根据标签id更改banner状态
* @param tagId
* @param status
* @return
*/
@Transactional(rollbackFor = Exception.class)
public int updateTourTagBannerStatusByTagId(Integer tagId, int status) {
return mapper.updateTourTagBannerStatusByTagId(tagId,status,Instant.now().toEpochMilli());
}
/**
* 批量更新banner信息
* @param tourTagBannerDTOS
*/
@Transactional(rollbackFor = Exception.class)
public void updateTourBannerByBatch(List<TourTagBannerDTO> tourTagBannerDTOS,AppUserDTO appUserDTO) {
tourTagBannerDTOS.stream().peek(tourTagBannerDTO -> EntityUtils.setUpdatedInfo(tourTagBannerDTO)).forEach(tourTagBannerDTO -> {
updateTourBanner(tourTagBannerDTO,appUserDTO);
});
}
/**
* 更改banner信息
* @param tourTagBannerDTO
* @return
*/
@Transactional(rollbackFor = Exception.class)
public int updateTourBanner(TourTagBannerDTO tourTagBannerDTO,AppUserDTO appUserDTO){
tourTagBannerDTO.setUpdName(appUserDTO.getRealname()==null?appUserDTO.getNickname():appUserDTO.getRealname());
tourTagBannerDTO.setUpdTime(Instant.now().toEpochMilli());
return mapper.updateTourTagBanner(tourTagBannerDTO);
}
} }
\ No newline at end of file
package com.xxfc.platform.tour.biz; package com.xxfc.platform.tour.biz;
import com.ace.cache.annotation.CacheClear; import com.ace.cache.annotation.CacheClear;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
import com.github.wxiaoqi.security.common.vo.PageDataVO; import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.tour.comstnt.RedisKey; import com.xxfc.platform.tour.comstnt.RedisKey;
import com.xxfc.platform.tour.dto.TourTagAndBannerDTO;
import com.xxfc.platform.tour.dto.TourTagBannerDTO;
import com.xxfc.platform.tour.dto.TourTagDTO;
import com.xxfc.platform.tour.mapper.TourTagMapper; import com.xxfc.platform.tour.mapper.TourTagMapper;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.xxfc.platform.tour.entity.TourTag; import com.xxfc.platform.tour.entity.TourTag;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import org.springframework.transaction.annotation.Transactional;
import java.time.Instant; import java.time.Instant;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -24,6 +32,9 @@ import java.util.Map; ...@@ -24,6 +32,9 @@ import java.util.Map;
public class TourTagBiz extends BaseBiz<TourTagMapper,TourTag> { public class TourTagBiz extends BaseBiz<TourTagMapper,TourTag> {
@Autowired
private TourTagBannerBiz tourTagBannerBiz;
// @Cache(key = RedisKey.CONSTANT_CODE_PREFIX_HOTTAG) // @Cache(key = RedisKey.CONSTANT_CODE_PREFIX_HOTTAG)
public List<TourTag> getHotTag() { public List<TourTag> getHotTag() {
...@@ -59,28 +70,73 @@ public class TourTagBiz extends BaseBiz<TourTagMapper,TourTag> { ...@@ -59,28 +70,73 @@ public class TourTagBiz extends BaseBiz<TourTagMapper,TourTag> {
* @param pageSize 分页大小 * @param pageSize 分页大小
* @return * @return
*/ */
public PageDataVO<TourTag> findTourTagWithPage(Integer pageNo, Integer pageSize) { public PageDataVO<TourTagAndBannerDTO> findTourTagWithPage(Integer pageNo, Integer pageSize) {
return PageDataVO.pageInfo(pageNo, pageSize, () -> mapper.findAllByIsDel(TourTag.builder().isDel(0).build())); //根据分页条件查询出旅游标签的信息
PageDataVO<TourTag> pageDataVO = PageDataVO.pageInfo(pageNo, pageSize, () -> mapper.findAllByIsDel(TourTag.builder().isDel(0).build()));
List<TourTag> tourTags = pageDataVO.getData();
List<TourTagAndBannerDTO> tourTagAndBannerDTOS = new ArrayList<>();
tourTags.forEach(tourTag -> {
//vo转换
TourTagDTO tourTagDTO = new TourTagDTO();
BeanUtils.copyProperties(tourTag,tourTagDTO);
//根据旅游标签id查询出标签banner相关信息
List<TourTagBannerDTO> tagBannerDTOS = tourTagBannerBiz.findTourTagBannersByTagId(tourTag.getId());
//banner 数量
tourTagDTO.setBannerNums(tagBannerDTOS.size());
tourTagAndBannerDTOS.add(TourTagAndBannerDTO.builder().tourTagDTO(tourTagDTO).tourTagBannerDTOS(tagBannerDTOS).build());
});
//组装数据
PageDataVO<TourTagAndBannerDTO> tourTagAndBannerDTOPageDataVO = new PageDataVO<>();
tourTagAndBannerDTOPageDataVO.setData(tourTagAndBannerDTOS);
tourTagAndBannerDTOPageDataVO.setPageNum(pageDataVO.getPageNum());
tourTagAndBannerDTOPageDataVO.setPageSize(pageDataVO.getPageSize());
tourTagAndBannerDTOPageDataVO.setTotalCount(pageDataVO.getTotalCount());
tourTagAndBannerDTOPageDataVO.setTotalPage(pageDataVO.getTotalPage());
return tourTagAndBannerDTOPageDataVO;
} }
/** /**
* 根据主键id查询 旅游标签 * 根据主键id查询 旅游标签
* @param id * @param tagId
* @return * @return
*/ */
public TourTag findTourTagById(Integer id){ public TourTagAndBannerDTO findTourTagById(Integer tagId){
return mapper.findById(id); //根据旅游标签id查询出标签信息
TourTag tourTag = mapper.findById(tagId);
TourTagDTO tourTagDTO = new TourTagDTO();
BeanUtils.copyProperties(tourTag,tourTagDTO);
//根据旅游标签id查询出标签对应的轮播图信息
List<TourTagBannerDTO> tourTagBannerDTOS = tourTagBannerBiz.findTourTagBannersByTagId(tagId);
TourTagAndBannerDTO tourTagAndBannerDTO = new TourTagAndBannerDTO();
//组装数据
tourTagAndBannerDTO.setTourTagDTO(tourTagDTO);
tourTagAndBannerDTO.setTourTagBannerDTOS(tourTagBannerDTOS);
return tourTagAndBannerDTO;
} }
/** /**
* 保存旅游标签 * 保存旅游标签
* @param tourTag * @param tourTagAndBannerDTO
* @return * @return
*/ */
public int saveTourTag(TourTag tourTag) { @Transactional(rollbackFor = Exception.class)
tourTag.setCtrTime(Instant.now().toEpochMilli()); public int saveTourTag(TourTagAndBannerDTO tourTagAndBannerDTO, AppUserDTO appUserDTO) {
tourTag.setUpdTime(Instant.now().toEpochMilli()); TourTagDTO tourTagDTO = tourTagAndBannerDTO.getTourTagDTO();
return mapper.save(tourTag); List<TourTagBannerDTO> tourTagBannerDTOS = tourTagAndBannerDTO.getTourTagBannerDTOS();
//设置标签创建的相关信息
tourTagDTO.setCtrTime(Instant.now().toEpochMilli());
//保存标签
int effectRows = mapper.save(tourTagDTO);
if (effectRows==0){
return effectRows;
}
//保存标签轮播图
tourTagBannerDTOS.forEach(tourTagBannerDTO -> {
tourTagBannerDTO.setTagId(tourTagDTO.getId());
tourTagBannerBiz.save(tourTagBannerDTO,appUserDTO);
});
return effectRows;
} }
/** /**
...@@ -89,8 +145,35 @@ public class TourTagBiz extends BaseBiz<TourTagMapper,TourTag> { ...@@ -89,8 +145,35 @@ public class TourTagBiz extends BaseBiz<TourTagMapper,TourTag> {
* @param status * @param status
* @return * @return
*/ */
@Transactional(rollbackFor = Exception.class)
public int updateTourTagStateById(Integer id,int status) { public int updateTourTagStateById(Integer id,int status) {
//更改标签状态
int effecttagRows = mapper.updateTourTagStatusById(id, status);
if (effecttagRows ==0){
return effecttagRows;
}
//更改标签对应的轮播图状态
int effectRowsw = tourTagBannerBiz.updateTourTagBannerStatusByTagId(id,status);
return effecttagRows;
}
return mapper.updateTourTagStatusById(id,status); /**
*更改旅游标签信息
* @param tourTagAndBannerDTO
* @return
*/
@Transactional(rollbackFor = Exception.class)
public int updateTourTag(TourTagAndBannerDTO tourTagAndBannerDTO,AppUserDTO appUserDTO) {
TourTagDTO tourTagDTO = tourTagAndBannerDTO.getTourTagDTO();
//修改旅游标签信息
tourTagDTO.setUpdTime(Instant.now().toEpochMilli());
int effrows = mapper.updateTourTag(tourTagDTO);
if (effrows==0){
return effrows;
}
//修改标签的相关轮播图
List<TourTagBannerDTO> tourTagBannerDTOS = tourTagAndBannerDTO.getTourTagBannerDTOS();
tourTagBannerBiz.updateTourBannerByBatch(tourTagBannerDTOS,appUserDTO);
return effrows;
} }
} }
\ No newline at end of file
...@@ -22,6 +22,7 @@ public class TourBaseController<Biz extends BaseBiz> extends CommonBaseControlle ...@@ -22,6 +22,7 @@ public class TourBaseController<Biz extends BaseBiz> extends CommonBaseControlle
public AppUserDTO getUserInfo(){ public AppUserDTO getUserInfo(){
return userFeign.userDetailByToken(userAuthConfig.getToken(request)).getData(); return userFeign.userDetailByToken(userAuthConfig.getToken(request)).getData();
} }
public Biz getBaseBiz() {
return baseBiz;
}
} }
...@@ -2,6 +2,7 @@ package com.xxfc.platform.tour.mapper; ...@@ -2,6 +2,7 @@ package com.xxfc.platform.tour.mapper;
import com.xxfc.platform.tour.entity.TourBanner; import com.xxfc.platform.tour.entity.TourBanner;
import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.Mapper;
...@@ -17,6 +18,7 @@ import java.util.List; ...@@ -17,6 +18,7 @@ import java.util.List;
@Repository @Repository
public interface TourBannerMapper extends Mapper<TourBanner> { public interface TourBannerMapper extends Mapper<TourBanner> {
@Select("select * from tour_banner where is_del=${isDel} and type=${type} order by rank ASC") @Select("select * from tour_banner where is_del=#{isDel} order by rank ASC")
List<TourBanner> findBannerListByIsDelOrderByRank(TourBanner banner); List<TourBanner> findBannerListByisDelOrderByRank(TourBanner banner);
} }
package com.xxfc.platform.tour.mapper; package com.xxfc.platform.tour.mapper;
import com.xxfc.platform.tour.dto.TourTagBannerDTO;
import com.xxfc.platform.tour.entity.TourTagBanner; import com.xxfc.platform.tour.entity.TourTagBanner;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Select;
...@@ -33,4 +34,28 @@ public interface TourTagBannerMapper extends Mapper<TourTagBanner> { ...@@ -33,4 +34,28 @@ public interface TourTagBannerMapper extends Mapper<TourTagBanner> {
@Update("update tour_tag_banner set `is_del`=#{status} where `id`=#{id}") @Update("update tour_tag_banner set `is_del`=#{status} where `id`=#{id}")
int updateTourTagBannerStatusById(@Param("id") int id, @Param("status") int status); int updateTourTagBannerStatusById(@Param("id") int id, @Param("status") int status);
/**
* 根据标签id查询
* @param tagId
* @return
*/
@Select("select * from tour_tag_banner where `tag_id`=#{tagId}")
List<TourTagBanner> findByTagId(@Param("tagId") Integer tagId);
/**
* 根据标签id更新banner状态
* @param tagId
* @param status
* @return
*/
@Update("update tour_tag_banner set `is_del`=#{status},`upd_time`=#{updTime} where `tag_id`=#{tagId}")
int updateTourTagBannerStatusByTagId(@Param("tagId") Integer tagId, @Param("status") int status,@Param("updTime") Long updTime);
/**
* 更改banner信息
* @param tourTagBannerDTO
* @return
*/
@Update("update tour_tag_banner set `title`=#{title},`cover`=#{cover},`upd_time`=#{updTime},`upd_name`=#{updName},`url`=#{url},`is_del`=#{isDel} where `id`=#{id}")
int updateTourTagBanner(TourTagBannerDTO tourTagBannerDTO);
} }
package com.xxfc.platform.tour.mapper; package com.xxfc.platform.tour.mapper;
import com.xxfc.platform.tour.dto.TourTagDTO;
import com.xxfc.platform.tour.entity.TourTag; import com.xxfc.platform.tour.entity.TourTag;
import org.apache.ibatis.annotations.*; import org.apache.ibatis.annotations.*;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
...@@ -37,9 +38,7 @@ public interface TourTagMapper extends Mapper<TourTag> { ...@@ -37,9 +38,7 @@ public interface TourTagMapper extends Mapper<TourTag> {
* @param tourTag * @param tourTag
* @return * @return
*/ */
@Insert("insert tour_tag(`name`,`img`,`describe`,`link`,`is_hot`,`count`,`rank`,`ctr_time`,`upd_time`,`is_del`)" + int save(TourTagDTO tourTag);
"values(#{name},#{img},#{describe},#{link},#{isHot},#{count},#{rank},#{ctrTime},#{updTime},#{isDel})")
int save(TourTag tourTag);
/** /**
* 更新旅游标签的 删除状态 * 更新旅游标签的 删除状态
...@@ -49,4 +48,8 @@ public interface TourTagMapper extends Mapper<TourTag> { ...@@ -49,4 +48,8 @@ public interface TourTagMapper extends Mapper<TourTag> {
*/ */
@Update("update tour_tag set `is_del`=#{status} where `id`=#{id}") @Update("update tour_tag set `is_del`=#{status} where `id`=#{id}")
int updateTourTagStatusById(@Param("id") Integer id, @Param("status") int status); int updateTourTagStatusById(@Param("id") Integer id, @Param("status") int status);
@Update("update tour_tag set `name`=#{name},`img`=#{img},`describe`=#{describe},`link`=#{link}" +
",`rank`=#{rank},`upd_time`=#{updTime} where `id`=#{id}")
int updateTourTag(TourTagDTO tourTagDTO);
} }
package com.xxfc.platform.tour.rest.admin;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.tour.biz.TourBannerBiz;
import com.xxfc.platform.tour.common.TourBaseController;
import com.xxfc.platform.tour.entity.TourBanner;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
/**
* @author libin
* @version 1.0
* @description banner 图
* @data 2019/6/12 21:15
*/
@RestController
@RequestMapping("/admin/tourBanner")
@Api(value = "banner后台接口")
public class TourBannerAdminController extends TourBaseController<TourBannerBiz> {
/**
* 修改
* @param banner
* @return
*/
@PutMapping
@ApiOperation(value = "banner修改",notes = "修改")
public ObjectRestResponse<TourBanner> update(@RequestBody TourBanner banner){
int effectRows = getBaseBiz().update(banner,getUserInfo());
if (effectRows>0){
return ObjectRestResponse.succ();
}
return ObjectRestResponse.createDefaultFail();
}
/**
* 根据id查询banner
* @param id
* @return
*/
@GetMapping("/{id}")
@ApiOperation(value = "根据id查询banner图",notes = "根据id查询banner图")
public ObjectRestResponse<TourBanner> findTourBannerById(@PathVariable Integer id){
TourBanner tourBanner = getBaseBiz().selectById(id);
return ObjectRestResponse.succ(tourBanner);
}
/**
* 分布查询banner
* @param pageNo
* @param pageSize
* @return
*/
@GetMapping("/page")
@ApiOperation(value = "banner分页查询",notes = "banner分页查询")
@ApiImplicitParams(value = {
@ApiImplicitParam(name = "pageNo",paramType = "query",required = false,dataType = "integer",defaultValue = "0"),
@ApiImplicitParam(name = "pageSize",paramType = "query",required = false,dataType = "integer",defaultValue = "10")
})
public ObjectRestResponse<PageDataVO> findTourBannerPage(@RequestParam(name = "pageNo",defaultValue = "0",required = false) Integer pageNo,
@RequestParam(name = "pageSize",defaultValue = "10",required = false) Integer pageSize){
PageDataVO<TourBanner> pageDataVO = getBaseBiz().findBannePage(pageNo,pageSize);
return ObjectRestResponse.succ(pageDataVO);
}
/**
* 保存banner
* @param banner
* @return
*/
@ApiOperation(value = "banner保存",notes = "banner保存")
@PostMapping
public ObjectRestResponse<Void> saveTourBanner(@RequestBody TourBanner banner){
int effectRows = getBaseBiz().save(banner,getUserInfo());
if (effectRows>0){
return ObjectRestResponse.succ();
}
return ObjectRestResponse.createDefaultFail();
}
/**
* 逻辑删除
* @param id
* @return
*/
@DeleteMapping("/{id}")
@ApiOperation(value = "banner逻辑删除",notes = "banner逻辑删除")
public ObjectRestResponse<Void> deleteBannerById(@PathVariable Integer id){
int effectRows = getBaseBiz().updateBannerStatus(id,1,getUserInfo());
if (effectRows>0){
return ObjectRestResponse.succ();
}
return ObjectRestResponse.createDefaultFail();
}
}
\ No newline at end of file
package com.xxfc.platform.tour.rest.admin; package com.xxfc.platform.tour.rest.admin;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController;
import com.github.wxiaoqi.security.common.vo.PageDataVO; import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.tour.biz.TourTagBiz; import com.xxfc.platform.tour.biz.TourTagBiz;
import com.xxfc.platform.tour.common.TourBaseController;
import com.xxfc.platform.tour.dto.TourTagAndBannerDTO;
import com.xxfc.platform.tour.entity.TourTag; import com.xxfc.platform.tour.entity.TourTag;
import io.swagger.annotations.Api; import io.swagger.annotations.*;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiResponse;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
...@@ -21,8 +19,7 @@ import org.springframework.web.bind.annotation.*; ...@@ -21,8 +19,7 @@ import org.springframework.web.bind.annotation.*;
@RestController @RestController
@RequestMapping("/admin/tourTag") @RequestMapping("/admin/tourTag")
@Api(value = "后台*旅游标签") @Api(value = "后台*旅游标签")
public class TourTagAdminController extends BaseController<TourTagBiz, TourTag> { public class TourTagAdminController extends TourBaseController<TourTagBiz> {
/** /**
* 分页查询标签 * 分页查询标签
* *
...@@ -34,11 +31,12 @@ public class TourTagAdminController extends BaseController<TourTagBiz, TourTag> ...@@ -34,11 +31,12 @@ public class TourTagAdminController extends BaseController<TourTagBiz, TourTag>
@ApiImplicitParam(name = "pageNo",paramType = "query",dataType = "integer",defaultValue = "0"), @ApiImplicitParam(name = "pageNo",paramType = "query",dataType = "integer",defaultValue = "0"),
@ApiImplicitParam(name = "pageSize",paramType = "query",dataType = "integer",defaultValue = "10") @ApiImplicitParam(name = "pageSize",paramType = "query",dataType = "integer",defaultValue = "10")
}) })
@ApiOperation(value = "旅游标签分页查询")
@ApiResponse(code = 200,message = "Success") @ApiResponse(code = 200,message = "Success")
@GetMapping("/pages") @GetMapping("/pages")
public ObjectRestResponse<PageDataVO> findTourTageWithPage(@RequestParam(name = "pageNoe", defaultValue = "0",required = false) Integer pageNo, public ObjectRestResponse<PageDataVO> findTourTageWithPage(@RequestParam(name = "pageNoe", defaultValue = "0",required = false) Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10",required = false) Integer pageSize) { @RequestParam(name = "pageSize", defaultValue = "10",required = false) Integer pageSize) {
PageDataVO<TourTag> pageDataVO = getBaseBiz().findTourTagWithPage(pageNo, pageSize); PageDataVO<TourTagAndBannerDTO> pageDataVO = getBaseBiz().findTourTagWithPage(pageNo, pageSize);
return ObjectRestResponse.succ(pageDataVO); return ObjectRestResponse.succ(pageDataVO);
} }
...@@ -47,20 +45,22 @@ public class TourTagAdminController extends BaseController<TourTagBiz, TourTag> ...@@ -47,20 +45,22 @@ public class TourTagAdminController extends BaseController<TourTagBiz, TourTag>
* @param id * @param id
* @return * @return
*/ */
@Override @GetMapping("/findById/{id}")
public ObjectRestResponse<TourTag> get(@PathVariable int id) { @ApiOperation(value = "根据id查询旅游标签")
TourTag tourTag = getBaseBiz().findTourTagById(id); public ObjectRestResponse<TourTagAndBannerDTO> findTourTagById(@PathVariable int id) {
TourTagAndBannerDTO tourTag = getBaseBiz().findTourTagById(id);
return ObjectRestResponse.succ(tourTag); return ObjectRestResponse.succ(tourTag);
} }
/** /**
* 保存旅游标签 * 保存旅游标签
* @param tourTag * @param tourTagAndBannerDTO
* @return * @return
*/ */
@Override @PostMapping("/save")
public ObjectRestResponse<TourTag> add(@RequestBody TourTag tourTag) { @ApiOperation("保存旅游标签")
int insertRows = getBaseBiz().saveTourTag(tourTag); public ObjectRestResponse<TourTag> save(@RequestBody TourTagAndBannerDTO tourTagAndBannerDTO) {
int insertRows = getBaseBiz().saveTourTag(tourTagAndBannerDTO,getUserInfo());
if (insertRows>0){ if (insertRows>0){
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
} }
...@@ -72,14 +72,27 @@ public class TourTagAdminController extends BaseController<TourTagBiz, TourTag> ...@@ -72,14 +72,27 @@ public class TourTagAdminController extends BaseController<TourTagBiz, TourTag>
* @param id * @param id
* @return * @return
*/ */
@Override @DeleteMapping("/{id}")
@ApiOperation("逻辑删除旅游标签")
public ObjectRestResponse<TourTag> remove(@PathVariable int id) { public ObjectRestResponse<TourTag> remove(@PathVariable int id) {
int effRow = getBaseBiz().updateTourTagStateById(id,1); int effRow = getBaseBiz().updateTourTagStateById(id,1);
if (effRow>0){ if (effRow>0){
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
} }
return ObjectRestResponse.createDefaultFail(); return ObjectRestResponse.createDefaultFail();
}
/**
* 修改旅游标签信息
* @return
*/
@PutMapping("/update")
@ApiOperation("更新旅游标签")
public ObjectRestResponse<Void> updateTourTag(@RequestBody TourTagAndBannerDTO tourTagAndBannerDTO){
int effectRows = getBaseBiz().updateTourTag(tourTagAndBannerDTO,getUserInfo());
if (effectRows>0) {
return ObjectRestResponse.succ();
}
return ObjectRestResponse.createDefaultFail();
} }
} }
\ No newline at end of file
package com.xxfc.platform.tour.rest.admin;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.tour.biz.TourTagBannerBiz;
import com.xxfc.platform.tour.entity.TourTagBanner;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import org.springframework.web.bind.annotation.*;
/**
* @author libin
* @version 1.0
* @description 旅游标签banner
* @data 2019/6/11 9:45
*/
@RestController
@RequestMapping("/admin/tourTagBanner")
@Api(value = "后台*旅游标签banner接口")
public class TourTagBannerAdminController extends BaseController<TourTagBannerBiz,TourTagBanner> {
/**
* 分页查询旅游标签banner数据
* @param pageNo
* @param pageSize
* @return
*/
@ApiImplicitParams(value = {
@ApiImplicitParam(name = "pageNo",paramType = "query",dataType = "integer",defaultValue = "0"),
@ApiImplicitParam(name = "pageSize",paramType = "query",dataType = "integer",defaultValue = "10")
})
@GetMapping("/pages")
public ObjectRestResponse<PageDataVO<TourTagBanner>> findTourTagBannerWithPage(@RequestParam(name = "pageNo",required = false,defaultValue = "0")Integer pageNo,
@RequestParam(name = "pageSize",required = false,defaultValue = "10")Integer pageSize){
PageDataVO<TourTagBanner> tagBannerPageDataVO = getBaseBiz().findTourTagBannerWithPage(pageNo, pageSize);
return ObjectRestResponse.succ(tagBannerPageDataVO);
}
/**
* 根据主键id逻辑删除
* @param id
* @return
*/
@Override
public ObjectRestResponse<TourTagBanner> remove(@PathVariable int id) {
int effRows = getBaseBiz().updateTourTagBannerStatusById(id,1);
if (effRows>0){
return ObjectRestResponse.succ();
}
return ObjectRestResponse.createDefaultFail();
}
}
\ No newline at end of file
...@@ -18,4 +18,9 @@ ...@@ -18,4 +18,9 @@
<result property="isDel" column="is_del"/> <result property="isDel" column="is_del"/>
</resultMap> </resultMap>
<insert id="save" useGeneratedKeys="true" keyProperty="id" keyColumn="id" parameterType="com.xxfc.platform.tour.dto.TourTagDTO">
insert tour_tag(`name`,`img`,`describe`,`link`,`is_hot`,`count`,`rank`,`ctr_time`,`upd_time`,`is_del`)
values(#{name},#{img},#{describe},#{link},#{isHot},#{count},#{rank},#{ctrTime},#{updTime},#{isDel})
</insert>
</mapper> </mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment