样式:

前台代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="../js/jquery.min.js"></script>
<script type="text/javascript" src="../js/jquery.easyui.min.js"></script>
<script type="text/javascript" src="../js/easyui-lang-zh_CN.js"></script>
<link rel="stylesheet" type="text/css"href="../themes/default/easyui.css">
<link rel="stylesheet" type="text/css" href="../themes/icon.css">
</head>
<body><div id="massageRecordingTool" style="height: 24px"><div style="text-align: right; padding-right: 10px"><a id="openAddMassageRecording" class="easyui-linkbutton"data-options="iconCls:'icon-remove'">新建</a></div></div><div id="addMassageRecordingWin" class="easyui-window" title="新建任务"style="width: 600px; height: 400px"data-options="modal:true,closable:true,closed:true,inline:false"><div style="text-align: center;"><form id="addMassageRecordingForm" action="" method="post"><table width="90%" style="padding: 15px"><tr><td>用户</td><td><textarea rows="8" cols="24" name="user"></textarea></td><td>用户间以逗号分割</td></tr><tr><td><span>短信模板:</span></td><td><input id="massageBackct" class="easyui-combobox" panelHeight="auto"  panelWight="auto"  data-options="   width:100,  valueField: 'id',   textField: 'name',   url: '/test/massageRecording/loadMassage',  method:'get'"/></td></tr><tr><td></td><td><textarea rows="8" cols="24" id="massageContent" name="content"></textarea></td></tr><tr><td colspan="4" align="center"><input type="button" value="添加" id="submitAddMassageRecording"> <input type="button" value="关闭" id="closeAdd"></td></tr></table></form></div></div><table id="massageRecordingDatagrid" class="easyui-datagrid"data-options="url:'/test/massageRecording/getMassageRecordingByPage',pagination:true,pageSize:8,pageList:[8,10,12],toolbar:'#massageRecordingTool'"><thead><tr><th data-options="field:'id',width:100">序号</th><th data-options="field:'createtime',width:150">时间</th><th data-options="field:'admin',width:100">操作人</th><th data-options="field:'process',width:100">进度</th><th data-options="field:'user',width:250">用户</th><th data-options="field:'content',width:900">短信内容</th><th data-options="field:'remark',width:120">备注</th></tr></thead></table><script type="text/javascript">$(function() {$('#openAddMassageRecording').click(function() {//打开添加短信群发窗口$('#addMassageRecordingWin').window('open');});$('#closeAdd').click(function() {//关闭添加短信群发窗口$("#addMassageRecordingWin").window('close');})$('#massageBackct').combobox({//选择节点时间onSelect: function(record){$('#massageContent').val(record.content);}});$('#submitAddMassageRecording').click(function() {//发送ajax$.ajax({type : "POST",url : "/test/massageRecording/addMassageRecording",data : $("#addMassageRecordingForm").serialize(),beforeSend : function() {$.messager.progress();},success : function(backData) {$.messager.progress('close');//成功,提示新增短信模板成功,点击确定后提示ok;失败,提示失败//Map<String,String> result-->success,error if (backData.result == 'success') {$.messager.alert('短信管理系统', '短信群发消息添加成功','info', function() {//关闭窗口,重置form,datagrid要重新加载$("#addMassageRecordingWin").window('close');$('#addMassageRecordingForm').form('reset');$("#massageRecordingDatagrid").datagrid('reload');});} else if (backData.result == 'error') {$.messager.alert('短信管理系统', '短信群发信息添加失败','error');}}});});});</script></body>
</html>

新增弹窗

后台代码:

vo:

public class MassageRecordingVo {private int id;private String createtime;private String admin;private String process;private String user;private String content;private String remark;

controller:

@Controller
public class MassageRecordingController {@Autowiredprivate MassageRecordingService massageRecordingService;@Autowiredprivate MassageService massageService;/*** 获取短信模板列表* * @param page* @param rows* @return*/@RequestMapping("/massageRecording/getMassageRecordingByPage")@ResponseBodypublic EasyUIDatagrid getMassageRecordingByPage(Integer page, Integer rows) {return massageRecordingService.getMassageRecordingByPage(page, rows);}/** * 加载短信模板* @param   * @param   */  @RequestMapping("/massageRecording/loadMassage")@ResponseBodypublic List<MassageVo> loadInstitute() throws Exception {  List<MassageVo> mList = new ArrayList<MassageVo>();try {mList = massageService.listAllMassages();} catch (Exception e) {e.printStackTrace();}return mList;}/*** 添加短信群发* @param massage* @return*/@RequestMapping("/massageRecording/addMassageRecording")@ResponseBodypublic Map<String, String> addMassageRecording(String user,String content){Map<String, String> retMap = new HashMap<String, String>();try {massageRecordingService.addMassageRecording(user,content);retMap.put("result", "success");} catch (Exception e) {e.printStackTrace();retMap.put("result", "error");}return retMap;}}

ServiceImpl:

@Service
public class MassageRecordingServiceImpl implements MassageRecordingService {@Autowiredprivate MassageRecordingDao massageRecordingDao;@Overridepublic EasyUIDatagrid getMassageRecordingByPage(Integer page, Integer rows) {// 使用分页插件进行分页处理// startPage方法一定要在statement执行前执行PageHelper.startPage(page, rows);List<MassageRecordingVo> list = massageRecordingDao.getMassageRecordingByPage();// pageInfo包含了分页的所有信息PageInfo<MassageRecordingVo> pageInfo = new PageInfo<MassageRecordingVo>(list);EasyUIDatagrid easyUIDatagrid = new EasyUIDatagrid();easyUIDatagrid.setRows(pageInfo.getList());easyUIDatagrid.setTotal(pageInfo.getTotal());return easyUIDatagrid;}@Overridepublic void addMassageRecording(String user, String content) {MassageRecordingVo mrv = new MassageRecordingVo();SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");mrv.setCreatetime(sdf.format(new Date()));String[] split = user.split(",");mrv.setUser("共有"+split.length+"名用户");mrv.setAdmin("admin");mrv.setProcess("发送完成");mrv.setContent(content);mrv.setRemark("");massageRecordingDao.addMassageRecording(mrv);}}

dao.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.shinewonder.com.test.dao.MassageRecordingDao"><select id="getMassageRecordingByPage" resultType="massageRecordingVo">SELECT`id`, `createtime`,`admin`, `process`,`user`,`content`, `remark`
        FROM`massage_recording`
        ORDER BY `id`
    </select><insert id="addMassageRecording">INSERTINTO `massage_recording`
        (`createtime`,`admin`, `process`,`user`,`content`, `remark`)VALUES(#{createtime}, #{admin},#{process},#{user}, #{content},#{remark})</insert>
</mapper>

关于短信群发的简单实现相关推荐

  1. 【收藏】简单方便的自助106短信群发工具

    个人或者小规模店家要做短信营销或者短信通知,如何选择一家合适的短信群发平台,需要考虑以下几点. 1. 是否能发出去,到达率高,速度快. 根据短信内容性质不同,如果是广告营销,各个平台都要进行审核.需要 ...

  2. [TPYBoard - Micropython] 五分种学会用TPYBoard - GPS 制作短信群发机

    转载请注明:@小五义 http://www.cnblogs.com/xiaowuyi 欢迎加入讨论群 64770604 一.什么是TPYBoard-GPS TPYBoard-GPS又称TPYBoard ...

  3. 电力公司SMS短信群发平台的设计与实现

    潍坊科技学院 本科毕业设计(论文) 题 目 电力公司SMS短信群发平台的设计与实现 院(系) 专 业 科学与技术 学 号 学生姓名 指导教师 刘效伟 起讫日期 2015.1.11-2015.6.6 设 ...

  4. 网关短信 群发 为什么卡发短信 群发 贵 ?

    网关短信 群发 为什么卡发短信 群发 贵 ? 首先,要弄清楚什么是卡发短信 ? 什么是网关短信 ? 什么是卡发短信 ? 1 .卡发短信也叫虚拟网关短信,对方收到短信时显示的是我们服务器上的 虚拟手机号 ...

  5. C# 开发winform程序 手机短信群发系统

    手机短信群发作为企业日常通知,公告,天气预报等信息的一个发布平台,在于成本低,操作方便等诸多特点,成为企业通讯之首选.本文介绍短信的编码方式,AT指令以及用C#实现串口通讯的方法. 前言 目前,发送短 ...

  6. 国际短信群发有哪些优势?

    随着跨境电商行业的蓬勃发展,群发营销短信是出海企业常用的推广拉新和客户服务手段.在实际应用中,国际短信群发有哪些优势? 一.覆盖面广 业务覆盖全球220多个国家和地区,支持多种语言的服务.跨境企业可通 ...

  7. 为什么很多企业都在使用短信群发?原来是有3大好处!

    不做市场调查不清楚,使用短信群发的企业这般之多,乃至多到令人瞠目结舌的程度.没有错,在大家看来,短信早已没有市场的状况下,仍然有成千上万的企业在使用短信群发平台,只为了更好地宣传自家的产品和品牌.那么 ...

  8. PyQt开发的手机同步软件(方便的电话本编辑和短信群发功能)

    自己平时摆弄自己的破山寨iphone时,很多地方令人不爽,于是乎想到写一款支持电话本编辑和短信群发的软件. 还是先上效果图: 至于软件的实现没啥技术含量,在此不作说明. 软件简单介绍: 1.由于软件的 ...

  9. 国际短信群发的问题与优势

    企业为何选择国际短信群发平台? 企业大批量群发国际短信,需对接海外国家本地运营商并接入短信通道,会面临较高的资金门槛.规模门槛.技术门槛和人力资源门槛等.而对大多数企业来说,所需承担的成本压力.运营压 ...

最新文章

  1. 就是一个斜杠的事情!
  2. vue 复选框的渲染
  3. 手游linux服务器时间同步问题
  4. 【错误记录】Python 安装依赖库报错 ( ERROR: Could not find a version that satisfies the requirement elftools )
  5. css怎样设置li分栏,css怎么对文字分栏
  6. 分布式消息队列RocketMQ与Kafka架构上的巨大差异之1 -- 为什么RocketMQ要去除ZK依赖?...
  7. mysql数据库自动关闭
  8. arcgis for android 无法加载本地jpg影像解决办法
  9. python 消息中间件_如何评价腾讯开源的消息中间件TubeMQ?
  10. 后缀mcp用什么软件打开_如何打开MCP文件?
  11. 王道计算机考研机试指南部分代码
  12. EtherCAT总线运动控制器中简单易用的直线插补
  13. vi不保存退出的命令
  14. Fluent中级工程进阶,从5种气体燃烧模型出发
  15. 《ZLToolKit源码学习笔记》(17)网络模块之基础接口封装类SockUtil
  16. HDU-5855 Less Time, More profit(最大权闭合图+二分)
  17. Adversarial Attack
  18. 杨幂晒七月孕肚揭怀孕只胖baby不胖身材的女星
  19. arcEngine开发之IMapControl接口
  20. 考研英语(二)——简单句

热门文章

  1. Notepad++ 安装XML Tools插件格式化XML文件
  2. xcode反汇编调试iOS模拟器程序
  3. 浅谈String的堆内存和栈内存
  4. 百度竞价托管一月多少钱
  5. android studio(as)找不到手机
  6. 微软 Visual Studio 2019 正式发布
  7. 哪一款蓝牙耳机音质最好?2023发烧级音质蓝牙耳机推荐
  8. 阿里云服务器 API 的使用
  9. 2022年度猫狗粮销售数据:十大热门品牌排行榜,哪些品牌入围?
  10. Mysql 8.0 安装详细教程、问题处理、卸载(亲测可用)