Browse Source

2022年9月19日 18:21

wangzhuo 3 years ago
parent
commit
0470db93b7

+ 27 - 0
blade-service-api/blade-client-api/src/main/java/org/springblade/client/feign/ICorpsAttnClient.java

@@ -0,0 +1,27 @@
+package org.springblade.client.feign;
+
+import org.springblade.client.entity.CorpsAttn;
+import org.springblade.common.constant.LauncherConstant;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springblade.core.tool.api.R;
+
+@FeignClient(
+	value = LauncherConstant.APPLICATION_CLIENT_NAME
+)
+/**
+ * 用户信息对外访问API
+ */
+public interface ICorpsAttnClient {
+	String API_PREFIX = "/client";
+	String GET_USER = API_PREFIX + "/get_user";
+
+	/**
+	 * 获取用户信息
+	 * @param userId
+	 * @return
+	 */
+	@GetMapping(GET_USER)
+	CorpsAttn getUser(@RequestParam("userId") Long userId);
+}

+ 6 - 0
blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/entity/BidingAgent.java

@@ -115,4 +115,10 @@ public class BidingAgent implements Serializable {
 	 */
 	@ApiModelProperty(value = "备注")
 	private String remark;
+
+	/**
+	 * 不可编辑标识(0添加,1修改过一次)
+	 */
+	@ApiModelProperty(value = "不可编辑标识")
+	private Integer nonEditable;
 }

+ 44 - 0
blade-service/blade-client/src/main/java/org/springblade/client/corps/feign/CorpsAttnClient.java

@@ -0,0 +1,44 @@
+package org.springblade.client.corps.feign;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springblade.client.corps.service.ICorpsAttnService;
+import org.springblade.client.corps.service.ICorpsDescService;
+import org.springblade.client.entity.CorpsAttn;
+import org.springblade.client.entity.CorpsDesc;
+import org.springblade.client.feign.ICorpsAttnClient;
+import org.springblade.client.vo.CorpListVo;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.core.tool.utils.ObjectUtil;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+import springfox.documentation.annotations.ApiIgnore;
+
+@NonDS
+@ApiIgnore()
+@RestController
+@AllArgsConstructor
+public class CorpsAttnClient implements ICorpsAttnClient{
+
+	private final ICorpsAttnService corpsAttnService;
+
+	/**
+	 * 获取登录用户客户ID
+	 */
+	@Override
+	public CorpsAttn getUser(Long userId) {
+		CorpsAttn corpsAttn = corpsAttnService.getOne(new LambdaQueryWrapper<CorpsAttn>()
+			.eq(CorpsAttn::getUserId, userId)
+			.eq(CorpsAttn::getIsDeleted, 0)
+			.eq(CorpsAttn::getTenantId, AuthUtil.getTenantId())
+		);
+		return corpsAttn;
+	}
+
+}

+ 2 - 2
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/BidingMapper.xml

@@ -55,8 +55,8 @@
             BB.is_deleted = 0
             and BBA.is_deleted = 0
             and BB.status = 4
-            <if test="biding.deadlineTime != null and biding.deadlineTime != ''">
-                and BB.deadline_time &lt;= #{biding.deadlineTime}
+            <if test="biding.deadlineBeginTime != null and biding.deadlineBeginTime != ''">
+                and BB.deadline_time >= #{biding.deadlineBeginTime}
             </if>
         </where>
     </select>

+ 37 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/BidingItemsServiceImpl.java

@@ -4,11 +4,17 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import io.seata.common.util.CollectionUtils;
 import lombok.AllArgsConstructor;
+import org.springblade.client.entity.CorpsAttn;
+import org.springblade.client.feign.ICorpsAttnClient;
+import org.springblade.client.feign.ICorpsDescClient;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.secure.utils.SecureUtil;
+import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.core.tool.utils.StringUtil;
 import org.springblade.purchase.sales.entity.Biding;
+import org.springblade.purchase.sales.entity.BidingAgent;
 import org.springblade.purchase.sales.entity.BidingItems;
+import org.springblade.purchase.sales.mapper.BidingAgentMapper;
 import org.springblade.purchase.sales.mapper.BidingItemsMapper;
 import org.springblade.purchase.sales.mapper.BidingMapper;
 import org.springblade.purchase.sales.service.IBidingItemsService;
@@ -29,6 +35,9 @@ import java.util.List;
 public class BidingItemsServiceImpl extends ServiceImpl<BidingItemsMapper, BidingItems> implements IBidingItemsService {
 
 	private final BidingMapper bidingMapper;
+	private final ICorpsDescClient corpsDescClient;
+	private final BidingAgentMapper bidingAgentMapper;
+	private final ICorpsAttnClient corpsAttnClient;
 
 	/**
 	 * 保存订单明细信息
@@ -40,6 +49,32 @@ public class BidingItemsServiceImpl extends ServiceImpl<BidingItemsMapper, Bidin
 	 */
 	@Override
 	public List<BidingItems> saveBidingItemsMessage(List<BidingItems> list, Long pid, Integer distinguish){
+		//获得当前用户信息
+		CorpsAttn corpsAttn = corpsAttnClient.getUser(AuthUtil.getUserId());
+		if (ObjectUtil.isEmpty(corpsAttn) || ObjectUtil.isEmpty(corpsAttn.getPid())){
+			throw new SecurityException("用户信息异常");
+		}
+
+		//获得代理信息
+		LambdaQueryWrapper<BidingAgent> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(BidingAgent::getTenantId, AuthUtil.getTenantId());
+		lambdaQueryWrapper.eq(BidingAgent::getIsDeleted,0);
+		lambdaQueryWrapper.eq(BidingAgent::getPid, pid);
+		lambdaQueryWrapper.in(BidingAgent::getAgentId, corpsAttn.getPid());
+		BidingAgent bidingAgent = bidingAgentMapper.selectOne(lambdaQueryWrapper);
+
+		if (bidingAgent == null){
+			throw new SecurityException("数据异常");
+		}else {
+			if (bidingAgent.getNonEditable() == null){//为空代表第一次添加标书对比
+				bidingAgent.setNonEditable(0);
+			} else if (bidingAgent.getNonEditable() == 0){//为零代表已经添加标书 此次为修改
+				bidingAgent.setNonEditable(1);
+			} else if (bidingAgent.getNonEditable() == 1){//为一代表已经修改过一次 不允许再修改
+				throw new SecurityException("投标信息只允许修改一次");
+			}
+		}
+
 		list.forEach(item -> {
 			if (item.getId() == null){//id为空 新增
 				item.setTenantId(SecureUtil.getTenantId());
@@ -60,6 +95,8 @@ public class BidingItemsServiceImpl extends ServiceImpl<BidingItemsMapper, Bidin
 				baseMapper.updateById(item);
 			}
 		});
+		//更新代理明细信息
+		bidingAgentMapper.updateById(bidingAgent);
 		return list;
 	}