瀏覽代碼

8.4 处理TODO

Mechrevo 2 年之前
父節點
當前提交
0c6e086c51
共有 25 個文件被更改,包括 213 次插入114 次删除
  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. 1 0
      sp-service/level-one-server/src/main/java/com/pj/tb_enterprise/MethodEnterpriseService.java
  5. 1 4
      sp-service/level-one-server/src/main/java/com/pj/tb_enterprise/TbEnterpriseService.java
  6. 19 5
      sp-service/level-one-server/src/main/java/com/pj/tb_goods_cart/TbGoodsCartService.java
  7. 4 4
      sp-service/level-one-server/src/main/java/com/pj/tb_goods_transit/MethodGoodsTransitService.java
  8. 15 7
      sp-service/level-one-server/src/main/java/com/pj/tb_goods_transit/TbGoodsTransitService.java
  9. 8 7
      sp-service/level-one-server/src/main/java/com/pj/tb_order/MethodOrderService.java
  10. 0 1
      sp-service/level-one-server/src/main/java/com/pj/tb_order/TbOrderAppController.java
  11. 3 3
      sp-service/level-one-server/src/main/java/com/pj/tb_order/TbOrderService.java
  12. 1 1
      sp-service/level-one-server/src/main/java/com/pj/tb_order_after_sale/TbOrderAfterSaleService.java
  13. 1 0
      sp-service/level-one-server/src/main/java/com/pj/tb_people/TbPeopleController.java
  14. 10 1
      sp-service/level-two-server/src/main/java/com/pj/tb_demand_quotation/TbDemandQuotation.java
  15. 10 3
      sp-service/level-two-server/src/main/java/com/pj/tb_demand_quotation/TbDemandQuotationService.java
  16. 18 0
      sp-service/level-two-server/src/main/java/com/pj/tb_goods_demand/AppTbGoodsDemandController.java
  17. 52 24
      sp-service/level-two-server/src/main/java/com/pj/tb_goods_demand/MethodGoodsDemandService.java
  18. 11 9
      sp-service/level-two-server/src/main/java/com/pj/tb_goods_demand/TbGoodsDemandService.java
  19. 9 0
      sp-service/level-two-server/src/main/java/com/pj/tb_orders/TbOrders.java
  20. 1 1
      sp-service/level-two-server/src/main/java/com/pj/tb_orders/TbOrdersApiController.java
  21. 1 0
      sp-service/level-two-server/src/main/java/com/pj/tb_orders/TbOrdersMapper.xml
  22. 8 7
      sp-service/level-two-server/src/main/java/com/pj/tb_orders/TbOrdersService.java
  23. 0 1
      sp-service/level-two-server/src/main/java/com/pj/tb_purchaser/TbPurchaserService.java
  24. 3 3
      sp-service/sp-admin/src/main/java/com/pj/project/app_user/AppUserApiController.java
  25. 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
      */

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

@@ -111,6 +111,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()){

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

@@ -125,7 +125,6 @@ public class TbEnterpriseService extends ServiceImpl<TbEnterpriseMapper, TbEnter
 		//获取商户锁定状态
 		int isLock = tbEnterprise.getIsLock();
 		// 如果商户被锁住则禁止app端登录
-		// TODO
 		adminInterface.isLock(String.valueOf(tbEnterprise.getId()), People.PEOPLE_TYPE_TWO.getCode(),isLock);
 
 		return line;
@@ -150,10 +149,8 @@ public class TbEnterpriseService extends ServiceImpl<TbEnterpriseMapper, TbEnter
 		APPLoginUserInfo appLoginInfo = StpAPPUserUtil.getAPPLoginInfo();
 		if(appLoginInfo == null || appLoginInfo.getLoginId() == null)
 			throw new RuntimeException("当前登录账号信息已失效!");
-		//重复提交验证
+		//重复提交验证处理
 		methodEnterpriseService.againApply(appLoginInfo.getFk());
-		//todo:是否需要手机发送验证码认证?
-
 		//开始保存商家信息
 		TbEnterprise tbEnterprise = new TbEnterprise();
 		//保存基本信息

+ 19 - 5
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("购买者账号异常");
 		//判断当前用户是否为一级市场边民组长
@@ -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(infoId);
+		//tbGoodsId
+		tbGoodsCart.setSaleGoodsInfoId(tbGoodsTransit.getGoodsId());
 		//商品价格
 		tbGoodsCart.setTotalPrice(tbGoodsTransit.getPrice());
 		//设置基本属性

+ 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);

+ 15 - 7
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);
 	}
 
@@ -186,12 +195,12 @@ public class TbGoodsTransitService extends ServiceImpl<TbGoodsTransitMapper, TbG
 		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() + "");
@@ -270,9 +279,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("订单预创建异常!");

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

@@ -30,28 +30,29 @@ public class MethodOrderService {
      * @param userType
      */
     public List<TbOrder> checkType(Integer userType, Long fk, SoMap so){
+        //判断参数有效性
         if(userType == null)return null;
         if(fk == null)return null;
-        LambdaQueryWrapper<TbOrder> queryWrapper = new LambdaQueryWrapper<>();
+        //执行switch
         switch (userType){
             case 1: //边民
                 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;
 
     }

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

@@ -31,7 +31,6 @@ public class TbOrderAppController {
 
 	/** 查集合 - 根据条件(参数为空时代表忽略指定条件) */
 	@RequestMapping("getList")
-//		@SaCheckPermission(TbOrder.PERMISSION_CODE)
 	public AjaxJson getList() {
 		SoMap so = SoMap.getRequestSoMap();
 		List<TbOrder> list = tbOrderService.getAPPList(so.startPage());

+ 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;
 	}