Jelajahi Sumber

1.添加外部订单审核驳回删除功能
2.添加分销管理批量设置分销比例,添加业务来源筛选
3.去除渠道提现必须提现100的限制

hxl13994548489 2 tahun lalu
induk
melakukan
b130a5522b

+ 8 - 0
src/main/java/com/ydtech/modules/admin/dao/SysDeptMapper.java

@@ -46,6 +46,14 @@ public interface SysDeptMapper extends BaseMapper<SysDept> {
      */
     String getByOrderNoQueryManagementSource(@Param(value = "orderNo") String orderNo);
 
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/18 11:58
+     *  @Description: 通过ids查询机构数据
+     */
+    List<SysDept> getListByIds(@Param(value = "ids") List<String> ids);
+
 
 }
 

+ 13 - 0
src/main/java/com/ydtech/modules/admin/model/dto/MyCollectInAdvanceQueryNewDto.java

@@ -63,4 +63,17 @@ public class MyCollectInAdvanceQueryNewDto {
      */
     @ApiModelProperty(value = "收支类型")
     private String incomeAndExpensesType;
+
+    /***
+     * 开始时间
+     */
+    @ApiModelProperty(value = "签单开始时间")
+    private String signBeginDate;
+
+    /***
+     * 结束时间
+     */
+    @ApiModelProperty(value = "签单结束时间")
+    private String signEndDate;
+
 }

+ 3 - 2
src/main/java/com/ydtech/modules/admin/service/impl/SysUserAccountServiceImpl.java

@@ -256,9 +256,10 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
     @Transactional
     public HttpResult<Object> inert(SysUserAccountVo sysUserAccountVo) {
         String userId = BaseController.getUser().getId();
+
         // add  by hxl 2024-09-12  =============== 添加提现用户是渠道的话,只能提现100的整数金额
         BigDecimal amount = sysUserAccountVo.getAmount();
-        judgeAmount(amount, userId);
+       // judgeAmount(amount, userId);   注释掉  2024-09-18
         // add  by  hxl  end =============================
         BigDecimal zero = BigDecimal.ZERO;
         BigDecimal beforeAmount;
@@ -373,7 +374,7 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
         String userId = sysUserAccountVo.getUserId();
         // add  by hxl 2024-09-12  =============== 添加提现用户是渠道的话,只能提现100的整数金额
         BigDecimal amount = sysUserAccountVo.getAmount();
-        judgeAmount(amount, userId);
+        // judgeAmount(amount, userId);   注释掉  2024-09-18
         // add  by  hxl  end =============================
         BigDecimal zero = BigDecimal.ZERO;
         BigDecimal beforeAmount;

+ 38 - 5
src/main/java/com/ydtech/modules/esm/controller/EsmRetailController.java

@@ -4,10 +4,14 @@ package com.ydtech.modules.esm.controller;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.core.page.PageRequest;
 import com.ydtech.core.page.PageResult;
+import com.ydtech.exception.SystemException;
 import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.esm.model.EsmRetail;
+import com.ydtech.modules.esm.model.vo.EsmRetailVo;
 import com.ydtech.modules.esm.service.EsmRetailService;
 import com.ydtech.utils.idgen.IdGenerate;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.*;
@@ -17,6 +21,7 @@ import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
+@Api(tags = "分销设置")
 @RestController
 @RequestMapping("/esmRetail")
 public class EsmRetailController extends BaseController {
@@ -78,6 +83,7 @@ public class EsmRetailController extends BaseController {
     public HttpResult findPage(@RequestBody PageRequest pageRequest) {
         int pageNum = pageRequest.getPageNum();
         int pageSize = pageRequest.getPageSize();
+        String source = PageRequest.getColumnFilterValue(pageRequest, "source"); //
         String deptid = PageRequest.getColumnFilterValue(pageRequest, "deptid"); //
         String containsSubDept = PageRequest.getColumnFilterValue(pageRequest, "containsSubDept");
         String retailtype = PageRequest.getColumnFilterValue(pageRequest, "retailtype");
@@ -85,21 +91,24 @@ public class EsmRetailController extends BaseController {
         StringBuffer whereStr = new StringBuffer(" where 1=1");
         ArrayList array = new ArrayList();
         if ("1".equals(containsSubDept) && !StringUtils.isEmpty(deptid)) {
-            whereStr.append(" and deptid like ?");
+            whereStr.append(" and t.deptid like ?");
             array.add(deptid + "%");
         } else if (!StringUtils.isEmpty(deptid)) {
-            whereStr.append(" and deptid = ?");
+            whereStr.append(" and t.deptid = ?");
             array.add(deptid);
         }
         if (!StringUtils.isEmpty(retailtype)) {
-            whereStr.append(" and retailtype=?");
+            whereStr.append(" and t.retailtype=?");
             array.add(retailtype);
         }
         if (!StringUtils.isEmpty(status)) {
-            whereStr.append(" and status=?");
+            whereStr.append(" and t.status=?");
             array.add(status);
         }
-
+        if (org.apache.commons.lang3.StringUtils.isNotBlank(source)) {
+            whereStr.append(" and dept.management_source=?");
+            array.add(source);
+        }
         PageResult pageResult = esmRetailService.selectPaging(pageNum, pageSize, whereStr.toString(), array.toArray());
 
         return HttpResult.ok(pageResult);
@@ -117,4 +126,28 @@ public class EsmRetailController extends BaseController {
 
         return HttpResult.ok(esmRetail);
     }
+
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/18 11:43
+     *  @Description:  批量设置分销比例
+     */
+    @ApiOperation("批量设置分销比例")
+    @PostMapping(value = "/batchSetData")
+    public HttpResult<Object> batchSetData(@RequestBody EsmRetailVo esmRetailVo) {
+        if(esmRetailVo.getIds() ==null  || esmRetailVo.getIds().size()==0){
+            new SystemException("所选数据不能为空!!");
+        }
+        if(org.apache.commons.lang3.StringUtils.isBlank(esmRetailVo.getRetailLevel())){
+            new SystemException("分销方式不能为空!!");
+        }
+        try{
+            esmRetailService.batchSetData(esmRetailVo);
+        }catch(Exception e){
+            return HttpResult.error("设置失败");
+        }
+        return HttpResult.ok("设置成功");
+    }
 }

+ 7 - 0
src/main/java/com/ydtech/modules/esm/dao/EsmRetailDao.java

@@ -28,6 +28,13 @@ public interface EsmRetailDao {
     public Integer delete(String id);
 
 //    public Integer updateSelective(EsmRetail model);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/18 14:14
+     *  @Description: 通过部门id查询数据
+     */
+    public EsmRetail selectByDeptId(String deptId);
 }
 
 

+ 14 - 2
src/main/java/com/ydtech/modules/esm/dao/impl/EsmRetailDaoImpl.java

@@ -23,6 +23,8 @@ public class EsmRetailDaoImpl implements EsmRetailDao {
     @Autowired
     public DataSource dataSource;
 
+
+
     public static class EsmRetailRowMapper implements RowMapper {
         public EsmRetail mapRow(ResultSet resultSet, int rowNum) throws SQLException {
             EsmRetail model = new EsmRetail();
@@ -42,6 +44,7 @@ public class EsmRetailDaoImpl implements EsmRetailDao {
             model.setCommission(resultSet.getDouble("commission"));
             model.setStatus(resultSet.getString("status"));
             model.setCreator(resultSet.getString("creator"));
+            model.setSource(resultSet.getString("source"));
             if (resultSet.getTimestamp("createtime") != null) {
                 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                 Date createtime = new Date(resultSet.getTimestamp("createtime").getTime());
@@ -82,7 +85,7 @@ public class EsmRetailDaoImpl implements EsmRetailDao {
     }
 
     public Integer count(String whereCase, Object[] paramValues) {
-        String sql = "select count(1) from esm_retail t " + whereCase;
+        String sql = "select count(1) from esm_retail t  left  join  sys_dept dept  on t.deptid = dept.id  " + whereCase;
 
         JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
 
@@ -92,7 +95,7 @@ public class EsmRetailDaoImpl implements EsmRetailDao {
     public PageResult selectPaging(int pageNumber, int pageSize, String whereCase, Object[] paramValues) {
 
         Dialect dialect = Dialect.guessDialect(dataSource);
-        String sql = dialect.pagin(pageNumber, pageSize, "select t.id,t.deptid,t.deptname,t.retailtype,t.disrate1,t.disrate2,t.disrate3,t.display,t.usergroup,t.status,t.paytype,t.minamount,t.maxamount,t.commission,t.creator,t.createtime from esm_retail t  " + whereCase);
+        String sql = dialect.pagin(pageNumber, pageSize, "select t.id,t.deptid,t.deptname,t.retailtype,t.disrate1,t.disrate2,t.disrate3,t.display,t.usergroup,t.status,t.paytype,t.minamount,t.maxamount,t.commission,t.creator,t.createtime,dept.management_source AS source  from esm_retail t  left  join  sys_dept dept  on t.deptid = dept.id " +whereCase);
 
         JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
         List<EsmRetail> recordList = jdbcTemplate.query(sql, paramValues, new EsmRetailRowMapper());
@@ -138,6 +141,15 @@ public class EsmRetailDaoImpl implements EsmRetailDao {
         return jdbcTemplate.update(sql, new Object[]{id});
     }
 
+    @Override
+    public EsmRetail selectByDeptId(String id) {
+        String sql = "select t.id,t.deptid,t.deptname,t.retailtype,t.disrate1,t.disrate2,t.disrate3,t.display,t.usergroup,t.status,t.paytype,t.minamount,t.maxamount,t.commission,t.creator,t.createtime from esm_retail t  where deptid=?";
+
+        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
+
+        return (EsmRetail) jdbcTemplate.queryForObject(sql,
+                new Object[]{id}, new EsmRetailRowMapper());
+    }
 
 }
 

+ 22 - 0
src/main/java/com/ydtech/modules/esm/model/EsmRetail.java

@@ -25,6 +25,8 @@ public class EsmRetail {
     private String creator;
     private String createtime;
 
+    private  String source;
+
     public String getId() {
         return id;
     }
@@ -152,4 +154,24 @@ public class EsmRetail {
     public void setCreatetime(String createtime) {
         this.createtime = createtime;
     }
+
+    public String getSource() {
+        return source;
+    }
+
+    public void setSource(String source) {
+        this.source = source;
+    }
+
+    public EsmRetail() {
+    }
+
+    public EsmRetail(String deptid, String deptname, String retailtype, double disrate1, double disrate2, double disrate3) {
+        this.deptid = deptid;
+        this.deptname = deptname;
+        this.retailtype = retailtype;
+        this.disrate1 = disrate1;
+        this.disrate2 = disrate2;
+        this.disrate3 = disrate3;
+    }
 }

+ 34 - 0
src/main/java/com/ydtech/modules/esm/model/vo/EsmRetailVo.java

@@ -0,0 +1,34 @@
+package com.ydtech.modules.esm.model.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+
+@ApiModel(description = "批量设置分销对象")
+@Data
+public class EsmRetailVo implements Serializable {
+
+
+    @ApiModelProperty(value = "机构ids(必传)")
+    private  ArrayList<String>  ids =new ArrayList<String>();
+
+    @ApiModelProperty(value = "分销级别")
+    private   String retailLevel;
+
+
+    @ApiModelProperty(value = "1级分销比例")
+    private   Double  disrate1;
+
+
+    @ApiModelProperty(value = "2级分销比例")
+    private   Double  disrate2;
+
+    @ApiModelProperty(value = "3级分销比例")
+    private   Double  disrate3;
+
+
+
+}

+ 8 - 0
src/main/java/com/ydtech/modules/esm/service/EsmRetailService.java

@@ -2,8 +2,16 @@ package com.ydtech.modules.esm.service;
 
 
 import com.ydtech.modules.esm.dao.EsmRetailDao;
+import com.ydtech.modules.esm.model.vo.EsmRetailVo;
 
 public interface EsmRetailService extends EsmRetailDao {
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/18 11:53
+     *  @Description:  批量设置比例
+     */
+    void batchSetData(EsmRetailVo esmRetailVo);
 }
 
 

+ 46 - 0
src/main/java/com/ydtech/modules/esm/service/impl/EsmRetailServiceImpl.java

@@ -1,15 +1,61 @@
 package com.ydtech.modules.esm.service.impl;
 
+import com.ydtech.modules.admin.dao.SysDeptMapper;
+import com.ydtech.modules.admin.model.SysDept;
+import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.esm.dao.impl.EsmRetailDaoImpl;
+import com.ydtech.modules.esm.model.EsmRetail;
+import com.ydtech.modules.esm.model.vo.EsmRetailVo;
 import com.ydtech.modules.esm.service.EsmRetailService;
+import com.ydtech.utils.idgen.IdGenerate;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
 
 @Service
 public class EsmRetailServiceImpl extends EsmRetailDaoImpl
         implements EsmRetailService {
 
 
+    @Autowired
+    private SysDeptMapper sysDeptMapper;
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/18 11:54
+     *  @Description:  批量设置比例
+     */
+    @Override
+    public void batchSetData(EsmRetailVo esmRetailVo) {
+        ArrayList<String> ids = esmRetailVo.getIds();
+        if(ids!=null && ids.size()>0){
+            List<SysDept> deptIds = sysDeptMapper.getListByIds(ids);
+            for(SysDept dept : deptIds){
+                EsmRetail esmRetail = this.selectByDeptId(dept.getId());
+                if(esmRetail!=null){
+                    esmRetail.setRetailtype(esmRetailVo.getRetailLevel());
+                    esmRetail.setDisrate1(esmRetailVo.getDisrate1());
+                    esmRetail.setDisrate2(esmRetailVo.getDisrate2());
+                    esmRetail.setDisrate3(esmRetailVo.getDisrate3());
+                    this.update(esmRetail);
+                }else{
+                    EsmRetail  record  =new EsmRetail(dept.getId(), dept.getName(), esmRetailVo.getRetailLevel(), esmRetailVo.getDisrate1(), esmRetailVo.getDisrate2(), esmRetailVo.getDisrate2());
+                    String id = IdGenerate.nextId();
+                    record.setId(id);
+                    record.setStatus("1");  //0无效 1有效
+                    record.setCreator(new BaseController().getUserName());
+                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                    record.setCreatetime(sdf.format(new Date()));
+                    this.insert(record);
+                }
+            }
+        }
+    }
 }
 
 

+ 22 - 0
src/main/java/com/ydtech/modules/order/controller/ExternalOrderController.java

@@ -16,6 +16,7 @@ import com.ydtech.modules.order.service.InsTaskImagesService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -132,4 +133,25 @@ public class ExternalOrderController {
         Page page = buildPageRequest(rejectPageQueryVo.getPageDto());
         return HttpResult.ok(insAreaCompanyService.orderCheckPage(page, BaseController.getUser().getId(),rejectPageQueryVo));
     }
+
+   /**
+    *  @version
+    *  @author: hxl
+    *  @Date: 2024/9/18 11:17
+    *  @Description:外部駁回刪除
+    */
+    @GetMapping("/orderDelete")
+    @ApiOperation("外部駁回刪除")
+    public HttpResult<Object> orderDelete(String id){
+        if(StringUtils.isBlank(id)){
+            throw new SystemException("订单号不能为空!!");
+        }
+        try{
+            insAreaCompanyService.updateDeleteFalg(id);
+        }catch(Exception e){
+            return HttpResult.ok("操作失败");
+        }
+
+        return HttpResult.ok("操作成功");
+    }
 }

+ 3 - 0
src/main/java/com/ydtech/modules/order/entity/InsOrders.java

@@ -331,6 +331,9 @@ public class InsOrders implements Serializable {
     @TableField(exist = false)
     private String dockingPerson;
 
+    @ApiModelProperty("对接人")
+    @TableField(value = "del_flag")
+    private String delFlag;
 
     public InsOrders(SysUser user, SysDept dept, BaseQuoteInfoVo quoteInfoVo) {
         // 2. 组装订单

+ 7 - 0
src/main/java/com/ydtech/modules/order/service/InsAreaCompanyService.java

@@ -218,4 +218,11 @@ public interface InsAreaCompanyService extends IService<InsAreaCompany> {
      *  @Description: 查询外部审核通过的订单
      */
     Page<InsAreaCompany>  orderCheckPage(Page page, String id, RejectPageQueryVo rejectPageQueryVo);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/18 10:56
+     *  @Description:  外部订单逻辑删除
+     */
+    void updateDeleteFalg(String id);
 }

+ 13 - 0
src/main/java/com/ydtech/modules/order/service/impl/InsAreaCompanyServiceImpl.java

@@ -3,6 +3,7 @@ package com.ydtech.modules.order.service.impl;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ydtech.constants.enums.dict.FeeAuditAuditstatus;
@@ -1012,6 +1013,18 @@ public class InsAreaCompanyServiceImpl extends ServiceImpl<InsAreaCompanyMapper,
     public Page<InsAreaCompany> orderCheckPage(Page page, String userId, RejectPageQueryVo rejectPageQueryVo) {
         return  baseMapper.orderCheckPage(page, userId, rejectPageQueryVo);
     }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/18 10:57
+     *  @Description: 外部订单删除
+     */
+    @Override
+    public void updateDeleteFalg(String id) {
+        UpdateWrapper<InsAreaCompany> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.set("del_flag",0).eq("id", id);
+        update(updateWrapper);
+    }
 
 
 }

+ 9 - 0
src/main/resources/mapper/modules/admin/SysDeptMapper.xml

@@ -119,5 +119,14 @@
                     FROM ins_orders
                     WHERE orderno = #{orderNo})
     </select>
+    <select id="getListByIds" resultType="com.ydtech.modules.admin.model.SysDept">
+        SELECT sd.id        AS id,
+               sd.NAME      AS NAME
+        FROM sys_dept sd
+        WHERE sd.id  in
+        <foreach collection="ids" item="item" open="(" close=")" separator=",">
+            #{item}
+        </foreach>
+    </select>
 
 </mapper>

+ 4 - 1
src/main/resources/mapper/modules/admin/SysUserAccountHistoryMapper.xml

@@ -242,7 +242,7 @@
         </if>
         and his.user_id = #{vo.userId}
         <if test="vo.startDate !=null and vo.startDate != '' and vo.endDate !=null and vo.endDate != '' ">
-            AND   his.create_time  BETWEEN #{vo.startDate} AND #{vo.endDate}
+            AND   date(his.create_time)  BETWEEN #{vo.startDate} AND #{vo.endDate}
         </if>
         <if test="vo.transactionType !=null and vo.transactionType != ''  and vo.transactionType != '0'">
             and his.property = #{vo.transactionType}
@@ -253,6 +253,9 @@
         <if test="vo.licenseNo !=null and vo.licenseNo != ''">
             and  o.licenseno =#{vo.licenseNo}
         </if>
+        <if test="vo.signBeginDate !=null and vo.signBeginDate != '' and vo.signEndDate !=null and vo.signEndDate != '' ">
+            AND   date(ins.signing_time)  BETWEEN #{vo.signBeginDate} AND #{vo.signEndDate}
+        </if>
         order by his.create_time desc
     </sql>
 

+ 1 - 1
src/main/resources/mapper/modules/order/InsAreaCompanyMapper.xml

@@ -695,7 +695,7 @@
         WHERE
             iac.operator_id = #{userId}
         AND
-            ifa.auditstatus = 2
+            ifa.auditstatus = 2  and  IFNULL(iac.del_flag,'') != '0'
         <if test="vo.id  != null  and  vo.id!=''">
             and  iac.id = #{vo.id}
         </if>