瀏覽代碼

服务包

Trick 6 年之前
父節點
當前提交
e7a0284923

+ 166 - 0
svr/svr-patient/src/main/java/com/yihu/jw/patient/service/servicePackage/PackageService.java

@ -1,9 +1,27 @@
package com.yihu.jw.patient.service.servicePackage;
import com.yihu.jw.entity.base.servicePackage.ServicePackageDO;
import com.yihu.jw.patient.dao.servicePackage.ServicePackageDao;
import com.yihu.jw.patient.useragent.UserAgent;
import com.yihu.jw.restmodel.base.doctor.BaseDoctorOrgVO;
import com.yihu.jw.restmodel.base.org.OrgDistanceVO;
import com.yihu.jw.restmodel.patient.signPackage.ServicePackageVO;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.rm.base.BaseRequestMapping;
import com.yihu.jw.rm.patient.PatientRequestMapping;
import io.swagger.models.auth.In;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.protocol.RequestUserAgent;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
 * Created by Trick on 2018/11/27.
 */
@ -13,5 +31,153 @@ public class PackageService {
    @Autowired
    private JdbcTemplate jdbcTemplate;
    @Autowired
    private UserAgent userAgent;
    @Autowired
    private ServicePackageDao servicePackageDao;
    public MixEnvelop findPackageService(String city,String labelCode,Integer page,Integer size){
        String totalSql ="SELECT " +
                " count(1) as total " +
                " FROM " +
                " base_service_package p " ;
        if(StringUtils.isNotBlank(labelCode)){
            totalSql +=" JION base_package_label_info l ON l.service_package_id = p.id ";
        }
        totalSql +=  " WHERE " +
                " p.city_code = '"+city+"' ";
        List<Map<String, Object>> rstotal = jdbcTemplate.queryForList(totalSql);
        Long count = 0L;
        if (rstotal != null && rstotal.size() > 0) {
            count = (Long) rstotal.get(0).get("total");
        }
        String sql ="SELECT " +
                " p.id, " +
                " p.saas_id AS saasId, " +
                " p.province_code AS provinceCode, " +
                " p.province_name AS provinceName, " +
                " p.city_code AS cityCode, " +
                " p.city_name AS cityName, " +
                " p.introduce AS introduce, " +
                " p.`name` , " +
                " p.num , " +
                " p.price, " +
                " p.level " +
                " FROM " +
                " base_service_package p " ;
                if(StringUtils.isNotBlank(labelCode)){
                    sql+=" JION base_package_label_info l ON l.service_package_id = p.id ";
                }
        sql+=  " WHERE " +
               " p.city_code = '"+city+"' " +
                " LIMIT " + (page - 1) * size + "," + size + "";
        List<ServicePackageVO> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper(ServicePackageVO.class));
        return MixEnvelop.getSuccessListWithPage(PatientRequestMapping.SignPackage.api_success, list, page, size, count);
    }
    public MixEnvelop findOrgByPackageId(String packageId,Double latitude,Double longitude,Integer page,Integer size){
        String totalSql ="SELECT " +
                " count(1) as total" +
                " FROM " +
                " base_org o " +
                " JOIN base_package_org po ON o.`code` = po.org_code " +
                " WHERE " +
                " po.service_package_id = '"+packageId+"' " +
                " AND o.del= '1' " ;
        List<Map<String, Object>> rstotal = jdbcTemplate.queryForList(totalSql);
        Long count = 0L;
        if (rstotal != null && rstotal.size() > 0) {
            count = (Long) rstotal.get(0).get("total");
        }
        String sql ="SELECT " +
                " o.code, " +
                " o.name, ";
        if(latitude!=null&&longitude!=null){
            sql+= " ROUND( " +
                    "  6378.138 * 2 * ASIN( " +
                    "   SQRT( " +
                    "    POW( " +
                    "     SIN( " +
                    "      ( " +
                    "       "+longitude+" * PI() / 180 - o.latitude * PI() / 180 " +
                    "      ) / 2 " +
                    "     ), " +
                    "     2 " +
                    "    ) + COS("+longitude+" * PI() / 180) * COS(o.latitude * PI() / 180) * POW( " +
                    "     SIN( " +
                    "      ( " +
                    "       "+latitude+" * PI() / 180 - o.longitude * PI() / 180 " +
                    "      ) / 2 " +
                    "     ), " +
                    "     2 " +
                    "    ) " +
                    "   ) " +
                    "  ) * 1000 " +
                    " ) AS distance ";
        }
        sql+=   " o.address, "+
                " FROM " +
                " base_org o " +
                " JOIN base_package_org po ON o.`code` = po.org_code " +
                " WHERE " +
                " po.service_package_id = '"+packageId+"' " +
                " AND o.del= '1' " ;
        if(latitude!=null&&longitude!=null){
            sql+=" ORDER BY distance ASC ";
        }
        sql+=    " LIMIT " + (page - 1) * size + "," + size + "";
        List<OrgDistanceVO> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper(OrgDistanceVO.class));
        return MixEnvelop.getSuccessListWithPage(PatientRequestMapping.SignPackage.api_success, list, page, size, count);
    }
    public MixEnvelop getDoctorByOrg(String org, Integer page, Integer size){
        String totalSql ="SELECT " +
                " count(1) as total" +
                " FROM " +
                " base_doctor d " +
                " JOIN base_doctor_hospital h ON h.doctor_code = d.id " +
                " WHERE " +
                " h.org_code = '"+org+"'";
        List<Map<String, Object>> rstotal = jdbcTemplate.queryForList(totalSql);
        Long count = 0L;
        if (rstotal != null && rstotal.size() > 0) {
            count = (Long) rstotal.get(0).get("total");
        }
        String sql ="SELECT " +
                " d.`name`, " +
                " d.id, " +
                " d.job_title_code AS jobTitleCode, " +
                " d.job_title_name AS jobTitleName, " +
                " h.dept_name AS deptName, " +
                " h.dept_code AS deptCode, " +
                " d.introduce," +
                " d.photo " +
                " FROM " +
                " base_doctor d " +
                " JOIN base_doctor_hospital h ON h.doctor_code = d.id " +
                " WHERE " +
                " h.org_code = '"+org+"'";
        sql+=    " LIMIT " + (page - 1) * size + "," + size + "";
        List<BaseDoctorOrgVO> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper(OrgDistanceVO.class));
        return MixEnvelop.getSuccessListWithPage(PatientRequestMapping.SignPackage.api_success, list, page, size, count);
    }
    public Envelop signPackage(ServicePackageDO servicePackageDO){
        servicePackageDO.setCreater(userAgent.getUID());
        servicePackageDO.setCreateTime(new Date());
        servicePackageDao.save(servicePackageDO);
        return Envelop.getSuccess(PatientRequestMapping.SignPackage.api_success);
    }
}

+ 90 - 0
svr/svr-patient/src/main/java/com/yihu/jw/patient/useragent/UserAgent.java

@ -0,0 +1,90 @@
package com.yihu.jw.patient.useragent;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
/**
 * 用户头部信息获取
 * Created by Trick on 2018/10/30.
 */
@Component
public class UserAgent {
    /**
     * 获取当前登录人ID
     * @return
     */
    public String getUID() {
        try {
            HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
            String userAgent = request.getHeader("userAgent");
            if (StringUtils.isEmpty(userAgent)) {
                userAgent = request.getHeader("User-Agent");
            }
            JSONObject json = JSON.parseObject(userAgent);
            return json.getString("uid");
        } catch (Exception e) {
            return null;
        }
    }
    /**
     * 获取登录人姓名
     * @return
     */
    public String getUNAME(){
        try {
            HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
            String userAgent = request.getHeader("userAgent");
            if (StringUtils.isEmpty(userAgent)) {
                userAgent = request.getHeader("User-Agent");
            }
            JSONObject json = JSON.parseObject(userAgent);
            String info = json.getString("uname");
            String uname = java.net.URLDecoder.decode(info,"UTF-8");
            return uname;
        } catch (Exception e) {
            return null;
        }
    }
    /**
     * 获取角色ID
     * @return
     */
    public String getROLEID() {
        try {
            HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
            String userAgent = request.getHeader("userAgent");
            if (StringUtils.isEmpty(userAgent)) {
                userAgent = request.getHeader("User-Agent");
            }
            JSONObject json = JSON.parseObject(userAgent);
            return json.getString("roleid");
        } catch (Exception e) {
            return null;
        }
    }
    public JSONObject getUserAgent(){
        try{
            HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
            String userAgent = request.getHeader("userAgent");
            JSONObject user = JSON.parseObject(userAgent);
            return user;
        }catch (Exception e){
            return null;
        }
    }
}