Преглед на файлове

Merge branch 'dev-feat' of https://e.coding.net/chuanghaikeji/moxuanyunshangwaimai/backend into dev-wxl

# Conflicts:
#	src/main/java/com/sqx/modules/app/dao/UserMoneyDetailsDao.java
#	src/main/java/com/sqx/modules/app/service/UserMoneyDetailsService.java
#	src/main/java/com/sqx/modules/app/service/impl/UserMoneyDetailsServiceImpl.java
#	src/main/resources/mapper/userMoney/UserMoneyDetailsMapper.xml
wanxl преди 1 година
родител
ревизия
735e4f3f0d

+ 12 - 3
src/main/java/com/sqx/modules/app/dao/UserMoneyDetailsDao.java

@@ -16,14 +16,14 @@ import java.util.List;
 @Mapper
 public interface UserMoneyDetailsDao extends BaseMapper<UserMoneyDetails> {
 
-    Double monthIncome(@Param("date") String date,@Param("userId") Long userId);
+    Double monthIncome(@Param("date") String date, @Param("userId") Long userId);
 
     Double selectMyProfit(Long userId);
 
-    IPage<UserMoneyDetails> selectUserMoneyDetails(Page<UserMoneyDetails> pages,@Param("userId") Long userId, @Param("classify") Integer classify);
+    IPage<UserMoneyDetails> selectUserMoneyDetails(Page<UserMoneyDetails> pages, @Param("userId") Long userId, @Param("classify") Integer classify);
 
     IPage<UserMoneyDetails> selectPwCashDetails(Page<UserMoneyDetails> pages, @Param("userName") String userName, @Param("date") String date,
-                                                @Param("dateType") String dateType,@Param("zhifubao") String zhifubao, @Param("zhifubaoName") String zhifubaoName,
+                                                @Param("dateType") String dateType, @Param("zhifubao") String zhifubao, @Param("zhifubaoName") String zhifubaoName,
                                                 @Param("userId") Long userId);
 
     IPage<UserMoneyDetails> selectShopCashDeposit(Page<UserMoneyDetails> pages, Long shopId, Integer classify);
@@ -35,4 +35,13 @@ public interface UserMoneyDetailsDao extends BaseMapper<UserMoneyDetails> {
     BigDecimal walletDetailStatistics(@Param("query") WalletDetailQuery query);
 
     List<WalletDetailVO> excelWalletDetails(@Param("query") WalletDetailQuery query);
+
+    List<UserMoneyDetails> accountEntryManagementDetailsList(@Param("row") Integer row, @Param("limit") Integer limit, @Param("shopName") String shopName, @Param("shopPhone") String shopPhone,
+                                                             @Param("userPhone") String userPhone, @Param("couponName") String couponName,
+                                                             @Param("orderNumber") String orderNumber, @Param("startTime") String startTime, @Param("endTime") String endTime);
+
+    int accountEntryManagementDetailsCount(@Param("shopName") String shopName, @Param("shopPhone") String shopPhone,
+                                           @Param("userPhone") String userPhone, @Param("couponName") String couponName,
+                                           @Param("orderNumber") String orderNumber, @Param("startTime") String startTime, @Param("endTime") String endTime);
+
 }

+ 56 - 0
src/main/java/com/sqx/modules/app/entity/UserMoneyDetails.java

@@ -78,5 +78,61 @@ public class UserMoneyDetails implements Serializable {
     @TableField(exist = false)
     private String userName;
 
+    /**
+     * 店铺名称
+     */
+    @TableField(exist = false)
+    private String shopName;
+
+    /**
+     * 店铺手机号
+     */
+    @TableField(exist = false)
+    private String shopPhone;
+
+    /**
+     * 下单手机号
+     */
+    @TableField(exist = false)
+    private String userPhone;
+
+    /**
+     * 优惠活动名称
+     */
+    @TableField(exist = false)
+    private String couponName;
+
+    /**
+     * 活动优惠金额
+     */
+    @TableField(exist = false)
+    private BigDecimal activityDiscountAmount;
 
+
+    /**
+     * 优惠券优惠金额
+     */
+    @TableField(exist = false)
+    private BigDecimal couponMoney;
+
+    /**
+     * 跑腿费
+     */
+    @TableField(exist = false)
+    private BigDecimal errandMoney;
+
+    /**
+     * 订单号
+     */
+    @TableField(exist = false)
+    private BigDecimal orderNumber;
+
+    /**
+     * 订单id
+     */
+    /**
+     * 订单号
+     */
+    @TableField(exist = false)
+    private BigDecimal orderId;
 }

+ 16 - 0
src/main/java/com/sqx/modules/app/service/UserMoneyDetailsService.java

@@ -38,4 +38,20 @@ public interface UserMoneyDetailsService extends IService<UserMoneyDetails> {
      * @return
      */
     ExcelData excelWalletDetails(WalletDetailQuery query);
+
+    /**
+     * 入账管理
+     * @param page
+     * @param limit
+     * @param shopName
+     * @param shopPhone
+     * @param userPhone
+     * @param couponName
+     * @param orderNumber
+     * @param startTime
+     * @param endTime
+     * @return
+     */
+    PageUtils accountEntryManagementDetails(Integer page, Integer limit, String shopName, String shopPhone, String userPhone, String couponName, String orderNumber, String startTime, String endTime);
+
 }

+ 33 - 6
src/main/java/com/sqx/modules/app/service/impl/UserMoneyDetailsServiceImpl.java

@@ -13,6 +13,8 @@ import com.sqx.modules.pay.controller.query.CashOutQueryDTO;
 import com.sqx.modules.pay.controller.query.WalletDetailQuery;
 import com.sqx.modules.pay.vo.CashOutVO;
 import com.sqx.modules.pay.vo.WalletDetailVO;
+import org.checkerframework.checker.units.qual.A;
+import org.springframework.beans.factory.annotation.Autowired;
 import com.sqx.modules.utils.excel.ExcelData;
 import org.springframework.stereotype.Service;
 
@@ -26,14 +28,14 @@ import java.util.stream.Collectors;
 public class UserMoneyDetailsServiceImpl extends ServiceImpl<UserMoneyDetailsDao, UserMoneyDetails> implements UserMoneyDetailsService {
 
     @Override
-    public Result queryUserMoneyDetails(Integer page, Integer limit, Long userId,Integer classify,Integer type) {
+    public Result queryUserMoneyDetails(Integer page, Integer limit, Long userId, Integer classify, Integer type) {
         IPage<UserMoneyDetails> page1 = new Page(page, limit);
         QueryWrapper<UserMoneyDetails> queryWrapper = new QueryWrapper();
         queryWrapper.eq("user_id", userId);
-        if(classify!=null){
+        if (classify != null) {
             queryWrapper.eq("classify", classify);
         }
-        if(type!=null){
+        if (type != null) {
             queryWrapper.eq("type", type);
         }
         queryWrapper.eq("state", 2);
@@ -43,7 +45,7 @@ public class UserMoneyDetailsServiceImpl extends ServiceImpl<UserMoneyDetailsDao
 
     @Override
     public Double monthIncome(String date, Long userId) {
-        return baseMapper.monthIncome(date,userId);
+        return baseMapper.monthIncome(date, userId);
     }
 
     @Override
@@ -51,10 +53,10 @@ public class UserMoneyDetailsServiceImpl extends ServiceImpl<UserMoneyDetailsDao
         IPage<UserMoneyDetails> page1 = new Page(page, limit);
         QueryWrapper<UserMoneyDetails> queryWrapper = new QueryWrapper();
         queryWrapper.eq("shop_id", shopId);
-        if(classify!=null){
+        if (classify != null) {
             queryWrapper.eq("classify", classify);
         }
-        if(type!=null){
+        if (type != null) {
             queryWrapper.eq("type", type);
         }
         queryWrapper.eq("state", 2);
@@ -121,4 +123,29 @@ public class UserMoneyDetailsServiceImpl extends ServiceImpl<UserMoneyDetailsDao
                 "提现时间",
                 "金额");
     }
+
+
+    @Override
+    public PageUtils accountEntryManagementDetails(Integer page, Integer limit, String shopName, String shopPhone, String userPhone, String couponName, String orderNumber, String startTime, String endTime) {
+        IPage<UserMoneyDetails> iPage = new Page<>();
+        Integer row=(page-1)*limit;
+        List<UserMoneyDetails> userMoneyDetailsList = baseMapper.accountEntryManagementDetailsList(row,limit, shopName, shopPhone, userPhone, couponName, orderNumber, startTime, endTime);
+        int total = baseMapper.accountEntryManagementDetailsCount(shopName, shopPhone, userPhone, couponName, orderNumber, startTime, endTime);
+
+//        当前页数
+        iPage.setCurrent(page);
+//        每页显示数
+        iPage.setSize(limit);
+//        数据
+        iPage.setRecords(userMoneyDetailsList);
+//        总页数
+
+        iPage.setPages((int)Math.ceil((double)total/limit));
+//        总数
+        iPage.setTotal(total);
+        PageUtils pageUtils = new PageUtils(iPage);
+        List<?> list = pageUtils.getList();
+        System.out.println("list = " + list);
+        return pageUtils;
+    }
 }

+ 1 - 0
src/main/java/com/sqx/modules/goods/controller/GoodsShopController.java

@@ -124,6 +124,7 @@ public class GoodsShopController {
     @PostMapping("/updateGoodsShop")
     public Result updateGoodsShop(@RequestBody GoodsShop goodsShop){
         goodsShop.setStatus(0);
+        goodsShop.setIsSupplier(1);
         goodsShopService.updateById(goodsShop);
         return Result.success();
     }

+ 2 - 0
src/main/java/com/sqx/modules/goods/service/impl/GoodsShopServiceImpl.java

@@ -467,6 +467,8 @@ public class GoodsShopServiceImpl extends ServiceImpl<GoodsShopDao, GoodsShop> i
         goodsShopVo.setDistributionDistance(3000.00);
         GoodsShop shop = new GoodsShop();
         BeanUtils.copyProperties(goodsShopVo, shop);
+//        默认不是供应商
+        shop.setIsSupplier(1);
         baseMapper.insert(shop);
         CommonInfo name = commonInfoService.findOne(12);
         Msg byPhone = msgDao.findByPhone(goodsShopVo.getPhone());

+ 7 - 0
src/main/java/com/sqx/modules/shop/controller/app/ShopMoneyController.java

@@ -180,4 +180,11 @@ public class ShopMoneyController extends AbstractController {
         return userMoneyDetailsService.selectShopCashDeposit(sysUserShop.getShopId(), page, limit, classify);
     }
 
+    @GetMapping(value = "/accountEntryManagement")
+    @ApiOperation("入账管理")
+    public Result accountEntryManagement(Integer page, Integer limit,String shopName,String shopPhone,String userPhone,String couponName,String orderNumber,String startTime,String endTime){
+        PageUtils pageUtils = userMoneyDetailsService.accountEntryManagementDetails(page, limit, shopName, shopPhone, userPhone, couponName, orderNumber, startTime, endTime);
+        return Result.success().put("data", pageUtils);
+    }
+
 }

+ 171 - 26
src/main/resources/mapper/userMoney/UserMoneyDetailsMapper.xml

@@ -3,16 +3,27 @@
 <mapper namespace="com.sqx.modules.app.dao.UserMoneyDetailsDao">
 
     <select id="selectUserMoneyDetails" resultType="com.sqx.modules.app.entity.UserMoneyDetails">
-        select * from user_money_details where user_id = #{userId} and classify = #{classify} order by create_time desc
+        select *
+        from user_money_details
+        where user_id = #{userId}
+          and classify = #{classify}
+        order by create_time desc
     </select>
 
     <select id="selectShopCashDeposit" resultType="com.sqx.modules.app.entity.UserMoneyDetails">
-        select * from user_money_details where shop_id = #{shopId} and classify = #{classify}
+        select *
+        from user_money_details
+        where shop_id = #{shopId}
+          and classify = #{classify}
         order by create_time desc
     </select>
 
     <select id="selectShopCashDepositList" resultType="com.sqx.modules.app.entity.UserMoneyDetails">
-        select * from user_money_details where shop_id = #{shopId} and classify = 2 order by create_time desc
+        select *
+        from user_money_details
+        where shop_id = #{shopId}
+          and classify = 2
+        order by create_time desc
     </select>
 
     <sql id="walletQueryCondition">
@@ -40,17 +51,17 @@
 
     <select id="walletDetailList" resultType="com.sqx.modules.pay.vo.WalletDetailVO">
         select
-            umd.id,
-            gs.shop_name,
-            umd.title,
-            umd.content,
-            umd.type,
-            umd.classify,
-            umd.money,
-            umd.create_time
+        umd.id,
+        gs.shop_name,
+        umd.title,
+        umd.content,
+        umd.type,
+        umd.classify,
+        umd.money,
+        umd.create_time
         from
-            user_money_details umd
-            left join goods_shop gs on gs.shop_id = umd.shop_id
+        user_money_details umd
+        left join goods_shop gs on gs.shop_id = umd.shop_id
         <include refid="walletQueryCondition"></include>
         order by umd.create_time desc
     </select>
@@ -74,20 +85,154 @@
 
     <select id="walletDetailStatistics" resultType="java.math.BigDecimal">
         select
-            sum(o.amount)
+        sum(o.amount)
+        from
+        (
+        select
+        case
+        when umd.type = 1 then umd.money
+        else -umd.money
+        end as amount
         from
-            (
-                select
-                    case
-                        when umd.type = 1 then umd.money
-                        else -umd.money
-                    end as amount
-                from
-                    user_money_details umd
-                left join goods_shop gs on gs.shop_id = umd.shop_id
-                <include refid="walletQueryCondition"></include>
-                order by umd.create_time desc
-            ) o
+        user_money_details umd
+        left join goods_shop gs on gs.shop_id = umd.shop_id
+        <include refid="walletQueryCondition"></include>
+        order by umd.create_time desc
+        ) o
+    </select>
+
+    <select id="accountEntryManagementDetailsList" resultType="com.sqx.modules.app.entity.UserMoneyDetails">
+        SELECT
+        umd2.id,
+        umd2.orderNumber,
+        umd2.user_id as userId,
+        umd2.shop_id as shopId,
+        umd2.title,
+        umd2.content,
+        umd2.type,
+        umd2.classify,
+        umd2.money,
+        umd2.create_time as createTime,
+        umd2.state,
+        tbu.user_name as userName,
+        tbu.phone as userPhone,
+        gs.shop_name as shopName,
+        gs.phone as shopPhone,
+        tcu.coupon_name as couponName,
+        tcu.money as couponMoney,
+        apr.discount_amount as activityDiscountAmount,
+        tbo.errand_money as errandMoney
+        FROM
+        (
+        SELECT
+        RIGHT( umd.title, 18 ) AS orderNumber,
+        umd.id,
+        umd.user_id,
+        umd.shop_id,
+        umd.title,
+        umd.content,
+        umd.type,
+        umd.classify,
+        umd.money,
+        umd.create_time,
+        umd.state,
+        umd.children_id
+        FROM
+        `user_money_details` umd
+        WHERE
+        umd.type = 1
+        AND umd.classify = 3
+        AND umd.shop_id IS NOT NULL
+        AND umd.state=2
+        AND umd.title LIKE '商户订单收入' '%'
+        ) umd2
+        LEFT JOIN tb_order tbo on tbo.order_number=umd2.orderNumber
+        LEFT JOIN tb_user tbu on tbu.user_id=tbo.user_id
+        LEFT JOIN goods_shop gs on gs.shop_id=tbo.shop_id
+        LEFT JOIN tb_coupon_user tcu on tbo.coupon_id = tcu.id
+        LEFT JOIN activity_part_record apr on apr.order_id = tbo.order_id
+        where 1 = 1
+        <if test="shopName != null and shopName != ''">
+            and gs.shop_name like  concat("%", #{shopName}, "%")
+        </if>
+
+        <if test="shopPhone != null and shopPhone != ''">
+            and gs.phone= #{shopPhone}
+        </if>
+
+        <if test="userPhone != null and userPhone != ''">
+            and tbu.phone=#{userPhone}
+        </if>
+
+        <if test="couponName != null and couponName != ''">
+            and tcu.coupon_name like  concat("%", #{couponName}, "%")
+        </if>
+
+        <if test="orderNumber != null and orderNumber != ''">
+            and tbo.order_number = #{orderNumber}
+        </if>
+
+        <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+            and umd2.create_time >= #{startTime} and #{endTime} >= umd2.create_time
+        </if>
+        ORDER BY umd2.id desc
+        LIMIT #{limit} OFFSET #{row}
     </select>
+    <select id="accountEntryManagementDetailsCount" resultType="java.lang.Integer">
+        SELECT
+        count(*)
+        FROM
+        (
+        SELECT
+        RIGHT( umd.title, 18 ) AS orderNumber,
+        umd.id,
+        umd.user_id,
+        umd.shop_id,
+        umd.title,
+        umd.content,
+        umd.type,
+        umd.classify,
+        umd.money,
+        umd.create_time,
+        umd.state,
+        umd.children_id
+        FROM
+        `user_money_details` umd
+        WHERE
+        umd.type = 1
+        AND umd.classify = 3
+        AND umd.shop_id IS NOT NULL
+        AND umd.state=2
+        AND umd.title LIKE '商户订单收入' '%'
+        ) umd2
+        LEFT JOIN tb_order tbo on tbo.order_number=umd2.orderNumber
+        LEFT JOIN tb_user tbu on tbu.user_id=tbo.user_id
+        LEFT JOIN goods_shop gs on gs.shop_id=tbo.shop_id
+        LEFT JOIN tb_coupon_user tcu on tbo.coupon_id = tcu.id
+        LEFT JOIN activity_part_record apr on apr.order_id = tbo.order_id
+        where 1 = 1
+        <if test="shopName != null and shopName != ''">
+            and gs.shop_name like concat("%", #{shopName}, "%")
+        </if>
 
+        <if test="shopPhone != null and shopPhone != ''">
+            and gs.phone= #{shopPhone}
+        </if>
+
+        <if test="userPhone != null and userPhone != ''">
+            and tbu.phone=#{userPhone}
+        </if>
+
+        <if test="couponName != null and couponName != ''">
+            and tcu.coupon_name like concat("%", #{couponName}, "%")
+        </if>
+
+        <if test="orderNumber != null and orderNumber != ''">
+            and tbo.order_number = #{orderNumber}
+        </if>
+
+        <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+            and umd2.create_time >= #{startTime} and #{endTime} >= umd2.create_time
+        </if>
+    </select>
 </mapper>