Kaynağa Gözat

Merge remote-tracking branch 'origin/dev' into dev

linbl 2 yıl önce
ebeveyn
işleme
b6b8e7ecb7
31 değiştirilmiş dosya ile 1714 ekleme ve 27 silme
  1. 22 3
      sp-core/sp-api/src/main/java/com/pj/api/client/level_one_server/LevelOneServerInterface.java
  2. 31 0
      sp-core/sp-api/src/main/java/com/pj/api/client/level_one_server/LevelOneServerInterfaceFallback.java
  3. 308 0
      sp-core/sp-api/src/main/java/com/pj/api/dto/GoodsDto.java
  4. 2 4
      sp-core/sp-base/src/main/java/com/pj/retry/SmsRetryService.java
  5. 1 1
      sp-service/level-one-server/src/main/java/com/pj/tb_enterprise/TbEnterpriseController.java
  6. 9 2
      sp-service/level-one-server/src/main/java/com/pj/tb_goods/TbGoodsController.java
  7. 9 0
      sp-service/level-one-server/src/main/java/com/pj/tb_goods/TbGoodsService.java
  8. 1 4
      sp-service/level-one-server/src/main/java/com/pj/tb_goods_transit/MethodGoodsTransitService.java
  9. 1 1
      sp-service/level-one-server/src/main/java/com/pj/tb_goods_transit/TbGoodsTransitService.java
  10. 6 6
      sp-service/level-one-server/src/main/java/com/pj/tb_goods_type/TbGoodsTypeController.java
  11. 8 1
      sp-service/level-one-server/src/main/java/com/pj/tb_group/TbGroupController.java
  12. 8 0
      sp-service/level-one-server/src/main/java/com/pj/tb_group/TbGroupService.java
  13. 15 1
      sp-service/level-one-server/src/main/java/com/pj/tb_people/TbPeopleController.java
  14. 28 4
      sp-service/level-one-server/src/main/java/com/pj/tb_people/TbPeopleService.java
  15. 103 0
      sp-service/level-two-server/src/main/java/com/pj/tb_demand_quotation/AppTbDemandQuotationController.java
  16. 116 0
      sp-service/level-two-server/src/main/java/com/pj/tb_demand_quotation/TbDemandQuotation.java
  17. 87 0
      sp-service/level-two-server/src/main/java/com/pj/tb_demand_quotation/TbDemandQuotationController.java
  18. 30 0
      sp-service/level-two-server/src/main/java/com/pj/tb_demand_quotation/TbDemandQuotationMapper.java
  19. 59 0
      sp-service/level-two-server/src/main/java/com/pj/tb_demand_quotation/TbDemandQuotationMapper.xml
  20. 117 0
      sp-service/level-two-server/src/main/java/com/pj/tb_demand_quotation/TbDemandQuotationService.java
  21. 27 0
      sp-service/level-two-server/src/main/java/com/pj/tb_demand_quotation/TbDemandQuotationUtil.java
  22. 30 0
      sp-service/level-two-server/src/main/java/com/pj/tb_demand_quotation/param/DemandQuotationParam.java
  23. 96 0
      sp-service/level-two-server/src/main/java/com/pj/tb_goods_demand/AppTbGoodsDemandController.java
  24. 114 0
      sp-service/level-two-server/src/main/java/com/pj/tb_goods_demand/MethodGoodsDemandService.java
  25. 109 0
      sp-service/level-two-server/src/main/java/com/pj/tb_goods_demand/TbGoodsDemand.java
  26. 87 0
      sp-service/level-two-server/src/main/java/com/pj/tb_goods_demand/TbGoodsDemandController.java
  27. 30 0
      sp-service/level-two-server/src/main/java/com/pj/tb_goods_demand/TbGoodsDemandMapper.java
  28. 63 0
      sp-service/level-two-server/src/main/java/com/pj/tb_goods_demand/TbGoodsDemandMapper.xml
  29. 109 0
      sp-service/level-two-server/src/main/java/com/pj/tb_goods_demand/TbGoodsDemandService.java
  30. 27 0
      sp-service/level-two-server/src/main/java/com/pj/tb_goods_demand/TbGoodsDemandUtil.java
  31. 61 0
      sp-service/level-two-server/src/main/java/com/pj/tb_goods_demand/vo/GoodsDemandVo.java

+ 22 - 3
sp-core/sp-api/src/main/java/com/pj/api/client/level_one_server/LevelOneServerInterface.java

@@ -3,11 +3,15 @@ package com.pj.api.client.level_one_server;
 import com.pj.api.FeignInterceptor;
 import com.pj.api.consts.FeignConsts;
 import com.pj.api.dto.EnterpriseDto;
+import com.pj.api.dto.GoodsDto;
 import com.pj.api.dto.GroupDto;
 import com.pj.api.dto.PeopleDto;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.List;
 
 /**
  * @Author Mechrevo
@@ -20,15 +24,30 @@ import org.springframework.web.bind.annotation.RequestMapping;
 )
 public interface LevelOneServerInterface {
 
+    @RequestMapping("/TbPeople/rpc/getPeopleList")
+    public List<PeopleDto> getPeopleList(@RequestParam("groupId")Long groupId);
+
+    /** 查 - 根据id */
+    @RequestMapping("/TbGoods/rpc/getBygoodsId")
+    public GoodsDto getByGoodsId(@RequestParam("goodsId") Long goodsId);
+
+    /** 根据ID获取边民信息 */
+    @RequestMapping("/TbPeople/rpc/getRpcById")
+    public PeopleDto getRpcById(@RequestParam("id")Long peopleId);
+
+    /** 根据ID获取边民组信息 */
+    @RequestMapping("/TbGroup/rpc/getRpcById")
+    public GroupDto getRpcById(@RequestParam("id") String id);
+
     /** 添加商家身份信息 */
-    @RequestMapping("/TbEnterprise/enterpriseDto")
+    @RequestMapping("/TbEnterprise/rpc/enterpriseDto")
     public boolean enterpriseDto(@RequestBody EnterpriseDto enterpriseDto);
 
     /** 添加组长信息 */
-    @RequestMapping("/TbGroup/groupDto")
+    @RequestMapping("/TbGroup/rpc/groupDto")
     public boolean groupDto(@RequestBody GroupDto groupDto);
 
     /** 添加普通边民信息 */
-    @RequestMapping("/TbPeople/peopleDto")
+    @RequestMapping("/TbPeople/rpc/peopleDto")
     public boolean peopleDto(@RequestBody PeopleDto peopleDto);
 }

+ 31 - 0
sp-core/sp-api/src/main/java/com/pj/api/client/level_one_server/LevelOneServerInterfaceFallback.java

@@ -2,6 +2,7 @@ package com.pj.api.client.level_one_server;
 
 import com.pj.api.client.admin.AdminInterfaceFallback;
 import com.pj.api.dto.EnterpriseDto;
+import com.pj.api.dto.GoodsDto;
 import com.pj.api.dto.GroupDto;
 import com.pj.api.dto.PeopleDto;
 import feign.hystrix.FallbackFactory;
@@ -9,6 +10,8 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Component;
 
+import java.util.List;
+
 /**
  * @Author Mechrevo
  * @Date 2023 08 01 10 32
@@ -22,6 +25,34 @@ public class LevelOneServerInterfaceFallback implements FallbackFactory<LevelOne
     public LevelOneServerInterface create(Throwable throwable) {
         return new LevelOneServerInterface() {
             @Override
+            public List<PeopleDto> getPeopleList(Long groupId) {
+                System.out.println(throwable.getMessage());
+                log.error("根据groupId查询旗下所有边民错误:{},错误信息是{}",groupId,throwable.getMessage());
+                return null;
+            }
+
+            @Override
+            public GoodsDto getByGoodsId(Long goodsId) {
+                System.out.println(throwable.getMessage());
+                log.error("根据goodsId查询海关允许销售商品错误:{},错误信息是{}",goodsId,throwable.getMessage());
+                return null;
+            }
+
+            @Override
+            public PeopleDto getRpcById(Long peopleId) {
+                System.out.println(throwable.getMessage());
+                log.error("互市区组长需求报价错误:{},错误信息是{}",peopleId,throwable.getMessage());
+                return null;
+            }
+
+            @Override
+            public GroupDto getRpcById(String id) {
+                System.out.println(throwable.getMessage());
+                log.error("互市区组长错误:{},错误信息是{}",id,throwable.getMessage());
+                return null;
+            }
+
+            @Override
             public boolean enterpriseDto(EnterpriseDto enterpriseDto) {
                 System.out.println(throwable.getMessage());
                 log.error("互市区商家信息添加错误:{},错误信息是{}",enterpriseDto,throwable.getMessage());

+ 308 - 0
sp-core/sp-api/src/main/java/com/pj/api/dto/GoodsDto.java

@@ -0,0 +1,308 @@
+package com.pj.api.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import java.util.Date;
+
+/**
+ * @Author Mechrevo
+ * @Date 2023 08 03 16 57
+ **/
+
+public class GoodsDto {
+
+    private Long id;
+
+    /**
+     * 名称
+     */
+    private String name;
+
+    /**
+     * 主图
+     */
+    private String avatar;
+
+    /**
+     * 分类ID 字符串(可多选)
+     */
+    private String typeIds;
+
+    /**
+     * 分类名称
+     */
+    private String typeNames;
+
+    /**
+     * 编号
+     */
+    private String code;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 原产地
+     */
+    private String source;
+
+    /**
+     * 状态(0=禁用,1=启用)
+     */
+    private int status;
+
+
+
+    /**
+     *
+     */
+    private String unit;
+
+    /**
+     *
+     */
+    private Double singlePrice;
+
+    /**
+     *
+     */
+    private String taxNo;
+
+
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date createTime;
+
+    /**
+     * 创建人编号
+     */
+    private String createBy;
+
+    /**
+     * 创建人名称
+     */
+    private String createName;
+
+    /**
+     * 更新时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date updateTime;
+
+    /**
+     * 更新人编号
+     */
+    private String updateBy;
+
+    /**
+     * 更新人名称
+     */
+    private String updateName;
+
+    /**
+     * 删除状态(0=禁用,1=启用)
+     */
+    private Integer deleteStatus;
+
+    public GoodsDto(String name, String avatar, String typeIds, String typeNames, String code, String remark, String source, int status, String unit, Double singlePrice, String taxNo, Date createTime, String createBy, String createName, Date updateTime, String updateBy, String updateName, Integer deleteStatus) {
+        this.name = name;
+        this.avatar = avatar;
+        this.typeIds = typeIds;
+        this.typeNames = typeNames;
+        this.code = code;
+        this.remark = remark;
+        this.source = source;
+        this.status = status;
+        this.unit = unit;
+        this.singlePrice = singlePrice;
+        this.taxNo = taxNo;
+        this.createTime = createTime;
+        this.createBy = createBy;
+        this.createName = createName;
+        this.updateTime = updateTime;
+        this.updateBy = updateBy;
+        this.updateName = updateName;
+        this.deleteStatus = deleteStatus;
+    }
+
+    public GoodsDto(Long id, String name, String avatar, String typeIds, String typeNames, String code, String remark, String source, int status, String unit, Double singlePrice, String taxNo, Date createTime, String createBy, String createName, Date updateTime, String updateBy, String updateName, Integer deleteStatus) {
+        this.id = id;
+        this.name = name;
+        this.avatar = avatar;
+        this.typeIds = typeIds;
+        this.typeNames = typeNames;
+        this.code = code;
+        this.remark = remark;
+        this.source = source;
+        this.status = status;
+        this.unit = unit;
+        this.singlePrice = singlePrice;
+        this.taxNo = taxNo;
+        this.createTime = createTime;
+        this.createBy = createBy;
+        this.createName = createName;
+        this.updateTime = updateTime;
+        this.updateBy = updateBy;
+        this.updateName = updateName;
+        this.deleteStatus = deleteStatus;
+    }
+
+    public GoodsDto() {
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getAvatar() {
+        return avatar;
+    }
+
+    public void setAvatar(String avatar) {
+        this.avatar = avatar;
+    }
+
+    public String getTypeIds() {
+        return typeIds;
+    }
+
+    public void setTypeIds(String typeIds) {
+        this.typeIds = typeIds;
+    }
+
+    public String getTypeNames() {
+        return typeNames;
+    }
+
+    public void setTypeNames(String typeNames) {
+        this.typeNames = typeNames;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public String getSource() {
+        return source;
+    }
+
+    public void setSource(String source) {
+        this.source = source;
+    }
+
+    public int getStatus() {
+        return status;
+    }
+
+    public void setStatus(int status) {
+        this.status = status;
+    }
+
+    public String getUnit() {
+        return unit;
+    }
+
+    public void setUnit(String unit) {
+        this.unit = unit;
+    }
+
+    public Double getSinglePrice() {
+        return singlePrice;
+    }
+
+    public void setSinglePrice(Double singlePrice) {
+        this.singlePrice = singlePrice;
+    }
+
+    public String getTaxNo() {
+        return taxNo;
+    }
+
+    public void setTaxNo(String taxNo) {
+        this.taxNo = taxNo;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getCreateBy() {
+        return createBy;
+    }
+
+    public void setCreateBy(String createBy) {
+        this.createBy = createBy;
+    }
+
+    public String getCreateName() {
+        return createName;
+    }
+
+    public void setCreateName(String createName) {
+        this.createName = createName;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public String getUpdateBy() {
+        return updateBy;
+    }
+
+    public void setUpdateBy(String updateBy) {
+        this.updateBy = updateBy;
+    }
+
+    public String getUpdateName() {
+        return updateName;
+    }
+
+    public void setUpdateName(String updateName) {
+        this.updateName = updateName;
+    }
+
+    public Integer getDeleteStatus() {
+        return deleteStatus;
+    }
+
+    public void setDeleteStatus(Integer deleteStatus) {
+        this.deleteStatus = deleteStatus;
+    }
+}

+ 2 - 4
sp-service/level-one-server/src/main/java/com/pj/tb_goods_transit/retry/SmsRetryService.java → sp-core/sp-base/src/main/java/com/pj/retry/SmsRetryService.java

@@ -1,6 +1,5 @@
-package com.pj.tb_goods_transit.retry;
+package com.pj.retry;
 
-import com.alibaba.druid.support.json.JSONUtils;
 import com.pj.aliyun.sms.AliyunSmsService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.retry.annotation.Backoff;
@@ -9,7 +8,6 @@ import org.springframework.retry.annotation.Retryable;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 
-import java.util.logging.Logger;
 
 /**
  * @Author Mechrevo
@@ -48,7 +46,7 @@ public class SmsRetryService {
     @Async
     @Retryable(value = Exception.class,maxAttempts = 3,backoff = @Backoff(delay = 2000,multiplier = 1.5))
     public boolean sendSmsMsg(String phone,String signName,String templateCode,String jsonString) throws Exception {
-        System.out.println("\n发送商家通知短信!\n");
+        System.out.println("\n发送通知短信!\n");
         //todo: 发送短信业务逻辑
         boolean result = AliyunSmsService.sendSms("18934859524", "Mechrevo", "SMS_462415029", null);
         if(!result) throw new Exception("模拟短信发送失败!");

+ 1 - 1
sp-service/level-one-server/src/main/java/com/pj/tb_enterprise/TbEnterpriseController.java

@@ -175,7 +175,7 @@ public class TbEnterpriseController {
 	/*------            正常业务👆👆    rpc远程调用👇👇                         -----------*/
 
 	/** 注册身份时对应的表添加数据 */
-	@RequestMapping("enterpriseDto")
+	@RequestMapping("rpc/enterpriseDto")
 	public boolean enterpriseDto(@RequestBody EnterpriseDto enterpriseDto){
 		boolean b = tbEnterpriseService.enterpriseDto(enterpriseDto);
 		return b;

+ 9 - 2
sp-service/level-one-server/src/main/java/com/pj/tb_goods/TbGoodsController.java

@@ -2,6 +2,8 @@ package com.pj.tb_goods;
 
 import java.io.IOException;
 import java.util.List;
+
+import com.pj.api.dto.GoodsDto;
 import com.pj.utils.so.SoMap;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
@@ -122,8 +124,13 @@ public class TbGoodsController {
 	}
 
 
-
-
+/* ---           正常业务方法 👆👆  rpc远程调用👇👇                              ---*/
+	/** 查 - 根据id */
+	@RequestMapping("rpc/getBygoodsId")
+	public GoodsDto getByGoodsId(@RequestParam("goodsId") Long goodsId){
+		GoodsDto t = tbGoodsService.selectById(goodsId);
+		return t;
+	}
 
 
 

+ 9 - 0
sp-service/level-one-server/src/main/java/com/pj/tb_goods/TbGoodsService.java

@@ -7,12 +7,14 @@ import java.time.format.DateTimeFormatter;
 import java.util.List;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.pj.api.dto.GoodsDto;
 import com.pj.tb_enterprise.TbEnterprise;
 import com.pj.utils.so.SoMap;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.hssf.usermodel.HSSFRow;
 import org.apache.poi.hssf.usermodel.HSSFSheet;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.IService;
@@ -171,6 +173,13 @@ public class TbGoodsService extends ServiceImpl<TbGoodsMapper, TbGoods> implemen
 		return "数据导出完成!共导出 " + count + " 条数据。";
 	}
 
+	/** 远程调用 */
+	GoodsDto selectById(Long id){
+		TbGoods byId = super.getById(id);
+		GoodsDto goodsDto = new GoodsDto();
+		BeanUtils.copyProperties(byId,goodsDto);
+		return goodsDto;
 
+	}
 
 }

+ 1 - 4
sp-service/level-one-server/src/main/java/com/pj/tb_goods_transit/MethodGoodsTransitService.java

@@ -1,16 +1,13 @@
 package com.pj.tb_goods_transit;
 
-import com.alibaba.druid.support.json.JSONUtils;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.pj.aliyun.sms.AliyunSmsService;
 import com.pj.current.dto.APPLoginUserInfo;
 import com.pj.enummj.*;
-import com.pj.tb_goods_transit.retry.SmsRetryService;
+import com.pj.retry.SmsRetryService;
 import com.pj.tb_order.TbOrder;
 import com.pj.tb_order.TbOrderMapper;
 import com.pj.tb_people.TbPeople;
 import com.pj.tb_people.TbPeopleMapper;
-import com.pj.utils.cache.RedisUtil;
 import org.apache.poi.hssf.usermodel.HSSFCell;
 import org.apache.poi.hssf.usermodel.HSSFRow;
 import org.apache.poi.hssf.usermodel.HSSFSheet;

+ 1 - 1
sp-service/level-one-server/src/main/java/com/pj/tb_goods_transit/TbGoodsTransitService.java

@@ -14,6 +14,7 @@ import com.pj.aliyun.sms.AliyunSmsService;
 import com.pj.current.dto.APPLoginUserInfo;
 import com.pj.current.satoken.StpAPPUserUtil;
 import com.pj.enummj.*;
+import com.pj.retry.SmsRetryService;
 import com.pj.tb_enterprise.TbEnterprise;
 import com.pj.tb_enterprise.TbEnterpriseMapper;
 import com.pj.tb_goods.TbGoods;
@@ -21,7 +22,6 @@ import com.pj.tb_goods.TbGoodsMapper;
 import com.pj.tb_goods_transit.param.JudgeTransitParam;
 import com.pj.tb_goods_transit.param.PurchaseLevelOneGoodsTransitParam;
 import com.pj.tb_goods_transit.param.TransactionGoodsParam;
-import com.pj.tb_goods_transit.retry.SmsRetryService;
 import com.pj.tb_group.TbGroup;
 import com.pj.tb_group.TbGroupMapper;
 import com.pj.tb_order.TbOrder;

+ 6 - 6
sp-service/level-one-server/src/main/java/com/pj/tb_goods_type/TbGoodsTypeController.java

@@ -25,7 +25,7 @@ public class TbGoodsTypeController {
 
 	/** 增 */  
 	@RequestMapping("add")
-	@SaCheckPermission(TbGoodsType.PERMISSION_CODE_ADD)
+//	@SaCheckPermission(TbGoodsType.PERMISSION_CODE_ADD)
 	public AjaxJson add(TbGoodsType t){
 		tbGoodsTypeService.add(t);
 		t = tbGoodsTypeService.getById(SP.publicMapper.getPrimarykey());
@@ -34,7 +34,7 @@ public class TbGoodsTypeController {
 
 	/** 删 */  
 	@RequestMapping("delete")
-	@SaCheckPermission(TbGoodsType.PERMISSION_CODE_DEL)
+//	@SaCheckPermission(TbGoodsType.PERMISSION_CODE_DEL)
 	public AjaxJson delete(String id){
 		 tbGoodsTypeService.delete(Long.valueOf(id));
 		return AjaxJson.getSuccess();
@@ -42,7 +42,7 @@ public class TbGoodsTypeController {
 	
 	/** 删 - 根据id列表 */  
 	@RequestMapping("deleteByIds")
-	@SaCheckPermission(TbGoodsType.PERMISSION_CODE_DEL)
+//	@SaCheckPermission(TbGoodsType.PERMISSION_CODE_DEL)
 	public AjaxJson deleteByIds(){
 		List<Long> ids = SoMap.getRequestSoMap().getListByComma("ids", long.class); 
 		int line = SP.publicMapper.deleteByIds(TbGoodsType.TABLE_NAME, ids);
@@ -51,7 +51,7 @@ public class TbGoodsTypeController {
 	
 	/** 改 */  
 	@RequestMapping("update")
-	@SaCheckPermission(TbGoodsType.PERMISSION_CODE_EDIT)
+//	@SaCheckPermission(TbGoodsType.PERMISSION_CODE_EDIT)
 	public AjaxJson update(TbGoodsType t){
 		tbGoodsTypeService.update(t);
 		return AjaxJson.getSuccess();
@@ -59,7 +59,7 @@ public class TbGoodsTypeController {
 
 	/** 查 - 根据id */  
 	@RequestMapping("getById")
-		@SaCheckPermission(TbGoodsType.PERMISSION_CODE)
+//		@SaCheckPermission(TbGoodsType.PERMISSION_CODE)
 	public AjaxJson getById(String id){
 		TbGoodsType t = tbGoodsTypeService.getById(id);
 		return AjaxJson.getSuccessData(t);
@@ -67,7 +67,7 @@ public class TbGoodsTypeController {
 
 	/** 查集合 - 根据条件(参数为空时代表忽略指定条件) */  
 	@RequestMapping("getList")
-		@SaCheckPermission(TbGoodsType.PERMISSION_CODE)
+//		@SaCheckPermission(TbGoodsType.PERMISSION_CODE)
 	public AjaxJson getList() { 
 		SoMap so = SoMap.getRequestSoMap();
 		List<TbGoodsType> list = tbGoodsTypeService.getList(so.startPage());

+ 8 - 1
sp-service/level-one-server/src/main/java/com/pj/tb_group/TbGroupController.java

@@ -216,9 +216,16 @@ public class TbGroupController {
 	/*------            正常业务👆👆    rpc远程调用👇👇                         -----------*/
 
 	/** 用户在APP注册时选择身份则创建一个对应身份的实体 */
-	@RequestMapping("groupDto")
+	@RequestMapping("rpc/groupDto")
 	public boolean groupDto(@RequestBody GroupDto groupDto){
 		return tbGroupService.groupDto(groupDto);
 	}
 
+	/** 查 - 根据id */
+	@RequestMapping("rpc/getRpcById")
+	public GroupDto getRpcById(@RequestParam("id") String id){
+		GroupDto t = tbGroupService.getRpcById(id);
+		return t;
+	}
+
 }

+ 8 - 0
sp-service/level-one-server/src/main/java/com/pj/tb_group/TbGroupService.java

@@ -348,5 +348,13 @@ public class TbGroupService extends ServiceImpl<TbGroupMapper, TbGroup> implemen
 		return save;
 	}
 
+	/** 远程调用方法 获取边民组的基本信息*/
+	GroupDto getRpcById(String id) {
+		TbGroup byId = super.getById(id);
+		GroupDto groupDto = new GroupDto();
+		BeanUtils.copyProperties(byId,groupDto);
+		return groupDto;
+	}
+
 }
 

+ 15 - 1
sp-service/level-one-server/src/main/java/com/pj/tb_people/TbPeopleController.java

@@ -191,11 +191,25 @@ public class TbPeopleController {
 	/*------            正常业务👆👆    rpc远程调用👇👇                         -----------*/
 
 	/** 注册身份时对应的表添加数据 */
-	@RequestMapping("peopleDto")
+	@RequestMapping("rpc/peopleDto")
 	public boolean peopleDto(@RequestBody PeopleDto peopleDto){
 		boolean dto = tbPeopleService.peopleDto(peopleDto);
 		return dto;
 	}
+	/** 根据ID获取边民信息 */
+	@RequestMapping("rpc/getRpcById")
+	public PeopleDto getRpcById(@RequestParam("id")Long peopleId){
+		PeopleDto rpcById = tbPeopleService.getRpcById(peopleId);
+		return rpcById;
+	}
+
+	/** 查集合 - 根据条件(参数为空时代表忽略指定条件) */
+	@RequestMapping("rpc/getPeopleList")
+	public List<PeopleDto> getPeopleList(@RequestParam("groupId")Long groupId) {
+		SoMap so = SoMap.getRequestSoMap();
+		List<PeopleDto> list = tbPeopleService.getPeopleList(so.startPage(),groupId);
+		return list;
+	}
 
 
 }

+ 28 - 4
sp-service/level-one-server/src/main/java/com/pj/tb_people/TbPeopleService.java

@@ -44,10 +44,7 @@ import java.io.FileOutputStream;
 import java.io.IOException;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
-import java.util.Date;
-import java.util.List;
-import java.util.Locale;
-import java.util.Objects;
+import java.util.*;
 
 /**
  * Service: tb_people -- 边民
@@ -478,4 +475,31 @@ public class TbPeopleService extends ServiceImpl<TbPeopleMapper, TbPeople> imple
 		return save;
 	}
 
+	/** 远程调用查 */
+	PeopleDto getRpcById(Long id){
+		TbPeople byId = super.getById(id);
+		PeopleDto peopleDto = new PeopleDto();
+		BeanUtils.copyProperties(byId,peopleDto);
+		return peopleDto;
+	}
+
+
+	/** 查集合 远程调用 */
+	List<PeopleDto> getPeopleList(SoMap so,Long groupId) {
+		so.set("group_id",groupId);
+		so.set("is_lock",IsLock.IS_LOCK_ON.getCode());
+		so.set("delete_status",DeleteStatus.DELETE_STATUS_ON.getCode());
+		List<TbPeople> tbPeople = tbPeopleMapper.getList(so);
+		if(tbPeople.size() == 0)return null;
+		//创建返回值集合
+		List<PeopleDto> resultDto = new ArrayList<>();
+		//遍历封装
+		tbPeople.forEach(item -> {
+			PeopleDto peopleDto = new PeopleDto();
+			BeanUtils.copyProperties(item,peopleDto);
+			resultDto.add(peopleDto);
+		});
+		return resultDto;
+	}
+
 }

+ 103 - 0
sp-service/level-two-server/src/main/java/com/pj/tb_demand_quotation/AppTbDemandQuotationController.java

@@ -0,0 +1,103 @@
+package com.pj.tb_demand_quotation;
+
+import com.pj.project4sp.SP;
+import com.pj.tb_demand_quotation.param.DemandQuotationParam;
+import com.pj.utils.sg.AjaxJson;
+import com.pj.utils.so.SoMap;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+
+/**
+ * app: tb_demand_quotation -- 一级市场组长需求抢购表
+ * @author yzs 
+ */
+@RestController
+@RequestMapping("/app/TbDemandQuotation/")
+public class AppTbDemandQuotationController {
+
+	/** 底层 Service 对象 */
+	@Autowired
+	TbDemandQuotationService tbDemandQuotationService;
+
+	/** 增 */  
+	@RequestMapping("add")
+//	@SaCheckPermission(TbDemandQuotation.PERMISSION_CODE_ADD)
+	public AjaxJson add(TbDemandQuotation t){
+		tbDemandQuotationService.add(t);
+		t = tbDemandQuotationService.getById(SP.publicMapper.getPrimarykey());
+		return AjaxJson.getSuccessData(t);
+	}
+
+	/** 删 */  
+	@RequestMapping("delete")
+//	@SaCheckPermission(TbDemandQuotation.PERMISSION_CODE_DEL)
+	public AjaxJson delete(Long id){
+		 tbDemandQuotationService.delete(id);
+		return AjaxJson.getSuccess();
+	}
+	
+	/** 删 - 根据id列表 */  
+	@RequestMapping("deleteByIds")
+//	@SaCheckPermission(TbDemandQuotation.PERMISSION_CODE_DEL)
+	public AjaxJson deleteByIds(){
+		List<Long> ids = SoMap.getRequestSoMap().getListByComma("ids", long.class); 
+		int line = SP.publicMapper.deleteByIds(TbDemandQuotation.TABLE_NAME, ids);
+		return AjaxJson.getByLine(line);
+	}
+	
+	/** 改 */  
+	@RequestMapping("update")
+//	@SaCheckPermission(TbDemandQuotation.PERMISSION_CODE_EDIT)
+	public AjaxJson update(TbDemandQuotation t){
+		tbDemandQuotationService.update(t);
+		return AjaxJson.getSuccess();
+	}
+
+	/** 查 - 根据id */  
+	@RequestMapping("getById")
+//		@SaCheckPermission(TbDemandQuotation.PERMISSION_CODE)
+	public AjaxJson getById(Long id){
+		TbDemandQuotation t = tbDemandQuotationService.getById(id);
+		return AjaxJson.getSuccessData(t);
+	}
+
+	/** 查集合 - 根据条件(参数为空时代表忽略指定条件) */  
+	@RequestMapping("getList")
+//		@SaCheckPermission(TbDemandQuotation.PERMISSION_CODE)
+	public AjaxJson getList() { 
+		SoMap so = SoMap.getRequestSoMap();
+		List<TbDemandQuotation> list = tbDemandQuotationService.getList(so.startPage());
+		return AjaxJson.getPageData(so.getDataCount(), list);
+	}
+
+
+	/**
+	 * 一级市场组长接单
+	 * @param demandQuotationParam
+	 * @return
+	 * @throws Exception
+	 */
+	@RequestMapping("quotation")
+//		@SaCheckPermission(TbDemandQuotation.PERMISSION_CODE)
+	public AjaxJson quotation(@Validated @RequestBody DemandQuotationParam demandQuotationParam) throws Exception {
+		boolean quotation = tbDemandQuotationService.quotation(demandQuotationParam);
+		if(!quotation)return AjaxJson.getError("抢单失败!");
+		return AjaxJson.getSuccess();
+	}
+
+
+
+
+
+
+
+
+
+}

+ 116 - 0
sp-service/level-two-server/src/main/java/com/pj/tb_demand_quotation/TbDemandQuotation.java

@@ -0,0 +1,116 @@
+package com.pj.tb_demand_quotation;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.EqualsAndHashCode;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+/**
+ * Model: tb_demand_quotation -- 一级市场组长需求报价表
+ * @author yzs 
+ */
+@Data
+@Accessors(chain = true)
+@TableName(TbDemandQuotation.TABLE_NAME)
+@EqualsAndHashCode(callSuper = false)
+public class TbDemandQuotation extends Model<TbDemandQuotation> implements Serializable {
+
+	// ---------- 模块常量 ----------
+	/**
+	 * 序列化版本id 
+	 */
+	private static final long serialVersionUID = 1L;	
+	/**
+	 * 此模块对应的表名 
+	 */
+	public static final String TABLE_NAME = "tb_demand_quotation";	
+	/**
+	 * 此模块对应的权限码 
+	 */
+	public static final String PERMISSION_CODE = "tb-demand-quotation";
+	public static final String PERMISSION_CODE_ADD = "tb-demand-quotation-add";
+	public static final String PERMISSION_CODE_EDIT = "tb-demand-quotation-edit";
+	public static final String PERMISSION_CODE_DEL = "tb-demand-quotation-del";
+
+
+
+
+	// ---------- 表中字段 ----------
+	/**
+	 * 一级市场组长需求报价表ID
+	 */
+	@TableId(type = IdType.AUTO)
+	private Long id;	
+
+	/**
+	 * 一级市场互市组组长ID(tb_people) 
+	 */
+	private Long leaderId;	
+	/**
+	 * 组ID
+	 */
+	private Long groupId;
+
+	/**
+	 * 组名称 
+	 */
+	private String groupName;	
+
+	/**
+	 * 二级市场收购商需求表ID 
+	 */
+	private Long demandId;	
+
+	/**
+	 * 报价(CNY) 
+	 */
+	private Double quotation;	
+
+	/**
+	 * 创建人编号 
+	 */
+	private Long createBy;
+	/**
+	 * 二级市场收购商ID(tb_purchaser)
+	 */
+	private Long purchaserId;
+
+	/**
+	 * 创建人名称(报价人) 
+	 */
+	private String createName;	
+	/**
+	 * 组长备注
+	 */
+	private String remark;
+
+	/**
+	 * 创建时间 
+	 */
+	@JsonFormat(pattern = "yyyy-MM-dd")
+	private Date createTime;
+
+	/**
+	 * 删除状态 
+	 */
+	private Integer deleteStatus;
+
+	/**
+	 * 报价结果[0=待确认,1=确认,2=拒绝]
+	 */
+	private Integer quotationResult;
+
+
+
+
+
+	
+
+
+}

+ 87 - 0
sp-service/level-two-server/src/main/java/com/pj/tb_demand_quotation/TbDemandQuotationController.java

@@ -0,0 +1,87 @@
+package com.pj.tb_demand_quotation;
+
+import java.util.List;
+import com.pj.utils.so.SoMap;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+
+import com.pj.utils.sg.*;
+import com.pj.project4sp.SP;
+
+import com.pj.current.satoken.StpUserUtil;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+
+
+/**
+ * Controller: tb_demand_quotation -- 一级市场组长需求抢购表
+ * @author yzs 
+ */
+@RestController
+@RequestMapping("/TbDemandQuotation/")
+public class TbDemandQuotationController {
+
+	/** 底层 Service 对象 */
+	@Autowired
+	TbDemandQuotationService tbDemandQuotationService;
+
+	/** 增 */  
+	@RequestMapping("add")
+//	@SaCheckPermission(TbDemandQuotation.PERMISSION_CODE_ADD)
+	public AjaxJson add(TbDemandQuotation t){
+		tbDemandQuotationService.add(t);
+		t = tbDemandQuotationService.getById(SP.publicMapper.getPrimarykey());
+		return AjaxJson.getSuccessData(t);
+	}
+
+	/** 删 */  
+	@RequestMapping("delete")
+//	@SaCheckPermission(TbDemandQuotation.PERMISSION_CODE_DEL)
+	public AjaxJson delete(Long id){
+		 tbDemandQuotationService.delete(id);
+		return AjaxJson.getSuccess();
+	}
+	
+	/** 删 - 根据id列表 */  
+	@RequestMapping("deleteByIds")
+//	@SaCheckPermission(TbDemandQuotation.PERMISSION_CODE_DEL)
+	public AjaxJson deleteByIds(){
+		List<Long> ids = SoMap.getRequestSoMap().getListByComma("ids", long.class); 
+		int line = SP.publicMapper.deleteByIds(TbDemandQuotation.TABLE_NAME, ids);
+		return AjaxJson.getByLine(line);
+	}
+	
+	/** 改 */  
+	@RequestMapping("update")
+//	@SaCheckPermission(TbDemandQuotation.PERMISSION_CODE_EDIT)
+	public AjaxJson update(TbDemandQuotation t){
+		tbDemandQuotationService.update(t);
+		return AjaxJson.getSuccess();
+	}
+
+	/** 查 - 根据id */  
+	@RequestMapping("getById")
+//		@SaCheckPermission(TbDemandQuotation.PERMISSION_CODE)
+	public AjaxJson getById(Long id){
+		TbDemandQuotation t = tbDemandQuotationService.getById(id);
+		return AjaxJson.getSuccessData(t);
+	}
+
+	/** 查集合 - 根据条件(参数为空时代表忽略指定条件) */  
+	@RequestMapping("getList")
+//		@SaCheckPermission(TbDemandQuotation.PERMISSION_CODE)
+	public AjaxJson getList() { 
+		SoMap so = SoMap.getRequestSoMap();
+		List<TbDemandQuotation> list = tbDemandQuotationService.getList(so.startPage());
+		return AjaxJson.getPageData(so.getDataCount(), list);
+	}
+	
+	
+//
+	
+
+	
+	
+	
+
+}

+ 30 - 0
sp-service/level-two-server/src/main/java/com/pj/tb_demand_quotation/TbDemandQuotationMapper.java

@@ -0,0 +1,30 @@
+package com.pj.tb_demand_quotation;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Mapper;
+
+import com.pj.utils.so.*;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * Mapper: tb_demand_quotation -- 一级市场组长需求抢购表
+ * @author yzs 
+ */
+
+@Mapper
+@Repository
+public interface TbDemandQuotationMapper extends BaseMapper <TbDemandQuotation> {
+
+
+
+	/**
+	 * 查集合 - 根据条件(参数为空时代表忽略指定条件)
+	 * @param so 参数集合 
+	 * @return 数据列表 
+	 */
+	List<TbDemandQuotation> getList(SoMap so);
+
+
+}

+ 59 - 0
sp-service/level-two-server/src/main/java/com/pj/tb_demand_quotation/TbDemandQuotationMapper.xml

@@ -0,0 +1,59 @@
+<?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.pj.tb_demand_quotation.TbDemandQuotationMapper">
+
+
+
+
+	<!-- ================================== 查询相关 ================================== -->
+	<!-- select id, leader_id, group_name, demand_id, quotation, create_by, create_name, create_time, delete_status from tb_demand_quotation  -->
+	
+	<!-- 通用映射:自动模式 -->
+	<resultMap id="model" autoMapping="true" type="com.pj.tb_demand_quotation.TbDemandQuotation"></resultMap>
+	
+	<!-- 公共查询sql片段 -->
+	<sql id="select_sql">
+		select * 
+		from tb_demand_quotation 
+	</sql>
+
+	
+	<!-- 查集合 - 根据条件(参数为空时代表忽略指定条件) [G] -->
+	<select id="getList" resultMap="model">
+		<include refid="select_sql"></include>
+		<where>
+			<if test=' this.has("id") '> and id = #{id} </if>
+			<if test=' this.has("leaderId") '> and leader_id = #{leaderId} </if>
+			<if test=' this.has("groupName") '> and group_name = #{groupName} </if>
+			<if test=' this.has("demandId") '> and demand_id = #{demandId} </if>
+			<if test=' this.has("quotation") '> and quotation = #{quotation} </if>
+			<if test=' this.has("createBy") '> and create_by = #{createBy} </if>
+			<if test=' this.has("createName") '> and create_name = #{createName} </if>
+			<if test=' this.has("createTime") '> and create_time = #{createTime} </if>
+			<if test=' this.has("deleteStatus") '> and delete_status = #{deleteStatus} </if>
+		</where>
+		order by
+		<choose>
+			<when test='sortType == 1'> id desc </when>
+			<when test='sortType == 2'> leader_id desc </when>
+			<when test='sortType == 3'> group_name desc </when>
+			<when test='sortType == 4'> demand_id desc </when>
+			<when test='sortType == 5'> quotation desc </when>
+			<when test='sortType == 6'> create_by desc </when>
+			<when test='sortType == 7'> create_name desc </when>
+			<when test='sortType == 8'> create_time desc </when>
+			<when test='sortType == 9'> delete_status desc </when>
+			<otherwise> id desc </otherwise>
+		</choose>
+	</select>
+	
+	
+	
+	
+	
+	
+	
+	
+	
+
+</mapper>

+ 117 - 0
sp-service/level-two-server/src/main/java/com/pj/tb_demand_quotation/TbDemandQuotationService.java

@@ -0,0 +1,117 @@
+package com.pj.tb_demand_quotation;
+
+import java.util.Date;
+import java.util.List;
+
+import com.pj.api.client.level_one_server.LevelOneServerInterface;
+import com.pj.api.dto.PeopleDto;
+import com.pj.common.core.exception.ServiceException;
+import com.pj.current.dto.APPLoginUserInfo;
+import com.pj.current.satoken.StpAPPUserUtil;
+import com.pj.enummj.DeleteStatus;
+import com.pj.retry.SmsRetryService;
+import com.pj.tb_demand_quotation.param.DemandQuotationParam;
+import com.pj.tb_goods_demand.TbGoodsDemand;
+import com.pj.tb_goods_demand.TbGoodsDemandMapper;
+import com.pj.utils.so.SoMap;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * Service: tb_demand_quotation -- 一级市场组长需求抢购表
+ * @author yzs 
+ */
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class TbDemandQuotationService extends ServiceImpl<TbDemandQuotationMapper, TbDemandQuotation> implements IService<TbDemandQuotation>{
+
+	/** 底层 Mapper 对象 */
+	@Autowired
+	TbDemandQuotationMapper tbDemandQuotationMapper;
+	/** 远程调用 */
+	@Autowired
+	private LevelOneServerInterface levelOneServerInterface;
+	/** 失败重试机制 */
+	@Autowired
+	private SmsRetryService smsRetryService;
+	/** 二级收购商需求 */
+	@Autowired
+	private TbGoodsDemandMapper tbGoodsDemandMapper;
+
+	/** 增 */
+	void add(TbDemandQuotation t){
+		save(t);
+	}
+
+	/** 删 */
+	void delete(Long id){
+		removeById(id);
+	}
+
+	/** 改 */
+	void update(TbDemandQuotation t){
+		updateById(t);
+
+	}
+
+	/** 查 */
+	TbDemandQuotation getById(Long id){
+		return super.getById(id);
+	}
+
+	/** 查集合 - 根据条件(参数为空时代表忽略指定条件) */  
+	List<TbDemandQuotation> getList(SoMap so) { 
+		return tbDemandQuotationMapper.getList(so);	
+	}
+
+
+	/**
+	 * 互市组组长接单
+	 * @param demandQuotationParam
+	 */
+	public boolean quotation(DemandQuotationParam demandQuotationParam) throws Exception {
+		//获取并判断当前登陆人
+		APPLoginUserInfo appLoginInfo = StpAPPUserUtil.getAPPLoginInfo();
+		if(appLoginInfo == null || appLoginInfo.getLoginId() == null)
+			throw new ServiceException("当前登录账号信息已失效!");
+		//判定接单状态
+		if(demandQuotationParam.getIsOrders() != 1)throw new ServiceException("非法操作!");
+		//获取边民组信息
+		PeopleDto rpcById = levelOneServerInterface.getRpcById(appLoginInfo.getFk());
+		if(rpcById == null)throw new ServiceException("边民组信息有误!");
+		//判断组长身份
+		if(rpcById.getRole() != 2)throw new ServiceException("您当前身份不是组长,无法抢单报价!");
+		//执行接单报价
+		TbDemandQuotation tbDemandQuotation = new TbDemandQuotation();
+		tbDemandQuotation.setQuotationResult(0); //默认待商家确认
+		tbDemandQuotation.setPurchaserId(demandQuotationParam.getPurchaserId()); // 商家ID
+		tbDemandQuotation.setDemandId(demandQuotationParam.getGoodsDemandId()); //需求表ID
+		tbDemandQuotation.setQuotation(demandQuotationParam.getPrice()); // 报价
+		tbDemandQuotation.setCreateBy(appLoginInfo.getLoginId()); //创建人登陆表主键
+		tbDemandQuotation.setLeaderId(appLoginInfo.getFk());  //边民表主键
+		tbDemandQuotation.setGroupName(rpcById.getGroupName()); // 互市组组名
+		tbDemandQuotation.setCreateTime(new Date()); //创建时间
+		tbDemandQuotation.setGroupId(rpcById.getGroupId());
+		tbDemandQuotation.setDeleteStatus(DeleteStatus.DELETE_STATUS_ON.getCode()); // 删除状态默认可用
+		int insert = tbDemandQuotationMapper.insert(tbDemandQuotation);
+		if(insert == 1){
+			//修改二级市场收购商的需求状态
+			TbGoodsDemand tbGoodsDemand = tbGoodsDemandMapper.selectById(demandQuotationParam.getGoodsDemandId());
+			if(tbGoodsDemand == null || tbGoodsDemand.getIsOrders() == 1 || tbGoodsDemand.getDeleteStatus() == 0)
+				throw new RuntimeException("二级市场收购商需求订单状态异常!");
+			//执行修改二级市场收购商需求状态
+			tbGoodsDemand.setIsOrders(demandQuotationParam.getIsOrders());
+			int updateById = tbGoodsDemandMapper.updateById(tbGoodsDemand);
+			if(updateById != 1)throw new RuntimeException("无法进行报价!");
+			//短信提示二级市场收购商,需求已报价,进入app进行确认接单 todo:该位置需打开
+			return smsRetryService.sendSmsMsg(null,null,null,null);
+		}
+			throw new RuntimeException("抢单报价失败!");
+//		return true;
+	}
+	
+
+}

+ 27 - 0
sp-service/level-two-server/src/main/java/com/pj/tb_demand_quotation/TbDemandQuotationUtil.java

@@ -0,0 +1,27 @@
+package com.pj.tb_demand_quotation;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * 工具类:tb_demand_quotation -- 一级市场组长需求抢购表
+ * @author yzs 
+ *
+ */
+@Component
+public class TbDemandQuotationUtil {
+
+	
+	/** 底层 Mapper 对象 */
+	public static TbDemandQuotationMapper tbDemandQuotationMapper;
+	@Autowired
+	private void setTbDemandQuotationMapper(TbDemandQuotationMapper tbDemandQuotationMapper) {
+		TbDemandQuotationUtil.tbDemandQuotationMapper = tbDemandQuotationMapper;
+	}
+	
+
+
+	
+	
+	
+}

+ 30 - 0
sp-service/level-two-server/src/main/java/com/pj/tb_demand_quotation/param/DemandQuotationParam.java

@@ -0,0 +1,30 @@
+package com.pj.tb_demand_quotation.param;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * @Author Mechrevo
+ * @Date 2023 08 03 16 30
+ **/
+@Data
+@NoArgsConstructor
+public class DemandQuotationParam {
+
+    /** 二级市场收购商需求表ID */
+    @NotBlank(message = "goodsDemandId")
+    private Long goodsDemandId;
+    /** 接单状态,默认传个 1 */
+    @NotBlank(message = "isOrders")
+    private Integer isOrders;
+    /** 报价 */
+    @NotBlank(message = "price")
+    private Double price;
+    /** 二级市场收购商主键ID */
+    @NotBlank(message = "purchaserId")
+    private Long purchaserId;
+    private String remark;
+
+}

+ 96 - 0
sp-service/level-two-server/src/main/java/com/pj/tb_goods_demand/AppTbGoodsDemandController.java

@@ -0,0 +1,96 @@
+package com.pj.tb_goods_demand;
+
+import com.pj.project4sp.SP;
+import com.pj.tb_goods_demand.vo.GoodsDemandVo;
+import com.pj.utils.sg.AjaxJson;
+import com.pj.utils.so.SoMap;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+
+/**
+ * Controller: tb_goods_demand -- 二级收购商需求发布表
+ * @author yzs 
+ */
+@RestController
+@RequestMapping("/app/TbGoodsDemand/")
+public class AppTbGoodsDemandController {
+
+	/** 底层 Service 对象 */
+	@Autowired
+	TbGoodsDemandService tbGoodsDemandService;
+
+	/** 增 */  
+	@RequestMapping("add")
+//	@SaCheckPermission(TbGoodsDemand.PERMISSION_CODE_ADD)
+	public AjaxJson add(TbGoodsDemand t){
+		tbGoodsDemandService.add(t);
+		t = tbGoodsDemandService.getById(SP.publicMapper.getPrimarykey());
+		return AjaxJson.getSuccessData(t);
+	}
+
+	/** 删 */  
+	@RequestMapping("delete")
+//	@SaCheckPermission(TbGoodsDemand.PERMISSION_CODE_DEL)
+	public AjaxJson delete(Long id){
+		 tbGoodsDemandService.delete(id);
+		return AjaxJson.getSuccess();
+	}
+	
+	/** 删 - 根据id列表 */  
+	@RequestMapping("deleteByIds")
+//	@SaCheckPermission(TbGoodsDemand.PERMISSION_CODE_DEL)
+	public AjaxJson deleteByIds(){
+		List<Long> ids = SoMap.getRequestSoMap().getListByComma("ids", long.class); 
+		int line = SP.publicMapper.deleteByIds(TbGoodsDemand.TABLE_NAME, ids);
+		return AjaxJson.getByLine(line);
+	}
+	
+	/** 改 */  
+	@RequestMapping("update")
+//	@SaCheckPermission(TbGoodsDemand.PERMISSION_CODE_EDIT)
+	public AjaxJson update(TbGoodsDemand t){
+		tbGoodsDemandService.update(t);
+		return AjaxJson.getSuccess();
+	}
+
+	/** 查 - 根据id */  
+	@RequestMapping("getById")
+//		@SaCheckPermission(TbGoodsDemand.PERMISSION_CODE)
+	public AjaxJson getById(Long id){
+		TbGoodsDemand t = tbGoodsDemandService.getById(id);
+		return AjaxJson.getSuccessData(t);
+	}
+
+	/** app端:专供给一级市场查看的需求列表*/
+	@RequestMapping("getAppList")
+//		@SaCheckPermission(TbGoodsDemand.PERMISSION_CODE)
+	public AjaxJson getAppList(@RequestParam(value = "isOrders",required = false)Integer isOrders) {
+		SoMap so = SoMap.getRequestSoMap();
+		List<TbGoodsDemand> list = tbGoodsDemandService.getAppList(so.startPage(),isOrders);
+		return AjaxJson.getPageData(so.getDataCount(), list);
+	}
+	
+	/** app端:专供给一级市场查看的需求列表*/
+	@RequestMapping("goodsDemandList")
+//		@SaCheckPermission(TbGoodsDemand.PERMISSION_CODE)
+	public AjaxJson goodsDemandList(@RequestParam(value = "isOrders",required = false)Integer isOrders) {
+		SoMap so = SoMap.getRequestSoMap();
+		List<GoodsDemandVo> goodsDemandVos = tbGoodsDemandService.goodsDemandList(so.startPage(),isOrders);
+		return AjaxJson.getPageData(so.getDataCount(), goodsDemandVos);
+	}
+
+
+
+	
+	
+
+	
+	
+	
+
+}

+ 114 - 0
sp-service/level-two-server/src/main/java/com/pj/tb_goods_demand/MethodGoodsDemandService.java

@@ -0,0 +1,114 @@
+package com.pj.tb_goods_demand;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.pj.api.client.level_one_server.LevelOneServerInterface;
+import com.pj.api.dto.GoodsDto;
+import com.pj.api.dto.PeopleDto;
+import com.pj.enummj.DeleteStatus;
+import com.pj.retry.SmsRetryService;
+import com.pj.tb_demand_quotation.TbDemandQuotation;
+import com.pj.tb_demand_quotation.TbDemandQuotationMapper;
+import com.pj.tb_demand_quotation.TbDemandQuotationService;
+import com.pj.tb_goods_demand.vo.GoodsDemandVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Author Mechrevo
+ * @Date 2023 08 03 16 49
+ **/
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class MethodGoodsDemandService {
+
+    @Autowired
+    private TbDemandQuotationMapper tbDemandQuotationMapper;
+    @Autowired
+    private LevelOneServerInterface levelOneServerInterface;
+    @Autowired
+    private TbGoodsDemandMapper tbGoodsDemandMapper;
+    @Autowired
+    private SmsRetryService smsRetryService;
+
+    /**
+     * 数据封装
+     * 将List<TbGoodsDemand>  封装成   List<GoodsDemandVo>
+     * @param list
+     * @return
+     */
+    public List<GoodsDemandVo> setGoodsDemandVo(List<TbGoodsDemand> list){
+        //创建返回值集合
+        List<GoodsDemandVo> resultList = new ArrayList<>();
+
+        //遍历集合
+        list.forEach(item -> {
+
+            //获取需求表ID
+            Long id = item.getId();
+            //查询报价表
+            LambdaQueryWrapper<TbDemandQuotation> queryWrapper = new LambdaQueryWrapper<>();
+            queryWrapper.eq(TbDemandQuotation::getDemandId,id);
+            queryWrapper.eq(TbDemandQuotation::getDeleteStatus, DeleteStatus.DELETE_STATUS_ON.getCode());
+            List<TbDemandQuotation> tbDemandQuotations = tbDemandQuotationMapper.selectList(queryWrapper);
+            if(tbDemandQuotations.size() == 0)return;
+            //查询商品基本信息
+            TbDemandQuotation tbDemandQuotation = tbDemandQuotations.get(0);
+            GoodsDto goodsDto = levelOneServerInterface.getByGoodsId(item.getLevelOneGoodsId());
+            //开始封装数据
+            GoodsDemandVo goodsDemandVo = new GoodsDemandVo();
+            goodsDemandVo.setGoodsDemandId(id);
+            goodsDemandVo.setDemandQuotationId(tbDemandQuotation.getId());
+            goodsDemandVo.setGoodsImg(goodsDto.getAvatar());
+            goodsDemandVo.setGoodsName(goodsDto.getName());
+            goodsDemandVo.setGroupName(item.getGoodsName());
+            goodsDemandVo.setCreateName(tbDemandQuotation.getCreateName());
+            goodsDemandVo.setCreateTime(tbDemandQuotation.getCreateTime());
+            goodsDemandVo.setQuotation(tbDemandQuotation.getQuotation());
+            goodsDemandVo.setRemark(tbDemandQuotation.getRemark());
+            //执行添加
+            resultList.add(goodsDemandVo);
+
+        });
+
+        return resultList;
+    }
+
+    /**
+     * 执行同意处理
+     * @param goodsDemandId
+     * @param demandQuotationId
+     */
+    public void agreeQuotation(Integer disposeStatus,Long goodsDemandId,Long demandQuotationId) throws Exception {
+        // 校验参数
+        TbDemandQuotation tbDemandQuotation = tbDemandQuotationMapper.selectById(demandQuotationId);
+        if(tbDemandQuotation == null)return;
+        TbGoodsDemand tbGoodsDemand = tbGoodsDemandMapper.selectById(goodsDemandId);
+        if(tbGoodsDemand == null)return;
+        //执行过程
+        tbDemandQuotation.setQuotationResult(disposeStatus);
+        int updateById = tbDemandQuotationMapper.updateById(tbDemandQuotation);
+
+
+    }
+                //  todo: ----------------
+    /**
+     * 执行拒绝处理
+     * @param goodsDemandId
+     * @param demandQuotationId
+     */
+    public void refuseQuotation(Long goodsDemandId,Long demandQuotationId) throws Exception {
+        // 校验参数
+        TbDemandQuotation tbDemandQuotation = tbDemandQuotationMapper.selectById(demandQuotationId);
+        if(tbDemandQuotation == null)return;
+        TbGoodsDemand tbGoodsDemand = tbGoodsDemandMapper.selectById(goodsDemandId);
+        if(tbGoodsDemand == null)return;
+        //执行过程
+
+
+
+    }
+}

+ 109 - 0
sp-service/level-two-server/src/main/java/com/pj/tb_goods_demand/TbGoodsDemand.java

@@ -0,0 +1,109 @@
+package com.pj.tb_goods_demand;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.EqualsAndHashCode;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+/**
+ * Model: tb_goods_demand -- 二级收购商需求发布表
+ * @author yzs 
+ */
+@Data
+@Accessors(chain = true)
+@TableName(TbGoodsDemand.TABLE_NAME)
+@EqualsAndHashCode(callSuper = false)
+public class TbGoodsDemand extends Model<TbGoodsDemand> implements Serializable {
+
+	// ---------- 模块常量 ----------
+	/**
+	 * 序列化版本id 
+	 */
+	private static final long serialVersionUID = 1L;	
+	/**
+	 * 此模块对应的表名 
+	 */
+	public static final String TABLE_NAME = "tb_goods_demand";	
+	/**
+	 * 此模块对应的权限码 
+	 */
+	public static final String PERMISSION_CODE = "tb-goods-demand";
+	public static final String PERMISSION_CODE_ADD = "tb-goods-demand-add";
+	public static final String PERMISSION_CODE_EDIT = "tb-goods-demand-edit";
+	public static final String PERMISSION_CODE_DEL = "tb-goods-demand-del";
+
+
+
+
+	// ---------- 表中字段 ----------
+	/**
+	 * 二级市场商家需求发布表主键ID 
+	 */
+	@TableId(type = IdType.AUTO)
+	private Long id;	
+
+	/**
+	 * 一级市场海关允许售卖商品ID 
+	 */
+	private Long levelOneGoodsId;	
+
+	/**
+	 * 商品名称 
+	 */
+	private String goodsName;	
+
+	/**
+	 * 商品图片 
+	 */
+	private String goodsImg;	
+
+	/**
+	 * 二级市场商家ID 
+	 */
+	private Long purchaserId;	
+
+	/**
+	 * 商家名称 
+	 */
+	private String purchaserName;	
+
+	/**
+	 * 已被接单 
+	 */
+	private Integer isOrders;
+
+	/**
+	 * 商品量(根据海关允许发布表的计量单位决定,例如:柜,KG,吨) 
+	 */
+	private String goodsQuantity;	
+
+	/**
+	 * 商家备注 
+	 */
+	private String remark;	
+
+	/**
+	 * 创建时间 
+	 */
+	@JsonFormat(pattern = "yyyy-MM-dd")
+	private Date createTime;
+
+	/**
+	 * 删除状态 
+	 */
+	private Integer deleteStatus;
+
+
+
+
+
+	
+
+
+}

+ 87 - 0
sp-service/level-two-server/src/main/java/com/pj/tb_goods_demand/TbGoodsDemandController.java

@@ -0,0 +1,87 @@
+package com.pj.tb_goods_demand;
+
+import java.util.List;
+import com.pj.utils.so.SoMap;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+
+import com.pj.utils.sg.*;
+import com.pj.project4sp.SP;
+
+import com.pj.current.satoken.StpUserUtil;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+
+
+/**
+ * Controller: tb_goods_demand -- 二级收购商需求发布表
+ * @author yzs 
+ */
+@RestController
+@RequestMapping("/TbGoodsDemand/")
+public class TbGoodsDemandController {
+
+	/** 底层 Service 对象 */
+	@Autowired
+	TbGoodsDemandService tbGoodsDemandService;
+
+	/** 增 */  
+	@RequestMapping("add")
+//	@SaCheckPermission(TbGoodsDemand.PERMISSION_CODE_ADD)
+	public AjaxJson add(TbGoodsDemand t){
+		tbGoodsDemandService.add(t);
+		t = tbGoodsDemandService.getById(SP.publicMapper.getPrimarykey());
+		return AjaxJson.getSuccessData(t);
+	}
+
+	/** 删 */  
+	@RequestMapping("delete")
+//	@SaCheckPermission(TbGoodsDemand.PERMISSION_CODE_DEL)
+	public AjaxJson delete(Long id){
+		 tbGoodsDemandService.delete(id);
+		return AjaxJson.getSuccess();
+	}
+	
+	/** 删 - 根据id列表 */  
+	@RequestMapping("deleteByIds")
+//	@SaCheckPermission(TbGoodsDemand.PERMISSION_CODE_DEL)
+	public AjaxJson deleteByIds(){
+		List<Long> ids = SoMap.getRequestSoMap().getListByComma("ids", long.class); 
+		int line = SP.publicMapper.deleteByIds(TbGoodsDemand.TABLE_NAME, ids);
+		return AjaxJson.getByLine(line);
+	}
+	
+	/** 改 */  
+	@RequestMapping("update")
+//	@SaCheckPermission(TbGoodsDemand.PERMISSION_CODE_EDIT)
+	public AjaxJson update(TbGoodsDemand t){
+		tbGoodsDemandService.update(t);
+		return AjaxJson.getSuccess();
+	}
+
+	/** 查 - 根据id */  
+	@RequestMapping("getById")
+//		@SaCheckPermission(TbGoodsDemand.PERMISSION_CODE)
+	public AjaxJson getById(Long id){
+		TbGoodsDemand t = tbGoodsDemandService.getById(id);
+		return AjaxJson.getSuccessData(t);
+	}
+
+	/** 查集合 - 根据条件(参数为空时代表忽略指定条件) */  
+	@RequestMapping("getList")
+//		@SaCheckPermission(TbGoodsDemand.PERMISSION_CODE)
+	public AjaxJson getList() { 
+		SoMap so = SoMap.getRequestSoMap();
+		List<TbGoodsDemand> list = tbGoodsDemandService.getList(so.startPage());
+		return AjaxJson.getPageData(so.getDataCount(), list);
+	}
+	
+	
+	
+	
+
+	
+	
+	
+
+}

+ 30 - 0
sp-service/level-two-server/src/main/java/com/pj/tb_goods_demand/TbGoodsDemandMapper.java

@@ -0,0 +1,30 @@
+package com.pj.tb_goods_demand;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Mapper;
+
+import com.pj.utils.so.*;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * Mapper: tb_goods_demand -- 二级收购商需求发布表
+ * @author yzs 
+ */
+
+@Mapper
+@Repository
+public interface TbGoodsDemandMapper extends BaseMapper <TbGoodsDemand> {
+
+
+
+	/**
+	 * 查集合 - 根据条件(参数为空时代表忽略指定条件)
+	 * @param so 参数集合 
+	 * @return 数据列表 
+	 */
+	List<TbGoodsDemand> getList(SoMap so);
+
+
+}

+ 63 - 0
sp-service/level-two-server/src/main/java/com/pj/tb_goods_demand/TbGoodsDemandMapper.xml

@@ -0,0 +1,63 @@
+<?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.pj.tb_goods_demand.TbGoodsDemandMapper">
+
+
+
+
+	<!-- ================================== 查询相关 ================================== -->
+	<!-- select id, level_one_goods_id, goods_name, goods_img, purchaser_id, purchaser_name, is_orders, goods_quantity, remark, create_time, delete_status from tb_goods_demand  -->
+	
+	<!-- 通用映射:自动模式 -->
+	<resultMap id="model" autoMapping="true" type="com.pj.tb_goods_demand.TbGoodsDemand"></resultMap>
+	
+	<!-- 公共查询sql片段 -->
+	<sql id="select_sql">
+		select * 
+		from tb_goods_demand 
+	</sql>
+
+	
+	<!-- 查集合 - 根据条件(参数为空时代表忽略指定条件) [G] -->
+	<select id="getList" resultMap="model">
+		<include refid="select_sql"></include>
+		<where>
+			<if test=' this.has("id") '> and id = #{id} </if>
+			<if test=' this.has("levelOneGoodsId") '> and level_one_goods_id = #{levelOneGoodsId} </if>
+			<if test=' this.has("goodsName") '> and goods_name = #{goodsName} </if>
+			<if test=' this.has("goodsImg") '> and goods_img = #{goodsImg} </if>
+			<if test=' this.has("purchaserId") '> and purchaser_id = #{purchaserId} </if>
+			<if test=' this.has("purchaserName") '> and purchaser_name = #{purchaserName} </if>
+			<if test=' this.has("isOrders") '> and is_orders = #{isOrders} </if>
+			<if test=' this.has("goodsQuantity") '> and goods_quantity = #{goodsQuantity} </if>
+			<if test=' this.has("remark") '> and remark = #{remark} </if>
+			<if test=' this.has("createTime") '> and create_time = #{createTime} </if>
+			<if test=' this.has("deleteStatus") '> and delete_status = #{deleteStatus} </if>
+		</where>
+		order by
+		<choose>
+			<when test='sortType == 1'> id desc </when>
+			<when test='sortType == 2'> level_one_goods_id desc </when>
+			<when test='sortType == 3'> goods_name desc </when>
+			<when test='sortType == 4'> goods_img desc </when>
+			<when test='sortType == 5'> purchaser_id desc </when>
+			<when test='sortType == 6'> purchaser_name desc </when>
+			<when test='sortType == 7'> is_orders desc </when>
+			<when test='sortType == 8'> goods_quantity desc </when>
+			<when test='sortType == 9'> remark desc </when>
+			<when test='sortType == 10'> create_time desc </when>
+			<when test='sortType == 11'> delete_status desc </when>
+			<otherwise> id desc </otherwise>
+		</choose>
+	</select>
+	
+	
+	
+	
+	
+	
+	
+	
+	
+
+</mapper>

+ 109 - 0
sp-service/level-two-server/src/main/java/com/pj/tb_goods_demand/TbGoodsDemandService.java

@@ -0,0 +1,109 @@
+package com.pj.tb_goods_demand;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.pj.common.core.exception.ServiceException;
+import com.pj.current.dto.APPLoginUserInfo;
+import com.pj.current.satoken.StpAPPUserUtil;
+import com.pj.enummj.DeleteStatus;
+import com.pj.tb_goods_demand.vo.GoodsDemandVo;
+import com.pj.utils.so.SoMap;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.transaction.annotation.Transactional;
+import com.pj.utils.sg.*;
+
+/**
+ * Service: tb_goods_demand -- 二级收购商需求发布表
+ * @author yzs 
+ */
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class TbGoodsDemandService extends ServiceImpl<TbGoodsDemandMapper, TbGoodsDemand> implements IService<TbGoodsDemand>{
+
+	/** 底层 Mapper 对象 */
+	@Autowired
+	TbGoodsDemandMapper tbGoodsDemandMapper;
+
+	@Autowired
+	private MethodGoodsDemandService methodGoodsDemandService;
+
+	/** 增 */
+	void add(TbGoodsDemand t){
+		save(t);
+	}
+
+	/** 删 */
+	void delete(Long id){
+		removeById(id);
+	}
+
+	/** 改 */
+	void update(TbGoodsDemand t){
+		updateById(t);
+
+	}
+
+	/** 查 */
+	TbGoodsDemand getById(Long id){
+		return super.getById(id);
+	}
+
+	/** pc端:专供给一级市场查看的需求列表 */
+	List<TbGoodsDemand> getList(SoMap so) {
+		return tbGoodsDemandMapper.getList(so);
+	}
+
+	/** app端:专供给一级市场查看的需求列表 */
+	List<TbGoodsDemand> getAppList(SoMap so,Integer isOrders) {
+		so.set("is_orders",isOrders);
+		so.set("sortType",10); //根据日期降序
+		so.set("delete_status", DeleteStatus.DELETE_STATUS_ON.getCode()); // 状态可用
+		return tbGoodsDemandMapper.getList(so);	
+	}
+
+	/**
+	 * 二级收购商查看当前已被报价的需求列表
+	 * @param isOrders
+	 * @return
+	 */
+	public List<GoodsDemandVo> goodsDemandList(SoMap so,Integer isOrders){
+		//获取并判断当前登陆人
+		APPLoginUserInfo appLoginInfo = StpAPPUserUtil.getAPPLoginInfo();
+		if(appLoginInfo == null || appLoginInfo.getLoginId() == null)
+			throw new ServiceException("当前登录账号信息已失效!");
+		//匹配已被报价的列表
+		so.set("purchaser_id",appLoginInfo.getFk());
+		so.set("is_orders",isOrders);
+		so.set("delete_status",DeleteStatus.DELETE_STATUS_ON.getCode());
+		List<TbGoodsDemand> goodsDemandMapperList = tbGoodsDemandMapper.getList(so);
+		if(goodsDemandMapperList.size() != 0){
+			List<GoodsDemandVo> goodsDemandVos = methodGoodsDemandService.setGoodsDemandVo(goodsDemandMapperList);
+			return goodsDemandVos;
+		}
+		return null;
+	}
+
+	/**
+	 * 二级市场收购商处理需求订单
+	 * @param disposeStatus 处理状态[0=待处理,1=通过,2=拒绝]
+	 * @param goodsDemandId  需求表主键
+	 * @param demandQuotationId 报价表主键
+	 */
+	public void disposeOrders(Integer disposeStatus,Long goodsDemandId,Long demandQuotationId) throws Exception {
+		//获取并判断当前登陆人
+		APPLoginUserInfo appLoginInfo = StpAPPUserUtil.getAPPLoginInfo();
+		if(appLoginInfo == null || appLoginInfo.getLoginId() == null)
+			throw new ServiceException("当前登录账号信息已失效!");
+		//同意则开始创建订单,不同意则修改报价表和需求表状态
+
+		methodGoodsDemandService.agreeQuotation(disposeStatus,goodsDemandId,demandQuotationId);
+
+
+	}
+
+}

+ 27 - 0
sp-service/level-two-server/src/main/java/com/pj/tb_goods_demand/TbGoodsDemandUtil.java

@@ -0,0 +1,27 @@
+package com.pj.tb_goods_demand;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * 工具类:tb_goods_demand -- 二级收购商需求发布表
+ * @author yzs 
+ *
+ */
+@Component
+public class TbGoodsDemandUtil {
+
+	
+	/** 底层 Mapper 对象 */
+	public static TbGoodsDemandMapper tbGoodsDemandMapper;
+	@Autowired
+	private void setTbGoodsDemandMapper(TbGoodsDemandMapper tbGoodsDemandMapper) {
+		TbGoodsDemandUtil.tbGoodsDemandMapper = tbGoodsDemandMapper;
+	}
+	
+
+
+	
+	
+	
+}

+ 61 - 0
sp-service/level-two-server/src/main/java/com/pj/tb_goods_demand/vo/GoodsDemandVo.java

@@ -0,0 +1,61 @@
+package com.pj.tb_goods_demand.vo;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+
+/**
+ * @Author Mechrevo
+ * @Date 2023 08 03 16 27
+ **/
+@Data
+@NoArgsConstructor
+public class GoodsDemandVo {
+
+    /**
+     * 需求表主键
+     */
+    private Long goodsDemandId;
+
+    /**
+     * 报价表主键
+     */
+    private Long demandQuotationId;
+
+    /**
+     * 边民组ID
+     */
+    private Long groupId;
+
+    /**
+     * 商品名称
+     */
+    private String goodsName;
+
+    /**
+     * 商品图片
+     */
+    private String goodsImg;
+    /**
+     *  报价的组名
+     */
+    private String groupName;
+    /**
+     * 报价的组长名
+     */
+    private String createName;
+    /**
+     * 报价的时间
+     */
+    private Date createTime;
+    /**
+     * 价格
+     */
+    private Double quotation;
+    /**
+     * 备注
+     */
+    private String remark;
+
+}