Browse Source

修复创建订单的故障

master
xyiege 3 years ago
parent
commit
f7d749a3ae
  1. 170
      src/main/java/cn/chjyj/szwh/bean/OrderUser.java
  2. 56
      src/main/java/cn/chjyj/szwh/service/impl/OrderServiceImpl.java
  3. 67
      src/main/java/cn/chjyj/szwh/utils/SzOrderUtils.java
  4. 11
      src/main/resources/mapper/szwh/OrderUserMapper.xml

170
src/main/java/cn/chjyj/szwh/bean/OrderUser.java

@ -20,23 +20,23 @@ public class OrderUser implements Serializable {
private String islicode;//用户ISLI标识码
private String name;//用户名称
private String uscc;//机构代码
private String usertype;//机构类型;个人;组织
private String authtype;//认证类型
private String certtype;//个人-证件类型
private String idnumber;//个人-证件号码
private String cellphone; //个人-手机号码
private String publicaccount;//银行账户
private String legalsname;//机构-法人名称
private String legalstype;//机构-法人证件类型
private String legalsidnum;//机构-法人证件号
private String legalscellphone;//机构-法人手机号
private String bankcardtype;//银行卡类型
private String banktype;//银行行别
private String bankname;//开户行名称
private String bankaccountname;//开户人姓名
private String certidnum;//开户人身份证号码
private String bankcellphone;//开户行预留手机号码
private String bankaddress;//开户行所在地
private String userType;//机构类型;个人;组织
private String authType;//认证类型
private String certType;//个人-证件类型
private String idNumber;//个人-证件号码
private String cellPhone; //个人-手机号码
private String publicAccount;//银行账户
private String legalsName;//机构-法人名称
private String legalsType;//机构-法人证件类型
private String legalsIdnum;//机构-法人证件号
private String legalsCellPhone;//机构-法人手机号
private String bankCardType;//银行卡类型
private String bankType;//银行行别
private String bankName;//开户行名称
private String bankAccountName;//开户人姓名
private String certIdnum;//开户人身份证号码
private String bankCellPhone;//开户行预留手机号码
private String bankAddress;//开户行所在地
private Integer state;//0-认证中 1-认证成功 2-认证失败
private Date registertime;//注册时间
private Date attesttime;//认证时间
@ -89,140 +89,140 @@ public class OrderUser implements Serializable {
this.uscc = uscc;
}
public String getUsertype() {
return usertype;
public String getUserType() {
return userType;
}
public void setUsertype(String usertype) {
this.usertype = usertype;
public void setUserType(String userType) {
this.userType = userType;
}
public String getAuthtype() {
return authtype;
public String getAuthType() {
return authType;
}
public void setAuthtype(String authtype) {
this.authtype = authtype;
public void setAuthType(String authType) {
this.authType = authType;
}
public String getCerttype() {
return certtype;
public String getCertType() {
return certType;
}
public void setCerttype(String certtype) {
this.certtype = certtype;
public void setCertType(String certType) {
this.certType = certType;
}
public String getIdnumber() {
return idnumber;
public String getIdNumber() {
return idNumber;
}
public void setIdnumber(String idnumber) {
this.idnumber = idnumber;
public void setIdNumber(String idNumber) {
this.idNumber = idNumber;
}
public String getCellphone() {
return cellphone;
public String getCellPhone() {
return cellPhone;
}
public void setCellphone(String cellphone) {
this.cellphone = cellphone;
public void setCellPhone(String cellPhone) {
this.cellPhone = cellPhone;
}
public String getPublicaccount() {
return publicaccount;
public String getPublicAccount() {
return publicAccount;
}
public void setPublicaccount(String publicaccount) {
this.publicaccount = publicaccount;
public void setPublicAccount(String publicAccount) {
this.publicAccount = publicAccount;
}
public String getLegalsname() {
return legalsname;
public String getLegalsName() {
return legalsName;
}
public void setLegalsname(String legalsname) {
this.legalsname = legalsname;
public void setLegalsName(String legalsName) {
this.legalsName = legalsName;
}
public String getLegalstype() {
return legalstype;
public String getLegalsType() {
return legalsType;
}
public void setLegalstype(String legalstype) {
this.legalstype = legalstype;
public void setLegalsType(String legalsType) {
this.legalsType = legalsType;
}
public String getLegalsidnum() {
return legalsidnum;
public String getLegalsIdnum() {
return legalsIdnum;
}
public void setLegalsidnum(String legalsidnum) {
this.legalsidnum = legalsidnum;
public void setLegalsIdnum(String legalsIdnum) {
this.legalsIdnum = legalsIdnum;
}
public String getLegalscellphone() {
return legalscellphone;
public String getLegalsCellPhone() {
return legalsCellPhone;
}
public void setLegalscellphone(String legalscellphone) {
this.legalscellphone = legalscellphone;
public void setLegalsCellPhone(String legalsCellPhone) {
this.legalsCellPhone = legalsCellPhone;
}
public String getBankcardtype() {
return bankcardtype;
public String getBankCardType() {
return bankCardType;
}
public void setBankcardtype(String bankcardtype) {
this.bankcardtype = bankcardtype;
public void setBankCardType(String bankCardType) {
this.bankCardType = bankCardType;
}
public String getBanktype() {
return banktype;
public String getBankType() {
return bankType;
}
public void setBanktype(String banktype) {
this.banktype = banktype;
public void setBankType(String bankType) {
this.bankType = bankType;
}
public String getBankname() {
return bankname;
public String getBankName() {
return bankName;
}
public void setBankname(String bankname) {
this.bankname = bankname;
public void setBankName(String bankName) {
this.bankName = bankName;
}
public String getBankaccountname() {
return bankaccountname;
public String getBankAccountName() {
return bankAccountName;
}
public void setBankaccountname(String bankaccountname) {
this.bankaccountname = bankaccountname;
public void setBankAccountName(String bankAccountName) {
this.bankAccountName = bankAccountName;
}
public String getCertidnum() {
return certidnum;
public String getCertIdnum() {
return certIdnum;
}
public void setCertidnum(String certidnum) {
this.certidnum = certidnum;
public void setCertIdnum(String certIdnum) {
this.certIdnum = certIdnum;
}
public String getBankcellphone() {
return bankcellphone;
public String getBankCellPhone() {
return bankCellPhone;
}
public void setBankcellphone(String bankcellphone) {
this.bankcellphone = bankcellphone;
public void setBankCellPhone(String bankCellPhone) {
this.bankCellPhone = bankCellPhone;
}
public String getBankaddress() {
return bankaddress;
public String getBankAddress() {
return bankAddress;
}
public void setBankaddress(String bankaddress) {
this.bankaddress = bankaddress;
public void setBankAddress(String bankAddress) {
this.bankAddress = bankAddress;
}
public Integer getState() {

56
src/main/java/cn/chjyj/szwh/service/impl/OrderServiceImpl.java

@ -269,11 +269,11 @@ public class OrderServiceImpl implements OrderService {
// 订单用户 ,
Map odumap = new HashMap();
OrderUser orderUser = orderUserMapper.getUserOrder(batchcode, dv.getEntrust_islicode());
odumap.put("userType", orderUser.getUsertype());
odumap.put("userType", orderUser.getUserType());
odumap.put("uscc", orderUser.getUscc());
odumap.put("name", orderUser.getName());
odumap.put("islicode", orderUser.getIslicode());
odumap.put("bankAccountName", orderUser.getBankaccountname());
odumap.put("bankAccountName", orderUser.getBankAccountName());
odumap.put("state", orderUser.getState());
retmap.put("userinfo", odumap);
@ -450,7 +450,7 @@ public class OrderServiceImpl implements OrderService {
//购买者
Map buymap = new HashMap();
OrderUser buyuser = orderUserMapper.getUserOrder(bathcode, bsod.getBuyIslicode());
buymap.put("userType", buyuser.getUsertype());
buymap.put("userType", buyuser.getUserType());
buymap.put("uscc", buyuser.getUscc());
buymap.put("name", buyuser.getName());
buymap.put("islicode", buyuser.getIslicode());
@ -631,7 +631,7 @@ public class OrderServiceImpl implements OrderService {
if (orderUser != null) {
userId = orderUser.getId();
} else {
Map adumap = addOrderUserByBatchacode(batchCode,userIsli);
Map adumap = addOrderUserByBatchacode(batchCode,userIsli,goodsIsli);
if(adumap!=null){
String errmsg = (String)adumap.get("error");
if(StringUtils.isNotEmpty(errmsg)){
@ -654,6 +654,9 @@ public class OrderServiceImpl implements OrderService {
order.setType(1);
order.setStatus(status);
order.setPayStatus(payStatus);
//history
order.setHistoryBuyCode("-");
order.setHistoryBuyName("-");
// 分配设置编号
order.setAccountRatioId(accountRatioSetting.getId());
//如果是付费
@ -734,8 +737,8 @@ public class OrderServiceImpl implements OrderService {
retmap.put("buy_username", orderUser.getName());
retmap.put("attesttime", orderUser.getAttesttime());
retmap.put("registertime", orderUser.getRegistertime());
retmap.put("userType", orderUser.getUsertype());
retmap.put("authType", orderUser.getAuthtype());
retmap.put("userType", orderUser.getUserType());
retmap.put("authType", orderUser.getAuthType());
retmap.put("state", orderUser.getState());
// 分配情况
AccountRatioSetting accountRatioSetting = accountRatioSettingMapper.getAccRatioSettingById(od.getAccountRatioId());
@ -899,17 +902,7 @@ public class OrderServiceImpl implements OrderService {
// ratio setting
AccountRatioSetting accountRatioSetting = accountRatioSettingMapper.getUsingAccRatioSetting();
AccountRatioDetail accountRatioDetail = accountRatioDetailMapper.getAccRatioDetailByIdRole(accountRatioSetting.getId(), 2);
//add order user
Map odumap = addOrderUserByBatchacode(batchacode,userIsli);
Integer buyUid=0;
if(odumap!=null){
String oduid= (String)odumap.get("oduid");
if(StringUtils.isNotEmpty(oduid)){
buyUid =Integer.valueOf(oduid);
}
}
// get username
String buyUserName = orderUserMapper.getOrderUserById(buyUid).getName();
// 检查购物车中是否有该商品,有则删除
String rkey = "car_" + userIsli;
Map ucar = SzCarUtils.getCar(rkey);
@ -917,6 +910,20 @@ public class OrderServiceImpl implements OrderService {
for(int i=0;i<gJsonArray.size();i++){
JSONObject tgjson = gJsonArray.getJSONObject(i);
String gisli = tgjson.getString("goods_isli");
//add order user
Map odumap = addOrderUserByBatchacode(batchacode,userIsli,gisli);
Integer buyUid=0;
if(odumap!=null){
String oduid= (String)odumap.get("oduid");
if(StringUtils.isNotEmpty(oduid)){
buyUid =Integer.valueOf(oduid);
}
}
// get username
String buyUserName = orderUserMapper.getOrderUserById(buyUid).getName();
// 是否在购物车里面
if (ucar.get(gisli) != null) {
Goods goods = goodsMapper.getGoodsFuelByIsLi(gisli);
@ -1025,21 +1032,24 @@ public class OrderServiceImpl implements OrderService {
* @param userIsli 用户号
* @return
*/
private Map<String, Object> addOrderUserByBatchacode(String batchCode, String userIsli) {
private Map<String, Object> addOrderUserByBatchacode(String batchCode, String userIsli,String goodsIsli) {
Map rmap = new HashMap();
int userId = 0;
// 获取远程用户信息
JSONObject userjson = SzwhApiUtils.getApiUser(userIsli);
if (StringUtils.isBlank(userjson.getString("data"))) {
String userjsonDataStr = userjson.getString("data");
if (StringUtils.isBlank(userjsonDataStr)) {
rmap.put("error", "未查询到用户信息,下单失败");
return rmap;
}
// 提取出json中的内容
JSONObject iuserjson = JSONObject.parseObject(userjsonDataStr);
//添加用户
OrderUser odu = SzOrderUtils.mkOrderUser(batchCode, userjson, 1);
orderUserMapper.addOrderUser(odu);
OrderUser odu = SzOrderUtils.mkOrderUser(batchCode, iuserjson, 1);
int ret =orderUserMapper.addOrderUser(odu);
//
userId = odu.getId();
rmap.put("oduid", userId);
return rmap;
return null;
}
}

67
src/main/java/cn/chjyj/szwh/utils/SzOrderUtils.java

@ -112,53 +112,62 @@ public class SzOrderUtils {
if("个人".equals(uType)){
throw new ChException("暂不支持个人用户交易", 400);
}
if(!"1".equals(userJson.getString("state"))){
throw new ChException("当前用户未认证成功", 400);
String ustate = userJson.getString("state");
if(StringUtils.isNotEmpty(ustate)){
if(!"1".equals(ustate)){
throw new ChException("当前用户未认证成功", 400);
}
}
}
// 机构用户
if("机构".equals(uType)){
orderUser.setBatchcode(batchcode);
orderUser.setUsertype(uType);
orderUser.setUserType(uType);
Integer ustate = userJson.getInteger("state");
int istate=ustate==null?0:ustate;
orderUser.setState(istate);
orderUser.setIslicode(userJson.getString("islicode"));
orderUser.setName(userJson.getString("name"));
//机构用户
orderUser.setCertType("-");
orderUser.setCellPhone("-");
orderUser.setIdNumber("-");
//
orderUser.setUscc(userJson.getString("uscc"));
orderUser.setLegalsname(userJson.getString("legalsName"));
orderUser.setLegalstype(userJson.getString("legalsType"));
orderUser.setLegalsidnum(userJson.getString("legalsIdnum"));
orderUser.setLegalsName(userJson.getString("legalsName"));
orderUser.setLegalsType(userJson.getString("legalsType"));
orderUser.setLegalsIdnum(userJson.getString("legalsIdnum"));
//
String legalsCellPhone = userJson.getString("legalsCellPhone");
orderUser.setLegalscellphone(StringUtils.isBlank(legalsCellPhone)?"":legalsCellPhone);
orderUser.setPublicaccount(userJson.getString("publicAccount"));
orderUser.setBankcardtype(userJson.getString("bankCardType"));
orderUser.setBankname(userJson.getString("bankName"));
orderUser.setBanktype(userJson.getString("bankType"));
orderUser.setBankaccountname(userJson.getString("bankAccountName"));
orderUser.setCertidnum(userJson.getString("certIdnum"));
orderUser.setBankcellphone(userJson.getString("bankCellPhone"));
orderUser.setBankaddress(userJson.getString("bankAddress"));
orderUser.setLegalsCellPhone(StringUtils.isBlank(legalsCellPhone)?"":legalsCellPhone);
orderUser.setPublicAccount(userJson.getString("publicAccount"));
orderUser.setBankCardType(userJson.getString("bankCardType"));
orderUser.setBankName(userJson.getString("bankName"));
orderUser.setBankType(userJson.getString("bankType"));
orderUser.setBankAccountName(userJson.getString("bankAccountName"));
orderUser.setCertIdnum(userJson.getString("certIdnum"));
orderUser.setBankCellPhone(userJson.getString("bankCellPhone"));
orderUser.setBankAddress(userJson.getString("bankAddress"));
}else{
//个人用户
orderUser.setBatchcode(batchcode);
orderUser.setUsertype(uType);
orderUser.setUserType(uType);
Integer ustate = userJson.getInteger("state");
int istate=ustate==null?0:ustate;
orderUser.setState(istate);
orderUser.setIslicode(userJson.getString("islicode"));
orderUser.setName(userJson.getString("name"));
orderUser.setCerttype(userJson.getString("certType"));
orderUser.setIdnumber(userJson.getString("idNumber"));
orderUser.setCellphone(userJson.getString("cellPhone"));
orderUser.setPublicaccount(userJson.getString("publicAccount"));
orderUser.setBankcardtype(userJson.getString("bankCardType"));
orderUser.setBankname(userJson.getString("bankName"));
orderUser.setBankaccountname(userJson.getString("bankAccountName"));
orderUser.setCertidnum(userJson.getString("certIdnum"));
orderUser.setBankcellphone(userJson.getString("bankCellPhone"));
orderUser.setBankaddress(userJson.getString("bankAddress"));
orderUser.setCertType(userJson.getString("certType"));
orderUser.setIdNumber(userJson.getString("idNumber"));
orderUser.setCellPhone(userJson.getString("cellPhone"));
orderUser.setPublicAccount(userJson.getString("publicAccount"));
orderUser.setBankCardType(userJson.getString("bankCardType"));
orderUser.setBankName(userJson.getString("bankName"));
orderUser.setBankAccountName(userJson.getString("bankAccountName"));
orderUser.setCertIdnum(userJson.getString("certIdnum"));
orderUser.setBankCellPhone(userJson.getString("bankCellPhone"));
orderUser.setBankAddress(userJson.getString("bankAddress"));
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
// 如果注册时间
@ -184,8 +193,12 @@ public class SzOrderUtils {
// 认证类型
String authType = userJson.getString("authType");
if(StringUtils.isNotBlank(authType)){
orderUser.setAuthtype(authType);
orderUser.setAuthType(authType);
}
//发票信息
orderUser.setTicketmoney(new BigDecimal("0.00"));
orderUser.setTicketid(0);
orderUser.setTicketStatus(1);
return orderUser;
}

11
src/main/resources/mapper/szwh/OrderUserMapper.xml

@ -5,7 +5,7 @@
<mapper namespace="cn.chjyj.szwh.mapper.OrderUserMapper">
<sql id="column">
id,batchcode,islicode,`name`,uscc,userType,authType,certType,idNumber,cellPhone,publicAccount,
id,batchcode,islicode,`name`,uscc,userType,authtype,certtype,idnumber,cellPhone,publicAccount,
legalsName,legalsType,legalsIdnum,legalsCellPhone,bankCardType,bankType,bankName,bankAccountName,
certIdnum,bankCellPhone,bankAddress,`state`,registertime,attesttime,tickettime,ticketid,
ticketmoney,ticketurl,ticketimage,ticket_status as ticketStatus
@ -37,7 +37,7 @@
<!-- 订单结算 -->
<select id="ordercs" resultType="cn.chjyj.szwh.vo.SettleVo" parameterType="java.util.Map">
SELECT u.islicode as islicode,u.`name`,u.publicAccount,
u.bankName,u.userType,o.close_status FROM order_user u
u.bankName,u.usertype,o.close_status FROM order_user u
INNER JOIN `order` o ON u.batchcode=o.batchcode
<where>
<if test="map!=null">
@ -99,12 +99,12 @@
</select>
<!--新增用户-->
<insert id="addOrderUser" parameterType="cn.chjyj.szwh.bean.OrderUser" useGeneratedKeys="true" keyColumn="id">
<insert id="addOrderUser" parameterType="cn.chjyj.szwh.bean.OrderUser" useGeneratedKeys="true" keyProperty="id" keyColumn="id">
insert into <include refid="tbName"/>
(batchcode,islicode,`name`,uscc,userType,authType,certType,idNumber,cellPhone,publicAccount,
(batchcode,islicode,`name`,uscc,usertype,authType,certType,idNumber,cellPhone,publicAccount,
legalsName,legalsType,legalsIdnum,legalsCellPhone,bankCardType,bankType,bankName,bankAccountName,
certIdnum,bankCellPhone,bankAddress,`state`,registertime,attesttime,tickettime,ticketid,
ticketmoney,ticketurl,ticketimage,ticket_status as ticketStatus)
ticketmoney,ticketurl,ticketimage,ticket_status)
values (
#{batchcode},
#{islicode},
@ -120,6 +120,7 @@
#{legalsType},
#{legalsIdnum},
#{legalsCellPhone},
#{bankCardType},
#{bankType},
#{bankName},
#{bankAccountName},

Loading…
Cancel
Save