Kaynağa Gözat

Merge branch 'dev' of http://git.aseanbusiness.cn/qzyReal/market-server into dev

# Conflicts:
#	sp-service/level-one-server/src/main/java/com/pj/tb_enterprise/TbEnterpriseService.java
#	sp-service/level-one-server/src/main/java/com/pj/tb_goods_cart/TbGoodsCartController.java
#	sp-service/level-one-server/src/main/java/com/pj/tb_order/MethodOrderService.java
qzyReal 2 yıl önce
ebeveyn
işleme
a1434e4664
30 değiştirilmiş dosya ile 721 ekleme ve 433 silme
  1. 4 2
      sp-core/sp-base/src/main/java/com/pj/aliyun/sms/AliyunInformSmsService.java
  2. 8 6
      sp-core/sp-base/src/main/java/com/pj/aliyun/sms/AliyunSmsService.java
  3. 4 4
      sp-core/sp-base/src/main/java/com/pj/retry/SmsRetryService.java
  4. 5 6
      sp-service/level-one-server/src/main/java/com/pj/tb_enterprise/MethodEnterpriseService.java
  5. 206 214
      sp-service/level-one-server/src/main/java/com/pj/tb_enterprise/TbEnterpriseService.java
  6. 75 0
      sp-service/level-one-server/src/main/java/com/pj/tb_goods_cart/MethodGoodsCartService.java
  7. 2 2
      sp-service/level-one-server/src/main/java/com/pj/tb_goods_cart/TbGoodsCart.java
  8. 65 80
      sp-service/level-one-server/src/main/java/com/pj/tb_goods_cart/TbGoodsCartController.java
  9. 23 9
      sp-service/level-one-server/src/main/java/com/pj/tb_goods_cart/TbGoodsCartService.java
  10. 2 12
      sp-service/level-one-server/src/main/java/com/pj/tb_goods_cart/dto/GoodsCartInfoDto.java
  11. 143 0
      sp-service/level-one-server/src/main/java/com/pj/tb_goods_cart/vo/GoodsCartVo.java
  12. 4 4
      sp-service/level-one-server/src/main/java/com/pj/tb_goods_transit/MethodGoodsTransitService.java
  13. 5 0
      sp-service/level-one-server/src/main/java/com/pj/tb_goods_transit/TbGoodsTransit.java
  14. 20 14
      sp-service/level-one-server/src/main/java/com/pj/tb_goods_transit/TbGoodsTransitService.java
  15. 6 6
      sp-service/level-one-server/src/main/java/com/pj/tb_order/MethodOrderService.java
  16. 3 3
      sp-service/level-one-server/src/main/java/com/pj/tb_order/TbOrderService.java
  17. 1 1
      sp-service/level-one-server/src/main/java/com/pj/tb_order_after_sale/TbOrderAfterSaleService.java
  18. 1 0
      sp-service/level-one-server/src/main/java/com/pj/tb_people/TbPeopleController.java
  19. 10 1
      sp-service/level-two-server/src/main/java/com/pj/tb_demand_quotation/TbDemandQuotation.java
  20. 10 3
      sp-service/level-two-server/src/main/java/com/pj/tb_demand_quotation/TbDemandQuotationService.java
  21. 18 0
      sp-service/level-two-server/src/main/java/com/pj/tb_goods_demand/AppTbGoodsDemandController.java
  22. 52 24
      sp-service/level-two-server/src/main/java/com/pj/tb_goods_demand/MethodGoodsDemandService.java
  23. 11 9
      sp-service/level-two-server/src/main/java/com/pj/tb_goods_demand/TbGoodsDemandService.java
  24. 9 0
      sp-service/level-two-server/src/main/java/com/pj/tb_orders/TbOrders.java
  25. 1 1
      sp-service/level-two-server/src/main/java/com/pj/tb_orders/TbOrdersApiController.java
  26. 1 0
      sp-service/level-two-server/src/main/java/com/pj/tb_orders/TbOrdersMapper.xml
  27. 8 7
      sp-service/level-two-server/src/main/java/com/pj/tb_orders/TbOrdersService.java
  28. 0 1
      sp-service/level-two-server/src/main/java/com/pj/tb_purchaser/TbPurchaserService.java
  29. 3 3
      sp-service/sp-admin/src/main/java/com/pj/project/app_user/AppUserApiController.java
  30. 21 21
      sp-service/sp-admin/src/main/java/com/pj/project/app_user/AppUserService.java

+ 4 - 2
sp-core/sp-base/src/main/java/com/pj/aliyun/sms/AliyunInformSmsService.java

@@ -28,10 +28,12 @@ public class AliyunInformSmsService {
 
     // 模板
     private static final String templateCode = "SMS_22*****04";
-
-    // 阿里云短信配置信息
+    //公钥
     private static final String accessKeyId = "LTA*************9Cf";
+    //私钥
     private static final String accessKeySecret = "1GjBfyf*****************SDlP";
+    // 阿里云短信配置信息
+
     private static final String REGION_ID = "cn-hangzhou";
     private static final String PRODUCT = "Dysmsapi";
     private static final String DOMAIN = "dysmsapi.aliyuncs.com";

+ 8 - 6
sp-core/sp-base/src/main/java/com/pj/aliyun/sms/AliyunSmsService.java

@@ -42,16 +42,18 @@ public class AliyunSmsService {
     // TODO 此处需要替换成开发者自己的AK(在阿里云访问控制台寻找)
     static final String accessKeyId = "LTAI5t6cteYYRcJm8TdTZU8d";
     static final String accessKeySecret = "nSED2HsrZbyhQM3ifGZmH0ruNaadLu";
+    // 模板名称: 验证码模板
+    static final String TemplateCode = "";
+    //签名
+    static final String SignName = "";
 
     /**
      * @param phone        手机号
-     * @param SignName     短信签名
-     * @param TemplateCode 短信模板
      * @param Param        模板内容
      * @return
      * @throws ClientException
      */
-    public static boolean sendSms(String phone, String SignName, String TemplateCode, String Param) {
+    public static boolean sendSms(String phone, String Param) {
 
         //可自助调整超时时间
         SendSmsResponse response = null;
@@ -100,11 +102,11 @@ public class AliyunSmsService {
     public static void main(String[] args) {
         Map<String,Integer> param = new HashMap<>();
         param.put("code", 10086);
-        boolean result = sendSms("18934859524", "一天实验室服务", "SMS_257813081", JSONUtils.toJSONString(param));
-        if (result) {
+//        boolean result = sendSms("18934859524", "一天实验室服务", "SMS_257813081", JSONUtils.toJSONString(param));
+//        if (result) {
 //            redisCache.setCacheObject(CacheConstants.APP_CODE_KEY + user.getPhone(), code, 5, TimeUnit.MINUTES);
             System.out.println("发送成功");
-        }
+//        }
     }
 
 }

+ 4 - 4
sp-core/sp-base/src/main/java/com/pj/retry/SmsRetryService.java

@@ -21,8 +21,8 @@ public class SmsRetryService {
 
     /**
      * 验证码短信
-     * @param phone
-     * @param code
+     * @param phone 手机号
+     * @param code  验证码
      * @return
      * @throws Exception
      */
@@ -31,14 +31,14 @@ public class SmsRetryService {
     public boolean sendSmsCode(String phone,String code) throws Exception {
         //模拟发送失败
         //todo: 发送短信业务逻辑
-        boolean result = AliyunSmsService.sendSms("18934859524", "Mechrevo", "SMS_462415029", null);
+        boolean result = AliyunSmsService.sendSms("18934859524",code);
         if(!result) throw new Exception("模拟短信发送失败!");
         return true;
     }
 
     /**
      * 通知短信
-     * @param phone
+     * @param phone 手机号
      * @return
      * @throws Exception
      */

+ 5 - 6
sp-service/level-one-server/src/main/java/com/pj/tb_enterprise/MethodEnterpriseService.java

@@ -6,6 +6,7 @@ import com.pj.api.client.transport.TransportInterface;
 import com.pj.api.dto.AppUserDto;
 import com.pj.api.dto.TbLogisticsDto;
 import com.pj.common.core.exception.ServiceException;
+import com.pj.current.dto.APPLoginUserInfo;
 import com.pj.enummj.DeleteStatus;
 import com.pj.tb_enterprise.vo.OrdersVo;
 import com.pj.tb_goods.TbGoods;
@@ -56,9 +57,9 @@ public class MethodEnterpriseService {
      * @param tbOrderList
      * @return
      */
-    public List<OrdersVo> orderListChangeVo(List<TbOrder> tbOrderList){
+    public List<OrdersVo> orderListChangeVo(APPLoginUserInfo appLoginInfo,List<TbOrder> tbOrderList){
+        //判空
         if(tbOrderList.size() == 0)return new ArrayList<>();
-
         //创建返回值集合
         List<OrdersVo> result = new ArrayList<>();
         //循环遍历
@@ -69,13 +70,10 @@ public class MethodEnterpriseService {
             Integer orderStatus = null;
             Double price = null; Date orderTime = null;
             //开始处理
-            Long buyUserId = item.getBuyUserId();
-            AppUserDto appUserById = adminInterface.getAppUserById(buyUserId);
-            if(appUserById.getId() == null)throw new RuntimeException("该订单无买家信息");
             //orderId
             orderId = item.getId();
             //groupId,groupName
-            String fkId = appUserById.getFkId();
+            Long fkId = appLoginInfo.getFk();
             TbPeople tbPeople = tbPeopleMapper.selectById(fkId);
             if(tbPeople != null && tbPeople.getId() != null){
                 groupId = tbPeople.getGroupId();
@@ -111,6 +109,7 @@ public class MethodEnterpriseService {
      * @param loginUserFK 登录用户的ID
      */
     void againApply(Long loginUserFK){
+        //根据AppUser表的fk查询对应的enterprise表数据
         List<TbEnterprise> enterpriseList = tbEnterpriseMapper.selectList(new LambdaQueryWrapper<TbEnterprise>().eq(TbEnterprise::getId, loginUserFK).eq(TbEnterprise::getDeleteStatus, DeleteStatus.DELETE_STATUS_ON.getCode()));
         if(enterpriseList.size() > 0){
             switch (enterpriseList.get(0).getJudgeStatus()){

+ 206 - 214
sp-service/level-one-server/src/main/java/com/pj/tb_enterprise/TbEnterpriseService.java

@@ -120,28 +120,27 @@ public class TbEnterpriseService extends ServiceImpl<TbEnterpriseMapper, TbEnter
     }
 
 
-    public int isLock(TbEnterpriseDto tbEnterpriseDto) {
-        // 获取当前登录用户id
-        Long loginId = StpUserUtil.getLoginIdAsLong();
-        // 根据id获取商户
-        TbEnterprise tbEnterprise = tbEnterpriseMapper.selectById(tbEnterpriseDto.getId());
-        // 如果商户不存在则抛出异常
-        if (Objects.isNull(tbEnterprise)) {
-            throw new RuntimeException("该商户不存在");
-        }
-        BeanUtils.copyProperties(tbEnterpriseDto, tbEnterprise);
-        // 写入更新者id
-        tbEnterprise.setUpdateBy(String.valueOf(loginId));
-        // 更新商户锁定状态
-        int line = tbEnterpriseMapper.updateById(tbEnterprise);
-        //获取商户锁定状态
-        int isLock = tbEnterprise.getIsLock();
-        // 如果商户被锁住则禁止app端登录
-        // TODO
-        adminInterface.isLock(String.valueOf(tbEnterprise.getId()), People.PEOPLE_TYPE_TWO.getCode(), isLock);
-
-        return line;
-    }
+	public int isLock(TbEnterpriseDto tbEnterpriseDto) {
+		// 获取当前登录用户id
+		Long loginId = StpUserUtil.getLoginIdAsLong();
+		// 根据id获取商户
+		TbEnterprise tbEnterprise = tbEnterpriseMapper.selectById(tbEnterpriseDto.getId());
+		// 如果商户不存在则抛出异常
+		if(Objects.isNull(tbEnterprise)){
+			throw new RuntimeException("该商户不存在");
+		}
+		BeanUtils.copyProperties(tbEnterpriseDto,tbEnterprise);
+		// 写入更新者id
+		tbEnterprise.setUpdateBy(String.valueOf(loginId));
+		// 更新商户锁定状态
+		int  line = tbEnterpriseMapper.updateById(tbEnterprise);
+		//获取商户锁定状态
+		int isLock = tbEnterprise.getIsLock();
+		// 如果商户被锁住则禁止app端登录
+		adminInterface.isLock(String.valueOf(tbEnterprise.getId()), People.PEOPLE_TYPE_TWO.getCode(),isLock);
+
+		return line;
+	}
 
     /**
      * 商家认证
@@ -151,37 +150,35 @@ public class TbEnterpriseService extends ServiceImpl<TbEnterpriseMapper, TbEnter
      */
     boolean identification(EnterpriseParam enterpriseParam) {
 
-        //手机号去重
-        String linkPhone = enterpriseParam.getLinkPhone();
-        if (tbEnterpriseMapper.selectList(new LambdaQueryWrapper<TbEnterprise>().eq(TbEnterprise::getIdCard, linkPhone).eq(TbEnterprise::getDeleteStatus, DeleteStatus.DELETE_STATUS_ON.getCode())).size() != 0)
-            throw new RuntimeException("当前手机号已被认证!");
-        //身份证号去重
-        String contact = enterpriseParam.getCorporateIdCard();
-        if (tbEnterpriseMapper.selectList(new LambdaQueryWrapper<TbEnterprise>().eq(TbEnterprise::getContact, contact).eq(TbEnterprise::getDeleteStatus, DeleteStatus.DELETE_STATUS_ON.getCode())).size() != 0)
-            throw new RuntimeException("当前身份证号已被认证!");
-        //判断是否重复提交
-        APPLoginUserInfo appLoginInfo = StpAPPUserUtil.getAPPLoginInfo();
-        if (appLoginInfo == null || appLoginInfo.getLoginId() == null)
-            throw new RuntimeException("当前登录账号信息已失效!");
-        //重复提交验证
-        methodEnterpriseService.againApply(appLoginInfo.getFk());
-        //todo:是否需要手机发送验证码认证?
-
-        //开始保存商家信息
-        TbEnterprise tbEnterprise = new TbEnterprise();
-        //保存基本信息
-        tbEnterprise.setName(enterpriseParam.getName());
-        tbEnterprise.setNationality("China");
-        tbEnterprise.setLegalPerson(enterpriseParam.getCorporateName());
-        tbEnterprise.setIdCard(enterpriseParam.getCorporateIdCard());
-        tbEnterprise.setContact(enterpriseParam.getLinkPhone());
-        tbEnterprise.setBusinessLicense(enterpriseParam.getBusinessLicense());
-        tbEnterprise.setBankName(enterpriseParam.getBankName());
-        tbEnterprise.setBankAccount(enterpriseParam.getBankAccount());
-        tbEnterprise.setBankNo(enterpriseParam.getBankNo());
-        tbEnterprise.setDutyParagraph(enterpriseParam.getDutyParagraph());
-        //默认待审核
-        tbEnterprise.setJudgeStatus(JudgeStatus.JUDGE_STATUS_ZERO.getCode());
+		//手机号去重
+		String linkPhone = enterpriseParam.getLinkPhone();
+		if(tbEnterpriseMapper.selectList(new LambdaQueryWrapper<TbEnterprise>().eq(TbEnterprise::getIdCard,linkPhone).eq(TbEnterprise::getDeleteStatus,DeleteStatus.DELETE_STATUS_ON.getCode())).size() != 0)
+			throw new RuntimeException("当前手机号已被认证!");
+		//身份证号去重
+		String contact = enterpriseParam.getCorporateIdCard();
+		if(tbEnterpriseMapper.selectList(new LambdaQueryWrapper<TbEnterprise>().eq(TbEnterprise::getContact,contact).eq(TbEnterprise::getDeleteStatus,DeleteStatus.DELETE_STATUS_ON.getCode())).size() != 0)
+			throw new RuntimeException("当前身份证号已被认证!");
+		//判断是否重复提交
+		APPLoginUserInfo appLoginInfo = StpAPPUserUtil.getAPPLoginInfo();
+		if(appLoginInfo == null || appLoginInfo.getLoginId() == null)
+			throw new RuntimeException("当前登录账号信息已失效!");
+		//重复提交验证处理
+		methodEnterpriseService.againApply(appLoginInfo.getFk());
+		//开始保存商家信息
+		TbEnterprise tbEnterprise = new TbEnterprise();
+		//保存基本信息
+		tbEnterprise.setName(enterpriseParam.getName());
+		tbEnterprise.setNationality("China");
+		tbEnterprise.setLegalPerson(enterpriseParam.getCorporateName());
+		tbEnterprise.setIdCard(enterpriseParam.getCorporateIdCard());
+		tbEnterprise.setContact(enterpriseParam.getLinkPhone());
+		tbEnterprise.setBusinessLicense(enterpriseParam.getBusinessLicense());
+		tbEnterprise.setBankName(enterpriseParam.getBankName());
+		tbEnterprise.setBankAccount(enterpriseParam.getBankAccount());
+		tbEnterprise.setBankNo(enterpriseParam.getBankNo());
+		tbEnterprise.setDutyParagraph(enterpriseParam.getDutyParagraph());
+		//默认待审核
+		tbEnterprise.setJudgeStatus(JudgeStatus.JUDGE_STATUS_ZERO.getCode());
 
         //注册/认证时间
         tbEnterprise.setRegisterTime(new Date());
@@ -196,169 +193,164 @@ public class TbEnterpriseService extends ServiceImpl<TbEnterpriseMapper, TbEnter
     }
 
 
-    /**
-     * 管理一级市场的贸易订单。
-     * 列表(主要展示字段:订单号、下单时间、商品名称、图片、价格、购买的边民组、订单状态、物流信息)、
-     * 确认退货/退款;
-     * 物流状态  SoMap soMap
-     */
-    public List<OrdersVo> manageLevelOneOrders(SoMap so, String keyword) {
-
-        //获取当前登录用户
-        APPLoginUserInfo appLoginInfo = StpAPPUserUtil.getAPPLoginInfo();
-        if (appLoginInfo == null || appLoginInfo.getLoginId() == null)
-            throw new RuntimeException("当前登陆用户信息已失效!");
-        Long fk = appLoginInfo.getFk();
-        //仅能查询自己的订单
-        so.set("buyUserId", fk);
-        so.set("deleteStatus", DeleteStatus.DELETE_STATUS_ON.getCode());
-        so.set("keyword", keyword);
-
-        List<TbOrder> tbOrders = tbOrderMapper.getList(so);
-        //执行数据封装
-        List<OrdersVo> ordersVos = methodEnterpriseService.orderListChangeVo(tbOrders);
-        return ordersVos;
-    }
-
-
-    /**
-     * 导入
-     *
-     * @param file excel文件
-     * @return
-     * @throws IOException
-     */
-    public String importData(MultipartFile file) throws IOException {
-        System.out.println("\n开始执行文件上传....\n");
-
-        //判空
-        if (file.isEmpty()) return "文件为空,无法执行上传...";
-        //获取文件上传数据
-        HSSFWorkbook wb = new HSSFWorkbook(file.getInputStream());
-        //获取第一页sheet
-        HSSFSheet sheet = wb.getSheetAt(0);
-        //定义计数器
-        int count = 0;
-        //定义行对象
-        HSSFRow row = null;
-        //解析数据封装到集合
-        count = methodEnterpriseService.importMethod(row, sheet, count);
-        wb.close();
-        System.out.println("\n文件上传完成,共上传 " + count + "条 " + "数据...\n");
-        return "上传完成,共上传" + count + "条" + "数据。";
-    }
 
-    /**
-     * 导出 excel文件
-     *
-     * @param keyword
-     * @return
-     */
-    public String outportExcel(String keyword, String filepath) throws IOException {
-        System.out.println("\n开始执行文件导出....\n");
-        //导出的文件的路径
-        if (filepath == null || filepath.trim().equals("")) {
-            // 获取当前用户的桌面路径
-            FileSystemView fileSystemView = FileSystemView.getFileSystemView();
-            filepath = fileSystemView.getHomeDirectory().getPath();
-        }
-        filepath = filepath + "\\商家数据表_" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")) + ".xlsx";
-        //根据需求查询数据
-        List<TbEnterprise> selectedList = tbEnterpriseMapper.selectList(new LambdaQueryWrapper<TbEnterprise>().eq(StringUtils.isNoneBlank(keyword), TbEnterprise::getName, keyword));
-        if (selectedList.size() == 0) return "没有可导出的数据。";
-        //建立excel对象封装数据
-        HSSFWorkbook workbook = new HSSFWorkbook();
-        //创建excel表格右下角的sheet页名称
-        HSSFSheet sheet = workbook.createSheet("1");
-        //创建表头
-        HSSFRow row = sheet.createRow(0);
-        row.createCell(0).setCellValue("序号");
-        row.createCell(1).setCellValue("名称");
-        row.createCell(2).setCellValue("国别");
-        row.createCell(3).setCellValue("商户分类");
-        row.createCell(4).setCellValue("法人");
-        row.createCell(5).setCellValue("身份证号");
-        row.createCell(6).setCellValue("手机号码");
-        row.createCell(7).setCellValue("营业执照");
-        row.createCell(8).setCellValue("所在铺位");
-        row.createCell(9).setCellValue("所在铺位名称");
-        row.createCell(10).setCellValue("银行编号");
-        row.createCell(11).setCellValue("银行名称");
-        row.createCell(12).setCellValue("银行账号");
-        row.createCell(13).setCellValue("银行税号");
-        row.createCell(14).setCellValue("地址ID集合");
-        row.createCell(15).setCellValue("地址");
-        row.createCell(16).setCellValue("agreement");
-        row.createCell(17).setCellValue("judge_status");
-        row.createCell(18).setCellValue("judge_content");
-        row.createCell(19).setCellValue("judge_time");
-        row.createCell(20).setCellValue("注册时间");
-        row.createCell(21).setCellValue("人物编号");
-        row.createCell(22).setCellValue("创建时间");
-        row.createCell(23).setCellValue("创建人编号");
-        row.createCell(24).setCellValue("创建人名称");
-        row.createCell(25).setCellValue("更新时间");
-        row.createCell(26).setCellValue("更新人编号");
-        row.createCell(27).setCellValue("更新人名称");
-        row.createCell(28).setCellValue("删除状态");
-
-        //定义计数器
-        int count = 0;
-        //遍历集合
-        for (int i = 0; i < selectedList.size(); i++) {
-            HSSFRow sheetRow = sheet.createRow(sheet.getLastRowNum() + 1);
-            sheetRow.createCell(0).setCellValue(i + 1);
-            sheetRow.createCell(1).setCellValue((selectedList.get(i).getName() + "").equals("null") ? "" : selectedList.get(i).getName() + "");
-            sheetRow.createCell(2).setCellValue((selectedList.get(i).getNationality() + "").equals("null") ? "" : selectedList.get(i).getNationality() + "");
-            sheetRow.createCell(3).setCellValue((selectedList.get(i).getType() + "").equals("null") ? "" : selectedList.get(i).getType() + "");
-            sheetRow.createCell(4).setCellValue((selectedList.get(i).getLegalPerson() + "").equals("null") ? "" : selectedList.get(i).getLegalPerson() + "");
-            sheetRow.createCell(5).setCellValue((selectedList.get(i).getIdCard() + "").equals("null") ? "" : selectedList.get(i).getIdCard() + "");
-            sheetRow.createCell(6).setCellValue((selectedList.get(i).getContact() + "").equals("null") ? "" : selectedList.get(i).getContact() + "");
-            sheetRow.createCell(7).setCellValue((selectedList.get(i).getBusinessLicense() + "").equals("null") ? "" : selectedList.get(i).getBusinessLicense() + "");
-            sheetRow.createCell(8).setCellValue((selectedList.get(i).getShopId() + "").equals("null") ? "" : selectedList.get(i).getShopId() + "");
-            sheetRow.createCell(9).setCellValue((selectedList.get(i).getShopName() + "").equals("null") ? "" : selectedList.get(i).getShopName() + "");
-            sheetRow.createCell(10).setCellValue((selectedList.get(i).getBankNo() + "").equals("null") ? "" : selectedList.get(i).getBankNo() + "");
-            sheetRow.createCell(11).setCellValue((selectedList.get(i).getBankName() + "").equals("null") ? "" : selectedList.get(i).getBankName() + "");
-            sheetRow.createCell(12).setCellValue((selectedList.get(i).getBankAccount() + "").equals("null") ? "" : selectedList.get(i).getBankAccount() + "");
-            sheetRow.createCell(13).setCellValue((selectedList.get(i).getDutyParagraph() + "").equals("null") ? "" : selectedList.get(i).getDutyParagraph() + "");
-            sheetRow.createCell(14).setCellValue((selectedList.get(i).getAddressIds() + "").equals("null") ? "" : selectedList.get(i).getAddressIds() + "");
-            sheetRow.createCell(15).setCellValue((selectedList.get(i).getAddress() + "").equals("null") ? "" : selectedList.get(i).getAddress() + "");
-            sheetRow.createCell(16).setCellValue((selectedList.get(i).getAgreement() + "").equals("null") ? "" : selectedList.get(i).getAgreement() + "");
-            sheetRow.createCell(17).setCellValue((selectedList.get(i).getJudgeStatus() + "").equals("null") ? "" : selectedList.get(i).getJudgeStatus() + "");
-            sheetRow.createCell(18).setCellValue((selectedList.get(i).getJudgeContent() + "").equals("null") ? "" : selectedList.get(i).getJudgeContent() + "");
-            sheetRow.createCell(19).setCellValue((selectedList.get(i).getJudgeTime() + "").equals("null") ? "" : selectedList.get(i).getJudgeTime() + "");
-            sheetRow.createCell(20).setCellValue((selectedList.get(i).getRegisterTime() + "").equals("null") ? "" : selectedList.get(i).getRegisterTime() + "");
+	/** 管理一级市场的贸易订单。
+	 * 列表(主要展示字段:订单号、下单时间、商品名称、图片、价格、购买的边民组、订单状态、物流信息)、
+	 * 确认退货/退款;
+	 * 物流状态  SoMap soMap
+	 */
+	public List<OrdersVo> manageLevelOneOrders(SoMap so,String keyword){
+
+		//获取当前登录用户
+		APPLoginUserInfo appLoginInfo = StpAPPUserUtil.getAPPLoginInfo();
+		if(appLoginInfo == null || appLoginInfo.getLoginId() == null)throw new RuntimeException("当前登陆用户信息已失效!");
+		Long fk = appLoginInfo.getFk();
+		//仅能查询自己的订单
+		so.put("buyUserId",fk);
+		so.put("deleteStatus",DeleteStatus.DELETE_STATUS_ON.getCode());
+		so.put("keyword",keyword);
+
+		List<TbOrder> tbOrders = tbOrderMapper.getList(so);
+		//执行数据封装
+		List<OrdersVo> ordersVos = methodEnterpriseService.orderListChangeVo(appLoginInfo,tbOrders);
+		return ordersVos;
+	}
+
+
+	/**
+	 * 导入
+	 * @param file excel文件
+	 * @return
+	 * @throws IOException
+	 */
+	public String importData(MultipartFile file) throws IOException {
+		System.out.println("\n开始执行文件上传....\n");
+
+		//判空
+		if(file.isEmpty()) return "文件为空,无法执行上传...";
+		//获取文件上传数据
+		HSSFWorkbook wb = new HSSFWorkbook(file.getInputStream());
+		//获取第一页sheet
+		HSSFSheet sheet = wb.getSheetAt(0);
+		//定义计数器
+		int count = 0;
+		//定义行对象
+		HSSFRow row = null;
+		//解析数据封装到集合
+		count = methodEnterpriseService.importMethod(row, sheet, count);
+		wb.close();
+		System.out.println("\n文件上传完成,共上传 " + count + "条 " + "数据...\n");
+		return "上传完成,共上传"  + count + "条"  + "数据。";
+	}
+
+	/**
+	 * 导出 excel文件
+	 * @param keyword
+	 * @return
+	 */
+	public String outportExcel(String keyword,String filepath) throws IOException {
+		System.out.println("\n开始执行文件导出....\n");
+		//导出的文件的路径
+		if(filepath == null || filepath.trim().equals("")){
+			// 获取当前用户的桌面路径
+			FileSystemView fileSystemView = FileSystemView.getFileSystemView();
+			filepath = fileSystemView.getHomeDirectory().getPath();
+		}
+		filepath = filepath + "\\商家数据表_" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")) + ".xlsx";
+		//根据需求查询数据
+		List<TbEnterprise> selectedList = tbEnterpriseMapper.selectList(new LambdaQueryWrapper<TbEnterprise>().eq(StringUtils.isNoneBlank(keyword), TbEnterprise::getName, keyword));
+		if(selectedList.size() == 0)return "没有可导出的数据。";
+		//建立excel对象封装数据
+		HSSFWorkbook workbook = new HSSFWorkbook();
+		//创建excel表格右下角的sheet页名称
+		HSSFSheet sheet = workbook.createSheet("1");
+		//创建表头
+		HSSFRow row = sheet.createRow(0);
+		row.createCell(0).setCellValue("序号");
+		row.createCell(1).setCellValue("名称");
+		row.createCell(2).setCellValue("国别");
+		row.createCell(3).setCellValue("商户分类");
+		row.createCell(4).setCellValue("法人");
+		row.createCell(5).setCellValue("身份证号");
+		row.createCell(6).setCellValue("手机号码");
+		row.createCell(7).setCellValue("营业执照");
+		row.createCell(8).setCellValue("所在铺位");
+		row.createCell(9).setCellValue("所在铺位名称");
+		row.createCell(10).setCellValue("银行编号");
+		row.createCell(11).setCellValue("银行名称");
+		row.createCell(12).setCellValue("银行账号");
+		row.createCell(13).setCellValue("银行税号");
+		row.createCell(14).setCellValue("地址ID集合");
+		row.createCell(15).setCellValue("地址");
+		row.createCell(16).setCellValue("agreement");
+		row.createCell(17).setCellValue("judge_status");
+		row.createCell(18).setCellValue("judge_content");
+		row.createCell(19).setCellValue("judge_time");
+		row.createCell(20).setCellValue("注册时间");
+		row.createCell(21).setCellValue("人物编号");
+		row.createCell(22).setCellValue("创建时间");
+		row.createCell(23).setCellValue("创建人编号");
+		row.createCell(24).setCellValue("创建人名称");
+		row.createCell(25).setCellValue("更新时间");
+		row.createCell(26).setCellValue("更新人编号");
+		row.createCell(27).setCellValue("更新人名称");
+		row.createCell(28).setCellValue("删除状态");
+
+		//定义计数器
+		int count = 0;
+		//遍历集合
+		for (int i = 0; i < selectedList.size(); i++) {
+			HSSFRow sheetRow = sheet.createRow(sheet.getLastRowNum() + 1);
+			sheetRow.createCell(0).setCellValue(i + 1);
+			sheetRow.createCell(1).setCellValue((selectedList.get(i).getName() + "").equals("null")? "": selectedList.get(i).getName() + "");
+			sheetRow.createCell(2).setCellValue((selectedList.get(i).getNationality() + "").equals("null")? "": selectedList.get(i).getNationality() + "");
+			sheetRow.createCell(3).setCellValue((selectedList.get(i).getType() + "").equals("null")? "": selectedList.get(i).getType() + "");
+			sheetRow.createCell(4).setCellValue((selectedList.get(i).getLegalPerson() + "").equals("null")? "": selectedList.get(i).getLegalPerson() + "");
+			sheetRow.createCell(5).setCellValue((selectedList.get(i).getIdCard() + "").equals("null")? "": selectedList.get(i).getIdCard() + "");
+			sheetRow.createCell(6).setCellValue((selectedList.get(i).getContact() + "").equals("null")? "": selectedList.get(i).getContact() + "");
+			sheetRow.createCell(7).setCellValue((selectedList.get(i).getBusinessLicense() + "").equals("null")? "": selectedList.get(i).getBusinessLicense() + "");
+			sheetRow.createCell(8).setCellValue((selectedList.get(i).getShopId() + "" ).equals("null")? "": selectedList.get(i).getShopId() + "");
+			sheetRow.createCell(9).setCellValue((selectedList.get(i).getShopName() + "").equals("null")? "": selectedList.get(i).getShopName() + "");
+			sheetRow.createCell(10).setCellValue((selectedList.get(i).getBankNo() + "").equals("null")? "": selectedList.get(i).getBankNo() + "");
+			sheetRow.createCell(11).setCellValue((selectedList.get(i).getBankName() + "").equals("null")? "": selectedList.get(i).getBankName() + "");
+			sheetRow.createCell(12).setCellValue((selectedList.get(i).getBankAccount() + "").equals("null")? "": selectedList.get(i).getBankAccount() + "");
+			sheetRow.createCell(13).setCellValue((selectedList.get(i).getDutyParagraph() + "").equals("null")? "": selectedList.get(i).getDutyParagraph() + "");
+			sheetRow.createCell(14).setCellValue((selectedList.get(i).getAddressIds() + "").equals("null")? "": selectedList.get(i).getAddressIds() + "");
+			sheetRow.createCell(15).setCellValue((selectedList.get(i).getAddress() + "").equals("null")? "": selectedList.get(i).getAddress() + "");
+			sheetRow.createCell(16).setCellValue((selectedList.get(i).getAgreement() + "").equals("null")? "": selectedList.get(i).getAgreement() + "");
+			sheetRow.createCell(17).setCellValue((selectedList.get(i).getJudgeStatus() + "").equals("null")? "": selectedList.get(i).getJudgeStatus() + "");
+			sheetRow.createCell(18).setCellValue((selectedList.get(i).getJudgeContent() + "").equals("null")? "": selectedList.get(i).getJudgeContent() + "");
+			sheetRow.createCell(19).setCellValue((selectedList.get(i).getJudgeTime() + "").equals("null")? "": selectedList.get(i).getJudgeTime() + "");
+			sheetRow.createCell(20).setCellValue((selectedList.get(i).getRegisterTime() + "").equals("null")? "": selectedList.get(i).getRegisterTime() + "");
 //			sheetRow.createCell(21).setCellValue((selectedList.get(i).getPersonId() + "").equals("null")? "": selectedList.get(i).getPersonId() + "");
-            sheetRow.createCell(22).setCellValue((selectedList.get(i).getCreateTime() + "").equals("null") ? "" : selectedList.get(i).getCreateTime() + "");
-            sheetRow.createCell(23).setCellValue((selectedList.get(i).getCreateBy() + "").equals("null") ? "" : selectedList.get(i).getCreateBy() + "");
-            sheetRow.createCell(24).setCellValue((selectedList.get(i).getCreateName() + "").equals("null") ? "" : selectedList.get(i).getCreateName() + "");
-            sheetRow.createCell(25).setCellValue((selectedList.get(i).getUpdateTime() + "").equals("null") ? "" : selectedList.get(i).getUpdateTime() + "");
-            sheetRow.createCell(26).setCellValue((selectedList.get(i).getUpdateBy() + "").equals("null") ? "" : selectedList.get(i).getUpdateBy() + "");
-            sheetRow.createCell(27).setCellValue((selectedList.get(i).getUpdateName() + "").equals("null") ? "" : selectedList.get(i).getUpdateName() + "");
-            sheetRow.createCell(28).setCellValue((selectedList.get(i).getDeleteStatus() + "").equals("null") ? "" : selectedList.get(i).getDeleteStatus() + "");
-            count += 1;
-        }
-        //建立输出流,输出文件
-        FileOutputStream fos = new FileOutputStream(filepath);
-
-        workbook.write(fos);
-        fos.flush();
-        //关闭输出流
-        fos.close();
-        workbook.close();
-        System.out.println("\n数据导出完成!共导出 " + count + " 条数据。");
-        return "数据导出完成!共导出 " + count + " 条数据。";
-    }
-
-    /**
-     * 远程调用方法 注册身份为互市区商家时调用
-     */
-    public boolean enterpriseDto(EnterpriseDto enterpriseDto) {
-        TbEnterprise tbEnterprise = new TbEnterprise();
-        BeanUtils.copyProperties(enterpriseDto, tbEnterprise);
-        boolean save = this.save(tbEnterprise);
-        return save;
-    }
+			sheetRow.createCell(22).setCellValue((selectedList.get(i).getCreateTime() + "").equals("null")? "": selectedList.get(i).getCreateTime() + "");
+			sheetRow.createCell(23).setCellValue((selectedList.get(i).getCreateBy() + "").equals("null")? "": selectedList.get(i).getCreateBy() + "");
+			sheetRow.createCell(24).setCellValue((selectedList.get(i).getCreateName() + "").equals("null")? "": selectedList.get(i).getCreateName() + "");
+			sheetRow.createCell(25).setCellValue((selectedList.get(i).getUpdateTime() + "").equals("null")? "": selectedList.get(i).getUpdateTime() + "");
+			sheetRow.createCell(26).setCellValue((selectedList.get(i).getUpdateBy() + "").equals("null")? "": selectedList.get(i).getUpdateBy() + "");
+			sheetRow.createCell(27).setCellValue((selectedList.get(i).getUpdateName() + "").equals("null")? "": selectedList.get(i).getUpdateName() + "");
+			sheetRow.createCell(28).setCellValue((selectedList.get(i).getDeleteStatus() + "").equals("null")? "": selectedList.get(i).getDeleteStatus() + "");
+			count += 1;
+		}
+		//建立输出流,输出文件
+		FileOutputStream fos = new FileOutputStream(filepath);
+
+		workbook.write(fos);
+		fos.flush();
+		//关闭输出流
+		fos.close();
+		workbook.close();
+		System.out.println("\n数据导出完成!共导出 " + count + " 条数据。");
+		return "数据导出完成!共导出 " + count + " 条数据。";
+	}
+
+	/** 远程调用方法 注册身份为互市区商家时调用*/
+	public boolean enterpriseDto(EnterpriseDto enterpriseDto){
+		TbEnterprise tbEnterprise = new TbEnterprise();
+		BeanUtils.copyProperties(enterpriseDto,tbEnterprise);
+		boolean save = this.save(tbEnterprise);
+		return save;
+	}
 
     public void audit(Long id, Integer judgeStatus, String judgeContent) {
         TbEnterprise tbEnterprise = this.getById(id);

+ 75 - 0
sp-service/level-one-server/src/main/java/com/pj/tb_goods_cart/MethodGoodsCartService.java

@@ -0,0 +1,75 @@
+package com.pj.tb_goods_cart;
+
+import com.pj.common.core.exception.ServiceException;
+import com.pj.tb_goods_cart.vo.GoodsCartVo;
+import com.pj.tb_goods_transit.TbGoodsTransit;
+import com.pj.tb_goods_transit.TbGoodsTransitMapper;
+import com.pj.tb_shop.TbShop;
+import com.pj.tb_shop.TbShopMapper;
+import org.springframework.beans.BeanUtils;
+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 04 16 30
+ **/
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class MethodGoodsCartService {
+
+    @Autowired
+    private TbGoodsCartMapper tbGoodsCartMapper;
+    @Autowired
+    private TbShopMapper tbShopMapper;
+    @Autowired
+    private TbGoodsTransitMapper tbGoodsTransitMapper;
+
+
+    /**
+     * 购物车转成VO
+     * @param cartList
+     * @return
+     */
+    public List<GoodsCartVo> changeTbGoodsCartToGoodsCartVoList(List<TbGoodsCart> cartList){
+        //校验大小
+        if(cartList.size() == 0)return null;
+        //创建返回值集合
+        List<GoodsCartVo> resultList = new ArrayList<>();
+        //遍历封装
+        cartList.forEach(item -> {
+            //获取店铺
+            TbShop tbShop = tbShopMapper.selectById(item.getShopId());
+            if(tbShop == null)throw new ServiceException("店铺信息有误~");
+            //店铺名称
+            String shopName = tbShop.getName();
+            //设置重量
+            Long goodsTransitId = item.getPublishGoodsId();
+            TbGoodsTransit tbGoodsTransit = tbGoodsTransitMapper.selectById(goodsTransitId);
+            if(tbGoodsTransit == null)throw new ServiceException("商品信息有误~");
+            Double grossWeight = tbGoodsTransit.getGrossWeight(); //毛重
+            Double netWeight = tbGoodsTransit.getNetWeight(); //净重
+            String goodsUnits = tbGoodsTransit.getGoodsUnits();
+            //创建对象
+            GoodsCartVo goodsCartVo = new GoodsCartVo();
+            //数据拷贝
+            BeanUtils.copyProperties(item,goodsCartVo);
+            //设置店铺名称
+            goodsCartVo.setShopName(shopName);
+            //设置净重
+            goodsCartVo.setNetWeight(netWeight + goodsUnits);
+            //设置毛重
+            goodsCartVo.setGrossWeight(grossWeight + goodsUnits);
+            //装进集合
+            resultList.add(goodsCartVo);
+        });
+
+        return resultList;
+    }
+
+
+}

+ 2 - 2
sp-service/level-one-server/src/main/java/com/pj/tb_goods_cart/TbGoodsCart.java

@@ -80,7 +80,7 @@ public class TbGoodsCart extends Model<TbGoodsCart> implements Serializable {
 	private Double totalPrice;	
 
 	/**
-	 * 售卖商品详情表ID 
+	 * tb_goods表主键
 	 */
 	private Long saleGoodsInfoId;	
 
@@ -105,7 +105,7 @@ public class TbGoodsCart extends Model<TbGoodsCart> implements Serializable {
 	private Integer distribution;	
 
 	/**
-	 *  
+	 *  tb_goods_transit主键
 	 */
 	private Long publishGoodsId;
 

+ 65 - 80
sp-service/level-one-server/src/main/java/com/pj/tb_goods_cart/TbGoodsCartController.java

@@ -2,6 +2,7 @@ package com.pj.tb_goods_cart;
 
 import java.util.List;
 
+import com.pj.tb_goods_cart.vo.GoodsCartVo;
 import com.pj.utils.so.SoMap;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -14,91 +15,75 @@ import cn.dev33.satoken.annotation.SaCheckPermission;
 
 /**
  * Controller: tb_goods_cart -- 购物车
- *
  * @author qzy
  */
 @RestController
 @RequestMapping("/TbGoodsCart/")
 public class TbGoodsCartController {
 
-    /**
-     * 底层 Service 对象
-     */
-    @Autowired
-    TbGoodsCartService tbGoodsCartService;
-
-    /**
-     * 增
-     */
-    @RequestMapping("add")
-    @SaCheckPermission(TbGoodsCart.PERMISSION_CODE_ADD)
-    public AjaxJson add(TbGoodsCart t) {
-        tbGoodsCartService.add(t);
-        t = tbGoodsCartService.getById(SP.publicMapper.getPrimarykey());
-        return AjaxJson.getSuccessData(t);
-    }
-
-    /**
-     * 删
-     */
-    @RequestMapping("delete")
-    @SaCheckPermission(TbGoodsCart.PERMISSION_CODE_DEL)
-    public AjaxJson delete(Long id) {
-        tbGoodsCartService.delete(id);
-        return AjaxJson.getSuccess();
-    }
-
-    /**
-     * 删 - 根据id列表
-     */
-    @RequestMapping("deleteByIds")
-    @SaCheckPermission(TbGoodsCart.PERMISSION_CODE_DEL)
-    public AjaxJson deleteByIds() {
-        List<Long> ids = SoMap.getRequestSoMap().getListByComma("ids", long.class);
-        int line = SP.publicMapper.deleteByIds(TbGoodsCart.TABLE_NAME, ids);
-        return AjaxJson.getByLine(line);
-    }
-
-    /**
-     * 改
-     */
-    @RequestMapping("update")
-    @SaCheckPermission(TbGoodsCart.PERMISSION_CODE_EDIT)
-    public AjaxJson update(TbGoodsCart t) {
-        tbGoodsCartService.update(t);
-        return AjaxJson.getSuccess();
-    }
-
-    /**
-     * 查 - 根据id
-     */
-    @RequestMapping("getById")
-    @SaCheckPermission(TbGoodsCart.PERMISSION_CODE)
-    public AjaxJson getById(String id) {
-        TbGoodsCart t = tbGoodsCartService.getById(id);
-        return AjaxJson.getSuccessData(t);
-    }
-
-    /**
-     * 查集合 - 根据条件(参数为空时代表忽略指定条件)
-     */
-    @RequestMapping("getList")
-    //@SaCheckPermission(TbGoodsCart.PERMISSION_CODE)
-    public AjaxJson getList() {
-        SoMap so = SoMap.getRequestSoMap();
-        List<TbGoodsCart> list = tbGoodsCartService.getList(so.startPage());
-        return AjaxJson.getPageData(so.getDataCount(), list);
-    }
-
-
-    /**
-     * 改 - 删除状态(0=禁用,1=启用)
-     */
-    @RequestMapping("updateDeleteStatus")
-    @SaCheckPermission(TbGoodsCart.PERMISSION_CODE_EDIT)
-    public AjaxJson updateDeleteStatus(String id, Integer value) {
-        int line = SP.publicMapper.updateColumnById(TbGoodsCart.TABLE_NAME, "delete_status", value, id);
-        return AjaxJson.getByLine(line);
-    }
+	/** 底层 Service 对象 */
+	@Autowired
+	TbGoodsCartService tbGoodsCartService;
+
+	/** 增 */
+	@RequestMapping("add")
+//	@SaCheckPermission(TbGoodsCart.PERMISSION_CODE_ADD)
+	public AjaxJson add(TbGoodsCart t){
+		tbGoodsCartService.add(t);
+		t = tbGoodsCartService.getById(SP.publicMapper.getPrimarykey());
+		return AjaxJson.getSuccessData(t);
+	}
+
+	/** 删 */
+	@RequestMapping("delete")
+//	@SaCheckPermission(TbGoodsCart.PERMISSION_CODE_DEL)
+	public AjaxJson delete(Long id){
+		tbGoodsCartService.delete(id);
+		return AjaxJson.getSuccess();
+	}
+
+	/** 删 - 根据id列表 */
+	@RequestMapping("deleteByIds")
+//	@SaCheckPermission(TbGoodsCart.PERMISSION_CODE_DEL)
+	public AjaxJson deleteByIds(){
+		List<Long> ids = SoMap.getRequestSoMap().getListByComma("ids", long.class);
+		int line = SP.publicMapper.deleteByIds(TbGoodsCart.TABLE_NAME, ids);
+		return AjaxJson.getByLine(line);
+	}
+
+	/** 改 */
+	@RequestMapping("update")
+//	@SaCheckPermission(TbGoodsCart.PERMISSION_CODE_EDIT)
+	public AjaxJson update(TbGoodsCart t){
+		tbGoodsCartService.update(t);
+		return AjaxJson.getSuccess();
+	}
+
+	/** 查 - 根据id */
+	@RequestMapping("getById")
+//		@SaCheckPermission(TbGoodsCart.PERMISSION_CODE)
+	public AjaxJson getById(String id){
+		TbGoodsCart t = tbGoodsCartService.getById(id);
+		return AjaxJson.getSuccessData(t);
+	}
+
+	/** 查集合 - 根据条件(参数为空时代表忽略指定条件) */
+	@RequestMapping("getList")
+//		@SaCheckPermission(TbGoodsCart.PERMISSION_CODE)
+	public AjaxJson getList() {
+		SoMap so = SoMap.getRequestSoMap();
+		List<GoodsCartVo> list = tbGoodsCartService.getList(so.startPage());
+		return AjaxJson.getPageData(so.getDataCount(), list);
+	}
+
+
+
+	/** 改 - 删除状态(0=禁用,1=启用) */
+	@RequestMapping("updateDeleteStatus")
+//	@SaCheckPermission(TbGoodsCart.PERMISSION_CODE_EDIT)
+	public AjaxJson updateDeleteStatus(String id, Integer value){
+		int line = SP.publicMapper.updateColumnById(TbGoodsCart.TABLE_NAME, "delete_status", value, id);
+		return AjaxJson.getByLine(line);
+	}
 
 }

+ 23 - 9
sp-service/level-one-server/src/main/java/com/pj/tb_goods_cart/TbGoodsCartService.java

@@ -9,7 +9,9 @@ import com.pj.current.dto.APPLoginUserInfo;
 import com.pj.current.satoken.StpAPPUserUtil;
 import com.pj.enummj.DeleteStatus;
 import com.pj.enummj.IsLock;
+import com.pj.enummj.UserType;
 import com.pj.tb_goods_cart.dto.GoodsCartInfoDto;
+import com.pj.tb_goods_cart.vo.GoodsCartVo;
 import com.pj.tb_goods_transit.TbGoodsTransit;
 import com.pj.tb_goods_transit.TbGoodsTransitMapper;
 import com.pj.tb_group.TbGroup;
@@ -38,7 +40,7 @@ public class TbGoodsCartService extends ServiceImpl<TbGoodsCartMapper, TbGoodsCa
 	TbGoodsCartMapper tbGoodsCartMapper;
 
 	@Autowired
-	private TbGroupMapper tbGroupMapper;
+	private MethodGoodsCartService methodGoodsCartService;
 	/** 已过审的商品 */
 	@Autowired
 	private TbGoodsTransitMapper tbGoodsTransitMapper;
@@ -66,13 +68,21 @@ public class TbGoodsCartService extends ServiceImpl<TbGoodsCartMapper, TbGoodsCa
 	}
 
 	/** 查集合 - 根据条件(参数为空时代表忽略指定条件) */  
-	List<TbGoodsCart> getList(SoMap so) { 
-		return tbGoodsCartMapper.getList(so);	
+	List<GoodsCartVo> getList(SoMap so) {
+		//检查登录
+		APPLoginUserInfo appUser = StpAPPUserUtil.getAPPLoginInfo();
+		if(appUser == null || appUser.getLoginId() == null)throw new ServiceException("登陆账号信息异常!");
+		//查看自己的购物车
+		so.put("buyUserId",appUser.getLoginId());
+		so.put("deleteStatus",DeleteStatus.DELETE_STATUS_ON.getCode());
+		List<TbGoodsCart> cartList = tbGoodsCartMapper.getList(so);
+		List<GoodsCartVo> goodsCartVos = methodGoodsCartService.changeTbGoodsCartToGoodsCartVoList(cartList);
+		return goodsCartVos;
 	}
 
 	/** 添加商品进购物车 */
 	public AjaxJson addGoodsInShopCart(GoodsCartInfoDto goodsCartInfoDto){
-		//检查登录 todo: 前端完成后需释放该检查登陆验证
+		//检查登录
 		APPLoginUserInfo appUser = StpAPPUserUtil.getAPPLoginInfo();
 		if(appUser == null || appUser.getLoginId() == null)return AjaxJson.getError("购买者账号异常");
 		//判断当前用户是否为一级市场边民组长
@@ -80,14 +90,14 @@ public class TbGoodsCartService extends ServiceImpl<TbGoodsCartMapper, TbGoodsCa
 		if(leader == 0)throw new ServiceException("您当前的身份不是互市组组长,无法添加购物车!");
 		//购物车查重
 		int size = tbGoodsCartMapper.selectList(new LambdaQueryWrapper<TbGoodsCart>()
-				.eq(TbGoodsCart::getBuyUserId, appUser.getLoginId()).eq(TbGoodsCart::getSaleGoodsInfoId,
-						goodsCartInfoDto.getSaleGoodsInfoId()).eq(TbGoodsCart::getDeleteStatus,
+				.eq(TbGoodsCart::getBuyUserId, appUser.getLoginId()).eq(TbGoodsCart::getPublishGoodsId,
+						goodsCartInfoDto.getPublishGoodsId()).eq(TbGoodsCart::getDeleteStatus,
 						DeleteStatus.DELETE_STATUS_ON.getCode())).size();
 		if(size != 0)
 			throw new ServiceException("当前商品已存在您的购物车中,请勿重复添加");
 		//获取商品对象
-		Long infoId = goodsCartInfoDto.getSaleGoodsInfoId();
-		TbGoodsTransit tbGoodsTransit = tbGoodsTransitMapper.selectById(infoId);
+		Long publishGoodsId = goodsCartInfoDto.getPublishGoodsId();
+		TbGoodsTransit tbGoodsTransit = tbGoodsTransitMapper.selectById(publishGoodsId);
 		if(tbGoodsTransit == null)return AjaxJson.getError("当前商品信息存在异常");
 		//创建保存对象
 		TbGoodsCart tbGoodsCart = new TbGoodsCart();
@@ -95,11 +105,15 @@ public class TbGoodsCartService extends ServiceImpl<TbGoodsCartMapper, TbGoodsCa
 		//购买的用户类型
 		tbGoodsCart.setBuyType(appUser.getUserType());
 		//购买方式,默认都是互助组进行购买
-		tbGoodsCart.setBuyType(2);
+		tbGoodsCart.setBuyType(UserType.USER_TYPE_GROUP_LEADER.getCode());
 		//购买商品的重量
 		tbGoodsCart.setBuyWeight(goodsCartInfoDto.getBuyWeight());
 		//当前商品的单位
 		tbGoodsCart.setGoodsUnit(tbGoodsTransit.getGoodsUnits());
+		//goodsTransitId
+		tbGoodsCart.setPublishGoodsId(publishGoodsId);
+		//tbGoodsId
+		tbGoodsCart.setSaleGoodsInfoId(tbGoodsTransit.getGoodsId());
 		//商品价格
 		tbGoodsCart.setTotalPrice(tbGoodsTransit.getPrice());
 		//设置基本属性

+ 2 - 12
sp-service/level-one-server/src/main/java/com/pj/tb_goods_cart/dto/GoodsCartInfoDto.java

@@ -30,19 +30,9 @@ public class GoodsCartInfoDto {
     /** 购买地点ID */
     @NotNull(message = "区域ID必填")
     private Long tradeAreaId;
-//    /** 购买总价 */
-//    @NotNull(message = "必填")
-//    @DecimalMin("0.0")
-//    private Double totalPrice;
-    /** 商品ID */
+    /** goodsTransit商品ID */
     @NotNull(message = "商品ID必填")
-    private Long saleGoodsInfoId;
-//    /** 购买者类型(边民/...) */
-//    @NotNull(message = "购买者ID必填")
-//    private Integer buyUserType;
-//    /** 购买方式 */
-//    @NotNull(message = "购买类型(2=互助组,3=个人购买)必填")
-//    private Integer buyType;
+    private Long publishGoodsId;
     /** 商品图片 */
     @NotNull(message = "商品ID必填")
     private String goodsImg;

+ 143 - 0
sp-service/level-one-server/src/main/java/com/pj/tb_goods_cart/vo/GoodsCartVo.java

@@ -0,0 +1,143 @@
+package com.pj.tb_goods_cart.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+
+/**
+ * @Author Mechrevo
+ * @Date 2023 08 04 16 27
+ **/
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class GoodsCartVo {
+
+    /**
+     * 店铺名
+     */
+    private String shopName;
+
+    /**
+     * 重量
+     */
+    private String netWeight;
+    /**
+     * 毛量
+     */
+    private String grossWeight;
+
+    @NotNull(message = "id")
+    private String id;
+
+    /**
+     * 商家ID
+     */
+    @NotNull(message = "enterpriseId")
+    private Long enterpriseId;
+
+    /**
+     *
+     */
+    @NotNull(message = "shopId")
+    private Long shopId;
+
+    /**
+     *
+     */
+    private Long tradeAreaId;
+
+    private String goodsImg;
+
+    private String goodsName;
+
+    private Integer buyNum;
+
+    /**
+     *
+     */
+    private Long buyUserId;
+
+    /**
+     * 购买金额
+     */
+    private Double totalPrice;
+
+    /**
+     * tb_goods表ID
+     */
+    private Long saleGoodsInfoId;
+
+    /**
+     * 商品重量
+     */
+    private Double buyWeight;
+
+    /**
+     *
+     */
+    private String buyUserType;
+
+    /**
+     * 购买方式(2=互助组,3=个人购买)
+     */
+    private Integer buyType;
+
+    /**
+     * 分配方式
+     */
+    private Integer distribution;
+
+    /**
+     * tb_goods_transit表ID
+     */
+    private Long publishGoodsId;
+
+    /**
+     * 商品重量单位
+     */
+    private String goodsUnit;
+
+    /**
+     * 创建时间
+     */
+    @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;
+
+
+}

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

@@ -56,8 +56,8 @@ public class MethodGoodsTransitService {
         //创建固定线程
         ExecutorService executorService = Executors.newFixedThreadPool(processors);
         //执行任务
-        //每次执行30条
-        int bai = 30;
+        //每次执行20条
+        int bai = 20;
         //计算需要创建的线程数
         int threads = (int) Math.ceil((double) peopleIdList.size() / bai);
         //创建计数器
@@ -70,9 +70,9 @@ public class MethodGoodsTransitService {
             //多线程执行任务
             executorService.submit(() -> {
                 enterpriseList.forEach(item -> {
-                    //todo: 给边民发送短信,调用短信商接口API
+                    // 给边民发送短信,调用短信商接口API
                     try {
-                        smsRetryService.sendSmsCode(item.getPhone(), "666");
+                        smsRetryService.sendSmsMsg(item.getPhone());
                     } catch (Exception e) {
                         System.out.println("异常被抓住了!");
                         throw new RuntimeException(e);

+ 5 - 0
sp-service/level-one-server/src/main/java/com/pj/tb_goods_transit/TbGoodsTransit.java

@@ -71,6 +71,11 @@ public class TbGoodsTransit extends Model<TbGoodsTransit> implements Serializabl
 	private String goodsImg;
 
 	/**
+	 * 海关商品表主键
+	 */
+	private Long goodsId;
+
+	/**
 	 * 商品名称 
 	 */
 	private String goodsName;	

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

@@ -79,6 +79,15 @@ public class TbGoodsTransitService extends ServiceImpl<TbGoodsTransitMapper, TbG
 
 	/** 增 */
 	void add(TbGoodsTransit t){
+		//获取当前登录人
+		APPLoginUserInfo appLoginInfo = StpAPPUserUtil.getAPPLoginInfo();
+		if(appLoginInfo == null || appLoginInfo.getLoginId() == null)
+			throw new RuntimeException("账户登录信息已失效!请重新登录");
+		t.setAuditStatus(AuditStatus.AUDIT_STATUS_ON.getCode());
+		t.setCreateBy(String.valueOf(appLoginInfo.getLoginId()));
+		t.setCreateName(appLoginInfo.getLoginName());
+		t.setCreateTime(new Date());
+		t.setDeleteStatus(DeleteStatus.DELETE_STATUS_ON.getCode());
 		save(t);
 	}
 
@@ -181,17 +190,17 @@ public class TbGoodsTransitService extends ServiceImpl<TbGoodsTransitMapper, TbG
 		tbGoodsTransit.setShopName(transactionGoodsParam.getShopName());
 
 		//商户编号
-		tbGoodsTransit.setMerchantId(appLoginInfo.getLoginId() + "");
+		tbGoodsTransit.setMerchantId(appLoginInfo.getFk() + "");
 		//商户名称
 		tbGoodsTransit.setMerchantName(appLoginInfo.getLoginName());
 
 		//保存海关商品表的主键到商品审核表上 todo:原计划是保存[海关申报单号],临时修改成保存海关商品表的主键
-		tbGoodsTransit.setDeclareOdd(tbGoods.getId().toString());
+		tbGoodsTransit.setDeclareOdd(String.valueOf(tbGoods.getId()));
 		//设置默认信息
-		tbGoodsTransit.setAuditStatus(1);//默认已过审
-		tbGoodsTransit.setGoodsStatus(1);//默认已上架
+		tbGoodsTransit.setAuditStatus(AuditStatus.AUDIT_STATUS_ON.getCode());//默认已过审
+		tbGoodsTransit.setGoodsStatus(GoodsStatus.GOODS_STATUS_ON.getCode());//默认已上架
 		tbGoodsTransit.setIsOrders(0);//默认未被下单
-		tbGoodsTransit.setEnterpriseConfirm(0);//商铺确认情况[0=待确认,1=已确认,2=拒绝]
+		tbGoodsTransit.setEnterpriseConfirm(EnterpriseConfirm.ENTERPRISE_CONFIRM_ZERO.getCode());//商铺确认情况[0=待确认,1=已确认,2=拒绝]
 		//设置基本信息
 		tbGoodsTransit.setCreateTime(new Date());
 		tbGoodsTransit.setCreateBy(appLoginInfo.getLoginId() + "");
@@ -199,8 +208,7 @@ public class TbGoodsTransitService extends ServiceImpl<TbGoodsTransitMapper, TbG
 		tbGoodsTransit.setDeleteStatus(1);
 		//执行保存
 		int insert = tbGoodsTransitMapper.insert(tbGoodsTransit);
-		if(insert == 1)return true;
-		return false;
+		return insert == 1;
 	}
 
 	/** app端 - 商户自行选择上架/下架商品 */
@@ -223,8 +231,7 @@ public class TbGoodsTransitService extends ServiceImpl<TbGoodsTransitMapper, TbG
 		tbGoodsTransit.setUpdateName(appLoginInfo.getLoginName());
 		//执行保存
 		int updateById = tbGoodsTransitMapper.updateById(tbGoodsTransit);
-		if(updateById == 1)return true;
-		return false;
+		return updateById == 1;
 	}
 
 	/**
@@ -254,8 +261,8 @@ public class TbGoodsTransitService extends ServiceImpl<TbGoodsTransitMapper, TbG
 		if(tbGoodsTransit == null || tbGoodsTransit.getId() == null)
 			throw new RuntimeException("当前商品信息已失效!");
 		//检查是否属于海关允许销售商品
-		String declareOdd = tbGoodsTransit.getDeclareOdd();
-		TbGoods tbGoods = tbGoodsMapper.selectById(declareOdd);
+		Long goodsId = tbGoodsTransit.getGoodsId();
+		TbGoods tbGoods = tbGoodsMapper.selectById(goodsId);
 		if(tbGoods == null)throw new RuntimeException("当前商品海关已不允许销售!");
 		//执行采购,创建一级市场订单表 , 该方法只是设置tbOrder的属性
 		TbOrder tbOrder = methodGoodsTransitService.setTbOrderProperties(tbGoodsTransit, appLoginInfo);
@@ -270,9 +277,8 @@ public class TbGoodsTransitService extends ServiceImpl<TbGoodsTransitMapper, TbG
 				//获取商家信息
 				TbEnterprise tbEnterprise = tbEnterpriseMapper.selectById(tbGoodsTransit.getMerchantId());
 				if(tbEnterprise == null)throw new RuntimeException("商家不存在!");
-				//todo: 线上时放开下面的参数 - 通知短信
-				return smsRetryService.sendSmsMsg("18934859524");
-//				("18934859524", "一天实验室服务", "SMS_257813081", JSONUtils.toJSONString("修改内容"));
+				//通知短信
+				return smsRetryService.sendSmsMsg(tbEnterprise.getContact());
 			}
 		}
 		throw new RuntimeException("订单预创建异常!");

+ 6 - 6
sp-service/level-one-server/src/main/java/com/pj/tb_order/MethodOrderService.java

@@ -39,20 +39,20 @@ public class MethodOrderService {
                 TbPeople tbPeople = tbPeopleMapper.selectById(fk);
                 if(tbPeople == null)throw new ServiceException("当前用户未认证边民!");
                 //根据组进行匹配订单
-                queryWrapper.eq(TbOrder::getGroupId,tbPeople.getGroupId());
+                so.put("groupId",tbPeople.getGroupId());
                 break;
             case 2: //互市组组长
-                queryWrapper.eq(TbOrder::getBuyUserId,fk);
+                so.put("buyUserId",fk);
                 break;
             case 3: // 一级市场商家
-                queryWrapper.eq(TbOrder::getEnterpriseId,fk);
+                so.put("enterpriseId",fk);
                 break;
             default:
                 throw new RuntimeException("服务器繁忙~");
         }
-        queryWrapper.eq(TbOrder::getDeleteStatus, DeleteStatus.DELETE_STATUS_ON.getCode());
-        queryWrapper.orderByDesc(TbOrder::getCreateTime);
-        List<TbOrder> tbOrderList = tbOrderMapper.selectList(queryWrapper);
+        so.put("deleteStatus",DeleteStatus.DELETE_STATUS_ON.getCode());
+        so.put("sortType",44);
+        List<TbOrder> tbOrderList = tbOrderMapper.getList(so);
         return tbOrderList;
 
     }

+ 3 - 3
sp-service/level-one-server/src/main/java/com/pj/tb_order/TbOrderService.java

@@ -76,9 +76,9 @@ public class TbOrderService extends ServiceImpl<TbOrderMapper, TbOrder> implemen
 	/** 获取当前登陆人订单集合 */
 	public List<TbOrder> selectSelfOrders(SoMap so) {
 		APPLoginUserInfo appLoginInfo = StpAPPUserUtil.getAPPLoginInfo();
-		if(appLoginInfo == null)throw new RuntimeException("当前登陆用户信息已失效!");
-		so.set("buy_user_id",appLoginInfo.getLoginId());
-		so.set("delete_status", DeleteStatus.DELETE_STATUS_ON.getCode());
+		if(appLoginInfo == null || appLoginInfo.getLoginId() == null)throw new RuntimeException("当前登陆用户信息已失效!");
+		so.put("buyUserId",appLoginInfo.getLoginId());
+		so.put("deleteStatus", DeleteStatus.DELETE_STATUS_ON.getCode());
 		return tbOrderMapper.getList(so);
 	}
 

+ 1 - 1
sp-service/level-one-server/src/main/java/com/pj/tb_order_after_sale/TbOrderAfterSaleService.java

@@ -119,7 +119,7 @@ public class TbOrderAfterSaleService extends ServiceImpl<TbOrderAfterSaleMapper,
 		if(appLoginInfo == null || appLoginInfo.getLoginId() == null)
 			throw new RuntimeException("当前登录账号信息已失效!");
 		//判断当前用户是否为商户
-		if(!appLoginInfo.getUserType().equals(UserType.USER_TYPE_ENTERPRISE.getCode().toString()))
+		if(!appLoginInfo.getUserType().toString().equals(UserType.USER_TYPE_ENTERPRISE.getCode().toString()))
 			throw new ServiceException("您当前身份不是商户!");
 		//保存售后结果
 		TbOrderAfterSale tbOrderAfterSale = new TbOrderAfterSale();

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

@@ -111,6 +111,7 @@ public class TbPeopleController {
 	@PostMapping("identification")
 	//TODO: 身份识别
 	public AjaxJson identification(){
+		tbPeopleService.identification();
 		return AjaxJson.getSuccess();
 	}
 

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

@@ -74,7 +74,11 @@ public class TbDemandQuotation extends Model<TbDemandQuotation> implements Seria
 	/**
 	 * 二级市场收购商需求表ID
 	 */
-	private Long trade_area_id;
+	private Long tradeAreaId;
+	/**
+	 * 二级市场收购商需求表
+	 */
+	private String tradeAreaName;
 
 	/**
 	 * 报价(CNY) 
@@ -104,6 +108,11 @@ public class TbDemandQuotation extends Model<TbDemandQuotation> implements Seria
 	 */
 	@JsonFormat(pattern = "yyyy-MM-dd")
 	private Date createTime;
+	/**
+	 * 创建时间
+	 */
+	@JsonFormat(pattern = "yyyy-MM-dd")
+	private Date resultTime;
 
 	/**
 	 * 删除状态 

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

@@ -13,6 +13,8 @@ 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.tb_purchaser.TbPurchaser;
+import com.pj.tb_purchaser.TbPurchaserMapper;
 import com.pj.utils.so.SoMap;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -40,6 +42,9 @@ public class TbDemandQuotationService extends ServiceImpl<TbDemandQuotationMappe
 	/** 二级收购商需求 */
 	@Autowired
 	private TbGoodsDemandMapper tbGoodsDemandMapper;
+	/** 二级市场收购商 */
+	@Autowired
+	private TbPurchaserMapper tbPurchaserMapper;
 
 	/** 增 */
 	void add(TbDemandQuotation t){
@@ -91,6 +96,7 @@ public class TbDemandQuotationService extends ServiceImpl<TbDemandQuotationMappe
 		tbDemandQuotation.setDemandId(demandQuotationParam.getGoodsDemandId()); //需求表ID
 		tbDemandQuotation.setQuotation(demandQuotationParam.getPrice()); // 报价
 		tbDemandQuotation.setCreateBy(appLoginInfo.getLoginId()); //创建人登陆表主键
+		tbDemandQuotation.setRemark(appLoginInfo.getLoginName() + ": " +  demandQuotationParam.getRemark()); //报价备注
 		tbDemandQuotation.setLeaderId(appLoginInfo.getFk());  //边民表主键
 		tbDemandQuotation.setGroupName(rpcById.getGroupName()); // 互市组组名
 		tbDemandQuotation.setCreateTime(new Date()); //创建时间
@@ -106,11 +112,12 @@ public class TbDemandQuotationService extends ServiceImpl<TbDemandQuotationMappe
 			tbGoodsDemand.setIsOrders(demandQuotationParam.getIsOrders());
 			int updateById = tbGoodsDemandMapper.updateById(tbGoodsDemand);
 			if(updateById != 1)throw new RuntimeException("无法进行报价!");
-			//短信提示二级市场收购商,需求已报价,进入app进行确认接单 todo:该位置需打开 - 通知短信
-			return smsRetryService.sendSmsMsg(null);
+			//短信提示二级市场收购商,需求已报价,进入app进行确认接单
+			TbPurchaser tbPurchaser = tbPurchaserMapper.selectById(tbGoodsDemand.getPurchaserId());
+			if(tbPurchaser == null)throw new RuntimeException("服务器繁忙~");
+			return smsRetryService.sendSmsMsg(tbPurchaser.getContact());
 		}
 			throw new RuntimeException("抢单报价失败!");
-//		return true;
 	}
 	
 

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

@@ -84,6 +84,24 @@ public class AppTbGoodsDemandController {
 		return AjaxJson.getPageData(so.getDataCount(), goodsDemandVos);
 	}
 
+	/** app端:  二级市场收购商处理已被报价的需求
+	 * @param disposeStatus 商家处理状态,只能是1或者2,其他值会抛异常 , 1=同意,2=拒绝
+	 * @param goodsDemandId  需求表主键
+	 * @param demandQuotationId  报价表主键
+	 * @param purchaserRemark 商家的备注,非必填
+	 * @return true/false
+	 */
+	@RequestMapping("disposeOrders")
+//		@SaCheckPermission(TbGoodsDemand.PERMISSION_CODE)
+	public AjaxJson disposeOrders(@RequestParam(value = "disposeStatus")Integer disposeStatus,
+								  @RequestParam("goodsDemandId") Long goodsDemandId,
+								  @RequestParam("demandQuotationId") Long demandQuotationId,
+								  @RequestParam(value = "purchaserRemark",required = false) String purchaserRemark) {
+		boolean disposed = tbGoodsDemandService.disposeOrders(disposeStatus, goodsDemandId, demandQuotationId, purchaserRemark);
+		if(disposed)return AjaxJson.getSuccess("处理报价结果成功!");
+		return AjaxJson.getError("处理报价结果失败!");
+	}
+
 
 
 	

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

@@ -4,6 +4,7 @@ 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.current.dto.APPLoginUserInfo;
 import com.pj.enummj.DeleteStatus;
 import com.pj.retry.SmsRetryService;
 import com.pj.tb_demand_quotation.TbDemandQuotation;
@@ -11,11 +12,14 @@ import com.pj.tb_demand_quotation.TbDemandQuotationMapper;
 import com.pj.tb_demand_quotation.TbDemandQuotationService;
 import com.pj.tb_goods_demand.vo.GoodsDemandVo;
 import com.pj.tb_orders.TbOrders;
+import com.pj.tb_orders.TbOrdersMapper;
+import com.pj.utils.so.SoMap;
 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.Date;
 import java.util.List;
 
 /**
@@ -33,7 +37,7 @@ public class MethodGoodsDemandService {
     @Autowired
     private TbGoodsDemandMapper tbGoodsDemandMapper;
     @Autowired
-    private SmsRetryService smsRetryService;
+    private TbOrdersMapper tbOrdersMapper;
 
     /**
      * 数据封装
@@ -41,7 +45,7 @@ public class MethodGoodsDemandService {
      * @param list
      * @return
      */
-    public List<GoodsDemandVo> setGoodsDemandVo(List<TbGoodsDemand> list){
+    public List<GoodsDemandVo> setGoodsDemandVo(List<TbGoodsDemand> list, SoMap so){
         //创建返回值集合
         List<GoodsDemandVo> resultList = new ArrayList<>();
 
@@ -51,10 +55,9 @@ public class MethodGoodsDemandService {
             //获取需求表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);
+            so.put("demandId",id);
+            so.put("deleteStatus",DeleteStatus.DELETE_STATUS_ON.getCode());
+            List<TbDemandQuotation> tbDemandQuotations = tbDemandQuotationMapper.getList(so);
             if(tbDemandQuotations.size() == 0)return;
             //查询商品基本信息
             TbDemandQuotation tbDemandQuotation = tbDemandQuotations.get(0);
@@ -80,19 +83,23 @@ public class MethodGoodsDemandService {
 
     /**
      * 执行同意处理
-     * @param goodsDemandId 需求表ID
-     * @param demandQuotationId  报价表ID
-     * @param disposeStatus 处理状态 1=确认,2=拒绝
+     * @param appLoginUserInfo 当前登录账号信息
+     * @param goodsDemandId  需求表ID
+     * @param demandQuotationId 报价表ID
+     * @param purchaserRemark 二级收购商备注
      */
-    public void agreeQuotation(Integer disposeStatus,Long goodsDemandId,Long demandQuotationId){
+    public boolean agreeQuotation(APPLoginUserInfo appLoginUserInfo,Long goodsDemandId,Long demandQuotationId,String purchaserRemark){
         // 校验参数
         TbDemandQuotation tbDemandQuotation = tbDemandQuotationMapper.selectById(demandQuotationId); // 报价
-        if(tbDemandQuotation == null)return;
+        if(tbDemandQuotation == null)return false;
         TbGoodsDemand tbGoodsDemand = tbGoodsDemandMapper.selectById(goodsDemandId); //需求
-        if(tbGoodsDemand == null)return;
+        if(tbGoodsDemand == null)return false;
         //执行过程
-        tbDemandQuotation.setQuotationResult(disposeStatus);
+        tbDemandQuotation.setQuotationResult(1); // 设置二级收购商处理结果 1表示同意
+        tbDemandQuotation.setResultTime(new Date());  // 设置二级收购商处理时间
+        tbDemandQuotation.setRemark("\n" + appLoginUserInfo.getLoginName() + ": " + purchaserRemark); // 商家备注
         int updateById = tbDemandQuotationMapper.updateById(tbDemandQuotation);
+        //处理商家同意后的逻辑
         if(updateById == 1){
             //开始创建订单
             TbOrders tbOrders = new TbOrders();
@@ -102,27 +109,48 @@ public class MethodGoodsDemandService {
 //            tbOrders.setGoodsFrom();  //产地
             tbOrders.setShipperPhone(tbDemandQuotation.getLinkPhone()); //联系电话
             tbOrders.setShipperName(tbDemandQuotation.getCreateName()); //卖家名称
-
-
+            tbOrders.setTradeAreaId(tbDemandQuotation.getTradeAreaId()); //交易地区ID
+            tbOrders.setTradeAreaName(tbDemandQuotation.getTradeAreaName());  //交易地区名称
+            tbOrders.setCreateBy(tbDemandQuotation.getLeaderId()); // 订单创建人 -- 边民表主键
+            tbOrders.setPurchaserId(tbGoodsDemand.getPurchaserId());  //买家ID  商户表
+            tbOrders.setPurchaserName(tbGoodsDemand.getPurchaserName()); // 买家名称 商户表
+            tbOrders.setCreateName(tbDemandQuotation.getCreateName());
+            tbOrders.setCreateTime(new Date()); // 创建时间
+            tbOrders.setDeleteStatus(DeleteStatus.DELETE_STATUS_ON.getCode()); // 删除状态 默认可用
+            int insert = tbOrdersMapper.insert(tbOrders);
+            return insert == 1;
 
         }
-
+        return false;
     }
-                //  todo: ----------------
+
     /**
      * 执行拒绝处理
-     * @param goodsDemandId
-     * @param demandQuotationId
+     * @param appLoginUserInfo 当前登录账号信息
+     * @param goodsDemandId  需求表ID
+     * @param demandQuotationId 报价表ID
+     * @param purchaserRemark 二级收购商备注
+     * @return
      */
-    public void refuseQuotation(Long goodsDemandId,Long demandQuotationId) throws Exception {
+    public boolean refuseQuotation(APPLoginUserInfo appLoginUserInfo,Long goodsDemandId, Long demandQuotationId, String purchaserRemark){
         // 校验参数
         TbDemandQuotation tbDemandQuotation = tbDemandQuotationMapper.selectById(demandQuotationId);
-        if(tbDemandQuotation == null)return;
+        if(tbDemandQuotation == null)return false;
         TbGoodsDemand tbGoodsDemand = tbGoodsDemandMapper.selectById(goodsDemandId);
-        if(tbGoodsDemand == null)return;
-        //执行过程
-
+        if(tbGoodsDemand == null)return false;
+        // 修改需求状态
+        tbGoodsDemand.setIsOrders(0); // 将需求设置为未发布
+        int updateById = tbGoodsDemandMapper.updateById(tbGoodsDemand); // 设置二级市场收购商的响应时间
+        //修改报价状态
+        if(updateById == 1){
+            tbDemandQuotation.setQuotationResult(2); // 2 表示拒绝
+            tbDemandQuotation.setRemark("\n" + appLoginUserInfo.getLoginName() + ": " + purchaserRemark);
+            tbDemandQuotation.setResultTime(new Date());
+            int updateById1 = tbDemandQuotationMapper.updateById(tbDemandQuotation);
+            return updateById1 == 1;
+        }
 
+        return false;
 
     }
 }

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

@@ -77,12 +77,12 @@ public class TbGoodsDemandService extends ServiceImpl<TbGoodsDemandMapper, TbGoo
 		if(appLoginInfo == null || appLoginInfo.getLoginId() == null)
 			throw new ServiceException("当前登录账号信息已失效!");
 		//匹配已被报价的列表
-		so.set("purchaserId",appLoginInfo.getFk());
-		so.set("isOrders",isOrders);
-		so.set("deleteStatus",DeleteStatus.DELETE_STATUS_ON.getCode());
+		so.put("purchaserId",appLoginInfo.getFk());
+		if(isOrders != null) so.put("isOrders",isOrders);
+		so.put("deleteStatus",DeleteStatus.DELETE_STATUS_ON.getCode());
 		List<TbGoodsDemand> goodsDemandMapperList = tbGoodsDemandMapper.getList(so);
 		if(goodsDemandMapperList.size() != 0){
-			List<GoodsDemandVo> goodsDemandVos = methodGoodsDemandService.setGoodsDemandVo(goodsDemandMapperList);
+			List<GoodsDemandVo> goodsDemandVos = methodGoodsDemandService.setGoodsDemandVo(goodsDemandMapperList,so);
 			return goodsDemandVos;
 		}
 		return null;
@@ -94,16 +94,18 @@ public class TbGoodsDemandService extends ServiceImpl<TbGoodsDemandMapper, TbGoo
 	 * @param goodsDemandId  需求表主键
 	 * @param demandQuotationId 报价表主键
 	 */
-	public void disposeOrders(Integer disposeStatus,Long goodsDemandId,Long demandQuotationId)  {
+	public boolean disposeOrders(Integer disposeStatus,Long goodsDemandId,Long demandQuotationId,String purchaserRemark)  {
 		//获取并判断当前登陆人
 		APPLoginUserInfo appLoginInfo = StpAPPUserUtil.getAPPLoginInfo();
 		if(appLoginInfo == null || appLoginInfo.getLoginId() == null)
 			throw new ServiceException("当前登录账号信息已失效!");
 		//同意则开始创建订单,不同意则修改报价表和需求表状态
-
-		methodGoodsDemandService.agreeQuotation(disposeStatus,goodsDemandId,demandQuotationId);
-
-
+		if(disposeStatus == 1){
+			return methodGoodsDemandService.agreeQuotation(appLoginInfo,goodsDemandId,demandQuotationId,purchaserRemark);
+		}else if(disposeStatus == 2){
+			return methodGoodsDemandService.refuseQuotation(appLoginInfo,goodsDemandId,demandQuotationId,purchaserRemark);
+		}
+		throw new RuntimeException("服务器繁忙~");
 	}
 
 }

+ 9 - 0
sp-service/level-two-server/src/main/java/com/pj/tb_orders/TbOrders.java

@@ -191,6 +191,15 @@ public class TbOrders extends Model<TbOrders> implements Serializable {
 	 */
 	private String tradeAreaName;
 
+	/**
+	 * 买家ID
+	 */
+	private Long purchaserId;
+
+	/**
+	 * 买家名称
+	 */
+	private String purchaserName;
 
 
 

+ 1 - 1
sp-service/level-two-server/src/main/java/com/pj/tb_orders/TbOrdersApiController.java

@@ -59,7 +59,7 @@ public class TbOrdersApiController {
 	}
 
 
-	/** 查集合 - 根据条件(参数为空时代表忽略指定条件) */
+	/** 二级市场收购商二级市场订单集合 - 根据条件(参数为空时代表忽略指定条件) */
 	@RequestMapping("getList")
 //		@SaCheckPermission(TbOrders.PERMISSION_CODE)
 	public AjaxJson getList(@RequestParam(value = "keyword",required = false)String keyword) {

+ 1 - 0
sp-service/level-two-server/src/main/java/com/pj/tb_orders/TbOrdersMapper.xml

@@ -26,6 +26,7 @@
 			<if test=' this.has("levelOneOrderId") '> and level_one_order_id = #{levelOneOrderId} </if>
 			<if test=' this.has("orderNo") '> and order_no = #{orderNo} </if>
 			<if test=' this.has("goodsId") '> and goods_id = #{goodsId} </if>
+			<if test=' this.has("purchaserId") '> and purchaser_id = #{purchaserId} </if>
 			<if test=' this.has("goodsName") '> and goods_name = #{goodsName} </if>
 			<if test=' this.has("goodsFrom") '> and goods_from = #{goodsFrom} </if>
 			<if test=' this.has("shipperPhone") '> and shipper_phone = #{shipperPhone} </if>

+ 8 - 7
sp-service/level-two-server/src/main/java/com/pj/tb_orders/TbOrdersService.java

@@ -78,11 +78,10 @@ public class TbOrdersService extends ServiceImpl<TbOrdersMapper, TbOrders> imple
 		if(tbPurchaser == null || tbPurchaser.getDeleteStatus() == 0 || tbPurchaser.getIsLock() == 0)
 			throw new ServiceException("您的身份不是收购商!");
 		//执行查询
-		so.set("create_by",appLoginInfo.getLoginId()); // 订单创建人为收购商
-		so.set("keyword",keyword); // 后期可根据关键字进行聚合模糊匹配查询
-		so.set("sortType",22);
-		//todo: 管理二级市场收购商的订单
-
+		so.put("purchaserId",appLoginInfo.getFk()); // 收购商编号
+		so.put("keyword",keyword); // 后期可根据关键字进行聚合模糊匹配查询
+		so.put("sortType",22);
+		so.put("deleteStatus",DeleteStatus.DELETE_STATUS_ON.getCode());
 		return tbOrdersMapper.getList(so);
 	}
 
@@ -99,9 +98,11 @@ public class TbOrdersService extends ServiceImpl<TbOrdersMapper, TbOrders> imple
 	void addOrderByResale(TbOrdersDto ordersDto) {
 		//获取app登录用户
 		APPLoginUserInfo appLoginInfo = StpAPPUserUtil.getAPPLoginInfo();
-		if(appLoginInfo == null)throw new RuntimeException("当前登陆用户信息已失效!");
+		if(appLoginInfo == null || appLoginInfo.getLoginId() == null)
+			throw new RuntimeException("当前登陆用户信息已失效!");
 
-		if(null == ordersDto.getLevelOneOrderId()) throw new RuntimeException("当前一级市场订单号为空,请联系管理员!");
+		if(null == ordersDto.getLevelOneOrderId())
+			throw new RuntimeException("当前一级市场订单号为空,请联系管理员!");
 
 		TbOrders orders = new TbOrders();
 		BeanUtils.copyProperties(ordersDto, orders);

+ 0 - 1
sp-service/level-two-server/src/main/java/com/pj/tb_purchaser/TbPurchaserService.java

@@ -139,7 +139,6 @@ public class TbPurchaserService extends ServiceImpl<TbPurchaserMapper, TbPurchas
 		//获取收购商锁定状态
 		int isLock = purchaser.getIsLock();
 		// 如果收购商被锁住则禁止app端登录
-		// TODO
 		adminInterface.isLock(String.valueOf(purchaser.getId()), People.PEOPLE_TYPE_THREE.getCode(),isLock);
 		return line;
 	}

+ 3 - 3
sp-service/sp-admin/src/main/java/com/pj/project/app_user/AppUserApiController.java

@@ -27,7 +27,7 @@ public class AppUserApiController {
 
 	/** 用户注册 */
 	@RequestMapping("register")
-	public AjaxJson register(@Validated @RequestBody RegisterDto registerDto) {
+	public AjaxJson register(@Validated @RequestBody RegisterDto registerDto) throws Exception {
 		boolean register = appUserService.register(registerDto);
 		if(!register)return AjaxJson.getError("注册失败!");
 		return AjaxJson.getSuccess( "注册完成!");
@@ -53,10 +53,10 @@ public class AppUserApiController {
 
 	/** 获取短信验证码 */
 	@RequestMapping("getPhoneSmsCode")
-	public AjaxJson getPhoneSmsCode(String phone) {
+	public AjaxJson getPhoneSmsCode(String phone) throws Exception {
 		boolean phoneSmsCode = appUserService.getPhoneSmsCode(phone);
 		if(phoneSmsCode)return AjaxJson.getSuccess("验证码发送成功!");
-		return AjaxJson.getError();
+		return AjaxJson.getError("验证码发送失败!");
 	}
 
 }

+ 21 - 21
sp-service/sp-admin/src/main/java/com/pj/project/app_user/AppUserService.java

@@ -2,6 +2,7 @@ package com.pj.project.app_user;
 
 import java.util.Date;
 import java.util.List;
+import java.util.Random;
 import java.util.stream.Collectors;
 
 import cn.dev33.satoken.stp.StpUtil;
@@ -16,6 +17,7 @@ import com.pj.project.app_user.dto.ForgetPasswordDto;
 import com.pj.project.app_user.dto.RegisterDto;
 import com.pj.project.re_role_menu.ReRoleMenu;
 import com.pj.project.re_role_menu.ReRoleMenuMapper;
+import com.pj.retry.SmsRetryService;
 import com.pj.utils.cache.RedisUtil;
 import com.pj.utils.sg.AjaxJson;
 import com.pj.utils.so.SoMap;
@@ -49,6 +51,9 @@ public class AppUserService extends ServiceImpl<AppUserMapper, AppUser> implemen
 	/** 方法抽取 */
 	@Autowired
 	private MethodAppUserService methodAppUserService;
+	/** 阿里云验证码 */
+	@Autowired
+	private SmsRetryService smsRetryService;
 	/** 验证码前缀 */
 	String PREFIX = "app_user:phone:sms_code:";
 
@@ -125,9 +130,11 @@ public class AppUserService extends ServiceImpl<AppUserMapper, AppUser> implemen
 		if(collect.size() > 0)appUserMapper.deleteBatchIds(collect);
 		//2.校验密码
 		if(!registerDto.getPassword().equals(registerDto.getRePassword()))throw new RuntimeException("两次密码校验不通过!");
-		//3.todo:手机验证码
-
-
+		//3.校验短信验证码
+		String smsCode = RedisUtil.get(PREFIX + registerDto.getSmsCode());
+		if(smsCode == null)throw new RuntimeException("验证码已过期,请重新发送!");
+		//比对验证码
+		if(!registerDto.getSmsCode().toString().equals(smsCode))throw new RuntimeException("验证码输入错误,请检查!");
 		//4.开始新增
 		AppUser appUser = new AppUser();
 		//手机号
@@ -144,11 +151,9 @@ public class AppUserService extends ServiceImpl<AppUserMapper, AppUser> implemen
 		appUser.setCreateTime(new Date());
 		//默认可用
 		appUser.setStatus("1");
-		appUser.setDeleteStatus(1);
+		appUser.setDeleteStatus(DeleteStatus.DELETE_STATUS_ON.getCode());
 		//保存
 		int insert = appUserMapper.insert(appUser);
-		//todo:添加对应的身份表信息
-//		boolean entity = methodAppUserService.insertEntity(appUser,registerDto.getType());
 		return insert == 1;
 	}
 
@@ -214,7 +219,7 @@ public class AppUserService extends ServiceImpl<AppUserMapper, AppUser> implemen
 		//进行查询
 		List<AppUser> appUserList = appUserMapper.selectList
 				  (new LambdaQueryWrapper<AppUser>().eq(AppUser::getPhone, forgetPasswordDto.getPhone())
-													.eq(AppUser::getDeleteStatus, 1)
+													.eq(AppUser::getDeleteStatus, DeleteStatus.DELETE_STATUS_ON.getCode())
 													.eq(AppUser::getStatus, 1));
 		//判断其手机号码可能存在的异常情况
 		if(appUserList.size() > 1)
@@ -222,11 +227,8 @@ public class AppUserService extends ServiceImpl<AppUserMapper, AppUser> implemen
 		if(appUserList.size() == 0)throw new RuntimeException("您当前手机号尚未进行注册!");
 		//获取当前手机号对象
 		AppUser appUser = appUserList.get(0);
-		//获取短信验证码发送结果
-		boolean phoneSmsCode = getPhoneSmsCode(forgetPasswordDto.getPhone());
-		if(!phoneSmsCode)return AjaxJson.getError("验证码发送失败!");
 		//从缓存中获取验证码
-		String smsCode = RedisUtil.get(forgetPasswordDto.getPhone());
+		String smsCode = RedisUtil.get(PREFIX + forgetPasswordDto.getPhone());
 		if(smsCode == null)return AjaxJson.getError("验证码已过期!");
 		//比对用户输入的验证码
 		boolean result = smsCode.equals(forgetPasswordDto.getSmsCode());
@@ -257,17 +259,15 @@ public class AppUserService extends ServiceImpl<AppUserMapper, AppUser> implemen
 	}
 
 	/** 获取验证码 */
-	boolean getPhoneSmsCode(String phone){
-		//todo: 发送短信,其短信商回调验证码
-		String smsCode = "123";
-		//todo: 根据其短信发送情况返回不同的结果
-
-		// return false;
-
-		//todo: 保存到缓存,默认1分钟
-		RedisUtil.setByMINUTES(PREFIX + phone,smsCode, 1);
+	boolean getPhoneSmsCode(String phone) throws Exception {
+		//生成4位随机数
+		Random random = new Random();
+		int randomNumber = random.nextInt(9000) + 1000;
+		//保存到缓存,默认1分钟
+		RedisUtil.setByMINUTES(PREFIX + phone,randomNumber + "", 1);
+		//发送验证码短信
+		return smsRetryService.sendSmsCode(phone, randomNumber + "");
 
-		return true;
 	}