| | |
| | | import com.taoke.autopay.entity.KeyOrder; |
| | | import com.taoke.autopay.entity.SystemConfigKeyEnum; |
| | | import com.taoke.autopay.entity.WxUserInfo; |
| | | import com.taoke.autopay.entity.agent.ChannelAgent; |
| | | import com.taoke.autopay.exception.KeyOrderException; |
| | | import com.taoke.autopay.exception.KeyVerifyException; |
| | | import com.taoke.autopay.exception.WxOrderCountException; |
| | |
| | | import com.taoke.autopay.service.KeyOrderService; |
| | | import com.taoke.autopay.service.SystemConfigService; |
| | | import com.taoke.autopay.service.WxUserService; |
| | | import com.taoke.autopay.service.agent.ChannelAgentService; |
| | | import com.taoke.autopay.utils.*; |
| | | import com.taoke.autopay.vo.SubmitKeyInfo; |
| | | import net.sf.json.JSONObject; |
| | |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Controller; |
| | | import org.springframework.util.AntPathMatcher; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.ResponseBody; |
| | | import org.yeshi.utils.UrlUtils; |
| | |
| | | |
| | | @Resource |
| | | private SystemConfigService systemConfigService; |
| | | @Autowired |
| | | @Resource |
| | | private PayCountVerifyManager payCountVerifyManager; |
| | | |
| | | @Resource |
| | | private ChannelAgentService channelAgentService; |
| | | |
| | | |
| | | private KeyOrder addKey(SubmitKeyInfo keyInfo, Long wxUid) throws KeyVerifyException, KeyOrderException, WxOrderCountException { |
| | |
| | | } |
| | | keyInfo.setIpInfo(ipInfoMap.get(ip)); |
| | | |
| | | String citys = systemConfigService.getValueCache(SystemConfigKeyEnum.FORBIDDEN_SUBMIT_CITYS); |
| | | if (citys != null && ipInfoMap.get(ip) != null) { |
| | | List<String> cityList = Arrays.asList(citys.split(",")); |
| | | if (cityList.contains(ipInfoMap.get(ip).getCity())) { |
| | | AntPathMatcher pathMatcher = new AntPathMatcher(); |
| | | |
| | | Map<String, String> paramsMap = HttpUtil.getPramsFromUrl(keyInfo.getReferer()); |
| | | if (paramsMap.containsKey("a") && ipInfoMap.get(ip) != null) { |
| | | String alias = paramsMap.get("a"); |
| | | ChannelAgent agent = channelAgentService.selectByAlias(alias); |
| | | if (!StringUtil.isNullOrEmpty(agent.getShieldedAreas())) { |
| | | String[] res = agent.getShieldedAreas().split(","); |
| | | String ipInfoStr = ipInfoMap.get(ip).getProvince() + "/" + ipInfoMap.get(ip).getCity(); |
| | | boolean shield = false; |
| | | for (String pattern : res) { |
| | | if (pathMatcher.match(pattern, ipInfoStr)) { |
| | | shield = true; |
| | | break; |
| | | } |
| | | } |
| | | if (shield) { |
| | | // 判断用户是否为白名单 |
| | | if (user.getStatus() != WxUserInfo.STATUS_WHITE) { |
| | | // 不是白名单才限制 |
| | | LogUtil.loggerDebug.warn("区域屏蔽:{}-{}", ip, new Gson().toJson(ipInfoMap.get(ip))); |
| | | return JsonUtil.loadFalseResult("暂时无法上传口令"); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | try { |
| | | verifySubmitKey(keyInfo.getKey()); |
| | |
| | | .pwd(StringUtil.isNullOrEmpty(vo.getPwd()) ? null :StringUtil.Md5(vo.getPwd())) |
| | | .alipayAccount(StringUtil.isNullOrEmpty(vo.getAlipayAccount()) ? null : vo.getAlipayAccount()) |
| | | .alipayName(StringUtil.isNullOrEmpty(vo.getAlipayName()) ? null : vo.getAlipayName()) |
| | | .shieldedAreas(vo.getShieldedAreas()) |
| | | .build(); |
| | | channelAgentService.updateSelective(agent); |
| | | // 添加设置 |
| | |
| | | import com.taoke.autopay.service.KeyOrderService; |
| | | import com.taoke.autopay.service.agent.ChannelAgentService; |
| | | import com.taoke.autopay.utils.Constant; |
| | | import com.taoke.autopay.utils.IPUtil; |
| | | import com.taoke.autopay.utils.TimeUtil; |
| | | import com.taoke.autopay.vo.admin.AdminOrderVO; |
| | | import com.taoke.autopay.vo.admin.OrderSearchVO; |
| | |
| | | if (!StringUtil.isNullOrEmpty(vo.getEndDate())) { |
| | | query.maxCreateTime = TimeUtil.getNextDay(1, new Date(TimeUtil.convertToTimeTemp(vo.getEndDate(), "yyyy-MM-dd")).getTime()); |
| | | } |
| | | |
| | | query.ignore = vo.getIgnore(); |
| | | |
| | | return query; |
| | | |
| | |
| | | dto.setPayDevice(""); |
| | | } |
| | | dto.setPayMerchant(order.getPayMerchant()); |
| | | if(StringUtil.isNullOrEmpty(order.getIpInfo())) { |
| | | dto.setArea(""); |
| | | }else{ |
| | | IPUtil.IPInfo ipInfo = gson.fromJson(order.getIpInfo(), IPUtil.IPInfo.class); |
| | | dto.setArea(String.format("%s/%s",ipInfo.getProvince(),ipInfo.getCity())); |
| | | } |
| | | if(order.getIgnore()==null) { |
| | | dto.setIgnore("未知"); |
| | | }else{ |
| | | dto.setIgnore(order.getIgnore()?"是":"否"); |
| | | } |
| | | dataList.add(dto); |
| | | } |
| | | |
| | |
| | | import com.taoke.autopay.entity.SystemConfigKeyEnum; |
| | | import com.taoke.autopay.service.SystemConfigService; |
| | | import com.taoke.autopay.service.UserSettingService; |
| | | import com.taoke.autopay.vo.admin.IgnoreAgentOrderSettingVO; |
| | | import com.taoke.autopay.vo.admin.PayMoneySettingsVO; |
| | | import net.sf.json.JSONArray; |
| | | import net.sf.json.JSONObject; |
| | |
| | | } |
| | | |
| | | |
| | | |
| | | @ResponseBody |
| | | @RequestMapping("getForbiddenSubmitCitys") |
| | | public String getForbiddenSubmitCitys() { |
| | |
| | | } |
| | | |
| | | |
| | | @ResponseBody |
| | | @RequestMapping("getIgnoreAgentOrderSetting") |
| | | public String getIgnoreAgentOrderSetting() { |
| | | String value = systemConfigService.getValue(SystemConfigKeyEnum.IGNORE_AGENT_ORDER_SETTING); |
| | | IgnoreAgentOrderSettingVO vo = new IgnoreAgentOrderSettingVO(); |
| | | if (!StringUtil.isNullOrEmpty(value)) { |
| | | vo = new Gson().fromJson(value, IgnoreAgentOrderSettingVO.class); |
| | | } |
| | | return JsonUtil.loadTrueResult(vo); |
| | | } |
| | | |
| | | |
| | | @ResponseBody |
| | | @RequestMapping("setIgnoreAgentOrderSetting") |
| | | public String setIgnoreAgentOrderSetting(IgnoreAgentOrderSettingVO vo) { |
| | | systemConfigService.setValue(SystemConfigKeyEnum.IGNORE_AGENT_ORDER_SETTING, new Gson().toJson(vo)); |
| | | return JsonUtil.loadTrueResult(""); |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | private WxUserSettingService wxUserSettingService; |
| | | |
| | | |
| | | /** |
| | | * @param key |
| | | * @param keyType 1-用户ID/昵称 2-地域 |
| | | * @param page |
| | | * @param limit |
| | | * @return |
| | | */ |
| | | |
| | | @ResponseBody |
| | | @RequestMapping("list") |
| | | public String listWxUser(String uid, int page, int limit) { |
| | | public String listWxUser(String key, Integer keyType, int page, int limit) { |
| | | //先查询所有的数据 |
| | | WxUserInfoMapper.DaoQuery query = new WxUserInfoMapper.DaoQuery(); |
| | | query.sortList=Arrays.asList(new String[]{"login_time desc"}); |
| | | if (!StringUtil.isNullOrEmpty(uid)) { |
| | | if(NumberUtil.isNumeric(uid)) { |
| | | query.id = Long.parseLong(uid); |
| | | if (keyType == null) { |
| | | keyType = 1; |
| | | } |
| | | switch (keyType) { |
| | | case 1: |
| | | if (!StringUtil.isNullOrEmpty(key)) { |
| | | if (NumberUtil.isNumeric(key)) { |
| | | query.id = Long.parseLong(key); |
| | | }else{ |
| | | query.searchKey = uid; |
| | | query.searchKey = key; |
| | | } |
| | | } |
| | | break; |
| | | case 2: |
| | | if (!StringUtil.isNullOrEmpty(key)) { |
| | | query.searchArea = key; |
| | | } |
| | | break; |
| | | |
| | | } |
| | | |
| | | List<WxUserInfo> userList = wxUserService.list(query, page, limit); |
| | | long count = wxUserService.count(query); |
| | | Map<Long, WxUserSettings> settingsMap = new HashMap<>(); |
| | |
| | | return JsonUtil.loadTrueResult(""); |
| | | } |
| | | |
| | | @ResponseBody |
| | | @RequestMapping("getUser") |
| | | public String getUser(Long id) { |
| | | WxUserInfo user = wxUserService.selectById(id); |
| | | return JsonUtil.loadTrueResult(user); |
| | | } |
| | | |
| | | @ResponseBody |
| | | @RequestMapping("updateUser") |
| | | public String updateUser(WxUserInfo user) { |
| | | wxUserService.update(user); |
| | | return JsonUtil.loadTrueResult(""); |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | if (!StringUtil.isNullOrEmpty(filter.getKey())) { |
| | | query.nickName = filter.getKey().trim(); |
| | | } |
| | | query.ignore = false; |
| | | query.start = (filter.getPage() - 1) * 20L; |
| | | query.count = 20; |
| | | |
| | |
| | | public Date oMinCreateTime; |
| | | public Date oMaxCreateTime; |
| | | |
| | | public Boolean ignore; |
| | | |
| | | public String nickName; |
| | | public long start; |
| | | public int count; |
| | |
| | | public String openId; |
| | | public String nickName; |
| | | public String searchKey; |
| | | public String searchArea; |
| | | public String portrait; |
| | | public Date minLoginTime; |
| | | public Date maxLoginTime; |
| | |
| | | private String totalMoney; |
| | | @ExcelProperty("商家名称") |
| | | private String payMerchant; |
| | | @ExcelProperty("地域") |
| | | private String area; |
| | | @ExcelProperty("是否忽略") |
| | | private String ignore; |
| | | |
| | | } |
| | |
| | | private Integer orderState; |
| | | @Column(name = "state") |
| | | private Integer state; |
| | | @Column(name = "sub_state") |
| | | private Integer subState; |
| | | @Column(name = "state_desc") |
| | | private String stateDesc; |
| | | @Column(name = "distribute_client_uid") |
| | |
| | | @Column(name = "ip_info") |
| | | private String ipInfo; |
| | | |
| | | @Column(name = "ignore") |
| | | private Boolean ignore; |
| | | |
| | | private WxUserInfo user; |
| | | } |
| | |
| | | RE_EXCUTE_PAY_CLIENTS("re_excute_pay_clients", "重新执行支付的账号"), |
| | | USER_SUBMIT_KEY_COUNT_LIMIT("user_submit_key_count_limit_v2", "用户提交口令次数限制"), |
| | | FORBIDDEN_SUBMIT_CITYS("forbidden_submit_citys","禁止提交口令的城市"), |
| | | IGNORE_AGENT_ORDER_SETTING("ignore_agent_order_setting","忽略代理订单设置"), |
| | | ; |
| | | |
| | | |
| | |
| | | @Data |
| | | @Table("table_wx_user") |
| | | public class WxUserInfo implements Serializable { |
| | | public final static int STATUS_NORMAL = 0; |
| | | // 白名单 |
| | | public final static int STATUS_WHITE = 1; |
| | | |
| | | @Id |
| | | @Column(name="id") |
| | | private Long id; |
| | |
| | | private String latestIPInfo; |
| | | @Column(name="update_time") |
| | | private Date updateTime; |
| | | @Column(name="status") |
| | | private Integer status; |
| | | |
| | | } |
| | |
| | | @Column(name = "_status_desc", length = 128) |
| | | private String statusDesc; |
| | | |
| | | /** |
| | | * 屏蔽区域 |
| | | */ |
| | | @Column(name = "_shielded_areas", length = 256) |
| | | private String shieldedAreas; |
| | | |
| | | |
| | | @Column(name = "_create_time") |
| | | private Date createTime; |
| | |
| | | .createTime(agent.getCreateTime()) |
| | | .status(agent.getStatus()) |
| | | .statusDesc(agent.getStatusDesc()) |
| | | .shieldedAreas(agent.getShieldedAreas()) |
| | | .build(); |
| | | if(agentSettings!=null){ |
| | | vo.setMaxKeyCountPerDay(agentSettings.getMaxKeyCountPerDay()==null?null:agentSettings.getMaxKeyCountPerDay()+""); |
| | |
| | | vo.setOrderChannel(orderChannel==null?"未知":orderChannel.getName()); |
| | | vo.setPayMerchant(order.getPayMerchant()); |
| | | vo.setIp(order.getIp()); |
| | | vo.setIgnore(order.getIgnore()); |
| | | if(!StringUtil.isNullOrEmpty(order.getIpInfo())){ |
| | | vo.setIpInfo(new Gson().fromJson(order.getIpInfo(), IPUtil.IPInfo.class)); |
| | | } |
| | |
| | | if(!StringUtil.isNullOrEmpty(user.getLatestIPInfo())){ |
| | | vo.setIpInfo(new Gson().fromJson(user.getLatestIPInfo(), IPUtil.IPInfo.class)); |
| | | } |
| | | vo.setStatus(user.getStatus()); |
| | | if(settings!=null) { |
| | | WxUserOrderSettingVO settingVO = new WxUserOrderSettingVO(settings.getDyOrderCountPerDay(), settings.getKsOrderCountPerDay(), settings.getTotalOrderCountPerDay()); |
| | | vo.setOrderSetting(settingVO); |
| | | } |
| | | return vo; |
| | | } |
| | | |
| | |
| | | |
| | | public void setLatestInfoInfo(Long uid, String ip, IPUtil.IPInfo ipInfo); |
| | | |
| | | public void update(WxUserInfo wxUserInfo); |
| | | |
| | | |
| | | } |
| | |
| | | import com.taoke.autopay.utils.order.DYOrderApi; |
| | | import com.taoke.autopay.utils.order.OrderChannelUtil; |
| | | import com.taoke.autopay.vo.SubmitKeyInfo; |
| | | import com.taoke.autopay.vo.admin.IgnoreAgentOrderSettingVO; |
| | | import net.sf.json.JSONArray; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | |
| | | } |
| | | } |
| | | |
| | | // 获取渠道忽略订单的配置 |
| | | String config = systemConfigService.getValueCache(SystemConfigKeyEnum.IGNORE_AGENT_ORDER_SETTING); |
| | | if (!StringUtil.isNullOrEmpty(config)) { |
| | | IgnoreAgentOrderSettingVO ignore = JsonUtil.getSimpleGson().fromJson(config, IgnoreAgentOrderSettingVO.class); |
| | | if (ignore.getPercent() > 0) { |
| | | // 获取当前代理今日的订单数量 |
| | | KeyOrderMapper.DaoQuery daoQuery = new KeyOrderMapper.DaoQuery(); |
| | | daoQuery.agentId = agent.getId(); |
| | | daoQuery.minCreateTime = new Date(TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(System.currentTimeMillis(), "yyyyMMdd"), "yyyyMMdd")); |
| | | long keyCount = count(daoQuery); |
| | | if (keyCount > ignore.getBeginCount()) { |
| | | if ((keyCount - ignore.getBeginCount()) % (100 / ignore.getPercent()) == 0) { |
| | | order.setIgnore(true); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | order.setAgentId(agent.getId()); |
| | | } |
| | | } |
| | |
| | | wxUserInfo.setUpdateTime(new Date()); |
| | | wxUserInfoMapper.updateByPrimaryKeySelective(wxUserInfo); |
| | | } |
| | | |
| | | @Override |
| | | public void update(WxUserInfo wxUserInfo) { |
| | | wxUserInfoMapper.updateByPrimaryKeySelective(wxUserInfo); |
| | | } |
| | | } |
| | |
| | | |
| | | import com.taoke.autopay.dao.KeyOrderMapper; |
| | | import com.taoke.autopay.dto.DYOrderDto; |
| | | import com.taoke.autopay.entity.ClientInfo; |
| | | import com.taoke.autopay.entity.KeyOrder; |
| | | import com.taoke.autopay.exception.KeyOrderException; |
| | | import com.taoke.autopay.manager.OrderPayFailProcessor; |
| | | import com.taoke.autopay.service.ClientInfoService; |
| | | import com.taoke.autopay.service.KeyOrderService; |
| | | import com.taoke.autopay.utils.Constant; |
| | | import com.taoke.autopay.utils.StringUtil; |
| | |
| | | orderPayFailProcessor.clearCacheData(); |
| | | } |
| | | |
| | | @Resource |
| | | private ClientInfoService clientInfoService; |
| | | |
| | | // 处理设备下线 |
| | | @Scheduled(cron = "0 0/1 * * * ? ") |
| | | private void processPayClientOffLine() { |
| | | KeyOrderMapper.DaoQuery daoQuery = new KeyOrderMapper.DaoQuery(); |
| | | // 分配时间在最近5分钟到最近30分钟的,状态为未处理的需要重新分配 |
| | | daoQuery.stateList = Arrays.asList(new Integer[]{KeyOrder.STATE_NOT_PAY, KeyOrder.STATE_NOT_PROCESS}); |
| | | daoQuery.minDistributeTime = new Date(System.currentTimeMillis() - 1000 * 60 * 30L); |
| | | daoQuery.maxDistributeTime = new Date(System.currentTimeMillis() - 1000 * 60 * 5L); |
| | | daoQuery.sortList = Arrays.asList(new String[]{"create_time desc"}); |
| | | daoQuery.count = 10; |
| | | List<KeyOrder> orderList = keyOrderService.list(daoQuery); |
| | | for (KeyOrder order : orderList) { |
| | | // 查询设备活跃时间是否已经有5分钟未活跃 |
| | | if (order.getDistributeClientUid() == null) { |
| | | continue; |
| | | } |
| | | |
| | | ClientInfo clientInfo = clientInfoService.selectByPrimaryKey(order.getDistributeClientUid()); |
| | | if (clientInfo.getActiveTime()==null||System.currentTimeMillis() - clientInfo.getActiveTime().getTime() < 1000 * 60 * 5L) { |
| | | continue; |
| | | } |
| | | // 重新分配 |
| | | keyOrderService.removeDistributedClient(order.getId()); |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | } |
| | |
| | | private String portrait; |
| | | private String ip; |
| | | private IPUtil.IPInfo ipInfo; |
| | | private Integer status; |
| | | } |
| | |
| | | private String maxPayMoneyPerDay; |
| | | private Date createTime; |
| | | private String shareRatioInfos; |
| | | private String shieldedAreas; |
| | | |
| | | } |
| | |
| | | private String payMerchant; |
| | | private String ip; |
| | | private IPUtil.IPInfo ipInfo; |
| | | private Boolean ignore; |
| | | } |
New file |
| | |
| | | package com.taoke.autopay.vo.admin; |
| | | |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * 代理订单忽略设置 |
| | | */ |
| | | |
| | | @Data |
| | | public class IgnoreAgentOrderSettingVO { |
| | | // 起始单数 |
| | | private int beginCount; |
| | | // 忽略比例 |
| | | private int percent; |
| | | } |
| | |
| | | private String orderChannel; |
| | | private String startDate; |
| | | private String endDate; |
| | | private Boolean ignore; |
| | | |
| | | } |
| | |
| | | <result column="_status_desc" property="statusDesc" jdbcType="VARCHAR"/> |
| | | <result column="_create_time" property="createTime" jdbcType="TIMESTAMP"/> |
| | | <result column="_update_time" property="updateTime" jdbcType="TIMESTAMP"/> |
| | | <result column="_id" property="id" jdbcType="BIGINT"/> |
| | | <result column="_shielded_areas" property="shieldedAreas" jdbcType="VARCHAR"/> |
| | | </resultMap> |
| | | <sql id="Base_Column_List">_id |
| | | ,_name,_alias,_account,_pwd,_alipay_name,_alipay_account,_alipay_update_time,_status,_status_desc,_create_time,_update_time</sql> |
| | | <sql id="Base_Column_List">_id ,_name,_alias,_account,_pwd,_alipay_name,_alipay_account,_alipay_update_time,_status,_status_desc,_create_time,_update_time,_shielded_areas</sql> |
| | | <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Long">select |
| | | <include refid="Base_Column_List"/> |
| | | from table_agent where _id = #{id,jdbcType=BIGINT} |
| | | <include refid="Base_Column_List"/> from table_agent where _id = #{id,jdbcType=BIGINT} |
| | | </select> |
| | | <select id="selectByPrimaryKeyForUpdate" resultMap="BaseResultMap" parameterType="java.lang.Long">select |
| | | <include refid="Base_Column_List"/> |
| | | from table_agent where _id = #{id,jdbcType=BIGINT} for update |
| | | <include refid="Base_Column_List"/> from table_agent where _id = #{id,jdbcType=BIGINT} for update |
| | | </select> |
| | | <sql id="listWhereSQL"> |
| | | <if test="query.id!=null">AND _id = #{query.id}</if> |
| | |
| | | <if test="query.pwd!=null">AND _pwd = #{query.pwd}</if> |
| | | <if test="query.alipayName!=null">AND _alipay_name = #{query.alipayName}</if> |
| | | <if test="query.alipayAccount!=null">AND _alipay_account = #{query.alipayAccount}</if> |
| | | <if test="query.minAlipayUpdateTime!=null">AND _alipay_update_time >= #{query.minAlipayUpdateTime}</if> |
| | | <if test="query.maxAlipayUpdateTime!=null">AND #{query.maxAlipayUpdateTime} > _alipay_update_time</if> |
| | | <if test="query.minAlipayUpdateTime!=null">AND _alipay_update_time >= #{query.minAlipayUpdateTime}</if> |
| | | <if test="query.maxAlipayUpdateTime!=null">AND #{query.maxAlipayUpdateTime} > _alipay_update_time</if> |
| | | <if test="query.status!=null">AND _status = #{query.status}</if> |
| | | <if test="query.statusDesc!=null">AND _status_desc = #{query.statusDesc}</if> |
| | | <if test="query.minCreateTime!=null">AND _create_time >= #{query.minCreateTime}</if> |
| | | <if test="query.maxCreateTime!=null">AND #{query.maxCreateTime} > _create_time</if> |
| | | <if test="query.minUpdateTime!=null">AND _update_time >= #{query.minUpdateTime}</if> |
| | | <if test="query.maxUpdateTime!=null">AND #{query.maxUpdateTime} > _update_time</if> |
| | | <if test="query.minCreateTime!=null">AND _create_time >= #{query.minCreateTime}</if> |
| | | <if test="query.maxCreateTime!=null">AND #{query.maxCreateTime} > _create_time</if> |
| | | <if test="query.minUpdateTime!=null">AND _update_time >= #{query.minUpdateTime}</if> |
| | | <if test="query.maxUpdateTime!=null">AND #{query.maxUpdateTime} > _update_time</if> |
| | | </sql> |
| | | <select id="list" resultMap="BaseResultMap">select |
| | | <include refid="Base_Column_List"/> |
| | | from table_agent where 1=1 |
| | | <include refid="Base_Column_List"/> from table_agent where 1=1 |
| | | <include refid="listWhereSQL"/> |
| | | <if test="query.sortList!=null"> |
| | | <foreach collection="query.sortList" item="item" open=" order by " separator=",">${item}</foreach> |
| | | </if> |
| | | limit #{query.start},#{query.count} |
| | | </if> limit #{query.start},#{query.count} |
| | | </select> |
| | | |
| | | <select id="listByIds" resultMap="BaseResultMap">select |
| | | <include refid="Base_Column_List"/> |
| | | from table_agent where 1=1 |
| | | |
| | | <foreach collection="ids" item="item" open=" AND (" close=")" separator=" or "> |
| | | |
| | | _id=#{item} |
| | | |
| | | </foreach> |
| | | <include refid="Base_Column_List"/> from table_agent where 1=1 |
| | | <foreach collection="ids" item="item" open=" AND (" close=")" separator=" or ">_id=#{item}</foreach> |
| | | </select> |
| | | |
| | | <select id="count" resultType="java.lang.Long">select count(*) from table_agent where 1=1 |
| | | <include refid="listWhereSQL"/> |
| | | </select> |
| | | <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">delete |
| | | from table_agent |
| | | where _id = #{id,jdbcType=BIGINT}</delete> |
| | | <insert id="insert" parameterType="com.taoke.autopay.entity.agent.ChannelAgent" useGeneratedKeys="true" |
| | | keyProperty="id">insert into table_agent (_id, _name, _alias, _account, _pwd, _alipay_name, _alipay_account, |
| | | _alipay_update_time, _status, _status_desc, _create_time, |
| | | _update_time) |
| | | values (#{id,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{alias,jdbcType=VARCHAR}, |
| | | #{account,jdbcType=VARCHAR}, #{pwd,jdbcType=VARCHAR}, |
| | | #{alipayName,jdbcType=VARCHAR}, #{alipayAccount,jdbcType=VARCHAR}, |
| | | #{alipayUpdateTime,jdbcType=TIMESTAMP}, #{status,jdbcType=INTEGER}, |
| | | #{statusDesc,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, |
| | | #{updateTime,jdbcType=TIMESTAMP})</insert> |
| | | <insert id="insertSelective" parameterType="com.taoke.autopay.entity.agent.ChannelAgent" useGeneratedKeys="true" |
| | | keyProperty="id">insert into table_agent |
| | | <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">delete from table_agent where _id = #{id,jdbcType=BIGINT}</delete> |
| | | <insert id="insert" parameterType="com.taoke.autopay.entity.agent.ChannelAgent" useGeneratedKeys="true" keyProperty="id">insert into table_agent (_id, _name, _alias, _account, _pwd, _alipay_name, _alipay_account, _alipay_update_time, _status, _status_desc, _create_time, _update_time,_id,_shielded_areas) values (#{id,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{alias,jdbcType=VARCHAR}, #{account,jdbcType=VARCHAR}, #{pwd,jdbcType=VARCHAR}, #{alipayName,jdbcType=VARCHAR}, #{alipayAccount,jdbcType=VARCHAR}, #{alipayUpdateTime,jdbcType=TIMESTAMP}, #{status,jdbcType=INTEGER}, #{statusDesc,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP},#{id,jdbcType=BIGINT},#{shieldedAreas,jdbcType=VARCHAR})</insert> |
| | | <insert id="insertSelective" parameterType="com.taoke.autopay.entity.agent.ChannelAgent" useGeneratedKeys="true" keyProperty="id">insert into table_agent |
| | | <trim prefix="(" suffix=")" suffixOverrides=","> |
| | | <if test="id != null">_id,</if> |
| | | <if test="name != null">_name,</if> |
| | |
| | | <if test="statusDesc != null">_status_desc,</if> |
| | | <if test="createTime != null">_create_time,</if> |
| | | <if test="updateTime != null">_update_time,</if> |
| | | </trim> |
| | | values |
| | | <if test="shieldedAreas != null">_shielded_areas,</if> |
| | | </trim> values |
| | | <trim prefix="(" suffix=")" suffixOverrides=","> |
| | | <if test="id != null">#{id,jdbcType=BIGINT},</if> |
| | | <if test="name != null">#{name,jdbcType=VARCHAR},</if> |
| | |
| | | <if test="statusDesc != null">#{statusDesc,jdbcType=VARCHAR},</if> |
| | | <if test="createTime != null">#{createTime,jdbcType=TIMESTAMP},</if> |
| | | <if test="updateTime != null">#{updateTime,jdbcType=TIMESTAMP},</if> |
| | | <if test="shieldedAreas != null">#{shieldedAreas,jdbcType=VARCHAR}</if> |
| | | </trim> |
| | | </insert> |
| | | <update id="updateByPrimaryKey" parameterType="com.taoke.autopay.entity.agent.ChannelAgent">update table_agent |
| | | set _name = #{name,jdbcType=VARCHAR}, |
| | | _alias = #{alias,jdbcType=VARCHAR}, |
| | | _account = #{account,jdbcType=VARCHAR}, |
| | | _pwd = #{pwd,jdbcType=VARCHAR}, |
| | | _alipay_name = #{alipayName,jdbcType=VARCHAR}, |
| | | _alipay_account = #{alipayAccount,jdbcType=VARCHAR}, |
| | | _alipay_update_time = #{alipayUpdateTime,jdbcType=TIMESTAMP}, |
| | | _status = #{status,jdbcType=INTEGER}, |
| | | _status_desc = #{statusDesc,jdbcType=VARCHAR}, |
| | | _create_time = #{createTime,jdbcType=TIMESTAMP}, |
| | | _update_time = #{updateTime,jdbcType=TIMESTAMP} |
| | | where _id = #{id,jdbcType=BIGINT}</update> |
| | | <update id="updateByPrimaryKeySelective" parameterType="com.taoke.autopay.entity.agent.ChannelAgent">update |
| | | table_agent |
| | | <update id="updateByPrimaryKey" parameterType="com.taoke.autopay.entity.agent.ChannelAgent">update table_agent set _name = #{name,jdbcType=VARCHAR}, _alias = #{alias,jdbcType=VARCHAR}, _account = #{account,jdbcType=VARCHAR}, _pwd = #{pwd,jdbcType=VARCHAR}, _alipay_name = #{alipayName,jdbcType=VARCHAR}, _alipay_account = #{alipayAccount,jdbcType=VARCHAR}, _alipay_update_time = #{alipayUpdateTime,jdbcType=TIMESTAMP}, _status = #{status,jdbcType=INTEGER}, _status_desc = #{statusDesc,jdbcType=VARCHAR}, _create_time = #{createTime,jdbcType=TIMESTAMP}, _update_time = #{updateTime,jdbcType=TIMESTAMP} ,_shielded_areas =#{shieldedAreas,jdbcType=VARCHAR}, where _id = #{id,jdbcType=BIGINT}</update> |
| | | <update id="updateByPrimaryKeySelective" parameterType="com.taoke.autopay.entity.agent.ChannelAgent">update table_agent |
| | | <set> |
| | | <if test="name != null">_name=#{name,jdbcType=VARCHAR},</if> |
| | | <if test="alias != null">_alias=#{alias,jdbcType=VARCHAR},</if> |
| | |
| | | <if test="statusDesc != null">_status_desc=#{statusDesc,jdbcType=VARCHAR},</if> |
| | | <if test="createTime != null">_create_time=#{createTime,jdbcType=TIMESTAMP},</if> |
| | | <if test="updateTime != null">_update_time=#{updateTime,jdbcType=TIMESTAMP},</if> |
| | | </set> |
| | | where _id = #{id,jdbcType=BIGINT} |
| | | <if test="shieldedAreas !=null">_shielded_areas =#{shieldedAreas,jdbcType=VARCHAR},</if> |
| | | </set> where _id = #{id,jdbcType=BIGINT} |
| | | </update> |
| | | </mapper> |
| | |
| | | <result column="pay_merchant" property="payMerchant" jdbcType="VARCHAR"/> |
| | | <result column="ip" property="ip" jdbcType="VARCHAR"/> |
| | | <result column="ip_info" property="ipInfo" jdbcType="VARCHAR"/> |
| | | <result column="`ignore`" property="ignore" jdbcType="BOOLEAN"/> |
| | | <result column="sub_state" property="subState" jdbcType="INTEGER"/> |
| | | <association property="user" javaType="com.taoke.autopay.entity.WxUserInfo"> |
| | | <id column="uid" property="id" jdbcType="BIGINT"/> |
| | | <result column="nick_name" property="nickName" jdbcType="VARCHAR"/> |
| | | <result column="portrait" property="portrait" jdbcType="VARCHAR"/> |
| | | </association> |
| | | |
| | | </resultMap> |
| | | <resultMap id="DistributeResultMap" type="com.taoke.autopay.entity.OrderDistributeCountInfo"> |
| | | <result column="uid" property="uid" jdbcType="BIGINT"/> |
| | |
| | | <result column="count" property="count" jdbcType="BIGINT"/> |
| | | <result column="money" property="money" jdbcType="DECIMAL"/> |
| | | </resultMap> |
| | | <sql id="Base_Column_List">id |
| | | ,uid,`key`,order_type,order_no,order_state,state,state_desc,distribute_client_uid,distribute_time,create_time,update_time,excute_pay_time,pay_time,order_money,order_channel,pay_type,agent_id,pay_merchant,ip,ip_info</sql> |
| | | <sql id="Base_Column_List">id ,uid,`key`,order_type,order_no,order_state,state,state_desc,distribute_client_uid,distribute_time,create_time,update_time,excute_pay_time,pay_time,order_money,order_channel,pay_type,agent_id,pay_merchant,ip,ip_info,`ignore`,sub_state</sql> |
| | | <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Long">select |
| | | <include refid="Base_Column_List"/> |
| | | from table_order where id = #{id,jdbcType=BIGINT} |
| | | <include refid="Base_Column_List"/> from table_order where id = #{id,jdbcType=BIGINT} |
| | | </select> |
| | | <select id="selectByPrimaryKeyForUpdate" resultMap="BaseResultMap" parameterType="java.lang.String">select |
| | | <include refid="Base_Column_List"/> |
| | | from table_order where id = #{id,jdbcType=VARCHAR} for update |
| | | <include refid="Base_Column_List"/> from table_order where id = #{id,jdbcType=VARCHAR} for update |
| | | </select> |
| | | <select id="selectById" resultMap="BaseResultMap" parameterType="java.lang.String">select |
| | | <include refid="Base_Column_List"/> |
| | | from table_order where id = #{id,jdbcType=VARCHAR} |
| | | <include refid="Base_Column_List"/> from table_order where id = #{id,jdbcType=VARCHAR} |
| | | </select> |
| | | <sql id="listWhereSQL"> |
| | | <if test="query.id!=null">AND id = #{query.id}</if> |
| | |
| | | <if test="query.hasAgentId!=null">AND agent_id is not null</if> |
| | | <if test="query.agentId!=null">AND agent_id = #{query.agentId}</if> |
| | | <if test="query.orderChannel!=null">AND order_channel = #{query.orderChannel}</if> |
| | | |
| | | |
| | | <if test="query.stateList!=null"> |
| | | <foreach collection="query.stateList" item="state" separator=" or " open=" AND (" close=") ">state = |
| | | #{state} |
| | | </foreach> |
| | | <foreach collection="query.stateList" item="state" separator=" or " open=" AND (" close=") ">state = #{state}</foreach> |
| | | </if> |
| | | <if test="query.stateDesc!=null">AND state_desc = #{query.stateDesc}</if> |
| | | <if test="query.distributeClientUid!=null">AND distribute_client_uid = #{query.distributeClientUid}</if> |
| | |
| | | <if test="query.minUpdateTime!=null">AND update_time >= #{query.minUpdateTime}</if> |
| | | <if test="query.maxUpdateTime!=null">AND #{query.maxUpdateTime} > update_time</if> |
| | | <if test="query.nickName!=null">AND u.nick_name like '%${query.nickName}%' </if> |
| | | <if test="query.ignore!=null">AND `ignore` =#{query.ignore}</if> |
| | | </sql> |
| | | <select id="list" resultMap="BaseResultMap">select |
| | | <include refid="Base_Column_List"/> |
| | | from table_order where 1=1 |
| | | <include refid="Base_Column_List"/> from table_order where 1=1 |
| | | <include refid="listWhereSQL"/> |
| | | <if test="query.sortList!=null"> |
| | | <foreach collection="query.sortList" item="item" open=" order by " separator=",">${item}</foreach> |
| | | </if> |
| | | limit #{query.start},#{query.count} |
| | | </if> limit #{query.start},#{query.count} |
| | | </select> |
| | | |
| | | <select id="listWithUser" resultMap="BaseResultMap"> |
| | | select |
| | | o.*, u.portrait, u.nick_name from table_order o left join table_wx_user u on u.id = o.uid where 1=1 |
| | | <select id="listWithUser" resultMap="BaseResultMap">select o.*, u.portrait, u.nick_name from table_order o left join table_wx_user u on u.id = o.uid where 1=1 |
| | | <include refid="listWhereSQL"/> |
| | | <if test="query.sortList!=null"> |
| | | <foreach collection="query.sortList" item="item" open=" order by " separator=",">${item}</foreach> |
| | | </if> |
| | | limit #{query.start},#{query.count} |
| | | </if> limit #{query.start},#{query.count} |
| | | </select> |
| | | |
| | | |
| | | <select id="count" resultType="java.lang.Long">select count(*) from table_order where 1=1 |
| | | <include refid="listWhereSQL"/> |
| | | </select> |
| | | |
| | | <select id="countWithUser" resultType="java.lang.Long">select count(*) from table_order o left join table_wx_user u |
| | | on u.id = o.uid where 1=1 |
| | | <select id="countWithUser" resultType="java.lang.Long">select count(*) from table_order o left join table_wx_user u on u.id = o.uid where 1=1 |
| | | <include refid="listWhereSQL"/> |
| | | </select> |
| | | |
| | | <select id="countUser" resultType="java.lang.Long">select count(distinct(u.id)) from table_order o left join |
| | | table_wx_user u on u.id = o.uid where 1=1 |
| | | <select id="countUser" resultType="java.lang.Long">select count(distinct(u.id)) from table_order o left join table_wx_user u on u.id = o.uid where 1=1 |
| | | <include refid="listWhereSQL"/> |
| | | </select> |
| | | |
| | | <select id="statisticChannelOrders" resultMap="ChannelOrderStatisticMap"> |
| | | select |
| | | order_channel, count(o.id) as count, sum(order_money) as money from table_order o left join table_wx_user u on u.id = |
| | | o.uid where 1=1 |
| | | <include refid="listWhereSQL"/> |
| | | group by order_channel |
| | | <select id="statisticChannelOrders" resultMap="ChannelOrderStatisticMap">select order_channel, count(o.id) as count, sum(order_money) as money from table_order o left join table_wx_user u on u.id = o.uid where 1=1 |
| | | <include refid="listWhereSQL"/> group by order_channel |
| | | </select> |
| | | |
| | | |
| | | <select id="listAgentId" resultType="java.lang.Long"> |
| | | select |
| | | distinct(agent_id) from table_order o where 1=1 |
| | | <select id="listAgentId" resultType="java.lang.Long">select distinct(agent_id) from table_order o where 1=1 |
| | | <include refid="listWhereSQL"/> |
| | | <if test="query.sortList!=null"> |
| | | <foreach collection="query.sortList" item="item" open=" order by " separator=",">${item}</foreach> |
| | | </if> |
| | | limit #{query.start},#{query.count} |
| | | </if> limit #{query.start},#{query.count} |
| | | </select> |
| | | |
| | | <select id="countAgentId" resultType="java.lang.Long"> |
| | | select |
| | | count(distinct(agent_id)) from table_order o where 1=1 |
| | | <select id="countAgentId" resultType="java.lang.Long">select count(distinct(agent_id)) from table_order o where 1=1 |
| | | <include refid="listWhereSQL"/> |
| | | <if test="query.sortList!=null"> |
| | | <foreach collection="query.sortList" item="item" open=" order by " separator=",">${item}</foreach> |
| | | </if> |
| | | </select> |
| | | |
| | | |
| | | <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">delete |
| | | from table_order |
| | | where id = #{id,jdbcType=BIGINT}</delete> |
| | | <insert id="insert" parameterType="com.taoke.autopay.entity.KeyOrder" useGeneratedKeys="true" |
| | | keyProperty="id">insert into table_order (id, uid, key, order_type, order_no, order_state, state, |
| | | state_desc, distribute_client_uid, distribute_time, create_time, |
| | | update_time, id, excute_pay_time, pay_time, order_money, |
| | | order_channel, pay_type, agent_id,pay_merchant) |
| | | values (#{id,jdbcType=VARCHAR}, #{uid,jdbcType=BIGINT}, #{key,jdbcType=VARCHAR}, |
| | | #{orderType,jdbcType=INTEGER}, #{orderNo,jdbcType=VARCHAR}, |
| | | #{orderState,jdbcType=INTEGER}, #{state,jdbcType=INTEGER}, |
| | | #{stateDesc,jdbcType=VARCHAR}, #{distributeClientUid,jdbcType=BIGINT}, |
| | | #{distributeTime,jdbcType=TIMESTAMP}, #{createTime,jdbcType=TIMESTAMP}, |
| | | #{updateTime,jdbcType=TIMESTAMP}, #{id,jdbcType=VARCHAR}, |
| | | #{excutePayTime,jdbcType=TIMESTAMP}, #{payTime,jdbcType=TIMESTAMP}, |
| | | #{orderMoney,jdbcType=DECIMAL}, #{orderChannel,jdbcType=VARCHAR}, |
| | | #{payType,jdbcType=INTEGER}, #{agentId,jdbcType=BIGINT},#{payMerchant, jdbcType=VARCHAR})</insert> |
| | | <insert id="insertSelective" parameterType="com.taoke.autopay.entity.KeyOrder" useGeneratedKeys="true" |
| | | keyProperty="id">insert into table_order |
| | | <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">delete from table_order where id = #{id,jdbcType=BIGINT}</delete> |
| | | <insert id="insert" parameterType="com.taoke.autopay.entity.KeyOrder" useGeneratedKeys="true" keyProperty="id">insert into table_order (id, uid, key, order_type, order_no, order_state, state, state_desc, distribute_client_uid, distribute_time, create_time, update_time, id, excute_pay_time, pay_time, order_money, order_channel, pay_type, agent_id,pay_merchant,`key`,ip,ip_info,`ignore`,sub_state) values (#{id,jdbcType=VARCHAR}, #{uid,jdbcType=BIGINT}, #{key,jdbcType=VARCHAR}, #{orderType,jdbcType=INTEGER}, #{orderNo,jdbcType=VARCHAR}, #{orderState,jdbcType=INTEGER}, #{state,jdbcType=INTEGER}, #{stateDesc,jdbcType=VARCHAR}, #{distributeClientUid,jdbcType=BIGINT}, #{distributeTime,jdbcType=TIMESTAMP}, #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP}, #{id,jdbcType=VARCHAR}, #{excutePayTime,jdbcType=TIMESTAMP}, #{payTime,jdbcType=TIMESTAMP}, #{orderMoney,jdbcType=DECIMAL}, #{orderChannel,jdbcType=VARCHAR}, #{payType,jdbcType=INTEGER}, #{agentId,jdbcType=BIGINT},#{payMerchant, jdbcType=VARCHAR},#{key,jdbcType=VARCHAR},#{ip,jdbcType=VARCHAR},#{ipInfo,jdbcType=VARCHAR},#{ignore,jdbcType=BOOLEAN},#{subState,jdbcType=INTEGER})</insert> |
| | | <insert id="insertSelective" parameterType="com.taoke.autopay.entity.KeyOrder" useGeneratedKeys="true" keyProperty="id">insert into table_order |
| | | <trim prefix="(" suffix=")" suffixOverrides=","> |
| | | <if test="id != null">id,</if> |
| | | <if test="uid != null">uid,</if> |
| | |
| | | <if test="payMerchant!=null">pay_merchant,</if> |
| | | <if test="ip!=null">ip,</if> |
| | | <if test="ipInfo!=null">ip_info,</if> |
| | | </trim> |
| | | values |
| | | <if test="ignore != null">`ignore`,</if> |
| | | <if test="subState != null">sub_state,</if> |
| | | </trim> values |
| | | <trim prefix="(" suffix=")" suffixOverrides=","> |
| | | <if test="id != null">#{id,jdbcType=VARCHAR},</if> |
| | | <if test="uid != null">#{uid,jdbcType=BIGINT},</if> |
| | |
| | | <if test="payMerchant != null">#{payMerchant,jdbcType=VARCHAR},</if> |
| | | <if test="ip != null">#{ip,jdbcType=VARCHAR},</if> |
| | | <if test="ipInfo != null">#{ipInfo,jdbcType=VARCHAR},</if> |
| | | <if test="ignore != null">#{ignore,jdbcType=BOOLEAN}</if> |
| | | <if test="subState != null">#{subState,jdbcType=INTEGER}</if> |
| | | </trim> |
| | | </insert> |
| | | <update id="updateByPrimaryKey" parameterType="com.taoke.autopay.entity.KeyOrder">update table_order |
| | | set uid = #{uid,jdbcType=BIGINT}, |
| | | `key` = #{key,jdbcType=VARCHAR}, |
| | | order_type = #{orderType,jdbcType=INTEGER}, |
| | | order_no = #{orderNo,jdbcType=VARCHAR}, |
| | | order_state = #{orderState,jdbcType=INTEGER}, |
| | | state = #{state,jdbcType=INTEGER}, |
| | | state_desc = #{stateDesc,jdbcType=VARCHAR}, |
| | | distribute_client_uid = #{distributeClientUid,jdbcType=BIGINT}, |
| | | distribute_time = #{distributeTime,jdbcType=TIMESTAMP}, |
| | | create_time = #{createTime,jdbcType=TIMESTAMP}, |
| | | update_time = #{updateTime,jdbcType=TIMESTAMP}, |
| | | excute_pay_time =#{excutePayTime,jdbcType=TIMESTAMP}, |
| | | pay_time =#{payTime,jdbcType=TIMESTAMP}, |
| | | order_money =#{orderMoney,jdbcType=DECIMAL}, |
| | | order_channel =#{orderChannel,jdbcType=VARCHAR}, |
| | | pay_type =#{payType,jdbcType=INTEGER}, |
| | | agent_id =#{agentId,jdbcType=BIGINT}, |
| | | pay_merchant =#{payMerchant,jdbcType=VARCHAR}, |
| | | |
| | | where id = #{id,jdbcType=VARCHAR}</update> |
| | | <update id="updateByPrimaryKey" parameterType="com.taoke.autopay.entity.KeyOrder">update table_order set uid = #{uid,jdbcType=BIGINT}, `key` = #{key,jdbcType=VARCHAR}, order_type = #{orderType,jdbcType=INTEGER}, order_no = #{orderNo,jdbcType=VARCHAR}, order_state = #{orderState,jdbcType=INTEGER}, state = #{state,jdbcType=INTEGER}, state_desc = #{stateDesc,jdbcType=VARCHAR}, distribute_client_uid = #{distributeClientUid,jdbcType=BIGINT}, distribute_time = #{distributeTime,jdbcType=TIMESTAMP}, create_time = #{createTime,jdbcType=TIMESTAMP}, update_time = #{updateTime,jdbcType=TIMESTAMP}, excute_pay_time =#{excutePayTime,jdbcType=TIMESTAMP}, pay_time =#{payTime,jdbcType=TIMESTAMP}, order_money =#{orderMoney,jdbcType=DECIMAL}, order_channel =#{orderChannel,jdbcType=VARCHAR}, pay_type =#{payType,jdbcType=INTEGER}, agent_id =#{agentId,jdbcType=BIGINT}, pay_merchant =#{payMerchant,jdbcType=VARCHAR}, ip =#{ip,jdbcType=VARCHAR}, ip_info =#{ipInfo,jdbcType=VARCHAR}, ignore =#{ignore,jdbcType=BOOLEAN}, sub_state =#{subState,jdbcType=INTEGER}, where id = #{id,jdbcType=VARCHAR}</update> |
| | | <update id="updateByPrimaryKeySelective" parameterType="com.taoke.autopay.entity.KeyOrder">update table_order |
| | | <set> |
| | | <if test="uid != null">uid=#{uid,jdbcType=BIGINT},</if> |
| | |
| | | <if test="payType !=null">pay_type =#{payType,jdbcType=INTEGER},</if> |
| | | <if test="agentId !=null">agent_id =#{agentId,jdbcType=BIGINT},</if> |
| | | <if test="payMerchant !=null">pay_merchant =#{payMerchant,jdbcType=VARCHAR},</if> |
| | | |
| | | </set> |
| | | where id = #{id,jdbcType=VARCHAR} |
| | | <if test="ip !=null">ip =#{ip,jdbcType=VARCHAR},</if> |
| | | <if test="ipInfo !=null">ip_info =#{ipInfo,jdbcType=VARCHAR},</if> |
| | | <if test="ignore !=null">`ignore` =#{ignore,jdbcType=BOOLEAN},</if> |
| | | <if test="subState !=null">sub_state =#{subState,jdbcType=INTEGER},</if> |
| | | </set> where id = #{id,jdbcType=VARCHAR} |
| | | </update> |
| | | <select id="listDistributeUids" resultMap="DistributeResultMap">SELECT u.`id` as uid, IF( a.count IS NULL,0,a.count) |
| | | AS `count` FROM `table_user` u LEFT JOIN (SELECT o.`distribute_client_uid` AS uid,COUNT(*) AS `count` FROM |
| | | `table_order` o WHERE o.`state` = 0 and create_time > #{minKeyOrderCreateTime} GROUP BY |
| | | o.`distribute_client_uid`) a ON a.uid = u.`id` WHERE rule=0 |
| | | <select id="listDistributeUids" resultMap="DistributeResultMap">SELECT u.`id` as uid, IF( a.count IS NULL,0,a.count) AS `count` FROM `table_user` u LEFT JOIN (SELECT o.`distribute_client_uid` AS uid,COUNT(*) AS `count` FROM `table_order` o WHERE o.`state` = 0 and create_time > #{minKeyOrderCreateTime} GROUP BY o.`distribute_client_uid`) a ON a.uid = u.`id` WHERE rule=0 |
| | | <if test="minActiveTime!=null">and active_time >=#{minActiveTime}</if> |
| | | </select> |
| | | <select id="listNotDistributed" resultMap="BaseResultMap">select |
| | | <include refid="Base_Column_List"/> |
| | | from table_order where distribute_client_uid is null and state=0 limit #{start},#{count} |
| | | <include refid="Base_Column_List"/> from table_order where distribute_client_uid is null and state=0 limit #{start},#{count} |
| | | </select> |
| | | <delete id="deleteAll" parameterType="java.util.Date">delete |
| | | from table_order |
| | | where #{maxCreateTime} >= create_time</delete> |
| | | |
| | | <update id="removeDistributedClient" parameterType="java.lang.String"> |
| | | update table_order |
| | | set distribute_client_uid = null |
| | | where id = #{0} |
| | | </update> |
| | | |
| | | <delete id="deleteAll" parameterType="java.util.Date">delete from table_order where #{maxCreateTime} >= create_time</delete> |
| | | <update id="removeDistributedClient" parameterType="java.lang.String">update table_order set distribute_client_uid = null, distribute_time = null where id = #{0}</update> |
| | | </mapper> |
| | |
| | | <result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/> |
| | | <result column="latest_ip" property="LatestIP" jdbcType="VARCHAR"/> |
| | | <result column="latest_ip_info" property="latestIPInfo" jdbcType="VARCHAR"/> |
| | | <result column="status" property="status" jdbcType="INTEGER"/> |
| | | </resultMap> |
| | | <sql id="Base_Column_List">id,openid,nick_name,portrait,login_time,create_time,update_time,latest_ip,latest_ip_info</sql> |
| | | <sql id="Base_Column_List">id,openid,nick_name,portrait,login_time,create_time,update_time,latest_ip,latest_ip_info,status</sql> |
| | | <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Long">select |
| | | <include refid="Base_Column_List"/> from table_wx_user where id = #{id,jdbcType=BIGINT} |
| | | </select> |
| | |
| | | <if test="query.openId!=null">AND openid = #{query.openId}</if> |
| | | <if test="query.nickName!=null">AND nick_name = #{query.nickName}</if> |
| | | <if test="query.searchKey!=null">AND (nick_name like '%${query.searchKey}%' or openid = #{query.searchKey})</if> |
| | | <if test="query.searchArea!=null">AND (latest_ip_info like '%${query.searchArea}%')</if> |
| | | <if test="query.portrait!=null">AND portrait = #{query.portrait}</if> |
| | | <if test="query.minLoginTime!=null">AND login_time >= #{query.minLoginTime}</if> |
| | | <if test="query.maxLoginTime!=null">AND #{query.maxLoginTime} > login_time</if> |
| | |
| | | <include refid="listWhereSQL"/> |
| | | </select> |
| | | <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">delete from table_wx_user where id = #{id,jdbcType=BIGINT}</delete> |
| | | <insert id="insert" parameterType="com.taoke.autopay.entity.WxUserInfo" useGeneratedKeys="true" keyProperty="id">insert into table_wx_user (id,openid,nick_name,portrait,login_time,create_time,update_time,id,latest_ip,latest_ip_info) values (#{id,jdbcType=BIGINT},#{openId,jdbcType=VARCHAR},#{nickName,jdbcType=VARCHAR},#{portrait,jdbcType=VARCHAR},#{loginTime,jdbcType=TIMESTAMP},#{createTime,jdbcType=TIMESTAMP},#{updateTime,jdbcType=TIMESTAMP},#{id,jdbcType=BIGINT},#{LatestIP,jdbcType=VARCHAR},#{latestIPInfo,jdbcType=VARCHAR})</insert> |
| | | <insert id="insert" parameterType="com.taoke.autopay.entity.WxUserInfo" useGeneratedKeys="true" keyProperty="id">insert into table_wx_user (id,openid,nick_name,portrait,login_time,create_time,update_time,id,latest_ip,latest_ip_info,status) values (#{id,jdbcType=BIGINT},#{openId,jdbcType=VARCHAR},#{nickName,jdbcType=VARCHAR},#{portrait,jdbcType=VARCHAR},#{loginTime,jdbcType=TIMESTAMP},#{createTime,jdbcType=TIMESTAMP},#{updateTime,jdbcType=TIMESTAMP},#{id,jdbcType=BIGINT},#{LatestIP,jdbcType=VARCHAR},#{latestIPInfo,jdbcType=VARCHAR},#{status,jdbcType=INTEGER})</insert> |
| | | <insert id="insertSelective" parameterType="com.taoke.autopay.entity.WxUserInfo" useGeneratedKeys="true" keyProperty="id">insert into table_wx_user |
| | | <trim prefix="(" suffix=")" suffixOverrides=","> |
| | | <if test="id != null">id,</if> |
| | |
| | | <if test="updateTime != null">update_time,</if> |
| | | <if test="LatestIP != null">latest_ip,</if> |
| | | <if test="latestIPInfo != null">latest_ip_info,</if> |
| | | <if test="status != null">status,</if> |
| | | </trim>values |
| | | <trim prefix="(" suffix=")" suffixOverrides=","> |
| | | <if test="id != null">#{id,jdbcType=BIGINT},</if> |
| | |
| | | <if test="updateTime != null">#{updateTime,jdbcType=TIMESTAMP},</if> |
| | | <if test="LatestIP != null">#{LatestIP,jdbcType=VARCHAR},</if> |
| | | <if test="latestIPInfo != null">#{latestIPInfo,jdbcType=VARCHAR},</if> |
| | | <if test="status != null">#{status,jdbcType=INTEGER}</if> |
| | | </trim> |
| | | </insert> |
| | | <update id="updateByPrimaryKey" parameterType="com.taoke.autopay.entity.WxUserInfo">update table_wx_user set openid = #{openId,jdbcType=VARCHAR},nick_name = #{nickName,jdbcType=VARCHAR},portrait = #{portrait,jdbcType=VARCHAR},login_time = #{loginTime,jdbcType=TIMESTAMP},create_time = #{createTime,jdbcType=TIMESTAMP},update_time = #{updateTime,jdbcType=TIMESTAMP} ,latest_ip =#{LatestIP,jdbcType=VARCHAR}, latest_ip_info =#{latestIPInfo,jdbcType=VARCHAR}, where id = #{id,jdbcType=BIGINT}</update> |
| | | <update id="updateByPrimaryKey" parameterType="com.taoke.autopay.entity.WxUserInfo">update table_wx_user set openid = #{openId,jdbcType=VARCHAR},nick_name = #{nickName,jdbcType=VARCHAR},portrait = #{portrait,jdbcType=VARCHAR},login_time = #{loginTime,jdbcType=TIMESTAMP},create_time = #{createTime,jdbcType=TIMESTAMP},update_time = #{updateTime,jdbcType=TIMESTAMP} ,latest_ip =#{LatestIP,jdbcType=VARCHAR}, latest_ip_info =#{latestIPInfo,jdbcType=VARCHAR}, status =#{status,jdbcType=INTEGER}, where id = #{id,jdbcType=BIGINT}</update> |
| | | <update id="updateByPrimaryKeySelective" parameterType="com.taoke.autopay.entity.WxUserInfo">update table_wx_user |
| | | <set> |
| | | <if test="openId != null">openid=#{openId,jdbcType=VARCHAR},</if> |
| | |
| | | <if test="updateTime != null">update_time=#{updateTime,jdbcType=TIMESTAMP},</if> |
| | | <if test="LatestIP !=null">latest_ip =#{LatestIP,jdbcType=VARCHAR},</if> |
| | | <if test="latestIPInfo !=null">latest_ip_info =#{latestIPInfo,jdbcType=VARCHAR},</if> |
| | | <if test="status !=null">status =#{status,jdbcType=INTEGER},</if> |
| | | </set> where id = #{id,jdbcType=BIGINT} |
| | | </update> |
| | | </mapper> |
| | |
| | | <meta charset="UTF-8"> |
| | | <meta name="renderer" content="webkit"> |
| | | <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> |
| | | <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /> |
| | | <meta name="viewport" |
| | | content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"/> |
| | | <title>设备列表</title> |
| | | <link rel="stylesheet" type="text/css" href="layui/css/layui.css" /> |
| | | <link rel="stylesheet" type="text/css" href="css/admin.css" /> |
| | |
| | | <div class="layui-form-item"> |
| | | |
| | | <div class="layui-inline"> |
| | | <input type="text" name="key" id="key" placeholder="按渠道ID/名称搜索" autocomplete="off" class="layui-input"> |
| | | <input type="text" name="key" id="key" placeholder="按渠道ID/名称搜索" autocomplete="off" |
| | | class="layui-input"> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <button class="layui-btn layui-btn-normal" lay-submit lay-filter="search" id="search"><i class="layui-icon layui-icon-search"></i>搜索</button> |
| | | <a href="javascript:void();" class="layui-btn layui-btn-warm" onclick="add_agent()"><i class="layui-icon layui-icon-add-circle"></i> 创建代理</a> |
| | | <button class="layui-btn layui-btn-normal" lay-submit lay-filter="search" id="search"><i |
| | | class="layui-icon layui-icon-search"></i>搜索 |
| | | </button> |
| | | <a href="javascript:void();" class="layui-btn layui-btn-warm" onclick="add_agent()"><i |
| | | class="layui-icon layui-icon-add-circle"></i> 创建代理</a> |
| | | </div> |
| | | </div> |
| | | </form> |
| | |
| | | if (key.indexOf(".") >= 0) { |
| | | let k1 = key.split(".")[0]; |
| | | let k2 = key.split(".")[1]; |
| | | if (k1 in fdata) {} else { |
| | | if (k1 in fdata) { |
| | | } else { |
| | | fdata[k1] = {}; |
| | | } |
| | | fdata[k1][k2] = res[key]; |
| | |
| | | } |
| | | }); |
| | | }, |
| | | cancel: function() {} |
| | | cancel: function () { |
| | | } |
| | | }); |
| | | } |
| | | |
| | |
| | | if (key.indexOf(".") >= 0) { |
| | | let k1 = key.split(".")[0]; |
| | | let k2 = key.split(".")[1]; |
| | | if (k1 in fdata) {} else { |
| | | if (k1 in fdata) { |
| | | } else { |
| | | fdata[k1] = {}; |
| | | } |
| | | fdata[k1][k2] = res[key]; |
| | |
| | | } |
| | | }); |
| | | }, |
| | | cancel: function() {} |
| | | cancel: function () { |
| | | } |
| | | }); |
| | | } |
| | | |
| | |
| | | }); |
| | | }.bind(this)); |
| | | } |
| | | |
| | | layui.use(['form', 'jquery', 'layer', 'table', 'laydate'], function() { |
| | | var table = layui.table; |
| | | var form = layui.form; |
| | |
| | | width: 180, |
| | | sort: false, |
| | | }, { |
| | | field: 'shieldedAreas', |
| | | title: '屏蔽区域', |
| | | width: 180, |
| | | sort: false, |
| | | }, { |
| | | field: '', |
| | | title: '设置', |
| | | sort: false, |
| | |
| | | |
| | | </div> |
| | | |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">屏蔽区域表达式:</label> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" name="shieldedAreas" required lay-verify="" placeholder="屏蔽区域表达式" autocomplete="off" class="layui-input"> |
| | | <div class="layui-form-mid layui-word-aux">表达式之间采用逗号分割 如:重庆/重庆,山东/济南,山东/*</div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="layui-input-block"> |
| | | <button class="layui-btn layui-btn-normal" lay-submit lay-filter="sure" id="sure">确定</button> |
| | | </div> |
| | |
| | | <dd><a href="javascript:;" data-url="user-actioncount-limit.html" data-id='42' data-text="限制代付单数"><span class="l-line"></span>限制代付单数</a></dd> |
| | | <dd><a href="javascript:;" data-url="settings_timeout_device.html" data-id='43' data-text="重新支付设备"><span class="l-line"></span>重新支付设备</a></dd> |
| | | <dd><a href="javascript:;" data-url="forbidden_submit_areas.html" data-id='44' data-text="禁止口令提交区域"><span class="l-line"></span>禁止口令提交区域</a></dd> |
| | | <dd><a href="javascript:;" data-url="settings_ignore_agent_order.html" data-id='46' data-text="代理订单忽略设置"><span class="l-line"></span>代理订单忽略设置</a></dd> |
| | | </dl> |
| | | </li> |
| | | <li class="layui-nav-item"> |
| | |
| | | </div> |
| | | |
| | | <div class="layui-inline"> |
| | | <select name="ignore" > |
| | | <option value="">代理所有订单</option> |
| | | <option value="true">忽略订单</option> |
| | | <option value="false">未忽略订单</option> |
| | | </select> |
| | | </div> |
| | | |
| | | <div class="layui-inline"> |
| | | <input type="text" name="startDate" placeholder="开始日期" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | |
| | |
| | | return ""; |
| | | }, |
| | | }, |
| | | { |
| | | field: 'ignore', |
| | | title: '是否忽略', |
| | | width: 170, |
| | | templet: function(d){ |
| | | if(d["ignore"]){ |
| | | return '是'; |
| | | } |
| | | return "否"; |
| | | }, |
| | | }, |
| | | |
| | | { |
| | | field: '', |
| | |
| | | |
| | | //监听提交 |
| | | form.on('submit(search)', function(data) { |
| | | |
| | | if(data.field["ignore"]==''){ |
| | | delete data.field["ignore"]; |
| | | } |
| | | tableIns.reload({ |
| | | where: data.field, |
| | | page: { |
| | |
| | | <option value = "unknown">无需验证</option> |
| | | <option value = "cyx">超佣享</option> |
| | | <option value = "bps">爆品社</option> |
| | | <option value = "own">自有渠道</option> |
| | | </select> |
| | | </div> |
| | | </div> |
| | |
| | | <option value = "unknown">无需验证</option> |
| | | <option value = "cyx">超佣享</option> |
| | | <option value = "bps">爆品社</option> |
| | | <option value = "own">自有渠道</option> |
| | | </select> |
| | | </div> |
| | | </div> |
New file |
| | |
| | | <!DOCTYPE html> |
| | | <html> |
| | | |
| | | <head> |
| | | <meta charset="UTF-8"> |
| | | <meta name="viewport" |
| | | content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /> |
| | | <title>代理订单忽略管理</title> |
| | | <link rel="stylesheet" type="text/css" href="layui/css/layui.css" /> |
| | | <style> |
| | | body { |
| | | padding: 10px; |
| | | } |
| | | |
| | | input { |
| | | width: 200px !important; |
| | | } |
| | | </style> |
| | | </head> |
| | | |
| | | <body> |
| | | |
| | | <form class="layui-form" lay-filter="edit"> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">起始单数</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="beginCount" required lay-verify="required|num" |
| | | placeholder="起始单数" autocomplete="off" class="layui-input"> |
| | | <div class="layui-form-mid layui-word-aux">当代理每日提交单数达到后才执行忽略</div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">忽略百分比</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="percent" required lay-verify="required|num" |
| | | placeholder="忽略百分比" autocomplete="off" class="layui-input"> |
| | | <div class="layui-form-mid layui-word-aux">如:20 就表示忽略掉20%的订单,0表示不忽略</div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-input-block"> |
| | | <button class="layui-btn layui-btn-normal" lay-submit lay-filter="sure" id="sure">确定</button> |
| | | </div> |
| | | </form> |
| | | <script src="layui/layui.js" type="text/javascript" charset="utf-8"></script> |
| | | <script src="js/jquery.min.js" type="text/javascript" charset="utf-8"></script> |
| | | <script src="js/http_api.js"></script> |
| | | <script> |
| | | layui.use(['form', 'layedit', 'laydate'], function() { |
| | | var form = layui.form, |
| | | layer = layui.layer; |
| | | |
| | | |
| | | //自定义验证规则 |
| | | form.verify({ |
| | | num: [/^(\d)+$/, "只能包含数字"] |
| | | }); |
| | | |
| | | let index = layer.load(1); |
| | | |
| | | $.post("/admin/api/settings/getIgnoreAgentOrderSetting", {}, |
| | | function(response) { |
| | | layer.close(index); |
| | | if (response.code == 0) { |
| | | form.val("edit", response.data); |
| | | } else { |
| | | layer.msg(response.msg); |
| | | } |
| | | }, 'json').fail(function(jqXHR, textStatus, errorThrown) { |
| | | layer.msg("网络请求失败"); |
| | | layer.close(index); |
| | | }); |
| | | |
| | | |
| | | //监听提交 |
| | | form.on('submit(sure)', function(data) { |
| | | var params = data.field; |
| | | console.log(params); |
| | | $.post("/admin/api/settings/setIgnoreAgentOrderSetting", params, |
| | | function(response) { |
| | | if (response.code == 0) { |
| | | layer.msg("修改成功"); |
| | | } else { |
| | | layer.msg(response.msg); |
| | | } |
| | | }, 'json').fail(function(jqXHR, textStatus, errorThrown) { |
| | | layer.msg("网络请求失败"); |
| | | }); |
| | | return false; |
| | | }); |
| | | |
| | | }); |
| | | </script> |
| | | </body> |
| | | |
| | | </html> |
| | |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">状态</label> |
| | | <div class="layui-input-block"> |
| | | <select name="status"> |
| | | <option value="0">普通用户</option> |
| | | <option value="1">白名单</option> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="layui-input-block" style="visibility: hidden;"> |
| | | <button class="layui-btn layui-btn-normal" lay-submit lay-filter="sure" id="sure">确定</button> |
| | | </div> |
| | |
| | | |
| | | |
| | | var id = http_util.getQueryString("id"); |
| | | |
| | | $.post("/admin/api/wxuser/getUser", {"id":id}, function(response) { |
| | | if (response.code == 0) { |
| | | let status= response.data.status; |
| | | // 获取值 |
| | | $.post("/admin/api/wxuser/getOrderSettings", {"id":id}, function(response) { |
| | | if (response.code == 0) { |
| | | response.data.status= status; |
| | | form.val("edit", response.data); |
| | | } else { |
| | | layer.msg(response.msg); |
| | |
| | | layer.msg("网络请求失败"); |
| | | }); |
| | | |
| | | } else { |
| | | layer.msg(response.msg); |
| | | } |
| | | }, 'json').fail(function(jqXHR, textStatus, errorThrown) { |
| | | layer.msg("网络请求失败"); |
| | | }); |
| | | |
| | | |
| | | |
| | | |
| | | //监听提交 |
| | | form.on('submit(sure)', function(data) { |
| | |
| | | <div class="layui-form-item"> |
| | | |
| | | <div class="layui-inline"> |
| | | <input type="text" name="uid" id="uid" placeholder="请输入老铁ID搜索" autocomplete="off" |
| | | <input type="text" name="key" id="key" placeholder="请输入老铁ID搜索" autocomplete="off" |
| | | class="layui-input"> |
| | | |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <select name="keyType"> |
| | | <option value="1">用户ID/昵称</option> |
| | | <option value="2">地域</option> |
| | | </select> |
| | | </div> |
| | | |
| | | <div class="layui-inline"> |
| | | <button class="layui-btn layui-btn-normal" lay-submit lay-filter="search" id="search">搜索</button> |
| | | </div> |
| | |
| | | if (response.code == 0) { |
| | | layer.close(layerIndex); |
| | | layer.msg("更改成功"); |
| | | } else { |
| | | layer.msg(response.msg); |
| | | } |
| | | }, 'json').fail(function (jqXHR, textStatus, errorThrown) { |
| | | layer.close(index); |
| | | layer.msg("网络请求失败"); |
| | | }); |
| | | |
| | | $.post("/admin/api/wxuser/updateUser", res, function (response) { |
| | | if (response.code == 0) { |
| | | } else { |
| | | layer.msg(response.msg); |
| | | } |
| | |
| | | field: '', |
| | | title: '头像', |
| | | sort: false, |
| | | templet: function(d) {return "<img class='portrait' src='"+d.portrait+"' />";} |
| | | templet: function (d) { |
| | | return "<img class='portrait' src='" + d.portrait + "' />"; |
| | | } |
| | | }, |
| | | { |
| | | field: 'createTime', |
| | |
| | | |
| | | },{ |
| | | |
| | | field: 'orderSetting.totalSubmitCount', |
| | | field: 'ipInfo', |
| | | title: '用户地域', |
| | | templet: function(d){ |
| | | if(d["ipInfo.city"]){ |
| | | return d["ipInfo.province"] + "/"+ d["ipInfo.city"]; |
| | | } |
| | | return ""; |
| | | } |
| | | }, { |
| | | |
| | | field: 'status', |
| | | title: '状态', |
| | | templet: function (d) { |
| | | if (d["status"] == 0) { |
| | | return "普通用户"; |
| | | } else if (d["status"] == 1) { |
| | | return "白名单用户"; |
| | | } |
| | | return "未知"; |
| | | }, |
| | | |
| | | }, |
| | |
| | | import com.taoke.autopay.service.KeyOrderService; |
| | | import org.junit.jupiter.api.Test; |
| | | import org.springframework.boot.test.context.SpringBootTest; |
| | | import org.springframework.util.AntPathMatcher; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.*; |
| | |
| | | getTargetClientId(); |
| | | |
| | | } |
| | | |
| | | public static void main(String[] args){ |
| | | AntPathMatcher pathMatcher = new AntPathMatcher(); |
| | | System.out.println( pathMatcher.match("四川/广元", "四川/广元")); |
| | | } |
| | | } |
| | |
| | | // MyBatisMapperUtil.createMapper(AdminUser.class); |
| | | |
| | | |
| | | ColumnParseUtil.parseColumn(WxUserInfo.class, |
| | | "D:\\workspace\\taoke_pay\\src\\main\\resources\\mapper\\WxUserInfoMapper.xml"); |
| | | ColumnParseUtil.parseColumn(KeyOrder.class, |
| | | "D:\\workspace\\taoke_pay\\src\\main\\resources\\mapper\\KeyOrderMapper.xml"); |
| | | // System.out.println( MyBatisMapperUtil.createSQL(ChannelAgentOrderStatisticRecord.class)); |
| | | // System.out.println( MyBatisMapperUtil.createSQL(ChannelAgentSettings.class)); |
| | | // System.out.println(MyBatisMapperUtil.createSQL(ChannelAgentSettleRecord.class)); |