adding JiaMin coding

This commit is contained in:
Carl 2022-01-06 11:22:07 +08:00
parent 78736daf83
commit c0252fcb2d
6 changed files with 50 additions and 18 deletions

View File

@ -48,7 +48,7 @@ public class OrderController {
@ApiOperation(value = "微信支付订单", notes = "生成订单")
@PostMapping("royalcanin/generateOrderWX")
public ResponseDTO<String> generateOrderWX(@RequestBody List<OrdersEntity> ordersEntityList, OrderAddress orderAddress) throws Exception {
public ResponseDTO<String> generateOrderWX(@RequestBody List<OrdersEntity> ordersEntityList) throws Exception {
StringBuffer productId = new StringBuffer();
StringBuffer productName = new StringBuffer();
String memberId = "";
@ -58,6 +58,7 @@ public class OrderController {
WxPayEntity wxPayEntity = new WxPayEntity();
JSONArray orderDatilListJson = new JSONArray();
OrdersEntity ordersEntity = new OrdersEntity();
OrderAddress orderAddress = new OrderAddress();
for (OrdersEntity ordersEntitys:ordersEntityList) {
cartService.cancelProduct(ordersEntitys.getMemberId(),ordersEntity.getProductId());
//存储orderDetailList
@ -72,6 +73,12 @@ public class OrderController {
ordersEntity.setCouponCode(ordersEntitys.getCouponCode());
ordersEntity.setCouponName(ordersEntitys.getCouponName());
}
orderAddress.setAddressCityName(ordersEntitys.getOrderAddress().getAddressCityName());
orderAddress.setAddressCountyName(ordersEntitys.getOrderAddress().getAddressCountyName());
orderAddress.setAddressDetailInfo(ordersEntitys.getOrderAddress().getAddressDetailInfo());
orderAddress.setAddressPhoneNumber(ordersEntitys.getOrderAddress().getAddressPhoneNumber());
orderAddress.setAddressUserName(ordersEntitys.getOrderAddress().getAddressUserName());
orderAddress.setAddressProvinceName(ordersEntitys.getOrderAddress().getAddressProvinceName());
productId.append(ordersEntitys.getProductId()+",");
productName.append(ordersEntitys.getProductName()+",");
if(ordersEntitys.getPayAmount() != "0"){
@ -83,6 +90,7 @@ public class OrderController {
mobile = ordersEntitys.getPhoneNumber();
buyCount = buyCount + ordersEntitys.getBuyCount();
}
ordersEntity.setOrderAddress(orderAddress);
ordersEntity.setProductId(productId.substring(0,productId.length()-1));
ordersEntity.setProductName(productName.substring(0,productName.length()-1));
ordersEntity.setOrderAmount(StringUtil.toString(total_fee));
@ -92,7 +100,7 @@ public class OrderController {
ordersEntity.setOrderNo(GenerateSequenceUtil.generateSequenceNo());
ordersEntity.setOrderStatus("0");
if(orderService.generateOrder(ordersEntity,orderDatilListJson,orderAddress) == 1){
if(orderService.generateOrder(ordersEntity,orderDatilListJson) == 1){
wxPayEntity.setProduct_id(ordersEntity.getProductId());
wxPayEntity.setTotal_fee(StringUtil.toString(total_fee));
wxPayEntity.setOut_trade_no(ordersEntity.getOrderNo());
@ -119,7 +127,7 @@ public class OrderController {
@ApiOperation(value = "支付宝支付订单", notes = "生成订单")
@PostMapping("royalcanin/generateOrderAlipay")
public ResponseDTO<String> generateOrderAliPay(@RequestBody List<OrdersEntity> ordersEntityList,OrderAddress orderAddress) throws Exception {
public ResponseDTO<String> generateOrderAliPay(@RequestBody List<OrdersEntity> ordersEntityList) throws Exception {
StringBuffer productId = new StringBuffer();
StringBuffer productName = new StringBuffer();
String memberId = "";
@ -141,7 +149,11 @@ public class OrderController {
productId.append(ordersEntitys.getProductId()+",");
productName.append(ordersEntitys.getProductName()+",");
total_fee = total_fee + Double.parseDouble(ordersEntitys.getPayAmount())*ordersEntitys.getBuyCount();
if(ordersEntitys.getPayAmount() != "0"){
total_fee = total_fee + (Double.parseDouble(ordersEntitys.getPayAmount()) * ordersEntitys.getBuyCount()) - Double.parseDouble(ordersEntitys.getCouponAmount());
}else {
total_fee = total_fee + Double.parseDouble(ordersEntitys.getPayAmount())*ordersEntitys.getBuyCount();
}
memberId = ordersEntitys.getMemberId();
mobile = ordersEntitys.getPhoneNumber();
buyCount = buyCount + ordersEntitys.getBuyCount();
@ -155,7 +167,7 @@ public class OrderController {
ordersEntity.setPayType("2");
ordersEntity.setOrderNo(GenerateSequenceUtil.generateSequenceNo());
ordersEntity.setOrderStatus("0");
if(orderService.generateOrder(ordersEntity,orderDatilListJson,orderAddress) == 1){
if(orderService.generateOrder(ordersEntity,orderDatilListJson) == 1){
aliPayEntity.setProduct_code(ordersEntity.getProductId());
aliPayEntity.setTotal_amount(StringUtil.toString(total_fee));
aliPayEntity.setOut_trade_no(ordersEntity.getOrderNo());

View File

@ -2,7 +2,7 @@ package net.lab1024.smartadmin.module.system.royalcanin.good.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import net.lab1024.smartadmin.module.system.royalcanin.good.model.OrdersEntity;
import net.lab1024.smartadmin.module.system.royalcanin.good.model.OrderEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;
@ -13,10 +13,10 @@ import org.springframework.stereotype.Component;
*/
@Mapper
@Component
public interface OrdersDao extends BaseMapper<OrdersEntity> {
public interface OrdersDao extends BaseMapper<OrderEntity> {
OrdersEntity findByOrderId(String id);
OrderEntity findByOrderId(String id);
Integer updateOrderStatus(@Param("outTradeNo")String outTradeNo, @Param("totalAmount")String total_amount);

View File

@ -1,8 +1,12 @@
package net.lab1024.smartadmin.module.system.royalcanin.good.model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class OrderAddress {
private String addressPhoneNumber = "null";

View File

@ -1,12 +1,10 @@
package net.lab1024.smartadmin.module.system.royalcanin.good.model;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.Date;
@Data
@TableName("t_good_orders")
public class OrdersEntity {
private String orderNo;
@ -39,4 +37,6 @@ public class OrdersEntity {
private String payType="1";
private OrderAddress orderAddress;
}

View File

@ -1,22 +1,26 @@
package net.lab1024.smartadmin.module.system.royalcanin.good.service;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import net.lab1024.smartadmin.common.domain.ResponseDTO;
import net.lab1024.smartadmin.common.heartbeat.StringUtil;
import net.lab1024.smartadmin.module.system.royalcanin.CouponService;
import net.lab1024.smartadmin.module.system.royalcanin.coupon.CouponCosumeEntity;
import net.lab1024.smartadmin.module.system.royalcanin.coupon.CouponFetchEntity;
import net.lab1024.smartadmin.module.system.royalcanin.couponConfig.CouponConfigFindAllEntity;
import net.lab1024.smartadmin.module.system.royalcanin.domain.RoyalcaninOperateLogEntity;
import net.lab1024.smartadmin.module.system.royalcanin.domain.RoyalcaninOperateLogService;
import net.lab1024.smartadmin.module.system.royalcanin.good.constant.OrderResponseCodeConst;
import net.lab1024.smartadmin.module.system.royalcanin.good.dao.OrdersDao;
import net.lab1024.smartadmin.module.system.royalcanin.good.model.OrderAddress;
import net.lab1024.smartadmin.module.system.royalcanin.good.model.OrderEntity;
import net.lab1024.smartadmin.module.system.royalcanin.good.model.OrdersEntity;
import net.lab1024.smartadmin.module.system.royalcanin.orderMaster.AddOrSaveEntity;
import net.lab1024.smartadmin.module.system.royalcanin.orderMaster.OrderCouponEntity;
import net.lab1024.smartadmin.module.system.royalcanin.orderMaster.QueryEntity;
import net.lab1024.smartadmin.util.AESUtil;
import net.lab1024.smartadmin.util.MapRemoveNullUtil;
import net.lab1024.smartadmin.util.SmartBeanUtil;
import net.lab1024.smartadmin.util.SmartHttpUtil;
import net.sf.json.JSONArray;
import org.springframework.beans.factory.annotation.Autowired;
@ -42,18 +46,19 @@ public class OrderService {
private String url = "https://miniapp-test.royalcanin.com.cn/rcmini/h5/orderMaster/";
@Transactional
public int generateOrder(OrdersEntity ordersEntity, JSONArray listJson, OrderAddress orderAddress) throws Exception {
public int generateOrder(OrdersEntity ordersEntity, JSONArray listJson) throws Exception {
AddOrSaveEntity addOrSaveEntity = new AddOrSaveEntity();
if (ordersEntity.getCouponCode() != ""&& null != ordersEntity.getCouponCode()) {
CouponCosumeEntity couponCosumeEntity = new CouponCosumeEntity();
couponCosumeEntity.setCouponCode(ordersEntity.getCouponCode());
couponCosumeEntity.setOrderNo(ordersEntity.getOrderNo());
couponCosumeEntity.setProductCode(ordersEntity.getProductId());
BigDecimal realCouponAmount =new BigDecimal(ordersEntity.getOrderAmount());
couponCosumeEntity.setRealCouponAmount(realCouponAmount);
JSONObject jsonObject = JSONObject.parseObject(couponService.couponCosume(couponCosumeEntity));
if(!jsonObject.getString("code").equals("0")) {
return 0;
}
// if(!jsonObject.getString("code").equals("0")) {
// return 0;
// }
//coupon json化
OrderCouponEntity orderCouponEntity = new OrderCouponEntity();
orderCouponEntity.setCouponCode(ordersEntity.getCouponCode());
@ -64,13 +69,20 @@ public class OrderService {
net.sf.json.JSONObject orderCouponJson = net.sf.json.JSONObject.fromObject(orderCouponParamMap);
addOrSaveEntity.setOrderCoupon(orderCouponJson.toString());
}
if(ordersDao.insert(ordersEntity) == 1) {
Map<String, String> paramMap = MapRemoveNullUtil.setConditionMap(ordersEntity);
paramMap.remove("orderAddress");
ObjectMapper objectMapper = new ObjectMapper();
OrderEntity orderEntity = objectMapper.convertValue(paramMap, OrderEntity.class);
if(ordersDao.insert(orderEntity) == 1) {
ordersEntity.setOrderStatus("0");
addOrSaveEntity.setPhoneNumber(ordersEntity.getPhoneNumber());
addOrSaveEntity.setStatus("0");
addOrSaveEntity.setOrderNumber(ordersEntity.getOrderNo());
addOrSaveEntity.setSalesAmount(ordersEntity.getOrderAmount());
addOrSaveEntity.setOrderDetailList(listJson.toString());
OrderAddress orderAddress = ordersEntity.getOrderAddress();
addOrSaveEntity.setAddressCityName(orderAddress.getAddressCityName());
addOrSaveEntity.setAddressCountyName(orderAddress.getAddressCountyName());
addOrSaveEntity.setAddressDetailInfo(orderAddress.getAddressDetailInfo());
@ -87,6 +99,7 @@ public class OrderService {
}
}
public Boolean afterPaySucceedUpdateOrderStatus(String outTradeNo,String totalFee){
int result = ordersDao.updateOrderStatus(outTradeNo,totalFee);
if(result == 1)
@ -100,7 +113,7 @@ public class OrderService {
com.alibaba.fastjson.JSONArray jsonArray = JSONObject.parseArray(addOrSaveJson);
JSONObject jsonObject = (JSONObject)jsonArray.get(0);
String orderNo = jsonObject.getString("orderNumber");
OrdersEntity ordersEntity = ordersDao.findByOrderId(orderNo);
OrderEntity ordersEntity = ordersDao.findByOrderId(orderNo);
if(ordersEntity != null) {
if (!ordersEntity.getCouponCode().equals("") && null != ordersEntity.getCouponCode()) {
CouponFetchEntity couponFetchEntity = new CouponFetchEntity();
@ -132,7 +145,7 @@ public class OrderService {
com.alibaba.fastjson.JSONArray jsonArray = JSONObject.parseArray(addOrSaveJson);
JSONObject jsonObject = (JSONObject)jsonArray.get(0);
String orderNo = jsonObject.getString("orderNumber");
OrdersEntity ordersEntity = ordersDao.findByOrderId(orderNo);
OrderEntity ordersEntity = ordersDao.findByOrderId(orderNo);
if(ordersEntity != null){
AddOrSaveEntity addOrSaveEntity = new AddOrSaveEntity();
addOrSaveEntity.setOrderNumber(orderNo);
@ -155,7 +168,10 @@ public class OrderService {
Map<String, String> paramMap = MapRemoveNullUtil.setConditionMap(addOrSaveEntity);
net.sf.json.JSONObject jsonObject = net.sf.json.JSONObject.fromObject(paramMap);
jsonObject.remove("orderDetailList");
jsonObject.remove("orderCoupon");
String detailList = addOrSaveEntity.getOrderDetailList();
String orderCoupon = addOrSaveEntity.getOrderCoupon();
jsonObject.put("orderCoupon",orderCoupon);
jsonObject.put("orderDetailList",detailList);
long startTime = System.currentTimeMillis();
String result = SmartHttpUtil.httpPostRaw(url+"addOrSave?channelId=15&secret=H5@2021",jsonObject.toString(),null,"utf-8");

View File

@ -2,7 +2,7 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="net.lab1024.smartadmin.module.system.royalcanin.good.dao.OrdersDao">
<resultMap id="OrdersEntity"
type="net.lab1024.smartadmin.module.system.royalcanin.good.model.OrdersEntity"></resultMap>
type="net.lab1024.smartadmin.module.system.royalcanin.good.model.OrderEntity"></resultMap>
<select id="findByOrderId" resultMap="OrdersEntity">
select * from t_good_orders WHERE order_no = #{orderNo}