提交 5b06fad5 作者: 张小凤

DemandRelease(update)

上级 153b02e0
......@@ -73,4 +73,12 @@ public class DemandReleaseOrderController extends BaseController {
}
package com.mmc.oms.dao.demand;
import com.mmc.oms.entity.demand.DemandReleaseOrderDO;
import com.mmc.oms.entity.demand.GetOrderNumberDO;
import com.mmc.oms.model.vo.demand.UserPayInfoVO;
import org.apache.ibatis.annotations.Mapper;
......@@ -20,4 +21,6 @@ public interface DemandReleaseOrderDao {
void updateOrderDemand(DemandReleaseOrderDO releaseOrderDO);
DemandReleaseOrderDO selectPhone(String orderNumber);
void insertService(GetOrderNumberDO getOrderNumberDO);
}
package com.mmc.oms.dao.demand;
import org.apache.ibatis.annotations.Mapper;
/**
* @Author small
* @Date 2023/8/19 15:28
* @Version 1.0
*/
@Mapper
public interface PublishServiceOrderDao {
}
package com.mmc.oms.entity.demand;
import com.mmc.oms.model.vo.demand.OrderRequestParamsVO;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
/**
* @Author small
* @Date 2023/8/19 17:03
* @Version 1.0
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class GetOrderNumberDO {
private Integer id;
private static final long serialVersionUID = 75097833899496576L;
@ApiModelProperty(value = "支付订单编号", example = "dadasdas")
private String paymentOrderNumber;
@ApiModelProperty(value = "微信需要支付金额", example = "100")
private BigDecimal weChatPay;
@ApiModelProperty(value = "用户id", example = "100", hidden = true)
private Integer userAccountId;
public GetOrderNumberDO(GetOrderNumberDTO getOrderNumberDTO){
this.paymentOrderNumber=getOrderNumberDTO.getPaymentOrderNumber();
this.weChatPay=getOrderNumberDTO.getWeChatPay();
this.userAccountId=getOrderNumberDTO.getUserAccountId();
}
public OrderRequestParamsVO orderRequestParamsVO() {
return OrderRequestParamsVO.builder().orderNo(this.paymentOrderNumber)
.description("发布服务需求支付").
orderPort(4)
.build();
}
}
package com.mmc.oms.entity.demand;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @Author small
* @Date 2023/8/19 16:59
* @Version 1.0
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class GetOrderNumberDTO implements Serializable {
private static final long serialVersionUID = 75097833899496576L;
@ApiModelProperty(value = "制度订单编号", example = "dadasdas")
private String paymentOrderNumber;
@ApiModelProperty(value = "微信需要支付金额", example = "100")
private BigDecimal weChatPay;
@ApiModelProperty(value = "用户id", example = "100", hidden = true)
private Integer userAccountId;
}
......@@ -22,6 +22,6 @@ public class CommonPaymentVO {
private String orderNumber;
@ApiModelProperty(value = "订单来源 0:产品商城 1:租赁订单 2:培训订单 3发布需求 ...其他后续加")
@ApiModelProperty(value = "订单来源 0:产品商城 1:租赁订单 2:培训订单 3发布需求 4服务需求发布 ...其他后续加")
private Integer orderPort;
}
package com.mmc.oms.service.demand.Impl;
import com.alibaba.fastjson.JSONObject;
import com.mmc.oms.common.RedisConstant;
import com.mmc.oms.common.ResultEnum;
import com.mmc.oms.common.json.JsonUtil;
import com.mmc.oms.common.result.ResultBody;
import com.mmc.oms.controller.demand.util.EmojiUtils;
import com.mmc.oms.dao.demand.DemandReleaseOrderDao;
import com.mmc.oms.dao.demand.PublishServiceOrderDao;
import com.mmc.oms.entity.demand.DemandReleaseOrderDO;
import com.mmc.oms.model.dto.mall.ProductSpecPriceDTO;
import com.mmc.oms.model.dto.order.OrderInfoDTO;
import com.mmc.oms.entity.demand.GetOrderNumberDO;
import com.mmc.oms.entity.demand.GetOrderNumberDTO;
import com.mmc.oms.model.vo.demand.CommonPaymentVO;
import com.mmc.oms.model.vo.demand.DemandReleaseOrderVO;
import com.mmc.oms.model.vo.demand.OrderRequestParamsVO;
import com.mmc.oms.model.vo.demand.UserPayInfoVO;
import com.mmc.oms.service.demand.DemandReleaseOrderService;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.HashOperations;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.http.*;
import org.springframework.stereotype.Service;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestClientException;
import org.springframework.web.client.RestTemplate;
......@@ -39,6 +36,11 @@ import java.util.Map;
@Service
public class DemandReleaseOrderServiceImpl implements DemandReleaseOrderService {
@Autowired
private PublishServiceOrderDao serviceOrderDao;
@Autowired
private DemandReleaseOrderDao releaseOrderDao;
......@@ -61,7 +63,39 @@ public class DemandReleaseOrderServiceImpl implements DemandReleaseOrderService
@Override
public ResultBody orderPayment(CommonPaymentVO commonPaymentVO, HttpServletRequest request, Integer userAccountId) {
String token = request.getHeader("token");
orderPost(commonPaymentVO,token);
//发布服务需求支付
publishServicePay(commonPaymentVO,token,userAccountId);
return ResultBody.success();
}
/**
* 服务需求发布
* @param commonPaymentVO
* @param token
* @param userAccountId
* @return
*/
private ResultBody publishServicePay(CommonPaymentVO commonPaymentVO, String token,Integer userAccountId) {
if ("4".equals(commonPaymentVO.getOrderPort().toString())){
String orderNumber = commonPaymentVO.getOrderNumber();
String json = stringRedisTemplate.opsForValue().get(orderNumber);
GetOrderNumberDTO getOrderNumberDTO = JSONObject.parseObject(json, GetOrderNumberDTO.class);
GetOrderNumberDO getOrderNumberDO = new GetOrderNumberDO(getOrderNumberDTO);
releaseOrderDao.insertService(getOrderNumberDO);
BigDecimal paramMoney = getOrderNumberDO.getWeChatPay();
BigDecimal multiply = paramMoney.multiply(new BigDecimal(100));
int i = multiply.intValue();
OrderRequestParamsVO orderRequestParamsVO = getOrderNumberDO.orderRequestParamsVO();
orderRequestParamsVO.setAmount(i);
ResultBody resultBody = releaseOrder(orderRequestParamsVO, token);
stringRedisTemplate.opsForValue().set(getOrderNumberDO.getPaymentOrderNumber()+getOrderNumberDO.getUserAccountId(), JsonUtil.parseObjToJson(getOrderNumberDO));
return resultBody;
}
return ResultBody.success();
}
private ResultBody orderPost(CommonPaymentVO commonPaymentVO, String token) {
if ("3".equals(commonPaymentVO.getOrderPort().toString())){
DemandReleaseOrderDO demandReleaseOrderDO = releaseOrderDao.orderPayment(commonPaymentVO.getOrderNumber());
BigDecimal paramMoney = demandReleaseOrderDO.getParamMoney();
......@@ -74,12 +108,12 @@ public class DemandReleaseOrderServiceImpl implements DemandReleaseOrderService
return ResultBody.error(ResultEnum.THE_CURRENT_DEMAND_IS_PAID);
}
if (i!=0){
return releaseOrder(orderRequestParamsVO, token);
return releaseOrder(orderRequestParamsVO, token);
}else if(i==0){
return ResultBody.error(ResultEnum.NO_PAYMENT_REQUIRED);
return ResultBody.error(ResultEnum.NO_PAYMENT_REQUIRED);
}
}
return ResultBody.success();
return ResultBody.success();
}
......
......@@ -37,4 +37,10 @@
<select id="selectPhone" resultType="com.mmc.oms.entity.demand.DemandReleaseOrderDO">
select publish_phone,requirements_info_id,user_account_id,order_number from demand_release_order where order_number = #{orderNumber}
</select>
<insert id="insertService" parameterType="com.mmc.oms.entity.demand.GetOrderNumberDO"
keyProperty="id" useGeneratedKeys="true">
INSERT INTO service_demand_order(payment_order_number, we_chat_pay, user_account_id, create_time,update_time)
VALUES (#{paymentOrderNumber}, #{weChatPay},#{userAccountId},NOW(),NOW());
</insert>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mmc.oms.dao.demand.PublishServiceOrderDao">
</mapper>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论