Browse Source

修改首页接口,增加清除缓存

sj
sj 2 years ago
parent
commit
0a92ac5e67
  1. 2
      yudao-server/src/main/resources/application-local.yaml
  2. 7
      zsw-bxg/src/main/java/co/yixiang/app/modules/activity/rest/AppStoreBargainController.java
  3. 15
      zsw-bxg/src/main/java/co/yixiang/app/modules/activity/rest/AppStoreCombinationController.java
  4. 77
      zsw-bxg/src/main/java/co/yixiang/app/modules/activity/rest/AppStoreSeckillController.java
  5. 13
      zsw-bxg/src/main/java/co/yixiang/app/modules/shop/rest/BxgIndexController.java
  6. 16
      zsw-bxg/src/main/java/co/yixiang/app/modules/shop/vo/IndexVo.java
  7. 4
      zsw-bxg/src/main/java/co/yixiang/modules/activity/service/YxStoreBargainService.java
  8. 7
      zsw-bxg/src/main/java/co/yixiang/modules/activity/service/YxStoreSeckillService.java
  9. 16
      zsw-bxg/src/main/java/co/yixiang/modules/activity/service/impl/YxStoreBargainServiceImpl.java
  10. 91
      zsw-bxg/src/main/java/co/yixiang/modules/activity/service/impl/YxStoreSeckillServiceImpl.java
  11. 14
      zsw-bxg/src/main/java/co/yixiang/modules/monitor/rest/BxgRedisController.java
  12. 8
      zsw-bxg/src/main/java/co/yixiang/modules/mp/listener/TemplateListener.java
  13. 2
      zsw-bxg/src/main/java/co/yixiang/modules/product/service/impl/YxStoreProductServiceImpl.java
  14. 4
      zsw-bxg/src/main/java/co/yixiang/serializer/BigDecimalSerializer.java

2
yudao-server/src/main/resources/application-local.yaml

@ -244,7 +244,7 @@ dubbo:
bxg:
shop:
# API_URL: http://192.168.10.113:48080/bxgApp
API_URL: https://02f3-27-19-79-7.jp.ngrok.io
API_URL: https://5352-27-19-79-42.jp.ngrok.io
SITE_URL: http://192.168.10.113:48080/bxgApp
UNI_SITE_URL: http://192.168.10.113:48080/bxgApp
ADMIN_API_URL: http://192.168.10.113:48080/bxg

7
zsw-bxg/src/main/java/co/yixiang/app/modules/activity/rest/AppStoreBargainController.java

@ -36,6 +36,7 @@ import co.yixiang.modules.activity.vo.YxStoreBargainUserQueryVo;
import co.yixiang.modules.shop.service.YxSystemConfigService;
import co.yixiang.modules.user.domain.YxUser;
import co.yixiang.modules.user.service.YxUserService;
import co.yixiang.utils.StringUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.google.common.collect.Maps;
import io.swagger.annotations.Api;
@ -100,15 +101,15 @@ public class AppStoreBargainController {
* 砍价详情
*/
@AppLog(value = "查看砍价产品", type = 1)
@AuthCheck
// @AuthCheck
@GetMapping("/bargain/detail/{id}")
@ApiOperation(value = "砍价详情",notes = "砍价详情",response = YxStoreBargainQueryVo.class)
public ApiResult<BargainVo> getYxStoreBargain(@PathVariable Long id){
if(ObjectUtil.isNull(id)) {
throw new YshopException("参数错误");
}
YxUser yxUser = LocalUser.getUser();
return ApiResult.ok(storeBargainService.getDetail(id,yxUser));
Long uid = LocalUser.getUidByToken();
return ApiResult.ok(storeBargainService.getDetail(id,uid));
}
/**

15
zsw-bxg/src/main/java/co/yixiang/app/modules/activity/rest/AppStoreCombinationController.java

@ -27,6 +27,7 @@ import co.yixiang.modules.activity.vo.StoreCombinationVo;
import co.yixiang.modules.product.service.YxStoreProductRelationService;
import co.yixiang.modules.shop.service.YxSystemConfigService;
import co.yixiang.modules.user.domain.YxUser;
import co.yixiang.utils.StringUtils;
import com.google.common.collect.Maps;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@ -101,17 +102,23 @@ public class AppStoreCombinationController {
* 拼团产品详情
*/
@AppLog(value = "查看拼团产品详情", type = 1)
@AuthCheck
// @AuthCheck
@GetMapping("/combination/detail/{id}")
@ApiOperation(value = "拼团产品详情",notes = "拼团产品详情")
public ApiResult<StoreCombinationVo> detail(@PathVariable Long id){
if(ObjectUtil.isNull(id)) {
throw new YshopException("参数错误");
}
Long uid = LocalUser.getUser().getUid();
// Long uid = LocalUser.getUser().getUid();
Long uid = LocalUser.getUidByToken(); //不传token则返回uid是0
StoreCombinationVo storeCombinationVo = storeCombinationService.getDetail(id,uid);
storeCombinationVo.setUserCollect(relationService
.isProductRelation(storeCombinationVo.getStoreInfo().getProductId(),uid));
if (StringUtils.isBlank(uid.toString())||uid==0){ //如果是未登录状态
storeCombinationVo.setUserCollect(false);
}else {
storeCombinationVo.setUserCollect(relationService
.isProductRelation(storeCombinationVo.getStoreInfo().getProductId(),uid));
}
return ApiResult.ok(storeCombinationVo);
}

77
zsw-bxg/src/main/java/co/yixiang/app/modules/activity/rest/AppStoreSeckillController.java

@ -10,6 +10,7 @@ package co.yixiang.app.modules.activity.rest;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.framework.common.pojo.ApiResult;
import cn.iocoder.yudao.framework.common.exception.YshopException;
@ -26,13 +27,16 @@ import co.yixiang.modules.product.service.YxStoreProductRelationService;
import co.yixiang.modules.shop.domain.YxSystemGroupData;
import co.yixiang.modules.shop.service.YxSystemGroupDataService;
import co.yixiang.modules.shop.service.dto.YxSystemGroupDataQueryCriteria;
import co.yixiang.modules.user.domain.YxUser;
import co.yixiang.utils.OrderUtil;
import co.yixiang.utils.StringUtils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.checkerframework.common.value.qual.StringVal;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
@ -85,14 +89,19 @@ public class AppStoreSeckillController {
* 根据id获取商品秒杀产品详情
*/
@AppLog(value = "根据id获取商品秒杀产品详情", type = 1)
@AuthCheck
// @AuthCheck
@GetMapping("/seckill/detail/{id}")
@ApiOperation(value = "秒杀产品详情", notes = "秒杀产品详情")
public ApiResult<StoreSeckillVo> getYxStoreSeckill(@PathVariable Long id){
Long uid = LocalUser.getUser().getUid();
// Long uid = LocalUser.getUser().getUid();
Long uid = LocalUser.getUidByToken();
StoreSeckillVo storeSeckillVo = yxStoreSeckillService.getDetail(id);
storeSeckillVo.setUserCollect(relationService
.isProductRelation(storeSeckillVo.getStoreInfo().getProductId(),uid));
if (StringUtils.isBlank(uid.toString())){//如果是未登录状态
storeSeckillVo.setUserCollect(false);
}else {
storeSeckillVo.setUserCollect(relationService
.isProductRelation(storeSeckillVo.getStoreInfo().getProductId(),uid));
}
return ApiResult.ok(storeSeckillVo);
}
@ -104,65 +113,7 @@ public class AppStoreSeckillController {
@ApiOperation(value = "秒杀产品时间区间", notes = "秒杀产品时间区间")
public ApiResult<SeckillConfigVo> getYxStoreSeckillIndex() {
//获取秒杀配置
AtomicInteger seckillTimeIndex = new AtomicInteger();
SeckillConfigVo seckillConfigVo = new SeckillConfigVo();
YxSystemGroupDataQueryCriteria queryCriteria = new YxSystemGroupDataQueryCriteria();
queryCriteria.setGroupName(ShopConstants.ZSW_SECKILL_TIME);
queryCriteria.setStatus(1);
List<YxSystemGroupData> yxSystemGroupDataList = yxSystemGroupDataService.queryAll(queryCriteria);
List<SeckillTimeDto> list = new ArrayList<>();
int today = OrderUtil.dateToTimestampT(DateUtil.beginOfDay(new Date()));
yxSystemGroupDataList.forEach(i -> {
String jsonStr = i.getValue();
JSONObject jsonObject = JSON.parseObject(jsonStr);
int time = Integer.valueOf(jsonObject.get("time").toString());//开启时间(几点) 5
int continued = Integer.valueOf(jsonObject.get("continued").toString());//活动持续事件 3
String rule="";
if (jsonObject.get("rule")!=null){
rule=jsonObject.get("rule").toString();
}
SimpleDateFormat sdf = new SimpleDateFormat("HH");
String nowTime = sdf.format(new Date());
String index = nowTime.substring(0, 1);
int currentHour = "0".equals(index) ? Integer.valueOf(nowTime.substring(1, 2)) : Integer.valueOf(nowTime);
SeckillTimeDto seckillTimeDto = new SeckillTimeDto();
seckillTimeDto.setId(i.getId());
//活动结束时间
int activityEndHour = time + continued;
if (activityEndHour > 24) {
seckillTimeDto.setState("即将开始");
seckillTimeDto.setTime(jsonObject.get("time").toString().length() > 1 ? jsonObject.get("time").toString() + ":00" : "0" + jsonObject.get("time").toString() + ":00");
seckillTimeDto.setStatus(2);
seckillTimeDto.setRule(rule);
seckillTimeDto.setStop(today + activityEndHour * 3600);
} else {
if (currentHour >= time && currentHour < activityEndHour) {
seckillTimeDto.setState("抢购中");
seckillTimeDto.setTime(jsonObject.get("time").toString().length() > 1 ? jsonObject.get("time").toString() + ":00" : "0" + jsonObject.get("time").toString() + ":00");
seckillTimeDto.setStatus(1);
seckillTimeDto.setRule(rule);
seckillTimeDto.setStop(today + activityEndHour * 3600);
seckillTimeIndex.set(yxSystemGroupDataList.indexOf(i));
} else if (currentHour < time) {
seckillTimeDto.setState("即将开始");
seckillTimeDto.setTime(jsonObject.get("time").toString().length() > 1 ? jsonObject.get("time").toString() + ":00" : "0" + jsonObject.get("time").toString() + ":00");
seckillTimeDto.setStatus(2);
seckillTimeDto.setRule(rule);
seckillTimeDto.setStop(OrderUtil.dateToTimestamp(new Date()) + activityEndHour * 3600);
} else if (currentHour >= activityEndHour) {
seckillTimeDto.setState("已结束");
seckillTimeDto.setTime(jsonObject.get("time").toString().length() > 1 ? jsonObject.get("time").toString() + ":00" : "0" + jsonObject.get("time").toString() + ":00");
seckillTimeDto.setStatus(0);
seckillTimeDto.setRule(rule);
seckillTimeDto.setStop(today + activityEndHour * 3600);
}
}
list.add(seckillTimeDto);
});
seckillConfigVo.setSeckillTimeIndex(seckillTimeIndex.get());
seckillConfigVo.setSeckillTime(list);
SeckillConfigVo seckillConfigVo=yxStoreSeckillService.getStoreSeckil();
return ApiResult.ok(seckillConfigVo);
}
}

13
zsw-bxg/src/main/java/co/yixiang/app/modules/shop/rest/BxgIndexController.java

@ -15,11 +15,14 @@ import cn.iocoder.yudao.framework.common.exception.YshopException;
import co.yixiang.constant.ShopConstants;
import co.yixiang.enums.ProductEnum;
import co.yixiang.enums.ShopCommonEnum;
import co.yixiang.modules.activity.service.YxStoreBargainService;
import co.yixiang.modules.activity.service.YxStoreCombinationService;
import co.yixiang.modules.activity.service.YxStoreSeckillService;
import co.yixiang.modules.activity.vo.YxStoreSeckillQueryVo;
import co.yixiang.modules.canvas.domain.StoreCanvas;
import co.yixiang.modules.canvas.service.StoreCanvasService;
import co.yixiang.modules.evaluation.service.YxEvaluationService;
import co.yixiang.modules.hotList.service.YxStoreHotListService;
import co.yixiang.modules.mp.service.YxWechatLiveService;
import co.yixiang.modules.product.service.YxStoreProductService;
import co.yixiang.modules.product.vo.YxSystemStoreQueryVo;
@ -83,6 +86,12 @@ public class BxgIndexController {
private final YxSystemConfigService systemConfigService;
private final StoreCanvasService storeCanvasService;
private final YxStoreHotListService yxStoreHotListService;
private final YxStoreBargainService yxStoreBargainService;
private final YxStoreSeckillService yxStoreSeckillService;
@GetMapping("/getCanvas")
@ApiOperation(value = "读取画布数据")
public ResponseEntity<StoreCanvas> getCanvas(StoreCanvas storeCanvas){
@ -106,6 +115,10 @@ public class BxgIndexController {
//首页图
// .banner(systemGroupDataService.getDatas(ShopConstants.ZSW_HOME_BANNER))
.banner(list)
.hotListDTOS(yxStoreHotListService.getList())//首页榜单
.bargainList(yxStoreBargainService.getList(1,10))//砍价活动列表
.seckillConfigVo(yxStoreSeckillService.getStoreSeckil())//秒杀配置
.yxStoreSeckillQueryVoList(yxStoreSeckillService.getIndexList())//秒杀商品
.bastList(storeProductService.getList(1,6, ProductEnum.TYPE_1.getValue()))
.evaluationList(evaluationService.getList(1,5))
.benefit(storeProductService.getList(1,100,ProductEnum.TYPE_4.getValue()))

16
zsw-bxg/src/main/java/co/yixiang/app/modules/shop/vo/IndexVo.java

@ -1,11 +1,14 @@
package co.yixiang.app.modules.shop.vo;
import co.yixiang.modules.activity.vo.SeckillConfigVo;
import co.yixiang.modules.activity.vo.YxStoreBargainQueryVo;
import co.yixiang.modules.activity.vo.YxStoreCombinationQueryVo;
import co.yixiang.modules.activity.vo.YxStoreSeckillQueryVo;
import co.yixiang.modules.evaluation.service.dto.YxEvaluationDto;
import co.yixiang.modules.evaluation.vo.YxEvaluationQueryVo;
import co.yixiang.modules.mp.service.dto.YxWechatLiveDto;
import co.yixiang.modules.product.vo.YxStoreProductQueryVo;
import co.yixiang.utils.HotListDTO;
import com.alibaba.fastjson.JSONObject;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@ -16,6 +19,7 @@ import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
@Data
@Builder
@ -26,6 +30,18 @@ public class IndexVo implements Serializable {
@ApiModelProperty("banner")
private List<JSONObject> banner;
@ApiModelProperty("首页需要的榜单")
private List<HotListDTO> hotListDTOS;
@ApiModelProperty("首页需要的砍价列表")
private Map<String,List<YxStoreBargainQueryVo>> bargainList;
@ApiModelProperty("首页秒杀配置")
private SeckillConfigVo seckillConfigVo;
@ApiModelProperty("首页秒杀产品")
private List<YxStoreSeckillQueryVo> yxStoreSeckillQueryVoList;
//首页按钮
@ApiModelProperty("首页按钮")
private List<JSONObject> menus;

4
zsw-bxg/src/main/java/co/yixiang/modules/activity/service/YxStoreBargainService.java

@ -79,10 +79,10 @@ public interface YxStoreBargainService extends BaseService<YxStoreBargain>{
/**
* 砍价详情
* @param id 砍价id
* @param yxUser 用户
* @param uid 用户uid
* @return BargainVo
*/
BargainVo getDetail(Long id, YxUser yxUser);
BargainVo getDetail(Long id, Long uid);
/**

7
zsw-bxg/src/main/java/co/yixiang/modules/activity/service/YxStoreSeckillService.java

@ -12,6 +12,7 @@ import co.yixiang.common.service.BaseService;
import co.yixiang.modules.activity.domain.YxStoreSeckill;
import co.yixiang.modules.activity.service.dto.YxStoreSeckillDto;
import co.yixiang.modules.activity.service.dto.YxStoreSeckillQueryCriteria;
import co.yixiang.modules.activity.vo.SeckillConfigVo;
import co.yixiang.modules.activity.vo.StoreSeckillVo;
import co.yixiang.modules.activity.vo.YxStoreSeckillQueryVo;
import org.springframework.data.domain.Pageable;
@ -27,6 +28,10 @@ import java.util.Map;
*/
public interface YxStoreSeckillService extends BaseService<YxStoreSeckill> {
/**
* 秒杀产品时间区间
*/
SeckillConfigVo getStoreSeckil();
/**
* 产品详情
@ -45,6 +50,8 @@ public interface YxStoreSeckillService extends BaseService<YxStoreSeckill> {
*/
List<YxStoreSeckillQueryVo> getList(int page, int limit, int time);
List<YxStoreSeckillQueryVo> getIndexList();
/**
* 秒杀产品列表(首页用)
*

16
zsw-bxg/src/main/java/co/yixiang/modules/activity/service/impl/YxStoreBargainServiceImpl.java

@ -45,9 +45,11 @@ import co.yixiang.modules.shop.service.YxSystemConfigService;
import co.yixiang.modules.template.domain.YxShippingTemplates;
import co.yixiang.modules.template.service.YxShippingTemplatesService;
import co.yixiang.modules.user.domain.YxUser;
import co.yixiang.modules.user.service.YxUserService;
import co.yixiang.modules.user.vo.YxUserQueryVo;
import co.yixiang.utils.FileUtil;
import co.yixiang.utils.OrderUtil;
import co.yixiang.utils.StringUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.pagehelper.PageInfo;
@ -97,6 +99,9 @@ public class YxStoreBargainServiceImpl extends BaseServiceImpl<YxStoreBargainMap
private YxShippingTemplatesService shippingTemplatesService;
@Autowired
private YxStoreProductService yxStoreProductService;
@Autowired
private YxUserService yxUserService;
/**
* 退回库存销量
* @param num 数量
@ -292,11 +297,11 @@ public class YxStoreBargainServiceImpl extends BaseServiceImpl<YxStoreBargainMap
/**
* 砍价详情
* @param id 砍价id
* @param yxUser 用户
* @param uid 用户uid
* @return BargainVo
*/
@Override
public BargainVo getDetail(Long id, YxUser yxUser) {
public BargainVo getDetail(Long id, Long uid) {
Date now = new Date();
YxStoreBargain storeBargain = this.lambdaQuery().eq(YxStoreBargain::getId,id)
@ -329,7 +334,12 @@ public class YxStoreBargainServiceImpl extends BaseServiceImpl<YxStoreBargainMap
YxStoreBargainQueryVo storeBargainQueryVo = generator.convert(storeBargain,
YxStoreBargainQueryVo.class)
.setConfig(storeProductMapper.selectById(storeBargain.getProductId()).getConfig());
YxUser yxUser;
if (StringUtils.isBlank(uid.toString())||uid==0){
yxUser=new YxUser();
}else {
yxUser=yxUserService.lambdaQuery().eq(YxUser::getUid,uid).one();
}
return BargainVo
.builder()
.bargain(storeBargainQueryVo)

91
zsw-bxg/src/main/java/co/yixiang/modules/activity/service/impl/YxStoreSeckillServiceImpl.java

@ -10,21 +10,25 @@ package co.yixiang.modules.activity.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.framework.common.exception.YshopException;
import co.yixiang.common.service.impl.BaseServiceImpl;
import co.yixiang.common.utils.QueryHelpPlus;
import co.yixiang.constant.ShopConstants;
import co.yixiang.dozer.service.IGenerator;
import co.yixiang.enums.ShopCommonEnum;
import co.yixiang.enums.SpecTypeEnum;
import co.yixiang.exception.BadRequestException;
import co.yixiang.modules.activity.domain.YxStoreSeckill;
import co.yixiang.modules.activity.service.YxStoreSeckillService;
import co.yixiang.modules.activity.service.dto.SeckillTimeDto;
import co.yixiang.modules.activity.service.dto.YxStoreSeckillDto;
import co.yixiang.modules.activity.service.dto.YxStoreSeckillQueryCriteria;
import co.yixiang.modules.activity.service.mapper.YxStoreSeckillMapper;
import co.yixiang.modules.activity.vo.SeckillConfigVo;
import co.yixiang.modules.activity.vo.StoreSeckillVo;
import co.yixiang.modules.activity.vo.YxStoreSeckillQueryVo;
import co.yixiang.modules.product.domain.YxStoreProduct;
@ -36,13 +40,18 @@ import co.yixiang.modules.product.service.dto.ProductFormatDto;
import co.yixiang.modules.product.service.dto.ProductResultDto;
import co.yixiang.modules.product.service.mapper.StoreProductMapper;
import co.yixiang.modules.product.vo.YxStoreProductAttrQueryVo;
import co.yixiang.modules.shop.domain.YxSystemGroupData;
import co.yixiang.modules.shop.service.YxSystemConfigService;
import co.yixiang.modules.shop.service.YxSystemGroupDataService;
import co.yixiang.modules.shop.service.dto.YxSystemGroupDataQueryCriteria;
import co.yixiang.modules.template.domain.YxShippingTemplates;
import co.yixiang.modules.template.service.YxShippingTemplatesService;
import co.yixiang.utils.FileUtil;
import co.yixiang.utils.OrderUtil;
import co.yixiang.utils.RedisUtils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.pagehelper.PageInfo;
@ -55,7 +64,9 @@ import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
/**
@ -87,6 +98,74 @@ public class YxStoreSeckillServiceImpl extends BaseServiceImpl<YxStoreSeckillMap
@Autowired
private StoreProductMapper storeProductMapper;
@Autowired
private YxSystemGroupDataService yxSystemGroupDataService;
@Override
public SeckillConfigVo getStoreSeckil() {
//获取秒杀配置
AtomicInteger seckillTimeIndex = new AtomicInteger();
SeckillConfigVo seckillConfigVo = new SeckillConfigVo();
YxSystemGroupDataQueryCriteria queryCriteria = new YxSystemGroupDataQueryCriteria();
queryCriteria.setGroupName(ShopConstants.ZSW_SECKILL_TIME);
queryCriteria.setStatus(1);
List<YxSystemGroupData> yxSystemGroupDataList = yxSystemGroupDataService.queryAll(queryCriteria);
List<SeckillTimeDto> list = new ArrayList<>();
int today = OrderUtil.dateToTimestampT(DateUtil.beginOfDay(new Date()));
yxSystemGroupDataList.forEach(i -> {
String jsonStr = i.getValue();
JSONObject jsonObject = JSON.parseObject(jsonStr);
int time = Integer.valueOf(jsonObject.get("time").toString());//开启时间(几点) 5
int continued = Integer.valueOf(jsonObject.get("continued").toString());//活动持续事件 3
String rule="";
if (jsonObject.get("rule")!=null){
rule=jsonObject.get("rule").toString();
}
SimpleDateFormat sdf = new SimpleDateFormat("HH");
String nowTime = sdf.format(new Date());
String index = nowTime.substring(0, 1);
int currentHour = "0".equals(index) ? Integer.valueOf(nowTime.substring(1, 2)) : Integer.valueOf(nowTime);
SeckillTimeDto seckillTimeDto = new SeckillTimeDto();
seckillTimeDto.setId(i.getId());
//活动结束时间
int activityEndHour = time + continued;
if (activityEndHour > 24) {
seckillTimeDto.setState("即将开始");
seckillTimeDto.setTime(jsonObject.get("time").toString().length() > 1 ? jsonObject.get("time").toString() + ":00" : "0" + jsonObject.get("time").toString() + ":00");
seckillTimeDto.setStatus(2);
seckillTimeDto.setRule(rule);
seckillTimeDto.setStop(today + activityEndHour * 3600);
} else {
if (currentHour >= time && currentHour < activityEndHour) {
seckillTimeDto.setState("抢购中");
seckillTimeDto.setTime(jsonObject.get("time").toString().length() > 1 ? jsonObject.get("time").toString() + ":00" : "0" + jsonObject.get("time").toString() + ":00");
seckillTimeDto.setStatus(1);
seckillTimeDto.setRule(rule);
seckillTimeDto.setStop(today + activityEndHour * 3600);
seckillTimeIndex.set(yxSystemGroupDataList.indexOf(i));
} else if (currentHour < time) {
seckillTimeDto.setState("即将开始");
seckillTimeDto.setTime(jsonObject.get("time").toString().length() > 1 ? jsonObject.get("time").toString() + ":00" : "0" + jsonObject.get("time").toString() + ":00");
seckillTimeDto.setStatus(2);
seckillTimeDto.setRule(rule);
seckillTimeDto.setStop(OrderUtil.dateToTimestamp(new Date()) + activityEndHour * 3600);
} else if (currentHour >= activityEndHour) {
seckillTimeDto.setState("已结束");
seckillTimeDto.setTime(jsonObject.get("time").toString().length() > 1 ? jsonObject.get("time").toString() + ":00" : "0" + jsonObject.get("time").toString() + ":00");
seckillTimeDto.setStatus(0);
seckillTimeDto.setRule(rule);
seckillTimeDto.setStop(today + activityEndHour * 3600);
}
}
list.add(seckillTimeDto);
});
seckillConfigVo.setSeckillTimeIndex(seckillTimeIndex.get());
seckillConfigVo.setSeckillTime(list);
return seckillConfigVo;
}
/**
* 产品详情
* @param id 砍价商品id
@ -159,6 +238,18 @@ public class YxStoreSeckillServiceImpl extends BaseServiceImpl<YxStoreSeckillMap
});
return yxStoreSeckillQueryVos;
}
@Override
public List<YxStoreSeckillQueryVo> getIndexList() {
SeckillConfigVo seckillConfigVo=this.getStoreSeckil();
if (seckillConfigVo.getSeckillTime().size()==0){
return null;
}else {
int timeId=seckillConfigVo.getSeckillTime().get(seckillConfigVo.getSeckillTimeIndex()).getId();
return this.getList(1,10,timeId);
}
};
/**
* 秒杀产品列表首页用
* @param page page

14
zsw-bxg/src/main/java/co/yixiang/modules/monitor/rest/BxgRedisController.java

@ -1,11 +1,13 @@
package co.yixiang.modules.monitor.rest;
import co.yixiang.constant.ShopConstants;
import co.yixiang.logging.aop.log.Log;
import co.yixiang.modules.aop.ForbidSubmit;
import co.yixiang.modules.monitor.domain.vo.RedisVo;
import co.yixiang.modules.monitor.service.RedisService;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@ -30,7 +32,7 @@ public class BxgRedisController {
@Log("查询Redis缓存")
@GetMapping(value = "/redis")
@PreAuthorize("@ss.hasAnyPermissions('ADMIN','REDIS_ALL','REDIS_SELECT')")
// @PreAuthorize("@ss.hasAnyPermissions('ADMIN','REDIS_ALL','REDIS_SELECT')")
public ResponseEntity getRedis(String key, Pageable pageable){
return new ResponseEntity(redisService.findByKey(key,pageable), HttpStatus.OK);
}
@ -38,12 +40,20 @@ public class BxgRedisController {
@ForbidSubmit
@Log("删除Redis缓存")
@DeleteMapping(value = "/redis")
@PreAuthorize("@ss.hasAnyPermissions('ADMIN','REDIS_ALL','REDIS_DELETE')")
// @PreAuthorize("@ss.hasAnyPermissions('ADMIN','REDIS_ALL','REDIS_DELETE')")
public ResponseEntity delete(@RequestBody RedisVo resources){
redisService.delete(resources.getKey());
return new ResponseEntity(HttpStatus.OK);
}
@Log("删除Redis缓存")
@GetMapping(value = "/del")
@CacheEvict(cacheNames = { ShopConstants.ZSW_REDIS_INDEX_KEY})
public ResponseEntity del(){
return new ResponseEntity(HttpStatus.OK);
}
@ForbidSubmit
@Log("清空Redis缓存")
@DeleteMapping(value = "/redis/all")

8
zsw-bxg/src/main/java/co/yixiang/modules/mp/listener/TemplateListener.java

@ -72,6 +72,8 @@ public class TemplateListener implements SmartApplicationListener {
@Autowired
private WxbotMsgUtil wxbotMsgUtil;
@Autowired
private YxUserService yxUserService;
@Override
public boolean supportsEventType(Class<? extends ApplicationEvent> aClass) {
return aClass == TemplateEvent.class;
@ -112,6 +114,12 @@ public class TemplateListener implements SmartApplicationListener {
}
break;
case TYPE_2:
//这里同意退款所以需要扣除用户对应的成长值
YxUser yxUser=yxUserService.lambdaQuery().eq(YxUser::getUid,templateBean.getUid()).one();
Double price=Double.valueOf(templateBean.getPrice());
//减去成长值
yxUser.setGrowth(yxUser.getGrowth()>(int)Math.round(price)?yxUser.getGrowth()-(int)Math.round(price):0);
yxUserService.updateById(yxUser);
//处理退款与消息
if (PayTypeEnum.WEIXIN.getValue().equals(templateBean.getPayType())) {
BigDecimal bigDecimal = new BigDecimal("100");

2
zsw-bxg/src/main/java/co/yixiang/modules/product/service/impl/YxStoreProductServiceImpl.java

@ -300,7 +300,7 @@ public class YxStoreProductServiceImpl extends BaseServiceImpl<StoreProductMappe
//无其他排序条件时,防止因为商品排序导致商品重复
if (StringUtils.isNullOrEmpty(productQueryParam.getPriceOrder()) && StringUtils.isNullOrEmpty(productQueryParam.getSalesOrder())) {
wrapper.orderByDesc(YxStoreProduct::getId);
// wrapper.orderByDesc(YxStoreProduct::getId);
wrapper.orderByDesc(YxStoreProduct::getSort);
}
Page<YxStoreProduct> pageModel = new Page<>(productQueryParam.getPage(),

4
zsw-bxg/src/main/java/co/yixiang/serializer/BigDecimalSerializer.java

@ -22,7 +22,7 @@ public class BigDecimalSerializer extends JsonSerializer<BigDecimal> {
@Override
public void serialize(BigDecimal value, JsonGenerator gen, SerializerProvider serializerProvider) throws IOException {
log.info("value1:{}",value);
// log.info("value1:{}",value);
if (value != null) {
DecimalFormat df2 =new DecimalFormat("0.00");
gen.writeString(df2.format(value));
@ -33,7 +33,7 @@ public class BigDecimalSerializer extends JsonSerializer<BigDecimal> {
@Override
public void serializeWithType(BigDecimal value, JsonGenerator gen, SerializerProvider serializers, TypeSerializer typeSer) throws IOException {
log.info("value2:{}",value);
// log.info("value2:{}",value);
if (value != null) {
DecimalFormat df2 =new DecimalFormat("0.00");
gen.writeString(df2.format(value));

Loading…
Cancel
Save