Commit 466db39d by jinxin

接口开发

parent 209d4f6f
......@@ -54,9 +54,10 @@ public interface LicenceOrderApiService {
*
* @param orderId 订单id
* @param type 订单状态
* @param wxFlag 1微信订单状态 0 企业微信订单状态
* @return
*/
ServiceResponse<Boolean> updateLicenceOrderType(Long orderId, Integer type,String enterpriseId,String wxEnterpriseId,String creatorName);
ServiceResponse<Boolean> updateLicenceOrderType(Long orderId, Integer type,String enterpriseId,String wxEnterpriseId,String creatorName,Integer wxFlag);
/**
* 订单凭证上传
......
......@@ -89,10 +89,26 @@ public interface TabHaobanLicenceOrderMapper {
/**
* 获取订单详情
*
* @param transactionId
* @param transactionId 微信订单id
* @return
*/
TabHaobanLicenceOrder selectByTransactionId(@Param("transactionId") String transactionId);
/**
*
* @param qywxOrderId 企业微信订单id
* @param wxEnterpriseId
* @return
*/
TabHaobanLicenceOrder selectByQywxOrderId(@Param("qywxOrderId") String qywxOrderId,@Param("wxEnterpriseId") String wxEnterpriseId);
/**
* 保存企业微信订单id
*
* @param orderId
* @param qywxOrderId
* @return
*/
Integer saveQywxOrderId(@Param("orderId") Long orderId, @Param("qywxOrderId") String qywxOrderId);
}
......@@ -5,6 +5,7 @@ import com.gic.haoban.manage.api.dto.licence.LicenceOrderPageDTO;
import com.gic.haoban.manage.api.dto.qdto.licence.LicenceOrderPageQDTO;
import com.gic.haoban.manage.api.dto.qdto.licence.LicenceOrderQDTO;
import com.gic.haoban.manage.service.entity.licence.TabHaobanLicenceOrder;
import org.apache.ibatis.annotations.Param;
/**
* <p>
......@@ -44,9 +45,10 @@ public interface LicenceOrderService {
*
* @param orderId 订单id
* @param type 订单状态
* @param wxFlag 1微信订单状态 0 企业微信订单状态
* @return
*/
Boolean updateLicenceOrderType(Long orderId, Integer type, String enterpriseId, String wxEnterpriseId, String creatorName);
Boolean updateLicenceOrderType(Long orderId, Integer type, String enterpriseId, String wxEnterpriseId, String creatorName, Integer wxFlag);
/**
* 上次订单支付凭证
......@@ -75,20 +77,39 @@ public interface LicenceOrderService {
/**
* 保存微信交易信息
* @param orderId 订单id
*
* @param orderId 订单id
* @param transactionCode 订单编号
* @param prepayId 微信预支付id
* @param wxOrderId 微信支付id
* @param prepayId 微信预支付id
* @param wxOrderId 微信支付id
* @return
*/
Integer saveTransactionCode(Long orderId, String transactionCode, String prepayId, String wxOrderId);
/**
* 查询企业微信订单详情
* 查询微信订单详情
*
* @param transactionId 订单编号
* @return
*/
TabHaobanLicenceOrder selectByTransactionId(String transactionId);
/**
* 查询订单详情
* @param qywxOrderId 企业微信订单id
* @param wxEnterpriseId 企业微信id
* @return
*/
TabHaobanLicenceOrder selectByQywxOrderId(String qywxOrderId,String wxEnterpriseId);
/**
* 保存企业微信订单id
*
* @param orderId
* @param qywxOrderId
* @return
*/
Integer saveQywxOrderId(Long orderId, String qywxOrderId);
}
......@@ -100,27 +100,43 @@ public class LicenceOrderServiceImpl implements LicenceOrderService {
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateLicenceOrderType(Long orderId, Integer type,String enterpriseId,String wxEnterpriseId,String creatorName) {
tabHaobanLicenceOrderMapper.updateLicenceOrderType(orderId,type);
public Boolean updateLicenceOrderType(Long orderId, Integer type,String enterpriseId,String wxEnterpriseId,String creatorName,Integer wxFlag) {
if(wxFlag == 1){
//更新微信订单状态
tabHaobanLicenceOrderMapper.updateLicenceOrderType(orderId,type);
}else {
//更新企业微信订单状态
tabHaobanLicenceOrderMapper.updateQywxOrderType(orderId,type);
}
//记录订单进度
switch (type){
case 0:
saveOrderProgress(orderId,"创建订单",enterpriseId,wxEnterpriseId,creatorName,1,null,null);
saveOrderProgress(orderId,"创建订单",enterpriseId,wxEnterpriseId,creatorName,wxFlag,null,null);
break;
case 1:
saveOrderProgress(orderId,"已支付",enterpriseId,wxEnterpriseId,creatorName,1,null,null);
saveOrderProgress(orderId,"已支付",enterpriseId,wxEnterpriseId,creatorName,wxFlag,null,null);
break;
case 2:
saveOrderProgress(orderId,"已取消",enterpriseId,wxEnterpriseId,creatorName,1,null,null);
saveOrderProgress(orderId,"已取消",enterpriseId,wxEnterpriseId,creatorName,wxFlag,null,null);
break;
case 3:
saveOrderProgress(orderId,"已过期",enterpriseId,wxEnterpriseId,creatorName,1,null,null);
saveOrderProgress(orderId,"已过期",enterpriseId,wxEnterpriseId,creatorName,wxFlag,null,null);
break;
case 4:
saveOrderProgress(orderId,"已退款",enterpriseId,wxEnterpriseId,creatorName,1,null,null);
if (wxFlag==1){
saveOrderProgress(orderId,"已退款",enterpriseId,wxEnterpriseId,creatorName,wxFlag,null,null);
break;
}
saveOrderProgress(orderId,"退款中",enterpriseId,wxEnterpriseId,creatorName,wxFlag,null,null);
break;
case 5:
saveOrderProgress(orderId,"凭证已上传,审核中",enterpriseId,wxEnterpriseId,creatorName,1,null,null);
saveOrderProgress(orderId,"退款被拒绝",enterpriseId,wxEnterpriseId,creatorName,wxFlag,null,null);
break;
case 6:
saveOrderProgress(orderId,"已退款",enterpriseId,wxEnterpriseId,creatorName,wxFlag,null,null);
break;
case 7:
saveOrderProgress(orderId,"以失效",enterpriseId,wxEnterpriseId,creatorName,wxFlag,null,null);
break;
default:
break;
......@@ -184,7 +200,7 @@ public class LicenceOrderServiceImpl implements LicenceOrderService {
for (TabHaobanLicenceOrder dto : licenceOrderPage){
if (dto.getExpireTime().before(new Date()) && dto.getOrderStatus() == 0){
dto.setOrderStatus(3);
updateLicenceOrderType(dto.getOrderId(), 3,qdto.getEnterpriseId(), qdto.getWxEnterpriseId(), qdto.getCreatorName());
updateLicenceOrderType(dto.getOrderId(), 3,qdto.getEnterpriseId(), qdto.getWxEnterpriseId(), qdto.getCreatorName(),1);
}
}
return PageHelperUtils.changePageHelperToCurrentPage(licenceOrderPage, LicenceOrderPageDTO.class);
......@@ -200,4 +216,14 @@ public class LicenceOrderServiceImpl implements LicenceOrderService {
public TabHaobanLicenceOrder selectByTransactionId(String transactionId) {
return tabHaobanLicenceOrderMapper.selectByTransactionId(transactionId);
}
@Override
public TabHaobanLicenceOrder selectByQywxOrderId(String qywxOrderId, String wxEnterpriseId) {
return tabHaobanLicenceOrderMapper.selectByQywxOrderId(qywxOrderId,wxEnterpriseId);
}
@Override
public Integer saveQywxOrderId(Long orderId, String qywxOrderId) {
return tabHaobanLicenceOrderMapper.saveQywxOrderId(orderId,qywxOrderId);
}
}
......@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.commons.util.DateUtil;
import com.gic.commons.util.EntityUtil;
import com.gic.enterprise.api.dto.EnterpriseDTO;
import com.gic.enterprise.api.service.EnterpriseService;
......@@ -23,6 +24,7 @@ import com.gic.haoban.manage.service.entity.licence.TabHaobanLicenceOrderProgres
import com.gic.haoban.manage.service.service.WxEnterpriseService;
import com.gic.haoban.manage.service.service.licence.LicenceOrderProgressService;
import com.gic.haoban.manage.service.service.licence.LicenceOrderService;
import com.gic.haoban.manage.service.util.DingUtils;
import com.gic.wechat.api.dto.qywx.fee.CreateOrderResponseDTO;
import com.gic.wechat.api.dto.qywx.fee.qdto.CreateOrderQDTO;
import com.gic.wechat.api.service.qywx.QywxOrderApiService;
......@@ -32,6 +34,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List;
/**
......@@ -106,8 +109,8 @@ public class LicenceOrderApiServiceImpl implements LicenceOrderApiService {
}
@Override
public ServiceResponse<Boolean> updateLicenceOrderType(Long orderId, Integer type,String enterpriseId,String wxEnterpriseId,String creatorName) {
licenceOrderService.updateLicenceOrderType(orderId,type,enterpriseId,wxEnterpriseId,creatorName);
public ServiceResponse<Boolean> updateLicenceOrderType(Long orderId, Integer type,String enterpriseId,String wxEnterpriseId,String creatorName,Integer wxFlag) {
licenceOrderService.updateLicenceOrderType(orderId,type,enterpriseId,wxEnterpriseId,creatorName,wxFlag);
return ServiceResponse.success(true);
}
......@@ -140,10 +143,14 @@ public class LicenceOrderApiServiceImpl implements LicenceOrderApiService {
orderQDTO.setDays(licenceOrderDetail.getTimeValue());
}
ServiceResponse<CreateOrderResponseDTO> newOrder = qywxOrderApiService.createNewOrder(serviceCorpid,openCorpid,orderQDTO);
logger.info("企业微信订单返回信息:{}",JSON.toJSONString(newOrder));
if (newOrder.isSuccess()){
//更新订单状态、企业微信订单状态
//更新企业微信订单状态,保存企业微信订单id
CreateOrderResponseDTO result = newOrder.getResult();
licenceOrderService.updateLicenceOrderType(licenceOrderDetail.getOrderId(),0,licenceOrderDetail.getEnterpriseId(),
licenceOrderDetail.getWxEnterpriseId(),"系统",0);
licenceOrderService.saveQywxOrderId(licenceOrderDetail.getOrderId(),result.getOrderId());
return ServiceResponse.success(true);
}
return ServiceResponse.success(false);
......@@ -169,11 +176,25 @@ public class LicenceOrderApiServiceImpl implements LicenceOrderApiService {
String timeEnd = object.getString("timeEnd");
TabHaobanLicenceOrder licenceOrder = licenceOrderService.selectByTransactionId(transactionId);
//更新订单状态
licenceOrderService.updateLicenceOrderType(licenceOrder.getOrderId(),1,licenceOrder.getEnterpriseId(),licenceOrder.getWxEnterpriseId(),"系统");
licenceOrderService.updateLicenceOrderType(licenceOrder.getOrderId(),1,licenceOrder.getEnterpriseId(),licenceOrder.getWxEnterpriseId(),"系统",1);
//保存微信订单id
licenceOrderService.saveTransactionCode(licenceOrder.getOrderId(), null,null,orderId);
//生成企业微信订单
payLicenceOrder(licenceOrder.getOrderId(),licenceOrder.getWxEnterpriseId());
// payLicenceOrder(licenceOrder.getOrderId(),licenceOrder.getWxEnterpriseId());
//查询gic品牌名称
String enterpriseName="";
String wxEnterpriseName="";
EnterpriseDTO enterpriseDTO = enterpriseService.getEnterpriseById(licenceOrder.getEnterpriseId());
if (ObjectUtil.isNotNull(enterpriseDTO)){
enterpriseName=enterpriseDTO.getEnterpriseName();
}
WxEnterpriseDTO wxEnterpriseDTO = wxEnterpriseApiService.getOne(licenceOrder.getWxEnterpriseId());
if (ObjectUtil.isNotNull(wxEnterpriseDTO)){
wxEnterpriseName=wxEnterpriseDTO.getCorpName();
}
String dateToStr = DateUtil.dateToStr(new Date(), DateUtil.FORMAT_DATETIME_19);
String msg = "标题:企微账号许可通知\n品牌名称:"+enterpriseName+"\n"+"企业名称:"+wxEnterpriseName+"\n"+"消息内容:"+dateToStr+"订单编号为"+licenceOrder.getTransactionId()+",请尽快处理";
DingUtils.send(msg,"https://oapi.dingtalk.com/robot/send?access_token=63074c9fc1ac2c00aa62477facdf16e5fa2388cf6a621edba1fb05d6e55d031f",false);
return ServiceResponse.success(true);
}
......@@ -190,12 +211,15 @@ public class LicenceOrderApiServiceImpl implements LicenceOrderApiService {
String timeStamp = object.getString("timeStamp");
Integer orderStatus = object.getInteger("orderStatus");
String buyerUserId = object.getString("buyerUserId");
TabHaobanLicenceOrder order = licenceOrderService.selectByQywxOrderId(orderId, openCorpId);
if ("license_pay_success".equals(infoType)){
//支付回调
//更新企业微信订单状态
licenceOrderService.updateLicenceOrderType(order.getOrderId(), 1,order.getEnterpriseId(),order.getWxEnterpriseId(),"系统",0);
}
if ("license_refund".equals(infoType)){
//退款回调
//退款回调 todo 根据退款状态判断
licenceOrderService.updateLicenceOrderType(order.getOrderId(), 6,order.getEnterpriseId(),order.getWxEnterpriseId(),"系统",0);
}
return ServiceResponse.success(true);
}
......
......@@ -254,4 +254,17 @@
FROM tab_haoban_licence_order WHERE transaction_id = #{transactionId} and delete_flag=0
</select>
<select id="selectByQywxOrderId" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List"/>
FROM tab_haoban_licence_order WHERE qywx_order_id = #{qywxOrderId} and delete_flag=0 and wx_enterprise_id = #{wxEnterpriseId}
</select>
<update id="saveQywxOrderId">
UPDATE tab_haoban_licence_order
SET qywx_order_id = #{qywxOrderId} ,update_time = now()
WHERE order_id = #{orderId}
and delete_flag = 0
</update>
</mapper>
\ No newline at end of file
......@@ -149,7 +149,7 @@ public class LicenceOrderController {
String enterpriseId = loginUser.getEnterpriseId();
String wxEnterpriseId = loginUser.getWxEnterpriseId();
String clerkName = loginUser.getClerkName();
Boolean result = licenceOrderApiService.updateLicenceOrderType(orderId, type,enterpriseId,wxEnterpriseId,clerkName).getResult();
Boolean result = licenceOrderApiService.updateLicenceOrderType(orderId, type,enterpriseId,wxEnterpriseId,clerkName,1).getResult();
return RestResponse.successResult(result);
}
/**
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment