You've already forked FrameTour-BE
Merge branch 'rem_old_price_config'
This commit is contained in:
@@ -1,13 +1,7 @@
|
||||
package com.ycwl.basic.controller.pc;
|
||||
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import com.ycwl.basic.model.pc.price.entity.PriceConfigEntity;
|
||||
import com.ycwl.basic.model.pc.price.req.PriceConfigListReq;
|
||||
import com.ycwl.basic.biz.PriceBiz;
|
||||
import com.ycwl.basic.model.pc.price.resp.GoodsListRespVO;
|
||||
import com.ycwl.basic.model.pc.price.resp.PriceConfigRespVO;
|
||||
import com.ycwl.basic.repository.PriceRepository;
|
||||
import com.ycwl.basic.service.pc.PriceConfigService;
|
||||
import com.ycwl.basic.utils.ApiResponse;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
@@ -19,61 +13,11 @@ import java.util.List;
|
||||
public class PriceConfigController {
|
||||
|
||||
@Autowired
|
||||
private PriceConfigService priceConfigService;
|
||||
@Autowired
|
||||
private PriceRepository priceRepository;
|
||||
private PriceBiz priceBiz;
|
||||
|
||||
@GetMapping("/goodsList")
|
||||
public ApiResponse<List<GoodsListRespVO>> goodsList(@RequestParam Long scenicId) {
|
||||
return ApiResponse.success(priceConfigService.listGoodsByScenic(scenicId));
|
||||
return ApiResponse.success(priceBiz.listGoodsByScenic(scenicId));
|
||||
}
|
||||
|
||||
@PostMapping("/add")
|
||||
public ApiResponse<PriceConfigEntity> addPriceConfig(@RequestBody PriceConfigEntity priceConfig) {
|
||||
priceConfig.setId(null);
|
||||
priceConfigService.save(priceConfig);
|
||||
return ApiResponse.success(priceConfig);
|
||||
}
|
||||
|
||||
@PostMapping("/update")
|
||||
public ApiResponse<PriceConfigEntity> updatePriceConfig(@RequestBody PriceConfigEntity priceConfig) {
|
||||
priceRepository.clearPriceCache(priceConfig.getId());
|
||||
priceConfigService.updateById(priceConfig);
|
||||
priceRepository.clearPriceCache(priceConfig.getId());
|
||||
return ApiResponse.success(priceConfig);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete/{id}")
|
||||
public ApiResponse<Boolean> deletePriceConfig(@PathVariable Integer id) {
|
||||
priceRepository.clearPriceCache(id);
|
||||
priceConfigService.removeById(id);
|
||||
priceRepository.clearPriceCache(id);
|
||||
return ApiResponse.success(true);
|
||||
}
|
||||
|
||||
@PostMapping("/{id}/status")
|
||||
public ApiResponse<Boolean> updateStatus(@PathVariable Integer id) {
|
||||
priceRepository.clearPriceCache(id);
|
||||
priceConfigService.updateStatus(id);
|
||||
priceRepository.clearPriceCache(id);
|
||||
return ApiResponse.success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/{id}")
|
||||
public ApiResponse<PriceConfigRespVO> getPriceConfigById(@PathVariable Integer id) {
|
||||
PriceConfigRespVO config = priceConfigService.findById(id);
|
||||
priceConfigService.fillGoodsName(config);
|
||||
return ApiResponse.success(config);
|
||||
}
|
||||
|
||||
@GetMapping("/list")
|
||||
public ApiResponse<PageInfo<PriceConfigRespVO>> list(@RequestParam(defaultValue = "1") int pageNum,
|
||||
@RequestParam(defaultValue = "10") int pageSize,
|
||||
@ModelAttribute PriceConfigListReq req) {
|
||||
PageHelper.startPage(pageNum, pageSize);
|
||||
List<PriceConfigRespVO> result = priceConfigService.listByCondition(req);
|
||||
priceConfigService.fillGoodsName(result);
|
||||
PageInfo<PriceConfigRespVO> pageInfo = new PageInfo<>(result);
|
||||
return ApiResponse.success(pageInfo);
|
||||
}
|
||||
}
|
@@ -18,7 +18,6 @@ import java.util.List;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/api/video/v1")
|
||||
@Deprecated
|
||||
// 视频成片管理
|
||||
public class VideoController {
|
||||
|
||||
|
@@ -1,22 +0,0 @@
|
||||
package com.ycwl.basic.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.ycwl.basic.model.pc.price.entity.PriceConfigEntity;
|
||||
import com.ycwl.basic.model.pc.price.req.PriceConfigListReq;
|
||||
import com.ycwl.basic.model.pc.price.resp.PriceConfigRespVO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Mapper
|
||||
public interface PriceConfigMapper extends BaseMapper<PriceConfigEntity> {
|
||||
PriceConfigRespVO getById(@Param("id") Integer id);
|
||||
List<PriceConfigRespVO> listByCondition(@Param("req") PriceConfigListReq req);
|
||||
|
||||
PriceConfigEntity getPriceByScenicTypeGoods(Long scenicId, Integer type, String goodsId);
|
||||
|
||||
int updateStatus(Integer id);
|
||||
}
|
@@ -1,17 +1,12 @@
|
||||
package com.ycwl.basic.model.pc.price.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
@TableName("price_config")
|
||||
public class PriceConfigEntity {
|
||||
@TableId(type = IdType.AUTO)
|
||||
private Integer id;
|
||||
/**
|
||||
* 景区ID
|
||||
|
@@ -3,23 +3,17 @@ package com.ycwl.basic.repository;
|
||||
import com.ycwl.basic.pricing.entity.PriceOnePriceConfig;
|
||||
import com.ycwl.basic.pricing.service.IOnePricePurchaseService;
|
||||
import com.ycwl.basic.utils.JacksonUtil;
|
||||
import com.ycwl.basic.mapper.PriceConfigMapper;
|
||||
import com.ycwl.basic.model.pc.price.entity.PriceConfigEntity;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
@Component
|
||||
public class PriceRepository {
|
||||
@Autowired
|
||||
private PriceConfigMapper mapper;
|
||||
@Autowired
|
||||
private RedisTemplate<String, String> redisTemplate;
|
||||
public static final String PRICE_SCENIC_TYPE_GOODS_CACHE = "price:s%s:t%s:g%s";
|
||||
public static final String PRICE_ID_CACHE = "price:%s";
|
||||
@Autowired
|
||||
private IOnePricePurchaseService onePricePurchaseService;
|
||||
@@ -39,19 +33,7 @@ public class PriceRepository {
|
||||
entity.setGoodsIds(goodsId);
|
||||
return entity;
|
||||
}
|
||||
String cacheKey = String.format(PRICE_SCENIC_TYPE_GOODS_CACHE, scenicId, type, goodsId);
|
||||
PriceConfigEntity priceConfigEntity = null;
|
||||
if (redisTemplate.hasKey(cacheKey)) {
|
||||
priceConfigEntity = JacksonUtil.parseObject(redisTemplate.opsForValue().get(cacheKey), PriceConfigEntity.class);
|
||||
}
|
||||
if (priceConfigEntity == null) {
|
||||
priceConfigEntity = mapper.getPriceByScenicTypeGoods(scenicId, type, goodsId);
|
||||
if (priceConfigEntity != null) {
|
||||
redisTemplate.opsForValue().set(cacheKey, JacksonUtil.toJSONString(priceConfigEntity), 12, TimeUnit.HOURS);
|
||||
redisTemplate.opsForValue().set(String.format(PRICE_ID_CACHE, priceConfigEntity.getId()), JacksonUtil.toJSONString(priceConfigEntity), 12, TimeUnit.HOURS);
|
||||
}
|
||||
}
|
||||
return priceConfigEntity;
|
||||
return null;
|
||||
}
|
||||
|
||||
public PriceConfigEntity getPriceConfig(Integer id) {
|
||||
|
@@ -1,24 +0,0 @@
|
||||
package com.ycwl.basic.service.pc;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.ycwl.basic.model.pc.price.entity.PriceConfigEntity;
|
||||
import com.ycwl.basic.model.pc.price.req.PriceConfigListReq;
|
||||
import com.ycwl.basic.model.pc.price.resp.GoodsListRespVO;
|
||||
import com.ycwl.basic.model.pc.price.resp.PriceConfigRespVO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface PriceConfigService extends IService<PriceConfigEntity> {
|
||||
|
||||
List<PriceConfigRespVO> listByCondition(PriceConfigListReq req);
|
||||
|
||||
PriceConfigRespVO findById(Integer id);
|
||||
|
||||
List<GoodsListRespVO> listGoodsByScenic(Long scenicId);
|
||||
|
||||
void fillGoodsName(List<PriceConfigRespVO> result);
|
||||
|
||||
void fillGoodsName(PriceConfigRespVO config);
|
||||
|
||||
void updateStatus(Integer id);
|
||||
}
|
@@ -1,85 +0,0 @@
|
||||
package com.ycwl.basic.service.pc.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.ycwl.basic.biz.PriceBiz;
|
||||
import com.ycwl.basic.mapper.PriceConfigMapper;
|
||||
import com.ycwl.basic.model.pc.price.entity.PriceConfigEntity;
|
||||
import com.ycwl.basic.model.pc.price.req.PriceConfigListReq;
|
||||
import com.ycwl.basic.model.pc.price.resp.GoodsListRespVO;
|
||||
import com.ycwl.basic.model.pc.price.resp.PriceConfigRespVO;
|
||||
import com.ycwl.basic.model.pc.template.resp.TemplateRespVO;
|
||||
import com.ycwl.basic.repository.TemplateRepository;
|
||||
import com.ycwl.basic.service.pc.PriceConfigService;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.commons.lang3.Strings;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
public class PriceConfigServiceImpl extends ServiceImpl<PriceConfigMapper, PriceConfigEntity> implements PriceConfigService {
|
||||
|
||||
@Autowired
|
||||
private TemplateRepository templateRepository;
|
||||
@Autowired
|
||||
private PriceBiz priceBiz;
|
||||
|
||||
@Override
|
||||
public List<PriceConfigRespVO> listByCondition(PriceConfigListReq req) {
|
||||
return baseMapper.listByCondition(req);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PriceConfigRespVO findById(Integer id) {
|
||||
return baseMapper.getById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<GoodsListRespVO> listGoodsByScenic(Long scenicId) {
|
||||
return priceBiz.listGoodsByScenic(scenicId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fillGoodsName(List<PriceConfigRespVO> result) {
|
||||
for (PriceConfigRespVO item : result) {
|
||||
fillGoodsName(item);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fillGoodsName(PriceConfigRespVO item) {
|
||||
if (Integer.valueOf(-1).equals(item.getType())) {
|
||||
item.setGoodsNames("景区内所有售卖商品");
|
||||
} else if (Integer.valueOf(3).equals(item.getType())) {
|
||||
item.setGoodsNames("打印照片");
|
||||
} else if (StringUtils.isNotBlank(item.getGoodsIds())) {
|
||||
List<String> goodsNames = new ArrayList<>();
|
||||
for (String s : item.getGoodsIds().split(",")) {
|
||||
if (Strings.CS.equals(s, "1")) {
|
||||
goodsNames.add("录像集");
|
||||
} else if (Strings.CS.equals(s, "2")) {
|
||||
goodsNames.add("照片集");
|
||||
} else {
|
||||
if (StringUtils.isNumeric(s)) {
|
||||
TemplateRespVO template = templateRepository.getTemplate(Long.valueOf(s));
|
||||
if (template != null) {
|
||||
goodsNames.add(template.getName());
|
||||
} else {
|
||||
goodsNames.add("?未知商品【"+s+"】?");
|
||||
}
|
||||
} else {
|
||||
goodsNames.add("!未知商品【"+s+"】!");
|
||||
}
|
||||
}
|
||||
}
|
||||
item.setGoodsNames(StringUtils.join(goodsNames, ","));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateStatus(Integer id) {
|
||||
baseMapper.updateStatus(id);
|
||||
}
|
||||
}
|
@@ -1,66 +0,0 @@
|
||||
<?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.ycwl.basic.mapper.PriceConfigMapper">
|
||||
|
||||
<insert id="insert" useGeneratedKeys="true" keyProperty="id">
|
||||
insert into price_config (scenic_id, type, goods_ids, price, slash_price, create_time, update_time)
|
||||
values (#{scenicId}, #{type}, #{goodsIds}, #{price}, #{slashPrice}, now(), now())
|
||||
</insert>
|
||||
|
||||
<update id="update">
|
||||
update price_config
|
||||
<set>
|
||||
<if test="scenicId != null">scenic_id = #{scenicId},</if>
|
||||
<if test="type != null">type = #{type},</if>
|
||||
<if test="goodsIds != null">goods_ids = #{goodsIds},</if>
|
||||
<if test="price != null">price = #{price},</if>
|
||||
<if test="slashPrice != null">slash_price = #{slashPrice},</if>
|
||||
update_time = now()
|
||||
</set>
|
||||
where id = #{id}
|
||||
</update>
|
||||
<update id="updateStatus">
|
||||
update price_config
|
||||
set `status` = IF(`status` = 0, 1, 0),
|
||||
update_time = now()
|
||||
where id = #{id}
|
||||
</update>
|
||||
|
||||
<delete id="deleteById">
|
||||
delete from price_config where id = #{id}
|
||||
</delete>
|
||||
|
||||
<select id="getById" resultType="com.ycwl.basic.model.pc.price.resp.PriceConfigRespVO">
|
||||
select p.* from price_config p
|
||||
where p.id = #{id}
|
||||
</select>
|
||||
|
||||
<select id="listByCondition" resultType="com.ycwl.basic.model.pc.price.resp.PriceConfigRespVO">
|
||||
select p.* from price_config p
|
||||
<where>
|
||||
<if test="req.scenicId != null">
|
||||
and p.scenic_id = #{req.scenicId}
|
||||
</if>
|
||||
<if test="req.type != null">
|
||||
and p.type = #{req.type}
|
||||
</if>
|
||||
<if test="req.goodsId != null">
|
||||
and p.goods_ids like concat('%', #{req.goodsId}, '%')
|
||||
</if>
|
||||
<if test="req.status != null">
|
||||
and p.status = #{req.status}
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
<select id="getPriceByScenicTypeGoods" resultType="com.ycwl.basic.model.pc.price.entity.PriceConfigEntity">
|
||||
select * from price_config
|
||||
where scenic_id = #{scenicId}
|
||||
and type = #{type} and status = 1
|
||||
<if test="goodsId != null and goodsId != ''">
|
||||
and goods_ids like concat('%', #{goodsId}, '%')
|
||||
</if>
|
||||
</select>
|
||||
</mapper>
|
Reference in New Issue
Block a user