123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215 |
- package com.szwl.controller;
- import com.alibaba.fastjson.JSONObject;
- 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.gexin.fastjson.JSON;
- import com.szwl.constant.ResponseCodesEnum;
- import com.szwl.model.bo.R;
- import com.szwl.model.bo.ResponseModel;
- import com.szwl.model.dto.TimeRuleVo;
- import com.szwl.model.entity.TAd;
- import com.szwl.model.entity.TAdmin;
- import com.szwl.model.entity.TEquipment;
- import com.szwl.model.entity.TTimeRule;
- import com.szwl.model.utils.PushUtils;
- import com.szwl.service.TAdService;
- import com.szwl.service.TAdminService;
- import com.szwl.service.TEquipmentService;
- import com.szwl.service.TTimeRuleService;
- 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.ArrayList;
- import java.util.Arrays;
- import java.util.Date;
- import java.util.List;
- /**
- * <p>
- * 广告规则 前端控制器
- * </p>
- *
- * @author wuhs
- * @since 2022-07-05
- */
- @RestController
- @RequestMapping("/tTimeRule")
- public class TTimeRuleController {
- @Autowired
- TAdService adService;
- @Autowired
- TAdminService adminService;
- @Autowired
- TTimeRuleService timeRuleService;
- @Autowired
- TEquipmentService equipmentService;
- private static final String[] times = {"0-1", "1-2", "2-3", "3-4", "4-5", "5-6", "6-7", "7-8",
- "8-9", "9-10", "10-11", "11-12", "12-13", "13-14", "14-15", "15-16", "16-17", "17-18", "18-19", "19-20"
- , "20-21", "21-22", "22-23", "23-24"};
- @GetMapping("/pageTimeRule")
- public ResponseModel<IPage<?>> pageTimeRule(long current, long size ) {
- LambdaQueryWrapper<TTimeRule> query = Wrappers.lambdaQuery();
- query.orderByDesc(TTimeRule::getCreateDate);
- Page<TTimeRule> page = new Page<>(current, size, true);
- IPage<TTimeRule> iPage = timeRuleService.page(page, query);
- return R.ok(iPage);
- }
- @ApiOperation(value = "添加")
- @PostMapping("/add")
- public ResponseModel<?> add(@RequestBody TTimeRule timeRule) {
- if(StringUtils.isEmpty(timeRule.getName())&&StringUtils.isEmpty(timeRule.getRule())){
- return R.fail(ResponseCodesEnum.A0001);
- }
- timeRule.setCreateDate(new Date());
- timeRule.setModifyDate(new Date());
- timeRule.setType("1");
- timeRuleService.save(timeRule);
- return R.ok(timeRule,"添加成功");
- }
- @ApiOperation(value = "修改")
- @PostMapping("/update")
- public ResponseModel<?> update(@RequestBody TTimeRule timeRule) {
- if(StringUtils.isEmpty(timeRule.getName())&&StringUtils.isEmpty(timeRule.getRule())){
- return R.fail(ResponseCodesEnum.A0001);
- }
- TTimeRule oldTimeRule = timeRuleService.getById(timeRule.getId());
- oldTimeRule.setName(timeRule.getName());
- oldTimeRule.setRule(timeRule.getRule());
- oldTimeRule.setUserNames(timeRule.getUserNames());
- oldTimeRule.setModifyDate(new Date());
- timeRuleService.updateById(oldTimeRule);
- return R.ok(oldTimeRule,"修改成功");
- }
- @GetMapping("/getList")
- public ResponseModel<?> getList(String name) {
- LambdaQueryWrapper<TTimeRule> query = Wrappers.lambdaQuery();
- if(StringUtils.isNotEmpty(name)){
- query.eq(TTimeRule::getName,name);
- }
- query.orderByDesc(TTimeRule::getCreateDate);
- List<TTimeRule> list = timeRuleService.list(query);
- return R.ok(list);
- }
- @GetMapping("/getAdListByTimeRule")
- public ResponseModel<?> getAdListByTimeRule(String id) {
- List<TAd> adList = new ArrayList<>();
- TTimeRule timeRule = timeRuleService.getById(id);
- if(StringUtils.isEmpty(timeRule.getType())){
- List<TimeRuleVo> timeRuleVos = JSON.parseArray(timeRule.getRule(), TimeRuleVo.class);
- for(TimeRuleVo timeRuleVo:timeRuleVos){
- List<String> ads = timeRuleVo.getAd();
- for (String aid:ads){
- TAd ad = adService.getById(aid);
- if(ad!=null&&ad.getId()!=null){
- adList.add(ad);
- }
- }
- break;
- }
- }else if(timeRule.getType().equals("1")){
- String rule = timeRule.getRule();
- rule= rule.substring(1, rule.length() - 1);
- List<String> result = Arrays.asList(rule.split(","));
- for (String aid:result){
- TAd ad = adService.getById(aid);
- if(ad!=null&&ad.getId()!=null){
- adList.add(ad);
- }
- }
- }
- return R.ok(adList);
- }
- @GetMapping("/updateEquimentpTimeRule")
- public ResponseModel<?> updateEquimentpTimeRule(String equipmentId,String timeRuleId) {
- TEquipment equipment = equipmentService.getById(equipmentId);
- if(equipment!=null&&equipment.getId()!=null){
- equipment.setTimeRuleId(Long.valueOf(timeRuleId));
- equipmentService.updateById(equipment);
- equipmentService.sentMessage(equipment.getClientId(), PushUtils.buildJson("pushTimeRule", timeRuleId + "").toString());
- }
- return R.ok();
- }
- /**
- * 获取时间规则
- *
- * @param id 规则id
- * @return
- */
- @GetMapping(value = "/getOne")
- @ResponseBody
- public ResponseModel<?> getOne(Long id) {
- if(id==null){
- return R.fail(ResponseCodesEnum.A0001);
- }
- TTimeRule timeRule = timeRuleService.getById(id);
- return R.ok(timeRule);
- }
- /**
- * 删除时间规则
- *
- * @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<ids.length;i++){
- timeRuleService.removeById(ids[i]);
- }
- }
- return R.ok(null,"删除成功");
- }
- /**
- * 推送时间规则广告id
- *
- * @param id 规则id
- * @return
- */
- @GetMapping(value = "/pullTimeRule")
- @ResponseBody
- public ResponseModel<?> pullTimeRule(Long id) {
- LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
- query.eq(TEquipment::getTimeRuleId,id);
- List<TEquipment> list = equipmentService.list(query);
- //查询出用这个广告规则的设备
- for (TEquipment equipment : list) {
- equipmentService.sentMessage(equipment.getClientId(), PushUtils.buildJson("pushTimeRule", id + "").toString());
- // PushUtils.push(equipment.getGtClientId(), "", "", PushUtils.buildJson("pushTimeRule", id + "").toString());
- }
- TTimeRule timeRule = timeRuleService.getById(id);
- if(StringUtils.isNotEmpty(timeRule.getUserNames())){
- String[] nameUsers = timeRule.getUserNames().split(",");
- if(nameUsers.length>0){
- for(int i=0;i<nameUsers.length;i++){
- LambdaQueryWrapper<TAdmin> query1 = Wrappers.lambdaQuery();
- query1.eq(TAdmin::getUsername,nameUsers[i]);
- List<TAdmin> list1 = adminService.list(query1);
- if(list1.size()>0){
- for(TAdmin admin:list1){
- LambdaQueryWrapper<TEquipment> query2 = Wrappers.lambdaQuery();
- query2.eq(TEquipment::getAdminId,admin.getId());
- List<TEquipment> list2 = equipmentService.list(query2);
- for(TEquipment equipment:list2){
- equipmentService.sentMessage(equipment.getClientId(), PushUtils.buildJson("pushTimeRule", id + "").toString());
- }
- }
- }
- }
- }
- }
- return R.ok(null,"推送成功");
- }
- }
|