package com.szwl.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.szwl.constant.ResponseCodesEnum;
import com.szwl.model.bo.R;
import com.szwl.model.bo.ResponseModel;
import com.szwl.model.entity.TAd;
import com.szwl.model.entity.TAdmin;
import com.szwl.model.entity.TApkInfo;
import com.szwl.service.TAdService;
import com.szwl.service.TAdminService;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Date;
import java.util.List;
/**
*
* 前端控制器
*
*
* @author wuhs
* @since 2022-07-05
*/
@RestController
@RequestMapping("/tAd")
public class TAdController {
@Autowired
TAdService adService;
@Autowired
TAdminService adminService;
@GetMapping("/pageAd")
public ResponseModel> pageAd(long current, long size ) {
LambdaQueryWrapper query = Wrappers.lambdaQuery();
query.orderByDesc(TAd::getCreateDate);
Page page = new Page<>(current, size, true);
IPage iPage = adService.page(page, query);
List records = iPage.getRecords();
if(records.size()>0){
for(TAd ad:records){
if(StringUtils.isNotEmpty(ad.getAdminId())){
TAdmin admin = adminService.getById(ad.getAdminId());
if(admin!=null&&admin.getId()!=null){
ad.setUsername(admin.getUsername());
}
}
}
}
return R.ok(iPage);
}
@GetMapping("/listAd")
public ResponseModel> listAd() {
LambdaQueryWrapper query = Wrappers.lambdaQuery();
query.orderByDesc(TAd::getCreateDate);
List list = adService.list(query);
return R.ok(list);
}
@GetMapping("/getAdList")
public ResponseModel> getAdList(String type,String userName,String name,String screenType) {
LambdaQueryWrapper query = Wrappers.lambdaQuery();
if(StringUtils.isNotEmpty(type)){
query.eq(TAd::getEquipmentType,type);
}
if(StringUtils.isNotEmpty(userName)){
query.like(TAd::getUsername,userName);
}
if(StringUtils.isNotEmpty(name)){
query.like(TAd::getName,name);
}
if(StringUtils.isNotEmpty(screenType)){
query.eq(TAd::getScreenType,screenType);
}
query.orderByDesc(TAd::getCreateDate);
List list = adService.list(query);
return R.ok(list);
}
@ApiOperation(value = "添加")
@PostMapping("/add")
public ResponseModel> add(@RequestBody TAd ad) {
if(StringUtils.isEmpty(ad.getStatus())&&StringUtils.isEmpty(ad.getUrl())){
return R.fail(ResponseCodesEnum.A0001);
}
if(StringUtils.isNotEmpty(ad.getUsername())){
LambdaQueryWrapper query = Wrappers.lambdaQuery();
query.eq(TAdmin::getUsername,ad.getUsername());
List list = adminService.list(query);
TAdmin tAdmin = list.get(0);
ad.setAdminId(String.valueOf(tAdmin.getId()));
}
ad.setCreateDate(new Date());
ad.setModifyDate(new Date());
adService.save(ad);
return R.ok(ad,"添加成功");
}
@ApiOperation(value = "添加")
@GetMapping("/getOne")
public ResponseModel> getOne(Long id) {
if(id==null){
return R.fail(ResponseCodesEnum.A0001);
}
TAd ad = adService.getById(id);
return R.ok(ad);
}
@ApiOperation(value = "修改")
@PostMapping("/update")
public ResponseModel> update(@RequestBody TAd ad) {
if(StringUtils.isEmpty(ad.getUrl())){
return R.fail(ResponseCodesEnum.A0001);
}
ad.setModifyDate(new Date());
TAd oldAd = adService.getById(ad.getId());
if(StringUtils.isNotEmpty(ad.getUrl())){
oldAd.setUrl(ad.getUrl());
}
if(StringUtils.isNotEmpty(ad.getName())){
oldAd.setName(ad.getName());
}
oldAd.setEquipmentType(ad.getEquipmentType());
if(StringUtils.isNotEmpty(ad.getStatus())){
oldAd.setStatus(ad.getStatus());
}
if(StringUtils.isNotEmpty(ad.getMediaPreview())){
oldAd.setMediaPreview(ad.getMediaPreview());
}
if(StringUtils.isNotEmpty(ad.getUsername())){
LambdaQueryWrapper query = Wrappers.lambdaQuery();
query.eq(TAdmin::getUsername,ad.getUsername());
List list = adminService.list(query);
TAdmin tAdmin = list.get(0);
oldAd.setAdminId(String.valueOf(tAdmin.getId()));
}else {
oldAd.setAdminId(ad.getAdminId());
}
oldAd.setAdType(ad.getAdType());
oldAd.setDuration(ad.getDuration());
oldAd.setOrders(ad.getOrders());
oldAd.setLocationType(ad.getLocationType());
oldAd.setPlays(ad.getPlays());
oldAd.setScreenType(ad.getScreenType());
oldAd.setTimeRule(ad.getTimeRule());
oldAd.setType(ad.getType());
adService.updateById(oldAd);
return R.ok(oldAd,"修改成功");
}
/**
*
*
* @param
* @return
*/
@GetMapping(value = "/deletes")
@ResponseBody
public ResponseModel> deletes(int[] ids) {
if(ids==null){
return R.fail(ResponseCodesEnum.A0001);
}
if(ids.length>0){
for(int i=0;i