Browse Source

修复创建订单的故障

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

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

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

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

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

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

@ -5,7 +5,7 @@
<mapper namespace="cn.chjyj.szwh.mapper.OrderUserMapper"> <mapper namespace="cn.chjyj.szwh.mapper.OrderUserMapper">
<sql id="column"> <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, legalsName,legalsType,legalsIdnum,legalsCellPhone,bankCardType,bankType,bankName,bankAccountName,
certIdnum,bankCellPhone,bankAddress,`state`,registertime,attesttime,tickettime,ticketid, certIdnum,bankCellPhone,bankAddress,`state`,registertime,attesttime,tickettime,ticketid,
ticketmoney,ticketurl,ticketimage,ticket_status as ticketStatus 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 id="ordercs" resultType="cn.chjyj.szwh.vo.SettleVo" parameterType="java.util.Map">
SELECT u.islicode as islicode,u.`name`,u.publicAccount, 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 INNER JOIN `order` o ON u.batchcode=o.batchcode
<where> <where>
<if test="map!=null"> <if test="map!=null">
@ -99,12 +99,12 @@
</select> </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"/> 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, legalsName,legalsType,legalsIdnum,legalsCellPhone,bankCardType,bankType,bankName,bankAccountName,
certIdnum,bankCellPhone,bankAddress,`state`,registertime,attesttime,tickettime,ticketid, certIdnum,bankCellPhone,bankAddress,`state`,registertime,attesttime,tickettime,ticketid,
ticketmoney,ticketurl,ticketimage,ticket_status as ticketStatus) ticketmoney,ticketurl,ticketimage,ticket_status)
values ( values (
#{batchcode}, #{batchcode},
#{islicode}, #{islicode},
@ -120,6 +120,7 @@
#{legalsType}, #{legalsType},
#{legalsIdnum}, #{legalsIdnum},
#{legalsCellPhone}, #{legalsCellPhone},
#{bankCardType},
#{bankType}, #{bankType},
#{bankName}, #{bankName},
#{bankAccountName}, #{bankAccountName},

Loading…
Cancel
Save