Commit 5691307a by 陈浩建

宽带

parent 0770ff91
......@@ -85,11 +85,6 @@
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
<dependency>
<groupId>com.winsun.framework</groupId>
<artifactId>winsun-utils-redis</artifactId>
<version>${winsun-framework.version}</version>
</dependency>
<dependency>
<groupId>com.winsun.framework</groupId>
......
......@@ -112,48 +112,7 @@ public class DankuanController {
@RequestParam("orderCustomerAccount") String orderCustomerAccount, @RequestParam("orderCustomerPwd") String orderCustomerPwd,
@RequestParam("orderSetMeal") String orderSetMeal, @RequestParam("productId") String productId,
@RequestParam("webOrderAmount") String webOrderAmount, @RequestParam("partner") String partner, @RequestParam(value = "setMealIndex") String setMealIndex) throws Exception {
// 号码验证
if (!IDCardUtil.IDCardValidate(orderNumber)) {
return ResponseData.error("您的身份证输入有误,请重新输入!");
}
if (orderPhone.length() != 11) {
return ResponseData.error("联系号码有误,请重新输入");
}
Wrapper<OrderView> wrapper = new EntityWrapper<>();
wrapper.eq(StringUtils.isNotBlank(orderNumber), "orderNumber", orderNumber);
wrapper.ne("status", OrderStatus.INVALID.getId());
List<OrderView> orderViews = orderViewMapper.selectList(wrapper);
OrderView orderV = new OrderView();
if (orderViews.size() != 0) {
if (StringUtils.isNotBlank(orderViews.get(0).getUptranseq())) {
Wrapper<Order> wrapperO = new EntityWrapper<>();
wrapperO.eq("order_number", orderViews.get(0).getOrderSeq());
wrapperO.eq("user_type", "5");
List<Order> orders = orderMapper.selectList(wrapperO);
if (orders.size() == 0) {
return ResponseData.error("当前身份证号订单异常,请联系客服!");
}
orderV.setOrderSeq(orders.get(0).getId());
orderV.setUptranseq(orderViews.get(0).getUptranseq());
return ResponseData.error(orderV, "当前身份证号订单已存在并完成支付!");
}
if ("0".equals(orderViews.get(0).getWebOrderAmount())) {
Wrapper<Order> wrapperO = new EntityWrapper<>();
wrapperO.eq("order_number", orderViews.get(0).getOrderSeq());
wrapperO.eq("user_type", "5");
List<Order> orders = orderMapper.selectList(wrapperO);
if (orders.size() == 0) {
return ResponseData.error("当前身份证号订单异常,请联系客服!");
}
orderV.setOrderSeq(orders.get(0).getId());
orderV.setUptranseq(orderViews.get(0).getOrderId().toString());
return ResponseData.error(orderV, "当前身份证号订单已存在!");
}
orderV.setOrderId(orderViews.get(0).getOrderId());
orderV.setOrderSeq(orderViews.get(0).getOrderSeq());
return ResponseData.error(orderV, "当前身份证号已有订单存在!");
}
String orderSeq = RandomUtil.RandomNumber(20);
Product product = productMapper.selectById(productId);
OrderView orderView = new OrderView();
......
......@@ -6,6 +6,7 @@ import com.netflix.discovery.converters.Auto;
import com.winsun.auth.core.annotion.Permission;
import com.winsun.auth.core.common.model.ResponseData;
import com.winsun.bean.*;
import com.winsun.constant.OrderStatus;
import com.winsun.mapper.*;
import com.winsun.smsUtils.SendSmsAndMail;
import com.winsun.utils.MessageUtil;
......@@ -44,6 +45,8 @@ public class codeManagerController {
@Autowired
private OrderMapper orderMapper;
@Autowired
private OrderViewMapper orderViewMapper;
@Autowired
private XshInventoryMapper xshInventoryMapper;
@Autowired
private AuthCodeMapper authCodeMapper;
......@@ -75,7 +78,7 @@ public class codeManagerController {
int veCode = (int) ((RandomUtil.getSecrityRandom() * 9 + 1) * 100000);
// MessageUtil.sent(packageUpgrade.getAccNbr(),"4","您获取的验证码为:"+s+",半小时内有效。");
// 新框架短信验证码保存在Redis,但由于业务需要使用原来方式,存在数据库里
redisTemplate.opsForValue().set(phone, String.valueOf(veCode), 240, TimeUnit.MINUTES);
redisTemplate.opsForValue().set(phone, String.valueOf(veCode), 30, TimeUnit.MINUTES);
AuthCode authCode = new AuthCode();
authCode.setId(phone);
authCode.setUserAuthCode(veCode);
......@@ -237,8 +240,12 @@ public class codeManagerController {
// 融合/提速 提速包:
String regEx="[^0-9]";
Pattern p = Pattern.compile(regEx);
identifying = universityInfo.getIdentifying().toString();
expenses = universityInfo.getExpenses();
if(StringUtils.isNotBlank(universityInfo.getIdentifying())){
identifying = universityInfo.getIdentifying().toString();
}
if(StringUtils.isNotBlank(universityInfo.getExpenses())){
expenses = universityInfo.getExpenses();
}
if(StringUtils.isNotBlank(expenses)){
expenses = expenses.replace("M","");
}
......@@ -317,4 +324,51 @@ public class codeManagerController {
return ResponseData.success(mapData);
}
@PostMapping("selectOrder")
public ResponseData<Object> selectOrder(HttpServletRequest request, HttpServletResponse response){
Map<String, Object> mapData = new HashMap<>();
String idCard = request.getParameter("idCard"); // 身份证号
String accountNumber = request.getParameter("accountNumber");// 多媒体账号
// 判断身份证号是否在清单中
List<Map<String, Object>> list = orderMapper.selectReportOrder(idCard);
if (!list.isEmpty() && list.size() > 0) {
String orderSeq = list.get(0).get("kd_order_id").toString();
String user_type = list.get(0).get("user_type").toString();
String order_status = list.get(0).get("order_status").toString();
if(StringUtils.isNotBlank(user_type)&&(user_type.equals("3")||user_type.equals("5")||user_type.equals("9"))){
Wrapper<OrderView> wrapper = new EntityWrapper<>();
wrapper.eq(StringUtils.isNotBlank(orderSeq), "orderSeq", orderSeq);
wrapper.ne("status", OrderStatus.INVALID.getId());
List<OrderView> orderViews = orderViewMapper.selectList(wrapper);
if(orderViews.isEmpty()){
return ResponseData.error("订单异常");
}
if (StringUtils.isBlank(orderViews.get(0).getUptranseq())) {
mapData.put("orderId", list.get(0).get("id").toString());
mapData.put("orderSeq", orderViews.get(0).getOrderSeq());
mapData.put("code", 2);//"你已存在未支付的订单,请前往支付页面"
return ResponseData.error(mapData,"你已存在未支付的订单,请前往支付页面");
} else {
mapData.put("orderSeq", orderViews.get(0).getOrderSeq());
mapData.put("uptranseq", orderViews.get(0).getUptranseq());
mapData.put("code", 0); //不可重复下单"你已存在正在处理的订单,请勿重复下单"
return ResponseData.error(mapData,"你已存在正在处理的订单,请勿重复下单");
}
}
}
// 判断是否在宽带清单中
List<Map<String, Object>> accountNumberList = orderMapper.checkOldKdUser(accountNumber);
if(!accountNumberList.isEmpty() && accountNumberList.size() > 0) { //已存在纪录
mapData.put("code", 1);
return ResponseData.error(mapData,"该账号已存在");
} else {
List<Map<String, Object>> maps = orderMapper.checkOldhhrOrder(accountNumber);
if(!maps.isEmpty() && maps.size()>0){
mapData.put("code", 1);
return ResponseData.error(mapData,"该账号已存在");
}
}
return ResponseData.success();
}
}
......@@ -107,5 +107,24 @@
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-redis -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
<version>2.4.3</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-test</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
</dependency>
</dependencies>
</project>
\ No newline at end of file
......@@ -26,209 +26,249 @@ public class Order implements Serializable{
/**
* 订单号
*/
@TableField(value = "order_number")
private String orderNumber;
/**
* 小白卡订单号id
*/
@TableField(value = "xb_order_id")
private String xbOrderId;
/**
* 订单id
*/
@TableField(value = "order_id")
private String orderId;
/**
* 订单状态
*/
@TableField(value = "order_status")
private String orderStatus;
/**
* 合伙人id
*/
@TableField(value = "hehuoren_id")
private String hehuorenId;
/**
* 套餐id
*/
@TableField(value = "package_id")
private String packageId;
/**
* 客户姓名
*/
@TableField(value = "customer_name")
private String customerName;
/**
* 办理号码
*/
@TableField(value = "business_number")
private String businessNumber;
/**
* 联系号码
*/
@TableField(value = "contact_number")
private String contactNumber;
/**
* 身份证号码
*/
@TableField(value = "id_card")
private String idCard;
/**
* 办理号码ICCID
*/
@TableField(value = "business_iccid")
private String businessIccid;
/**
* 卡品
*/
@TableField(value = "kapin")
private String kapin;
/**
* 身份证正面地址
*/
@TableField(value = "id_cardz")
private String idCardz;
/**
* 身份证反面地址
*/
@TableField(value = "id_cardf")
private String idCardf;
/**
* 手持身份证正面地址
*/
@TableField(value = "id_cardzs")
private String idCardzs;
/**
* 学生卡
*/
@TableField(value = "studen_card")
private String studenCard;
/**
* 创建时间
*/
@TableField(value = "create_time")
private Date createTime;
/**
* 订单更新状态时间
*/
*/@TableField(value = "update_time")
private Date updateTime;
/**
* 订单完成时间
*/
@TableField(value = "success_time")
private Date successTime;
/**
* 地址
*/
@TableField(value = "address")
private String address;
/**
* 备注
*/
@TableField(value = "remarks")
private String remarks;
/**
* 快递公司
*/
@TableField(value = "company")
private String company;
/**
* 快递单号
*/
@TableField(value = "kuaidi_order")
private String kuaidiOrder;
/**
* 省市县
*/
@TableField(value = "site")
private String site;
/**
* 预实名返回值
*/
@TableField(value = "msg")
private String msg;
/**
* 派送方式
*/
@TableField(value = "send_type")
private String sendType;
/**
* 现有套餐
*/
@TableField(value = "now_package")
private String nowPackage;
/**
* 办理套餐
*/
@TableField(value = "business_package")
private String businessPackage;
/**
* 老用户id
*/
@TableField(value = "user_id")
private String userId;
/**
* 老用户办理类型1:套餐更换,2:单宽进融合,3融合提速,4充值
*/
@TableField(value = "user_bussiness_type")
private String userBussinessType;
/**
* 用户类型(1:老客户;0新客户;2:老客户续约3:融合 4:抽奖;5:单宽;6:羊城通卡)
*/
@TableField(value = "user_type")
private String userType;
/**
* 受理结果(通过/不通过) 0:待审核 1:已通过 2:未通过
*/
@TableField(value = "accept_result")
private String acceptResult;
/**
* 受理人
*/
@TableField(value = "accept_name")
private String acceptName;
/**
* 受理意见
*/
@TableField(value = "accept_comment")
private String acceptComment;
/**
* 受理时间
*/
@TableField(value = "accept_date")
private Date acceptDate;
/**
* 提交佣金系统次数
*/
@TableField(value = "yj_count")
private String yjCount;
/**
* 提交佣金系统结果
*/
@TableField(value = "yj_type")
private String yjType;
/**
* 新用户提交方式0督导1本人
*/
@TableField(value = "tj_type")
private String tjType;
/**
* 小白卡1单移 2融合
*/
@TableField(value = "xb_type")
private String xbType;
/**
* 宽带账号
*/
@TableField(value = "net_number")
private String netNumber;
/**
* 宽带密码
*/
@TableField(value = "net_password")
private String netPassword;
/**
......@@ -240,31 +280,37 @@ public class Order implements Serializable{
/**
* 学生证审核状态, 0 未审核,1已审核
*/
@TableField(value = "student_card_check_status")
private String studentCardCheckStatus;
/**
* 失败原因
*/
@TableField(value = "check_fail")
private String checkFail;
/**
* 资费
*/
@TableField(value = "expenses")
private String expenses;
/**
* 办理标识
*/
@TableField(value = "identifying")
private String identifying;
/**
* 宽带id
*/
@TableField(value = "kd_order_id")
private String kdOrderId;
/**
* 奖品的账号
*/
@TableField(value = "gift_account")
private String giftAccount;
/**
......@@ -276,67 +322,81 @@ public class Order implements Serializable{
/**
* 合伙人县分
*/
@TableField(value = "hehuoren_area")
private String hehuorenArea;
/**
* 合伙人县分
*/
@TableField(value = "hehuoren_name")
private String hehuorenName;
/**
*
*
*/
@TableField(value = "hehuoren_school")
private String hehuorenSchool;
/**
*
*
*/
@TableField(value = "supervisor_name")
private String hehuorenPhone;
/**
*
*
*/
@TableField(value = "lzgh")
private String supervisorName;
/**
*
*
*/
@TableField(value = "order_number")
private String lzgh;
/**
* 对应的智能平台上订单的状态
*/
@TableField(value = "th_status")
private String thStatus;
/**
*
*
*/
@TableField(value = "student_number")
private String studentNumber;
/**
* 班级
*/
@TableField(value = "class_number")
private String classNumber;
/**
* 父母名字
*/
@TableField(value = "parent_name")
private String parentName;
@TableField(value = "rh_time")
private Date rhTime;
/**
* 年级
*/
@TableField(value = "clazz")
private String clazz;
/**
* 多媒体账号
*/
@TableField(value = "dmt_number")
private String dmtNumber;
/**
* 签名协议图片路径
*/
@TableField(value = "sign_img")
private String signImg;
}
......@@ -108,6 +108,25 @@ public interface OrderMapper extends BaseMapper<Order> {
*/
List<Map<String, Object>> selectBroadList(String accountNumber);
/**
* 查询多媒体账号在甲方提供清单中是否存在
* @param idCard
* @return
*/
List<Map<String, Object>> selectReportOrder(String idCard);
/**
* 查询多媒体账号在甲方提供清单中是否存在
* @param accountNumber
* @return
*/
List<Map<String, Object>> checkOldKdUser(String accountNumber);
/**
* 查询多媒体账号在订单表是否存在
* @param accountNumber
* @return
*/
List<Map<String, Object>> checkOldhhrOrder(String accountNumber);
/**
* 更新已完成订单
* @return
......
package com.winsun.utils;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
......@@ -58,4 +59,22 @@ public class Base64ToImgUtils {
}
return filePath;
}
//path 为图片在服务器的绝对路径
public static String imgToBase64(String url) {
try {
File file = new File(url);
FileInputStream fis;
fis = new FileInputStream(file);
long size = file.length();
byte[] temp = new byte[(int) size];
fis.read(temp, 0, (int) size);
fis.close();
byte[] data = temp;
return new String(org.apache.commons.codec.binary.Base64.encodeBase64(data));
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
}
package com.winsun.utils;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.List;
import java.util.concurrent.TimeUnit;
@Component
public class RedisLockUtil {
@Resource
private RedisTemplate<String, String> redisTemplate;
@Resource
private StringRedisTemplate stringRedisTemplate;
/**
* 创建锁
*
* @param key 锁的Key
* @param value 值(随便写毫无意义)
* @param releaseTime 锁过期时间 防止死锁
* @return
*/
public synchronized Boolean redisLock(String key,String value,long releaseTime){
try{
boolean boo = redisTemplate.opsForValue().setIfAbsent(key,value,releaseTime, TimeUnit.MINUTES);
if(boo){
return true;
}
return false;
}catch (Exception e){
e.getMessage();
}finally {
deleteLock(key);
return false;
}
}
/**
* 根据key'删除锁
*
* @param key
*/
public synchronized void deleteLock(String key){
// 删除key即可释放锁
redisTemplate.delete(key);
}
}
......@@ -172,6 +172,19 @@
select * from hhr_kd_dmt where account_number = #{accountNumber}
</select>
<select id="selectReportOrder" parameterType="String" resultType="HashMap">
select * from hhr_order where user_type in('3','5','9','10') and order_status !='异常单' and id_card=#{idCard}
</select>
<select id="checkOldKdUser" parameterType="String" resultType="HashMap">
select * from hhr_kd_dmt_1 where account_number = #{accountNumber}
</select>
<select id="checkOldhhrOrder" parameterType="String" resultType="HashMap">
select * from hhr_order where order_status !='异常单' and net_number = #{accountNumber}
</select>
<update id="updateCompleteOrder">
UPDATE hhr_order SET order_status = '已完成' WHERE id IN (SELECT id FROM(SELECT id FROM hhr_order WHERE order_status='已发货' AND TO_DAYS(NOW()) - TO_DAYS(create_time) > 7) t1)
</update>
......
......@@ -52,8 +52,9 @@ public class RhZhiNenTask {
private OrderMapper orderMapper;
//@Scheduled(cron = "0 0 0 * * ? ")
@Scheduled(cron = "0 0 0/1 * * ? ")
// @Scheduled(cron = "0 0 0 * * ? ")
//每五分钟调用一次
// @Scheduled(cron = "0 0/5 0 * * ? ")
//@Scheduled(fixedRate=1000*60)
@PostMapping("/rhZhiNenTask")
public void general() throws Exception {
......@@ -425,7 +426,7 @@ public class RhZhiNenTask {
paymentList.add(paymentListMap3);
productMap.put("payment", paymentList);
// 产品属性 必填主卡号码属性,name=主卡号码,value=11位数字或者随机;
// 产品属性 必填主卡号码属性,name=主卡号码,value=11位数字或者随机;
Map<String, Object> inPropertyListMap = new HashMap<String, Object>();
inPropertyListMap.put("name", "主卡号码");
if(orderMap.get("webOrderAmount").toString().equals("0")){
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment