Browse Source

修改居民收货地址相关接口

mengkang 5 years ago
parent
commit
0cc2700e63

+ 2 - 21
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/expressage/ExpressageEndpoint.java

@ -33,26 +33,6 @@ public class ExpressageEndpoint extends EnvelopRestEndpoint {
    private PrescriptionExpressageService sfexpressService;
    private String successxml = "<Response service='RoutePushService'><Head>OK</Head></Response>";
    private String failedxml = "<Response service='RoutePushService'><Head>ERR</Head><ERROR code='-1'>系统发生数据错误或运行时异常</ERROR></Response>";
    @RequestMapping(value="/routepushservice",method = RequestMethod.POST)
    @ApiOperation("接受顺丰推送过来的路由信息")
    public Envelop SFRoutePushService (
            @ApiParam(name="content", value="入参报文") @RequestParam(value = "content",required = true) String content){
        try {
            content = URLDecoder.decode(content,"utf-8");
            logger.info("顺丰路由信息推送,xml="+content);
            sfexpressService.SFRoutePushService(content);
            return success(successxml);
        }catch (Exception e){
            logger.error("接收顺丰路由信息推送失败,入参xml:"+content);
            //日志文件中记录异常信息
            //返回接口异常信息处理结果
            return failed(failedxml);
        }
    }
    @RequestMapping(value="/sfrouteserviceSearch",method = RequestMethod.GET)
    @ApiOperation("通过门诊编号查询顺丰物流派送记录")
    public Envelop SFRouteServiceSearch(@ApiParam(name="outpatientId", value="门诊编号") @RequestParam(value = "outpatientId",required = true) String outpatientId){
@ -95,7 +75,7 @@ public class ExpressageEndpoint extends EnvelopRestEndpoint {
    @RequestMapping(value = "/sforderfilterservice", method = RequestMethod.GET)
    @ApiOperation("查询派送地址是否属于顺丰的派送范围")
    public Envelop SFOrderFilterService(
            @ApiParam(name = "d_address", value = "派送地址", defaultValue = "福建省厦门市思明区软件园二期望海路55号")
            @ApiParam(name = "d_address", value = "派送地址")
            @RequestParam(value = "d_address", required = true) String d_address){
        try {
@ -200,4 +180,5 @@ public class ExpressageEndpoint extends EnvelopRestEndpoint {
        }
    }
}

+ 21 - 12
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/expressage/WlyyPatientExpressageAddrEndpoint.java

@ -36,16 +36,20 @@ public class WlyyPatientExpressageAddrEndpoint extends EnvelopRestEndpoint {
    private WlyyPatientExpressageAddrService wlyyPatientExpressageAddrService;
    @PostMapping(value = BaseHospitalRequestMapping.WlyyPatientExpressageAddr.CREATE)
    @ApiOperation(value = "创建")
    @ApiOperation(value = "新增地址")
    public Envelop create(
            @ApiParam(name = "jsonData", value = "Json数据", required = true)
            @RequestParam String jsonData) throws Exception {
        StringBuilder log = new StringBuilder();
        WlyyPatientExpressageAddrDO addrDO = wlyyPatientExpressageAddrService.createAddr(jsonData, log);
        if (!StringUtils.isEmpty(log.toString())) {
            return failed(log.toString());
            @RequestParam String jsonData) {
        try {
            WlyyPatientExpressageAddrDO addrDO = wlyyPatientExpressageAddrService.createAddr(jsonData);
            if (addrDO == null){
                return failed("新增地址失败,新增数据为空");
            }
            return success(addrDO);
        }catch (Exception e){
            return failed("新增地址失败,"+e.getMessage());
        }
        return success(addrDO);
    }
    @PostMapping(value = BaseHospitalRequestMapping.WlyyPatientExpressageAddr.DELETE)
@ -62,12 +66,17 @@ public class WlyyPatientExpressageAddrEndpoint extends EnvelopRestEndpoint {
    public Envelop setAddrDefault(
            @ApiParam(name = "patient", value = "居民code", required = true) @RequestParam(value = "patient") String patient,
            @ApiParam(name = "addrId", value = "当前地址id", required = true) @RequestParam(value = "addrId") String addrId) {
        StringBuilder error = null;
        wlyyPatientExpressageAddrService.setAddrDefault(patient, addrId, error);
        if (null != error && !StringUtils.isEmpty(error.toString())) {
            return failed("设置默认地址失败:" + error.toString());
        try {
            Object result = wlyyPatientExpressageAddrService.setAddrDefault(patient, addrId);
            if (!"OK".equals(result.toString())) {
                return failed("设置默认地址失败,"+result);
            }
            return success("设置默认地址成功");
        }catch (Exception e){
            return failed("设置默认地址失败,"+e.getMessage());
        }
        return success("设置默认地址成功");
    }
    @PostMapping(value = BaseHospitalRequestMapping.WlyyPatientExpressageAddr.hasDefault)

+ 26 - 42
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/service/consult/WlyyPatientExpressageAddrService.java

@ -3,6 +3,7 @@ package com.yihu.jw.hospital.service.consult;
import com.yihu.jw.entity.hospital.prescription.WlyyPatientExpressageAddrDO;
import com.yihu.jw.hospital.dao.consult.WlyyPatientExpressageAddrDao;
import com.yihu.jw.utils.EntityUtils;
import com.yihu.jw.utils.StringUtil;
import com.yihu.mysql.query.BaseJpaService;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
@ -35,35 +36,29 @@ public class WlyyPatientExpressageAddrService extends BaseJpaService<WlyyPatient
     * 新增居民收货地址
     *
     * @param jsonData
     * @param error
     * @return
     */
    public WlyyPatientExpressageAddrDO createAddr(String jsonData, StringBuilder error) {
    public WlyyPatientExpressageAddrDO createAddr(String jsonData) {
        WlyyPatientExpressageAddrDO addrDO = null;
        try {
        if (!StringUtil.isEmpty(jsonData)){
            addrDO = EntityUtils.jsonToEntity(jsonData, WlyyPatientExpressageAddrDO.class);
        } catch (Exception e) {
            error = new StringBuilder();
            error.append(e.getMessage());
            return null;
        }
        if(1 == addrDO.getIsDefault()){
            boolean defaultAddrExist = patientExpressageAddrDao.existsByPatientAndIsDefault(addrDO.getPatient(),1);
            if(defaultAddrExist){
            if(1 == addrDO.getIsDefault()){
                List<WlyyPatientExpressageAddrDO> defaultAddrDOList = patientExpressageAddrDao.queryByPatientAndIsDefault(addrDO.getPatient(),1);
                WlyyPatientExpressageAddrDO defaultAddrDO = defaultAddrDOList.get(0);
                defaultAddrDO.setIsDefault(0);
                this.save(defaultAddrDO);
                if(defaultAddrDOList != null && defaultAddrDOList.size()>0){
                    WlyyPatientExpressageAddrDO olddefaultAddr = defaultAddrDOList.get(0);
                    olddefaultAddr.setIsDefault(0);
                    this.save(olddefaultAddr);
                }
            }
            this.save(addrDO);
        }
        this.save(addrDO);
        return addrDO;
    }
     public boolean hasDefault(String patient){
        if(StringUtils.isEmpty(patient)){
            return true;
            return false;
        }
        return patientExpressageAddrDao.existsByPatientAndIsDefault(patient,1);
     }
@ -74,33 +69,22 @@ public class WlyyPatientExpressageAddrService extends BaseJpaService<WlyyPatient
     * @return
     */
    @Transactional(rollbackFor = Exception.class)
    public void setAddrDefault(String patient,String id,StringBuilder error){
        WlyyPatientExpressageAddrDO addrDO = patientExpressageAddrDao.findOne(id);
        if(null == addrDO){
            error = new StringBuilder();
            error.append("当前地址不存在!");
            return ;
    public Object setAddrDefault(String patient,String id){
        StringBuilder error = new StringBuilder("OK");
        WlyyPatientExpressageAddrDO newDefaultAddr = patientExpressageAddrDao.findOne(id);
        if(null == newDefaultAddr){
            error.replace(0,2,"当前地址不存在!");
            return error;
        }
        boolean defaultAddrExist = patientExpressageAddrDao.existsByPatientAndIsDefault(patient,1);
        if(defaultAddrExist){
            List<WlyyPatientExpressageAddrDO> defaultAddrDOList = patientExpressageAddrDao.queryByPatientAndIsDefault(patient,1);
            if(defaultAddrDOList != null && defaultAddrDOList.size()>0){
                for (WlyyPatientExpressageAddrDO wlyyPatientExpressageAddrDO:defaultAddrDOList) {
                    wlyyPatientExpressageAddrDO.setIsDefault(0);
                    this.save(wlyyPatientExpressageAddrDO);
                }
//
//                WlyyPatientExpressageAddrDO defaultAddrDO = defaultAddrDOList.get(0);
//                if(StringUtils.equals(addrDO.getId(),defaultAddrDO.getId())){
//                    return;
//                }
//                defaultAddrDO.setIsDefault(0);
                addrDO.setIsDefault(1);
                this.save(addrDO);
            }
            return ;
        List<WlyyPatientExpressageAddrDO> defaultAddrDOList = patientExpressageAddrDao.queryByPatientAndIsDefault(patient,1);
        if(defaultAddrDOList != null && defaultAddrDOList.size()>0){
            WlyyPatientExpressageAddrDO oldDefaultAddr = defaultAddrDOList.get(0);
            oldDefaultAddr.setIsDefault(0);
            this.save(oldDefaultAddr);
            newDefaultAddr.setIsDefault(1);
            this.save(newDefaultAddr);
        }
        return error;
    }
}