Browse Source

feat(goods): 模板可见范围拦截

muti_db
Yen 7 months ago
parent
commit
7951fd5bee
  1. 3
      src/main/java/com/qs/serve/controller/util/SyKeyLoginUtil.java
  2. 3
      src/main/java/com/qs/serve/modules/baz/controller/my/BazMyVisitInstanceController.java
  3. 17
      src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java
  4. 2
      src/main/java/com/qs/serve/modules/bms/controller/my/BmsChannelPointMyController.java
  5. 12
      src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java
  6. 2
      src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierServiceImpl.java
  7. 41
      src/main/java/com/qs/serve/modules/oms/controller/api/OmsOrderApi.java
  8. 2
      src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderSkuBo.java
  9. 5
      src/main/java/com/qs/serve/modules/seeyon/SeeYonController.java
  10. 16
      src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyCheckController.java
  11. 18
      src/main/java/com/qs/serve/modules/tbs/service/TbsCostApplyService.java
  12. 190
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java
  13. 6
      src/main/resources/application-dev.yml
  14. 3
      src/main/resources/application.yml

3
src/main/java/com/qs/serve/controller/util/SyKeyLoginUtil.java

@ -73,8 +73,7 @@ public class SyKeyLoginUtil {
+"&approvalId=0"; +"&approvalId=0";
} }
if(templateCode.equals(TbsSeeYonConst.PolicyConf.Code())){ if(templateCode.equals(TbsSeeYonConst.PolicyConf.Code())){
return "my-policy-application-approval-approved-detail?policyApplicationId=" + targetId + return "my-channel-discount-policy-application-approval-pending-detail?channelDiscountPolicyApplicationId="+targetId+"&approvalId=0";
"&approvalId=0";
} }
return "404"; return "404";
} }

3
src/main/java/com/qs/serve/modules/baz/controller/my/BazMyVisitInstanceController.java

@ -131,8 +131,9 @@ public class BazMyVisitInstanceController {
if(userIds.size()<1){ if(userIds.size()<1){
return R.ok(); return R.ok();
} }
String userId = AuthContextUtils.getSysUserId(); String userId = AuthContextUtils.getSysUserId();
PageUtil.startPage(); //PageUtil.startPage();
query.setQueryUserIds(userIds); query.setQueryUserIds(userIds);
query.setIgnoreUserId(userId); query.setIgnoreUserId(userId);
List<BazVisitInstance> list = bazVisitInstanceService.selectBazVisitInstanceList(query); List<BazVisitInstance> list = bazVisitInstanceService.selectBazVisitInstanceList(query);

17
src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java

@ -37,8 +37,11 @@ import com.qs.serve.modules.sys.service.SysAttachService;
import com.qs.serve.modules.sys.service.SysPostUserService; import com.qs.serve.modules.sys.service.SysPostUserService;
import com.qs.serve.modules.sys.service.SysUserService; import com.qs.serve.modules.sys.service.SysUserService;
import com.qs.serve.modules.tbs.common.TbsCenterType; import com.qs.serve.modules.tbs.common.TbsCenterType;
import com.qs.serve.modules.tbs.entity.TbsActivityTemplate;
import com.qs.serve.modules.tbs.entity.TbsBudget; import com.qs.serve.modules.tbs.entity.TbsBudget;
import com.qs.serve.modules.tbs.service.TbsActivityTemplateService;
import com.qs.serve.modules.tbs.service.TbsBudgetService; import com.qs.serve.modules.tbs.service.TbsBudgetService;
import com.qs.serve.modules.tbs.service.TbsCostApplyService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -62,6 +65,7 @@ import java.util.stream.Collectors;
@RequestMapping("bms/supplier") @RequestMapping("bms/supplier")
public class BmsSupplierController { public class BmsSupplierController {
private TbsActivityTemplateService tbsActivityTemplateService;
private BmsSupplierService bmsSupplierService; private BmsSupplierService bmsSupplierService;
private BmsSupplierComRegionMapper supplierComRegionMapper; private BmsSupplierComRegionMapper supplierComRegionMapper;
private BmsSupplierAddressService bmsSupplierAddressService; private BmsSupplierAddressService bmsSupplierAddressService;
@ -81,6 +85,7 @@ public class BmsSupplierController {
private BirBudgetTargetService birBudgetTargetService; private BirBudgetTargetService birBudgetTargetService;
private HisUserSupplierServiceImpl hisUserSupplierServiceImpl; private HisUserSupplierServiceImpl hisUserSupplierServiceImpl;
private BmsSupplierMapper supplierMapper; private BmsSupplierMapper supplierMapper;
private TbsCostApplyService tbsCostApplyService;
/** /**
@ -173,6 +178,18 @@ public class BmsSupplierController {
List<BmsSupplier> list = bmsSupplierService.selectSupplierList(param); List<BmsSupplier> list = bmsSupplierService.selectSupplierList(param);
initSupplierList(list); initSupplierList(list);
initParentList(list); initParentList(list);
//拦截活动模板不可选的客户
if(param.getActivityTemplateId()!=null){
TbsActivityTemplate template = tbsActivityTemplateService.getById(param.getActivityTemplateId());
if(template!=null && list.size()>0){
List<String> supplierIds = tbsCostApplyService.checkTemplateId(list,template);
for (BmsSupplier supplier : list) {
if(supplierIds.stream().noneMatch(a->a.equals(supplier.getId()))){
supplier.setDisableFlag(1);
}
}
}
}
return R.byPageHelperList(list); return R.byPageHelperList(list);
} }

2
src/main/java/com/qs/serve/modules/bms/controller/my/BmsChannelPointMyController.java

@ -2,6 +2,7 @@ package com.qs.serve.modules.bms.controller.my;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.qs.serve.common.model.annotation.LimitSubmit;
import com.qs.serve.common.model.annotation.SysLog; import com.qs.serve.common.model.annotation.SysLog;
import com.qs.serve.common.model.dto.PageVo; import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.dto.R;
@ -221,6 +222,7 @@ public class BmsChannelPointMyController {
* @param param * @param param
* @return * @return
*/ */
@LimitSubmit(interval = 60000)
@GetMapping("/page4Under") @GetMapping("/page4Under")
public R<PageVo<BmsChannelPoint>> getPage4Under(BmsChannelPoint param){ public R<PageVo<BmsChannelPoint>> getPage4Under(BmsChannelPoint param){
String loginUserId = AuthContextUtils.getSysUserId(); String loginUserId = AuthContextUtils.getSysUserId();

12
src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java

@ -391,6 +391,18 @@ public class BmsSupplier implements Serializable {
@TableField(exist = false) @TableField(exist = false)
List<TagQuery> tagQueryList; List<TagQuery> tagQueryList;
/**
* 过滤活动模板的可选范围时必传
*/
@TableField(exist = false)
private Long activityTemplateId;
/**
* 根据activityTemplateId更新值
*/
@TableField(exist = false)
private Integer disableFlag = 0;
/** /**
* 对应是supplierFlag * 对应是supplierFlag
*/ */

2
src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierServiceImpl.java

@ -150,7 +150,7 @@ public class BmsSupplierServiceImpl extends ServiceImpl<BmsSupplierMapper,BmsSup
public BmsSupplier getByNameOrCode(String value) { public BmsSupplier getByNameOrCode(String value) {
LambdaQueryWrapper<BmsSupplier> lqw = new LambdaQueryWrapper<>(); LambdaQueryWrapper<BmsSupplier> lqw = new LambdaQueryWrapper<>();
lqw.eq(BmsSupplier::getName,value).or().eq(BmsSupplier::getCode,value); lqw.eq(BmsSupplier::getName,value).or().eq(BmsSupplier::getCode,value);
return this.getOne(lqw,true); return this.getOne(lqw,false);
} }
@Override @Override

41
src/main/java/com/qs/serve/modules/oms/controller/api/OmsOrderApi.java

@ -43,9 +43,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.validation.Valid; import javax.validation.Valid;
import java.util.ArrayList; import java.util.*;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -179,7 +177,7 @@ public class OmsOrderApi {
Assert.throwEx("审批状态不支持取消操作"); Assert.throwEx("审批状态不支持取消操作");
} }
} }
omsOrderService.checkMsOrderStatus(omsOrder); //omsOrderService.checkMsOrderStatus(omsOrder);
if(omsOrder.getStatus().equals(0)||omsOrder.getStatus().equals(1)){ if(omsOrder.getStatus().equals(0)||omsOrder.getStatus().equals(1)){
//去执行取消 //去执行取消
omsOrderService.cancelOrder(omsOrder.getOrderSn()); omsOrderService.cancelOrder(omsOrder.getOrderSn());
@ -302,20 +300,33 @@ public class OmsOrderApi {
orderWrapper.in(OmsOrder::getUserId,userIds); orderWrapper.in(OmsOrder::getUserId,userIds);
orderWrapper.orderByDesc(OmsOrder::getId); orderWrapper.orderByDesc(OmsOrder::getId);
List<OmsOrder> list = omsOrderService.list(orderWrapper); List<OmsOrder> list = omsOrderService.list(orderWrapper);
for (OmsOrder order : list) {
omsOrderService.checkMsOrderStatus(order);
BmsSupplierAddress supplierAddress = bmsSupplierAddressService.getById(order.getSupplierAddrId());
order.setAddressInfo(supplierAddress);
SysUser sysUser = sysUserService.getById(order.getCheckUserId());
if(sysUser!=null){
order.setCheckUserInfo(sysUser.toSysUserVo());
}
Set<Long> addrIds = list.stream().map(OmsOrder::getSupplierAddrId).filter(Objects::nonNull).collect(Collectors.toSet());
List<BmsSupplierAddress> supplierAddressList = bmsSupplierAddressService.listByIds(addrIds);
Set<String> checkUserIds = list.stream().map(OmsOrder::getCheckUserId).filter(Objects::nonNull).collect(Collectors.toSet());
List<SysUser> sysUsers = sysUserService.listByIds(checkUserIds);
Set<Long> orderIds = list.stream().map(OmsOrder::getId).filter(Objects::nonNull).collect(Collectors.toSet());
LambdaQueryWrapper<OmsOrderItem> lqw = new LambdaQueryWrapper<>(); LambdaQueryWrapper<OmsOrderItem> lqw = new LambdaQueryWrapper<>();
lqw.eq(OmsOrderItem::getOrderId,order.getId()); lqw.in(OmsOrderItem::getOrderId,orderIds);
List<OmsOrderItem> items = omsOrderItemService.list(lqw); List<OmsOrderItem> items = omsOrderItemService.list(lqw);
order.setOrderItems(items); Map<Long,List<OmsOrderItem>> orderItemMap = items.stream().collect(Collectors.groupingBy(OmsOrderItem::getOrderId));
for (OmsOrder order : list) {
if(order.getSupplierAddrId()!=null){
for (BmsSupplierAddress address : supplierAddressList) {
if(order.getSupplierAddrId().equals(address.getId())){
order.setAddressInfo(address);
}
}
}
for (SysUser sysUser : sysUsers) {
if(sysUser.getId().equals(order.getCheckUserId())){
order.setCheckUserInfo(sysUser.toSysUserVo());
break;
}
}
order.setOrderItems(orderItemMap.get(order.getId()));
} }
return R.byPageHelperList(list); return R.byPageHelperList(list);
} }

2
src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderSkuBo.java

@ -48,7 +48,7 @@ public class OmsOrderSkuBo {
private Long skuId; private Long skuId;
private Long skuCode; private String skuCode;
/** 数量 */ /** 数量 */
private Integer qty; private Integer qty;

5
src/main/java/com/qs/serve/modules/seeyon/SeeYonController.java

@ -167,11 +167,6 @@ public class SeeYonController {
String fontUrl = "/#/jump?code=001&token="+token+"&jumpTo="+jumpUrl; String fontUrl = "/#/jump?code=001&token="+token+"&jumpTo="+jumpUrl;
//String fontUrl = projectProperties.getWebUrl() + "/#/jump?code=001&token="+token+"&jumpTo="+jumpUrl; //String fontUrl = projectProperties.getWebUrl() + "/#/jump?code=001&token="+token+"&jumpTo="+jumpUrl;
log.warn("fontUrl:{}",fontUrl); log.warn("fontUrl:{}",fontUrl);
/*try {
response.sendRedirect(fontUrl);
} catch (IOException e) {
e.printStackTrace();
}*/
return R.ok(fontUrl,"ok"); return R.ok(fontUrl,"ok");
} }

16
src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyCheckController.java

@ -55,8 +55,10 @@ import java.util.stream.Collectors;
@RequestMapping("tbs/costApply") @RequestMapping("tbs/costApply")
public class TbsCostApplyCheckController { public class TbsCostApplyCheckController {
private BmsSupplierService bmsSupplierService;
private TbsCostApplyService tbsCostApplyService; private TbsCostApplyService tbsCostApplyService;
private TbsCostApplyOperationServiceImpl tbsCostApplyOperationServiceImpl; private TbsCostApplyOperationServiceImpl tbsCostApplyOperationServiceImpl;
private TbsActivityTemplateService tbsActivityTemplateService;
private TbsActivityService activityService; private TbsActivityService activityService;
private TbsBudgetManagerService budgetManagerService; private TbsBudgetManagerService budgetManagerService;
@ -83,6 +85,20 @@ public class TbsCostApplyCheckController {
return R.ok(data); return R.ok(data);
} }
/**
* 核对客户可用费用模板
* @param supplierId
* @param templateId
* @return
*/
@GetMapping("/checkTemplate")
public R<?> checkTemplate(String supplierId,String templateId){
BmsSupplier supplier = bmsSupplierService.getById(supplierId);
TbsActivityTemplate template = tbsActivityTemplateService.getById(templateId);
boolean rs = tbsCostApplyService.checkTemplateId(supplier,template);
return R.isTrue(rs);
}
/** /**
* 提交费用申请 * 提交费用申请
* @param id * @param id

18
src/main/java/com/qs/serve/modules/tbs/service/TbsCostApplyService.java

@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.dto.R;
import com.qs.serve.modules.bms.entity.BmsApplyMessage; import com.qs.serve.modules.bms.entity.BmsApplyMessage;
import com.qs.serve.modules.bms.entity.BmsSupplier;
import com.qs.serve.modules.tbs.entity.TbsActivityTemplate;
import com.qs.serve.modules.tbs.entity.TbsCostApply; import com.qs.serve.modules.tbs.entity.TbsCostApply;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@ -57,6 +59,22 @@ public interface TbsCostApplyService extends IService<TbsCostApply> {
*/ */
void commitApply(String id); void commitApply(String id);
/**
* 校验模板是否正确
* @param supplier
* @param template
* @return 是否正确
*/
boolean checkTemplateId(BmsSupplier supplier, TbsActivityTemplate template);
/**
* 批量关了客户校验后可用的模板结果
* @param supplier
* @param template
* @return 可用的客户id
*/
List<String> checkTemplateId(List<BmsSupplier> supplier, TbsActivityTemplate template);
/** /**
* 事故修复方法替换原来的审批流程(仅支持无核销的审批) * 事故修复方法替换原来的审批流程(仅支持无核销的审批)
* @param id * @param id

190
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java

@ -1,5 +1,6 @@
package com.qs.serve.modules.tbs.service.impl; package com.qs.serve.modules.tbs.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@ -34,11 +35,17 @@ import com.qs.serve.modules.bms.mapper.BmsApplyMessageMapper;
import com.qs.serve.modules.bms.mapper.BmsRegion2Mapper; import com.qs.serve.modules.bms.mapper.BmsRegion2Mapper;
import com.qs.serve.modules.bms.mapper.BmsRegionMapper; import com.qs.serve.modules.bms.mapper.BmsRegionMapper;
import com.qs.serve.modules.bms.mapper.BmsSupplierTargetMapper; import com.qs.serve.modules.bms.mapper.BmsSupplierTargetMapper;
import com.qs.serve.modules.bms.service.BmsSubjectRegionService;
import com.qs.serve.modules.bms.service.BmsSubjectService; import com.qs.serve.modules.bms.service.BmsSubjectService;
import com.qs.serve.modules.bms.service.BmsSupplierService; import com.qs.serve.modules.bms.service.BmsSupplierService;
import com.qs.serve.modules.erp.entity.dto.ErpDispatchSumVo; import com.qs.serve.modules.erp.entity.dto.ErpDispatchSumVo;
import com.qs.serve.modules.erp.mapper.ErpDispatchDataMapper; import com.qs.serve.modules.erp.mapper.ErpDispatchDataMapper;
import com.qs.serve.modules.goods.common.GoodsType; import com.qs.serve.modules.goods.common.GoodsType;
import com.qs.serve.modules.goods.entity.GoodsCategory;
import com.qs.serve.modules.goods.entity.GoodsSpu;
import com.qs.serve.modules.goods.mapper.GoodsCategoryMapper;
import com.qs.serve.modules.goods.mapper.GoodsSkuMapper;
import com.qs.serve.modules.goods.mapper.GoodsSpuMapper;
import com.qs.serve.modules.seeyon.entity.BaseCreateCallbackBo; import com.qs.serve.modules.seeyon.entity.BaseCreateCallbackBo;
import com.qs.serve.modules.seeyon.entity.BaseCreateProcessBo; import com.qs.serve.modules.seeyon.entity.BaseCreateProcessBo;
import com.qs.serve.modules.seeyon.service.SeeYonRequestService; import com.qs.serve.modules.seeyon.service.SeeYonRequestService;
@ -95,6 +102,8 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
private RedisService redisService; private RedisService redisService;
private TbsActivityChannelPointMapper tbsActivityChannelPointMapper; private TbsActivityChannelPointMapper tbsActivityChannelPointMapper;
private TbsActivityTemplateRegionMapper tbsActivityTemplateRegionMapper;
private TbsActivityTemplateMapper tbsActivityTemplateMapper;
private VtbVerificationMapper vtbVerificationMapper; private VtbVerificationMapper vtbVerificationMapper;
private TbsBudgetApplicationService budgetApplicationService; private TbsBudgetApplicationService budgetApplicationService;
private TbsBudgetCostItemService budgetCostItemService; private TbsBudgetCostItemService budgetCostItemService;
@ -120,6 +129,10 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
private VtbVerificationMapper verificationMapper; private VtbVerificationMapper verificationMapper;
private SysAttachService sysAttachService; private SysAttachService sysAttachService;
private GoodsSpuMapper goodsSpuMapper;
private GoodsSkuMapper goodsSkuMapper;
private GoodsCategoryMapper goodsCategoryMapper;
private BirRoiRateService birRoiRateService; private BirRoiRateService birRoiRateService;
private BirCenterRateService centerRateService; private BirCenterRateService centerRateService;
private BirRoiRateMapper birRoiRateMapper; private BirRoiRateMapper birRoiRateMapper;
@ -130,6 +143,7 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
private TbsBudgetMatchApplication tbsBudgetMatchApplication; private TbsBudgetMatchApplication tbsBudgetMatchApplication;
private BmsSubjectRegionService bmsSubjectRegionService;
private TbsCostCheckStateMapper costCheckStateMapper; private TbsCostCheckStateMapper costCheckStateMapper;
private TbsCostApplyMapper tbsCostApplyMapper; private TbsCostApplyMapper tbsCostApplyMapper;
private ProjectApisProperties projectApisProperties; private ProjectApisProperties projectApisProperties;
@ -527,12 +541,94 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
return "success"; return "success";
} }
@Override
public boolean checkTemplateId(BmsSupplier supplier, TbsActivityTemplate template) {
Long templateId = template.getId();
boolean isIgnore = template.getSaleRegionFlag().equals(0)&&template.getBizRegionFlag().equals(0);
boolean isStop = template.getSaleRegionFlag().equals(2)&&template.getBizRegionFlag().equals(2);
if(isStop){
Assert.throwEx("模板已停用");
}
if(! isIgnore){
List<TbsActivityTemplateRegion> regionList = tbsActivityTemplateRegionMapper.selectList(
new LambdaQueryWrapper<TbsActivityTemplateRegion>()
.eq(TbsActivityTemplateRegion::getTemplateId,templateId));
List<String> bizRegionIds = supplier.listBizRegionIds();
List<String> saleRegionIds = supplier.listSaleRegionIds();
boolean isPass = false;
for (TbsActivityTemplateRegion templateRegion : regionList) {
if(templateRegion.getType().equals("sale")&&template.getSaleRegionFlag().equals(1)){
if(saleRegionIds.contains(templateRegion.getRegionId())){
isPass = true;
break;
}
}
if (templateRegion.getType().equals("biz")&&template.getBizRegionFlag().equals(1)){
if(bizRegionIds.contains(templateRegion.getRegionId())){
isPass = true;
break;
}
}
}
if(!isPass){
return false;
}
}
return true;
}
@Override
public List<String> checkTemplateId(List<BmsSupplier> supplierList, TbsActivityTemplate template) {
Long templateId = template.getId();
boolean isIgnore = template.getSaleRegionFlag().equals(0)&&template.getBizRegionFlag().equals(0);
boolean isStop = template.getSaleRegionFlag().equals(2)&&template.getBizRegionFlag().equals(2);
if(isStop){
return new ArrayList<>();
}
if(! isIgnore){
List<TbsActivityTemplateRegion> regionList = tbsActivityTemplateRegionMapper.selectList(
new LambdaQueryWrapper<TbsActivityTemplateRegion>()
.eq(TbsActivityTemplateRegion::getTemplateId,templateId));
List<String> passSupplierIdList = new ArrayList<>();
for (BmsSupplier supplier : supplierList) {
List<String> bizRegionIds = supplier.listBizRegionIds();
List<String> saleRegionIds = supplier.listSaleRegionIds();
boolean isPass = false;
for (TbsActivityTemplateRegion templateRegion : regionList) {
if(templateRegion.getType().equals("sale")&&template.getSaleRegionFlag().equals(1)){
if(saleRegionIds.contains(templateRegion.getRegionId())){
passSupplierIdList.add(supplier.getId());
break;
}
}
if (templateRegion.getType().equals("biz")&&template.getBizRegionFlag().equals(1)){
if(bizRegionIds.contains(templateRegion.getRegionId())){
passSupplierIdList.add(supplier.getId());
break;
}
}
}
}
return passSupplierIdList;
}
return supplierList.stream().map(BmsSupplier::getId).collect(Collectors.toList());
}
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void commitApply(String id) { public void commitApply(String id) {
TbsCostApply tbsCostApply = this.getById(id); TbsCostApply tbsCostApply = this.getById(id);
redisService.throwResLock(TbsCostApply.class.getSimpleName(),id); redisService.throwResLock(TbsCostApply.class.getSimpleName(),id);
seeYonService.testConnection();
BmsSupplier supplier = bmsSupplierService.getById(tbsCostApply.getSupplierId());
if(supplier.getCostFlag().equals(0)||supplier.getStopFlag().equals(1)){
Assert.throwEx("["+supplier.getName()+"]无投放费用权限");
}
// 商品拦截
List<TbsActivityGoods> activityCenterGoodsList = tbsActivityGoodsService.listByCostApplyId(Long.parseLong(id));
this.validActivityGoods(activityCenterGoodsList);
if(!tbsCostApply.getChargeState().equals(TbsCostApplyState.State_0_unPublish.getCode()) if(!tbsCostApply.getChargeState().equals(TbsCostApplyState.State_0_unPublish.getCode())
&&!tbsCostApply.getChargeState().equals(TbsCostApplyState.State_4_refused.getCode())){ &&!tbsCostApply.getChargeState().equals(TbsCostApplyState.State_4_refused.getCode())){
Assert.throwEx("操作失败,申请费用状态不支持"); Assert.throwEx("操作失败,申请费用状态不支持");
@ -556,19 +652,52 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
} }
} }
//判断是否进场费 //科目拦截:判断是否进场费
List<TbsActivitySubject> activitySubjects = tbsActivitySubjectService.listByCostApplyId(tbsCostApply.getId());
List<BmsSubject> subjectList = subjectService.listByIds(
activitySubjects.stream().map(TbsActivitySubject::getSubjectId).collect(Collectors.toList()));
if(tbsCostApply.getContractFlag()!=null&&tbsCostApply.getContractFlag().equals(2)){ if(tbsCostApply.getContractFlag()!=null&&tbsCostApply.getContractFlag().equals(2)){
if (activityList.size()>1){ if (activityList.size()>1){
Assert.throwEx("进场费类型只能有一个活动"); Assert.throwEx("进场费类型只能有一个活动");
} }
List<TbsActivitySubject> activitySubjects = tbsActivitySubjectService.listByCostApplyId(tbsCostApply.getId()); if(subjectList.stream().anyMatch(s->s.getSlottingFlag().equals(0))){
List<Long> subjectIds = activitySubjects.stream().map(TbsActivitySubject::getSubjectId).collect(Collectors.toList()); Assert.throwEx("当前申请含非进场费类型科目");
LambdaQueryWrapper<BmsSubject> subjectLqw = new LambdaQueryWrapper<>(); }
subjectLqw.in(BmsSubject::getId,subjectIds); }
subjectLqw.eq(BmsSubject::getSlottingFlag,0); //模板拦截
long count = subjectService.count(subjectLqw); boolean isIgnoreSubject = false;
if(count>0){ if(activityList.size()==1){
Assert.throwEx("改申请含非进场费类型科目"); Long templateId = activityList.get(0).getTemplateId();
if (templateId!=null){
// 模板不拦截科目范围
isIgnoreSubject = true;
// 拦截模板的可见范围
TbsActivityTemplate activityTemplate = tbsActivityTemplateService.getById(tbsCostApply.getTemplateId());
boolean isPass = this.checkTemplateId(supplier,activityTemplate);
if(!isPass){
Assert.throwEx("当前申请模板不可用");
}
}
}
// 使用模板的忽略科目拦截
if(!isIgnoreSubject){
List<BmsSubjectRegion> subjectBizRegionList = bmsSubjectRegionService.listByRegionIds(supplier.listBizRegionIds(),1);
List<BmsSubjectRegion> subjectSaleRegionList = bmsSubjectRegionService.listByRegionIds(supplier.listSaleRegionIds(),0);
for (BmsSubject subject : subjectList) {
if(subject.getBizRegionFlag().equals(0)&&subject.getSaleRegionFlag().equals(0)){
continue;
}
if(subject.getBizRegionFlag().equals(1)){
if(subjectBizRegionList.stream().anyMatch(s->s.getSubjectId().equals(subject.getId()))){
continue;
}
}
if(subject.getSaleRegionFlag().equals(1)){
if(subjectSaleRegionList.stream().anyMatch(s->s.getSubjectId().equals(subject.getId()))){
continue;
}
}
Assert.throwEx("当前申请含非业务区域科目:"+subject.getSubjectCode());
} }
} }
@ -605,7 +734,6 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
Assert.throwEx("没有有效的活动内容"); Assert.throwEx("没有有效的活动内容");
}else { }else {
Long supplierId = activityList.get(0).getSupplierId(); Long supplierId = activityList.get(0).getSupplierId();
BmsSupplier supplier = bmsSupplierService.getById(supplierId);
if(!supplier.getSupplierFlag().equals(1)&&!supplier.getSupplierFlag().equals(2)){ if(!supplier.getSupplierFlag().equals(1)&&!supplier.getSupplierFlag().equals(2)){
Assert.throwEx("协议类申请只对供应商开放"); Assert.throwEx("协议类申请只对供应商开放");
} }
@ -620,10 +748,6 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
} }
} }
BmsSupplier supplier = bmsSupplierService.getById(tbsCostApply.getSupplierId());
if(supplier.getCostFlag().equals(0)){
Assert.throwEx("["+supplier.getName()+"]无投放费用权限");
}
SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId()); SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId());
sysUser.checkSyAccount(); sysUser.checkSyAccount();
@ -934,6 +1058,42 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
} }
/**
* 校验活动商品的有效性
* 此方法旨在确保参与活动的商品或类别处于有效状态包括检查是否已下架和是否已启用费用
* @param activityCenterGoodsList 活动商品列表包含待校验的商品或类别信息
*/
private void validActivityGoods(List<TbsActivityGoods> activityCenterGoodsList) {
List<TbsActivityGoods> spuGoods = activityCenterGoodsList.stream()
.filter(a->a.getTargetType().equals("spu")).collect(Collectors.toList());
if(CollectionUtil.isNotEmpty(spuGoods)){
List<Long> spuIds = spuGoods.stream().map(TbsActivityGoods::getTargetId).collect(Collectors.toList());
List<GoodsSpu> skuList = goodsSpuMapper.selectBatchIds(spuIds);
for (GoodsSpu spu : skuList) {
if(spu.getShelf().equals(0)){
Assert.throwEx("【"+spu.getName()+"】已下架,请重新选择");
}
if(spu.getCostFlag().equals(0)){
Assert.throwEx("【"+spu.getName()+"】未启用费用,请重新选择");
}
}
}
List<TbsActivityGoods> cateGoods = activityCenterGoodsList.stream()
.filter(a->!a.getTargetType().equals("spu")).collect(Collectors.toList());
if(CollectionUtil.isNotEmpty(cateGoods)){
List<Long> cateIds = cateGoods.stream().map(TbsActivityGoods::getTargetId).collect(Collectors.toList());
List<GoodsCategory> cateList = goodsCategoryMapper.selectBatchIds(cateIds);
for (GoodsCategory cate : cateList) {
if(cate.getCostFlag().equals(0)){
Assert.throwEx("【"+cate.getName()+"】未启用费用,请重新选择");
}
if(cate.getEnable().equals(0)){
Assert.throwEx("【"+cate.getName()+"】已下架,请重新选择");
}
}
}
}
/** /**
* 创建协议类的申请DATA * 创建协议类的申请DATA
* @param id * @param id

6
src/main/resources/application-dev.yml

@ -83,9 +83,10 @@ spring:
datasource: datasource:
crm_db: crm_db:
driver-class-name: com.mysql.cj.jdbc.Driver driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://192.168.0.9:3306/jsl_mall_qs_dev?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true url: jdbc:mysql://192.168.0.9:3306/jsl_mall_qs_dev?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&rewriteBatchedStatements=true
username: kpjsl username: kpjsl
password: 123456 password: 123456
qisheng: qisheng:
url: jdbc:sqlserver://192.168.10.11:1433;DatabaseName=JSL_COST_QS url: jdbc:sqlserver://192.168.10.11:1433;DatabaseName=JSL_COST_QS
username: sa username: sa
@ -108,6 +109,9 @@ spring:
# 数据库连接超时时间,默认30秒,即30000 # 数据库连接超时时间,默认30秒,即30000
connection-timeout: 30000 connection-timeout: 30000
connection-test-query: SELECT 1 connection-test-query: SELECT 1
validation-timeout: 1
login-timeout: 5
redis: redis:
database: 1 database: 1
host: 127.0.0.1 host: 127.0.0.1

3
src/main/resources/application.yml

@ -30,6 +30,7 @@ project:
- /portal/flushToken #第三方接口 - /portal/flushToken #第三方接口
- /common/upload #支持API上传调整 - /common/upload #支持API上传调整
- /common/validToken #验证token - /common/validToken #验证token
- /sys/attach/listByIds/**
- /api/** - /api/**
- /static/** - /static/**
- /web/** - /web/**
@ -58,7 +59,7 @@ logging:
level: level:
ROOT: info ROOT: info
com.qs.serve: debug com.qs.serve: debug
#com.qs.serve.modules.his: info com.qs.serve.modules.his: info
com.qs.serve.modules.sys: info com.qs.serve.modules.sys: info
com.qs.serve.modules.tag: info com.qs.serve.modules.tag: info
org.xnio.nio: info org.xnio.nio: info

Loading…
Cancel
Save