diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/ad/domain/Ad.java b/ruoyi-service/src/main/java/com/ruoyi/bst/ad/domain/Ad.java index f4dce22..6c07734 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/ad/domain/Ad.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/ad/domain/Ad.java @@ -36,6 +36,10 @@ public class Ad extends BaseEntity @ApiModelProperty("运营商id") private Long storeId; + @Excel(name = "运营区id") + @ApiModelProperty("运营区id") + private Long areaId; + @Excel(name = "跳转链接") @ApiModelProperty("跳转链接") private String url; diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/ad/mapper/AdMapper.java b/ruoyi-service/src/main/java/com/ruoyi/bst/ad/mapper/AdMapper.java index a144465..be91177 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/ad/mapper/AdMapper.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/ad/mapper/AdMapper.java @@ -5,6 +5,7 @@ import com.ruoyi.bst.ad.domain.Ad; import com.ruoyi.bst.ad.domain.AdVO; import com.ruoyi.bst.ad.domain.AdQuery; import org.apache.ibatis.annotations.Param; +import org.springframework.security.core.parameters.P; /** * 广告Mapper接口 @@ -73,4 +74,8 @@ public interface AdMapper public int deleteAdByAdIds(@Param("array") List adIds); AdVO selectOne(@Param("query") AdQuery query); + + public int logicalDel(@Param("array") List adIds); + + int countByAreaId(@Param("areaId") Long areaId, @Param("adId") Long adId); } diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/ad/mapper/AdMapper.xml b/ruoyi-service/src/main/java/com/ruoyi/bst/ad/mapper/AdMapper.xml index 297422e..01a41e3 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/ad/mapper/AdMapper.xml +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/ad/mapper/AdMapper.xml @@ -9,6 +9,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -21,9 +22,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select + select DISTINCT bad.ad_id, bad.store_id, + bad.area_id, bad.type, bad.belong, bad.picture, @@ -35,17 +37,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" bad.remark, bad.deleted, bad.url_type, - bo.user_id, - ba.name as area_name - from bst_ad bad - left join bst_area ba on bad.store_id = ba.user_id - left join bst_order bo on ba.id = bo.area_id + ba.name AS areaName, + su.agent_id + from bst_ad bad + left join bst_area ba on bad.area_id = ba.id + left join bst_order bo ON ba.id = bo.area_id + left join sys_user su on bo.user_id = su.user_id - - and bad.store_id = #{query.storeId} - + and bad.area_id = #{query.areaId} + and bad.store_id = #{query.storeId} and bad.ad_id = #{query.adId} and bad.type = #{query.type} and bad.belong = #{query.belong} @@ -55,7 +57,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and bad.url_type = #{query.urlType} ${@com.ruoyi.framework.util.DataScopeUtil@dataScope( null, - "bad.store_id,bo.user_id", + "bad.store_id,su.agent_id", null, null, query.scope @@ -80,13 +82,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - limit 1 + order by bad.create_time desc limit 1 + + + insert into bst_ad store_id, + area_id, type, belong, picture, @@ -101,6 +112,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{storeId}, + #{areaId}, #{type}, #{belong}, #{picture}, @@ -274,10 +286,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where ad_id = #{data.adId} + + update bst_ad ba set ba.deleted = 1 where ba.ad_id in + + #{adId} + + + + store_id = #{data.storeId}, + area_id = #{data.areaId}, type = #{data.type}, picture = #{data.picture}, url = #{data.url}, + belong = #{data.belong}, create_by = #{data.createBy}, create_time = #{data.createTime}, update_by = #{data.updateBy}, diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/ad/service/AdService.java b/ruoyi-service/src/main/java/com/ruoyi/bst/ad/service/AdService.java index cb64c0c..65df9b3 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/ad/service/AdService.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/ad/service/AdService.java @@ -63,7 +63,8 @@ public interface AdService AdVO selectOne(AdQuery adQuery); - List toVOList(); List toAppVOList(); + + public int logicalDel(List adIds); } diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/ad/service/impl/AdConverterImpl.java b/ruoyi-service/src/main/java/com/ruoyi/bst/ad/service/impl/AdConverterImpl.java index 6a5d886..416d3d6 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/ad/service/impl/AdConverterImpl.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/ad/service/impl/AdConverterImpl.java @@ -14,7 +14,8 @@ public class AdConverterImpl implements AdConverter { @Override public AdQuery toAdQueryByCreate(Ad ad) { AdQuery query = new AdQuery(); - query.setStoreId(ad.getStoreId()); + query.setAreaId(ad.getAreaId()); + query.setBelong(ad.getBelong()); return query; } @@ -29,7 +30,6 @@ public class AdConverterImpl implements AdConverter { public AdQuery toAdStoreVO() { AdQuery query = new AdQuery(); query.setUserId(SecurityUtils.getUserId()); - query.setStoreId(SecurityUtils.getUserId()); query.setBelong(AdBlong.STORE.getCode()); return query; } diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/ad/service/impl/AdServiceImpl.java b/ruoyi-service/src/main/java/com/ruoyi/bst/ad/service/impl/AdServiceImpl.java index cc88821..efc78df 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/ad/service/impl/AdServiceImpl.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/ad/service/impl/AdServiceImpl.java @@ -15,6 +15,7 @@ import com.ruoyi.common.core.domain.entity.User; import com.ruoyi.common.core.domain.vo.UserVO; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.common.utils.ServiceUtil; import com.ruoyi.system.user.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -65,7 +66,6 @@ public class AdServiceImpl implements AdService @Override public List selectAdList(AdQuery ad) { - return adMapper.selectAdList(ad); } @@ -78,6 +78,16 @@ public class AdServiceImpl implements AdService @Override public int insertAd(Ad ad) { + if (ad.getBelong() == null || ad.getBelong().equals("")){ + ad.setBelong(AdBlong.STORE.getCode()); + } + AdQuery query = new AdQuery(); + query.setAreaId(ad.getAreaId()); + if (ad.getAreaId() != null){ + AreaVO area = areaService.selectAreaById(ad.getAreaId()); + ad.setStoreId(area.getUserId()); + ServiceUtil.assertion(adMapper.selectOne(query)!=null,"当前运营区存在广告已达上限"); + } ad.setCreateTime(DateUtils.getNowDate()); return adMapper.insertAd(ad); } @@ -91,6 +101,16 @@ public class AdServiceImpl implements AdService @Override public int updateAd(Ad ad) { + if (ad.getAreaId() != null){ + AdVO oldAd = adMapper.selectAdByAdId(ad.getAdId()); + ServiceUtil.assertion(oldAd == null,"广告不存在"); + if (!oldAd.getAreaId().equals(ad.getAreaId())){ + int count = adMapper.countByAreaId(ad.getAreaId(),ad.getAdId()); + ServiceUtil.assertion(count>0,"该运营区下广告已达上限"); + } + } + AreaVO area = areaService.selectAreaById(ad.getAreaId()); + ad.setStoreId(area.getUserId()); ad.setUpdateTime(DateUtils.getNowDate()); return adMapper.updateAd(ad); } @@ -124,39 +144,32 @@ public class AdServiceImpl implements AdService return adMapper.selectOne(query); } - @Override - public List toVOList() { - // 管理员可以查看所有的广告 - if (SecurityUtils.isAdmin()){ - return adMapper.selectAdList(new AdQuery()); - } - // 查询对应商户的广告 - List voList = new ArrayList<>(); - UserVO user = userService.selectUserById(SecurityUtils.getUserId()); - if (user != null) { - if (user.getAreaId() != null) { - AdVO vo = adMapper.selectOne(adConverter.toAdStoreVO()); - voList.add(vo); - } - } - return voList; - } @Override public List toAppVOList() { - // 查询管理员发布的广告 - List voList = new ArrayList<>(); - List adminVOList = adMapper.selectAdList(adConverter.toAdAdminVO()); - - // 查询对应商户的广告 - UserVO user = userService.selectUserById(SecurityUtils.getUserId()); - if (user != null) { - if (user.getAreaId() != null) { - AdVO vo = adMapper.selectOne(adConverter.toAdStoreVO()); - voList.add(vo); + List list = new ArrayList<>(); + OrderQuery orderQuery = new OrderQuery(); + orderQuery.setUserId(SecurityUtils.getUserId()); + OrderVO orderVO = orderService.selectOne(orderQuery); + // 如果有订单,查询对应商户的广告 + if (orderVO != null) { + AdQuery adStoreVO = adConverter.toAdStoreVO(); + adStoreVO.setStoreId(orderVO.getAreaUserId()); + AdVO vo = adMapper.selectOne(adStoreVO); + if (vo != null) { + list.add(vo); } } - voList.addAll(adminVOList); - return voList; + // 查询管理员发布的广告 + List adminVOList = adMapper.selectAdList(adConverter.toAdAdminVO()); + if (adminVOList != null) { + list.addAll(adminVOList); + } + return list; + } + + @Override + public int logicalDel(List adIds) { + return adMapper.logicalDel(adIds); } } diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/mapper/AgreementMapper.java b/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/mapper/AgreementMapper.java index 18877d0..af6e4f7 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/mapper/AgreementMapper.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/mapper/AgreementMapper.java @@ -73,4 +73,6 @@ public interface AgreementMapper public int deleteAgreementByIds(@Param("array") List ids); public AgreementVO selectDistinct(Agreement agreement); + + public AgreementVO selectLatest(AgreementQuery query); } diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/mapper/AgreementMapper.xml b/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/mapper/AgreementMapper.xml index 3f41060..eed8376 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/mapper/AgreementMapper.xml +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/mapper/AgreementMapper.xml @@ -33,6 +33,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" bag.update_time, su.user_name, ba.name as area_name + + + + from bst_agreement bag left join sys_user su on bag.store_id = su.user_id left join bst_area ba on bag.area_id = ba.id @@ -69,7 +73,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/service/AgreementService.java b/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/service/AgreementService.java index b803756..18e74c1 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/service/AgreementService.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/service/AgreementService.java @@ -35,7 +35,7 @@ public interface AgreementService * @param agreement 协议 * @return 结果 */ - public int insertAgreement(Agreement agreement); + public int insertAgreement(AgreementQuery agreement); /** * 修改协议 @@ -60,4 +60,6 @@ public interface AgreementService * @return 结果 */ public int deleteAgreementById(Long id); + + AgreementVO selectLatest(AgreementQuery query); } diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/service/impl/AgreementServiceImpl.java b/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/service/impl/AgreementServiceImpl.java index 5fb0489..03ec04f 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/service/impl/AgreementServiceImpl.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/service/impl/AgreementServiceImpl.java @@ -5,6 +5,7 @@ import java.util.List; import com.ruoyi.bst.area.domain.AreaQuery; import com.ruoyi.bst.area.domain.AreaVO; import com.ruoyi.bst.area.service.AreaService; +import com.ruoyi.common.core.domain.vo.UserVO; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.ServiceUtil; import com.ruoyi.system.user.service.UserService; @@ -29,6 +30,8 @@ public class AgreementServiceImpl implements AgreementService private AgreementMapper agreementMapper; @Autowired private AreaService areaService; + @Autowired + private UserService userService; /** * 查询协议 @@ -61,13 +64,16 @@ public class AgreementServiceImpl implements AgreementService * @return 结果 */ @Override - public int insertAgreement(Agreement agreement) + public int insertAgreement(AgreementQuery agreement) { agreement.setCreateTime(DateUtils.getNowDate()); - AreaVO area = areaService.selectAreaById(agreement.getAreaId()); - if (area !=null){ - agreement.setStoreId(area.getUserId()); - }; + UserVO user = userService.selectUserById(agreement.getUserId()); + if (user != null){ + if (user.getAreaId() != null){ + agreement.setAreaId(user.getAreaId()); + } + agreement.setStoreId(agreement.getUserId()); + } distinct(agreement); return agreementMapper.insertAgreement(agreement); } @@ -87,13 +93,12 @@ public class AgreementServiceImpl implements AgreementService } private void distinct(Agreement agreement) { - AreaQuery areaQuery = new AreaQuery(); - areaQuery.setUserId(agreement.getStoreId()); - AreaVO areaVO = areaService.selectOne(areaQuery); - if (areaVO != null) { - agreement.setAreaId(areaVO.getId()); + if (agreement.getAreaId() != null){ + AreaVO area = areaService.selectAreaById(agreement.getAreaId()); + ServiceUtil.assertion(area == null,"当前区域不存在"); + agreement.setStoreId(area.getUserId()); + ServiceUtil.assertion(agreementMapper.selectDistinct(agreement)!= null,"当前运营区已存在同类协议"); } - ServiceUtil.assertion(agreementMapper.selectDistinct(agreement)!= null,"当前分类已存在协议"); } /** @@ -119,4 +124,14 @@ public class AgreementServiceImpl implements AgreementService { return agreementMapper.deleteAgreementById(id); } + + /** + * 查询最新的协议信息 + * @param query + * @return + */ + @Override + public AgreementVO selectLatest(AgreementQuery query) { + return agreementMapper.selectLatest(query); + } } diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/fault/service/impl/FaultConverterImpl.java b/ruoyi-service/src/main/java/com/ruoyi/bst/fault/service/impl/FaultConverterImpl.java index 99ce6bc..cd510a8 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/fault/service/impl/FaultConverterImpl.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/fault/service/impl/FaultConverterImpl.java @@ -48,6 +48,7 @@ public class FaultConverterImpl implements FaultConverter { po.setUserName(fault.getCreateBy()); po.setUserId(fault.getUserId()); + po.setStoreId(device.getMchId()); if (device.getOrderId() != null && fault.getOrderId().equals(device.getOrderId())) { po.setOrderId(device.getOrderId()); } diff --git a/ruoyi-web/src/main/java/com/ruoyi/web/app/AppAdController.java b/ruoyi-web/src/main/java/com/ruoyi/web/app/AppAdController.java index 2acc80a..b9ef5c8 100644 --- a/ruoyi-web/src/main/java/com/ruoyi/web/app/AppAdController.java +++ b/ruoyi-web/src/main/java/com/ruoyi/web/app/AppAdController.java @@ -1,14 +1,15 @@ package com.ruoyi.web.app; +import com.ruoyi.bst.ad.domain.AdQuery; import com.ruoyi.bst.ad.service.AdService; -import com.ruoyi.common.annotation.Anonymous; +import com.ruoyi.bst.agreement.domain.AgreementQuery; import com.ruoyi.common.core.controller.BaseController; + +import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.page.TableDataInfo; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/app/ad") @@ -19,10 +20,8 @@ public class AppAdController extends BaseController { @ApiOperation("获取广告") @GetMapping - @Anonymous - public TableDataInfo getAd() { - startPage(); - return getDataTable(adService.toAppVOList()); + public AjaxResult getAd() { + return success(adService.toAppVOList()); } } diff --git a/ruoyi-web/src/main/java/com/ruoyi/web/app/AppAgreementController.java b/ruoyi-web/src/main/java/com/ruoyi/web/app/AppAgreementController.java index 5ed30f8..2bc9014 100644 --- a/ruoyi-web/src/main/java/com/ruoyi/web/app/AppAgreementController.java +++ b/ruoyi-web/src/main/java/com/ruoyi/web/app/AppAgreementController.java @@ -3,12 +3,10 @@ package com.ruoyi.web.app; import com.ruoyi.bst.agreement.domain.AgreementQuery; import com.ruoyi.bst.agreement.service.AgreementService; import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.core.domain.AjaxResult; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/app/agreement") @@ -17,12 +15,10 @@ public class AppAgreementController extends BaseController { @Autowired private AgreementService agreementService; - @ApiOperation("查询协议") - @GetMapping - public TableDataInfo getAgreement(AgreementQuery query) { - startPage(); - startOrderBy(); - return getDataTable(agreementService.selectAgreementList(query)); + @ApiOperation("查询最新协议") + @GetMapping("/latest") + public AjaxResult getAgreement(AgreementQuery query) { + return success(agreementService.selectLatest(query)); } diff --git a/ruoyi-web/src/main/java/com/ruoyi/web/bst/AdController.java b/ruoyi-web/src/main/java/com/ruoyi/web/bst/AdController.java index 23f1c50..fc1b7d0 100644 --- a/ruoyi-web/src/main/java/com/ruoyi/web/bst/AdController.java +++ b/ruoyi-web/src/main/java/com/ruoyi/web/bst/AdController.java @@ -7,6 +7,7 @@ import com.ruoyi.bst.ad.enums.AdBlong; import com.ruoyi.bst.ad.service.AdConverter; import com.ruoyi.bst.ad.service.AdService; import com.ruoyi.bst.ad.service.AdValidator; +import com.ruoyi.bst.area.service.AreaService; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; @@ -42,6 +43,8 @@ public class AdController extends BaseController private AdConverter adConverter; @Autowired private AdValidator adValidator; + @Autowired + private AreaService areaService; /** * 查询广告列表 @@ -53,7 +56,8 @@ public class AdController extends BaseController startPage(); startOrderBy(); query.setScope(true); - return getDataTable(adService.toVOList()); + query.setDeleted(false); + return getDataTable(adService.selectAdList(query)); } /** @@ -87,14 +91,6 @@ public class AdController extends BaseController @PostMapping public AjaxResult add(@RequestBody Ad ad) { - ad.setStoreId(getUserId()); - ad.setBelong(AdBlong.ADMIN.getCode()); - // 若当前商户不是超级管理员只能够创建一个广告 - if (!SecurityUtils.isSysAdmin()){ - AdVO vo = adService.selectOne(adConverter.toAdQueryByCreate(ad)); - ad.setBelong(AdBlong.ADMIN.getCode()); - ServiceUtil.assertion(vo!=null,"该商户可创建广告已达上限"); - } return toAjax(adService.insertAd(ad)); } @@ -123,6 +119,6 @@ public class AdController extends BaseController if (!adValidator.canDeleteAll(adIds)) { return AjaxResult.error("您没有权限删除ID为" + adIds + "的广告信息"); } - return toAjax(adService.deleteAdByAdIds(adIds)); + return toAjax(adService.logicalDel(adIds)); } } diff --git a/ruoyi-web/src/main/java/com/ruoyi/web/bst/AgreementController.java b/ruoyi-web/src/main/java/com/ruoyi/web/bst/AgreementController.java index b73ced3..1a61b1e 100644 --- a/ruoyi-web/src/main/java/com/ruoyi/web/bst/AgreementController.java +++ b/ruoyi-web/src/main/java/com/ruoyi/web/bst/AgreementController.java @@ -76,8 +76,9 @@ public class AgreementController extends BaseController @PreAuthorize("@ss.hasPermi('bst:agreement:add')") @Log(title = "协议", businessType = BusinessType.INSERT) @PostMapping - public AjaxResult add(@RequestBody Agreement agreement) + public AjaxResult add(@RequestBody AgreementQuery agreement) { + agreement.setUserId(getUserId()); return toAjax(agreementService.insertAgreement(agreement)); }