Merge branch 'dev/dev_xp' into dev/dev

This commit is contained in:
2024-12-23 14:35:29 +08:00
6 changed files with 110 additions and 8 deletions

View File

@@ -1,8 +1,8 @@
package com.ai.da.controller;
import com.ai.da.common.response.PageBaseResponse;
import com.ai.da.common.response.Response;
import com.ai.da.mapper.primary.entity.Affiliate;
import com.ai.da.model.dto.AffiliateQueryDTO;
import com.ai.da.model.vo.AffiliateInvitationDetailsVO;
import com.ai.da.model.vo.AffiliateVO;
@@ -15,7 +15,6 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.Valid;
import java.util.List;
@Slf4j
@RestController
@@ -34,7 +33,7 @@ public class AffiliateController {
@ApiOperation(value = "获取affiliate列表")
@PostMapping("/list")
public Response<IPage<Affiliate>> getAffiliateList(@Valid @RequestBody AffiliateQueryDTO affiliateQueryDTO) {
public Response<PageBaseResponse<AffiliateVO>> getAffiliateList(@Valid @RequestBody AffiliateQueryDTO affiliateQueryDTO) {
return Response.success(affiliateService.getAffiliateList(affiliateQueryDTO));
}

View File

@@ -1,11 +1,19 @@
package com.ai.da.mapper.primary;
import com.ai.da.mapper.primary.entity.Affiliate;
import com.ai.da.model.vo.AffiliateVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
import java.util.Map;
public interface AffiliateMapper extends BaseMapper<Affiliate> {
Map<String, Long> getMonthlyApprovedAffiliate(int year, int month);
List<AffiliateVO> getAffiliateList(String status, String startTime, String endTime,
String order, Long affiliateId, int size, int offset);
int queryAffiliateTotalCount(String status, String startTime, String endTime, Long affiliateId);
}

View File

@@ -12,4 +12,6 @@ public class AffiliateVO extends Affiliate {
private Long linkViewCount;
private String username;
}

View File

@@ -1,5 +1,6 @@
package com.ai.da.service;
import com.ai.da.common.response.PageBaseResponse;
import com.ai.da.mapper.primary.entity.Affiliate;
import com.ai.da.model.dto.AffiliateQueryDTO;
import com.ai.da.model.vo.AffiliateInvitationDetailsVO;
@@ -11,7 +12,7 @@ public interface AffiliateService extends IService<Affiliate> {
Boolean registerAsAnAffiliate(String promotionMethod);
IPage<Affiliate> getAffiliateList(AffiliateQueryDTO affiliateQueryDTO);
PageBaseResponse<AffiliateVO> getAffiliateList(AffiliateQueryDTO affiliateQueryDTO);
AffiliateVO personalAffiliateCenter();

View File

@@ -3,11 +3,11 @@ package com.ai.da.service.impl;
import com.ai.da.common.config.exception.BusinessException;
import com.ai.da.common.constant.CommonConstant;
import com.ai.da.common.context.UserContext;
import com.ai.da.common.response.PageBaseResponse;
import com.ai.da.common.response.ResultEnum;
import com.ai.da.common.utils.CopyUtil;
import com.ai.da.common.utils.RedisUtil;
import com.ai.da.common.utils.SendEmailUtil;
import com.ai.da.mapper.primary.AccountMapper;
import com.ai.da.mapper.primary.AffiliateIncomeMapper;
import com.ai.da.mapper.primary.AffiliateMapper;
import com.ai.da.mapper.primary.SubscriptionInfoMapper;
@@ -29,6 +29,7 @@ import com.mysql.cj.util.StringUtils;
import io.netty.util.internal.StringUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.math.BigDecimal;
@@ -84,15 +85,47 @@ public class AffiliateServiceImpl extends ServiceImpl<AffiliateMapper, Affiliate
return true;
}
public IPage<Affiliate> getAffiliateList(AffiliateQueryDTO affiliateQueryDTO){
public PageBaseResponse<AffiliateVO> getAffiliateList(AffiliateQueryDTO affiliateQueryDTO){
log.info("parameter => {}", affiliateQueryDTO.toString());
QueryWrapper<Affiliate> qw = new QueryWrapper<>();
int offset = (affiliateQueryDTO.getPage() - 1) * affiliateQueryDTO.getSize();
List<AffiliateVO> affiliateList = baseMapper.getAffiliateList(affiliateQueryDTO.getStatus(),
affiliateQueryDTO.getStartTime(),
affiliateQueryDTO.getEndTime(),
affiliateQueryDTO.getOrder(),
affiliateQueryDTO.getAffiliateId(),
affiliateQueryDTO.getSize(),
offset
);
if (CollectionUtils.isEmpty(affiliateList)) {
return PageBaseResponse.success(new Page<>());
}else {
int totalCount = baseMapper.queryAffiliateTotalCount(affiliateQueryDTO.getStatus(),
affiliateQueryDTO.getStartTime(),
affiliateQueryDTO.getEndTime(),
affiliateQueryDTO.getAffiliateId()
);
IPage<AffiliateVO> orderListVOIPage = new Page<>();
Integer size = affiliateQueryDTO.getSize();
orderListVOIPage.setSize(size);
orderListVOIPage.setRecords(affiliateList);
orderListVOIPage.setCurrent(affiliateQueryDTO.getPage());
orderListVOIPage.setPages((long)Math.ceil((double) totalCount / size));
orderListVOIPage.setTotal(totalCount);
return PageBaseResponse.success(orderListVOIPage);
}
/*QueryWrapper<Affiliate> qw = new QueryWrapper<>();
qw.eq(!StringUtils.isNullOrEmpty(affiliateQueryDTO.getStatus()), "status", affiliateQueryDTO.getStatus())
.gt(!StringUtils.isNullOrEmpty(affiliateQueryDTO.getStartTime()), "create_time", affiliateQueryDTO.getStartTime())
.lt(!StringUtils.isNullOrEmpty(affiliateQueryDTO.getEndTime()), "create_time", affiliateQueryDTO.getEndTime())
.eq(!Objects.isNull(affiliateQueryDTO.getAffiliateId()), "id", affiliateQueryDTO.getAffiliateId())
.orderByDesc(affiliateQueryDTO.getOrder().equals("DESC"), "create_time");
return baseMapper.selectPage(new Page<>(affiliateQueryDTO.getPage(), affiliateQueryDTO.getSize()), qw);
Page<Affiliate> affiliatePage = baseMapper.selectPage(new Page<>(affiliateQueryDTO.getPage(), affiliateQueryDTO.getSize()), qw);
affiliatePage.convert((Function<Affiliate, AffiliateVO>) affiliate-> {
AffiliateVO affiliateVO = CopyUtil.copyObject(affiliate, AffiliateVO.class);
affiliateVO.setUsername();
});
return affiliatePage;*/
}
public AffiliateVO personalAffiliateCenter(){

View File

@@ -13,4 +13,63 @@
AND status = 'Active'
</select>
<select id="getAffiliateList" resultType="com.ai.da.model.vo.AffiliateVO">
SELECT
f.*,
c.user_name
FROM
t_affiliate f
LEFT JOIN
t_account c
ON
f.account_id = c.id
<where>
1 = 1
<if test="status != null and status != ''">
AND f.status = #{status}
</if>
<if test="startTime != null and startTime != ''">
AND f.create_time &gt; #{startTime}
</if>
<if test="endTime != null and endTime != ''">
AND f.create_time &lt; #{endTime}
</if>
<if test="affiliateId != null">
AND f.id = #{affiliateId}
</if>
</where>
<if test="order != null and order.toUpperCase() == 'DESC'">
ORDER BY f.create_time DESC
</if>
<if test="order == null or order.toUpperCase() != 'DESC'">
ORDER BY f.create_time ASC
</if>
LIMIT ${size} OFFSET ${offset}
</select>
<select id="queryAffiliateTotalCount" resultType="int">
SELECT
count(f.id)
FROM
t_affiliate f
LEFT JOIN
t_account c
ON
f.account_id = c.id
<where>
1 = 1
<if test="status != null and status != ''">
AND f.status = #{status}
</if>
<if test="startTime != null and startTime != ''">
AND f.create_time &gt; #{startTime}
</if>
<if test="endTime != null and endTime != ''">
AND f.create_time &lt; #{endTime}
</if>
<if test="affiliateId != null">
AND f.id = #{affiliateId}
</if>
</where>
</select>
</mapper>