Pārlūkot izejas kodu

refactor: 提交合作伙伴部分代码

yy 16 stundas atpakaļ
vecāks
revīzija
9993dff5d6
32 mainītis faili ar 1160 papildinājumiem un 15 dzēšanām
  1. 15 11
      jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/commission/controller/PartnerCommissionController.java
  2. 12 1
      jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/commission/entity/PartnerCommission.java
  3. 39 0
      jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/commission/entity/vo/CommissionCountVO.java
  4. 93 0
      jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/commission/entity/vo/PartnerCommissionVO.java
  5. 13 0
      jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/commission/mapper/PartnerCommissionMapper.java
  6. 34 0
      jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/commission/mapper/xml/PartnerCommissionMapper.xml
  7. 12 0
      jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/commission/service/IPartnerCommissionService.java
  8. 29 0
      jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/commission/service/impl/PartnerCommissionServiceImpl.java
  9. 87 0
      jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/order/controller/PartnerOrderController.java
  10. 84 0
      jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/order/entity/PartnerOrder.java
  11. 21 0
      jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/order/entity/query/queryList.java
  12. 92 0
      jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/order/entity/vo/PartnerOrderVO.java
  13. 24 0
      jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/order/mapper/PartnerOrderMapper.java
  14. 48 0
      jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/order/mapper/xml/PartnerOrderMapper.xml
  15. 24 0
      jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/order/service/IPartnerOrderService.java
  16. 41 0
      jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/order/service/impl/PartnerOrderServiceImpl.java
  17. 72 0
      jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/source/controller/PartnerSourceController.java
  18. 77 0
      jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/source/entity/PartnerSource.java
  19. 15 0
      jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/source/mapper/PartnerSourceMapper.java
  20. 5 0
      jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/source/mapper/xml/PartnerSourceMapper.xml
  21. 15 0
      jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/source/service/IPartnerSourceService.java
  22. 20 0
      jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/source/service/impl/PartnerSourceServiceImpl.java
  23. 63 0
      jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/user/controller/PartnerUserCenterController.java
  24. 43 0
      jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/user/entity/vo/DataCountVO.java
  25. 75 0
      jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/user/entity/vo/PageListCostomerVO.java
  26. 1 1
      jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/user/entity/vo/UserInfoVO.java
  27. 7 0
      jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/user/mapper/PartnerUserMapper.java
  28. 25 0
      jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/user/mapper/xml/PartnerUserMapper.xml
  29. 9 0
      jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/user/service/IPartnerUserService.java
  30. 63 0
      jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/user/service/impl/PartnerUserServiceImpl.java
  31. 1 1
      jeecg-module-system/jeecg-system-start/src/main/resources/application-dev.yml
  32. 1 1
      jeecg-module-system/jeecg-system-start/src/main/resources/application-prod.yml

+ 15 - 11
jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/commission/controller/PartnerCommissionController.java

@@ -14,6 +14,8 @@ import lombok.extern.slf4j.Slf4j;
 
 
 import org.jeecg.modules.shop.commission.entity.PartnerCommission;
+import org.jeecg.modules.shop.commission.entity.vo.CommissionCountVO;
+import org.jeecg.modules.shop.commission.entity.vo.PartnerCommissionVO;
 import org.jeecg.modules.shop.commission.service.IPartnerCommissionService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -29,7 +31,7 @@ import io.swagger.annotations.ApiOperation;
  */
 @Api(tags="合作伙伴佣金")
 @RestController
-@RequestMapping("/partnercustomer4/partnerCommission")
+@RequestMapping("/partner/partnerCommission")
 @Slf4j
 public class PartnerCommissionController extends JeecgController<PartnerCommission, IPartnerCommissionService> {
 	@Autowired
@@ -38,25 +40,27 @@ public class PartnerCommissionController extends JeecgController<PartnerCommissi
 	/**
 	 * 分页列表查询
 	 *
-	 * @param partnerCommission
+	 * @param
 	 * @param pageNo
 	 * @param pageSize
-	 * @param req
+	 * @param
 	 * @return
 	 */
 	//@AutoLog(value = "合作伙伴佣金-分页列表查询")
 	@ApiOperation(value="合作伙伴佣金-分页列表查询", notes="合作伙伴佣金-分页列表查询")
 	@GetMapping(value = "/list")
-	public Result<IPage<PartnerCommission>> queryPageList(PartnerCommission partnerCommission,
-								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
-								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
-								   HttpServletRequest req) {
-		QueryWrapper<PartnerCommission> queryWrapper = QueryGenerator.initQueryWrapper(partnerCommission, req.getParameterMap());
-		Page<PartnerCommission> page = new Page<PartnerCommission>(pageNo, pageSize);
-		IPage<PartnerCommission> pageList = partnerCommissionService.page(page, queryWrapper);
+	public Result<IPage<PartnerCommissionVO>> queryPageList(@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+															@RequestParam(name="pageSize", defaultValue="10") Integer pageSize) {
+		IPage<PartnerCommissionVO> pageList = partnerCommissionService.pagList(pageNo, pageSize);
 		return Result.OK(pageList);
 	}
-	
+
+	 @ApiOperation(value="合作伙伴佣金-佣金统计", notes="合作伙伴佣金-佣金统计")
+	 @GetMapping(value = "/count")
+	 public Result<CommissionCountVO> moneyCount() {
+		 CommissionCountVO count = partnerCommissionService.moneyCount();
+		 return Result.OK(count);
+	 }
 
 	/**
 	 * 通过id查询

+ 12 - 1
jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/commission/entity/PartnerCommission.java

@@ -46,6 +46,11 @@ public class PartnerCommission implements Serializable {
     @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
     @ApiModelProperty(value = "更新时间")
     private Date updateTime;
+
+    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "佣金发放时间")
+    private Date giveTime;
 	/**id*/
 	@TableId(type = IdType.ASSIGN_ID)
     @ApiModelProperty(value = "id")
@@ -62,6 +67,12 @@ public class PartnerCommission implements Serializable {
 
     @ApiModelProperty(value = "线索Id/订单Id")
     private String coId;
+
+    @ApiModelProperty(value = "线索code/订单code")
+    private String coCode;
+
+    @ApiModelProperty(value = "佣金产生客户id")
+    private String customerId;
 	/**佣金类型 0线索 1订单*/
 
     @ApiModelProperty(value = "佣金类型 0线索 1订单")
@@ -77,5 +88,5 @@ public class PartnerCommission implements Serializable {
 	/**金额*/
 
     @ApiModelProperty(value = "金额")
-    private BigDecimal monney;
+    private BigDecimal money;
 }

+ 39 - 0
jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/commission/entity/vo/CommissionCountVO.java

@@ -0,0 +1,39 @@
+package org.jeecg.modules.shop.commission.entity.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @Description: 合作伙伴佣金
+ * @Author: jeecg-boot
+ * @Date:   2025-07-15
+ * @Version: V1.0
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="partner_commission对象", description="合作伙伴佣金")
+public class CommissionCountVO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+
+    @ApiModelProperty(value = "总金额")
+    private BigDecimal money;
+
+    @ApiModelProperty(value = "已发放金额")
+    private BigDecimal alreadyMoney;
+
+    @ApiModelProperty(value = "未发放金额")
+    private BigDecimal notMoney;
+}

+ 93 - 0
jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/commission/entity/vo/PartnerCommissionVO.java

@@ -0,0 +1,93 @@
+package org.jeecg.modules.shop.commission.entity.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @Description: 合作伙伴佣金
+ * @Author: jeecg-boot
+ * @Date:   2025-07-15
+ * @Version: V1.0
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="partner_commission对象", description="合作伙伴佣金")
+public class PartnerCommissionVO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**创建人*/
+    @ApiModelProperty(value = "创建人")
+    private String createBy;
+	/**创建时间*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+	/**更新人*/
+    @ApiModelProperty(value = "更新人")
+    private String updateBy;
+	/**更新时间*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "更新时间")
+    private Date updateTime;
+
+    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "佣金发放时间")
+    private Date giveTime;
+	/**id*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "id")
+    private String id;
+	/**编号*/
+
+    @ApiModelProperty(value = "编号")
+    private String billNo;
+	/**合作伙伴id*/
+
+    @ApiModelProperty(value = "合作伙伴id")
+    private String userId;
+	/**线索Id/订单Id*/
+
+    @ApiModelProperty(value = "线索Id/订单Id")
+    private String coId;
+
+    @ApiModelProperty(value = "线索code/订单code")
+    private String coCode;
+	/**佣金类型 0线索 1订单*/
+
+    @ApiModelProperty(value = "佣金产生客户id")
+    private String customerId;
+
+    @ApiModelProperty(value = "佣金类型 0线索 1订单")
+    private Integer type;
+	/**0PayPal 1bank*/
+
+    @ApiModelProperty(value = "0PayPal 1bank")
+    private Integer payType;
+	/**0未发放 1已发放*/
+
+    @ApiModelProperty(value = "0未发放 1已发放")
+    private Integer state;
+	/**金额*/
+
+    @ApiModelProperty(value = "金额")
+    private BigDecimal money;
+
+    @ApiModelProperty(value = "客户名称")
+    private String customerName;
+}

+ 13 - 0
jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/commission/mapper/PartnerCommissionMapper.java

@@ -2,7 +2,13 @@ package org.jeecg.modules.shop.commission.mapper;
 
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.ibatis.annotations.Param;
 import org.jeecg.modules.shop.commission.entity.PartnerCommission;
+import org.jeecg.modules.shop.commission.entity.vo.CommissionCountVO;
+import org.jeecg.modules.shop.commission.entity.vo.PartnerCommissionVO;
+
+import java.math.BigDecimal;
 
 /**
  * @Description: 合作伙伴佣金
@@ -12,4 +18,11 @@ import org.jeecg.modules.shop.commission.entity.PartnerCommission;
  */
 public interface PartnerCommissionMapper extends BaseMapper<PartnerCommission> {
 
+    IPage<PartnerCommissionVO> pagList(@Param("page") IPage<PartnerCommissionVO> page, @Param("userId") String userId);
+
+    CommissionCountVO moneyCount(@Param("userId") String userId);
+
+    BigDecimal getCommissionByUserAndYear(@Param("userId") String userId, @Param("year") String year);
+
+    BigDecimal getOrderCommissionByUserAndYear(@Param("userId") String userId, @Param("year") String year);
 }

+ 34 - 0
jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/commission/mapper/xml/PartnerCommissionMapper.xml

@@ -2,4 +2,38 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.jeecg.modules.shop.commission.mapper.PartnerCommissionMapper">
 
+    <select id="pagList" resultType="org.jeecg.modules.shop.commission.entity.vo.PartnerCommissionVO">
+select a.*,b.name as customerName
+    from partner_commission as a
+    left join partner_customer as b on a.customer_id = b.id
+    </select>
+    <select id="moneyCount" resultType="org.jeecg.modules.shop.commission.entity.vo.CommissionCountVO">
+        SELECT
+            user_id AS userId,
+            SUM(money) AS totalCommission, -- 总佣金
+            SUM(CASE WHEN state = 1 THEN money ELSE 0 END) AS paidCommission, -- 已发放
+            SUM(CASE WHEN state = 0 THEN money ELSE 0 END) AS unpaidCommission -- 未发放
+        FROM partner_commission
+        where user_id = #{userId}
+    </select>
+    <select id="getCommissionByUserAndYear" resultType="java.math.BigDecimal">
+        SELECT
+            SUM(money) AS totalCommission
+        FROM partner_customer as a
+            inner join partner_commission as b on a.id = b.customer_id
+        where a.user_id = #{userId}
+        and YEAR(a.create_time) = #{year}
+        and b.type = 0
+        and b.state = 1
+    </select>
+    <select id="getOrderCommissionByUserAndYear" resultType="java.math.BigDecimal">
+        SELECT
+            SUM(money) AS totalCommission
+        FROM partner_customer as a
+                 inner join partner_commission as b on a.id = b.customer_id
+        where a.user_id = #{userId}
+          and YEAR(a.create_time) = #{year}
+          and b.type = 1
+          and b.state = 1
+    </select>
 </mapper>

+ 12 - 0
jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/commission/service/IPartnerCommissionService.java

@@ -1,8 +1,13 @@
 package org.jeecg.modules.shop.commission.service;
 
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.jeecg.modules.shop.commission.entity.PartnerCommission;
+import org.jeecg.modules.shop.commission.entity.vo.CommissionCountVO;
+import org.jeecg.modules.shop.commission.entity.vo.PartnerCommissionVO;
+
+import java.math.BigDecimal;
 
 /**
  * @Description: 合作伙伴佣金
@@ -12,4 +17,11 @@ import org.jeecg.modules.shop.commission.entity.PartnerCommission;
  */
 public interface IPartnerCommissionService extends IService<PartnerCommission> {
 
+    IPage<PartnerCommissionVO> pagList(Integer pageNo, Integer pageSize);
+
+    CommissionCountVO moneyCount();
+
+    BigDecimal getCommissionByUserAndYear(String userId, String year);
+
+    BigDecimal getOrderCommissionByUserAndYear(String userId, String year);
 }

+ 29 - 0
jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/commission/service/impl/PartnerCommissionServiceImpl.java

@@ -1,12 +1,19 @@
 package org.jeecg.modules.shop.commission.service.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.jeecg.modules.shop.commission.entity.PartnerCommission;
+import org.jeecg.modules.shop.commission.entity.vo.CommissionCountVO;
+import org.jeecg.modules.shop.commission.entity.vo.PartnerCommissionVO;
 import org.jeecg.modules.shop.commission.mapper.PartnerCommissionMapper;
 import org.jeecg.modules.shop.commission.service.IPartnerCommissionService;
+import org.jeecg.modules.shop.user.util.partnerUserHolder;
 import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
+import java.math.BigDecimal;
+
 /**
  * @Description: 合作伙伴佣金
  * @Author: jeecg-boot
@@ -16,4 +23,26 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 @Service
 public class PartnerCommissionServiceImpl extends ServiceImpl<PartnerCommissionMapper, PartnerCommission> implements IPartnerCommissionService {
 
+    @Override
+    public IPage<PartnerCommissionVO> pagList(Integer pageNo, Integer pageSize) {
+        IPage<PartnerCommissionVO> page = new Page<>(pageNo, pageSize);
+        String userId = partnerUserHolder.currentLoginUserId();
+        return baseMapper.pagList(page,userId);
+    }
+
+    @Override
+    public CommissionCountVO moneyCount() {
+        String userId = partnerUserHolder.currentLoginUserId();
+        return baseMapper.moneyCount(userId);
+    }
+
+    @Override
+    public BigDecimal getCommissionByUserAndYear(String userId, String year) {
+        return baseMapper.getCommissionByUserAndYear(userId,year);
+    }
+
+    @Override
+    public BigDecimal getOrderCommissionByUserAndYear(String userId, String year) {
+        return baseMapper.getOrderCommissionByUserAndYear(userId,year);
+    }
 }

+ 87 - 0
jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/order/controller/PartnerOrderController.java

@@ -0,0 +1,87 @@
+package org.jeecg.modules.shop.order.controller;
+
+import java.util.Arrays;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.common.system.query.QueryGenerator;
+
+import lombok.extern.slf4j.Slf4j;
+
+import org.jeecg.modules.shop.order.entity.PartnerOrder;
+import org.jeecg.modules.shop.order.entity.query.queryList;
+import org.jeecg.modules.shop.order.entity.vo.PartnerOrderVO;
+import org.jeecg.modules.shop.order.service.IPartnerOrderService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+import org.springframework.web.servlet.ModelAndView;
+import com.alibaba.fastjson.JSON;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+
+ /**
+ * @Description: 合作伙伴订单
+ * @Author: jeecg-boot
+ * @Date:   2025-07-16
+ * @Version: V1.0
+ */
+@Api(tags="合作伙伴订单")
+@RestController
+@RequestMapping("/partner/partnerOrder")
+@Slf4j
+public class PartnerOrderController extends JeecgController<PartnerOrder, IPartnerOrderService> {
+	@Autowired
+	private IPartnerOrderService partnerOrderService;
+	
+	/**
+	 * 分页列表查询
+	 *
+	 * @param
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	//@AutoLog(value = "合作伙伴订单-分页列表查询")
+	@ApiOperation(value="合作伙伴订单-分页列表查询", notes="合作伙伴订单-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<IPage<PartnerOrderVO>> queryPageList(queryList query,
+													   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+													   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+													   HttpServletRequest req) {
+		IPage<PartnerOrderVO> pageList = partnerOrderService.queryPageList(query,pageNo, pageSize);
+		return Result.OK(pageList);
+	}
+	
+
+	
+	/**
+	 * 通过id查询
+	 *
+	 * @param id
+	 * @return
+	 */
+	//@AutoLog(value = "合作伙伴订单-通过id查询")
+	@ApiOperation(value="合作伙伴订单-通过id查询", notes="合作伙伴订单-通过id查询")
+	@GetMapping(value = "/queryById")
+	public Result<PartnerOrder> queryById(@RequestParam(name="id",required=true) String id) {
+		PartnerOrder partnerOrder = partnerOrderService.getById(id);
+		if(partnerOrder==null) {
+			return Result.error("未找到对应数据");
+		}
+		return Result.OK(partnerOrder);
+	}
+
+
+
+}

+ 84 - 0
jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/order/entity/PartnerOrder.java

@@ -0,0 +1,84 @@
+package org.jeecg.modules.shop.order.entity;
+
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * @Description: 合作伙伴订单
+ * @Author: jeecg-boot
+ * @Date:   2025-07-16
+ * @Version: V1.0
+ */
+@Data
+@TableName("partner_order")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="partner_order对象", description="合作伙伴订单")
+public class PartnerOrder implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**创建人*/
+    @ApiModelProperty(value = "创建人")
+    private String createBy;
+	/**创建时间*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "金蝶创建时间")
+    private Date jdCreateTime;
+	/**更新人*/
+    @ApiModelProperty(value = "更新人")
+    private String updateBy;
+	/**更新时间*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "更新时间")
+    private Date updateTime;
+	/**id*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "id")
+    private String id;
+	/**编号*/
+    @ApiModelProperty(value = "编号")
+    private String billNo;
+	/**用户id*/
+    @ApiModelProperty(value = "用户id")
+    private String userId;
+	/**客户id*/
+    @ApiModelProperty(value = "客户id")
+    private String customerId;
+	/**订单确认状态0未确认 1已确认*/
+    @ApiModelProperty(value = "订单确认状态0未确认 1已确认")
+    private Integer orderState;
+	/**订单编码*/
+    @ApiModelProperty(value = "订单编码")
+    private String orderCode;
+	/**订单金额*/
+    @ApiModelProperty(value = "订单金额")
+    private BigDecimal money;
+	/**出运金额*/
+    @ApiModelProperty(value = "出运金额")
+    private BigDecimal transportationMoney;
+	/**佣金CNY*/
+    @ApiModelProperty(value = "佣金CNY")
+    private BigDecimal commissionCny;
+	/**佣金USD*/
+    @ApiModelProperty(value = "佣金USD")
+    private BigDecimal commissionUsd;
+}

+ 21 - 0
jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/order/entity/query/queryList.java

@@ -0,0 +1,21 @@
+package org.jeecg.modules.shop.order.entity.query;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value="列表查询对象", description="列表查询对象")
+public class queryList {
+
+    @ApiModelProperty(value = "推荐人")
+    private String name;
+
+    @ApiModelProperty(value = "订单状态")
+    private String orderState;
+
+    @ApiModelProperty(value = "佣金发放状态")
+    private String commissionState;
+
+    private String userId;
+}

+ 92 - 0
jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/order/entity/vo/PartnerOrderVO.java

@@ -0,0 +1,92 @@
+package org.jeecg.modules.shop.order.entity.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @Description: 合作伙伴订单
+ * @Author: jeecg-boot
+ * @Date:   2025-07-16
+ * @Version: V1.0
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="partner_order对象", description="合作伙伴订单")
+public class PartnerOrderVO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**创建人*/
+    @ApiModelProperty(value = "创建人")
+    private String createBy;
+	/**创建时间*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "金蝶创建时间")
+    private Date jdCreateTime;
+
+    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "佣金发放时间")
+    private Date giveTime;
+	/**更新人*/
+    @ApiModelProperty(value = "更新人")
+    private String updateBy;
+	/**更新时间*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "更新时间")
+    private Date updateTime;
+	/**id*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "id")
+    private String id;
+	/**编号*/
+    @ApiModelProperty(value = "编号")
+    private String billNo;
+	/**用户id*/
+    @ApiModelProperty(value = "用户id")
+    private String userId;
+	/**客户id*/
+    @ApiModelProperty(value = "客户id")
+    private String customerId;
+    @ApiModelProperty(value = "客户name")
+    private String customerName;
+	/**订单确认状态0未确认 1已确认*/
+    @ApiModelProperty(value = "订单确认状态0未确认 1已确认")
+    private Integer orderState;
+	/**订单编码*/
+    @ApiModelProperty(value = "订单编码")
+    private String orderCode;
+	/**订单金额*/
+    @ApiModelProperty(value = "订单金额")
+    private BigDecimal money;
+	/**出运金额*/
+    @ApiModelProperty(value = "出运金额")
+    private BigDecimal transportationMoney;
+	/**佣金CNY*/
+    @ApiModelProperty(value = "佣金CNY")
+    private BigDecimal commissionCny;
+	/**佣金USD*/
+    @ApiModelProperty(value = "佣金USD")
+    private BigDecimal commissionUsd;
+
+    @ApiModelProperty(value = "订单确认状态0未确认 1已确认")
+    private Integer commissionState;
+}

+ 24 - 0
jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/order/mapper/PartnerOrderMapper.java

@@ -0,0 +1,24 @@
+package org.jeecg.modules.shop.order.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.shop.order.entity.PartnerOrder;
+import org.jeecg.modules.shop.order.entity.query.queryList;
+import org.jeecg.modules.shop.order.entity.vo.PartnerOrderVO;
+
+/**
+ * @Description: 合作伙伴订单
+ * @Author: jeecg-boot
+ * @Date:   2025-07-16
+ * @Version: V1.0
+ */
+public interface PartnerOrderMapper extends BaseMapper<PartnerOrder> {
+
+    IPage<PartnerOrderVO> queryPageList(@Param("query") queryList query, @Param("page") Page<PartnerOrderVO> page);
+
+    Integer getOrderCountByUserAndYear(@Param("userId") String userId, @Param("year") String year);
+    Integer getTakeOrderUserCountByUserAndYear(@Param("userId") String userId, @Param("year") String year);
+}

+ 48 - 0
jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/order/mapper/xml/PartnerOrderMapper.xml

@@ -0,0 +1,48 @@
+<?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="org.jeecg.modules.shop.order.mapper.PartnerOrderMapper">
+
+    <select id="queryPageList" resultType="org.jeecg.modules.shop.order.entity.vo.PartnerOrderVO">
+        SELECT
+            b.name as customerName,
+            a.bill_no ,
+            a.order_state,
+            a.money,
+            a.transportation_money,
+            c.monney as commissionUsd,
+            c.state as commissionState,
+            c.give_time,
+            a.jd_create_time
+        FROM
+            partner_order AS a
+                INNER JOIN partner_customer AS b ON a.customer_id = b.id
+                LEFT JOIN partner_commission AS c ON a.id = c.co_id
+        <where>
+            a.user_id = #{query.userId}
+            <if test="query.orderState != null and query.orderState!=''">
+                AND a.order_state = #{query.orderState}
+            </if>
+            <if test="query.commissionState != null and query.commissionState!=''">
+                AND a.commission_state = #{query.commissionState}
+            </if>
+            <if test="query.name != null and query.name!=''">
+                AND b.name like concat('%',#{query.name},'%')
+            </if>
+        </where>
+    </select>
+    <select id="getOrderCountByUserAndYear" resultType="java.lang.Integer">
+        select count(b.id)
+            from partner_customer as a
+        inner join partner_order as b on a.id = b.customer_id
+        where a.user_id = #{userId}
+        and year(b.jd_create_time) = #{year}
+    </select>
+
+    <select id="getTakeOrderUserCountByUserAndYear" resultType="java.lang.Integer">
+        select count(distinct (b.customer_id))
+        from partner_customer as a
+                 inner join partner_order as b on a.id = b.customer_id
+        where a.user_id = #{userId}
+          and year(b.jd_create_time) = #{year}
+    </select>
+</mapper>

+ 24 - 0
jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/order/service/IPartnerOrderService.java

@@ -0,0 +1,24 @@
+package org.jeecg.modules.shop.order.service;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.shop.order.entity.PartnerOrder;
+import org.jeecg.modules.shop.order.entity.query.queryList;
+import org.jeecg.modules.shop.order.entity.vo.PartnerOrderVO;
+
+/**
+ * @Description: 合作伙伴订单
+ * @Author: jeecg-boot
+ * @Date:   2025-07-16
+ * @Version: V1.0
+ */
+public interface IPartnerOrderService extends IService<PartnerOrder> {
+
+    IPage<PartnerOrderVO> queryPageList(queryList query, Integer pageNo, Integer pageSize);
+
+    Integer getOrderCountByUserAndYear(String userId, String year);
+    Integer getTakeOrderUserCountByUserAndYear(String userId, String year);
+
+
+}

+ 41 - 0
jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/order/service/impl/PartnerOrderServiceImpl.java

@@ -0,0 +1,41 @@
+package org.jeecg.modules.shop.order.service.impl;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.jeecg.modules.shop.order.entity.PartnerOrder;
+import org.jeecg.modules.shop.order.entity.query.queryList;
+import org.jeecg.modules.shop.order.entity.vo.PartnerOrderVO;
+import org.jeecg.modules.shop.order.mapper.PartnerOrderMapper;
+import org.jeecg.modules.shop.order.service.IPartnerOrderService;
+import org.jeecg.modules.shop.user.entity.PartnerUser;
+import org.jeecg.modules.shop.user.util.partnerUserHolder;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: 合作伙伴订单
+ * @Author: jeecg-boot
+ * @Date:   2025-07-16
+ * @Version: V1.0
+ */
+@Service
+public class PartnerOrderServiceImpl extends ServiceImpl<PartnerOrderMapper, PartnerOrder> implements IPartnerOrderService {
+
+    @Override
+    public IPage<PartnerOrderVO> queryPageList(queryList query, Integer pageNo, Integer pageSize) {
+        String userId = partnerUserHolder.currentLoginUserId();
+        query.setUserId(userId);
+        return baseMapper.queryPageList(query,new Page<>(pageNo, pageSize));
+    }
+
+    @Override
+    public Integer getOrderCountByUserAndYear(String userId, String year) {
+        return baseMapper.getOrderCountByUserAndYear(userId,year);
+    }
+    @Override
+    public Integer getTakeOrderUserCountByUserAndYear(String userId, String year) {
+        return baseMapper.getOrderCountByUserAndYear(userId,year);
+    }
+}

+ 72 - 0
jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/source/controller/PartnerSourceController.java

@@ -0,0 +1,72 @@
+package org.jeecg.modules.shop.source.controller;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.common.system.query.QueryGenerator;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+
+
+import org.jeecg.modules.shop.source.entity.PartnerSource;
+import org.jeecg.modules.shop.source.service.IPartnerSourceService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+import org.springframework.web.servlet.ModelAndView;
+import com.alibaba.fastjson.JSON;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+
+ /**
+ * @Description: 合作伙伴资源
+ * @Author: jeecg-boot
+ * @Date:   2025-07-16
+ * @Version: V1.0
+ */
+@Api(tags="合作伙伴资源")
+@RestController
+@RequestMapping("/partner/partnerSource")
+@Slf4j
+public class PartnerSourceController extends JeecgController<PartnerSource, IPartnerSourceService> {
+	@Autowired
+	private IPartnerSourceService partnerSourceService;
+	
+	/**
+	 * 分页列表查询
+	 *
+	 * @param partnerSource
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	//@AutoLog(value = "合作伙伴资源-分页列表查询")
+	@ApiOperation(value="合作伙伴资源-分页列表查询", notes="合作伙伴资源-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<IPage<PartnerSource>> queryPageList(PartnerSource partnerSource,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<PartnerSource> queryWrapper = QueryGenerator.initQueryWrapper(partnerSource, req.getParameterMap());
+		Page<PartnerSource> page = new Page<PartnerSource>(pageNo, pageSize);
+		IPage<PartnerSource> pageList = partnerSourceService.page(page, queryWrapper);
+		return Result.OK(pageList);
+	}
+
+}

+ 77 - 0
jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/source/entity/PartnerSource.java

@@ -0,0 +1,77 @@
+package org.jeecg.modules.shop.source.entity;
+
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * @Description: 合作伙伴资源
+ * @Author: jeecg-boot
+ * @Date:   2025-07-16
+ * @Version: V1.0
+ */
+@Data
+@TableName("partner_source")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="partner_source对象", description="合作伙伴资源")
+public class PartnerSource implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**创建人*/
+    @ApiModelProperty(value = "创建人")
+    private String createBy;
+	/**创建时间*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+	/**更新人*/
+    @ApiModelProperty(value = "更新人")
+    private String updateBy;
+	/**更新时间*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "更新时间")
+    private Date updateTime;
+	/**id*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "id")
+    private String id;
+	/**编号*/
+    @ApiModelProperty(value = "编号")
+    private String billNo;
+	/**标题*/
+    @ApiModelProperty(value = "标题")
+    private String head;
+	/**副标题*/
+    @ApiModelProperty(value = "副标题")
+    private String subhead;
+	/**类型0pdf 1链接*/
+    @ApiModelProperty(value = "类型0pdf 1链接")
+    private Integer type;
+	/**资源分类code*/
+    @ApiModelProperty(value = "资源分类code")
+    private String categorCode;
+	/**资源链接*/
+    @ApiModelProperty(value = "资源链接")
+    private String url;
+	/**封面*/
+    @ApiModelProperty(value = "封面")
+    private String cover;
+	/**0未启用 1启用*/
+    @ApiModelProperty(value = "0未启用 1启用")
+    private Integer state;
+}

+ 15 - 0
jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/source/mapper/PartnerSourceMapper.java

@@ -0,0 +1,15 @@
+package org.jeecg.modules.shop.source.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.jeecg.modules.shop.source.entity.PartnerSource;
+
+/**
+ * @Description: 合作伙伴资源
+ * @Author: jeecg-boot
+ * @Date:   2025-07-16
+ * @Version: V1.0
+ */
+public interface PartnerSourceMapper extends BaseMapper<PartnerSource> {
+
+}

+ 5 - 0
jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/source/mapper/xml/PartnerSourceMapper.xml

@@ -0,0 +1,5 @@
+<?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="org.jeecg.modules.shop.source.mapper.PartnerSourceMapper">
+
+</mapper>

+ 15 - 0
jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/source/service/IPartnerSourceService.java

@@ -0,0 +1,15 @@
+package org.jeecg.modules.shop.source.service;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.shop.source.entity.PartnerSource;
+
+/**
+ * @Description: 合作伙伴资源
+ * @Author: jeecg-boot
+ * @Date:   2025-07-16
+ * @Version: V1.0
+ */
+public interface IPartnerSourceService extends IService<PartnerSource> {
+
+}

+ 20 - 0
jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/source/service/impl/PartnerSourceServiceImpl.java

@@ -0,0 +1,20 @@
+package org.jeecg.modules.shop.source.service.impl;
+
+
+import org.jeecg.modules.shop.source.entity.PartnerSource;
+import org.jeecg.modules.shop.source.mapper.PartnerSourceMapper;
+import org.jeecg.modules.shop.source.service.IPartnerSourceService;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: 合作伙伴资源
+ * @Author: jeecg-boot
+ * @Date:   2025-07-16
+ * @Version: V1.0
+ */
+@Service
+public class PartnerSourceServiceImpl extends ServiceImpl<PartnerSourceMapper, PartnerSource> implements IPartnerSourceService {
+
+}

+ 63 - 0
jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/user/controller/PartnerUserCenterController.java

@@ -0,0 +1,63 @@
+package org.jeecg.modules.shop.user.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.constant.CommonConstant;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.config.shiro.IgnoreAuth;
+import org.jeecg.modules.shop.commission.entity.vo.CommissionCountVO;
+import org.jeecg.modules.shop.commission.entity.vo.PartnerCommissionVO;
+import org.jeecg.modules.shop.user.entity.PartnerUser;
+import org.jeecg.modules.shop.user.entity.dto.UserInfoDTO;
+import org.jeecg.modules.shop.user.entity.dto.UserLoginDTO;
+import org.jeecg.modules.shop.user.entity.vo.DataCountVO;
+import org.jeecg.modules.shop.user.entity.vo.PageListCostomerVO;
+import org.jeecg.modules.shop.user.entity.vo.UserInfoVO;
+import org.jeecg.modules.shop.user.entity.vo.UserLoginVO;
+import org.jeecg.modules.shop.user.service.IPartnerUserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.validation.Valid;
+
+/**
+* @Description: partner_user
+* @Author: jeecg-boot
+* @Date:   2025-07-09
+* @Version: V1.0
+*/
+@Api(tags="[合作伙伴前台]-合作伙伴前台工作台接口")
+@RestController
+@RequestMapping("/partner/userCenter")
+@Slf4j
+public class PartnerUserCenterController extends JeecgController<PartnerUser, IPartnerUserService> {
+   @Autowired
+   private IPartnerUserService partnerUserService;
+
+    @ApiOperation(value="用户工作台-工作台六个数拒", notes="用户工作台-工作台六个数拒")
+    @GetMapping(value = "/count")
+    public Result<DataCountVO> dataCount(@RequestParam(name = "year", required = true) String year) {
+        DataCountVO count = partnerUserService.dataCount(year);
+        return Result.OK(count);
+    }
+    @ApiOperation(value="用户工作台-客户列表", notes="用户工作台-客户列表")
+    @GetMapping(value = "/customerList")
+    public Result<IPage<PageListCostomerVO>> customerList(@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+                                                          @RequestParam(name="pageSize", defaultValue="10") Integer pageSize) {
+        IPage<PageListCostomerVO> pageList = partnerUserService.customerList(pageNo, pageSize);
+        return Result.OK(pageList);
+    }
+
+    @ApiOperation(value="用户工作台-订单列表", notes="用户工作台-订单列表")
+    @GetMapping(value = "/orderList")
+    public Result<IPage<PageListCostomerVO>> orderList(@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+                                                          @RequestParam(name="pageSize", defaultValue="10") Integer pageSize) {
+        IPage<PageListCostomerVO> pageList = partnerUserService.orderList(pageNo, pageSize);
+        return Result.OK(pageList);
+    }
+
+}

+ 43 - 0
jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/user/entity/vo/DataCountVO.java

@@ -0,0 +1,43 @@
+package org.jeecg.modules.shop.user.entity.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * @Description: 合作伙伴佣金
+ * @Author: jeecg-boot
+ * @Date:   2025-07-15
+ * @Version: V1.0
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="partner_commission对象", description="合作伙伴佣金")
+public class DataCountVO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+
+    @ApiModelProperty(value = "待发放金额")
+    private BigDecimal money;
+
+    @ApiModelProperty(value = "客户数量")
+    private Integer customerCount;
+
+    @ApiModelProperty(value = "客户佣金")
+    private BigDecimal customerMoney;
+
+    @ApiModelProperty(value = "客户下单数量")
+    private Integer customerOrderCount;
+
+    @ApiModelProperty(value = "订单数量")
+    private Integer orderCount;
+
+    @ApiModelProperty(value = "订单金额")
+    private BigDecimal orderMoney;
+}

+ 75 - 0
jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/user/entity/vo/PageListCostomerVO.java

@@ -0,0 +1,75 @@
+package org.jeecg.modules.shop.user.entity.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @Description: 合作伙伴佣金
+ * @Author: jeecg-boot
+ * @Date:   2025-07-15
+ * @Version: V1.0
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="partner_commission对象", description="合作伙伴佣金")
+public class PageListCostomerVO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+
+	/**id*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "id")
+    private String id;
+	/**编号*/
+
+    @ApiModelProperty(value = "合作伙伴id")
+    private String userId;
+	/**线索Id/订单Id*/
+
+    @ApiModelProperty(value = "线索code/订单code")
+    private String coCode;
+	/**佣金类型 0线索 1订单*/
+
+    @ApiModelProperty(value = "佣金产生客户id")
+    private String customerId;
+
+    @ApiModelProperty(value = "佣金产生客户Name")
+    private String customerName;
+
+    @ApiModelProperty(value = "佣金产生客户Name")
+    private String country;
+
+    @ApiModelProperty(value = "佣金类型 0线索 1订单")
+    private Integer type;
+	/**0PayPal 1bank*/
+
+    @ApiModelProperty(value = "0PayPal 1bank")
+    private Integer payType;
+	/**0未发放 1已发放*/
+
+    @ApiModelProperty(value = "0未发放 1已发放")
+    private Integer state;
+	/**金额*/
+
+    @ApiModelProperty(value = "金额")
+    private BigDecimal money;
+
+}

+ 1 - 1
jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/user/entity/vo/UserInfoVO.java

@@ -88,7 +88,7 @@ public class UserInfoVO {
     private Date dateOfIncorporation;
     /**Company Size类型为公司时填写*/
     @ApiModelProperty(value = "Company Size类型为公司时填写")
-    private String ompanySize;
+    private String companySize;
     /**Business type类型为公司时填写*/
     @ApiModelProperty(value = "Business type类型为公司时填写")
     private String businessType;

+ 7 - 0
jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/user/mapper/PartnerUserMapper.java

@@ -1,7 +1,11 @@
 package org.jeecg.modules.shop.user.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.ibatis.annotations.Param;
 import org.jeecg.modules.shop.user.entity.PartnerUser;
+import org.jeecg.modules.shop.user.entity.vo.PageListCostomerVO;
 
 import java.util.List;
 
@@ -15,4 +19,7 @@ import java.util.List;
  */
 public interface PartnerUserMapper extends BaseMapper<PartnerUser> {
 
+    IPage<PageListCostomerVO> customerList(@Param("userId") String userId, @Param("pageListCostomerVOPage") Page<PageListCostomerVO> pageListCostomerVOPage);
+
+    IPage<PageListCostomerVO> orderList(@Param("userId") String userId, @Param("pageListCostomerVOPage") Page<PageListCostomerVO> pageListCostomerVOPage);
 }

+ 25 - 0
jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/user/mapper/xml/PartnerUserMapper.xml

@@ -2,4 +2,29 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.jeecg.modules.shop.user.mapper.PartnerUserMapper">
 
+    <select id="customerList" resultType="org.jeecg.modules.shop.user.entity.vo.PageListCostomerVO">
+        select a.name as customerName,
+               a.country,
+               b.co_code,
+               b.money,
+               b.state,
+               a.create_time
+            from partner_customer as a
+         join partner_commission as b on a.id = b.customer_id
+        where a.user_id = #{userId}
+        and b.type = 0
+    </select>
+    <select id="orderList" resultType="org.jeecg.modules.shop.user.entity.vo.PageListCostomerVO">
+        select a.name as customerName,
+               a.country,
+               c.co_code,
+               c.money,
+               c.state,
+               a.create_time
+        from partner_customer as a
+            join partner_order as b on a.id = b.customer_id
+                 join partner_commission as c on b.id = c.co_id
+        where a.user_id = #{userId}
+          and c.type = 1
+    </select>
 </mapper>

+ 9 - 0
jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/user/service/IPartnerUserService.java

@@ -1,9 +1,12 @@
 package org.jeecg.modules.shop.user.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.jeecg.modules.shop.user.entity.PartnerUser;
 import org.jeecg.modules.shop.user.entity.dto.UserInfoDTO;
 import org.jeecg.modules.shop.user.entity.dto.UserLoginDTO;
+import org.jeecg.modules.shop.user.entity.vo.DataCountVO;
+import org.jeecg.modules.shop.user.entity.vo.PageListCostomerVO;
 import org.jeecg.modules.shop.user.entity.vo.UserInfoVO;
 import org.jeecg.modules.shop.user.entity.vo.UserLoginVO;
 
@@ -24,4 +27,10 @@ public interface IPartnerUserService extends IService<PartnerUser> {
     void updateUserInfo(UserInfoDTO dto);
 
     void submitInfo(UserInfoDTO dto);
+
+    DataCountVO dataCount(String year);
+
+    IPage<PageListCostomerVO> customerList(Integer pageNo, Integer pageSize);
+
+    IPage<PageListCostomerVO> orderList(Integer pageNo, Integer pageSize);
 }

+ 63 - 0
jeecg-module-system/jeecg-shop/src/main/java/org/jeecg/modules/shop/user/service/impl/PartnerUserServiceImpl.java

@@ -4,16 +4,26 @@ import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.lang.Assert;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.RequiredArgsConstructor;
 import org.jeecg.modules.sequence.service.IMiddleSequenceService;
 import org.jeecg.config.shiro.util.ShopTokenUtil;
 import org.jeecg.modules.shop.captcha.enums.CaptchaKeyEnum;
 import org.jeecg.modules.shop.captcha.enums.CaptchaTypeEnum;
 import org.jeecg.modules.shop.captcha.service.ICaptchaService;
+import org.jeecg.modules.shop.commission.entity.PartnerCommission;
+import org.jeecg.modules.shop.commission.service.IPartnerCommissionService;
+import org.jeecg.modules.shop.customer.entity.PartnerCustomer;
+import org.jeecg.modules.shop.customer.service.IPartnerCustomerService;
+import org.jeecg.modules.shop.order.entity.PartnerOrder;
+import org.jeecg.modules.shop.order.service.IPartnerOrderService;
 import org.jeecg.modules.shop.user.entity.PartnerUser;
 import org.jeecg.modules.shop.user.entity.dto.UserInfoDTO;
 import org.jeecg.modules.shop.user.entity.dto.UserLoginDTO;
+import org.jeecg.modules.shop.user.entity.vo.DataCountVO;
+import org.jeecg.modules.shop.user.entity.vo.PageListCostomerVO;
 import org.jeecg.modules.shop.user.entity.vo.UserInfoVO;
 import org.jeecg.modules.shop.user.entity.vo.UserLoginVO;
 import org.jeecg.modules.shop.user.mapper.PartnerUserMapper;
@@ -25,6 +35,8 @@ import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
+import java.math.BigDecimal;
+import java.util.List;
 import java.util.concurrent.TimeUnit;
 
 /**
@@ -41,6 +53,12 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
 
     private final IMiddleSequenceService middleSequenceService;
 
+    private final IPartnerCommissionService commissionService;
+
+    private final IPartnerOrderService orderService;
+
+    private final IPartnerCustomerService customerService;
+
     private final ShopTokenUtil shopTokenUtil;
 
     private final RedisTemplate<String, String> redisTemplate;
@@ -124,6 +142,51 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
         baseMapper.updateById(updateCustomerUser);
     }
 
+    @Override
+    public DataCountVO dataCount(String year) {
+        //待发放
+        BigDecimal money = BigDecimal.ZERO;
+        String userId = partnerUserHolder.currentLoginUserId();
+        List<PartnerCommission> cos = commissionService.list(
+                new LambdaQueryWrapper<PartnerCommission>()
+                        .eq(PartnerCommission::getUserId, userId)
+                        .eq(PartnerCommission::getState, 0));
+        for (PartnerCommission co : cos) {
+            money = money.add(co.getMoney());
+        }
+        //客户数量
+        Integer customCount = (int)customerService.count(new LambdaQueryWrapper<PartnerCustomer>().eq(PartnerCustomer::getUserId, userId)
+                .apply("DATE_FORMAT(create_time, '%Y') ={0}", year));
+        //客户佣金
+        BigDecimal customerCommission = commissionService.getCommissionByUserAndYear(userId, year);
+        //客户下单人数
+        Integer takeOrderUser = orderService.getTakeOrderUserCountByUserAndYear(userId, year);
+        //订单数量
+        Integer orderCount = orderService.getOrderCountByUserAndYear(userId, year);
+        //订单佣金
+        BigDecimal orderCommission = commissionService.getOrderCommissionByUserAndYear(userId, year);
+        DataCountVO vo = new DataCountVO();
+        vo.setMoney(money);
+        vo.setCustomerCount(customCount);
+        vo.setCustomerMoney(customerCommission);
+        vo.setCustomerOrderCount(takeOrderUser);
+        vo.setOrderCount(orderCount);
+        vo.setOrderMoney(orderCommission);
+        return vo;
+    }
+
+    @Override
+    public IPage<PageListCostomerVO> customerList(Integer pageNo, Integer pageSize) {
+        String userId = partnerUserHolder.currentLoginUserId();
+        return baseMapper.customerList(userId,new Page<PageListCostomerVO>(pageNo, pageSize));
+    }
+
+    @Override
+    public IPage<PageListCostomerVO> orderList(Integer pageNo, Integer pageSize) {
+        String userId = partnerUserHolder.currentLoginUserId();
+        return baseMapper.orderList(userId,new Page<PageListCostomerVO>(pageNo, pageSize));
+    }
+
     private PartnerUser getCurrentLoginCustomerUser() {
         try {
             String userId = partnerUserHolder.currentLoginUserId(); // 此方法也提供给其他模块调用,所以加一下登录和类型判断

+ 1 - 1
jeecg-module-system/jeecg-system-start/src/main/resources/application-dev.yml

@@ -1,5 +1,5 @@
 server:
-  port: 8090
+  port: 8091
   tomcat:
     max-swallow-size: -1
   error:

+ 1 - 1
jeecg-module-system/jeecg-system-start/src/main/resources/application-prod.yml

@@ -1,5 +1,5 @@
 server:
-  port: 8090
+  port: 8091
   tomcat:
     max-swallow-size: -1
   error: