package com.xzx.gc.system.controller; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.util.StrUtil; import com.xzx.gc.common.Result; import com.xzx.gc.common.annotations.PassToken; import com.xzx.gc.common.constant.CommonEnum; import com.xzx.gc.common.constant.Constants; import com.xzx.gc.common.dto.CommonDto; import com.xzx.gc.common.dto.log.OperationAppLog; import com.xzx.gc.common.request.BaseController; import com.xzx.gc.common.utils.BusinessUtil; import com.xzx.gc.entity.AddressLevelInfo; import com.xzx.gc.entity.BannerInfo; import com.xzx.gc.entity.CoreUser; import com.xzx.gc.model.JsonResult; import com.xzx.gc.model.admin.BannerModel; import com.xzx.gc.model.order.FenceDto; import com.xzx.gc.system.mapper.BannerMapper; import com.xzx.gc.system.service.*; import com.xzx.gc.util.SessionUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @Api(tags = "Banner管理") @RestController @Slf4j public class BannerController extends BaseController { @Autowired private BannerMapper bannerMapper; @Autowired private UserService userService; @Autowired private SessionUtil sessionUtil; @Autowired private FenceService fenceService; @Autowired private CityPartnerService cityPartnerService; @Autowired private BannerService bannerService; /** * banner查询 * * @param */ @ApiOperation(value = "banner查询", notes = "extra传经纬度以逗号拼接") @PostMapping("/config/banner/query") @PassToken public Result> bannerQuery(HttpServletRequest request, @RequestBody(required = false) CommonDto commonDto) { Result result = new Result(); List bannerInfos = null; //查询用户所属区域ID String location = commonDto.getExtra(); Integer townId = null; if (StrUtil.isNotBlank(location)) { AddressLevelInfo byLocation = userService.findByLocation(location); if (byLocation != null) { townId = Convert.toInt(byLocation.getLevel3Id()); FenceDto fence = fenceService.getFence(townId.toString(), false, location.split(",")[0], location.split(",")[1], true); if(StrUtil.isNotBlank(fence.getFenceId())){ townId = Convert.toInt(fenceService.findTownId(townId.toString(), fence.getFenceId())); } } } if (townId != null) { bannerInfos = bannerMapper.findByAreaId(townId); } if (CollUtil.isEmpty(bannerInfos)) { bannerInfos = bannerMapper.findByAreaId(Convert.toInt(Constants.DEFAULT_ID)); } result.setData(bannerInfos); return result; } /** * 查询 * @param bannerModel * @return */ @PostMapping( "/admin/front/banner/queryBannerApiList.do") @ResponseBody @ApiOperation(value="运营管理-banner管理", notes="test: 仅0有正确返回") public JsonResult> queryBannerApiList(@RequestBody BannerModel bannerModel){ List partnerIds = new ArrayList<>(); if(null!=bannerModel.getPartnerId()&&!"".equals(bannerModel.getPartnerId())){ partnerIds.add(bannerModel.getPartnerId()); }else{ partnerIds = cityPartnerService.queryPartnerByCurrent(); } if(null!=partnerIds&&partnerIds.size()>0){ //CoreUser user = platformService.getCurrentUser(); bannerModel.setPartnerId(partnerIds.get(0)); } Map map = bannerService.queryBannerApiList(bannerModel); return JsonResult.success(map); } /** * 添加 * @param bannerModel * @return */ @PostMapping("/admin/front/banner/insertBannerApi.json") @ResponseBody @ApiOperation(value="运营管理-banner添加", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name = "picName", value = "图片名称", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "picPath", value = "图片路径", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "picUrl", value = "图片链接", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "sort", value = "排序", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "townIdList", value = "区域Id列表", required = true, dataType = "List") }) public JsonResult insertBannerApi(@RequestBody BannerModel bannerModel,HttpServletRequest request){ List partnerIds = cityPartnerService.queryPartnerByCurrent(); if(null!=partnerIds&&partnerIds.size()>0){ CoreUser user = sessionUtil.getCurrentUser(); bannerModel.setPartnerId(user.getId()+""); } if(null!=bannerModel.getTownIdList()&&bannerModel.getTownIdList().size()>0){ List townIdList = bannerModel.getTownIdList(); for (String townId:townIdList) { bannerModel.setCityId(townId); bannerService.insertBannerApi(bannerModel); } }else{ bannerService.insertBannerApi(bannerModel); } OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request)) .methodName(Constants.SYS_MODUL_NAME).operateAction("banner添加-"+bannerModel.getId()).build(); mqUtil.sendApp(build); return JsonResult.success("添加成功!"); } /** * 更新 * @param bannerModel * @return */ @PostMapping("/admin/front/banner/updateBannerApi.json") @ResponseBody @ApiOperation(value="运营管理-banner更新", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name = "id", value = "banner的Id", required = true, dataType = "int"), @ApiImplicitParam(paramType="query", name = "picName", value = "图片名称", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "picPath", value = "图片路径", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "picUrl", value = "图片链接", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "sort", value = "排序", required = true, dataType = "String") }) public JsonResult> updateBannerApi(@RequestBody BannerModel bannerModel, HttpServletRequest request){ Map map = new HashMap<>(); map.put("code",0); map.put("num",bannerService.updateBannerApi(bannerModel)); OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request)) .methodName(Constants.SYS_MODUL_NAME).operateAction("banner更新-"+bannerModel.getId()).build(); mqUtil.sendApp(build); return JsonResult.success(map); } /** * 删除 * @param bannerModel * @return */ @PostMapping("/admin/front/banner/delBannerApi.json") @ResponseBody @ApiOperation(value="运营管理-banner删除", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name = "id", value = "banner的Id", required = true, dataType = "int") }) public JsonResult> delBannerApi(@RequestBody BannerModel bannerModel,HttpServletRequest request){ Map map = new HashMap<>(); map.put("code",0); map.put("num",bannerService.delBannerApi(String.valueOf(bannerModel.getId()))); OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request)) .methodName(Constants.SYS_MODUL_NAME).operateAction("banner删除-"+bannerModel.getId()).build(); mqUtil.sendApp(build); return JsonResult.success(map); } }