Commit 14e743e7 by jinxin

审核订单接口

parent e0b235b3
...@@ -7,6 +7,7 @@ import com.gic.haoban.manage.api.dto.licence.LicenceOrderPageDTO; ...@@ -7,6 +7,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.LicenceOrderPageQDTO;
import com.gic.haoban.manage.api.dto.qdto.licence.LicenceOrderQDTO; import com.gic.haoban.manage.api.dto.qdto.licence.LicenceOrderQDTO;
import java.text.ParseException;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
......
...@@ -100,10 +100,9 @@ public interface TabHaobanLicenceOrderMapper { ...@@ -100,10 +100,9 @@ public interface TabHaobanLicenceOrderMapper {
/** /**
* *
* @param qywxOrderId 企业微信订单id * @param qywxOrderId 企业微信订单id
* @param wxEnterpriseId
* @return * @return
*/ */
TabHaobanLicenceOrder selectByQywxOrderId(@Param("qywxOrderId") String qywxOrderId,@Param("wxEnterpriseId") String wxEnterpriseId); TabHaobanLicenceOrder selectByQywxOrderId(@Param("qywxOrderId") String qywxOrderId);
/** /**
* 保存企业微信订单id * 保存企业微信订单id
...@@ -120,4 +119,13 @@ public interface TabHaobanLicenceOrderMapper { ...@@ -120,4 +119,13 @@ public interface TabHaobanLicenceOrderMapper {
Integer saveOrderCheckReason(@Param("orderId") Long orderId, @Param("reason") String reason,@Param("type") Integer type); Integer saveOrderCheckReason(@Param("orderId") Long orderId, @Param("reason") String reason,@Param("type") Integer type);
/**
* 记录回调时间
* @param orderId 订单id
* @param type 0 微信支付时间 1 微信退款时间 2 企业微信支付时间 3企业微信退款时间
* @param time
* @return
*/
Integer saveCallBackTime(@Param("orderId")Long orderId,@Param("type")Integer type,@Param("time")Date time);
} }
...@@ -101,10 +101,9 @@ public interface LicenceOrderService { ...@@ -101,10 +101,9 @@ public interface LicenceOrderService {
/** /**
* 查询订单详情 * 查询订单详情
* @param qywxOrderId 企业微信订单id * @param qywxOrderId 企业微信订单id
* @param wxEnterpriseId 企业微信id
* @return * @return
*/ */
TabHaobanLicenceOrder selectByQywxOrderId(String qywxOrderId,String wxEnterpriseId); TabHaobanLicenceOrder selectByQywxOrderId(String qywxOrderId);
/** /**
* 保存企业微信订单id * 保存企业微信订单id
...@@ -133,5 +132,14 @@ public interface LicenceOrderService { ...@@ -133,5 +132,14 @@ public interface LicenceOrderService {
*/ */
Boolean checkLicenceOrder(Long orderId,Integer flag,String reason,String enterpriseId,String wxEnterpriseId,String creatorName); Boolean checkLicenceOrder(Long orderId,Integer flag,String reason,String enterpriseId,String wxEnterpriseId,String creatorName);
/**
* 记录回调时间
* @param orderId 订单id
* @param type 0 微信支付时间 1 微信退款时间 2 企业微信支付时间 3企业微信退款时间
* @param time
* @return
*/
Boolean saveCallBackTime(Long orderId,Integer type,Date time);
} }
...@@ -5,6 +5,8 @@ import cn.hutool.core.util.StrUtil; ...@@ -5,6 +5,8 @@ import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.commons.Page; import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse; import com.gic.api.base.commons.ServiceResponse;
import com.gic.clerk.api.dto.ClerkDTO;
import com.gic.clerk.api.service.ClerkService;
import com.gic.commons.util.DateUtil; import com.gic.commons.util.DateUtil;
import com.gic.commons.util.PageHelperUtils; import com.gic.commons.util.PageHelperUtils;
import com.gic.commons.util.UniqueIdUtils; import com.gic.commons.util.UniqueIdUtils;
...@@ -15,12 +17,15 @@ import com.gic.haoban.manage.api.dto.licence.LicenceOrderPageDTO; ...@@ -15,12 +17,15 @@ 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.LicenceOrderPageQDTO;
import com.gic.haoban.manage.api.dto.qdto.licence.LicenceOrderQDTO; import com.gic.haoban.manage.api.dto.qdto.licence.LicenceOrderQDTO;
import com.gic.haoban.manage.api.service.WxEnterpriseApiService; import com.gic.haoban.manage.api.service.WxEnterpriseApiService;
import com.gic.haoban.manage.service.config.Config;
import com.gic.haoban.manage.service.dao.mapper.licence.TabHaobanLicenceOrderMapper; import com.gic.haoban.manage.service.dao.mapper.licence.TabHaobanLicenceOrderMapper;
import com.gic.haoban.manage.service.dao.mapper.licence.TabHaobanLicenceOrderProgressMapper; import com.gic.haoban.manage.service.dao.mapper.licence.TabHaobanLicenceOrderProgressMapper;
import com.gic.haoban.manage.service.entity.licence.TabHaobanLicenceOrder; import com.gic.haoban.manage.service.entity.licence.TabHaobanLicenceOrder;
import com.gic.haoban.manage.service.entity.licence.TabHaobanLicenceOrderProgress; import com.gic.haoban.manage.service.entity.licence.TabHaobanLicenceOrderProgress;
import com.gic.haoban.manage.service.service.licence.LicenceOrderService; import com.gic.haoban.manage.service.service.licence.LicenceOrderService;
import com.gic.haoban.manage.service.util.DingUtils; import com.gic.haoban.manage.service.util.DingUtils;
import com.gic.marketing.api.dto.SmsSendResponseDTO;
import com.gic.marketing.api.service.AccountOverdueSmsSendService;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.checkerframework.checker.units.qual.A; import org.checkerframework.checker.units.qual.A;
...@@ -28,9 +33,7 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -28,9 +33,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList; import java.util.*;
import java.util.Date;
import java.util.List;
/** /**
* @description: * @description:
...@@ -49,6 +52,12 @@ public class LicenceOrderServiceImpl implements LicenceOrderService { ...@@ -49,6 +52,12 @@ public class LicenceOrderServiceImpl implements LicenceOrderService {
@Autowired @Autowired
private WxEnterpriseApiService wxEnterpriseApiService; private WxEnterpriseApiService wxEnterpriseApiService;
@Autowired
private AccountOverdueSmsSendService accountOverdueSmsSendService;
@Autowired
private ClerkService clerkService;
@Autowired
private Config config;
@Override @Override
public TabHaobanLicenceOrder getLicenceOrderDetail(Long orderId) { public TabHaobanLicenceOrder getLicenceOrderDetail(Long orderId) {
...@@ -176,7 +185,15 @@ public class LicenceOrderServiceImpl implements LicenceOrderService { ...@@ -176,7 +185,15 @@ public class LicenceOrderServiceImpl implements LicenceOrderService {
} }
String dateToStr = DateUtil.dateToStr(new Date(), DateUtil.FORMAT_DATETIME_19); String dateToStr = DateUtil.dateToStr(new Date(), DateUtil.FORMAT_DATETIME_19);
//发送钉钉消息通知 //发送钉钉消息通知
String msg = "标题:企微账号许可通知\n品牌名称:"+enterpriseName+"\n"+"企业名称:"+wxEnterpriseName+"\n"+"消息内容:"+dateToStr+"订单编号为"+tabHaobanLicenceOrder.getTransactionId()+",请尽快处理"; String host = config.getHost();
// 最后一个分隔符位置
int lastIndex = host.lastIndexOf("/");
// 倒数第二个分隔符位置
int secondLastIndex = host.lastIndexOf("/", lastIndex - 1);
String subHost = host.substring(0, secondLastIndex + 1);
String url = subHost + "enterprise-operation/#/finance-config/wx-order-detail?tabId=wx_account_order&orderId="+orderId;
String msg = "标题:企微账号许可通知\n品牌名称:"+enterpriseName+"\n"+"企业名称:"+wxEnterpriseName+"\n"+"消息内容:"+dateToStr+
"订单编号为"+tabHaobanLicenceOrder.getTransactionId()+",请尽快处理!\n"+url;
DingUtils.send(msg,"https://oapi.dingtalk.com/robot/send?access_token=63074c9fc1ac2c00aa62477facdf16e5fa2388cf6a621edba1fb05d6e55d031f",false); DingUtils.send(msg,"https://oapi.dingtalk.com/robot/send?access_token=63074c9fc1ac2c00aa62477facdf16e5fa2388cf6a621edba1fb05d6e55d031f",false);
return true; return true;
} }
...@@ -223,8 +240,8 @@ public class LicenceOrderServiceImpl implements LicenceOrderService { ...@@ -223,8 +240,8 @@ public class LicenceOrderServiceImpl implements LicenceOrderService {
} }
@Override @Override
public TabHaobanLicenceOrder selectByQywxOrderId(String qywxOrderId, String wxEnterpriseId) { public TabHaobanLicenceOrder selectByQywxOrderId(String qywxOrderId) {
return tabHaobanLicenceOrderMapper.selectByQywxOrderId(qywxOrderId,wxEnterpriseId); return tabHaobanLicenceOrderMapper.selectByQywxOrderId(qywxOrderId);
} }
@Override @Override
...@@ -245,19 +262,36 @@ public class LicenceOrderServiceImpl implements LicenceOrderService { ...@@ -245,19 +262,36 @@ public class LicenceOrderServiceImpl implements LicenceOrderService {
@Override @Override
public Boolean checkLicenceOrder(Long orderId, Integer flag, String reason, String enterpriseId, String wxEnterpriseId, String creatorName) { public Boolean checkLicenceOrder(Long orderId, Integer flag, String reason, String enterpriseId, String wxEnterpriseId, String creatorName) {
TabHaobanLicenceOrder order = tabHaobanLicenceOrderMapper.selectById(orderId);
if (null ==order){
return false;
}
if (flag == 0){ if (flag == 0){
//更新微信订单状态 //更新微信订单状态
tabHaobanLicenceOrderMapper.saveOrderCheckReason(orderId,reason,0); tabHaobanLicenceOrderMapper.saveOrderCheckReason(orderId,reason,0);
//记录订单进度 //记录订单进度
saveOrderProgress(orderId,"审核未通过,请重新上传凭证",enterpriseId,wxEnterpriseId,creatorName,0,null,reason); saveOrderProgress(orderId,"审核未通过,请重新上传凭证",enterpriseId,wxEnterpriseId,creatorName,0,null,reason);
//短信通知
ClerkDTO clerkDTO = clerkService.getClerkByClerkId(order.getCreatorId());
if (clerkDTO!=null){
Map<String, String> params = new HashMap<>();
params.put("1", "企微企业名称");
params.put("2", "订单号");
SmsSendResponseDTO resp = accountOverdueSmsSendService.smsSend("-1", clerkDTO.getPhoneNumber(),
"86", 106, params);
}
}else { }else {
//更新微信订单状态 //更新微信订单状态
tabHaobanLicenceOrderMapper.updateLicenceOrderType(orderId,1); tabHaobanLicenceOrderMapper.updateLicenceOrderType(orderId,1);
//记录订单进度 //记录订单进度
saveOrderProgress(orderId,"已支付",enterpriseId,wxEnterpriseId,creatorName,0,null,null); saveOrderProgress(orderId,"已支付",enterpriseId,wxEnterpriseId,creatorName,0,null,null);
} }
return true;
}
return null; @Override
public Boolean saveCallBackTime(Long orderId, Integer type, Date time) {
tabHaobanLicenceOrderMapper.saveCallBackTime(orderId,type,time);
return true;
} }
} }
...@@ -34,6 +34,8 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -34,6 +34,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
...@@ -129,12 +131,15 @@ public class LicenceOrderApiServiceImpl implements LicenceOrderApiService { ...@@ -129,12 +131,15 @@ public class LicenceOrderApiServiceImpl implements LicenceOrderApiService {
return ServiceResponse.success(false); return ServiceResponse.success(false);
} }
WxEnterpriseDTO wxEnterpriseDTO = wxEnterpriseService.selectById(wxEnterpriseId); WxEnterpriseDTO wxEnterpriseDTO = wxEnterpriseService.selectById(wxEnterpriseId);
if (wxEnterpriseDTO == null){
return ServiceResponse.success(false);
}
String openCorpid = wxEnterpriseDTO.getOpenCorpid(); String openCorpid = wxEnterpriseDTO.getOpenCorpid();
String serviceCorpid = config.getCorpid(); String serviceCorpid = config.getCorpid();
CreateOrderQDTO orderQDTO = new CreateOrderQDTO(); CreateOrderQDTO orderQDTO = new CreateOrderQDTO();
orderQDTO.setBaseCount(0); orderQDTO.setBaseCount(0);
orderQDTO.setExternalCount(licenceOrderDetail.getExternalContactCount()); orderQDTO.setExternalCount(licenceOrderDetail.getExternalContactCount());
orderQDTO.setBuyerUserid(config.getBuyerUserid()); orderQDTO.setBuyerUserid("kuangdongning");
if (licenceOrderDetail.getTimeType() == 1){ if (licenceOrderDetail.getTimeType() == 1){
orderQDTO.setMonths(licenceOrderDetail.getTimeValue()); orderQDTO.setMonths(licenceOrderDetail.getTimeValue());
orderQDTO.setDays(0); orderQDTO.setDays(0);
...@@ -189,8 +194,6 @@ public class LicenceOrderApiServiceImpl implements LicenceOrderApiService { ...@@ -189,8 +194,6 @@ public class LicenceOrderApiServiceImpl implements LicenceOrderApiService {
licenceOrderService.updateLicenceOrderType(licenceOrder.getOrderId(),1,licenceOrder.getEnterpriseId(),licenceOrder.getWxEnterpriseId(),"系统",1); licenceOrderService.updateLicenceOrderType(licenceOrder.getOrderId(),1,licenceOrder.getEnterpriseId(),licenceOrder.getWxEnterpriseId(),"系统",1);
//保存微信订单id //保存微信订单id
licenceOrderService.saveTransactionCode(licenceOrder.getOrderId(), null,null,transactionId,payTime); licenceOrderService.saveTransactionCode(licenceOrder.getOrderId(), null,null,transactionId,payTime);
//生成企业微信订单
// payLicenceOrder(licenceOrder.getOrderId(),licenceOrder.getWxEnterpriseId());
//查询gic品牌名称 //查询gic品牌名称
String enterpriseName=""; String enterpriseName="";
String wxEnterpriseName=""; String wxEnterpriseName="";
...@@ -209,7 +212,7 @@ public class LicenceOrderApiServiceImpl implements LicenceOrderApiService { ...@@ -209,7 +212,7 @@ public class LicenceOrderApiServiceImpl implements LicenceOrderApiService {
} }
@Override @Override
public ServiceResponse<Boolean> qywxCallBack(String params) { public ServiceResponse<Boolean> qywxCallBack(String params){
logger.info("接收企业微信回调参数:{}",JSON.toJSONString(params)); logger.info("接收企业微信回调参数:{}",JSON.toJSONString(params));
if(StrUtil.isBlank(params)){ if(StrUtil.isBlank(params)){
return ServiceResponse.success(false); return ServiceResponse.success(false);
...@@ -220,20 +223,40 @@ public class LicenceOrderApiServiceImpl implements LicenceOrderApiService { ...@@ -220,20 +223,40 @@ public class LicenceOrderApiServiceImpl implements LicenceOrderApiService {
String orderId = object.getString("orderId"); String orderId = object.getString("orderId");
String timeStamp = object.getString("timeStamp"); String timeStamp = object.getString("timeStamp");
Integer orderStatus = object.getInteger("orderStatus"); Integer orderStatus = object.getInteger("orderStatus");
TabHaobanLicenceOrder order = licenceOrderService.selectByQywxOrderId(orderId, openCorpId); TabHaobanLicenceOrder order = licenceOrderService.selectByQywxOrderId(orderId);
//将秒级时间戳转换位Date类型
SimpleDateFormat formatter = new SimpleDateFormat(DateUtil.FORMAT_DATETIME_19);
String date_time = formatter.format(new Date(Long.valueOf(timeStamp)*1000L));
Date date = DateUtil.strToDate(date_time, DateUtil.FORMAT_DATETIME_19);
if (order==null){
return ServiceResponse.success(false);
}
if ("license_pay_success".equals(infoType)){ if ("license_pay_success".equals(infoType)){
//支付回调 if (order.getQywxPayTime() != null){
//该笔订单已处理
return ServiceResponse.success(false);
}
//更新企业微信订单状态 //更新企业微信订单状态
licenceOrderService.updateLicenceOrderType(order.getOrderId(), 1,order.getEnterpriseId(),order.getWxEnterpriseId(),"系统",0); licenceOrderService.updateLicenceOrderType(order.getOrderId(), 1,order.getEnterpriseId(),order.getWxEnterpriseId(),"系统",0);
//记录支付时间
licenceOrderService.saveCallBackTime(order.getOrderId(),2,date);
} }
if ("license_refund".equals(infoType)){ if ("license_refund".equals(infoType)){
if (order.getQywxRefundTime() != null){
//该笔订单已处理
return ServiceResponse.success(false);
}
//退款回调 订单状态,1:退款成功,2:退款被拒绝。 //退款回调 订单状态,1:退款成功,2:退款被拒绝。
if (orderStatus == 1){ if (orderStatus == 1){
licenceOrderService.updateLicenceOrderType(order.getOrderId(), 6,order.getEnterpriseId(),order.getWxEnterpriseId(),"系统",0); licenceOrderService.updateLicenceOrderType(order.getOrderId(), 6,order.getEnterpriseId(),order.getWxEnterpriseId(),"系统",0);
//微信退款 //记录退款时间
licenceOrderService.saveCallBackTime(order.getOrderId(),3,date);
//微信退款 todo
}else if (orderStatus == 2){ }else if (orderStatus == 2){
licenceOrderService.updateLicenceOrderType(order.getOrderId(), 5,order.getEnterpriseId(),order.getWxEnterpriseId(),"系统",0); licenceOrderService.updateLicenceOrderType(order.getOrderId(), 5,order.getEnterpriseId(),order.getWxEnterpriseId(),"系统",0);
//记录退款时间
licenceOrderService.saveCallBackTime(order.getOrderId(),3,date);
} }
} }
return ServiceResponse.success(true); return ServiceResponse.success(true);
......
...@@ -261,7 +261,7 @@ ...@@ -261,7 +261,7 @@
<select id="selectByQywxOrderId" resultMap="BaseResultMap"> <select id="selectByQywxOrderId" resultMap="BaseResultMap">
SELECT SELECT
<include refid="Base_Column_List"/> <include refid="Base_Column_List"/>
FROM tab_haoban_licence_order WHERE qywx_order_id = #{qywxOrderId} and delete_flag=0 and wx_enterprise_id = #{wxEnterpriseId} FROM tab_haoban_licence_order WHERE qywx_order_id = #{qywxOrderId} and delete_flag=0
</select> </select>
<update id="saveQywxOrderId"> <update id="saveQywxOrderId">
...@@ -290,4 +290,24 @@ ...@@ -290,4 +290,24 @@
and delete_flag = 0 and delete_flag = 0
</update> </update>
<update id="saveCallBackTime">
UPDATE tab_haoban_licence_order
SET
<if test="type == 0">
pay_time = #{time},
</if>
<if test="type == 1">
refund_time = #{time},
</if>
<if test="type == 2">
qywx_pay_time = #{time},
</if>
<if test="type == 3">
qywx_refund_time = #{time},
</if>
update_time = now()
WHERE order_id = #{orderId}
and delete_flag = 0
</update>
</mapper> </mapper>
\ No newline at end of file
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