package com.ruoyi.web.controller.smartor.tools; 
 | 
  
 | 
import com.alibaba.fastjson.JSON; 
 | 
import com.alibaba.fastjson.JSONArray; 
 | 
import com.alibaba.fastjson.JSONObject; 
 | 
import com.ruoyi.common.annotation.Log; 
 | 
import com.ruoyi.common.annotation.RepeatSubmit; 
 | 
import com.ruoyi.common.core.controller.BaseController; 
 | 
import com.ruoyi.common.core.domain.AjaxResult; 
 | 
import com.ruoyi.common.core.page.TableDataInfo; 
 | 
import com.ruoyi.common.enums.BusinessType; 
 | 
import com.ruoyi.common.utils.poi.ExcelUtil; 
 | 
import com.ruoyi.common.utils.sms.smsUtils; 
 | 
import com.smartor.domain.BaseSmsRequest; 
 | 
import com.smartor.domain.BaseSmsaccount; 
 | 
import com.smartor.domain.BatchBaseSmsRequest; 
 | 
import com.smartor.domain.TemplateSmsRequest; 
 | 
import com.smartor.service.IBaseSmsaccountService; 
 | 
import io.swagger.annotations.Api; 
 | 
import io.swagger.annotations.ApiOperation; 
 | 
import io.swagger.annotations.ApiParam; 
 | 
import org.springframework.beans.factory.annotation.Autowired; 
 | 
import org.springframework.beans.factory.annotation.Value; 
 | 
import org.springframework.security.access.prepost.PreAuthorize; 
 | 
import org.springframework.web.bind.annotation.*; 
 | 
  
 | 
import javax.servlet.http.HttpServletResponse; 
 | 
import java.util.List; 
 | 
  
 | 
/** 
 | 
 * 短信账号Controller 
 | 
 * 
 | 
 * @author smartor 
 | 
 * @date 2023-03-06 
 | 
 */ 
 | 
@Api(description = "短信") 
 | 
@RestController 
 | 
@RequestMapping("/smartor/smsaccount") 
 | 
public class BaseSmsaccountController extends BaseController { 
 | 
    @Autowired 
 | 
    private IBaseSmsaccountService baseSmsaccountService; 
 | 
  
 | 
    @Value("${visitHosp}") 
 | 
    private Integer visitHosp; 
 | 
  
 | 
    @Value("${xhsmsPath}") 
 | 
    private String xhsmsPath; 
 | 
  
 | 
    @Value("${xhsmsAccount}") 
 | 
    private String xhsmsAccount; 
 | 
  
 | 
    @Value("${xhsmsPwd}") 
 | 
    private String xhsmsPwd; 
 | 
  
 | 
    /** 
 | 
     * 查询短信账号列表 
 | 
     */ 
 | 
    //@PreAuthorize("@ss.hasPermi('smartor:smsaccount:list')") 
 | 
   @PostMapping("/list") 
 | 
    public TableDataInfo list(@RequestBody BaseSmsaccount baseSmsaccount) { 
 | 
        startPage(); 
 | 
        List<BaseSmsaccount> list = baseSmsaccountService.selectBaseSmsaccountList(baseSmsaccount); 
 | 
        return getDataTable(list); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 导出短信账号列表 
 | 
     */ 
 | 
    //@PreAuthorize("@ss.hasPermi('smartor:smsaccount:export')") 
 | 
    @Log(title = "短信账号", businessType = BusinessType.EXPORT) 
 | 
    @PostMapping("/export") 
 | 
    public void export(HttpServletResponse response, BaseSmsaccount baseSmsaccount) { 
 | 
        List<BaseSmsaccount> list = baseSmsaccountService.selectBaseSmsaccountList(baseSmsaccount); 
 | 
        ExcelUtil<BaseSmsaccount> util = new ExcelUtil<BaseSmsaccount>(BaseSmsaccount.class); 
 | 
        util.exportExcel(response, list, "短信账号数据"); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 获取短信账号详细信息 
 | 
     */ 
 | 
    //@PreAuthorize("@ss.hasPermi('smartor:smsaccount:query')") 
 | 
    @GetMapping(value = "/{smsacountid}") 
 | 
    public AjaxResult getInfo(@PathVariable("smsacountid") Long smsacountid) { 
 | 
        return success(baseSmsaccountService.selectBaseSmsaccountBySmsacountid(smsacountid)); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 新增短信账号 
 | 
     */ 
 | 
    //@PreAuthorize("@ss.hasPermi('smartor:smsaccount:add')") 
 | 
    @Log(title = "短信账号", businessType = BusinessType.INSERT) 
 | 
    @PostMapping 
 | 
    public AjaxResult add(@RequestBody BaseSmsaccount baseSmsaccount) { 
 | 
        return toAjax(baseSmsaccountService.insertBaseSmsaccount(baseSmsaccount)); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 修改短信账号 
 | 
     */ 
 | 
    //@PreAuthorize("@ss.hasPermi('smartor:smsaccount:edit')") 
 | 
    @Log(title = "短信账号", businessType = BusinessType.UPDATE) 
 | 
    @PostMapping("/edit") 
 | 
    public AjaxResult edit(@RequestBody BaseSmsaccount baseSmsaccount) { 
 | 
        return toAjax(baseSmsaccountService.updateBaseSmsaccount(baseSmsaccount)); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 删除短信账号 
 | 
     */ 
 | 
    //@PreAuthorize("@ss.hasPermi('smartor:smsaccount:remove')") 
 | 
    @Log(title = "短信账号", businessType = BusinessType.DELETE) 
 | 
    @GetMapping("/remove/{smsacountids}") 
 | 
    public AjaxResult remove(@PathVariable Long[] smsacountids) { 
 | 
        return toAjax(baseSmsaccountService.deleteBaseSmsaccountBySmsacountids(smsacountids)); 
 | 
    } 
 | 
  
 | 
  
 | 
    /** 
 | 
     * 短信发送 
 | 
     */ 
 | 
    @ApiOperation("短信发送") 
 | 
    @PostMapping("/sendMsg") 
 | 
    @RepeatSubmit 
 | 
    public AjaxResult sendMsg(@RequestBody BaseSmsRequest baseSmsRequest) { 
 | 
        String sendMsg=""; 
 | 
        if(visitHosp.equals("3")) { 
 | 
            try{ 
 | 
                JSONObject jsTemp = JSON.parseObject(baseSmsRequest.getTemplateParam()); 
 | 
                String content=jsTemp.getString("name"); 
 | 
                sendMsg= smsUtils.sendSms(xhsmsPath,xhsmsAccount,xhsmsPwd,baseSmsRequest.getPhoneNumber(),content); 
 | 
            } catch (Exception ex) { 
 | 
                return AjaxResult.error(ex.getMessage()) ; 
 | 
            } 
 | 
            return AjaxResult.success(sendMsg); 
 | 
        }else { 
 | 
            if (baseSmsaccountService.sendMsg(baseSmsRequest) == null) { 
 | 
                return error(); 
 | 
            } 
 | 
            return success(baseSmsaccountService.sendMsg(baseSmsRequest)); 
 | 
        } 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 批量短信发送 
 | 
     */ 
 | 
    @ApiOperation("批量短信发送") 
 | 
    @PostMapping("/batchSendMsg") 
 | 
    public AjaxResult batchSendMsg(@RequestBody BatchBaseSmsRequest batchBaseSmsRequest) { 
 | 
        if (baseSmsaccountService.batchSendMsg(batchBaseSmsRequest) == null) { 
 | 
            return error(); 
 | 
        } 
 | 
        return success(baseSmsaccountService.batchSendMsg(batchBaseSmsRequest)); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 新增短信模板 
 | 
     * 
 | 
     * @param templateSmsRequest 
 | 
     * @return 
 | 
     */ 
 | 
    @PostMapping("/addSmsTemplate") 
 | 
    public AjaxResult addSmsTemplate(@RequestBody TemplateSmsRequest templateSmsRequest) { 
 | 
        if (baseSmsaccountService.addSmsTemplate(templateSmsRequest) == null) { 
 | 
            return error(); 
 | 
        } 
 | 
        return success(baseSmsaccountService.addSmsTemplate(templateSmsRequest)); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 删除短信模板 
 | 
     * 
 | 
     * @param templateCode 
 | 
     * @return 
 | 
     */ 
 | 
    @GetMapping("/delSmsTemplate") 
 | 
    public AjaxResult delSmsTemplate(@ApiParam("templateCode") String templateCode) { 
 | 
        if (baseSmsaccountService.delSmsTemplate(templateCode) == null) { 
 | 
            return error(); 
 | 
        } 
 | 
        return success(baseSmsaccountService.delSmsTemplate(templateCode)); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 修改审核未通过的模板 
 | 
     * 
 | 
     * @param templateSmsRequest 
 | 
     * @return 
 | 
     */ 
 | 
    @PostMapping("/updateSmsTemplate") 
 | 
    public AjaxResult updateSmsTemplate(@RequestBody TemplateSmsRequest templateSmsRequest) { 
 | 
        if (baseSmsaccountService.updateSmsTemplate(templateSmsRequest) == null) { 
 | 
            return error(); 
 | 
        } 
 | 
        return success(baseSmsaccountService.updateSmsTemplate(templateSmsRequest)); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 查询短信模板列表 
 | 
     * 
 | 
     * @param pageIndex pageSize 
 | 
     * @return 
 | 
     */ 
 | 
    @ApiOperation("查询短信模板") 
 | 
    @GetMapping("/querySmsTemplate") 
 | 
    public AjaxResult querySmsTemplateList(@ApiParam("pageIndex") Integer pageIndex, @ApiParam("pageSize") Integer pageSize) { 
 | 
        if (baseSmsaccountService.querySmsTemplate(pageIndex, pageSize) == null) { 
 | 
            return error(); 
 | 
        } 
 | 
        return success(baseSmsaccountService.querySmsTemplate(pageIndex, pageSize)); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 查询短信模板审核状态 
 | 
     * 
 | 
     * @param templateCode 
 | 
     * @return 
 | 
     */ 
 | 
    @GetMapping("/querySmsTemplateStatus") 
 | 
    public AjaxResult querySmsTemplateStatus(@ApiParam("templateCode") String templateCode) { 
 | 
        if (baseSmsaccountService.querySmsTemplateStatus(templateCode) == null) { 
 | 
            return error(); 
 | 
        } 
 | 
        return success(baseSmsaccountService.querySmsTemplateStatus(templateCode)); 
 | 
    } 
 | 
  
 | 
} 
 |