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);  
 | 
    }  
 | 
}  
 |