9ecbddaf1d8a3659f7ea30c0a22d8352d92ce1c8..c40f67835aba57f9e1829a40bb34debcc16c0848
2025-07-11 彭雪彬
骑手同步数据添加钱包信息
c40f67 diff | tree
2025-07-10 彭雪彬
前端模板修改
357d09 diff | tree
5 files modified
116 ■■■■ changed files
oying-generator/src/main/resources/template/front/index.ftl 41 ●●●● patch | view | raw | blame | history
oying-system/src/main/java/com/oying/modules/rider/domain/RiderSourceInfoHttp.java 2 ●●●●● patch | view | raw | blame | history
oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderInfoServiceImpl.java 22 ●●●●● patch | view | raw | blame | history
oying-system/src/main/java/com/oying/modules/rider/utils/Constants.java 15 ●●●● patch | view | raw | blame | history
oying-system/src/main/java/com/oying/modules/rider/utils/RiderSourceHttpUtils.java 36 ●●●●● patch | view | raw | blame | history
oying-generator/src/main/resources/template/front/index.ftl
@@ -10,7 +10,7 @@
          <#list queryColumns as column>
            <#if column.queryType != 'BetWeen'>
        <label class="el-form-item-label"><#if column.remark != ''>${column.remark}<#else>${column.changeColumnName}</#if></label>
        <el-input v-model="query.${column.changeColumnName}" clearable placeholder="<#if column.remark != ''>${column.remark}<#else>${column.changeColumnName}</#if>" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
        <el-input v-model="query.${column.changeColumnName}" clearable placeholder="请输入" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
            </#if>
          </#list>
        </#if>
@@ -19,8 +19,8 @@
      <#if column.queryType = 'BetWeen'>
        <date-range-picker
          v-model="query.${column.changeColumnName}"
          start-placeholder="${column.changeColumnName}Start"
          end-placeholder="${column.changeColumnName}Start"
          start-placeholder="开始时间"
          end-placeholder="结束时间"
          class="date-item"
        />
      </#if>
@@ -32,16 +32,16 @@
      <!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
      <crudOperation :permission="permission" />
      <!--表单组件-->
      <el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" :title="crud.status.title" width="500px">
      <el-dialog :close-on-click-modal="true" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" :title="crud.status.title" width="600px">
        <el-form ref="form" :model="form" <#if isNotNullColumns??>:rules="rules"</#if> size="small" label-width="80px">
    <#if columns??>
      <#list columns as column>
        <#if column.formShow>
          <el-form-item label="<#if column.remark != ''>${column.remark}<#else>${column.changeColumnName}</#if>"<#if column.istNotNull> prop="${column.changeColumnName}"</#if>>
            <#if column.formType = 'Input'>
            <el-input v-model="form.${column.changeColumnName}" style="width: 370px;" />
            <el-input v-model="form.${column.changeColumnName}" placeholder="请输入" style="width: 370px;" />
            <#elseif column.formType = 'Textarea'>
            <el-input v-model="form.${column.changeColumnName}" :rows="3" type="textarea" style="width: 370px;" />
            <el-input v-model="form.${column.changeColumnName}" placeholder="请输入" :rows="3" type="textarea" style="width: 370px;" />
            <#elseif column.formType = 'Radio'>
              <#if (column.dictName)?? && (column.dictName)!="">
            <el-radio v-model="form.${column.changeColumnName}" v-for="item in dict.${column.dictName}" :key="item.id" :label="item.value">{{ item.label }}</el-radio>
@@ -55,6 +55,7 @@
                v-for="item in dict.${column.dictName}"
                :key="item.id"
                :label="item.label"
                placeholder="请选择"
                :value="item.value" />
            </el-select>
              <#else>
@@ -74,8 +75,8 @@
        </div>
      </el-dialog>
      <!--表格渲染-->
      <el-table ref="table" v-loading="crud.loading" :data="crud.data" size="small" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
        <el-table-column type="selection" width="55" />
      <el-table ref="table" v-loading="crud.loading" :data="crud.data" max-height="600" border size="small" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
        <el-table-column type="selection" width="55" align="center" />
        <#if columns??>
            <#list columns as column>
            <#if column.columnShow>
@@ -86,7 +87,7 @@
          </template>
        </el-table-column>
                <#else>
        <el-table-column prop="${column.changeColumnName}" label="<#if column.remark != ''>${column.remark}<#else>${column.changeColumnName}</#if>" />
        <el-table-column prop="${column.changeColumnName}" label="<#if column.remark != ''>${column.remark}<#else>${column.changeColumnName}</#if>" :show-overflow-tooltip="true" align="center" />
                </#if>
            </#if>
            </#list>
@@ -113,24 +114,40 @@
import crudOperation from '@crud/CRUD.operation'
import udOperation from '@crud/UD.operation'
import pagination from '@crud/Pagination'
import DateRangePicker from '@/components/DateRangePicker'
const defaultForm = { <#if columns??><#list columns as column>${column.changeColumnName}: null<#if column_has_next>, </#if></#list></#if> }
export default {
  name: '${className}',
  components: { pagination, crudOperation, rrOperation, udOperation },
  components: { DateRangePicker, pagination, crudOperation, rrOperation, udOperation },
  mixins: [presenter(), header(), form(defaultForm), crud()],
  <#if hasDict>
  dicts: [<#if hasDict??><#list dicts as dict>'${dict}'<#if dict_has_next>, </#if></#list></#if>],
  </#if>
  cruds() {
    return CRUD({ title: '${apiAlias}', url: 'api/${changeClassName}', idField: '${pkChangeColName}', sort: '${pkChangeColName},desc', crudMethod: { ...crud${className} }})
    return CRUD({
        title: '${apiAlias}',
        url: 'api/${changeClassName}',
        idField: '${pkChangeColName}',
        sort: '${pkChangeColName},desc',
        crudMethod: { ...crud${className} },
        optShow: {
            add: false,
            edit: false,
            del: true,
            reset: true,
            download: true
        },
    })
  },
  data() {
    return {
      permission: {
        add: ['admin', '${changeClassName}:add'],
        edit: ['admin', '${changeClassName}:edit'],
        del: ['admin', '${changeClassName}:del']
        del: ['admin', '${changeClassName}:del'],
        download: ['admin', '${changeClassName}:download']
      },
      rules: {
        <#if isNotNullColumns??>
oying-system/src/main/java/com/oying/modules/rider/domain/RiderSourceInfoHttp.java
@@ -14,8 +14,6 @@
@Setter
public class RiderSourceInfoHttp implements Serializable {
    private String success;
    private String code;
    private String message;
oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderInfoServiceImpl.java
@@ -6,6 +6,8 @@
import com.oying.modules.rider.domain.RiderInfo;
import com.oying.modules.rider.domain.RiderSourceInfo;
import com.oying.modules.rider.domain.RiderSourceInfoHttp;
import com.oying.modules.rider.domain.RiderWalletInfo;
import com.oying.modules.rider.service.RiderWalletInfoService;
import com.oying.modules.rider.utils.Constants;
import com.oying.modules.rider.utils.RiderSourceHttpUtils;
import com.oying.utils.FileUtil;
@@ -20,6 +22,7 @@
import org.springframework.transaction.annotation.Transactional;
import com.oying.utils.PageUtil;
import java.math.BigDecimal;
import java.util.*;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
@@ -36,6 +39,8 @@
public class RiderInfoServiceImpl extends ServiceImpl<RiderInfoMapper, RiderInfo> implements RiderInfoService {
    private final RiderInfoMapper riderInfoMapper;
    private final RiderWalletInfoService riderWalletInfoService;
    @Override
    public PageResult<RiderInfo> queryAll(RiderInfoQueryCriteria criteria, Page<Object> page) {
@@ -112,6 +117,23 @@
                    newRiderInfo.setRiderId(riderId);
                    newRiderInfo.setSourcePlatform(sourcePlatform);
                    create(newRiderInfo);
                    // 创建骑手钱包信息 正常
                    RiderWalletInfo riderWalletInfo = new RiderWalletInfo();
                    riderWalletInfo.setRiderId(riderId);
                    riderWalletInfo.setAmount(new BigDecimal(0.00));
                    riderWalletInfo.setAvailableBalance(new BigDecimal(0.00));
                    riderWalletInfo.setPurchasingElectricityAmount(new BigDecimal(0.00));
                    riderWalletInfo.setWithdrawTotal(new BigDecimal(0.00));
                    riderWalletInfo.setIncomeTotal(new BigDecimal(0.00));
                    riderWalletInfo.setFrozenAmount(new BigDecimal(0.00));
                    riderWalletInfo.setRunTotal(Constants.ZERO);
                    riderWalletInfo.setCashWithdrawalTotal(Constants.ZERO);
                    riderWalletInfo.setPurchasingElectricityTotal(Constants.ZERO);
                    riderWalletInfo.setStatus(Constants.WALLET_STATUS_NORMAL);
                    riderWalletInfo.setPhone(infoHttpData.getPhone());
                    riderWalletInfo.setCardName(infoHttpData.getCardName());
                    riderWalletInfo.setCardNum(infoHttpData.getCardNum());
                    riderWalletInfoService.create(riderWalletInfo);
                } else {
                    // 是否相同平台
                    if (sourcePlatform.equals(riderInfo.getSourcePlatform())) {
oying-system/src/main/java/com/oying/modules/rider/utils/Constants.java
@@ -24,6 +24,17 @@
    /**
     * 状态 0不生效,1生效 其他平台是否满足接单的条件
     */
    String SOURCE_ENABLED_ON = "0";
    String SOURCE_ENABLED_DFF = "1";
    String SOURCE_ENABLED_ON = "1";
    String SOURCE_ENABLED_DFF = "0";
    /**
     * 初始值0
     */
    Integer ZERO = 0;
    /**
     * 钱包状态(0冻结,1正常)
     */
    String WALLET_STATUS_NORMAL = "1";
    String WALLET_STATUS_FROZEN = "0";
}
oying-system/src/main/java/com/oying/modules/rider/utils/RiderSourceHttpUtils.java
@@ -6,6 +6,7 @@
import cn.hutool.http.HttpResponse;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.oying.modules.rider.domain.RiderSourceInfo;
import com.oying.modules.rider.domain.RiderSourceInfoHttp;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -52,7 +53,6 @@
            RiderSourceInfoHttp riderSourceInfoHttp = new RiderSourceInfoHttp();
            riderSourceInfoHttp.setCode("500");
            riderSourceInfoHttp.setMessage(paramMap.get("phone") + "手机号请求异常:" + url);
            riderSourceInfoHttp.setSuccess("false");
            return JSON.toJSONString(riderSourceInfoHttp);
        } finally {
            IoUtil.close(response);
@@ -69,20 +69,29 @@
    public static RiderSourceInfoHttp getRiderSourceInfoHttp(String phone, String sourcePlatform) {
        HashMap<String, Object> paramMap = new HashMap<>(2);
        paramMap.put("phone", phone);
        paramMap.put("produceType", sourcePlatform);
        String url = "";
        paramMap.put("sourcePlatform", sourcePlatform);
        // String url = "";
        // 转化成对象
        RiderSourceInfoHttp riderSourceInfoHttp = new RiderSourceInfoHttp();
        try {
            String result = httpPostRequest(paramMap, url);
            // 转换数据
            riderSourceInfoHttp = riderConvertUtils(result);
        } catch (Exception e) {
            riderSourceInfoHttp.setCode("500");
            riderSourceInfoHttp.setMessage("获取数据失败");
            riderSourceInfoHttp.setSuccess("false");
            return riderSourceInfoHttp;
        }
        // try {
        //     String result = httpPostRequest(paramMap, url);
        //     // 转换数据
        //     riderSourceInfoHttp = riderConvertUtils(result);
        // } catch (Exception e) {
        //     riderSourceInfoHttp.setCode("500");
        //     riderSourceInfoHttp.setMessage("获取数据失败");
        //     riderSourceInfoHttp.setSuccess("false");
        //     return riderSourceInfoHttp;
        // }
        riderSourceInfoHttp.setCode(Constants.HTTP_CODE_SUCCESS);
        riderSourceInfoHttp.setMessage("请求成功");
        RiderSourceInfo riderSourceInfo = new RiderSourceInfo();
        riderSourceInfo.setSourcePlatform("LY");
        riderSourceInfo.setCardNum("123456789012345678");
        riderSourceInfo.setPhone("15202394888");
        riderSourceInfo.setCardName("张三");
        riderSourceInfo.setEnabled(Constants.SOURCE_ENABLED_ON);
        riderSourceInfoHttp.setData(riderSourceInfo);
        return riderSourceInfoHttp;
    }
@@ -101,7 +110,6 @@
        } catch (Exception e) {
            riderSourceInfoHttp.setCode("500");
            riderSourceInfoHttp.setMessage("转化数据失败");
            riderSourceInfoHttp.setSuccess("false");
            return riderSourceInfoHttp;
        }
    }