yxh
4 天以前 d42096fd55c4b0caf84bb4f208b4e17534e158c1
Merge branch 'master' of http://116.62.18.175:6699/r/opo-qd
已修改9个文件
已添加4个文件
159 ■■■■■ 文件已修改
ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceTransportController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/target/classes/com/ruoyi/web/controller/common/SmsController.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatecompletioninfo.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/DonationCompletionBaseInfoDTO.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/SmsDTO.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ServiceDonatecompletioninfoVO.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonateorganBaseServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceTransportFileServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceTransportServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/resources/mapper/project/ServiceDonatecompletioninfoMapper.xml 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessMapper.xml 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/target/classes/com/ruoyi/project/domain/dto/SmsDTO.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,89 @@
package com.ruoyi.web.controller.common;
import com.alibaba.fastjson2.JSON;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.http.HttpUtils;
import com.ruoyi.common.utils.sign.Md5Utils;
import com.ruoyi.project.domain.GiApi;
import com.ruoyi.project.domain.dto.ApiDTO;
import com.ruoyi.project.domain.dto.SmsDTO;
import com.ruoyi.project.service.IApiService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.util.Base64;
import java.util.List;
import java.util.Map;
@Slf4j
@Api(description = "短信服务")
@RestController
@RequestMapping("/sms")
public class SmsController {
    private String url="http://103.21.119.249:3131/http/send.aspx";
    private String loginName="qddxfsyy";
    private String passWord="Qyfy_0718";
    @ApiOperation("短信服务->发送短信")
    @PostMapping("/send")
    public AjaxResult getApiList(@RequestBody SmsDTO DTO) {
        if (ObjectUtils.isNotEmpty(DTO.getTel())&&ObjectUtils.isNotEmpty(DTO.getMessageContent())) {
            String key= keyForMd5(loginName.toLowerCase(),passWord.toLowerCase());
            key="5b2d0edb45ac3583543fbf55d8af1e6d";
            String content="{\"LoginName\":\""+loginName+"\",\"PassWord\":\""+passWord+"\"," +
                    "\"Key\":\""+key+"\"," +
                    "\"Tel\":\""+DTO.getTel()+"\",\"MessageContent\":\""+DTO.getMessageContent()+"\"}";
           String result= HttpUtils.sendPost(url, Base64.getEncoder().encodeToString(content.getBytes()) );
            return AjaxResult.success(result);
        } else {
            return AjaxResult.error("电话和消息不能为空");
        }
    }
    public String keyForMd5(String name, String pass)
    {
        return md5(md5(pass) + pass + md5(name));
    }
    public static String md5(String str) {
        return hashPasswordForStoring(str,"MD5");
    }
    public static String SHA1(String str) {
        return hashPasswordForStoring(str,"SHA1");
    }
    public static String hashPasswordForStoring(String password, String algorithm) {
        try {
            // 1. èŽ·å–å“ˆå¸Œç®—æ³•å®žä¾‹
            MessageDigest md = MessageDigest.getInstance(algorithm);
            // 2. å¯†ç è½¬ UTF-8 å­—节(和 .NET å®Œå…¨ä¸€è‡´ï¼‰
            byte[] passwordBytes = password.getBytes(StandardCharsets.UTF_8);
            // 3. è®¡ç®—哈希
            byte[] hashBytes = md.digest(passwordBytes);
            // 4. è½¬ä¸ºå¤§å†™åå…­è¿›åˆ¶å­—符串(和 .NET è¾“出格式一致)
            return bytesToHexUpperCase(hashBytes);
        } catch (NoSuchAlgorithmException e) {
            throw new RuntimeException("不支持的哈希算法: " + algorithm, e);
        }
    }
    private static String bytesToHexUpperCase(byte[] bytes) {
        StringBuilder sb = new StringBuilder();
        for (byte b : bytes) {
            // è½¬ä¸¤ä½å¤§å†™åå…­è¿›åˆ¶
            sb.append(String.format("%02X", b));
        }
        return sb.toString();
    }
}
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceTransportController.java
@@ -72,8 +72,7 @@
            //补充 é™„ä»¶
            ServiceTransportFile serviceTransportFile = new ServiceTransportFile();
            serviceTransportFile.setDelFlag(0);
            serviceTransportFile.setTransportId(transport.getReportId());
            serviceTransportFile.setCaseNo(transport.getCaseNo());
            serviceTransportFile.setTransportId(transport.getId());
            List<ServiceTransportFile> serviceTransportFiles = serviceTransportFileService.queryList(serviceTransportFile);
            transport.setAnnexfilesList(serviceTransportFiles);
        }
@@ -107,7 +106,7 @@
    public AjaxResult edit(@RequestBody ServiceTransport serviceTransport) {
        boolean b = serviceTransportService.updateById(serviceTransport);
        if (b) {
            serviceTransportFileService.updateList(serviceTransport.getAnnexfilesList(), serviceTransport.getReportId(), serviceTransport.getCaseNo(), getNickName());
            serviceTransportFileService.updateList(serviceTransport.getAnnexfilesList(), serviceTransport.getId(), serviceTransport.getCaseNo(), getNickName());
        }
        return toAjax(b);
    }
ruoyi-admin/target/classes/com/ruoyi/web/controller/common/SmsController.class
Binary files differ
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatecompletioninfo.java
@@ -134,5 +134,13 @@
    @ApiModelProperty("完成状态1待利用,2进行中,3捐献完成,4放弃")
    @Excel(name = "完成状态1待利用,2进行中,3捐献完成,4放弃")
    private String completeState;
    @ApiModelProperty("亲属关系")
    @Excel(name = "亲属关系")
    private String signfamilyrelations;
    @ApiModelProperty("亲属姓名")
    @Excel(name = "亲属姓名")
    private String relationname;
}
ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/DonationCompletionBaseInfoDTO.java
@@ -215,4 +215,13 @@
    @Excel(name = "完成状态1待利用,2进行中,3捐献完成,4放弃")
    private String completeState;
    @ApiModelProperty("亲属关系")
    @Excel(name = "亲属关系")
    private String signfamilyrelations;
    @ApiModelProperty("亲属姓名")
    @Excel(name = "亲属姓名")
    private String relationname;
}
ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/SmsDTO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package com.ruoyi.project.domain.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
@Data
@ToString
@NoArgsConstructor
@ApiModel("短信")
public class SmsDTO {
    @ApiModelProperty("电话号码")
     private String tel;
    @ApiModelProperty("电话号码")
    private String messageContent;
}
ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ServiceDonatecompletioninfoVO.java
@@ -139,5 +139,12 @@
    @Excel(name = "完成状态1待利用,2进行中,3捐献完成,4放弃")
    private String completeState;
    @ApiModelProperty("亲属关系")
    @Excel(name = "亲属关系")
    private String signfamilyrelations;
    @ApiModelProperty("亲属姓名")
    @Excel(name = "亲属姓名")
    private String relationname;
}
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonateorganBaseServiceImpl.java
@@ -152,7 +152,11 @@
            b = updateById(serviceDonateorganBase);
            if (b == true && CollectionUtils.isNotEmpty(serviceDonateorganBaseVO.getServiceDonateorganList())) {
                for (ServiceDonateorgan serviceDonateorgan : serviceDonateorganBaseVO.getServiceDonateorganList()) {
                    serviceDonateorganMapper.updateById(serviceDonateorgan);
                    if(ObjectUtils.isNotEmpty(serviceDonateorgan.getId()) ) {
                        serviceDonateorganMapper.updateById(serviceDonateorgan);
                    }else {
                        serviceDonateorganMapper.insert(serviceDonateorgan);
                    }
                }
            }
        }
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceTransportFileServiceImpl.java
@@ -77,9 +77,9 @@
    @Transactional(rollbackFor = Exception.class)
    @Override
    public Boolean updateList(List<ServiceTransportFile> annexfilesList, Long reportId,String caseNo,String updateName) {
    public Boolean updateList(List<ServiceTransportFile> annexfilesList, Long transportId,String caseNo,String updateName) {
        // å…ˆå°†æ•°æ®æŸ¥å‡ºæ¥
        List<ServiceTransportFile> list = list(new LambdaQueryWrapper<ServiceTransportFile>().eq(ServiceTransportFile::getTransportId, reportId));
        List<ServiceTransportFile> list = list(new LambdaQueryWrapper<ServiceTransportFile>().eq(ServiceTransportFile::getTransportId, transportId));
        // æå–现有记录的路径集合,用于高效比较
        Set<String> existingPaths = list.stream().map(file -> file.getFileName() != null ? file.getPath().trim() : "").filter(StringUtils::isNotEmpty).collect(Collectors.toSet());
@@ -103,7 +103,7 @@
        for (ServiceTransportFile serviceTransportFile : annexfilesList) {
            if (StringUtils.isNotEmpty(serviceTransportFile.getFileName()) && !existingPaths.contains(serviceTransportFile.getFileName().trim())) {
                serviceTransportFile.setId(null);
                serviceTransportFile.setTransportId(reportId);
                serviceTransportFile.setTransportId(transportId);
                serviceTransportFile.setCreateBy(updateName);
                serviceTransportFile.setUpdateTime(new Date());
                result &= save(serviceTransportFile);
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceTransportServiceImpl.java
@@ -58,7 +58,6 @@
                ServiceTransportFile serviceTransportFile = new ServiceTransportFile();
                serviceTransportFile.setDelFlag(0);
                serviceTransportFile.setTransportId(serviceTransport1.getId());
                serviceTransportFile.setCaseNo(serviceTransport1.getCaseNo());
                List<ServiceTransportFile> serviceTransportFiles = serviceTransportFileService.queryList(serviceTransportFile);
                serviceTransport1.setAnnexfilesList(serviceTransportFiles);
ruoyi-project/src/main/resources/mapper/project/ServiceDonatecompletioninfoMapper.xml
@@ -208,7 +208,9 @@
        sdc.CoordinatedUserNameT AS coordinatedusernamet,
        sdc.AssessAnnex AS assessannex,
        sdc.DonateOrgan AS donateorgan,
        sdc.complete_state as completeState
        sdc.complete_state as completeState,
        sdc.signfamilyrelations,
        sdc.relationname
        FROM
        service_donatebaseinfo sd
        LEFT JOIN service_donatecompletioninfo sdc ON sd.ID = sdc.InfoID
ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessMapper.xml
@@ -158,7 +158,9 @@
        st.OrganDonation_Other as organdonationOther,
        st.DonationCategory as donationcategory,
        st.DeathJudgeAnnex as deathjudgeannex,
        st.witness_state as witnessState
        st.witness_state as witnessState,
        st.IsSpendRemember as isspendremember,
        st.IsRestoreRemains as isrestoreremains
        FROM
        service_donatebaseinfo sd
        LEFT JOIN service_donationwitness st ON sd.ID = st.InfoID
ruoyi-project/target/classes/com/ruoyi/project/domain/dto/SmsDTO.class
Binary files differ