Commit 5a9409be by 王祖波

Merge branch 'feature/许可账号购买二期' into 'master'

Feature/许可账号购买二期

See merge request !1212
parents 3e42e9c0 696d3790
...@@ -153,6 +153,18 @@ public class LicenceOrderDTO implements Serializable { ...@@ -153,6 +153,18 @@ public class LicenceOrderDTO implements Serializable {
* 微信url * 微信url
*/ */
private String wxUrl; private String wxUrl;
/**
* 企业微信订单过期时间
*/
private Date qywxExpireTime;
public Date getQywxExpireTime() {
return qywxExpireTime;
}
public void setQywxExpireTime(Date qywxExpireTime) {
this.qywxExpireTime = qywxExpireTime;
}
public String getWxUrl() { public String getWxUrl() {
return wxUrl; return wxUrl;
......
...@@ -131,6 +131,18 @@ public class LicenceOrderPageDTO implements Serializable { ...@@ -131,6 +131,18 @@ public class LicenceOrderPageDTO implements Serializable {
* 微信订单id * 微信订单id
*/ */
private String wxOrderId; private String wxOrderId;
/**
* 企业微信订单过期时间
*/
private Date qywxExpireTime;
public Date getQywxExpireTime() {
return qywxExpireTime;
}
public void setQywxExpireTime(Date qywxExpireTime) {
this.qywxExpireTime = qywxExpireTime;
}
public String getWxOrderId() { public String getWxOrderId() {
return wxOrderId; return wxOrderId;
......
...@@ -101,6 +101,18 @@ public class LicenceOrderQDTO implements Serializable { ...@@ -101,6 +101,18 @@ public class LicenceOrderQDTO implements Serializable {
* 创建人名称 * 创建人名称
*/ */
private String creatorName; private String creatorName;
/**
* 企业微信订单id
*/
private String qywxOrderId;
public String getQywxOrderId() {
return qywxOrderId;
}
public void setQywxOrderId(String qywxOrderId) {
this.qywxOrderId = qywxOrderId;
}
public Long getOrderId() { public Long getOrderId() {
return orderId; return orderId;
......
...@@ -151,5 +151,11 @@ public interface LicenceOrderApiService { ...@@ -151,5 +151,11 @@ public interface LicenceOrderApiService {
*/ */
ServiceResponse<HashMap<String, Integer>> hasPopup(String wxEnterpriseId); ServiceResponse<HashMap<String, Integer>> hasPopup(String wxEnterpriseId);
/**
* 查询企业微信订单状态是否过期
* @return
*/
ServiceResponse<Boolean> checkQywxOrderStatus(Long orderId);
} }
...@@ -32,6 +32,7 @@ import org.springframework.web.bind.annotation.RequestParam; ...@@ -32,6 +32,7 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
...@@ -92,6 +93,7 @@ public class LicenceOrderController { ...@@ -92,6 +93,7 @@ public class LicenceOrderController {
if (ObjectUtil.isNotNull(wxEnterpriseDTO)) { if (ObjectUtil.isNotNull(wxEnterpriseDTO)) {
vo.setWxEnterpriseName(wxEnterpriseDTO.getCorpName()); vo.setWxEnterpriseName(wxEnterpriseDTO.getCorpName());
} }
vo.setNowTime(new Date());
} }
} }
return RestResponse.successResult(result); return RestResponse.successResult(result);
...@@ -193,6 +195,18 @@ public class LicenceOrderController { ...@@ -193,6 +195,18 @@ public class LicenceOrderController {
} }
return RestResponse.failure(response.getCode(), response.getMessage()); return RestResponse.failure(response.getCode(), response.getMessage());
} }
/**
* 获取当前系统时间
*/
@RequestMapping("get-system-date")
public RestResponse<Date> getSystemDate(HttpServletRequest request) {
AuthcenterUserDetails loginUser = (AuthcenterUserDetails) SessionContextUtil.getUser(request);
if (loginUser == null) {
return RestResponse.failure(Convert.toStr(HaoBanErrCode.ERR_4.getCode()), HaoBanErrCode.ERR_4.getMsg());
}
return RestResponse.successResult(new Date());
}
} }
......
...@@ -132,6 +132,14 @@ public class LicenceOrderPageVO implements Serializable { ...@@ -132,6 +132,14 @@ public class LicenceOrderPageVO implements Serializable {
* 微信订单id * 微信订单id
*/ */
private String wxOrderId; private String wxOrderId;
/**
* 企业微信订单过期时间
*/
private Date qywxExpireTime;
/**
* 当前时间
*/
private Date nowTime;
} }
...@@ -154,5 +154,9 @@ public class LicenceOrderVO implements Serializable { ...@@ -154,5 +154,9 @@ public class LicenceOrderVO implements Serializable {
* 订单进度list * 订单进度list
*/ */
private List<LicenceOrderProgressVO> OrderProgressList; private List<LicenceOrderProgressVO> OrderProgressList;
/**
* 企业微信订单过期时间
*/
private Date qywxExpireTime;
} }
...@@ -170,6 +170,10 @@ public class TabHaobanLicenceOrder implements Serializable { ...@@ -170,6 +170,10 @@ public class TabHaobanLicenceOrder implements Serializable {
* 微信url * 微信url
*/ */
private String wxUrl; private String wxUrl;
/**
* 企业微信订单过期时间
*/
private Date qywxExpireTime;
} }
...@@ -83,8 +83,10 @@ public class LicenceOrderServiceImpl implements LicenceOrderService { ...@@ -83,8 +83,10 @@ public class LicenceOrderServiceImpl implements LicenceOrderService {
order.setOrderId(orderId); order.setOrderId(orderId);
//默认支付状态为待支付 //默认支付状态为待支付
order.setOrderStatus(0); order.setOrderStatus(0);
order.setQywxOrderStatus(0);
order.setCreateTime(now); order.setCreateTime(now);
order.setUpdateTime(now); order.setUpdateTime(now);
order.setQywxExpireTime(DateUtil.addDay(now, 10));
//生成订单编号 //生成订单编号
String num = "ZH"+orderId; String num = "ZH"+orderId;
order.setOrderNumber(num); order.setOrderNumber(num);
...@@ -98,6 +100,8 @@ public class LicenceOrderServiceImpl implements LicenceOrderService { ...@@ -98,6 +100,8 @@ public class LicenceOrderServiceImpl implements LicenceOrderService {
tabHaobanLicenceOrderMapper.insert(order); tabHaobanLicenceOrderMapper.insert(order);
//记录订单进度 //记录订单进度
saveOrderProgress(orderId,"创建订单",licenceOrderQDTO.getEnterpriseId(),licenceOrderQDTO.getWxEnterpriseId(),licenceOrderQDTO.getCreatorName(),1,null,null); saveOrderProgress(orderId,"创建订单",licenceOrderQDTO.getEnterpriseId(),licenceOrderQDTO.getWxEnterpriseId(),licenceOrderQDTO.getCreatorName(),1,null,null);
//记录企业微信订单进度
saveOrderProgress(orderId,"创建订单",licenceOrderQDTO.getEnterpriseId(),licenceOrderQDTO.getWxEnterpriseId(),licenceOrderQDTO.getCreatorName(),2,null,null);
return String.valueOf(orderId); return String.valueOf(orderId);
} }
...@@ -223,13 +227,6 @@ public class LicenceOrderServiceImpl implements LicenceOrderService { ...@@ -223,13 +227,6 @@ public class LicenceOrderServiceImpl implements LicenceOrderService {
} }
PageHelper.startPage(qdto); PageHelper.startPage(qdto);
List<TabHaobanLicenceOrder> licenceOrderPage = tabHaobanLicenceOrderMapper.getLicenceOrderPage(qdto); List<TabHaobanLicenceOrder> licenceOrderPage = tabHaobanLicenceOrderMapper.getLicenceOrderPage(qdto);
//判断订单状态,支付时间已过的订单的需要更改订单状态为已过期
for (TabHaobanLicenceOrder dto : licenceOrderPage){
if (dto.getExpireTime().before(new Date()) && dto.getOrderStatus() == 0){
dto.setOrderStatus(3);
updateLicenceOrderType(dto.getOrderId(), 3,dto.getEnterpriseId(), dto.getWxEnterpriseId(), "系统",1);
}
}
return PageHelperUtils.changePageHelperToCurrentPage(licenceOrderPage, LicenceOrderPageDTO.class); return PageHelperUtils.changePageHelperToCurrentPage(licenceOrderPage, LicenceOrderPageDTO.class);
} }
......
...@@ -124,15 +124,71 @@ public class LicenceOrderApiServiceImpl implements LicenceOrderApiService { ...@@ -124,15 +124,71 @@ public class LicenceOrderApiServiceImpl implements LicenceOrderApiService {
@Override @Override
public ServiceResponse<String> saveOrUpdateLicenceOrder(LicenceOrderQDTO licenceOrderQDTO) { public ServiceResponse<String> saveOrUpdateLicenceOrder(LicenceOrderQDTO licenceOrderQDTO) {
//创建企业微信订单,查询企业微信订单详情,返回订单金额
WxEnterpriseDTO wxEnterpriseDTO = wxEnterpriseService.selectById(licenceOrderQDTO.getWxEnterpriseId());
if (wxEnterpriseDTO == null) {
return ServiceResponse.failure("-9999", "企业微信不存在!!");
}
String openCorpid = wxEnterpriseDTO.getOpenCorpid();
String serviceCorpid = config.getCorpid();
CreateOrderQDTO orderQDTO = new CreateOrderQDTO();
orderQDTO.setBaseCount(0);
orderQDTO.setExternalCount(licenceOrderQDTO.getExternalContactCount());
orderQDTO.setBuyerUserid(config.getBuyerUserid());
if (licenceOrderQDTO.getTimeType() == 1) {
orderQDTO.setMonths(licenceOrderQDTO.getTimeValue());
orderQDTO.setDays(0);
} else {
orderQDTO.setMonths(0);
orderQDTO.setDays(licenceOrderQDTO.getTimeValue());
}
ServiceResponse<CreateOrderResponseDTO> newOrder = qywxOrderApiService.createNewOrder(serviceCorpid, openCorpid, orderQDTO);
logger.info("企业微信订单返回信息:{}", JSON.toJSONString(newOrder));
if (newOrder.isSuccess()) {
//更新企业微信订单状态,保存企业微信订单id
String qywxOrderId = newOrder.getResult().getOrderId();
//查询订单详情,获取订单金额
FeeOrderDeatilResponseDTO dto = qywxUserApiService.getOrder(openCorpid, serviceCorpid, qywxOrderId);
logger.info("查询企业微信订单详情返回信息:{}", JSON.toJSONString(dto));
if (null != dto && 0 == dto.getErrcode()){
Integer price = dto.getOrder().getPrice();
licenceOrderQDTO.setQywxOrderId(qywxOrderId);
licenceOrderQDTO.setPrice(price);
String s = licenceOrderService.saveOrUpdateLicenceOrder(licenceOrderQDTO); String s = licenceOrderService.saveOrUpdateLicenceOrder(licenceOrderQDTO);
return ServiceResponse.success(s); JSONObject jsonObject = new JSONObject();
jsonObject.put("orderId",s);
jsonObject.put("price",price);
return ServiceResponse.success(JSON.toJSONString(jsonObject));
}
return ServiceResponse.failure(String.valueOf(dto.getErrcode()), dto.getErrmsg());
}
return ServiceResponse.failure(newOrder.getCode(), newOrder.getMessage());
} }
@Override @Override
public ServiceResponse<Page<LicenceOrderPageDTO>> getLicenceOrderPage(LicenceOrderPageQDTO licenceOrderPageQDTO) { public ServiceResponse<Page<LicenceOrderPageDTO>> getLicenceOrderPage(LicenceOrderPageQDTO licenceOrderPageQDTO) {
Page<LicenceOrderPageDTO> licenceOrderPage = licenceOrderService.getLicenceOrderPage(licenceOrderPageQDTO); Page<LicenceOrderPageDTO> licenceOrderPage = licenceOrderService.getLicenceOrderPage(licenceOrderPageQDTO);
List<LicenceOrderPageDTO> list = licenceOrderPage.getResult();
if (CollUtil.isNotEmpty(list)){
//判断订单状态,支付时间已过的订单的需要更改订单状态为已过期
for (LicenceOrderPageDTO dto : list){
Date now = new Date();
if (null!=dto.getExpireTime() && dto.getExpireTime().before(now) && dto.getOrderStatus() == 0){
dto.setOrderStatus(3);
updateLicenceOrderType(dto.getOrderId(), 3,dto.getEnterpriseId(), dto.getWxEnterpriseId(), "系统",1);
//取消企业微信订单
cancelQywxOrder(dto.getOrderId());
}
if (null!=dto.getQywxExpireTime() && dto.getQywxExpireTime().before(now) && dto.getQywxOrderStatus() == 0){
dto.setQywxOrderStatus(3);
updateLicenceOrderType(dto.getOrderId(), 3,dto.getEnterpriseId(), dto.getWxEnterpriseId(), "系统",0);
}
}
licenceOrderPage.setResult(list);
return ServiceResponse.success(licenceOrderPage); return ServiceResponse.success(licenceOrderPage);
} }
return ServiceResponse.success(new Page<>());
}
@Override @Override
public ServiceResponse<Boolean> updateLicenceOrderType(Long orderId, Integer type, String enterpriseId, String wxEnterpriseId, String creatorName, Integer wxFlag) { public ServiceResponse<Boolean> updateLicenceOrderType(Long orderId, Integer type, String enterpriseId, String wxEnterpriseId, String creatorName, Integer wxFlag) {
...@@ -142,8 +198,11 @@ public class LicenceOrderApiServiceImpl implements LicenceOrderApiService { ...@@ -142,8 +198,11 @@ public class LicenceOrderApiServiceImpl implements LicenceOrderApiService {
@Override @Override
public ServiceResponse<Boolean> uploadLicenceOrderVoucher(Long orderId, String voucher, String enterpriseId, String wxEnterpriseId, String creatorName) { public ServiceResponse<Boolean> uploadLicenceOrderVoucher(Long orderId, String voucher, String enterpriseId, String wxEnterpriseId, String creatorName) {
ServiceResponse<Boolean> response = checkQywxOrderStatus(orderId);
if (response.isSuccess()){
licenceOrderService.uploadLicenceOrderVoucher(orderId, voucher, enterpriseId, wxEnterpriseId, creatorName); licenceOrderService.uploadLicenceOrderVoucher(orderId, voucher, enterpriseId, wxEnterpriseId, creatorName);
return ServiceResponse.success(true); }
return response;
} }
@Override @Override
...@@ -285,12 +344,14 @@ public class LicenceOrderApiServiceImpl implements LicenceOrderApiService { ...@@ -285,12 +344,14 @@ public class LicenceOrderApiServiceImpl implements LicenceOrderApiService {
String date_time = formatter.format(new Date(Long.valueOf(timeStamp) * 1000L)); String date_time = formatter.format(new Date(Long.valueOf(timeStamp) * 1000L));
Date date = DateUtil.strToDate(date_time, DateUtil.FORMAT_DATETIME_19); Date date = DateUtil.strToDate(date_time, DateUtil.FORMAT_DATETIME_19);
if (order == null) { if (order == null) {
logger.info("该笔订单不存在!");
RedisUtil.unlock(key); RedisUtil.unlock(key);
return ServiceResponse.success(false); return ServiceResponse.success(false);
} }
if ("license_pay_success".equals(infoType)) { if ("license_pay_success".equals(infoType)) {
if (order.getQywxPayTime() != null) { if (order.getQywxPayTime() != null && order.getQywxOrderStatus() != 0) {
//该笔订单已处理 //该笔订单已处理
logger.info("该笔订单已处理!");
RedisUtil.unlock(key); RedisUtil.unlock(key);
return ServiceResponse.success(false); return ServiceResponse.success(false);
} }
...@@ -302,6 +363,7 @@ public class LicenceOrderApiServiceImpl implements LicenceOrderApiService { ...@@ -302,6 +363,7 @@ public class LicenceOrderApiServiceImpl implements LicenceOrderApiService {
if ("license_refund".equals(infoType)) { if ("license_refund".equals(infoType)) {
if (order.getQywxRefundTime() != null) { if (order.getQywxRefundTime() != null) {
//该笔订单已处理 //该笔订单已处理
logger.info("该笔订单已处理!");
RedisUtil.unlock(key); RedisUtil.unlock(key);
return ServiceResponse.success(false); return ServiceResponse.success(false);
} }
...@@ -350,8 +412,8 @@ public class LicenceOrderApiServiceImpl implements LicenceOrderApiService { ...@@ -350,8 +412,8 @@ public class LicenceOrderApiServiceImpl implements LicenceOrderApiService {
licenceOrderService.updateLicenceOrderType(order.getOrderId(), 4, order.getEnterpriseId(), order.getWxEnterpriseId(), "系统", 1); licenceOrderService.updateLicenceOrderType(order.getOrderId(), 4, order.getEnterpriseId(), order.getWxEnterpriseId(), "系统", 1);
return ServiceResponse.success(true); return ServiceResponse.success(true);
} }
if (4 == order.getOrderStatus()){ if (1 != order.getOrderStatus()){
return ServiceResponse.failure("-9999", "该笔订单已退款!"); return ServiceResponse.failure("-9999", "该笔订单不是已支付状态!");
} }
RefundReqDataDTO reqData = new RefundReqDataDTO(order.getWxOrderId(), null, null, String.valueOf(orderId), order.getPrice(), RefundReqDataDTO reqData = new RefundReqDataDTO(order.getWxOrderId(), null, null, String.valueOf(orderId), order.getPrice(),
order.getPrice(), null, null); order.getPrice(), null, null);
...@@ -412,8 +474,8 @@ public class LicenceOrderApiServiceImpl implements LicenceOrderApiService { ...@@ -412,8 +474,8 @@ public class LicenceOrderApiServiceImpl implements LicenceOrderApiService {
if (wxEnterpriseDTO == null) { if (wxEnterpriseDTO == null) {
return ServiceResponse.failure("-9999", "微信企业不存在!!"); return ServiceResponse.failure("-9999", "微信企业不存在!!");
} }
//先申请微信退款,再取消企业微信订单 //取消企业微信订单,退款由财务人员手动触发
wxRefund(orderId); // wxRefund(orderId);
String openCorpid = wxEnterpriseDTO.getOpenCorpid(); String openCorpid = wxEnterpriseDTO.getOpenCorpid();
String serviceCorpid = config.getCorpid(); String serviceCorpid = config.getCorpid();
ServiceResponse<QywxResponseDTO> response = qywxOrderApiService.cancelOrder(serviceCorpid, openCorpid, order.getQywxOrderId()); ServiceResponse<QywxResponseDTO> response = qywxOrderApiService.cancelOrder(serviceCorpid, openCorpid, order.getQywxOrderId());
...@@ -450,4 +512,29 @@ public class LicenceOrderApiServiceImpl implements LicenceOrderApiService { ...@@ -450,4 +512,29 @@ public class LicenceOrderApiServiceImpl implements LicenceOrderApiService {
return ServiceResponse.success(map); return ServiceResponse.success(map);
} }
@Override
public ServiceResponse<Boolean> checkQywxOrderStatus(Long orderId) {
//查询企业微信订单状态是否过期,过期则不能上传订单支付凭证
TabHaobanLicenceOrder order = licenceOrderService.getLicenceOrderDetail(orderId);
if (null == order){
return ServiceResponse.failure("9999", "订单不存在!!");
}
WxEnterpriseDTO wxEnterpriseDTO = wxEnterpriseService.selectById(order.getWxEnterpriseId());
if (wxEnterpriseDTO == null) {
return ServiceResponse.failure("9999", "微信企业不存在!!");
}
String openCorpid = wxEnterpriseDTO.getOpenCorpid();
String serviceCorpid = config.getCorpid();
FeeOrderDeatilResponseDTO dto = qywxUserApiService.getOrder(openCorpid, serviceCorpid, order.getQywxOrderId());
if (null != dto && null != dto.getOrder() && dto.getOrder().getOrderStatus() == 3){
//订单失效,记录订单状态
licenceOrderService.updateLicenceOrderType(order.getOrderId(), 3, order.getEnterpriseId(),
order.getWxEnterpriseId(), "系统", 0);
licenceOrderService.updateLicenceOrderType(order.getOrderId(), 2, order.getEnterpriseId(),
order.getWxEnterpriseId(), "系统", 1);
return ServiceResponse.failure("-9999","企业微信订单已过期!");
}
return ServiceResponse.success();
}
} }
...@@ -33,6 +33,7 @@ ...@@ -33,6 +33,7 @@
<result column="prepay_id" property="prepayId"/> <result column="prepay_id" property="prepayId"/>
<result column="wx_order_id" property="wxOrderId"/> <result column="wx_order_id" property="wxOrderId"/>
<result column="wx_url" property="wxUrl"/> <result column="wx_url" property="wxUrl"/>
<result column="qywx_expire_time" property="qywxExpireTime"/>
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
order_id, order_id,
...@@ -65,7 +66,8 @@ ...@@ -65,7 +66,8 @@
expire_time, expire_time,
prepay_id, prepay_id,
wx_order_id, wx_order_id,
wx_url wx_url,
qywx_expire_time
</sql> </sql>
<!-- ===================== 新增 ======================== --> <!-- ===================== 新增 ======================== -->
<insert id="insert" parameterType="com.gic.haoban.manage.service.entity.licence.TabHaobanLicenceOrder" <insert id="insert" parameterType="com.gic.haoban.manage.service.entity.licence.TabHaobanLicenceOrder"
...@@ -98,7 +100,8 @@ ...@@ -98,7 +100,8 @@
update_time, update_time,
creator_id, creator_id,
creator_name, creator_name,
expire_time) expire_time,
qywx_expire_time)
VALUES (#{orderId,jdbcType=BIGINT}, VALUES (#{orderId,jdbcType=BIGINT},
#{enterpriseId,jdbcType=VARCHAR}, #{enterpriseId,jdbcType=VARCHAR},
#{wxEnterpriseId,jdbcType=VARCHAR}, #{wxEnterpriseId,jdbcType=VARCHAR},
...@@ -126,7 +129,8 @@ ...@@ -126,7 +129,8 @@
now(), now(),
#{creatorId,jdbcType=VARCHAR}, #{creatorId,jdbcType=VARCHAR},
#{creatorName,jdbcType=VARCHAR}, #{creatorName,jdbcType=VARCHAR},
#{expireTime,jdbcType=VARCHAR}) #{expireTime,jdbcType=TIMESTAMP},
#{qywxExpireTime,jdbcType=TIMESTAMP})
]]> ]]>
</insert> </insert>
...@@ -205,7 +209,7 @@ ...@@ -205,7 +209,7 @@
FROM tab_haoban_licence_order FROM tab_haoban_licence_order
WHERE wx_enterprise_id = #{wxEnterpriseId} WHERE wx_enterprise_id = #{wxEnterpriseId}
and delete_flag = 0 and delete_flag = 0
and order_status = 0 limit 1 and qywx_order_status = 0 limit 1
</select> </select>
<select id="getLicenceOrderPage" resultMap="BaseResultMap"> <select id="getLicenceOrderPage" resultMap="BaseResultMap">
......
...@@ -5,6 +5,7 @@ import com.gic.api.base.commons.ServiceResponse; ...@@ -5,6 +5,7 @@ import com.gic.api.base.commons.ServiceResponse;
import com.gic.haoban.manage.api.dto.licence.LicenceOrderDTO; import com.gic.haoban.manage.api.dto.licence.LicenceOrderDTO;
import com.gic.haoban.manage.api.dto.licence.LicenceOrderPageDTO; 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.service.licence.LicenceOrderApiService; import com.gic.haoban.manage.api.service.licence.LicenceOrderApiService;
import com.gic.haoban.manage.service.entity.licence.TabHaobanLicenceOrder; import com.gic.haoban.manage.service.entity.licence.TabHaobanLicenceOrder;
import com.gic.haoban.manage.service.service.licence.LicenceOrderService; import com.gic.haoban.manage.service.service.licence.LicenceOrderService;
...@@ -68,4 +69,18 @@ public class LicenceOrderServiceTest { ...@@ -68,4 +69,18 @@ public class LicenceOrderServiceTest {
public void test7(){ public void test7(){
licenceOrderApiService.hasPopup("ca66a01b79474c40b3e7c7f93daf1a3b"); licenceOrderApiService.hasPopup("ca66a01b79474c40b3e7c7f93daf1a3b");
} }
@Test
public void test8(){
LicenceOrderQDTO licenceOrderQDTO = new LicenceOrderQDTO();
licenceOrderQDTO.setEnterpriseId("ff8080815dacd3a2015dacd3ef5c0000");
licenceOrderQDTO.setWxEnterpriseId("ca66a01b79474c40b3e7c7f93daf1a3b");
licenceOrderQDTO.setOrderType(1);
licenceOrderQDTO.setExternalContactCount(10);
licenceOrderQDTO.setTimeType(1);
licenceOrderQDTO.setTimeValue(2);
licenceOrderQDTO.setPayType(1);
ServiceResponse<String> stringServiceResponse = licenceOrderApiService.saveOrUpdateLicenceOrder(licenceOrderQDTO);
}
} }
...@@ -9,7 +9,6 @@ import com.gic.api.base.commons.Page; ...@@ -9,7 +9,6 @@ import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse; import com.gic.api.base.commons.ServiceResponse;
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.webapi.reponse.RestResponse; import com.gic.commons.webapi.reponse.RestResponse;
import com.gic.enterprise.api.dto.EnterpriseDTO; import com.gic.enterprise.api.dto.EnterpriseDTO;
import com.gic.enterprise.api.service.EnterpriseService; import com.gic.enterprise.api.service.EnterpriseService;
...@@ -98,38 +97,39 @@ public class LicenceOrderController { ...@@ -98,38 +97,39 @@ public class LicenceOrderController {
// } // }
/** /**
* 新增或者修改订单 * 新增订单
*
* @param licenceOrderQO
* @return JSONObject key:orderId 和 price
*/ */
@RequestMapping("licence-order-saveOrUpdate") @RequestMapping("licence-order-saveOrUpdate")
@GicLogRecord(value = "${#logValue}", category = GicLogRecordCategoryEnum.HB_LICENCE_ORDER, @GicLogRecord(value = "${#logValue}", category = GicLogRecordCategoryEnum.HB_LICENCE_ORDER,
optType = GicLogRecordOptTypeEnum.HB_1004_01, userFunc = LogRecordUserServiceImpl.class, optPage = "购买企业微信许可账号") optType = GicLogRecordOptTypeEnum.HB_1004_01, userFunc = LogRecordUserServiceImpl.class, optPage = "购买企业微信许可账号")
public RestResponse<String> saveOrUpdateLicenceOrder(@RequestBody LicenceOrderQO licenceOrderQO) { public RestResponse<JSONObject> saveOrUpdateLicenceOrder(@RequestBody LicenceOrderQO licenceOrderQO) {
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser(); WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
if (loginUser == null || StringUtils.isBlank(loginUser.getEnterpriseId())) { if (loginUser == null || StringUtils.isBlank(loginUser.getEnterpriseId())) {
return RestResponse.failure(Convert.toStr(HaoBanErrCode.ERR_4.getCode()), HaoBanErrCode.ERR_4.getMsg()); return RestResponse.failure(Convert.toStr(HaoBanErrCode.ERR_4.getCode()), HaoBanErrCode.ERR_4.getMsg());
} }
//金额校验
Integer integer = licenceOrderQO.checkPrice();
if (integer == -1) {
return RestResponse.failure("-9999", "许可账号数量有误!");
} else if (integer == 0) {
return RestResponse.failure("-9999", "购买金额计算有误!");
}
LicenceOrderQDTO licenceOrderQDTO = JSONObject.parseObject(JSONObject.toJSONString(licenceOrderQO), LicenceOrderQDTO.class); LicenceOrderQDTO licenceOrderQDTO = JSONObject.parseObject(JSONObject.toJSONString(licenceOrderQO), LicenceOrderQDTO.class);
licenceOrderQDTO.setEnterpriseId(loginUser.getEnterpriseId()); licenceOrderQDTO.setEnterpriseId(loginUser.getEnterpriseId());
licenceOrderQDTO.setWxEnterpriseId(loginUser.getWxEnterpriseId()); licenceOrderQDTO.setWxEnterpriseId(loginUser.getWxEnterpriseId());
licenceOrderQDTO.setCreatorId(loginUser.getClerkId()); licenceOrderQDTO.setCreatorId(loginUser.getClerkId());
licenceOrderQDTO.setCreatorName(loginUser.getClerkName()); licenceOrderQDTO.setCreatorName(loginUser.getClerkName());
String result = licenceOrderApiService.saveOrUpdateLicenceOrder(licenceOrderQDTO).getResult(); ServiceResponse<String> response = licenceOrderApiService.saveOrUpdateLicenceOrder(licenceOrderQDTO);
if (response.isSuccess()) {
JSONObject object = JSONObject.parseObject(response.getResult(), JSONObject.class);
String time = ""; String time = "";
if (licenceOrderQO.getTimeType() == 1) { if (licenceOrderQO.getTimeType() == 1) {
time = licenceOrderQO.getTimeValue() + "个月"; time = licenceOrderQO.getTimeValue() + "个月";
} else { } else {
time = licenceOrderQO.getTimeValue() + "天"; time = licenceOrderQO.getTimeValue() + "天";
} }
String logValue = "【购买企微许可账号】:订单编号ZH" + result + ",企业员工账号" + licenceOrderQO.getExternalContactCount() + "个,时长" + time; String logValue = "【购买企微许可账号】:订单编号ZH" + object.getString("orderId") + ",企业员工账号" + licenceOrderQO.getExternalContactCount() + "个,时长" + time;
GicLogRecordEvaluationContext.putAttribute("logValue", logValue); GicLogRecordEvaluationContext.putAttribute("logValue", logValue);
return RestResponse.successResult(result); return RestResponse.successResult(object);
}
GicLogRecordEvaluationContext.noWriteLog();
return RestResponse.failure(response.getCode(), response.getMessage());
} }
/** /**
...@@ -155,7 +155,7 @@ public class LicenceOrderController { ...@@ -155,7 +155,7 @@ public class LicenceOrderController {
} }
/** /**
* 取消订单/订单已经过期 * 取消订单
*/ */
@RequestMapping("licence-order-cancel") @RequestMapping("licence-order-cancel")
@GicLogRecord(value = "${#logValue}", category = GicLogRecordCategoryEnum.HB_LICENCE_ORDER, @GicLogRecord(value = "${#logValue}", category = GicLogRecordCategoryEnum.HB_LICENCE_ORDER,
...@@ -173,11 +173,19 @@ public class LicenceOrderController { ...@@ -173,11 +173,19 @@ public class LicenceOrderController {
String enterpriseId = loginUser.getEnterpriseId(); String enterpriseId = loginUser.getEnterpriseId();
String wxEnterpriseId = loginUser.getWxEnterpriseId(); String wxEnterpriseId = loginUser.getWxEnterpriseId();
String clerkName = loginUser.getClerkName(); String clerkName = loginUser.getClerkName();
//取消企业微信订单
ServiceResponse<Boolean> response = licenceOrderApiService.cancelQywxOrder(orderId);
if (response.isSuccess()) {
Boolean result = licenceOrderApiService.updateLicenceOrderType(orderId, type, enterpriseId, wxEnterpriseId, clerkName, 1).getResult(); Boolean result = licenceOrderApiService.updateLicenceOrderType(orderId, type, enterpriseId, wxEnterpriseId, clerkName, 1).getResult();
//操作日志记录
String logValue = "【取消购买企微许可账号订单】:订单编号" + dto.getOrderNumber() + ",取消时间" + DateUtil.dateToStr(new Date(), DateUtil.FORMAT_DATETIME_19); String logValue = "【取消购买企微许可账号订单】:订单编号" + dto.getOrderNumber() + ",取消时间" + DateUtil.dateToStr(new Date(), DateUtil.FORMAT_DATETIME_19);
GicLogRecordEvaluationContext.putAttribute("logValue", logValue); GicLogRecordEvaluationContext.putAttribute("logValue", logValue);
return RestResponse.successResult(result); return RestResponse.successResult(result);
} }
GicLogRecordEvaluationContext.noWriteLog();
return RestResponse.failure(response.getCode(), response.getMessage());
}
/** /**
* 订单凭证上传 * 订单凭证上传
...@@ -198,10 +206,14 @@ public class LicenceOrderController { ...@@ -198,10 +206,14 @@ public class LicenceOrderController {
String enterpriseId = loginUser.getEnterpriseId(); String enterpriseId = loginUser.getEnterpriseId();
String wxEnterpriseId = loginUser.getWxEnterpriseId(); String wxEnterpriseId = loginUser.getWxEnterpriseId();
String clerkName = loginUser.getClerkName(); String clerkName = loginUser.getClerkName();
Boolean result = licenceOrderApiService.uploadLicenceOrderVoucher(orderId, voucher, enterpriseId, wxEnterpriseId, clerkName).getResult(); ServiceResponse<Boolean> response = licenceOrderApiService.uploadLicenceOrderVoucher(orderId, voucher, enterpriseId, wxEnterpriseId, clerkName);
if (response.isSuccess()) {
String logValue = "【上传购买企微许可账号支付凭证】:订单编号" + dto.getOrderNumber() + ",上传时间" + DateUtil.dateToStr(new Date(), DateUtil.FORMAT_DATETIME_19); String logValue = "【上传购买企微许可账号支付凭证】:订单编号" + dto.getOrderNumber() + ",上传时间" + DateUtil.dateToStr(new Date(), DateUtil.FORMAT_DATETIME_19);
GicLogRecordEvaluationContext.putAttribute("logValue", logValue); GicLogRecordEvaluationContext.putAttribute("logValue", logValue);
return RestResponse.successResult(result); return RestResponse.successResult(true);
}
GicLogRecordEvaluationContext.noWriteLog();
return RestResponse.failure(response.getCode(), response.getMessage());
} }
/** /**
...@@ -226,7 +238,7 @@ public class LicenceOrderController { ...@@ -226,7 +238,7 @@ public class LicenceOrderController {
return RestResponse.successResult(map); return RestResponse.successResult(map);
} }
Integer money = result.getPrice(); Integer money = result.getPrice();
if (null != loginUser.getPhoneNumber() && Arrays.asList("13456789987", "13429152802","13383841777","13576223447").contains(loginUser.getPhoneNumber())) { if (null != loginUser.getPhoneNumber() && Arrays.asList("13456789987", "13429152802", "13383841777", "13576223447").contains(loginUser.getPhoneNumber())) {
//测试账号付款一分 //测试账号付款一分
money = 1; money = 1;
} }
......
...@@ -154,5 +154,9 @@ public class LicenceOrderVO implements Serializable { ...@@ -154,5 +154,9 @@ public class LicenceOrderVO implements Serializable {
* 订单进度list * 订单进度list
*/ */
private List<LicenceOrderProgressVO> OrderProgressList; private List<LicenceOrderProgressVO> OrderProgressList;
/**
* 企业微信订单过期时间
*/
private Date qywxExpireTime;
} }
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