Forráskód Böngészése

Merge branch 'master' of http://git.dayaedu.com/yonge/mec

yonge 5 éve
szülő
commit
8d29c7f4c1

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/GoodsDao.java

@@ -92,6 +92,15 @@ public interface GoodsDao extends BaseDAO<Integer, Goods> {
     Goods findBySn(@Param("sn") String sn);
 
     /**
+     * @describe 根据货号锁定商品
+     * @author Joburgess
+     * @date 2020.10.15
+     * @param sn:
+     * @return com.ym.mec.biz.dal.entity.Goods
+     */
+    Goods lockBySn(@Param("sn") String sn);
+
+    /**
      * @describe 根据货号查找商品
      * @author Joburgess
      * @date 2020.09.28

+ 5 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/GoodsServiceImpl.java

@@ -66,8 +66,12 @@ public class GoodsServiceImpl extends BaseServiceImpl<Integer, Goods>  implement
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class,isolation = Isolation.READ_COMMITTED)
 	public void addGoods(Goods goods, Integer operatorId) {
-		Goods existsGood = goodsDao.findBySn(goods.getSn());
+		if(StringUtils.isBlank(goods.getSn())){
+			throw new BizException("请指定商品货号");
+		}
+		Goods existsGood = goodsDao.lockBySn(goods.getSn());
 		if(Objects.nonNull(existsGood)){
 			throw new BizException("商品货号重复");
 		}else{

+ 4 - 0
mec-biz/src/main/resources/config/mybatis/GoodsMapper.xml

@@ -333,6 +333,10 @@
         SELECT * FROM goods WHERE sn_ = #{sn}
     </select>
 
+    <select id="lockBySn" resultMap="Goods">
+        SELECT * FROM goods WHERE sn_ = #{sn} FOR UPDATE
+    </select>
+
     <select id="findBySns" resultMap="Goods">
         SELECT * FROM goods WHERE sn_ IN
         <foreach collection="sns" item="sn" separator="," open="(" close=")">