guomengjiao месяцев назад: 3
Родитель
Сommit
8ff1290f88

+ 15 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/controller/shop/business/UserBusinessRoleController.java

@@ -11,6 +11,7 @@ import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.core.validate.EditGroup;
 import com.ruoyi.common.core.validate.QueryGroup;
 import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.shop.business.domain.bo.UserBusinessRoleBo;
 import com.ruoyi.shop.business.domain.vo.BusinessIntegralVo;
 import com.ruoyi.shop.business.domain.vo.UserBusinessRoleVo;
@@ -23,9 +24,11 @@ import lombok.RequiredArgsConstructor;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpServletResponse;
 import javax.validation.constraints.NotNull;
 import java.util.Date;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -120,9 +123,20 @@ public class UserBusinessRoleController extends BaseController {
      * 商家积分列表
      */
     @ApiOperation("商家积分列表")
-    @SaCheckPermission("user:userBusinessRole:list")
+    @SaCheckPermission("user:userBusinessRole:businessPage")
     @GetMapping("/businessPage")
     public TableDataInfo<BusinessIntegralVo> businessPage(@Validated(QueryGroup.class) UserBusinessRoleBo bo, PageQuery pageQuery) {
         return iUserBusinessRoleService.businessPage(bo, pageQuery);
     }
+
+    /**
+     * 导出商家积分列表
+     */
+    @ApiOperation("导出商家积分列表")
+    @SaCheckPermission("user:userBusinessRole:businessExport")
+    @PostMapping("/businessExport")
+    public void businessExport(UserBusinessRoleBo bo, HttpServletResponse response) {
+        List<BusinessIntegralVo> list = iUserBusinessRoleService.businessList(bo);
+        ExcelUtil.exportExcel(list, "积分管理", BusinessIntegralVo.class, response);
+    }
 }

+ 2 - 0
ruoyi-shop/src/main/java/com/ruoyi/shop/business/mapper/UserBusinessRoleMapper.java

@@ -37,4 +37,6 @@ public interface UserBusinessRoleMapper extends BaseMapperPlus<UserBusinessRoleM
     Page<UserBusinessRoleVo> selectBusinessPage(@Param("page") Page<Object> build, @Param("bo") UserBusinessRoleBo bo);
 
     List<UserBusinessRoleVo> selectBusinessList(@Param("bo") UserBusinessRoleBo bo);
+
+    List<BusinessIntegralVo> businessList(@Param("bo") UserBusinessRoleBo bo);
 }

+ 2 - 0
ruoyi-shop/src/main/java/com/ruoyi/shop/business/service/IUserBusinessRoleService.java

@@ -151,4 +151,6 @@ public interface IUserBusinessRoleService {
      * 初始化用户并绑定商家
      */
     User initUserAndBindBusiness(String mobile, String nickname, Long businessId);
+
+    List<BusinessIntegralVo> businessList(UserBusinessRoleBo bo);
 }

+ 10 - 4
ruoyi-shop/src/main/java/com/ruoyi/shop/business/service/impl/UserBusinessRoleServiceImpl.java

@@ -51,10 +51,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
-import java.util.Collection;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -483,6 +480,15 @@ public class UserBusinessRoleServiceImpl implements IUserBusinessRoleService {
         return user;
     }
 
+    @Override
+    public List<BusinessIntegralVo> businessList(UserBusinessRoleBo bo) {
+        List<BusinessIntegralVo> businessIntegralVos = baseMapper.businessList(bo);
+        return businessIntegralVos.stream().map(vo -> {
+            vo.setWaitUseIntegral(vo.getTotalGrantIntegral().subtract(vo.getUsedIntegral()));
+            return vo;
+        }).collect(Collectors.toList());
+    }
+
 
     private List<UserBusinessVerifierIntegralVo> convertVerifyList(List<UserBusinessVerifierIntegralVo> voList) {
         return voList.stream().map(vo -> {

+ 29 - 21
ruoyi-shop/src/main/resources/mapper/business/UserBusinessRoleMapper.xml

@@ -72,27 +72,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </select>
 
     <select id="businessPage" resultType="com.ruoyi.shop.business.domain.vo.BusinessIntegralVo">
-        select r.business_id, max(b.business_name), max(b.business_type),
-               sum(case when i.bill_type = 1 then i.value else 0 end) totalGrantIntegral,
-               sum(case when i.bill_type = 0 then i.value else 0 end) usedIntegral
-               from tb_user_business_integral_record i
-        join tb_user_business_role r on r.id = i.business_role_id
-        join tb_business b on b.business_id = r.business_id
-               <where>
-                   <if test="bo.businessName != null and bo.businessName != ''">
-                        and b.business_name like concat('%', #{bo.businessName}, '%')
-                   </if>
-                    <if test="bo.businessType != null">
-                        and b.business_type = #{bo.businessType}
-                   </if>
-                    <if test="bo.startTime!=null">
-                        and i.create_time &gt;= #{bo.startTime}
-                    </if>
-                     <if test="bo.endTime!=null">
-                        and i.create_time &lt;= #{bo.endTime}
-                    </if>
-               </where>
-        group by r.business_id
+        <include refid="integralBusiness"/>
     </select>
 
     <select id="businessTotalIntegral" resultType="java.math.BigDecimal">
@@ -107,6 +87,34 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <include refid="queryBusiness"/>
     </select>
 
+    <sql id="integralBusiness">
+        select r.business_id, max(b.business_name) businessName, max(b.business_type) businessType,
+        sum(case when i.bill_type = 1 then i.value else 0 end) totalGrantIntegral,
+        sum(case when i.bill_type = 0 then i.value else 0 end) usedIntegral
+        from tb_user_business_integral_record i
+        join tb_user_business_role r on r.id = i.business_role_id
+        join tb_business b on b.business_id = r.business_id
+        <where>
+            <if test="bo.businessName != null and bo.businessName != ''">
+                and b.business_name like concat('%', #{bo.businessName}, '%')
+            </if>
+            <if test="bo.businessType != null">
+                and b.business_type = #{bo.businessType}
+            </if>
+            <if test="bo.startTime!=null">
+                and i.create_time &gt;= #{bo.startTime}
+            </if>
+            <if test="bo.endTime!=null">
+                and i.create_time &lt;= #{bo.endTime}
+            </if>
+        </where>
+        group by r.business_id
+    </sql>
+
+    <select id="businessList" resultType="com.ruoyi.shop.business.domain.vo.BusinessIntegralVo">
+        <include refid="integralBusiness"/>
+    </select>
+
     <sql id="queryBusiness">
         select r.*, b.business_name, b.business_type, b.parent_business_id,
             b.location, b.province_name, b.city_name, b.area_name,