Browse Source

Merge remote-tracking branch 'origin/master'

周箭河 5 years ago
parent
commit
63404db810

+ 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

+ 9 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupService.java

@@ -97,12 +97,20 @@ public interface MusicGroupService extends BaseService<String, MusicGroup> {
 	boolean resumeMusicGroup(String musicGroupId);
 
 	/**
+	 * 延长缴费时间
+	 * @param musicGroupId 乐团编号
+	 * @param expireDate 延长缴费的截止日期
+	 * @return
+	 */
+	boolean extensionPaymentExpireDate(String musicGroupId, Date expireDate);
+
+	/**
 	 * 延长缴费
 	 * @param musicGroupId 乐团编号
 	 * @param expireDate 延长缴费的截止日期
 	 * @return
 	 */
-	boolean extensionPayment(String musicGroupId, Date expireDate);
+	boolean extensionApplyExpireDate(String musicGroupId, Date expireDate);
 
 	/**
 	 * 申请退团

+ 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{

+ 30 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -26,6 +26,7 @@ import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 import com.ym.mec.util.http.HttpUtil;
+
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -1294,7 +1295,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     }
 
     @Override
-    public boolean extensionPayment(String musicGroupId, Date expireDate) {
+    public boolean extensionPaymentExpireDate(String musicGroupId, Date expireDate) {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null) {
             throw new BizException("用户信息获取失败");
@@ -1315,7 +1316,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         }
 
         musicGroup.setPaymentExpireDate(expireDate);
-        musicGroup.setApplyExpireDate(expireDate);
         musicGroup.setUpdateTime(date);
         musicGroupDao.update(musicGroup);
         musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, "延长缴费", sysUser.getId(), ""));
@@ -1330,6 +1330,34 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     }
 
     @Override
+	public boolean extensionApplyExpireDate(String musicGroupId, Date expireDate) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            throw new BizException("用户信息获取失败");
+        }
+        MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
+        if (musicGroup == null) {
+            throw new BizException("乐团找不到");
+        }
+
+        if (musicGroup.getStatus() != MusicGroupStatusEnum.PAY) {
+            throw new BizException("乐团当前状态是{},延长缴费", musicGroup.getStatus().getMsg());
+        }
+
+        Date date = new Date();
+
+        if (date.after(expireDate)) {
+            throw new BizException("日期设置错误");
+        }
+
+        musicGroup.setApplyExpireDate(expireDate);
+        musicGroup.setUpdateTime(date);
+        musicGroupDao.update(musicGroup);
+        musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, "延长报名时间", sysUser.getId(), ""));
+        return true;
+    }
+
+	@Override
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
     public boolean applyQuitMusicGroup(String musicGroupId) {
         SysUser sysUser = sysUserFeignService.queryUserInfo();

+ 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=")">

+ 12 - 2
mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupController.java

@@ -249,13 +249,23 @@ public class MusicGroupController extends BaseController {
 		return succeed();
 	}
 
-	@ApiOperation(value = "延长缴费")
+	@ApiOperation(value = "延长缴费时间")
 	@PostMapping("/extensionPayment")
 	@PreAuthorize("@pcs.hasPermissions('musicGroup/extensionPayment')")
 	@ApiImplicitParams({ @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String"),
 			@ApiImplicitParam(name = "expireDate", value = "延长缴费的截止日期", required = true, dataType = "Date") })
 	public Object extensionPayment(String musicGroupId, Date expireDate) {
-		musicGroupService.extensionPayment(musicGroupId, expireDate);
+		musicGroupService.extensionPaymentExpireDate(musicGroupId, expireDate);
+		return succeed();
+	}
+
+	@ApiOperation(value = "延长报名时间")
+	@PostMapping("/extensionApplyExpireDate")
+	@PreAuthorize("@pcs.hasPermissions('musicGroup/extensionApplyExpireDate')")
+	@ApiImplicitParams({ @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String"),
+			@ApiImplicitParam(name = "expireDate", value = "延长报名的截止日期", required = true, dataType = "Date") })
+	public Object extensionApplyExpireDate(String musicGroupId, Date expireDate) {
+		musicGroupService.extensionApplyExpireDate(musicGroupId, expireDate);
 		return succeed();
 	}