package com.opentravelsoft.providers.hibernate; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.TreeMap; import org.hibernate.LockMode; import org.springframework.orm.hibernate3.HibernateTemplate; import org.springframework.stereotype.Repository; import com.opentravelsoft.entity.Guide; import com.opentravelsoft.entity.Pinyin; import com.opentravelsoft.providers.GuideDao; import com.opentravelsoft.util.RowDataUtil; import com.opentravelsoft.util.StringUtil; @Repository("GuideDao") public class GuideDaoImpl extends GenericDaoHibernate<Guide, String> implements GuideDao { public GuideDaoImpl() { super(Guide.class); } public int deleteGuide(String accCd) { HibernateTemplate template = getHibernateTemplate(); Guide guide = (Guide) template.get(Guide.class, accCd, LockMode.PESSIMISTIC_WRITE); template.delete(guide); return 0; } public Guide getGuideDetail(String accCd) { Guide guide = null; HibernateTemplate template = getHibernateTemplate(); Guide wlt = (Guide) template.get(Guide.class, accCd, LockMode.PESSIMISTIC_WRITE); if (wlt == null) { return wlt; } else { guide = new Guide(); guide.setAccCd(RowDataUtil.getString(wlt.getAccCd())); guide.setAccNm(RowDataUtil.getString(wlt.getAccNm())); guide.setPinyin(wlt.getPinyin()); guide.setAccSex(RowDataUtil.getString(wlt.getAccSex())); guide.setTeamId(RowDataUtil.getInt(wlt.getTeamId())); guide.setIdCard(RowDataUtil.getString(wlt.getIdCard())); guide.setLeadCard(RowDataUtil.getString(wlt.getLeadCard())); guide.setBusiness(RowDataUtil.getString(wlt.getBusiness())); guide.setBloodType(RowDataUtil.getString(wlt.getBloodType())); guide.setHigh(RowDataUtil.getString(wlt.getHigh())); guide.setLeaderKey(RowDataUtil.getString(wlt.getLeaderKey())); guide.setDateStart(RowDataUtil.getDate(wlt.getDateStart())); guide.setDateEnd(RowDataUtil.getDate(wlt.getDateEnd())); guide.setWeight(RowDataUtil.getString(wlt.getWeight())); guide.setDuty(RowDataUtil.getString(wlt.getDuty())); guide.setTourCard(RowDataUtil.getString(wlt.getTourCard())); guide.setTourKey(RowDataUtil.getString(wlt.getTourKey())); guide.setCheckDate(RowDataUtil.getDate(wlt.getCheckDate())); guide.setIcCard(RowDataUtil.getString(wlt.getIcCard())); guide.setRemarks1(RowDataUtil.getString(wlt.getRemarks1())); guide.setWorkType1(RowDataUtil.getString(wlt.getWorkType1())); guide.setWorkType2(RowDataUtil.getString(wlt.getWorkType2())); guide.setTel(RowDataUtil.getString(wlt.getTel())); guide.setBp(RowDataUtil.getString(wlt.getBp())); guide.setMobile(RowDataUtil.getString(wlt.getMobile())); guide.setEMail(RowDataUtil.getString(wlt.getEMail())); guide.setAddress(RowDataUtil.getString(wlt.getAddress())); guide.setCharacter(RowDataUtil.getString(wlt.getCharacter())); guide.setTaste(RowDataUtil.getString(wlt.getTaste())); guide.setSpeciality(RowDataUtil.getString(wlt.getSpeciality())); guide.setWorkRemark(RowDataUtil.getString(wlt.getWorkRemark())); guide.setFinishSchool(RowDataUtil.getString(wlt.getFinishSchool())); guide.setFinishDate(RowDataUtil.getDate(wlt.getFinishDate())); guide.setBirthday(RowDataUtil.getDate(wlt.getBirthday())); guide.setBirthplace(RowDataUtil.getString(wlt.getBirthplace())); guide.setPassportType(RowDataUtil.getString(wlt.getPassportType())); guide.setPassportNo(RowDataUtil.getString(wlt.getPassportNo())); guide.setPassportPlace(RowDataUtil.getString(wlt.getPassportPlace())); guide.setPassportDate(RowDataUtil.getDate(wlt.getPassportDate())); guide.setPassportExpiry(RowDataUtil.getDate(wlt.getPassportExpiry())); guide.setPhotoFile(RowDataUtil.getString(wlt.getPhotoFile())); guide.setHkPass(RowDataUtil.getString(wlt.getHkPass())); } return guide; } public int insertGuide(Guide guide) { HibernateTemplate template = getHibernateTemplate(); Guide wlt = (Guide) template.get(Guide.class, guide.getAccCd(), LockMode.PESSIMISTIC_WRITE); if (null != wlt) { return -1; } wlt = new Guide(); wlt.setAccCd(guide.getAccCd()); wlt.setAccNm(guide.getAccNm()); if (!StringUtil.hasLength(guide.getPinyin())) { guide.setPinyin(supplyYin(guide.getAccNm())); } wlt.setPinyin(guide.getPinyin()); wlt.setAccSex(guide.getAccSex()); wlt.setTeamId(guide.getTeamId()); wlt.setIdCard(guide.getIdCard()); wlt.setLeadCard(guide.getLeadCard()); wlt.setBusiness(guide.getBusiness()); wlt.setBloodType(guide.getBloodType()); wlt.setHigh(guide.getHigh()); wlt.setLeaderKey(guide.getLeaderKey()); wlt.setDateStart(guide.getDateStart()); wlt.setDateEnd(guide.getDateEnd()); wlt.setWeight(guide.getWeight()); wlt.setDuty(guide.getDuty()); wlt.setTourCard(guide.getTourCard()); wlt.setTourKey(guide.getTourKey()); wlt.setCheckDate(guide.getCheckDate()); wlt.setIcCard(guide.getIcCard()); wlt.setRemarks1(guide.getRemarks1()); wlt.setWorkType1(guide.getWorkType1()); wlt.setWorkType2(guide.getWorkType2()); wlt.setSignKey(guide.getSignKey()); wlt.setTel(guide.getTel()); wlt.setMobile(guide.getMobile()); wlt.setEMail(guide.getEMail()); wlt.setAddress(guide.getAddress()); wlt.setCharacter(guide.getCharacter()); wlt.setTaste(guide.getTaste()); wlt.setSpeciality(guide.getSpeciality()); wlt.setWorkRemark(guide.getWorkRemark()); wlt.setFinishSchool(guide.getFinishSchool()); wlt.setFinishDate(guide.getFinishDate()); wlt.setBirthday(guide.getBirthday()); wlt.setBirthplace(guide.getBirthplace()); wlt.setPassportType(guide.getPassportType()); wlt.setPassportNo(guide.getPassportNo()); wlt.setPassportPlace(guide.getPassportPlace()); wlt.setPassportDate(guide.getPassportDate()); wlt.setPassportExpiry(guide.getPassportExpiry()); wlt.setPhotoFile(guide.getPhotoFile()); wlt.setHkPass(guide.getHkPass()); template.save(wlt); return 0; } public int updateGuide(Guide guide) { HibernateTemplate template = getHibernateTemplate(); Guide wlt = (Guide) template.get(Guide.class, guide.getAccCd(), LockMode.PESSIMISTIC_WRITE); if (null == wlt) { return -1; } wlt.setAccNm(guide.getAccNm()); if (!StringUtil.hasLength(guide.getPinyin())) { guide.setPinyin(supplyYin(guide.getAccNm())); } wlt.setPinyin(guide.getPinyin()); wlt.setAccSex(guide.getAccSex()); wlt.setTeamId(guide.getTeamId()); wlt.setIdCard(guide.getIdCard()); wlt.setLeadCard(guide.getLeadCard()); wlt.setBusiness(guide.getBusiness()); wlt.setBloodType(guide.getBloodType()); wlt.setHigh(guide.getHigh()); wlt.setLeaderKey(RowDataUtil.getString(guide.getLeaderKey())); wlt.setDateStart(guide.getDateStart()); wlt.setDateEnd(guide.getDateEnd()); wlt.setWeight(guide.getWeight()); wlt.setDuty(guide.getDuty()); wlt.setTourCard(guide.getTourCard()); wlt.setTourKey(RowDataUtil.getString(guide.getTourKey())); wlt.setCheckDate(guide.getCheckDate()); wlt.setIcCard(guide.getIcCard()); wlt.setRemarks1(guide.getRemarks1()); wlt.setWorkType1(RowDataUtil.getString(guide.getWorkType1())); wlt.setWorkType2(RowDataUtil.getString(guide.getWorkType2())); wlt.setSignKey(RowDataUtil.getString(guide.getSignKey())); wlt.setTel(guide.getTel()); wlt.setMobile(guide.getMobile()); wlt.setEMail(guide.getEMail()); wlt.setAddress(guide.getAddress()); wlt.setCharacter(guide.getCharacter()); wlt.setTaste(guide.getTaste()); wlt.setSpeciality(guide.getSpeciality()); wlt.setWorkRemark(guide.getWorkRemark()); wlt.setFinishSchool(guide.getFinishSchool()); wlt.setFinishDate(guide.getFinishDate()); wlt.setBirthday(guide.getBirthday()); wlt.setBirthplace(guide.getBirthplace()); wlt.setPassportType(guide.getPassportType()); wlt.setPassportNo(guide.getPassportNo()); wlt.setPassportPlace(guide.getPassportPlace()); wlt.setPassportDate(guide.getPassportDate()); wlt.setPassportExpiry(guide.getPassportExpiry()); wlt.setPhotoFile(guide.getPhotoFile()); wlt.setHkPass(guide.getHkPass()); template.update(wlt); return 0; } @SuppressWarnings("unchecked") public List<Guide> queryGuide(String accNm) { Guide newguide = null; HibernateTemplate template = getHibernateTemplate(); StringBuilder sql = new StringBuilder(); sql.append("from Guide "); if (StringUtil.hasLength(accNm)) sql.append("where accNm like '%" + accNm + "%'"); List<Guide> list = template.find(sql.toString()); List<Guide> guide = new ArrayList<Guide>(); for (Guide obj : list) { newguide = new Guide(); newguide.setAccCd(RowDataUtil.getString(obj.getAccCd())); newguide.setAccNm(RowDataUtil.getString(obj.getAccNm())); newguide.setPinyin(obj.getPinyin()); newguide.setAccSex(RowDataUtil.getString(obj.getAccSex())); newguide.setTeamId(RowDataUtil.getInt(obj.getTeamId())); newguide.setIdCard(RowDataUtil.getString(obj.getIdCard())); newguide.setLeadCard(RowDataUtil.getString(obj.getLeadCard())); newguide.setBusiness(RowDataUtil.getString(obj.getBusiness())); newguide.setBloodType(RowDataUtil.getString(obj.getBloodType())); newguide.setHigh(RowDataUtil.getString(obj.getHigh())); newguide.setLeaderKey(RowDataUtil.getString(obj.getLeaderKey())); newguide.setDateStart(RowDataUtil.getDate(obj.getDateStart())); newguide.setDateEnd(RowDataUtil.getDate(obj.getDateEnd())); newguide.setWeight(RowDataUtil.getString(obj.getWeight())); newguide.setDuty(RowDataUtil.getString(obj.getDuty())); newguide.setTourCard(RowDataUtil.getString(obj.getTourCard())); newguide.setTourKey(RowDataUtil.getString(obj.getTourKey())); newguide.setCheckDate(RowDataUtil.getDate(obj.getCheckDate())); newguide.setIcCard(RowDataUtil.getString(obj.getIcCard())); newguide.setRemarks1(RowDataUtil.getString(obj.getRemarks1())); newguide.setWorkType1(RowDataUtil.getString(obj.getWorkType1())); newguide.setWorkType2(RowDataUtil.getString(obj.getWorkType2())); newguide.setTel(RowDataUtil.getString(obj.getTel())); newguide.setBp(RowDataUtil.getString(obj.getBp())); newguide.setMobile(RowDataUtil.getString(obj.getMobile())); newguide.setEMail(RowDataUtil.getString(obj.getEMail())); newguide.setAddress(RowDataUtil.getString(obj.getAddress())); newguide.setCharacter(RowDataUtil.getString(obj.getCharacter())); newguide.setTaste(RowDataUtil.getString(obj.getTaste())); newguide.setSpeciality(RowDataUtil.getString(obj.getSpeciality())); newguide.setWorkRemark(RowDataUtil.getString(obj.getWorkRemark())); newguide.setFinishSchool(RowDataUtil.getString(obj.getFinishSchool())); newguide.setFinishDate(RowDataUtil.getDate(obj.getFinishDate())); newguide.setBirthday(RowDataUtil.getDate(obj.getBirthday())); newguide.setBirthplace(RowDataUtil.getString(obj.getBirthplace())); newguide.setPassportType(RowDataUtil.getString(obj.getPassportType())); newguide.setPassportNo(RowDataUtil.getString(obj.getPassportNo())); newguide.setPassportPlace(RowDataUtil.getString(obj.getPassportPlace())); newguide.setPassportDate(RowDataUtil.getDate(obj.getPassportDate())); newguide.setPassportExpiry(RowDataUtil.getDate(obj.getPassportExpiry())); newguide.setPhotoFile(RowDataUtil.getString(obj.getPhotoFile())); newguide.setHkPass(RowDataUtil.getString(obj.getHkPass())); guide.add(newguide); } return guide; } @SuppressWarnings("unchecked") private String supplyYin(String str) { StringBuilder sql = new StringBuilder(); sql.append("from Pinyin "); sql.append("where chinese in ("); String pinyin = ""; StringBuilder py = new StringBuilder(); char[] ch = str.toCharArray(); StringBuilder sb = new StringBuilder(); int count = 0; for (char c : ch) { sb.append("'" + c + "',"); } List<Pinyin> pys = getHibernateTemplate().find( sql.toString() + sb.substring(0, sb.length() - 1) + ")"); Map<String, String> map = new TreeMap<String, String>(); for (Pinyin tfj112 : pys) { map.put(tfj112.getChinese(), tfj112.getEnglish()); } for (char c : ch) { if (null == map.get(String.valueOf(c))) py.append(c); else { py.append(map.get(String.valueOf(c))); count++; if (count == 1) py.append(' '); } } pinyin = py.toString().trim(); return pinyin; } }