Explorar o código

Merge branch 'dev' of http://192.168.1.220:10080/Amoy/patient-co-management into dev

chenyongxing %!s(int64=7) %!d(string=hai) anos
pai
achega
c501457ec5
Modificáronse 41 ficheiros con 367 adicións e 75 borrados
  1. 10 0
      common/common-entity/src/main/java/com/yihu/wlyy/entity/security/AccessToken.java
  2. 10 0
      common/common-entity/src/main/java/com/yihu/wlyy/entity/security/JsApiTicket.java
  3. 3 0
      patient-co-customization/patient-co-modern-medicine/src/main/java/com/yihu/mm/controller/WeixinBaseController.java
  4. 2 2
      patient-co-customization/patient-co-modern-medicine/src/main/java/com/yihu/mm/repository/wlyy/patient/AccessTokenDao.java
  5. 6 1
      patient-co-customization/patient-co-modern-medicine/src/main/java/com/yihu/mm/service/AccessTokenService.java
  6. 2 2
      patient-co/patient-co-doctor-assistant/src/main/java/com/yihu/wlyy/repository/security/AccessTokenDao.java
  7. 2 2
      patient-co/patient-co-doctor-assistant/src/main/java/com/yihu/wlyy/repository/security/JsapiTicketDao.java
  8. 3 0
      patient-co/patient-co-doctor-assistant/src/main/java/com/yihu/wlyy/service/app/family/FamilyMemberService.java
  9. 1 1
      patient-co/patient-co-doctor-assistant/src/main/java/com/yihu/wlyy/service/app/sign/SignWebService.java
  10. 8 2
      patient-co/patient-co-doctor-assistant/src/main/java/com/yihu/wlyy/service/common/account/AccessTokenService.java
  11. 4 0
      patient-co/patient-co-doctor-assistant/src/main/java/com/yihu/wlyy/web/WeixinBaseController.java
  12. 69 0
      patient-co/patient-co-doctor-assistant/src/main/java/com/yihu/wlyy/web/doctor/template/DoctorFeldsherTemplateController.java
  13. 3 0
      patient-co/patient-co-doctor-assistant/src/main/java/com/yihu/wlyy/wechat/util/WeiXinAccessTokenUtils.java
  14. 1 1
      patient-co/patient-co-doctor-assistant/src/main/resources/wechat/weixin_menu_feldsher.txt
  15. 3 2
      patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/job/PatientDiseaseConditionSynJob.java
  16. 2 2
      patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/repository/security/AccessTokenDao.java
  17. 2 2
      patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/repository/security/JsapiTicketDao.java
  18. 3 0
      patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/service/app/family/FamilyMemberService.java
  19. 8 2
      patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/service/common/account/AccessTokenService.java
  20. 4 0
      patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/web/WeixinBaseController.java
  21. 2 2
      patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/web/quota/JobController.java
  22. 3 0
      patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/wechat/util/WeiXinAccessTokenUtils.java
  23. 1 1
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/prescription/PrescriptionReviewedDao.java
  24. 2 2
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/security/AccessTokenDao.java
  25. 2 2
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/security/JsapiTicketDao.java
  26. 3 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/family/FamilyMemberService.java
  27. 13 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/health/PatientHealthIndexService.java
  28. 12 5
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/prescription/PrescriptionInfoService.java
  29. 2 1
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/sign/SignWebService.java
  30. 1 1
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/team/AdminTeamService.java
  31. 8 2
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/common/account/AccessTokenService.java
  32. 5 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/common/account/PatientService.java
  33. 1 1
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/third/jw/JwPrescriptionService.java
  34. 1 1
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/util/CommonUtil.java
  35. 21 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/util/ImUtill.java
  36. 9 11
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/util/SendPatientUtil.java
  37. 4 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/WeixinBaseController.java
  38. 80 17
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/health/DoctorHealthController.java
  39. 8 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/wx/WechatTagController.java
  40. 3 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/wechat/util/WeiXinAccessTokenUtils.java
  41. 40 10
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/wechat/util/WeiXinTagUtil.java

+ 10 - 0
common/common-entity/src/main/java/com/yihu/wlyy/entity/security/AccessToken.java

@ -14,12 +14,22 @@ public class AccessToken extends IdEntity {
    private String access_token;
    private String acc_id;
    private Long add_timestamp;
    private Long expires_in;
    private Date czrq;
    public String getAcc_id() {
        return acc_id;
    }
    public void setAcc_id(String acc_id) {
        this.acc_id = acc_id;
    }
    public String getAccess_token() {
        return access_token;
    }

+ 10 - 0
common/common-entity/src/main/java/com/yihu/wlyy/entity/security/JsApiTicket.java

@ -18,12 +18,22 @@ public class JsApiTicket extends IdEntity {
    private String jsapi_ticket;
    private String acc_id;;
    private Long add_timestamp;
    private Long expires_in;
    private Date czrq;
    public String getAcc_id() {
        return acc_id;
    }
    public void setAcc_id(String acc_id) {
        this.acc_id = acc_id;
    }
    public String getJsapi_ticket() {
        return jsapi_ticket;
    }

+ 3 - 0
patient-co-customization/patient-co-modern-medicine/src/main/java/com/yihu/mm/controller/WeixinBaseController.java

@ -27,6 +27,8 @@ public class WeixinBaseController extends BaseController {
	private String appId;
	@Value("${wechat.appSecret}")
	private String appSecret;
	@Value("${wechat.accId}")
	private String accId;
	@Autowired
	private CommonUtil CommonUtil;
	@Autowired
@ -60,6 +62,7 @@ public class WeixinBaseController extends BaseController {
				AccessToken newaccessToken = new AccessToken();
				newaccessToken.setAccess_token(token);
				newaccessToken.setExpires_in(Long.parseLong(expires_in));
				newaccessToken.setAcc_id(accId);
				accessTokenService.addAccessToken(newaccessToken);
				return token;
			} else {

+ 2 - 2
patient-co-customization/patient-co-modern-medicine/src/main/java/com/yihu/mm/repository/wlyy/patient/AccessTokenDao.java

@ -11,7 +11,7 @@ import org.springframework.data.repository.PagingAndSortingRepository;
public interface AccessTokenDao extends PagingAndSortingRepository<AccessToken, Long> {
	
	@Query("select p from AccessToken p order by p.add_timestamp desc")
	Iterable<AccessToken> findAccessToken();
	@Query("select p from AccessToken p where p.acc_id = ?1 order by p.add_timestamp desc")
	Iterable<AccessToken> findAccessToken(String accId);
	
}

+ 6 - 1
patient-co-customization/patient-co-modern-medicine/src/main/java/com/yihu/mm/service/AccessTokenService.java

@ -8,6 +8,7 @@ package com.yihu.mm.service;
import com.yihu.mm.repository.wlyy.patient.AccessTokenDao;
import com.yihu.wlyy.entity.security.AccessToken;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import org.springside.modules.utils.Clock;
@ -24,13 +25,16 @@ public class AccessTokenService {
	@Autowired
	private AccessTokenDao accessTokenDao;
	@Value("${wechat.accId}")
	private String accId;
	private Clock clock = Clock.DEFAULT;
	public Iterable<AccessToken> findAccessToken() {
		return accessTokenDao.findAccessToken();
		return accessTokenDao.findAccessToken(accId);
	}
@ -41,6 +45,7 @@ public class AccessTokenService {
	public void addAccessToken(AccessToken accessToken) {
		accessToken.setAdd_timestamp(System.currentTimeMillis());
		accessToken.setCzrq(clock.getCurrentDate());
		accessToken.setAcc_id(accId);
		accessTokenDao.save(accessToken);
	}

+ 2 - 2
patient-co/patient-co-doctor-assistant/src/main/java/com/yihu/wlyy/repository/security/AccessTokenDao.java

@ -12,7 +12,7 @@ import com.yihu.wlyy.entity.security.AccessToken;
public interface AccessTokenDao extends PagingAndSortingRepository<AccessToken, Long> {
	
	@Query("select p from AccessToken p order by p.add_timestamp desc")
	Iterable<AccessToken> findAccessToken();
	@Query("select p from AccessToken p where p.acc_id = ?1 order by p.add_timestamp desc")
	Iterable<AccessToken> findAccessToken(String accId);
	
}

+ 2 - 2
patient-co/patient-co-doctor-assistant/src/main/java/com/yihu/wlyy/repository/security/JsapiTicketDao.java

@ -11,7 +11,7 @@ import com.yihu.wlyy.entity.security.JsApiTicket;
public interface JsapiTicketDao extends PagingAndSortingRepository<JsApiTicket, Long> {
	
	@Query("select p from JsApiTicket p order by p.add_timestamp desc")
	Iterable<JsApiTicket> findJsapiTicket();
	@Query("select p from JsApiTicket p where p.acc_id = ?1 order by p.add_timestamp desc")
	Iterable<JsApiTicket> findJsapiTicket(String accId);
	
}

+ 3 - 0
patient-co/patient-co-doctor-assistant/src/main/java/com/yihu/wlyy/service/app/family/FamilyMemberService.java

@ -67,6 +67,8 @@ public class FamilyMemberService extends BaseService {
    private String appId;
    @Value("${wechat.appSecret}")
    private String appSecret;
    @Value("${wechat.accId}")
    private String accId;
    @PostConstruct
    public void init() {
@ -907,6 +909,7 @@ public class FamilyMemberService extends BaseService {
            AccessToken newaccessToken = new AccessToken();
            newaccessToken.setAccess_token(token);
            newaccessToken.setExpires_in(Long.parseLong(expires_in));
            newaccessToken.setAcc_id(accId);
            accessTokenService.addAccessToken(newaccessToken);
            return token;
        } else {

+ 1 - 1
patient-co/patient-co-doctor-assistant/src/main/java/com/yihu/wlyy/service/app/sign/SignWebService.java

@ -2574,7 +2574,7 @@ public class SignWebService extends BaseService {
    }
    public List<String> findOpenidsByTown(String town) {
        String sql = "select w.openid from wlyy_sign_family w ,dm_hospital d where w.hospital=d.`code` and d.town='" + town + "' and w.openid is not null and w.openid !=''";
        String sql = "select  w.openid from wlyy_sign_family w ,dm_hospital d where w.hospital=d.`code` and d.town='" + town + "' and w.openid is not null and w.openid !=''";
        return jdbcTemplate.queryForList(sql, String.class);
    }

+ 8 - 2
patient-co/patient-co-doctor-assistant/src/main/java/com/yihu/wlyy/service/common/account/AccessTokenService.java

@ -6,6 +6,7 @@
package com.yihu.wlyy.service.common.account;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import org.springside.modules.utils.Clock;
@ -27,6 +28,9 @@ public class AccessTokenService extends BaseService {
	private AccessTokenDao accessTokenDao;
	private JsapiTicketDao jsapiTicketDao;
	@Value("${wechat.accId}")
	private String accId;
	
	@Autowired
	public void setJsapiTicketDao(JsapiTicketDao jsapiTicketDao) {
@ -45,11 +49,11 @@ public class AccessTokenService extends BaseService {
	}
	
	public Iterable<AccessToken> findAccessToken() {
		return accessTokenDao.findAccessToken();
		return accessTokenDao.findAccessToken(accId);
	}
	
	public Iterable<JsApiTicket> findJsapiTicket() {
		return jsapiTicketDao.findJsapiTicket();
		return jsapiTicketDao.findJsapiTicket(accId);
	}
	
	/**
@ -59,6 +63,7 @@ public class AccessTokenService extends BaseService {
	public void addAccessToken(AccessToken accessToken) {
		accessToken.setAdd_timestamp(System.currentTimeMillis());
		accessToken.setCzrq(clock.getCurrentDate());
		accessToken.setAcc_id(accId);
		accessTokenDao.save(accessToken);
	}
	
@ -73,6 +78,7 @@ public class AccessTokenService extends BaseService {
	public void addJsapiTicket(JsApiTicket jsApiTicket) {
		jsApiTicket.setAdd_timestamp(System.currentTimeMillis());
		jsApiTicket.setCzrq(clock.getCurrentDate());
		jsApiTicket.setAcc_id(accId);
		jsapiTicketDao.save(jsApiTicket);
	}
	

+ 4 - 0
patient-co/patient-co-doctor-assistant/src/main/java/com/yihu/wlyy/web/WeixinBaseController.java

@ -42,6 +42,8 @@ public class WeixinBaseController extends BaseController {
	private String appId;
	@Value("${wechat.appSecret}")
	private String appSecret;
	@Value("${wechat.accId}")
	private String accId;
	@Value("${images.path}")
	private String imagesPath;
@ -147,6 +149,7 @@ public class WeixinBaseController extends BaseController {
				AccessToken newaccessToken = new AccessToken();
				newaccessToken.setAccess_token(token);
				newaccessToken.setExpires_in(Long.parseLong(expires_in));
				newaccessToken.setAcc_id(accId);
				accessTokenService.addAccessToken(newaccessToken);
				return token;
			} else {
@ -188,6 +191,7 @@ public class WeixinBaseController extends BaseController {
					JsApiTicket newJsApiTicket = new JsApiTicket();
					newJsApiTicket.setJsapi_ticket(ticket);
					newJsApiTicket.setExpires_in(Long.parseLong(expires_in));
					newJsApiTicket.setAcc_id(accId);
					accessTokenService.addJsapiTicket(newJsApiTicket);
					return ticket;
				} else {

+ 69 - 0
patient-co/patient-co-doctor-assistant/src/main/java/com/yihu/wlyy/web/doctor/template/DoctorFeldsherTemplateController.java

@ -0,0 +1,69 @@
package com.yihu.wlyy.web.doctor.template;
import com.yihu.wlyy.aop.ObserverRequired;
import com.yihu.wlyy.entity.template.DoctorGuidanceTemp;
import com.yihu.wlyy.repository.template.DoctorGuidanceTempDao;
import com.yihu.wlyy.service.template.DoctorFeldsherTemplateService;
import com.yihu.wlyy.service.template.DoctorGuidanceTempService;
import com.yihu.wlyy.web.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils;
import org.json.JSONArray;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
/**
 * 医生健康指导模板
 * <p>
 * Created by Reece on 2017/9/14.
 */
@RestController
@RequestMapping(value = "/doctor/feldsher")
@Api(description = "医生健康指导模板")
public class DoctorFeldsherTemplateController extends BaseController {
    @Autowired
    private DoctorFeldsherTemplateService feldsherTemplateService;
    @Autowired
    DoctorGuidanceTempDao guidanceTempDao;
    /**
     * @param doctorCode   医生code
     * @param sessionId    会话Id
     * @param sessionType  会话类型
     * @param businessType 消息类型
     * @param from         发送者
     * @param content      消息内容
     * @return
     */
    @RequestMapping(value = "/sendDoctorTemplate", method = RequestMethod.GET)
    @ApiOperation(value = "医生助手给医生发送模板消息")
    public String sendDoctorTemplate(@RequestParam @ApiParam(value = "医生code") String doctorCode,
                                     @RequestParam @ApiParam(value = "会话Id", required = false) String sessionId,
                                     @RequestParam @ApiParam(value = "会话类型", required = false) String sessionType,
                                     @RequestParam @ApiParam(value = "消息类型") String businessType,
                                     @RequestParam @ApiParam(value = "发送者", required = false) String from,
                                     @RequestParam @ApiParam(value = "消息内容") String content) {
        try {
            Boolean flag = feldsherTemplateService.sendDoctorTemplate(doctorCode, sessionId, sessionType, businessType, from, content);
            if (flag){
                return write(200, "发送成功!");
            }else {
                return write( -1, "发送失败!");
            }
        } catch (Exception e) {
            e.printStackTrace();
            return invalidUserException(e, -1, "发送失败!");
        }
    }
}

+ 3 - 0
patient-co/patient-co-doctor-assistant/src/main/java/com/yihu/wlyy/wechat/util/WeiXinAccessTokenUtils.java

@ -23,6 +23,8 @@ public class WeiXinAccessTokenUtils {
    private String appId;
    @Value("${wechat.appSecret}")
    private String appSecret;
    @Value("${wechat.accId}")
    private String accId;
    /**
     * 获取微信AccessToken
     *
@ -51,6 +53,7 @@ public class WeiXinAccessTokenUtils {
                AccessToken newaccessToken = new AccessToken();
                newaccessToken.setAccess_token(token);
                newaccessToken.setExpires_in(Long.parseLong(expires_in));
                newaccessToken.setAcc_id(accId);
                accessTokenService.addAccessToken(newaccessToken);
                return token;
            } else {

+ 1 - 1
patient-co/patient-co-doctor-assistant/src/main/resources/wechat/weixin_menu_feldsher.txt

@ -3,7 +3,7 @@
        {
            "name": "我的资料",
            "type": "view",
		    "url":"https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx088a4d8e8208e6ce&redirect_uri=http%3a%2f%2fwww.xmtyw.cn%2fwlyy%2fwx_doctor%2fhtml%2fhome%2fhtml%2fjumpApp.html&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect"
		    "url":"https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx088a4d8e8208e6ce&redirect_uri=http%3a%2f%2fwww.xmtyw.cn%2fwlyy%2fwx_doctor%2fhtml%2fhome%2fhtml%2fmy-info.html&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect"
        }
    ]
}

+ 3 - 2
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/job/PatientDiseaseConditionSynJob.java

@ -26,8 +26,9 @@ public class PatientDiseaseConditionSynJob implements Job {
        logger.info("START=====开始更新慢病患者定标情况的JOB");
        try {
            String startdate = DateUtil.getStringDateShort() + " 00:00:00";
            String enddate = DateUtil.getStringDateShort() + " 23:59:59";
            //获取前一天的时间范围
            String startdate = DateUtil.getNextDay(DateUtil.getStringDateShort(),-1) + " 00:00:00";
            String enddate = DateUtil.getNextDay(DateUtil.getStringDateShort(),-1) + " 23:59:59";
            //根据起止时间查询家签慢病患者定标情况,并同步到本地数据库
            jwPrescriptionService.getPatientDiseaseContentMapByTime(startdate,enddate);

+ 2 - 2
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/repository/security/AccessTokenDao.java

@ -12,7 +12,7 @@ import com.yihu.wlyy.entity.security.AccessToken;
public interface AccessTokenDao extends PagingAndSortingRepository<AccessToken, Long> {
	
	@Query("select p from AccessToken p order by p.add_timestamp desc")
	Iterable<AccessToken> findAccessToken();
	@Query("select p from AccessToken p where p.acc_id = ?1 order by p.add_timestamp desc")
	Iterable<AccessToken> findAccessToken(String addId);
	
}

+ 2 - 2
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/repository/security/JsapiTicketDao.java

@ -11,7 +11,7 @@ import com.yihu.wlyy.entity.security.JsApiTicket;
public interface JsapiTicketDao extends PagingAndSortingRepository<JsApiTicket, Long> {
	
	@Query("select p from JsApiTicket p order by p.add_timestamp desc")
	Iterable<JsApiTicket> findJsapiTicket();
	@Query("select p from JsApiTicket p where p.acc_id = ?1 order by p.add_timestamp desc")
	Iterable<JsApiTicket> findJsapiTicket(String accId);
	
}

+ 3 - 0
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/service/app/family/FamilyMemberService.java

@ -67,6 +67,8 @@ public class FamilyMemberService extends BaseService {
    private String appId;
    @Value("${wechat.appSecret}")
    private String appSecret;
    @Value("${wechat.accId}")
    private String accId;
    @PostConstruct
    public void init() {
@ -907,6 +909,7 @@ public class FamilyMemberService extends BaseService {
            AccessToken newaccessToken = new AccessToken();
            newaccessToken.setAccess_token(token);
            newaccessToken.setExpires_in(Long.parseLong(expires_in));
            newaccessToken.setAcc_id(accId);
            accessTokenService.addAccessToken(newaccessToken);
            return token;
        } else {

+ 8 - 2
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/service/common/account/AccessTokenService.java

@ -6,6 +6,7 @@
package com.yihu.wlyy.service.common.account;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import org.springside.modules.utils.Clock;
@ -27,6 +28,9 @@ public class AccessTokenService extends BaseService {
	private AccessTokenDao accessTokenDao;
	private JsapiTicketDao jsapiTicketDao;
	@Value("${wechat.accId}")
	private String accId;
	
	@Autowired
	public void setJsapiTicketDao(JsapiTicketDao jsapiTicketDao) {
@ -45,11 +49,11 @@ public class AccessTokenService extends BaseService {
	}
	
	public Iterable<AccessToken> findAccessToken() {
		return accessTokenDao.findAccessToken();
		return accessTokenDao.findAccessToken(accId);
	}
	
	public Iterable<JsApiTicket> findJsapiTicket() {
		return jsapiTicketDao.findJsapiTicket();
		return jsapiTicketDao.findJsapiTicket(accId);
	}
	
	/**
@ -59,6 +63,7 @@ public class AccessTokenService extends BaseService {
	public void addAccessToken(AccessToken accessToken) {
		accessToken.setAdd_timestamp(System.currentTimeMillis());
		accessToken.setCzrq(clock.getCurrentDate());
		accessToken.setAcc_id(accId);
		accessTokenDao.save(accessToken);
	}
	
@ -73,6 +78,7 @@ public class AccessTokenService extends BaseService {
	public void addJsapiTicket(JsApiTicket jsApiTicket) {
		jsApiTicket.setAdd_timestamp(System.currentTimeMillis());
		jsApiTicket.setCzrq(clock.getCurrentDate());
		jsApiTicket.setAcc_id(accId);
		jsapiTicketDao.save(jsApiTicket);
	}
	

+ 4 - 0
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/web/WeixinBaseController.java

@ -42,6 +42,8 @@ public class WeixinBaseController extends BaseController {
	private String appId;
	@Value("${wechat.appSecret}")
	private String appSecret;
	@Value("${wechat.accId}")
	private String accId;
	@Value("${images.path}")
	private String imagesPath;
@ -147,6 +149,7 @@ public class WeixinBaseController extends BaseController {
				AccessToken newaccessToken = new AccessToken();
				newaccessToken.setAccess_token(token);
				newaccessToken.setExpires_in(Long.parseLong(expires_in));
				newaccessToken.setAcc_id(accId);
				accessTokenService.addAccessToken(newaccessToken);
				return token;
			} else {
@ -188,6 +191,7 @@ public class WeixinBaseController extends BaseController {
					JsApiTicket newJsApiTicket = new JsApiTicket();
					newJsApiTicket.setJsapi_ticket(ticket);
					newJsApiTicket.setExpires_in(Long.parseLong(expires_in));
					newJsApiTicket.setAcc_id(accId);
					accessTokenService.addJsapiTicket(newJsApiTicket);
					return ticket;
				} else {

+ 2 - 2
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/web/quota/JobController.java

@ -472,12 +472,12 @@ public class JobController extends BaseController {
    /**
     *立即执行当天的慢病患者定标情况同步
     *立即执行前一天的慢病患者定标情况同步
     *@author huangwenjie
     *@date 2017/9/17 14:16
     */
    @RequestMapping(value = "/executePatientDiseaseConditionSynJob", method = RequestMethod.POST)
    @ApiOperation("立即执行当天的慢病患者定标情况同步")
    @ApiOperation("立即执行前一天的慢病患者定标情况同步")
    public String executePatientDiseaseConditionSynJob() {
        try {
            quartzHelper.startNow(PatientDiseaseConditionSynJob.class, "PATIENT-DISEASE-CONDITION-SYN", null);

+ 3 - 0
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/wechat/util/WeiXinAccessTokenUtils.java

@ -23,6 +23,8 @@ public class WeiXinAccessTokenUtils {
    private String appId;
    @Value("${wechat.appSecret}")
    private String appSecret;
    @Value("${wechat.accId}")
    private String accId;
    /**
     * 获取微信AccessToken
     *
@ -51,6 +53,7 @@ public class WeiXinAccessTokenUtils {
                AccessToken newaccessToken = new AccessToken();
                newaccessToken.setAccess_token(token);
                newaccessToken.setExpires_in(Long.parseLong(expires_in));
                newaccessToken.setAcc_id(accId);
                accessTokenService.addAccessToken(newaccessToken);
                return token;
            } else {

+ 1 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/prescription/PrescriptionReviewedDao.java

@ -12,7 +12,7 @@ import java.util.List;
 */
public interface PrescriptionReviewedDao extends PagingAndSortingRepository<PrescriptionReviewed, Long>, JpaSpecificationExecutor<PrescriptionReviewed> {
    @Query("select p from PrescriptionReviewed p where p.prescriptionCode=?1")
    @Query(value = "select p from PrescriptionReviewed p where p.prescriptionCode=?1 order by p.reviewedTime desc")
    PrescriptionReviewed findByPrescriptionCode(String prescriptionCode);
    @Query("select p from PrescriptionReviewed p where p.prescriptionCode=?1 and p.status=?2")

+ 2 - 2
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/security/AccessTokenDao.java

@ -12,7 +12,7 @@ import com.yihu.wlyy.entity.security.AccessToken;
public interface AccessTokenDao extends PagingAndSortingRepository<AccessToken, Long> {
	
	@Query("select p from AccessToken p order by p.add_timestamp desc")
	Iterable<AccessToken> findAccessToken();
	@Query("select p from AccessToken p where p.acc_id = ?1 order by p.add_timestamp desc")
	Iterable<AccessToken> findAccessToken(String accId);
	
}

+ 2 - 2
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/security/JsapiTicketDao.java

@ -11,7 +11,7 @@ import com.yihu.wlyy.entity.security.JsApiTicket;
public interface JsapiTicketDao extends PagingAndSortingRepository<JsApiTicket, Long> {
	
	@Query("select p from JsApiTicket p order by p.add_timestamp desc")
	Iterable<JsApiTicket> findJsapiTicket();
	@Query("select p from JsApiTicket p where p.acc_id = ?1 order by p.add_timestamp desc")
	Iterable<JsApiTicket> findJsapiTicket(String accId);
	
}

+ 3 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/family/FamilyMemberService.java

@ -67,6 +67,8 @@ public class FamilyMemberService extends BaseService {
    private String appId;
    @Value("${wechat.appSecret}")
    private String appSecret;
    @Value("${wechat.accId}")
    private String accId;
    @PostConstruct
    public void init() {
@ -907,6 +909,7 @@ public class FamilyMemberService extends BaseService {
            AccessToken newaccessToken = new AccessToken();
            newaccessToken.setAccess_token(token);
            newaccessToken.setExpires_in(Long.parseLong(expires_in));
            newaccessToken.setAcc_id(accId);
            accessTokenService.addAccessToken(newaccessToken);
            return token;
        } else {

+ 13 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/health/PatientHealthIndexService.java

@ -1352,4 +1352,17 @@ public class PatientHealthIndexService extends BaseService {
    public Iterable<DoctorHealthStandard> findDoctorStandardByDoctor(String code) {
        return doctorHealthStandardDao.findByDoctor(code);
    }
    /**
     * 批量保存患者预警方案
     * @param list
     * @param patients
     * @return
     */
    public Iterable<PatientHealthStandard> saveStandardPatients(List<PatientHealthStandard> list, List<Patient> patients) {
        for (Patient patient:patients) {
            patientHealthStandardDao.deleteByPatient(patient.getCode());
        }
        return patientHealthStandardDao.save(list);
    }
}

+ 12 - 5
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/prescription/PrescriptionInfoService.java

@ -1295,6 +1295,13 @@ public class PrescriptionInfoService extends BaseService {
                " LEFT(pr.create_time,19) AS createTime, " +
                " pr.doctor, " +
                " pr.dispensary_type AS dispensaryType," +
                " e.address, " +
                " e.province_name AS provinceName, " +
                " e.city_name AS cityName," +
                " e.town_name AS townName," +
                " e.street_name AS streetName," +
                " e.hospital_name AS hospitalName," +
                " e.hospital_address AS hospitalAddress," +
                " e.expressage_code AS expressageCode, " +
                " e.expressage_name AS expressageName, " +
                " e.expressage_hospital_address AS expressageHospitalAddress, " +
@ -1360,7 +1367,7 @@ public class PrescriptionInfoService extends BaseService {
            param.add(endDate + " 23:59:59");
        }
        if (StringUtils.isNotBlank(hospital)) {
            pre_sql.append(" AND e.hospital_code = ? ");
            pre_sql.append(" AND e.patient_hospital_code = ? ");
            param.add(hospital);
        }
        if (StringUtils.isNotBlank(state)) {
@ -1402,7 +1409,7 @@ public class PrescriptionInfoService extends BaseService {
            param.add(endDate + " 23:59:59");
        }
        if (StringUtils.isNotBlank(hospital)) {
            pre_sql.append(" AND e.hospital_code = ? ");
            pre_sql.append(" AND e.patient_hospital_code = ? ");
            param.add(hospital);
        }
        if (StringUtils.isNotBlank(state)) {
@ -1446,13 +1453,13 @@ public class PrescriptionInfoService extends BaseService {
    }
    public JSONArray getHospitalListTitle(String teamCode) {
        StringBuffer pre_sql = new StringBuffer("SELECT e.hospital_code AS hospitalCode ,e.hospital_name AS hospitalName FROM " +
        StringBuffer pre_sql = new StringBuffer("SELECT e.patient_hospital_code AS hospitalCode ,e.patient_hospital_name AS hospitalName FROM " +
                "  wlyy_prescription pr " +
                "  JOIN wlyy_prescription_expressage e ON pr.code = e.prescription_code " +
                "  WHERE pr.admin_team_id = ? " +
                "  AND (e.expressage_code IS NULL OR e.expressage_code ='') " +
                "  AND pr.dispensary_type =3 " +
                "  GROUP BY e.hospital_code ");
                "  GROUP BY e.patient_hospital_code ");
        List<Map<String, Object>> list = jdbcTemplate.queryForList(pre_sql.toString(), new Object[]{teamCode});
        return new JSONArray(list);
    }
@ -1708,7 +1715,7 @@ public class PrescriptionInfoService extends BaseService {
                    sql +=" AND d.`name` LIKE '%"+name+"%' ";
                }
                if(page!=null&&size!=null){
                    sql += " LIMIT "+(page-1)+","+size;
                    sql += " LIMIT "+(page-1)*size+","+size;
                }
        String totalSql = "SELECT " +
                " count(1) AS total" +

+ 2 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/sign/SignWebService.java

@ -2582,7 +2582,8 @@ public class SignWebService extends BaseService {
    }
    public List<String> findOpenidsByTown(String town) {
        String sql = "select w.openid from wlyy_sign_family w ,dm_hospital d where w.hospital=d.`code` and d.town='" + town + "' and w.openid is not null and w.openid !=''";
        String sql = "select distinct w.openid from wlyy_sign_family w ,dm_hospital d where w.hospital=d.`code` and d.town='" + town + "' and w.openid is not null and w.openid !='' and w.`status`>0 " +
                " and w.expenses_status ='1' ";
        return jdbcTemplate.queryForList(sql, String.class);
    }

+ 1 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/team/AdminTeamService.java

@ -256,7 +256,7 @@ public class AdminTeamService extends BaseService {
                com.alibaba.fastjson.JSONObject json = com.alibaba.fastjson.JSONObject.parseObject(response);
                if(json.getInteger("status")==200){
                    com.alibaba.fastjson.JSONObject data = json.getJSONObject("data");
                    if("1".equals(data.getString("CODE"))){
                    if("1".equals(data.getString("CODE"))&&data.getJSONArray("DATA").size()>0){
                        sign_limit_number = data.getJSONArray("DATA").getJSONObject(0).getInteger("SIGN_LIMIT_NUMBER");//签约上线
                    }
                }

+ 8 - 2
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/common/account/AccessTokenService.java

@ -6,6 +6,7 @@
package com.yihu.wlyy.service.common.account;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import org.springside.modules.utils.Clock;
@ -27,6 +28,9 @@ public class AccessTokenService extends BaseService {
	private AccessTokenDao accessTokenDao;
	private JsapiTicketDao jsapiTicketDao;
	@Value("${wechat.accId}")
	private String accId;
	
	@Autowired
	public void setJsapiTicketDao(JsapiTicketDao jsapiTicketDao) {
@ -45,11 +49,11 @@ public class AccessTokenService extends BaseService {
	}
	
	public Iterable<AccessToken> findAccessToken() {
		return accessTokenDao.findAccessToken();
		return accessTokenDao.findAccessToken(accId);
	}
	
	public Iterable<JsApiTicket> findJsapiTicket() {
		return jsapiTicketDao.findJsapiTicket();
		return jsapiTicketDao.findJsapiTicket(accId);
	}
	
	/**
@ -59,6 +63,7 @@ public class AccessTokenService extends BaseService {
	public void addAccessToken(AccessToken accessToken) {
		accessToken.setAdd_timestamp(System.currentTimeMillis());
		accessToken.setCzrq(clock.getCurrentDate());
		accessToken.setAcc_id(accId);
		accessTokenDao.save(accessToken);
	}
	
@ -73,6 +78,7 @@ public class AccessTokenService extends BaseService {
	public void addJsapiTicket(JsApiTicket jsApiTicket) {
		jsApiTicket.setAdd_timestamp(System.currentTimeMillis());
		jsApiTicket.setCzrq(clock.getCurrentDate());
		jsApiTicket.setAcc_id(accId);
		jsapiTicketDao.save(jsApiTicket);
	}
	

+ 5 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/common/account/PatientService.java

@ -1011,4 +1011,9 @@ public class PatientService extends TokenService {
    public void save(Patient patient) {
        patientDao.save(patient);
    }
    public List<Patient> findAllSignPatientTeamcode(String teamcode) {
        return patientDao.findAllSignPatientTeamcode(teamcode);
    }
}

+ 1 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/third/jw/JwPrescriptionService.java

@ -140,7 +140,7 @@ public class JwPrescriptionService {
                totalCount = byRefParaData.getJSONObject(0).getInteger("totalCount");
                errorMsg = byRefParaData.getJSONObject(0).getString("errorMsg");
                if(returnData.size()>0){
                    for(int i=0;i<totalCount;i++){
                    for(int i=totalCount-1;i>=0;i--){
                        JSONObject recipe = returnData.getJSONArray(0).getJSONObject(i);//获取最后一条处方
                        JSONObject pre = new JSONObject();
                        pre.put("code",recipe.getString("RECIPE_NO"));//医嘱号

+ 1 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/util/CommonUtil.java

@ -368,7 +368,7 @@ public class CommonUtil {
        heightStr = df2.format(heightCM/100d);
        double height = Double.parseDouble(heightStr);
        double bmi = weight / height * 2;
        double bmi = weight / (height * height);
        return bmi;
    }

+ 21 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/util/ImUtill.java

@ -325,6 +325,27 @@ public class ImUtill {
        return obj;
    }
    /**
     * 判断会话是否存在
     */
    public Boolean sessionIsExist(String sessionId) {
        Boolean re = false;
        String imAddr = im_host + "api/v2/sessions/isExist";
        JSONObject params = new JSONObject();
        params.put("session_id", sessionId);
        String ret = HttpClientUtil.postBody(imAddr, params);
        JSONObject obj = null;
        try {
            obj = new JSONObject(ret);
            if(obj.getInt("status")==200&&sessionId.equals(obj.getString("sessionId"))){
                re = true;
            }
        } catch (Exception e) {
            return null;
        }
        return re;
    }
    /**
     * 创建会话(system)
     */

+ 9 - 11
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/util/SendPatientUtil.java

@ -1,15 +1,9 @@
package com.yihu.wlyy.util;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONArray;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
public class SendPatientUtil extends  Thread {
	private String from;
	private String fromName;
@ -51,12 +45,16 @@ public class SendPatientUtil extends  Thread {
		if(!"4".equals(contentType)){
			contentType = "0";
		}
		JSONObject sessionJson  = imUtill.createSession(participants,ImUtill.SESSION_TYPE_MUC,title,to+"_"+teamCode+"_"+type);
		if(sessionJson.getInt("status")==-1){
			throw  new RuntimeException(sessionJson.getString("message"));
		String sessionId = to+"_"+teamCode+"_"+type;
		Boolean flag = imUtill.sessionIsExist(sessionId);
		if(!flag){
			JSONObject sessionJson  = imUtill.createSession(participants,ImUtill.SESSION_TYPE_MUC,title,sessionId);
			if(sessionJson.getInt("status")==-1){
				throw  new RuntimeException(sessionJson.getString("message"));
			}
		}
		JSONObject session = sessionJson.getJSONObject("data");
		return imUtill.sendImMsg(from,fromName,session.getString("id"),contentType,content,"1");
		return imUtill.sendImMsg(from,fromName,sessionId,contentType,content,"1");
	}
	public void run(){

+ 4 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/WeixinBaseController.java

@ -42,6 +42,8 @@ public class WeixinBaseController extends BaseController {
	private String appId;
	@Value("${wechat.appSecret}")
	private String appSecret;
	@Value("${wechat.accId}")
	private String accId;
	@Value("${images.path}")
	private String imagesPath;
@ -147,6 +149,7 @@ public class WeixinBaseController extends BaseController {
				AccessToken newaccessToken = new AccessToken();
				newaccessToken.setAccess_token(token);
				newaccessToken.setExpires_in(Long.parseLong(expires_in));
				newaccessToken.setAcc_id(accId);
				accessTokenService.addAccessToken(newaccessToken);
				return token;
			} else {
@ -188,6 +191,7 @@ public class WeixinBaseController extends BaseController {
					JsApiTicket newJsApiTicket = new JsApiTicket();
					newJsApiTicket.setJsapi_ticket(ticket);
					newJsApiTicket.setExpires_in(Long.parseLong(expires_in));
					newJsApiTicket.setAcc_id(accId);
					accessTokenService.addJsapiTicket(newJsApiTicket);
					return ticket;
				} else {

+ 80 - 17
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/health/DoctorHealthController.java

@ -3,8 +3,10 @@ package com.yihu.wlyy.web.doctor.health;
import com.yihu.device.entity.DevicePatientHealthIndex;
import com.yihu.wlyy.aop.ObserverRequired;
import com.yihu.wlyy.entity.doctor.health.DoctorHealthStandard;
import com.yihu.wlyy.entity.patient.Patient;
import com.yihu.wlyy.entity.patient.PatientHealthStandard;
import com.yihu.wlyy.service.app.health.PatientHealthIndexService;
import com.yihu.wlyy.service.common.account.PatientService;
import com.yihu.wlyy.util.SystemConf;
import com.yihu.wlyy.web.BaseController;
import io.swagger.annotations.Api;
@ -31,6 +33,8 @@ public class DoctorHealthController extends BaseController {
	@Autowired
	private PatientHealthIndexService healthIndexService;
	@Autowired
	private PatientService patientService;
	@RequestMapping(value = "recent",method = RequestMethod.GET)
	@ResponseBody
@ -239,17 +243,6 @@ public class DoctorHealthController extends BaseController {
							standard.setCzrq(new Date());
							list.add(standard);
						}
						DoctorHealthStandard doctorHealthStandard = new DoctorHealthStandard();
						doctorHealthStandard.setDoctor(getUID());
						doctorHealthStandard.setMaxValue1(obj.has("max_value1") ? NumberUtils.toDouble(obj.getString("max_value1"), 0) : 0);
						doctorHealthStandard.setMaxValue2(obj.has("max_value2") ? NumberUtils.toDouble(obj.getString("max_value2"), 0) : 0);
						doctorHealthStandard.setMinValue1(obj.has("min_value1") ? NumberUtils.toDouble(obj.getString("min_value1"), 0) : 0);
						doctorHealthStandard.setMinValue2(obj.has("min_value2") ? NumberUtils.toDouble(obj.getString("min_value2"), 0) : 0);
						doctorHealthStandard.setType(obj.getInt("type"));
						doctorHealthStandard.setCzrq(new Date());
						doclist.add(doctorHealthStandard);
					}
					if (list.size() == 0) {
						return error(-1, "保存失败!");
@ -259,12 +252,6 @@ public class DoctorHealthController extends BaseController {
					if (iterable == null || iterable.iterator() == null || !iterable.iterator().hasNext()) {
						return error(-1, "保存失败!");
					}
					Iterable<DoctorHealthStandard> dociterable = healthIndexService.saveDocStandard(doclist, getUID());
					if (dociterable == null || dociterable.iterator() == null || !dociterable.iterator().hasNext()) {
						return error(-1, "保存失败!");
					}
				}
			return write(200, "保存成功");
@ -391,4 +378,80 @@ public class DoctorHealthController extends BaseController {
		}
	}
	@RequestMapping(value = "savastandbyteamcode",method = RequestMethod.GET)
	@ResponseBody
	@ApiOperation("医生保存团队下所有居民的预警方案")
	public String doctorSaveStandardByTeamCode(
			@ApiParam("团队代码") @RequestParam String teamcode,
			@ApiParam("预警值Json") @RequestParam String json) {
		try {
			JSONArray array = new JSONArray(json);
			if (StringUtils.isEmpty(teamcode) || array == null || array.length() == 0) {
				return error(-1, "保存失败!");
			}
			List<Patient> patients = patientService.findAllSignPatientTeamcode(teamcode);
			if(!patients.isEmpty()){
				// 生成数据对象
				List<PatientHealthStandard> list = new ArrayList<>();
				//保存患者的数据时,同时医生的预警值方案
				List<DoctorHealthStandard> doclist = new ArrayList<>();
				for (int i = 0; i < array.length(); i++) {
					JSONObject obj = array.getJSONObject(i);
					if (obj == null) {
						continue;
					}
					for (Patient patient: patients) {
						PatientHealthStandard standard = new PatientHealthStandard();
						standard.setDoctor(getUID());
						standard.setMaxValue1(obj.has("max_value1") ? NumberUtils.toDouble(obj.getString("max_value1"), 0) : 0);
						standard.setMaxValue2(obj.has("max_value2") ? NumberUtils.toDouble(obj.getString("max_value2"), 0) : 0);
						standard.setMinValue1(obj.has("min_value1") ? NumberUtils.toDouble(obj.getString("min_value1"), 0) : 0);
						standard.setMinValue2(obj.has("min_value2") ? NumberUtils.toDouble(obj.getString("min_value2"), 0) : 0);
						standard.setType(obj.getInt("type"));
						standard.setPatient(patient.getCode());
						standard.setCzrq(new Date());
						list.add(standard);
					}
					DoctorHealthStandard doctorHealthStandard = new DoctorHealthStandard();
					doctorHealthStandard.setDoctor(getUID());
					doctorHealthStandard.setMaxValue1(obj.has("max_value1") ? NumberUtils.toDouble(obj.getString("max_value1"), 0) : 0);
					doctorHealthStandard.setMaxValue2(obj.has("max_value2") ? NumberUtils.toDouble(obj.getString("max_value2"), 0) : 0);
					doctorHealthStandard.setMinValue1(obj.has("min_value1") ? NumberUtils.toDouble(obj.getString("min_value1"), 0) : 0);
					doctorHealthStandard.setMinValue2(obj.has("min_value2") ? NumberUtils.toDouble(obj.getString("min_value2"), 0) : 0);
					doctorHealthStandard.setType(obj.getInt("type"));
					doctorHealthStandard.setCzrq(new Date());
					doclist.add(doctorHealthStandard);
				}
				if (list.size() == 0) {
					return error(-1, "保存失败!");
				}
				// 保存数据库
				Iterable<PatientHealthStandard> iterable = healthIndexService.saveStandardPatients(list, patients);
				if (iterable == null || iterable.iterator() == null || !iterable.iterator().hasNext()) {
					return error(-1, "保存失败!");
				}
				Iterable<DoctorHealthStandard> dociterable = healthIndexService.saveDocStandard(doclist, getUID());
				if (dociterable == null || dociterable.iterator() == null || !dociterable.iterator().hasNext()) {
					return error(-1, "保存失败!");
				}
			}
			return write(200, "保存成功");
		} catch (Exception e) {
			error(e);
			return invalidUserException(e, -1, "操作失败!");
		}
	}
}

+ 8 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/wx/WechatTagController.java

@ -37,6 +37,7 @@ public class WechatTagController extends BaseController {
            String string = weiXinTagUtil.createTag(tagName);
            return write(200, "创建成功", "date", string);
        } catch (Exception e) {
            error(e);
            return error(-1, "失败");
        }
    }
@ -49,6 +50,7 @@ public class WechatTagController extends BaseController {
            String string = weiXinTagUtil.deleteTag(tageId);
            return write(200, "删除成功", "date", string);
        } catch (Exception e) {
            error(e);
            return error(-1, "失败");
        }
    }
@ -60,6 +62,7 @@ public class WechatTagController extends BaseController {
            String string = weiXinTagUtil.queryTags();
            return write(200, "查询成功", "date", string);
        } catch (Exception e) {
            error(e);
            return error(-1, "失败");
        }
    }
@ -73,6 +76,7 @@ public class WechatTagController extends BaseController {
            String string = weiXinTagUtil.queryTagWithOpenid(openid);
            return write(200, "查询成功", "date", string);
        } catch (Exception e) {
            error(e);
            return error(-1, "失败");
        }
    }
@ -88,6 +92,7 @@ public class WechatTagController extends BaseController {
            String string = weiXinTagUtil.addTagWithOpenid(java.util.Arrays.asList(openis), tageId,null,null);
            return write(200, "查询成功", "date", string);
        } catch (Exception e) {
            error(e);
            return error(-1, "失败");
        }
    }
@ -103,6 +108,7 @@ public class WechatTagController extends BaseController {
            String string = weiXinTagUtil.deleteTagWithOpenid(java.util.Arrays.asList(openis), tageId);
            return write(200, "查询成功", "date", string);
        } catch (Exception e) {
            error(e);
            return error(-1, "失败");
        }
    }
@ -117,6 +123,7 @@ public class WechatTagController extends BaseController {
            String string = weiXinTagUtil.addTagWithOpenid(openids, tageId,null,null);
            return write(200, "查询成功", "date", string);
        } catch (Exception e) {
            error(e);
            return error(-1, "失败");
        }
    }
@ -130,6 +137,7 @@ public class WechatTagController extends BaseController {
            String string = weiXinTagUtil.deleteTagWithOpenid(openids, tageId);
            return write(200, "查询成功", "date", string);
        } catch (Exception e) {
            error(e);
            return error(-1, "失败");
        }
    }

+ 3 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/wechat/util/WeiXinAccessTokenUtils.java

@ -23,6 +23,8 @@ public class WeiXinAccessTokenUtils {
    private String appId;
    @Value("${wechat.appSecret}")
    private String appSecret;
    @Value("${wechat.accId}")
    private String accId;
    /**
     * 获取微信AccessToken
     *
@ -51,6 +53,7 @@ public class WeiXinAccessTokenUtils {
                AccessToken newaccessToken = new AccessToken();
                newaccessToken.setAccess_token(token);
                newaccessToken.setExpires_in(Long.parseLong(expires_in));
                newaccessToken.setAcc_id(accId);
                accessTokenService.addAccessToken(newaccessToken);
                return token;
            } else {

+ 40 - 10
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/wechat/util/WeiXinTagUtil.java

@ -21,6 +21,7 @@ import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@ -74,26 +75,55 @@ public class WeiXinTagUtil {
        try {
            net.sf.json.JSONObject params = new net.sf.json.JSONObject();
            params.put("openid_list", net.sf.json.JSONArray.fromObject(openIds));
            params.put("tagid", tagId);
            String result = httpUtil.sendPost(add_user_tag + weiXinAccessTokenUtils.getAccessToken(), params.toString());
            //为openID分组
            List<List<String>> list = getSplitList(openIds,40);
            net.sf.json.JSONObject resultJson = net.sf.json.JSONObject.fromObject(result);
            if(list!=null&&list.size()>0){
            if (resultJson.containsKey("errcode")) {
                Integer status = resultJson.getInt("errcode");
                if (status != 0) {
                    throw new Exception("创建失败," + result);
                for(List<String> ops : list){
                    params.put("openid_list", net.sf.json.JSONArray.fromObject(openIds));
                    params.put("tagid", tagId);
                    String result = httpUtil.sendPost(add_user_tag + weiXinAccessTokenUtils.getAccessToken(), params.toString());
                    net.sf.json.JSONObject resultJson = net.sf.json.JSONObject.fromObject(result);
                }
            }
            return result;
//            if (resultJson.containsKey("errcode")) {
//                Integer status = resultJson.getInt("errcode");
//                if (status != 0) {
//                    throw new Exception("创建失败," + result);
//                }
//            }
            return "1";
        } catch (Exception e) {
            logger.error(e.getMessage());
            return null;
        }
    }
    /**
     *
     * @param list 要拆分的集合
     * @param size 指定的大小
     * @return
     */
    public static List<List<String>> getSplitList(List<String> list , int size)
    {
        List<List<String>> returnList = new ArrayList<List<String>>();
        int listSize = list.size();
        int num = listSize%size==0?listSize/size:(listSize/size+1);
        int start = 0;
        int end = 0;
        for(int i=1;i<=num;i++)
        {
            start = (i-1)*size;
            end = i*size>listSize?listSize:i*size;
            System.out.println(start+":"+end);
            returnList.add(list.subList(start, end));
        }
        return returnList;
    }
    /**
     * 根据openID给用户打标签,
     *