فهرست منبع

fengji 2171 数据隔离问题

yanite 3 سال پیش
والد
کامیت
ffe9a68213

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/RedemptionCodeDao.java

@@ -19,5 +19,7 @@ public interface RedemptionCodeDao extends BaseMapper<AppRedemptionCode> {
     AppRedemptionCode findFirstNull();
 
     Integer findNull();
+
+    AppRedemptionCode getByUserId(@Param("userId") Integer userId);
 }
 

+ 6 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/AppRedemptionCodeServiceImpl.java

@@ -106,7 +106,12 @@ public class AppRedemptionCodeServiceImpl extends ServiceImpl<RedemptionCodeDao,
 
     @Override
     public AppRedemptionCode allocation(Integer userId) {
-        AppRedemptionCode redemptionCode = redemptionCodeDao.findFirstNull();
+        AppRedemptionCode redemptionCode = redemptionCodeDao.getByUserId(userId);
+        if (redemptionCode != null) { // 如果有由直接返回, 不在分配
+            redemptionCode.setStatus("用户已分配");
+            return redemptionCode;
+        }
+        redemptionCode = redemptionCodeDao.findFirstNull();
         if (redemptionCode == null) {
             return null;
         }

+ 5 - 0
mec-biz/src/main/resources/config/mybatis/RedemptionCodeMapper.xml

@@ -29,9 +29,14 @@
         order by rc.import_time_ desc
         limit 1 for update;
     </select>
+
     <select id="findNull" resultType="java.lang.Integer">
         select count(1) from app_redemption_code rc where rc.user_id_ is null
     </select>
 
+    <select id="getByUserId" resultType="com.ym.mec.biz.dal.entity.AppRedemptionCode">
+        select * from app_redemption_code where user_id_ = #{userId}
+    </select>
+
 
 </mapper>