| 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<List<BannerInfo>> bannerQuery(HttpServletRequest request, @RequestBody(required = false) CommonDto commonDto) {  | 
|         Result result = new Result();  | 
|         List<BannerInfo> 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<Map<String, Object>> queryBannerApiList(@RequestBody BannerModel bannerModel){  | 
|         List<String> 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<String, Object> 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<String>")  | 
|   | 
|     })  | 
|     public JsonResult insertBannerApi(@RequestBody BannerModel bannerModel,HttpServletRequest request){  | 
|         List<String> 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<String> 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<Map<String, Object>> updateBannerApi(@RequestBody BannerModel bannerModel, HttpServletRequest request){  | 
|         Map<String,Object> 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<Map<String, Object>> delBannerApi(@RequestBody BannerModel bannerModel,HttpServletRequest request){  | 
|         Map<String,Object> 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);  | 
|     }  | 
| }  |