package com.matrix.system.hiveErp.action; import com.alibaba.fastjson.JSONObject; import com.matrix.core.constance.MatrixConstance; import com.matrix.core.constance.SystemMessageCode; import com.matrix.core.pojo.PaginationVO; import com.matrix.core.constance.SystemErrorCode; import com.matrix.core.anotations.RemoveRequestToken; import com.matrix.core.tools.*; import com.matrix.system.common.bean.SysUsers; import com.matrix.system.hive.action.util.QueryUtil; import com.matrix.system.hive.dao.SysSmsTemplateDao; import com.matrix.system.hive.plugin.message.StringUtil; import com.matrix.system.hive.plugin.util.CollectionUtils; import org.springframework.stereotype.Controller; import com.matrix.core.exception.GlobleException; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import com.matrix.core.anotations.SaveRequestToken; import com.matrix.core.pojo.AjaxResult; import org.springframework.beans.factory.annotation.Autowired; import com.matrix.system.hive.bean.SysSmsTemplate; import org.springframework.web.servlet.ModelAndView; import java.util.Collection; import java.util.List; import java.util.Map; /** * @author wzy * @description 短信模板表 * @date 2020-03-15 18:42 */ @Controller @RequestMapping(value = "admin/sysSmsTemplate") public class SysSmsTemplateAction { @Autowired private SysSmsTemplateDao sysSmsTemplateDao; @Autowired private SmsUtils smsUtils; //记录编辑前的值Before_Edit_Value public static final String BEV = "SysSmsTemplate_BEV"; /** * 列表显示 */ @RequestMapping(value = "/showList") public @ResponseBody AjaxResult showList(SysSmsTemplate sysSmsTemplate, PaginationVO pageVo) { if (pageVo == null) { pageVo = new PaginationVO(); } SysUsers users = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); sysSmsTemplate.setCompanyId(users.getCompanyId()); QueryUtil.setQueryLimitCom(sysSmsTemplate); List dataList = sysSmsTemplateDao.selectInPage(sysSmsTemplate, pageVo); if (CollectionUtils.isNotEmpty(dataList)) { for (SysSmsTemplate smsTemplate : dataList) { if (SysSmsTemplate.SMS_STATUS_DOING.equals(smsTemplate.getStStatus())) { String result = smsUtils.querySmsTemplate(smsTemplate.getStCode()); JSONObject object = JSONObject.parseObject(result); if ("OK".equals(object.getString("Code"))) { Integer status = object.getInteger("TemplateStatus"); if (SysSmsTemplate.SMS_STATUS_Y.equals(status)) { smsTemplate.setStStatus(status); sysSmsTemplateDao.updateByModel(smsTemplate); } else if (SysSmsTemplate.SMS_STATUS_N.equals(status)) { smsTemplate.setStStatus(status); smsTemplate.setStReason(object.getString("Reason")); sysSmsTemplateDao.updateByModel(smsTemplate); } } } } } AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS, dataList, sysSmsTemplateDao.selectTotalRecord(sysSmsTemplate)); return result; } /** * 新增 */ @RemoveRequestToken @RequestMapping(value = "/addSysSmsTemplate") public @ResponseBody AjaxResult addSysSmsTemplate(SysSmsTemplate sysSmsTemplate) { SysUsers users = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); sysSmsTemplate.setCompanyId(users.getCompanyId()); sysSmsTemplate.setStTemplate(sysSmsTemplate.getStTemplate() + "回T退订"); String code = smsUtils.addSmsTemplate(SysSmsTemplate.SMS_TYPE_PROMOTE, sysSmsTemplate.getStName(), sysSmsTemplate.getStTemplate(), sysSmsTemplate.getStRemark()); sysSmsTemplate.setStCode(code); sysSmsTemplate.setStStatus(SysSmsTemplate.SMS_STATUS_DOING); int i = sysSmsTemplateDao.insert(sysSmsTemplate); if (i > 0) { return new AjaxResult(AjaxResult.STATUS_SUCCESS, SystemMessageCode.ADD_SUCCES, "短信模板表"); } else { throw new GlobleException(SystemErrorCode.DATA_ADD_FAIL); } } /** * 修改 */ @RemoveRequestToken @RequestMapping(value = "/modifySysSmsTemplate") public @ResponseBody AjaxResult modifySysSmsTemplate(SysSmsTemplate newSysSmsTemplate) { SysSmsTemplate oldSysSmsTemplate = WebUtil.getSessionAttribute(BEV); int i = 0; Map modifyMap = null; try { if (!ModelUtils.isModified(oldSysSmsTemplate, newSysSmsTemplate)) { i = MatrixConstance.DML_SUCCESSS; } modifyMap = ModelUtils.comparePojo2Map(oldSysSmsTemplate, newSysSmsTemplate); } catch (Exception e) { throw new GlobleException(SystemErrorCode.DATA_UPDATE_FAIL, e, newSysSmsTemplate); } if (modifyMap.size() > 0) { modifyMap.put("id", oldSysSmsTemplate.getId()); sysSmsTemplateDao.updateByMap(modifyMap); } i = MatrixConstance.DML_SUCCESSS; WebUtil.removeSessionAttribute(BEV); if (i > 0) { return new AjaxResult(AjaxResult.STATUS_SUCCESS, SystemMessageCode.UPDATE_SUCCES, "短信模板表"); } else { throw new GlobleException(SystemErrorCode.DATA_UPDATE_FAIL); } } /** * 进入修改界面 */ @SaveRequestToken @RequestMapping(value = "/editForm") public ModelAndView editForm(Long id) { SysSmsTemplate sysSmsTemplate = new SysSmsTemplate(); ModelAndView modelAndView = new ModelAndView("admin/hive-erp/sms/sysSmsTemplate-form"); if (id != null) { sysSmsTemplate = sysSmsTemplateDao.selectById(id); WebUtil.setSessionAttribute(BEV, sysSmsTemplate); } modelAndView.addObject("obj", sysSmsTemplate); return modelAndView; } /** * 删除 */ @RequestMapping(value = "/del") public @ResponseBody AjaxResult del(String keys) { List ids = StringUtils.strToCollToString(keys, ","); SysSmsTemplate sysSmsTemplate = sysSmsTemplateDao.selectById(Long.parseLong(keys)); if (StringUtils.isNotBlank(sysSmsTemplate.getStCode())) { String result = smsUtils.deleteSmsTemplate(sysSmsTemplate.getStCode()); if (!"OK".equals(result)) { return AjaxResult.buildFailInstance("删除失败"); } } int i = sysSmsTemplateDao.deleteByIds(ids); if (i > 0) { return new AjaxResult(AjaxResult.STATUS_SUCCESS, SystemMessageCode.DELETE_SUCCES, i); } else { throw new GlobleException(SystemErrorCode.DATA_DELETE_FAIL); } } /** * 查询所有审核通过的短信模板 * * @return */ @RequestMapping(value = "/findAllSmsTemplate") @ResponseBody public AjaxResult findAllSmsTemplate() { SysUsers users = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); SysSmsTemplate sysSmsTemplate = new SysSmsTemplate(); sysSmsTemplate.setStStatus(SysSmsTemplate.SMS_STATUS_Y); sysSmsTemplate.setCompanyId(users.getCompanyId()); return AjaxResult.buildSuccessInstance(sysSmsTemplateDao.selectByModel(sysSmsTemplate)); } }