Browse Source

合作社生成拼单订单

linbl 2 năm trước cách đây
mục cha
commit
a18cff3db9

+ 6 - 4
sp-service/level-one-server/src/main/java/com/pj/tb_collage_orders/TbCollageOrders.java

@@ -1,6 +1,8 @@
 package com.pj.tb_collage_orders;
 
 import java.io.Serializable;
+import java.util.Date;
+
 import com.baomidou.mybatisplus.annotation.*;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import lombok.EqualsAndHashCode;
@@ -183,7 +185,7 @@ public class TbCollageOrders extends Model<TbCollageOrders> implements Serializa
 	/**
 	 * 创建人编号
 	 */
-	private String createBy;
+	private Long createBy;
 
 	/**
 	 * 创建人名称
@@ -193,12 +195,12 @@ public class TbCollageOrders extends Model<TbCollageOrders> implements Serializa
 	/**
 	 * 创建时间
 	 */
-	private String createTime;
+	private Date createTime;
 
 	/**
 	 * 更新人编号
 	 */
-	private String updateBy;
+	private Long updateBy;
 
 	/**
 	 * 更新人名称
@@ -208,7 +210,7 @@ public class TbCollageOrders extends Model<TbCollageOrders> implements Serializa
 	/**
 	 * 更新时间
 	 */
-	private String updateTime;
+	private Date updateTime;
 
 	/**
 	 * 删除状态(0=禁用,1=启用)

+ 2 - 2
sp-service/level-one-server/src/main/java/com/pj/tb_collage_orders/TbCollageOrdersMapper.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.pj.project.tb_collage_orders.TbCollageOrdersMapper">
+<mapper namespace="com.pj.tb_collage_orders.TbCollageOrdersMapper">
 
 
 
@@ -9,7 +9,7 @@
 	<!-- select id, trade_area_id, trade_area_name, order_no, cooperative_id, cooperative_name, total_price, entry_people_status, entry_leader_status, entry_customs_status, entry_no, entry_time, entry_result, entry_fail_reason, import_people_status, import_leader_status, import_no, import_time, is_delivery, order_finish, driver_id, driver_name, driver_phone, car_id, car_type, vehicle_plate, loading_address, unloading_address, create_by, create_name, create_time, update_by, update_name, update_time, delete_status from tb_collage_orders  -->
 
 	<!-- 通用映射:自动模式 -->
-	<resultMap id="model" autoMapping="true" type="com.pj.project.tb_collage_orders.TbCollageOrders"></resultMap>
+	<resultMap id="model" autoMapping="true" type="com.pj.tb_collage_orders.TbCollageOrders"></resultMap>
 
 	<!-- 公共查询sql片段 -->
 	<sql id="select_sql">

+ 34 - 6
sp-service/level-one-server/src/main/java/com/pj/tb_collage_orders/TbCollageOrdersService.java

@@ -1,12 +1,16 @@
 package com.pj.tb_collage_orders;
 
+import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
 
 import com.pj.current.config.SystemObject;
 import com.pj.current.dto.APPLoginUserInfo;
 import com.pj.current.satoken.StpAPPUserUtil;
+import com.pj.project4sp.SP;
 import com.pj.tb_collage_orders.param.TbCollageOrdersParam;
+import com.pj.tb_order.TbOrder;
+import com.pj.tb_order.TbOrderService;
 import com.pj.utils.so.SoMap;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -26,6 +30,8 @@ public class TbCollageOrdersService extends ServiceImpl<TbCollageOrdersMapper, T
 	/** 底层 Mapper 对象 */
 	@Autowired
 	TbCollageOrdersMapper tbCollageOrdersMapper;
+	@Autowired
+	TbOrderService tbOrderService;
 
 	/** 增 */
 	void add(TbCollageOrders t){
@@ -58,7 +64,7 @@ public class TbCollageOrdersService extends ServiceImpl<TbCollageOrdersMapper, T
 		//拼单订单编号
 		String collageOrdersNo = SystemObject.getREFcode("PDDD",new Date());
 		param.setOrderNo(collageOrdersNo);
-		//1、TODO: 调用航通接口,把他们需要的拼单订单信息发送过去,接口返回的状态码为成功则走接下来的步骤,目前暂时省略
+		//1、TODO: 调用航通接口,把他们需要的拼单订单信息发送过去,接口返回的状态码为成功则走接下来的步骤,否则不生成拼单订单,目前暂时省略
 
 		//获取当前登陆人
 		APPLoginUserInfo appLoginInfo = StpAPPUserUtil.getAPPLoginInfo();
@@ -69,13 +75,35 @@ public class TbCollageOrdersService extends ServiceImpl<TbCollageOrdersMapper, T
 		collageOrders.setCooperativeId(param.getCooperativeId());
 		collageOrders.setCooperativeName(param.getCooperativeName());
 
-		//
-		List<Long> orderList = param.getOrderList();
-		orderList.forEach(orderId -> {
+		collageOrders.setTradeAreaId(appLoginInfo.getTradeAreaId());
+		collageOrders.setTradeAreaName(appLoginInfo.getTradeAreaName());
 
-		});
+		collageOrders.setCreateBy(appLoginInfo.getLoginId());
+		collageOrders.setCreateName(appLoginInfo.getLoginName());
+		collageOrders.setCreateTime(new Date());
 
-		return true;
+		this.add(collageOrders);
+		//获取单订单主键Id
+		Long collageOrdersId = SP.publicMapper.getPrimarykey();
+
+		//3、回写边民订单的拼单订单ID
+		BigDecimal totalPrice = new BigDecimal(0);
+		List<Long> orderList = param.getOrderList();
+		for (Long orderId : orderList) {
+			TbOrder tbOrder = tbOrderService.getById(orderId);
+			//获取边民订单的金额并计算总金额
+			totalPrice = totalPrice.add(new BigDecimal(tbOrder.getTotalPrice()));
+
+			tbOrder.setCollageOrdersId(collageOrdersId);
+			boolean b = tbOrderService.updateById(tbOrder);
+			if(!b) throw new RuntimeException("边民订单表回写拼单订单ID失败!");
+		}
+		//4、回写拼单订单的总金额
+		collageOrders.setTotalPrice(totalPrice.doubleValue());
+		collageOrders.setId(collageOrdersId);
+		boolean result = this.updateById(collageOrders);
+
+		return result;
 	}
 
 

+ 59 - 49
sp-service/level-one-server/src/main/java/com/pj/tb_cooperative/TbCooperative.java

@@ -11,7 +11,7 @@ import lombok.experimental.Accessors;
 
 /**
  * Model: tb_cooperative -- 合作社
- * @author lsw 
+ * @author lsw
  */
 @Data
 @Accessors(chain = true)
@@ -21,15 +21,15 @@ public class TbCooperative extends Model<TbCooperative> implements Serializable
 
 	// ---------- 模块常量 ----------
 	/**
-	 * 序列化版本id 
+	 * 序列化版本id
 	 */
-	private static final long serialVersionUID = 1L;	
+	private static final long serialVersionUID = 1L;
 	/**
-	 * 此模块对应的表名 
+	 * 此模块对应的表名
 	 */
-	public static final String TABLE_NAME = "tb_cooperative";	
+	public static final String TABLE_NAME = "tb_cooperative";
 	/**
-	 * 此模块对应的权限码 
+	 * 此模块对应的权限码
 	 */
 	public static final String PERMISSION_CODE = "tb-cooperative";
 	public static final String PERMISSION_CODE_ADD = "tb-cooperative-add";
@@ -41,118 +41,128 @@ public class TbCooperative extends Model<TbCooperative> implements Serializable
 
 	// ---------- 表中字段 ----------
 	/**
-	 * 主键 
+	 * 主键
 	 */
 	@TableId(type = IdType.AUTO)
-	private Long id;	
+	private Long id;
 
 	/**
-	 * 名称 
+	 * 贸易区域id
 	 */
-	private String name;	
+	private Long tradeAreaId;
 
 	/**
-	 * 法人 
+	 * 贸易区域名称
 	 */
-	private String legalPerson;	
+	private String tradeAreaName;
 
 	/**
-	 * 身份证号 
+	 * 名称
 	 */
-	private String idCard;	
+	private String name;
 
 	/**
-	 * 手机号码 
+	 * 法人
 	 */
-	private String contact;	
+	private String legalPerson;
 
 	/**
-	 * 营业执照 
+	 * 身份证号
 	 */
-	private String businessLicense;	
+	private String idCard;
 
 	/**
-	 * 银行名称 
+	 * 手机号码
 	 */
-	private String bankName;	
+	private String contact;
 
 	/**
-	 * 银行账号 
+	 * 营业执照
 	 */
-	private String bankAccount;	
+	private String businessLicense;
 
 	/**
-	 * 税号 
+	 * 银行名称
 	 */
-	private String dutyParagraph;	
+	private String bankName;
 
 	/**
-	 * 地址 
+	 * 银行账号
 	 */
-	private String address;	
+	private String bankAccount;
 
 	/**
-	 * 审核状态(0=未通过,1=已通过,2=审核不通过) 
+	 * 税号
 	 */
-	private String judgeStatus;	
+	private String dutyParagraph;
 
 	/**
-	 * 审核意见 
+	 * 地址
 	 */
-	private String judgeContent;	
+	private String address;
 
 	/**
-	 * 上次审核时间 
+	 * 审核状态(0=未通过,1=已通过,2=审核不通过)
 	 */
-	private Date judgeTime;	
+	private String judgeStatus;
 
 	/**
-	 * 注册时间 
+	 * 审核意见
 	 */
-	private Date registerTime;	
+	private String judgeContent;
 
 	/**
-	 * 创建时间 
+	 * 上次审核时间
+	 */
+	private Date judgeTime;
+
+	/**
+	 * 注册时间
+	 */
+	private Date registerTime;
+
+	/**
+	 * 创建时间
 	 */
 	private Date createTime;
 
 	/**
-	 * 创建人编号 
+	 * 创建人编号
 	 */
-	private String createBy;	
+	private String createBy;
 
 	/**
-	 * 创建人名称 
+	 * 创建人名称
 	 */
-	private String createName;	
+	private String createName;
 
 	/**
-	 * 更新时间 
+	 * 更新时间
 	 */
 	private Date updateTime;
 
 	/**
-	 * 更新人编号 
+	 * 更新人编号
 	 */
-	private String updateBy;	
+	private String updateBy;
 
 	/**
-	 * 更新人名称 
+	 * 更新人名称
 	 */
-	private String updateName;	
+	private String updateName;
 
 	/**
-	 * 删除状态(0=禁用,1=启用) 
+	 * 删除状态(0=禁用,1=启用)
 	 */
-	private Integer deleteStatus;	
+	private Integer deleteStatus;
 
 	/**
-	 * 0=锁住 1=启用 
+	 * 0=锁住 1=启用
 	 */
-	private String isLock;	
+	private String isLock;
 
 	/**
-	 * 审核人 
+	 * 审核人
 	 */
 	private String judgeBy;
 }

+ 53 - 0
sp-service/level-one-server/src/main/java/com/pj/tb_cooperative/TbCooperativeAppController.java

@@ -0,0 +1,53 @@
+package com.pj.tb_cooperative;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import com.pj.project4sp.SP;
+import com.pj.utils.sg.AjaxJson;
+import com.pj.utils.so.SoMap;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+
+/**
+ * Controller: tb_cooperative -- 合作社
+ * @author lbl
+ */
+@RestController
+@RequestMapping("/app/TbCooperative/")
+public class TbCooperativeAppController {
+
+	/** 底层 Service 对象 */
+	@Autowired
+	TbCooperativeService tbCooperativeService;
+
+	/** 查 - 根据id */
+	@RequestMapping("getById")
+	public AjaxJson getById(Long id){
+		TbCooperative t = tbCooperativeService.getById(id);
+		return AjaxJson.getSuccessData(t);
+	}
+
+	/** 查集合 - 根据条件(参数为空时代表忽略指定条件) */
+	@RequestMapping("getList")
+	public AjaxJson getList() {
+		SoMap so = SoMap.getRequestSoMap();
+		List<TbCooperative> list = tbCooperativeService.getList(so.startPage());
+		return AjaxJson.getPageData(so.getDataCount(), list);
+	}
+
+
+	/*------            正常业务👆👆    rpc远程调用👇👇                         -----------*/
+
+	/** 查 - 根据合作社Id */
+	@RequestMapping("rpc/getCooperativeById")
+	public com.pj.api.dto.CooperativeDto getCooperativeById(@RequestParam("id")Long cooperativeId) {
+		com.pj.api.dto.CooperativeDto dto = tbCooperativeService.getCooperativeById(cooperativeId);
+		return dto;
+	}
+
+}

+ 15 - 5
sp-service/level-one-server/src/main/java/com/pj/tb_cooperative/TbCooperativeService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.pj.current.satoken.StpUserUtil;
 import com.pj.utils.so.SoMap;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -13,7 +14,7 @@ import java.util.List;
 
 /**
  * Service: tb_cooperative -- 合作社
- * @author lsw 
+ * @author lsw
  */
 @Service
 @Transactional(rollbackFor = Exception.class)
@@ -48,10 +49,19 @@ public class TbCooperativeService extends ServiceImpl<TbCooperativeMapper, TbCoo
 		return super.getById(id);
 	}
 
-	/** 查集合 - 根据条件(参数为空时代表忽略指定条件) */  
-	List<TbCooperative> getList(SoMap so) { 
-		return tbCooperativeMapper.getList(so);	
+	/** 查集合 - 根据条件(参数为空时代表忽略指定条件) */
+	List<TbCooperative> getList(SoMap so) {
+		return tbCooperativeMapper.getList(so);
+	}
+
+
+	/*------            正常业务👆👆    rpc远程调用👇👇                         -----------*/
+
+	public com.pj.api.dto.CooperativeDto getCooperativeById(Long id) {
+		TbCooperative cooperative = tbCooperativeMapper.selectById(id);
+		com.pj.api.dto.CooperativeDto dto = new com.pj.api.dto.CooperativeDto();
+		BeanUtils.copyProperties(cooperative, dto);
+		return dto;
 	}
-	
 
 }

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

@@ -2,6 +2,7 @@ package com.pj.tb_goods_transit;
 
 import java.io.FileOutputStream;
 import java.io.IOException;
+import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
@@ -290,7 +291,8 @@ public class TbGoodsTransitService extends ServiceImpl<TbGoodsTransitMapper, TbG
 		if(tbGoodsTransit.getSellOut().equals(SellOut.SELL_OUT_ONE.getCode()))
 			throw new ServiceException("该商品已售罄!");
 		//计算价格
-		double totalPrice = tbGoodsTransit.getPrice() * purchaseLevelOntGoodsTransitParam.getNumber();
+		BigDecimal b = new BigDecimal(tbGoodsTransit.getPrice() * purchaseLevelOntGoodsTransitParam.getNumber());
+		Double totalPrice = b.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue();
 		//判断物价是否大于8000
 		if(totalPrice > QUOTA)
 			throw new ServiceException("您当前购物已大于授信额度,请检查购买信息。");
@@ -316,13 +318,14 @@ public class TbGoodsTransitService extends ServiceImpl<TbGoodsTransitMapper, TbG
 		try{
 			//上锁
 			lock.lock();
-			// todo: 调用银行接口,判断当前边民是否有足够的额度
+			// todo: 调用银行接口发送指令,把当前边民下单所使用的额度(totalPrice)发送给银行,我们只需要做发送指令操作,不需要做银行额度是否满足判断
 			//执行购买
+			//商品库存
 			tbGoodsTransit.setStock(tbGoodsTransit.getStock() - purchaseLevelOntGoodsTransitParam.getNumber());
 			//如果商品的数量已售罄
-			if(tbGoodsTransit.getStock() < 0.0)
+			if(new BigDecimal(tbGoodsTransit.getStock()).compareTo(new BigDecimal(0.0)) < 0)
 				throw new ServiceException("购买异常!");
-			if(tbGoodsTransit.getStock() == 0.0)
+			if(new BigDecimal(tbGoodsTransit.getStock()).compareTo(new BigDecimal(0.0)) == 0)
 				tbGoodsTransit.setSellOut(SellOut.SELL_OUT_ONE.getCode());
 			//保存结果
 			int updateById = tbGoodsTransitMapper.updateById(tbGoodsTransit);