Commit 14e743e7 by jinxin

审核订单接口

parent e0b235b3
......@@ -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.LicenceOrderQDTO;
import java.text.ParseException;
import java.util.Date;
import java.util.List;
......
......@@ -100,10 +100,9 @@ public interface TabHaobanLicenceOrderMapper {
/**
*
* @param qywxOrderId 企业微信订单id
* @param wxEnterpriseId
* @return
*/
TabHaobanLicenceOrder selectByQywxOrderId(@Param("qywxOrderId") String qywxOrderId,@Param("wxEnterpriseId") String wxEnterpriseId);
TabHaobanLicenceOrder selectByQywxOrderId(@Param("qywxOrderId") String qywxOrderId);
/**
* 保存企业微信订单id
......@@ -120,4 +119,13 @@ public interface TabHaobanLicenceOrderMapper {
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 {
/**
* 查询订单详情
* @param qywxOrderId 企业微信订单id
* @param wxEnterpriseId 企业微信id
* @return
*/
TabHaobanLicenceOrder selectByQywxOrderId(String qywxOrderId,String wxEnterpriseId);
TabHaobanLicenceOrder selectByQywxOrderId(String qywxOrderId);
/**
* 保存企业微信订单id
......@@ -133,5 +132,14 @@ public interface LicenceOrderService {
*/
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;
import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.commons.Page;
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.PageHelperUtils;
import com.gic.commons.util.UniqueIdUtils;
......@@ -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.LicenceOrderQDTO;
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.TabHaobanLicenceOrderProgressMapper;
import com.gic.haoban.manage.service.entity.licence.TabHaobanLicenceOrder;
import com.gic.haoban.manage.service.entity.licence.TabHaobanLicenceOrderProgress;
import com.gic.haoban.manage.service.service.licence.LicenceOrderService;
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 org.apache.commons.lang.StringUtils;
import org.checkerframework.checker.units.qual.A;
......@@ -28,9 +33,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.*;
/**
* @description:
......@@ -49,6 +52,12 @@ public class LicenceOrderServiceImpl implements LicenceOrderService {
@Autowired
private WxEnterpriseApiService wxEnterpriseApiService;
@Autowired
private AccountOverdueSmsSendService accountOverdueSmsSendService;
@Autowired
private ClerkService clerkService;
@Autowired
private Config config;
@Override
public TabHaobanLicenceOrder getLicenceOrderDetail(Long orderId) {
......@@ -176,7 +185,15 @@ public class LicenceOrderServiceImpl implements LicenceOrderService {
}
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);
return true;
}
......@@ -223,8 +240,8 @@ public class LicenceOrderServiceImpl implements LicenceOrderService {
}
@Override
public TabHaobanLicenceOrder selectByQywxOrderId(String qywxOrderId, String wxEnterpriseId) {
return tabHaobanLicenceOrderMapper.selectByQywxOrderId(qywxOrderId,wxEnterpriseId);
public TabHaobanLicenceOrder selectByQywxOrderId(String qywxOrderId) {
return tabHaobanLicenceOrderMapper.selectByQywxOrderId(qywxOrderId);
}
@Override
......@@ -245,19 +262,36 @@ public class LicenceOrderServiceImpl implements LicenceOrderService {
@Override
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){
//更新微信订单状态
tabHaobanLicenceOrderMapper.saveOrderCheckReason(orderId,reason,0);
//记录订单进度
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 {
//更新微信订单状态
tabHaobanLicenceOrderMapper.updateLicenceOrderType(orderId,1);
//记录订单进度
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;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
......@@ -129,12 +131,15 @@ public class LicenceOrderApiServiceImpl implements LicenceOrderApiService {
return ServiceResponse.success(false);
}
WxEnterpriseDTO wxEnterpriseDTO = wxEnterpriseService.selectById(wxEnterpriseId);
if (wxEnterpriseDTO == null){
return ServiceResponse.success(false);
}
String openCorpid = wxEnterpriseDTO.getOpenCorpid();
String serviceCorpid = config.getCorpid();
CreateOrderQDTO orderQDTO = new CreateOrderQDTO();
orderQDTO.setBaseCount(0);
orderQDTO.setExternalCount(licenceOrderDetail.getExternalContactCount());
orderQDTO.setBuyerUserid(config.getBuyerUserid());
orderQDTO.setBuyerUserid("kuangdongning");
if (licenceOrderDetail.getTimeType() == 1){
orderQDTO.setMonths(licenceOrderDetail.getTimeValue());
orderQDTO.setDays(0);
......@@ -189,8 +194,6 @@ public class LicenceOrderApiServiceImpl implements LicenceOrderApiService {
licenceOrderService.updateLicenceOrderType(licenceOrder.getOrderId(),1,licenceOrder.getEnterpriseId(),licenceOrder.getWxEnterpriseId(),"系统",1);
//保存微信订单id
licenceOrderService.saveTransactionCode(licenceOrder.getOrderId(), null,null,transactionId,payTime);
//生成企业微信订单
// payLicenceOrder(licenceOrder.getOrderId(),licenceOrder.getWxEnterpriseId());
//查询gic品牌名称
String enterpriseName="";
String wxEnterpriseName="";
......@@ -209,7 +212,7 @@ public class LicenceOrderApiServiceImpl implements LicenceOrderApiService {
}
@Override
public ServiceResponse<Boolean> qywxCallBack(String params) {
public ServiceResponse<Boolean> qywxCallBack(String params){
logger.info("接收企业微信回调参数:{}",JSON.toJSONString(params));
if(StrUtil.isBlank(params)){
return ServiceResponse.success(false);
......@@ -220,20 +223,40 @@ public class LicenceOrderApiServiceImpl implements LicenceOrderApiService {
String orderId = object.getString("orderId");
String timeStamp = object.getString("timeStamp");
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 (order.getQywxPayTime() != null){
//该笔订单已处理
return ServiceResponse.success(false);
}
//更新企业微信订单状态
licenceOrderService.updateLicenceOrderType(order.getOrderId(), 1,order.getEnterpriseId(),order.getWxEnterpriseId(),"系统",0);
//记录支付时间
licenceOrderService.saveCallBackTime(order.getOrderId(),2,date);
}
if ("license_refund".equals(infoType)){
if (order.getQywxRefundTime() != null){
//该笔订单已处理
return ServiceResponse.success(false);
}
//退款回调 订单状态,1:退款成功,2:退款被拒绝。
if (orderStatus == 1){
licenceOrderService.updateLicenceOrderType(order.getOrderId(), 6,order.getEnterpriseId(),order.getWxEnterpriseId(),"系统",0);
//微信退款
//记录退款时间
licenceOrderService.saveCallBackTime(order.getOrderId(),3,date);
//微信退款 todo
}else if (orderStatus == 2){
licenceOrderService.updateLicenceOrderType(order.getOrderId(), 5,order.getEnterpriseId(),order.getWxEnterpriseId(),"系统",0);
//记录退款时间
licenceOrderService.saveCallBackTime(order.getOrderId(),3,date);
}
}
return ServiceResponse.success(true);
......
......@@ -261,7 +261,7 @@
<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}
FROM tab_haoban_licence_order WHERE qywx_order_id = #{qywxOrderId} and delete_flag=0
</select>
<update id="saveQywxOrderId">
......@@ -290,4 +290,24 @@
and delete_flag = 0
</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>
\ 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