package com.fdkankan.task.jobhandler.zfb; import cn.hutool.core.bean.BeanUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.dingtalk.api.response.OapiServiceaccountListResponse; import com.fdkankan.dingtalk.DingTalkSendUtils; import com.fdkankan.task.entity.*; import com.fdkankan.task.jobhandler.sale.SaleXxlJobUtil; import com.fdkankan.task.jobhandler.util.Utils; import com.fdkankan.task.mapper.*; import com.mybatisflex.annotation.UseDataSource; import com.mybatisflex.core.datasource.DataSourceKey; import com.mybatisflex.core.query.QueryWrapper; import com.xxl.job.core.context.XxlJobHelper; import com.xxl.job.core.handler.annotation.XxlJob; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.*; /** * XxlJob开发示例(Bean模式) * * 开发步骤: * 1、任务开发:在Spring Bean实例中,开发Job方法; * 2、注解配置:为Job方法添加注解 "@XxlJob(value="自定义jobhandler名称", init = "JobHandler初始化方法", destroy = "JobHandler销毁方法")",注解value值对应的是调度中心新建任务的JobHandler属性的值。 * 3、执行日志:需要通过 "XxlJobHelper.log" 打印执行日志; * 4、任务结果:默认任务结果为 "成功" 状态,不需要主动设置;如有诉求,比如设置任务结果为失败,可以通过 "XxlJobHelper.handleFail/handleSuccess" 自主设置任务结果; * * @author xuxueli 2019-12-11 21:52:51 */ @Component public class ZfbXxlJob { private static Logger logger = LoggerFactory.getLogger(ZfbXxlJob.class); @Autowired GenSceneNumService genSceneNumService; /** * 旧指房宝检测生成场景储备码 */ @XxlJob("oldZfbGenOldCode") @UseDataSource("old-zfb") public void zfbGenOldCode(){ String taskId = UUID.randomUUID().toString().replace("-", ""); logger.info("oldZfbGenOldCode---------------start,taskId:{}",taskId); try { Integer count = 10000; String param = XxlJobHelper.getJobParam(); // 获取参数 if(StringUtils.isNotBlank(param) && Utils.isNumber(param)){ count = Integer.valueOf(param); } genSceneNumService.genOldCode(count); }catch (Exception e){ logger.info("oldZfbGenOldCode-error,taskId:{},{}",taskId,e); }finally { logger.info("oldZfbGenOldCode---------------end,taskId::{}",taskId); } } @XxlJob("newZfbGenOldCode") @UseDataSource("new-zfb") public void newZfbGenOldCode(){ String taskId = UUID.randomUUID().toString().replace("-", ""); logger.info("newZfbGenOldCode---------------start,taskId:{}",taskId); try { Integer count = 10000; String param = XxlJobHelper.getJobParam(); // 获取参数 if(StringUtils.isNotBlank(param) && Utils.isNumber(param)){ count = Integer.valueOf(param); } genSceneNumService.genOldCode(count); }catch (Exception e){ logger.info("newZfbGenOldCode-error,taskId:{},{}",taskId,e); }finally { logger.info("newZfbGenOldCode---------------end,taskId::{}",taskId); } } @XxlJob("newZfbGenNewCode") @UseDataSource("new-zfb") public void newZfbGenNewCode(){ String taskId = UUID.randomUUID().toString().replace("-", ""); logger.info("newZfbGenNewCode---------------start,taskId:{}",taskId); try { Integer count = 10000; String param = XxlJobHelper.getJobParam(); // 获取参数 if(StringUtils.isNotBlank(param) && Utils.isNumber(param)){ count = Integer.valueOf(param); } genSceneNumService.genNewCode(count); }catch (Exception e){ logger.info("newZfbGenNewCode-error,taskId:{},{}",taskId,e); }finally { logger.info("zfbGenOldCode---------------end,taskId::{}",taskId); } } @Autowired TbCameraInstanceMapper tbCameraInstanceMapper; @XxlJob("oldZfbCameraAdd") @UseDataSource("old-zfb") public void oldZfbCameraAdd(){ String taskId = UUID.randomUUID().toString().replace("-", ""); logger.info("oldZfbCameraAdd---------------start,taskId:{}",taskId); try { String param = XxlJobHelper.getJobParam(); // 获取参数 if(StringUtils.isNotBlank(param)){ JSONArray jsonArray = JSON.parseArray(param); for (Object object : jsonArray) { JSONObject jsonObject = (JSONObject) object; String childName = jsonObject.getString("childName"); String userName = jsonObject.getString("userName"); QueryWrapper queryWrapper = QueryWrapper.create() .where("child_name ='"+childName+"'"); List tbCameraInstances = tbCameraInstanceMapper.selectListByQuery(queryWrapper); if(!tbCameraInstances.isEmpty()){ logger.info("oldZfbCameraAdd-已存在-error:{}",childName); } TbCameraInstance tbCameraInstance = new TbCameraInstance(); tbCameraInstance.setChildName(childName); tbCameraInstance.setActiveTime(new Date()); tbCameraInstance.setCameraTypeId(1); tbCameraInstance.setChildPassword("4dkankan@4dage"); tbCameraInstance.setWifiName(childName); tbCameraInstance.setWifiPassword("12345678"); tbCameraInstance.setBalance("99999999"); tbCameraInstance.setUserName(userName); tbCameraInstance.setOwn(0); tbCameraInstance.setCountry(0); tbCameraInstance.setAgency("4dage"); tbCameraInstanceMapper.insert(tbCameraInstance); } } }catch (Exception e){ logger.info("oldZfbCameraAdd-error,taskId:{},{}",taskId,e); }finally { logger.info("oldZfbCameraAdd---------------end,taskId::{}",taskId); } } @Autowired TbBuildingMapper tbBuildingMapper; @Autowired TbHouseMapper tbHouseMapper; @XxlJob("updateBuild") @UseDataSource("new-zfb") public void updateBuild(){ String taskId = UUID.randomUUID().toString().replace("-", ""); logger.info("newZfbGenNewCode---------------start,taskId:{}",taskId); try { HashMap buildMap = new HashMap<>(); List tbBuildings = tbBuildingMapper.selectAll(); List DelLit = new ArrayList<>(); for (TbBuilding tbBuilding : tbBuildings) { String key = tbBuilding.getName()+","+tbBuilding.getCity()+","+tbBuilding.getDistrict(); if(buildMap.get(key) == null){ buildMap.put(tbBuilding.getName()+","+tbBuilding.getCity()+","+tbBuilding.getDistrict(),tbBuilding); }else { QueryWrapper queryWrapper = QueryWrapper.create() .where("building_id =" +tbBuilding.getId()); List tbHouses = tbHouseMapper.selectListByQuery(queryWrapper); for (TbHouse tbHouse : tbHouses) { tbHouse.setBuildingId(buildMap.get(key).getId()); tbHouseMapper.update(tbHouse); } DelLit.add(tbBuilding); } } for (TbBuilding buildId : DelLit) { tbBuildingMapper.delete(buildId); } }catch (Exception e){ logger.info("newZfbGenNewCode-error,taskId:{},{}",taskId,e); }finally { logger.info("zfbGenOldCode---------------end,taskId::{}",taskId); } } @Autowired TbSceneDeleteMapper tbSceneDeleteMapper; @Autowired TbHouseDeleteMapper tbHouseDeleteMapper; @XxlJob("updateDeleteStatus") @UseDataSource("old-zfb") public void updateDeleteStatus(){ String param = XxlJobHelper.getJobParam(); // 获取参数 QueryWrapper queryWrapper1 = QueryWrapper.create() .where("user_name ='" +param+"'"); List tbUsers = tbUserMapper.selectListByQuery(queryWrapper1); if(tbUsers.isEmpty()){ logger.info("用户不存在:{}",param); return; } TbUser tbUser = tbUsers.get(0); QueryWrapper queryWrapper = QueryWrapper.create() .where("user_id =" +tbUser.getId()); List tbSceneDeletes = tbSceneDeleteMapper.selectListByQuery(queryWrapper); if(tbSceneDeletes.isEmpty()){ logger.info("场景不存在删除的:{}",param); return; } for (TbSceneDelete tbSceneDelete : tbSceneDeletes) { TbScene tbScene = new TbScene(); BeanUtil.copyProperties(tbSceneDelete,tbScene); tbSceneMapper.insert(tbScene); QueryWrapper queryWrapper2 = QueryWrapper.create() .where("id =" +tbSceneDelete.getHouseId()); List tbHouseDeletes = tbHouseDeleteMapper.selectListByQuery(queryWrapper2); for (TbHouseDelete tbHouseDelete : tbHouseDeletes) { TbHouse tbHouse = new TbHouse(); BeanUtil.copyProperties(tbHouseDelete,tbHouse); tbHouseMapper.insertOrUpdate(tbHouse); } } } @XxlJob("updateCompany") @UseDataSource("new-zfb") public void updateCompany(){ String res[] = { }; HashMap map = new HashMap<>(); for (String re : res) { String[] split = re.split(","); map.put(split[1],split[0]); } HashMap userMap = new HashMap<>(); for (String key : map.keySet()) { QueryWrapper wrapper = QueryWrapper.create() .where("user_name='"+key+"'"); List tbUsers = tbUserMapper.selectListByQuery(wrapper); if(tbUsers.size() >0){ userMap.put(key,tbUsers.get(0).getId()); } } for (String key : map.keySet()) { QueryWrapper queryWrapper = QueryWrapper.create() .where("user_id=" + map.get(key)); List tbScenes = tbSceneMapper.selectListByQuery(queryWrapper); for (TbScene tbScene : tbScenes) { Long userId = userMap.get(key); if(userId != null){ tbScene.setUserId(userId); tbSceneMapper.update(tbScene); } } } } @Autowired TbSceneMapper tbSceneMapper; @Autowired TbUserMapper tbUserMapper; @XxlJob("updateUserPassword") @UseDataSource("old-zfb") public void updateUserPassword(){ String param = XxlJobHelper.getJobParam(); // 获取参数 QueryWrapper queryWrapper1 = QueryWrapper.create() .where("user_name ='" +param+"'"); List tbUsers = tbUserMapper.selectListByQuery(queryWrapper1); if(tbUsers.isEmpty()){ logger.info("用户不存在:{}",param); return; } TbUser tbUser = tbUsers.get(0); tbUser.setUserPassword("gy123456"); tbUserMapper.update(tbUser); } public static void main(String[] args) { JSONArray jsonArray = new JSONArray(); String userName = "13967143520"; String[] res = { "THETAYP41148397.OSC", "THETAYP41133486.OSC" }; for (String re : res) { JSONObject jsonObject = new JSONObject(); jsonObject.put("childName",re); jsonObject.put("userName",userName); jsonArray.add(jsonObject); } System.out.println(jsonArray); } }