Bläddra i källkod

广告同时只能启用一个

liujunchi 3 år sedan
förälder
incheckning
a2c1f1fb94

+ 17 - 4
cooleshow-cms/src/main/java/com/yonge/cooleshow/cms/dal/dao/SysNewsInformationDao.java

@@ -6,11 +6,13 @@ import java.util.Map;
 import com.yonge.cooleshow.cms.dal.entity.SysNewsInformation;
 import com.yonge.cooleshow.cms.dto.SysNewsInformationDto;
 import com.yonge.toolset.mybatis.dal.BaseDAO;
+import org.apache.ibatis.annotations.Param;
 
 public interface SysNewsInformationDao extends BaseDAO<Long, SysNewsInformation> {
 
 	/**
 	 * 根据类型查询资讯列表
+	 *
 	 * @param type
 	 * @return
 	 */
@@ -18,21 +20,23 @@ public interface SysNewsInformationDao extends BaseDAO<Long, SysNewsInformation>
 
 	/**
 	 * 逻辑删除
+	 *
 	 * @param id
 	 * @return
 	 */
 	int deleteWithLogical(Long id);
-	
+
 	List<SysNewsInformation> queryHomePage(Map<String, Object> params);
-	
+
 	int queryHomeCount(Map<String, Object> params);
-	
+
 	/**
 	 * 查询需要更新状态的对象集合
+	 *
 	 * @return
 	 */
 	List<SysNewsInformation> queryNeedUpdateStatusList();
-	
+
 	SysNewsInformationDto queryById(Long id);
 
 	/**
@@ -57,4 +61,13 @@ public interface SysNewsInformationDao extends BaseDAO<Long, SysNewsInformation>
 	 * @param id
 	 */
     void updateStatus(Long id);
+
+	/**
+	 * 查看广告版本
+	 *
+	 * @param version 版本
+	 * @param status  状态
+	 * @return
+	 */
+	Integer selectByVersionAndStatus(@Param("version") String version, @Param("status") Integer status);
 }

+ 17 - 1
cooleshow-cms/src/main/java/com/yonge/cooleshow/cms/service/impl/SysNewsInformationServiceImpl.java

@@ -7,6 +7,7 @@ import com.yonge.cooleshow.cms.dal.entity.NewsStatusEnum;
 import com.yonge.cooleshow.cms.dal.entity.SysNewsInformation;
 import com.yonge.cooleshow.cms.dto.SysNewsInformationDto;
 import com.yonge.cooleshow.cms.service.SysNewsInformationService;
+import com.yonge.cooleshow.common.exception.BizException;
 import com.yonge.toolset.mybatis.dal.BaseDAO;
 import com.yonge.toolset.base.page.PageInfo;
 import com.yonge.toolset.base.page.QueryInfo;
@@ -176,8 +177,23 @@ public class SysNewsInformationServiceImpl extends BaseServiceImpl<Long, SysNews
     @Override
 	@Transactional
     public boolean updateStatus(Long id) {
-		sysNewsInformationDao.updateStatus(id);
+		SysNewsInformationDto sysNewsInformationDto = sysNewsInformationDao.queryById(id);
+		if (sysNewsInformationDto.getType() != 2) {
+			sysNewsInformationDao.updateStatus(id);
+			return true;
+		}
+
+		if (sysNewsInformationDto.getStatus().getCode().equals(NewsStatusEnum.SHOW.getCode())) {
+			sysNewsInformationDao.updateStatus(id);
+			return true;
+		}
 
+		Integer count = sysNewsInformationDao.selectByVersionAndStatus(sysNewsInformationDto.getAttribute1(),NewsStatusEnum.SHOW.getCode());
+
+		if (count >0) {
+			throw  new BizException("有正在启用的公告");
+		}
+		sysNewsInformationDao.updateStatus(id);
 		return true;
     }
 

+ 14 - 0
cooleshow-cms/src/main/resources/config/mybatis/SysNewsInformationMapper.xml

@@ -276,4 +276,18 @@
 	<update id="updateStatus">
 		UPDATE sys_news_information SET status_ = if(status_ = 0,1,0),update_time_ = NOW() WHERE id_ = #{id}
     </update>
+
+	<select id="selectByVersionAndStatus" resultType="java.lang.Integer">
+		select count(1)
+		from sys_news_information sni
+		<where>
+		sni.del_flag_ = 0 and sni.type_ = 2
+			<if test="status != null">
+				and sni.status_ = #{status}
+			</if>
+			<if test="version != null || version != ''">
+				and sni.attribute1_ = #{version}
+			</if>
+		</where>
+	</select>
 </mapper>