import com.supwisdom.dlpay.api.bean.JsonResult;
import com.supwisdom.dlpay.api.domain.TAccount;
import com.supwisdom.dlpay.api.domain.TPerson;
-import com.supwisdom.dlpay.api.domain.TPersonIdentity;
import com.supwisdom.dlpay.api.domain.TPointsAccount;
-import com.supwisdom.dlpay.framework.domain.TOperator;
-import com.supwisdom.dlpay.framework.util.Dictionary;
-import com.supwisdom.dlpay.framework.util.PageResult;
-import com.supwisdom.dlpay.framework.util.StringUtil;
-import com.supwisdom.dlpay.framework.util.WebConstant;
+import com.supwisdom.dlpay.framework.util.*;
import com.supwisdom.dlpay.system.bean.CitizenCardSearchBean;
import com.supwisdom.dlpay.system.bean.CitizenCardShowBean;
-import com.supwisdom.dlpay.system.bean.IdTypeBean;
import com.supwisdom.dlpay.system.bean.PersonParamBean;
import com.supwisdom.dlpay.system.service.DictionaryProxy;
import com.supwisdom.dlpay.system.service.UserDataService;
+import com.supwisdom.dlpay.util.WebCheckException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*;
-import java.util.ArrayList;
-import java.util.List;
+import javax.validation.ConstraintViolation;
+import javax.validation.ConstraintViolationException;
@Controller
public class UserController {
@GetMapping("/user/cardlist")
@PreAuthorize("hasPermission('/user/card','')")
@ResponseBody
- public PageResult<CitizenCardShowBean> getBusinessDataList(@RequestParam("page") Integer pageNo,
+ public PageResult<CitizenCardShowBean> getCitizenCardList(@RequestParam("page") Integer pageNo,
@RequestParam("limit") Integer pageSize,
@RequestParam(value = "cardno", required = false) String cardno,
@RequestParam(value = "cardphyid", required = false) String cardphyid,
return new PageResult<>(99, "系统查询错误");
}
}
+
+ @GetMapping("/user/load4addcard")
+ @PreAuthorize("hasPermission('/user/load4addcard','')")
+ public String addCitizenCard() {
+ return "system/user/addcard";
+ }
+
+ @PostMapping("/user/cardadd")
+ @PreAuthorize("hasPermission('/user/cardadd','')")
+ @ResponseBody
+ public JsonResult addCitizencard(@RequestParam(value = "cardno", required = false) String cardno,
+ @RequestParam(value = "cardphyid", required = false) String cardphyid,
+ @RequestParam(value = "expiredate", required = false) String expiredate,
+ @RequestParam(value = "cardstatus", required = false) String cardstatus,
+ @RequestParam(value = "bankcardno", required = false) String bankcardno,
+ @RequestParam(value = "signstatus", required = false) String signstatus,
+ @RequestParam(value = "username", required = false) String username,
+ @RequestParam(value = "sex", required = false) String sex,
+ @RequestParam(value = "idtype", required = false) String idtype,
+ @RequestParam(value = "idno", required = false) String idno,
+ @RequestParam(value = "mobile", required = false) String mobile,
+ @RequestParam(value = "email", required = false) String email) {
+ try {
+ if (userDataService.doSaveNewCitizenCard(cardno, cardphyid, expiredate, cardstatus, bankcardno, signstatus, username, sex, idtype, idno, mobile, email)) {
+ return JsonResult.ok("新增成功!");
+ } else {
+ return JsonResult.error("新增失败!");
+ }
+ } catch (WebCheckException wce) {
+ return JsonResult.error(wce.getMessage());
+ } catch (Exception e) {
+ return dealViolationException(e, "新增异常!!");
+ }
+ }
+
+ private JsonResult dealViolationException(Exception e, String defaultErrmsg) {
+ String errmsg = "";
+ if (e instanceof ConstraintViolationException) {
+ ConstraintViolationException cve = (ConstraintViolationException) e;
+ if (null != cve.getConstraintViolations()) {
+ for (ConstraintViolation v : cve.getConstraintViolations()) {
+ errmsg += v.getMessage() + " ";
+ }
+ }
+ }
+ if (!StringUtil.isEmpty(errmsg)) {
+ return JsonResult.error(errmsg);
+ } else {
+ e.printStackTrace();
+ return JsonResult.error(defaultErrmsg);
+ }
+ }
+
+ @GetMapping("/user/load4modifycard")
+ @PreAuthorize("hasPermission('/user/load4modifycard','')")
+ public String load4UpdateCitizenCard() {
+ return "system/user/updatecard";
+ }
+
+ @PostMapping("/user/cardupdate")
+ @PreAuthorize("hasPermission('/user/cardupdate','')")
+ @ResponseBody
+ public JsonResult addCitizencard(@RequestParam(value = "cid") String cid,
+ @RequestParam(value = "bkid") String bkid,
+ @RequestParam(value = "cardno", required = false) String cardno,
+ @RequestParam(value = "cardphyid", required = false) String cardphyid,
+ @RequestParam(value = "expiredate", required = false) String expiredate,
+ @RequestParam(value = "cardstatus", required = false) String cardstatus,
+ @RequestParam(value = "bankcardno", required = false) String bankcardno,
+ @RequestParam(value = "signstatus", required = false) String signstatus,
+ @RequestParam(value = "username", required = false) String username,
+ @RequestParam(value = "sex", required = false) String sex,
+ @RequestParam(value = "idtype", required = false) String idtype,
+ @RequestParam(value = "idno", required = false) String idno,
+ @RequestParam(value = "mobile", required = false) String mobile,
+ @RequestParam(value = "email", required = false) String email) {
+ try {
+ if (userDataService.doUpdateCitizenCard(cid, bkid, cardno, cardphyid, expiredate, cardstatus, bankcardno, signstatus, username, sex, idtype, idno, mobile, email)) {
+ return JsonResult.ok("修改成功!");
+ } else {
+ return JsonResult.error("修改失败!");
+ }
+ } catch (WebCheckException wce) {
+ return JsonResult.error(wce.getMessage());
+ } catch (Exception e) {
+ return dealViolationException(e, "修改异常!!!");
+ }
+ }
+
}
package com.supwisdom.dlpay.system.service.impl;
import com.supwisdom.dlpay.api.bean.JsonResult;
-import com.supwisdom.dlpay.api.dao.AccountDao;
-import com.supwisdom.dlpay.api.dao.PersonDao;
-import com.supwisdom.dlpay.api.dao.PersonIdentityDao;
-import com.supwisdom.dlpay.api.dao.PointsAccountDao;
-import com.supwisdom.dlpay.api.domain.TAccount;
-import com.supwisdom.dlpay.api.domain.TPerson;
-import com.supwisdom.dlpay.api.domain.TPersonIdentity;
-import com.supwisdom.dlpay.api.domain.TPointsAccount;
+import com.supwisdom.dlpay.api.dao.*;
+import com.supwisdom.dlpay.api.domain.*;
+import com.supwisdom.dlpay.api.types.IDTypes;
+import com.supwisdom.dlpay.api.types.SexTypes;
import com.supwisdom.dlpay.framework.data.SystemDateTime;
import com.supwisdom.dlpay.framework.service.SystemUtilService;
import com.supwisdom.dlpay.framework.tenant.TenantContext;
import com.supwisdom.dlpay.system.bean.CitizenCardShowBean;
import com.supwisdom.dlpay.system.bean.PersonParamBean;
import com.supwisdom.dlpay.system.service.UserDataService;
+import com.supwisdom.dlpay.util.ConstantUtil;
+import com.supwisdom.dlpay.util.WebCheckException;
import org.hibernate.query.internal.NativeQueryImpl;
import org.hibernate.transform.Transformers;
import org.springframework.beans.factory.annotation.Autowired;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import java.math.BigInteger;
+import java.util.Arrays;
import java.util.List;
import java.util.Optional;
private SystemUtilService systemUtilService;
@Autowired
private PersonIdentityDao personIdentityDao;
+ @Autowired
+ private CardDao cardDao;
@PersistenceContext
private EntityManager entityManager;
@Override
public PageResult<CitizenCardShowBean> getUserCitizenCardPage(CitizenCardSearchBean param, int pageNo, int pageSize) {
- StringBuffer querySql = new StringBuffer("select t.id as cid,t.cardno,t.cardtype,t.cardphyid,case when t.status='closed' then 'closed' else t.trans_status end as status,t.expiredate,a.id as bkid,a.cardno as bankcardno,a.signed,t.lastsaved,t.userid,p.name as username,p.idtype,p.idno,p.mobile,p.email \n" +
+ StringBuffer querySql = new StringBuffer("select t.id as cid,t.cardno,t.cardtype,t.cardphyid,case when t.status='closed' then 'closed' else t.trans_status end as status,t.expiredate,a.id as bkid,a.cardno as bankcardno,a.signed,t.lastsaved,t.userid,p.name as username,p.idtype,p.idno,p.mobile,p.email,p.sex \n" +
"from tb_card t left join tb_card a on a.cardtype='bankcard' and a.cardphyid=t.cardphyid and a.userid=t.userid left join tb_person p on p.userid=t.userid \n" +
"where t.cardtype='citizencard' ");
StringBuffer countSql = new StringBuffer("select count(t.id) as cnt \n" +
BigInteger cnt = (BigInteger) countQuery.getSingleResult();
return new PageResult<>(cnt.longValue(), list);
}
+
+ private boolean checkCitizenCardData(String cardno, String cardphyid, String expiredate, String cardstatus, String bankcardno,
+ String signstatus, String username, String sex, String idtype, String idno, String mobile,
+ String email) throws WebCheckException {
+ if (StringUtil.isEmpty(cardno)) throw new WebCheckException("市民卡号不能为空");
+ if (!StringUtil.isNumber(cardno.trim())) throw new WebCheckException("请正确填写市民卡号");
+
+ if (StringUtil.isEmpty(cardphyid)) throw new WebCheckException("物理卡号不能为空");
+ if (!StringUtil.isCardphyid(cardphyid.trim()) || cardphyid.trim().length() != 8)
+ throw new WebCheckException("请正确填写八位物理卡号(八位十六进制数,字母大写)");
+
+ if (StringUtil.isEmpty(expiredate)) throw new WebCheckException("请填写卡有效期");
+ if (!DateUtil.checkDatetimeValid(expiredate.trim(), "yyyy-MM-dd")) throw new WebCheckException("请正确填写卡有效期");
+
+ if (StringUtil.isEmpty(cardstatus)) throw new WebCheckException("请选择卡状态");
+ if (!Arrays.asList(TradeDict.STATUS_NORMAL, TradeDict.STATUS_CLOSED, TradeDict.STATUS_ABNORMAL, TradeDict.STATUS_UNUSE).contains(cardstatus.trim()))
+ throw new WebCheckException("请正确选择卡状态");
+
+ if (StringUtil.isEmpty(bankcardno)) throw new WebCheckException("请填写银行卡号");
+ if (!StringUtil.isBankcardno(bankcardno.trim())) throw new WebCheckException("请正确填写银行卡号");
+
+ if (StringUtil.isEmpty(signstatus)) throw new WebCheckException("请选择银行卡签约状态");
+ if (!"0".equals(signstatus.trim()) && !"1".equals(signstatus.trim())) throw new WebCheckException("请选择银行卡签约状态");
+
+ if (StringUtil.isEmpty(username)) throw new WebCheckException("请填写姓名");
+
+ if (StringUtil.isEmpty(sex)) throw new WebCheckException("请选择性别");
+ if (Arrays.asList(SexTypes.ALL).contains(sex.trim())) throw new WebCheckException("请正确选择性别");
+
+ if (StringUtil.isEmpty(idtype)) throw new WebCheckException("请选择证件类别");
+ if (-999 == IDTypes.findByValue(idtype.trim())) throw new WebCheckException("请正确选择证件类别");
+
+ if (StringUtil.isEmpty(idno)) throw new WebCheckException("请填写证件号");
+ if (IDTypes.IDCARD.value().equals(idtype.trim()) && !StringUtil.isIdentity(idno.trim()))
+ throw new WebCheckException("请正确填写身份证号");
+
+ if (!StringUtil.isEmpty(mobile) && !StringUtil.isMobile(mobile.trim())) throw new WebCheckException("请正确填写手机号");
+ if (!StringUtil.isEmpty(email) && !StringUtil.isEmail(email.trim())) throw new WebCheckException("请正确填写电子邮箱");
+ return true;
+ }
+
+ @Override
+ public boolean doSaveNewCitizenCard(String cardno, String cardphyid, String expiredate, String cardstatus, String bankcardno,
+ String signstatus, String username, String sex, String idtype, String idno, String mobile,
+ String email) throws Exception {
+ if (checkCitizenCardData(cardno, cardphyid, expiredate, cardstatus, bankcardno, signstatus, username, sex, idtype, idno, mobile, email)) {
+ double maxbal = systemUtilService.getSysparaValueAsDouble(SysparaUtil.BALANCE_LIMIT, SysparaUtil.DEFAULT_BALANCE_LIMIT);
+ double lowfreeLimit = systemUtilService.getSysparaValueAsDouble(SysparaUtil.NOPASS_LIMIT, SysparaUtil.DEFAULT_NOPASS_LIMIT);
+ double daylimit = systemUtilService.getSysparaValueAsDouble(SysparaUtil.DAY_PAY_LIMIT, SysparaUtil.DEFAULT_DAY_PAY_LIMIT);
+
+ TCard cityCard = cardDao.findCardByCardnoAndCardtype(cardno.trim(), ConstantUtil.CARDTYPE_CITIZENCARD);
+ if (null != cityCard) throw new WebCheckException("市民卡号已经存在!");
+
+ TCard bankCard = cardDao.findCardByCardnoAndCardtype(bankcardno.trim(), ConstantUtil.CARDTYPE_BANKCARD);
+ if (null != bankCard) throw new WebCheckException("银行卡号已经存在!");
+
+ List<TCard> cardList = cardDao.findCitizencardByCardphyid(cardphyid.trim());
+ if (!StringUtil.isEmpty(cardList)) throw new WebCheckException("物理卡号已经存在!");
+
+ TPerson person = personDao.findByIdentity(idtype.trim(), idno.trim());
+ if (null != person && username.trim().equals(person.getName()))
+ throw new WebCheckException("证件号对应的用户已经存在,且姓名不匹配!");
+
+ SystemDateTime dt = systemUtilService.getSysdatetime();
+ if (null != person) {
+ boolean needUpdate = false;
+ if (!sex.trim().equals(person.getSex())) {
+ person.setSex(sex.trim());
+ needUpdate = true;
+ }
+ if (!StringUtil.isEmpty(mobile) && !mobile.trim().equals(person.getMobile())) {
+ person.setMobile(mobile.trim());
+ needUpdate = true;
+ }
+ if (!StringUtil.isEmpty(email) && !email.trim().equals(person.getEmail())) {
+ person.setEmail(email.trim());
+ needUpdate = true;
+ }
+ if (needUpdate) {
+ person.setLastsaved(dt.getHostdatetime());
+ personDao.save(person);
+ }
+ } else {
+ person = new TPerson();
+ person.setName(username.trim());
+ person.setSex(sex.trim());
+ person.setStatus(TradeDict.STATUS_NORMAL);
+ person.setIdtype(idtype.trim());
+ person.setIdno(idno.trim());
+ person.setEmail(null == email ? null : email.trim());
+ person.setMobile(null == mobile ? null : mobile.trim());
+ person.setLastsaved(dt.getHostdatetime());
+ person.setTenantid(TenantContext.getTenantSchema());
+ person = personDao.save(person);
+
+ TAccount account = new TAccount();
+ account.setAccname(person.getName());
+ account.setSubjno(Subject.SUBJNO_PERSONAL_DEPOSIT);
+ account.setUserid(person.getUserid());
+ account.setTransStatus(person.getStatus());
+ account.setBalance(0D);
+ account.setAvailbal(0D);
+ account.setFrozebal(0D);
+ account.setLowfreeFlag(false);
+ account.setLowfreeLimit(lowfreeLimit);
+ account.setDaylimit(daylimit);
+ account.setMaxbal(maxbal);
+ account.setLasttranstime(dt.getSysdate());
+ account.setLastdayDpsamt(0D);
+ account.setLastdayTransamt(0D);
+ account.setOpendate(dt.getHostdate());
+ account.setTac(Signature.SPY_TAC);
+ account.setTenantid(person.getTenantid());
+ account = accountDao.save(account);
+ account.setTac(account.generateTac());
+ accountDao.save(account);
+ }
+
+ cityCard = new TCard(); //新增市民卡
+ cityCard.setCardno(cardno.trim());
+ cityCard.setCardtype(ConstantUtil.CARDTYPE_CITIZENCARD);
+ cityCard.setCardphyid(cardphyid.trim());
+ cityCard.setStatus(TradeDict.STATUS_NORMAL);
+ cityCard.setTransStatus(cardstatus.trim());
+ if (TradeDict.STATUS_CLOSED.equals(cardstatus.trim())) {
+ cityCard.setStatus(TradeDict.STATUS_CLOSED);
+ cityCard.setTransStatus(TradeDict.STATUS_ABNORMAL);
+ }
+ cityCard.setExpiredate(DateUtil.unParseToDateFormat(expiredate.trim()));
+ cityCard.setSigned(false);
+ cityCard.setUserid(person.getUserid());
+ cityCard.setLastsaved(dt.getHostdatetime());
+ cityCard.setTenantid(person.getTenantid());
+ cardDao.save(cityCard);
+
+ bankCard = new TCard(); //新增银行卡
+ bankCard.setCardno(bankcardno.trim());
+ bankCard.setCardtype(ConstantUtil.CARDTYPE_BANKCARD);
+ bankCard.setCardphyid(cardphyid.trim());
+ bankCard.setStatus(TradeDict.STATUS_NORMAL);
+ bankCard.setTransStatus(TradeDict.STATUS_NORMAL);
+ if (TradeDict.STATUS_CLOSED.equals(cardstatus.trim())) {
+ bankCard.setStatus(TradeDict.STATUS_CLOSED);
+ }
+ bankCard.setExpiredate("21991231");
+ bankCard.setSigned("1".equals(signstatus.trim()));
+ bankCard.setUserid(person.getUserid());
+ bankCard.setLastsaved(dt.getHostdatetime());
+ bankCard.setTenantid(person.getTenantid());
+ if (TradeDict.STATUS_NORMAL.equals(bankCard.getStatus())) {
+ cardDao.closedBankcardStatusByUserid(bankCard.getUserid()); //注销其他银行卡
+ }
+ cardDao.save(bankCard);
+ return true;
+ }
+ return false;
+ }
+
+ private TCard findCardById(String id) {
+ if (!StringUtil.isEmpty(id)) return cardDao.getById(id.trim());
+ return null;
+ }
+
+ @Override
+ public boolean doUpdateCitizenCard(String cid, String bkid, String cardno, String cardphyid, String expiredate, String cardstatus,
+ String bankcardno, String signstatus, String username, String sex, String idtype, String idno,
+ String mobile, String email) throws Exception {
+ TCard cityCard = findCardById(cid);
+ TCard bankCard = findCardById(bkid);
+ if (null == cityCard || null == bankCard ||
+ !ConstantUtil.CARDTYPE_CITIZENCARD.equals(cityCard.getCardtype()) ||
+ !ConstantUtil.CARDTYPE_BANKCARD.equals(bankCard.getCardtype()) ||
+ !cityCard.getUserid().equals(bankCard.getUserid()) ||
+ !cityCard.getCardphyid().equals(bankCard.getCardphyid())) {
+ throw new WebCheckException("请求参数错误,请重新查询!");
+ }
+ TPerson person = personDao.findByUserid(cityCard.getUserid());
+ if(null==person) throw new WebCheckException("请求参数错误,请重新查询!");
+
+ if (checkCitizenCardData(cardno, cardphyid, expiredate, cardstatus, bankcardno, signstatus, username, sex, idtype, idno, mobile, email)) {
+ TPerson owner = null; //市民卡拥有者
+ SystemDateTime dt = systemUtilService.getSysdatetime();
+ if(idtype.trim().equals(person.getIdtype()) && idno.trim().equals(person.getIdno())){
+ //同一用户
+ if(!username.trim().equals(person.getName())) throw new WebCheckException("数据异常!证件号对应的用户已经存在,但姓名不匹配!");
+ owner = person;
+ }else{
+ //改变了所有者
+ TPerson newPerson = personDao.findByIdentity(idtype.trim(), idno.trim());
+ if(null!=newPerson && !username.trim().equals(newPerson.getName())) throw new WebCheckException("数据异常!证件号对应的用户已经存在,但姓名不匹配!");
+ if(null==newPerson){
+ //新增
+ double maxbal = systemUtilService.getSysparaValueAsDouble(SysparaUtil.BALANCE_LIMIT, SysparaUtil.DEFAULT_BALANCE_LIMIT);
+ double lowfreeLimit = systemUtilService.getSysparaValueAsDouble(SysparaUtil.NOPASS_LIMIT, SysparaUtil.DEFAULT_NOPASS_LIMIT);
+ double daylimit = systemUtilService.getSysparaValueAsDouble(SysparaUtil.DAY_PAY_LIMIT, SysparaUtil.DEFAULT_DAY_PAY_LIMIT);
+
+ newPerson = new TPerson();
+ newPerson.setName(username.trim());
+ newPerson.setSex(sex.trim());
+ newPerson.setStatus(TradeDict.STATUS_NORMAL);
+ newPerson.setIdtype(idtype.trim());
+ newPerson.setIdno(idno.trim());
+ newPerson.setEmail(null == email ? null : email.trim());
+ newPerson.setMobile(null == mobile ? null : mobile.trim());
+ newPerson.setLastsaved(dt.getHostdatetime());
+ newPerson.setTenantid(TenantContext.getTenantSchema());
+ newPerson = personDao.save(newPerson);
+
+ TAccount account = new TAccount();
+ account.setAccname(newPerson.getName());
+ account.setSubjno(Subject.SUBJNO_PERSONAL_DEPOSIT);
+ account.setUserid(newPerson.getUserid());
+ account.setTransStatus(newPerson.getStatus());
+ account.setBalance(0D);
+ account.setAvailbal(0D);
+ account.setFrozebal(0D);
+ account.setLowfreeFlag(false);
+ account.setLowfreeLimit(lowfreeLimit);
+ account.setDaylimit(daylimit);
+ account.setMaxbal(maxbal);
+ account.setLasttranstime(dt.getSysdate());
+ account.setLastdayDpsamt(0D);
+ account.setLastdayTransamt(0D);
+ account.setOpendate(dt.getHostdate());
+ account.setTac(Signature.SPY_TAC);
+ account.setTenantid(person.getTenantid());
+ account = accountDao.save(account);
+ account.setTac(account.generateTac());
+ accountDao.save(account);
+ }
+ owner = newPerson;
+ }
+ if(null== owner) throw new WebCheckException("业务处理异常!");
+
+ boolean needUpdate = false;
+ if (!sex.trim().equals(owner.getSex())) {
+ owner.setSex(sex.trim());
+ needUpdate = true;
+ }
+ if (!StringUtil.isEmpty(mobile) && !mobile.trim().equals(owner.getMobile())) {
+ owner.setMobile(mobile.trim());
+ needUpdate = true;
+ }
+ if (!StringUtil.isEmpty(email) && !email.trim().equals(owner.getEmail())) {
+ owner.setEmail(email.trim());
+ needUpdate = true;
+ }
+ if (needUpdate) {
+ owner.setLastsaved(dt.getHostdatetime());
+ personDao.save(owner);
+ }
+
+ boolean cardUpdate = false;
+ if(!cardno.trim().equals(cityCard.getCardno())){
+ //市民卡号变更
+ if (null != cardDao.findCardByCardnoAndCardtype(cardno.trim(), ConstantUtil.CARDTYPE_CITIZENCARD)) throw new WebCheckException("市民卡号已经存在");
+
+ cityCard.setCardno(cardno.trim());
+ cardUpdate = true;
+ }
+ if(!cardphyid.trim().equals(cityCard.getCardphyid())){
+ List<TCard> cardList = cardDao.findCitizencardByCardphyidWithoutOldId(cardphyid.trim(), cityCard.getId());
+ if (!StringUtil.isEmpty(cardList)) throw new WebCheckException("物理卡号已经存在!");
+
+ cityCard.setCardphyid(cardphyid.trim());
+ cardUpdate = true;
+ }
+
+ String newExpiredate = DateUtil.unParseToDateFormat(expiredate);
+ if(!newExpiredate.equals(cityCard.getExpiredate())){
+ cityCard.setExpiredate(newExpiredate);
+ cardUpdate = true;
+ }
+
+ if (TradeDict.STATUS_CLOSED.equals(cardstatus.trim())) {
+ if (!TradeDict.STATUS_CLOSED.equals(cityCard.getStatus())) {
+ cityCard.setStatus(TradeDict.STATUS_CLOSED);
+ cardUpdate = true;
+ }
+ } else if (!cardstatus.trim().equals(cityCard.getTransStatus())) {
+ cityCard.setTransStatus(cardstatus.trim());
+ cardUpdate = true;
+ }
+ if(!cityCard.getUserid().equals(owner.getUserid())){
+ cityCard.setUserid(owner.getUserid());
+ cardUpdate = true;
+ }
+
+ if(cardUpdate){
+ cityCard.setLastsaved(dt.getHostdatetime());
+ cardDao.save(cityCard);
+ }
+
+ boolean bankcardUpdate = false;
+ if(!bankcardno.trim().equals(bankCard.getCardno())){
+ if (null != cardDao.findCardByCardnoAndCardtype(bankcardno.trim(), ConstantUtil.CARDTYPE_BANKCARD)) throw new WebCheckException("银行卡号已经存在");
+ bankCard.setCardno(bankcardno.trim());
+ bankCard.setSigned("1".equals(signstatus));
+ bankcardUpdate = true;
+ }
+ if(!cardphyid.trim().equals(bankCard.getCardphyid())){
+ bankCard.setCardphyid(cityCard.getCardphyid());
+ bankcardUpdate = true;
+ }
+ if(TradeDict.STATUS_CLOSED.equals(cardstatus.trim()) && !TradeDict.STATUS_CLOSED.equals(bankCard.getStatus())){
+ bankCard.setStatus(TradeDict.STATUS_CLOSED);
+ bankcardUpdate = true;
+ }
+ if(!bankCard.getSigned().equals("1".equals(signstatus.trim()))){
+ bankCard.setSigned("1".equals(signstatus.trim()));
+ bankcardUpdate = true;
+ }
+
+ if(!bankCard.getUserid().equals(owner.getUserid())){
+ bankCard.setUserid(cityCard.getUserid());
+ bankcardUpdate = true;
+ }
+
+ if(bankcardUpdate){
+ bankCard.setLastsaved(dt.getHostdatetime());
+ cardDao.save(bankCard);
+ }
+
+ return true;
+ }
+ return false;
+ }
}