zoujiajian vor 2 Jahren
Ursprung
Commit
721fe204f3

+ 17 - 0
netflix-dao/src/main/java/com/cyksj/mapper/GoodsWholesaleAccountMapper.java

@@ -0,0 +1,17 @@
+package com.cyksj.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.cyksj.model.entity.GoodsWholesaleUserAccount;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 项目名: yhlxj
+ * 文件名: GoodsWholesaleAccountMapper
+ * 创建者: JavaZou
+ * 创建时间:2024/8/26 17:15
+ */
+public interface GoodsWholesaleAccountMapper extends BaseMapper<GoodsWholesaleUserAccount> {
+	void batchInsert(@Param("userId") Long userId, @Param("orderId") Long orderId, @Param("list") List<GoodsWholesaleUserAccount> insert);
+}

+ 0 - 4
netflix-dao/src/main/java/com/cyksj/model/entity/GoodsWholesaleOrderDon.java

@@ -37,8 +37,6 @@ public class GoodsWholesaleOrderDon extends BaseEntity{
 
 	private Date payTime;
 
-	private Boolean sendStatus;
-
 	public enum Status {
 		/**
 		 * 订单状态
@@ -46,8 +44,6 @@ public class GoodsWholesaleOrderDon extends BaseEntity{
 		close("已关闭"),
 		noPayment("待付款"),
 		hasPayment("已付款"),
-		transport("已发货"),
-		received("已签收"),
 		complete("已完成"),
 		refund("已退款"),
 		;

+ 22 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/GoodsWholesaleUserAccount.java

@@ -0,0 +1,22 @@
+package com.cyksj.model.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 项目名: yhlxj
+ * 文件名: GoodsWholesaleUserAccount
+ * 创建者: JavaZou
+ * 创建时间:2024/8/26 17:11
+ */
+@Getter
+@Setter
+public class GoodsWholesaleUserAccount extends BaseEntity{
+	private Long userId;
+
+	private Long orderId;
+
+	private String account;
+
+	private String password;
+}

+ 2 - 3
netflix-dao/src/main/java/com/cyksj/model/entity/GoodsWholesaleUserDeposit.java

@@ -1,7 +1,6 @@
 package com.cyksj.model.entity;
 
 import com.baomidou.mybatisplus.annotation.TableField;
-import com.ejlchina.searcher.bean.DbField;
 import com.ejlchina.searcher.bean.DbIgnore;
 import com.ejlchina.searcher.bean.SearchBean;
 import lombok.AllArgsConstructor;
@@ -67,8 +66,8 @@ public class GoodsWholesaleUserDeposit extends BaseEntity{
 		String type;
 		String desc;
 
-		public static OrderDon.Type getType(String type) {
-			return Arrays.stream(OrderDon.Type.values()).filter(tp -> tp.getType().equals(type)).findFirst().orElse(ALI_PAY);
+		public static GoodsWholesaleUserDeposit.Type getType(String type) {
+			return Arrays.stream(GoodsWholesaleUserDeposit.Type.values()).filter(tp -> tp.getType().equals(type)).findFirst().orElse(ALI_PAY);
 		}
 	}
 }

+ 14 - 0
netflix-dao/src/main/resources/mapper/GoodsWholesaleAccountMapper.xml

@@ -0,0 +1,14 @@
+<?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.cyksj.mapper.GoodsWholesaleAccountMapper">
+
+    <insert id="batchInsert">
+        insert ignore into
+        goods_wholesale_user_account(`user_id`,`order_id`,`account`,`password`,`created_time`,`update_time`)
+        values
+        <foreach collection="list" item="item" separator=",">
+            (#{userId},#{orderId},#{item.account},#{item.password},now(),now())
+        </foreach>
+    </insert>
+</mapper>

+ 5 - 0
netflix-service/src/main/java/com/cyksj/service/goods/GoodsWholesaleService.java

@@ -3,6 +3,7 @@ package com.cyksj.service.goods;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.cyksj.model.entity.GoodsWholesale;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -15,4 +16,8 @@ public interface GoodsWholesaleService extends IService<GoodsWholesale> {
 	void depositRefund(Long id, Long adminId) throws Exception;
 
 	void wxRefundNotify(Map<String, String> map) throws Exception;
+
+	void uploadAccount(List<Object> acountList, Long orderId);
+
+	 void saveOrUpdateWholesale(GoodsWholesale wholesale) throws Exception;
 }

+ 64 - 0
netflix-service/src/main/java/com/cyksj/service/goods/impl/GoodsWholesaleServiceImpl.java

@@ -5,19 +5,27 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.cyksj.common.exception.BusinessRuntimeException;
 import com.cyksj.common.util.Codec;
+import com.cyksj.common.util.Jsons;
 import com.cyksj.common.util.Xmls;
+import com.cyksj.mapper.GoodsWholesaleAccountMapper;
 import com.cyksj.mapper.GoodsWholesaleMapper;
+import com.cyksj.mapper.GoodsWholesaleOrderDonMapper;
 import com.cyksj.mapper.GoodsWholesaleUserDepositMapper;
 import com.cyksj.mapper.channel.ShopConfigMapper;
 import com.cyksj.mapper.manage.cms.CmsUserMapper;
 import com.cyksj.model.entity.GoodsWholesale;
+import com.cyksj.model.entity.GoodsWholesaleOrderDon;
+import com.cyksj.model.entity.GoodsWholesaleUserAccount;
 import com.cyksj.model.entity.GoodsWholesaleUserDeposit;
 import com.cyksj.service.goods.GoodsWholesaleService;
 import com.cyksj.service.order.OrderRefundService;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Map;
 import java.util.Optional;
 
@@ -39,6 +47,10 @@ public class GoodsWholesaleServiceImpl extends ServiceImpl<GoodsWholesaleMapper,
 
 	private final CmsUserMapper cmsUserMapper;
 
+	private final GoodsWholesaleOrderDonMapper wholesaleOrderDonMapper;
+
+	private final GoodsWholesaleAccountMapper goodsWholesaleAccountMapper;
+
 	@Override
 	public void depositRefund(Long id, Long adminId) throws Exception {
 		GoodsWholesaleUserDeposit goodsWholesaleUserDeposit = goodsWholesaleUserDepositMapper.selectById(id);
@@ -90,4 +102,56 @@ public class GoodsWholesaleServiceImpl extends ServiceImpl<GoodsWholesaleMapper,
 			goodsWholesaleUserDepositMapper.updateById(userDeposit);
 		}
 	}
+
+	@Override
+	@Transactional(rollbackFor = Throwable.class)
+	public void uploadAccount(List<Object> acountList, Long orderId) {
+		GoodsWholesaleOrderDon orderDon = wholesaleOrderDonMapper.selectById(orderId);
+
+		if (orderDon.getStatus() != GoodsWholesaleOrderDon.Status.hasPayment) {
+			throw BusinessRuntimeException.getInstance("订单状态错误");
+		}
+
+		int update = wholesaleOrderDonMapper.update(null, Wrappers.lambdaUpdate(GoodsWholesaleOrderDon.class)
+				.set(GoodsWholesaleOrderDon::getStatus, GoodsWholesaleOrderDon.Status.complete)
+				.eq(GoodsWholesaleOrderDon::getStatus, GoodsWholesaleOrderDon.Status.hasPayment)
+				.eq(GoodsWholesaleOrderDon::getId, orderId));
+		if (update == 0) {
+			throw BusinessRuntimeException.getInstance("账号已发货");
+		}
+		String regex = "----";
+
+		List<GoodsWholesaleUserAccount> insert = new ArrayList<>();
+
+		GoodsWholesaleUserAccount goodsWholesaleUserAccount = null;
+
+		for (Object obj : acountList) {
+			Map<String, Object> map = Jsons.toMap(obj);
+
+			String data = map.get(0).toString();
+
+			String[] split = data.split(regex);
+
+			String account = split[0];
+			String password = split[1];
+
+			goodsWholesaleUserAccount = new GoodsWholesaleUserAccount();
+
+			goodsWholesaleUserAccount.setAccount(account);
+			goodsWholesaleUserAccount.setPassword(password);
+			insert.add(goodsWholesaleUserAccount);
+		}
+
+		goodsWholesaleAccountMapper.batchInsert(orderDon.getUserId(), orderId, insert);
+	}
+
+	@Override
+	public void saveOrUpdateWholesale(GoodsWholesale wholesale) throws Exception {
+		String config = wholesale.getConfig();
+		List<GoodsWholesale.GoodsWholesaleConfig> configs = Jsons.parseList(config, GoodsWholesale.GoodsWholesaleConfig.class);
+		String wholesaleConfig = Jsons.toJson(configs);
+
+		wholesale.setConfig(wholesaleConfig);
+		this.saveOrUpdate(wholesale);
+	}
 }

+ 17 - 1
netflix-web/src/main/java/com/cyksj/web/controller/manage/goods/GoodsDonWholeSaleController.java

@@ -2,6 +2,7 @@ package com.cyksj.web.controller.manage.goods;
 
 import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.util.StrUtil;
+import com.alibaba.excel.EasyExcel;
 import com.cyksj.common.exception.BusinessRuntimeException;
 import com.cyksj.common.util.IoKit;
 import com.cyksj.common.util.Xmls;
@@ -10,6 +11,7 @@ import com.cyksj.enums.GatewayResponse;
 import com.cyksj.mapper.GoodsWholesaleOrderDonMapper;
 import com.cyksj.model.entity.GoodsWholesale;
 import com.cyksj.model.entity.GoodsWholesaleUserDeposit;
+import com.cyksj.model.views.GoodsWholesaleOrderView;
 import com.cyksj.service.goods.GoodsWholesaleService;
 import com.cyksj.service.user.UserBindRelationService;
 import com.ejlchina.searcher.BeanSearcher;
@@ -18,6 +20,7 @@ import com.ejlchina.searcher.util.MapUtils;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -152,5 +155,18 @@ public class GoodsDonWholeSaleController {
 	 * 批发订单
 	 */
 	@GetMapping("/get/order/list")
-	public Result<>
+	public Result<SearchResult<GoodsWholesaleOrderView>> getOrderList() {
+		SearchResult<GoodsWholesaleOrderView> search = beanSearcher.search(GoodsWholesaleOrderView.class, MapUtils.flatBuilder(request.getParameterMap()).build());
+		return GatewayResponse.SUCCESS.newBuilder().toResult(search);
+	}
+
+	/**
+	 * 上传账号
+	 */
+	@GetMapping("/upload/account")
+	public Result<String> uploadAccount(MultipartFile file, Long orderId) throws IOException {
+		List<Object> acountList = EasyExcel.read(file.getInputStream()).sheet().headRowNumber(0).doReadSync();
+		goodsWholesaleService.uploadAccount(acountList, orderId);
+		return GatewayResponse.SUCCESS.newBuilder().toResult();
+	}
 }