Commit ef975899 by 陈浩建

Merge remote-tracking branch 'origin/master'

parents 7dcbd001 6b557a6e
......@@ -222,7 +222,6 @@ public class DankuanController {
try{
String uuid = UUID.randomUUID().toString();
String id = uuid.split("-")[0] + uuid.split("-")[1];
order.setId(id);
order.setId(id);
SimpleDateFormat sd = new SimpleDateFormat("yyyyMMdd");
......@@ -252,21 +251,24 @@ public class DankuanController {
order.setHehuorenName(sysUser.getName());
order.setHehuorenArea(sysUser.getSubstName());
order.setSignImg(filePath);
List<String> userId1 = appMapper.selectsupervisorBySchool(schoolId);
SysUser user = sysUserMapper.selectById(userId1.get(0));
order.setSupervisorName(user.getName());
if (userId1 != null && userId1.size() != 0) {
SysUser user = sysUserMapper.selectById(userId1.get(0));
order.setSupervisorName(user.getName());
}
order.setLzgh(school.getLzgh());
order.setOrderStatus(orderStatus);
// 根据订单号,获取该订单信息
// 根据学校名称,获取该学校信息
Product product = productMapper.selectById(productId);
Wrapper<UniversityInfo> uiWrapper = new EntityWrapper<>();
uiWrapper.eq("university_id", product.getUniversityId());
Map<String, Object> schoolMap = universityInfoMapper.selectMaps(uiWrapper).get(0);
// Product product = productMapper.selectById(productId);
// Wrapper<UniversityInfo> uiWrapper = new EntityWrapper<>();
// uiWrapper.eq("university_id", product.getUniversityId());
// Map<String, Object> schoolMap = universityInfoMapper.selectMaps(uiWrapper).get(0);
orderMapper.insert(order);
appMapper.inserOrderHis(id, "待审核!", new Date(), orderView.getOrderName());
}catch (Exception e){
e.getMessage();
e.printStackTrace();
Wrapper<OrderView> wrapper = new EntityWrapper<>();
wrapper.eq(StringUtils.isNotBlank(orderView.getOrderSeq().toString()), "orderSeq", orderView.getOrderSeq().toString());
orderViewMapper.delete(wrapper);
......@@ -310,8 +312,16 @@ public class DankuanController {
Map<String, Object> dataMapping2 = new HashMap<>();
dataMapping2.put("order_status", "未下单");
orderMapper.updateForSet(MyBatisPlusUpdateUtils.toUpdateSet(dataMapping2), objectEntityWrapper);
List<Order> orders = orderMapper.selectList(objectEntityWrapper);
appMapper.inserOrderHis(orders.get(0).getId(), "支付完成,未下单!", new Date(), orders.get(0).getCustomerName());
Map<String, Object> stringObjectMap = orderMapper.selectKdOrder(orderseq);
if (stringObjectMap != null) {
appMapper.inserOrderHis(stringObjectMap.get("id") != null ? stringObjectMap.get("id").toString() : "", "支付完成,待提交!", new Date(), stringObjectMap.get("customer_name") != null ? stringObjectMap.get("customer_name").toString() : "");
log.info("------------单宽提交智能平台--------------");
// 提交智能平台
log.info(JSONObject.toJSONString(stringObjectMap));
intelligenceSendOrder.singleBroadSendOrder(stringObjectMap);
}
}
/**
......@@ -495,7 +505,7 @@ public class DankuanController {
map.put("MERCHANTURL", MERCHANTURL);
//单宽回调后端接口地址
// 正式环境
map.put("BACKDROPURL", "https://dx.dianyuanjiangli.com/apply-net/ciop/dankuan/toSubmisOrderPreser");
map.put("BACKDROPURL", "https://dx.dianyuanjiangli.com/app/ciop/dankuan/toSubmisOrderPreser");
//测试地址
// map.put("BACKDROPURL", "http://3715zj2369.qicp.vip/ciop/dankuan/toSubmisOrderPreser");
......
......@@ -20,12 +20,17 @@ import java.io.IOException;
@RestController
public class ImgController {
/**
* 服务器访问路径
*/
private static String pathPre = "/springboot/school_center/manager/";
//menuname = "图片路径" 只支持jpeg 和 png
@RequestMapping( value = "/images/**",produces ={MediaType.IMAGE_JPEG_VALUE,MediaType.IMAGE_PNG_VALUE} )
public byte[] getbackground(HttpServletRequest request) {
byte[] bytes=new byte[10];
request.getServletPath();
String imgurl= FilePath.BACKGROUNDIMG.getValue()+"/"+request.getServletPath();
String imgurl= pathPre + FilePath.BACKGROUNDIMG.getValue()+"/"+request.getServletPath();
imgurl = imgurl.replace("//", "/");
File file = new File(imgurl);
FileInputStream inputStream = null;
......
......@@ -287,6 +287,7 @@ public class RongHeController {
return ResponseData.success(orderV, "订单提交完成!");
}
}catch (Exception e){
e.printStackTrace();
return ResponseData.error("网络超时,请重试!");
}finally {
redisTemplate.delete(orderNumber);
......@@ -480,7 +481,7 @@ public class RongHeController {
map.put("MERCHANTURL", MERCHANTURL);
// 融合回调后端接口地址
//正式地址
// map.put("BACKDROPURL", "https://dx.dianyuanjiangli.com/apply-net/ciop/rongHe/toSubmisOrderPreser");
map.put("BACKDROPURL", "https://dx.dianyuanjiangli.com/app/ciop/rongHe/toSubmisOrderPreser");
String str = "ORDERSEQ=" + orderView.getOrderSeq() + "&ORDERDATE=" + ft.format(orderdate) + "&ORDERAMOUNT=" + orderView.getWebOrderAmount() + "&KEY=" + Constant.APPK;//商户标识
//* 将值转换为大写 *//*
......
package com.winsun.controller;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.winsun.bean.*;
import com.winsun.mapper.*;
import com.winsun.utils.EThreeDES;
import com.winsun.utils.MD5Utils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.crypto.IllegalBlockSizeException;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.UUID;
/**
* 订单同步接口
* @author chengfengluo
* @date 2021-02-20 9:22
*/
@RequestMapping("/sync")
@RestController
@Slf4j
public class SyncController {
@Autowired
private AppConfigMapper appConfigMapper;
@Autowired
private SchoolMapper schoolMapper;
@Autowired
private SysUserMapper sysUserMapper;
@Autowired
private HhrUserMapper hhrUserMapper;
@Autowired
private OrderMapper orderMapper;
@Autowired
private OrderViewMapper orderViewMapper;
/**
* 无人厅订单同步
* @return {"msg":"同步成功", "result":0}
*/
@PostMapping(value = "/orderPush", produces= "application/json")
public JSONObject UnmannedHallOrderSync(@RequestBody String param) {
JSONObject jsonObject1 = JSONObject.parseObject(param);
JSONObject resultJson = new JSONObject();
try {
log.info("获取报文:" + jsonObject1.get("param"));
// 查询key 密匙 (需要配置化,可随时修改)
Wrapper<AppConfig> wrapper = new EntityWrapper<>();
wrapper.eq("app_name", "随身厅");
List<AppConfig> appConfigs = appConfigMapper.selectList(wrapper);
if (appConfigs == null || appConfigs.size() == 0 || StringUtils.isBlank(appConfigs.get(0).getAppSecret())) {
resultJson.put("result", "1");
resultJson.put("msg", "系统未配置随身厅密匙");
return resultJson;
}
if (appConfigs.size() > 1) {
resultJson.put("result", "1");
resultJson.put("msg", "系统配置多个密匙");
return resultJson;
}
AppConfig appConfig = appConfigs.get(0);
// 解密3DES
byte[] bytes = null;
try {
bytes = EThreeDES.deBase64(jsonObject1.get("param").toString());
} catch (IOException e) {
log.info("订单同步解密失败:");
e.printStackTrace();
resultJson.put("result", "1");
resultJson.put("msg", "数据解密失败");
return resultJson;
}
byte[] paramByte = null;
try {
paramByte = EThreeDES.decryptMode(appConfig.getAppSecret().getBytes(), bytes);
}catch (IllegalBlockSizeException e) {
log.info("订单同步解密失败:");
e.printStackTrace();
resultJson.put("result", "1");
resultJson.put("msg", "Input length must be multiple of 8 when decrypting with padded cipher");
return resultJson;
}
JSONObject paramJson = JSONObject.parseObject(new String(paramByte));
log.info("3DES解密参数:" + paramJson.toJSONString());
// 获取termNo 查询school app_key 解密data参数
String termNo = paramJson.getString("termNo");
if (StringUtils.isBlank(termNo)) {
resultJson.put("result", "1");
resultJson.put("msg", "终端编码不能为空");
return resultJson;
}
Wrapper<School> schoolWrapper = new EntityWrapper<>();
schoolWrapper.eq("app_id", termNo);
List<School> schools = schoolMapper.selectList(schoolWrapper);
if (schools == null || schools.size() == 0 || StringUtils.isBlank(schools.get(0).getAppKey())) {
resultJson.put("result", "1");
resultJson.put("msg", "系统未配置该终端编码");
return resultJson;
}
if (schools.size() > 1) {
resultJson.put("result", "1");
resultJson.put("msg", "终端编码重复配置");
return resultJson;
}
// 校验sign
if (!this.checkSign(paramJson, schools.get(0).getAppKey())) {
resultJson.put("result", "1");
resultJson.put("msg", "签名校验失败");
return resultJson;
}
String data = paramJson.getString("data");
if (data == null || StringUtils.isBlank(data)) {
resultJson.put("result", "1");
resultJson.put("msg", "订单参数为空");
return resultJson;
}
byte[] orderByte = EThreeDES.decryptMode(schools.get(0).getAppKey().substring(0, 24).getBytes(), EThreeDES.deBase64(data));
// 获取订单数据
JSONObject jsonObject = JSONObject.parseObject(new String(orderByte));
log.info("订单数据:" + jsonObject.toJSONString());
// 校验必填参数
if (checkOrderSyncParams(jsonObject)) {
resultJson.put("result", "1");
resultJson.put("msg", "订单参数不全");
return resultJson;
}
// 查询合伙人信息
String username = jsonObject.getString("userName");
Wrapper<SysUser> sysUserWrapper = new EntityWrapper<>();
sysUserWrapper.eq("account", username);
List<SysUser> sysUsers = sysUserMapper.selectList(sysUserWrapper);
if (sysUsers == null || sysUsers.size() != 1) {
resultJson.put("result", "1");
resultJson.put("msg", "合伙人账号错误");
return resultJson;
}
SysUser sysUser = sysUsers.get(0);
// 查询合伙人学校
List<Map<String, Object>> maps = hhrUserMapper.selectHehuorenSchool(sysUser.getId());
if (maps == null || maps.size() != 1) {
resultJson.put("result", "1");
resultJson.put("msg", "当前合伙人配置学校错误");
return resultJson;
}
Map<String, Object> school = maps.get(0);
if (!schools.get(0).getId().equals(school.get("id"))) {
resultJson.put("result", "1");
resultJson.put("msg", "合伙人学校与下单学校不匹配");
return resultJson;
}
// 组装hhr_order
Order order = new Order();
String uuid = UUID.randomUUID().toString();
String id = uuid.split("-")[0] + uuid.split("-")[1];
SimpleDateFormat sd = new SimpleDateFormat("yyyyMMdd");
SimpleDateFormat yyyyMMdd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String orderNumber = "YRYM" + sd.format(new Date()) + id.substring(1, 12);
order.setId(id);
order.setHehuorenId(sysUser.getId());
order.setOrderId(jsonObject.getString("recNo"));
order.setOrderNumber(orderNumber);
order.setCustomerName(jsonObject.getString("custName"));
order.setContactNumber(jsonObject.getString("accNbr"));
order.setIdCard(jsonObject.getString("certNo"));
order.setCreateTime(yyyyMMdd.parse(jsonObject.getString("orderTime")));
order.setUserType("11"); // 订单类型:无人厅
order.setKapin("宽带办理");
order.setUserSchool(school.get("school_name").toString());
// order.setKdOrderId(orderView.getOrderSeq().toString());
order.setHehuorenPhone(sysUser.getPhone());
order.setHehuorenSchool(school.get("school_name").toString());
order.setHehuorenName(sysUser.getName());
order.setHehuorenArea(sysUser.getSubstName());
order.setLzgh(school.get("lzgh") != null ? school.get("lzgh").toString() : null);
order.setOrderStatus("已完成");
orderMapper.insert(order);
// 组装order_view
OrderView orderView = new OrderView();
orderView.setOrderName(order.getCustomerName());
orderView.setOrderPhone(order.getContactNumber());
orderView.setOrderNumber(order.getIdCard());
orderView.setProductName(jsonObject.getString("prodName"));
orderView.setOrderSetMeal("无人厅");
orderView.setOrderDate(order.getCreateTime());
orderView.setOrderUniversityName(order.getHehuorenSchool());
orderView.setHehuorenId(sysUser.getId());
orderView.setOrderRegion(school.get("sub_name") != null ? school.get("sub_name").toString() : null);
orderView.setWebOrderAmount(jsonObject.getString("payAmount"));
if (jsonObject.getString("payAmount").equals("0")) {
orderView.setIPay("0");
} else {
orderView.setIPay("1");
}
orderView.setCustomerId("xyzxyql");
orderView.setOrderCustomerType("学生");
orderViewMapper.insert(orderView);
resultJson.put("result", "0");
resultJson.put("msg", "同步成功");
}catch(Exception e) {
log.info("订单同步失败:");
resultJson.put("result", "1");
resultJson.put("msg", e.toString());
e.printStackTrace();
return resultJson;
} finally{
log.info(resultJson.toJSONString());
}
return resultJson;
}
/**
* 校验签名
* @param jsonObject
* @return
*/
private boolean checkSign(JSONObject jsonObject, String key2) {
if (StringUtils.isBlank(jsonObject.getString("timestamp"))) {
return false;
}
String param = "" + jsonObject.get("termNo") + jsonObject.get("timestamp") + key2;
String s = MD5Utils.md5(param);
if (StringUtils.equals(s, jsonObject.getString("sign"))) {
return true;
}
return false;
}
/**
* 校验订单同步参数
* @param jsonObject
* @return
*/
private boolean checkOrderSyncParams(JSONObject jsonObject) {
if (jsonObject.getString("termNo") == null // 终端编码
|| jsonObject.getString("orderTime") == null // 订单时间
|| jsonObject.getString("prodName") == null // 产品名
|| jsonObject.getString("custName") == null //客户姓名
|| jsonObject.getString("recNo") == null // 订单流水号
|| jsonObject.getString("userName") == null // 合伙人账号
|| jsonObject.getString("certNo") == null // 客户身份证
|| jsonObject.getString("accNbr") == null // 客户手机号码
|| jsonObject.getString("orderState") == null // 订单状态
|| jsonObject.getString("payAmount") == null ) {// 支付金额
return true;
}
return false;
}
}
package com.winsun.bean;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import lombok.Data;
import java.util.Date;
/**
* 第三方应用密匙配置
* @author chengfengluo
* @date 2021-02-20 10:36
*/
@Data
@TableName("sys_app_config")
public class AppConfig {
/**
* 主键
*/
@TableId(value = "id" ,type = IdType.AUTO)
private Integer id;
/**
* 应用名称
*/
@TableField("app_name")
private String appName;
/**
* 应用id
*/
@TableField("app_id")
private String appId;
/**
* 应用密匙
*/
@TableField("app_secret")
private String appSecret;
/**
* 创建人
*/
@TableField("create_by")
private String createBy;
/**
* 创建时间
*/
@TableField("create_time")
private Date createTime;
/**
* 更新人
*/
@TableField("update_by")
private String updateBy;
/**
* 更新时间
*/
@TableField("update_time")
private Date updateTime;
}
......@@ -209,4 +209,17 @@ public class School implements Serializable {
*/
@TableField("sjktcsj")
private String sjktcsj;
/**
* 终端编码
*/
@TableField("app_id")
private String appId;
/**
* 终端密匙
*/
@TableField("app_key")
private String appKey;
}
package com.winsun.mapper;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.winsun.bean.AppConfig;
import com.winsun.bean.PackageUpgrade;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Component;
/**
* @author chengfengluo
* @date 2021-02-20 10:40
*/
@Mapper
@Component
public interface AppConfigMapper extends BaseMapper<AppConfig> {
}
package com.winsun.mapper;
import com.winsun.bean.School;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
......@@ -69,4 +70,11 @@ public interface HhrUserMapper extends BaseMapper<HhrUser> {
* @return
*/
Map<String, Object> selectHehuorenInfo(@Param("hehuorenId") String hehuorenId);
/**
* 查询合伙人学校
* @param userId
* @return
*/
List<Map<String, Object>> selectHehuorenSchool(String userId);
}
......@@ -70,12 +70,15 @@ public class IntelligenceSendOrder {
// 初始化下单支付参数
String ORDERSEQ = "", ORDERAMOUNT = "", ORDERREQTRANSEQ = "", UPTRANSEQ = "";
if (order.get("kd_order_id") == null) {
log.info("kd_order_id为空。");
return;
}
Map<String, Object> orderMap = null;
Map<String, Object> schoolMap = null;
List<Map<String, Object>> list1 = new ArrayList<>();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
String currentTimeStr = "";
ORDERSEQ = order.get("kd_order_id").toString();
currentTimeStr = simpleDateFormat.format(new Date());
Wrapper<OrderView> orderViewWrapper = new EntityWrapper<>();
......@@ -84,7 +87,6 @@ public class IntelligenceSendOrder {
if (orderViewMaps != null && orderViewMaps.size() > 0) {
orderMap = orderViewMaps.get(0);
}
if (orderMap == null) {
log.info("错误记录:" + JSONObject.toJSONString(order));
log.info("订单号:" + ORDERSEQ + ",在order_view表中无记录,无法进行智能平台下单");
......@@ -191,25 +193,20 @@ public class IntelligenceSendOrder {
String state = queryOrderJsonObject.getString("state");
// 更新hhr_order
Wrapper<Order> orderWrapper = new EntityWrapper<>();
orderWrapper.eq("kd_order_id", orderNum);
orderWrapper.eq("kd_order_id", order.get("kd_order_id"));
Order updateOrder = new Order();
updateOrder.setOrderId(ORDERSEQ);
updateOrder.setOrderId(orderNum);
updateOrder.setOrderStatus("审核中");
orderMapper.update(updateOrder, orderWrapper);
if (StringUtils.isNotBlank(state)) {
log.info("支付成功后更新订单状态");
OrderView updateOrderView = new OrderView();
updateOrderView.setStatus(QueOrderNum(state));
updateOrderView.setOrderseqThd(orderNum);
Wrapper<OrderView> wrapperOrderView = new EntityWrapper<>();
wrapperOrderView.eq("orderSeq", ORDERSEQ);
orderViewMapper.update(updateOrderView, wrapperOrderView);
log.info("----------将智能订单状态更新至数据库success:" + state);
} else {
log.info("----------将智能订单状态更新至数据库error:" + state);
}
log.info("支付成功后更新订单状态");
OrderView updateOrderView = new OrderView();
updateOrderView.setStatus(QueOrderNum(state));
updateOrderView.setOrderseqThd(orderNum);
Wrapper<OrderView> wrapperOrderView = new EntityWrapper<>();
wrapperOrderView.eq("orderSeq", order.get("kd_order_id").toString());
orderViewMapper.update(updateOrderView, wrapperOrderView);
log.info("----------将智能订单状态更新至数据库success:" + state);
}
} else {
log.info(
......@@ -224,7 +221,8 @@ public class IntelligenceSendOrder {
log.info("重复订单");
}
}catch (Exception e){
e.getMessage();
log.info("单宽下单失败");
e.printStackTrace();
}
}
......@@ -254,6 +252,7 @@ public class IntelligenceSendOrder {
}
}catch( Exception e) {
log.info(e.toString());
e.printStackTrace();
}
}
......@@ -700,7 +699,7 @@ public class IntelligenceSendOrder {
log.error("查询单宽带(预付费、移动、融合、续约、增值)产品接口异常尝试20次失误。请检查接口");
}
} catch (Exception e) {
System.out.println("单宽带下单接口异常");
log.info("单宽带下单接口异常");
e.printStackTrace();
} finally {
httpPost.releaseConnection();
......@@ -765,7 +764,7 @@ public class IntelligenceSendOrder {
log.error("查询单宽带(预付费、移动、融合、续约、增值)产品接口异常尝试20次失误。请检查接口");
}
} catch (Exception e) {
System.out.println("查询单宽带(预付费、移动、融合、续约、增值)产品接口异常");
log.info("查询单宽带(预付费、移动、融合、续约、增值)产品接口异常");
e.printStackTrace();
} finally {
httpPost.releaseConnection();
......@@ -1825,7 +1824,7 @@ public class IntelligenceSendOrder {
log.info("宽叠移下单接口,返回信息:" + httpResult);
resultDataJson = net.sf.json.JSONObject.fromObject(httpResult);
} catch (Exception e) {
System.out.println("宽叠移下单接口异常");
log.info("宽叠移下单接口异常");
e.printStackTrace();
} finally {
httpPost.releaseConnection();
......
package com.winsun.utils;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import java.io.IOException;
/**
* @author chengfengluo
* @date 2021-02-19 14:58
*/
public class EThreeDES {
private static final String Algorithm = "DESede"; //定义 加密算法,可用 DES,DESede,Blowfish
//keybyte为加密密钥,长度为24字节
//src为被加密的数据缓冲区(源)
//3DES加密
public static byte[] encryptMode(byte[] keybyte, byte[] src) {
try {
//生成密钥
SecretKey deskey = new SecretKeySpec(keybyte, Algorithm);
//加密
Cipher c1 = Cipher.getInstance(Algorithm);
c1.init(Cipher.ENCRYPT_MODE, deskey);
return c1.doFinal(src);
} catch (java.security.NoSuchAlgorithmException e1) {
e1.printStackTrace();
} catch (javax.crypto.NoSuchPaddingException e2) {
e2.printStackTrace();
} catch (Exception e3) {
e3.printStackTrace();
}
return null;
}
//keybyte为加密密钥,长度为24字节
//src为加密后的缓冲区
//3DES解密
public static byte[] decryptMode(byte[] keybyte, byte[] src) throws Exception {
try {
//生成密钥
SecretKey deskey = new SecretKeySpec(keybyte, Algorithm);
//解密
Cipher c1 = Cipher.getInstance(Algorithm);
c1.init(Cipher.DECRYPT_MODE, deskey);
return c1.doFinal(src);
} catch (java.security.NoSuchAlgorithmException e1) {
e1.printStackTrace();
} catch (javax.crypto.NoSuchPaddingException e2) {
e2.printStackTrace();
}
return null;
}
//转换成十六进制字符串
public static String byte2hex(byte[] b) {
String hs="";
String stmp="";
for (int n=0;n<b.length;n++) {
stmp=(Integer.toHexString(b[n] & 0XFF));
if (stmp.length()==1) hs=hs+"0"+stmp;
else hs=hs+stmp;
if (n<b.length-1) hs=hs+":";
}
return hs.toUpperCase();
}
//转为base64
public static String enBase64(byte[] bparm) throws IOException {
BASE64Encoder enc=new BASE64Encoder();
String bdnParm = enc.encodeBuffer(bparm);
return bdnParm;
}
//从BASE64反转回来
public static byte[] deBase64(String parm) throws IOException {
BASE64Decoder dec=new BASE64Decoder();
byte[] dnParm = dec.decodeBuffer(parm);
return dnParm;
}
public static String replace(String source, String oldString,
String newString) {
StringBuffer output = new StringBuffer();
int lengthOfSource = source.length();
int lengthOfOld = oldString.length();
int posStart = 0;
int pos; //
while ( (pos = source.indexOf(oldString, posStart)) >= 0) {
output.append(source.substring(posStart, pos));
output.append(newString);
posStart = pos + lengthOfOld;
}
if (posStart < lengthOfSource) {
output.append(source.substring(posStart));
}
return output.toString();
}
/**
* 3DES解密
* @param toThreeDES
* @return
*/
public static String deThreeDES(String toThreeDES){
String deThreeDes="";
if (toThreeDES==null || toThreeDES.equals(""))
{
deThreeDes="";
}
else
{
try{
EThreeDES edes = new EThreeDES();
String key_VALUE = "A314BA5A3C85E86KK887WSWS";
byte[] keyBytes = key_VALUE.getBytes();
byte[] toBASE64ToStr = edes.deBase64(toThreeDES);
byte[] toWK_DESToStr = EThreeDES.decryptMode(keyBytes, toBASE64ToStr);
deThreeDes = new String(toWK_DESToStr,"utf-8");
}
catch(Exception ex)
{
//System.out.println("3DES解密出错!!!"+ex.getMessage());
}
}
return deThreeDes;
}
public static void main(String[] args) throws IOException
{
EThreeDES eThreeDES = new EThreeDES();
String KEY = "C314BONC3C85E86KK996WSWS"; //密匙
//加密
String original = "{termNo:\"yxsst_ht191106\", orderTime:\"2021-01-27 11:30:00\", prodName:\"套餐名称\", reqCode:\"GZ202101261234567\", subsCode: [\"611234\", \"612345\", \"611226\"], custName:\"张*三\", certNo: \"4401**********1234\", accNbr:\"13888888888\", orderState: \"S0K\", orderStateName:\"已完成/已取卡\", payState: \"1\", crmStateName:\"完工\", crmStateReason:\"000\", recNo:\"0200202101251030423400027500\"}";
byte[] eBy = EThreeDES.encryptMode(KEY.getBytes(),original.getBytes());
String eBase64 = eThreeDES.enBase64(eBy);
System.out.println("3DES加密后的字符串:" + eBase64);
//解密
String dBase64 = eBase64;
byte[] dBy = EThreeDES.deBase64(dBase64);
// byte[] srcBytes = EThreeDES.decryptMode(KEY.getBytes(), dBy);
// System.out.println("3DES解密后的字符串:" + new String(srcBytes,"utf-8"));
}
}
......@@ -20,6 +20,11 @@ import java.util.Date;
public class PicturesUtil {
/**
* 服务器上传路径
*/
private static String UPLOAD_PRE = "/springboot/school_center/manager/";
/**
* 上传图片
* <p>
* 前端传来图片必须为jpeg格式
......@@ -50,17 +55,14 @@ public class PicturesUtil {
if (!multipartFiles[i].isEmpty()) {
String base64Data = multipartFiles[i].split(",")[1];
String houzhui = multipartFiles[i].split(",")[0].split("/")[1].split(";")[0];
String filePath1 = FilePath.PATH.getValue()+ pathType+ "/" + yymmdd + "/" + orderNum;
String filePath1 = UPLOAD_PRE + FilePath.PATH.getValue()+ pathType+ "/" + yymmdd + "/" + orderNum;
File dir = new File(filePath1);
if (!dir.exists()) {
dir.mkdirs();
}//enclosure/images/idCard/temp/年/月/日/name.jpeg
filePath = FilePath.PATH.getValue()+ pathType+ "/" + yymmdd + "/" + orderNum + "/" + (new Date()).getTime() + "." + PicturesUtil.checkSuffix(houzhui);
filePath = UPLOAD_PRE + FilePath.PATH.getValue()+ pathType+ "/" + yymmdd + "/" + orderNum + "/" + (new Date()).getTime() + "." + PicturesUtil.checkSuffix(houzhui);
//byte[] bytes = Base64.getUrlDecoder().decode(base64Data);
//byte[] bytes =new BASE64Decoder().decodeBuffer(base64Data);
//byte[] bytes = Base64.getDecoder().decode(base64Data);
byte[] bytes = Base64.getMimeDecoder().decode(base64Data.replace(" ","+"));
FileOutputStream fos = null;
try {
......@@ -85,7 +87,7 @@ public class PicturesUtil {
}
String enclosure = "";
if (filePath != null) {
enclosure = filePath.replace("enclosure", "manager/ciop");
enclosure = filePath.replace(UPLOAD_PRE + "enclosure", "manager/ciop");
}
return enclosure;
......@@ -112,7 +114,7 @@ public class PicturesUtil {
* @return
*/
public static boolean deletePictures(String fileName){
File file = new File(fileName.replace("manager/ciop","enclosure"));
File file = new File(fileName.replace("manager/ciop",UPLOAD_PRE + "enclosure"));
Boolean flag = false;
//判断文件是否存在
if (file.exists() == true){
......
......@@ -50,4 +50,23 @@ public class RandomUtil {
return sb.toString();
}
/**
* 获取纯数字随机数
* @param length
* @return
*/
public static String ramdomNum(Integer length){
String str="1234567890";
Random random=new Random();
StringBuffer sb=new StringBuffer();
for(int i=0;i<length;i++){
int number =random.nextInt(10);
sb.append(str.charAt(number));
}
return sb.toString();
}
}
......@@ -99,4 +99,17 @@
WHERE
su.id = #{hehuorenId}
</select>
<select id="selectHehuorenSchool" parameterType="String" resultType="HashMap">
select
hs.*
from
hhr_user_school hus
LEFT JOIN
hhr_school hs
ON
hus.school_id = hs.id
WHERE
hus.user_id = #{userId}
</select>
</mapper>
\ No newline at end of file
......@@ -4,10 +4,11 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.winsun.auth.core.annotion.Permission;
import com.winsun.auth.core.base.controller.BaseController;
import com.winsun.auth.core.base.tips.ErrorTip;
import com.winsun.auth.core.common.model.ResponseData;
import com.winsun.auth.core.support.HttpKit;
import com.winsun.auth.core.shiro.ShiroUser;
import com.winsun.auth.core.util.DateUtil;
import com.winsun.auth.model.user.User;
import com.winsun.bean.HhrUser;
......@@ -15,10 +16,8 @@ import com.winsun.bean.School;
import com.winsun.bean.SysUser;
import com.winsun.item.core.shiro.ShiroKit;
import com.winsun.item.core.util.AccLoginUtil;
import com.winsun.item.core.util.IPUtils;
import com.winsun.item.core.util.ResponseEntity;
import com.winsun.item.modular.system.service.IUserService;
import com.winsun.item.modular.system.service.impl.AccServiceImpl;
import com.winsun.item.util.LoginUtils;
import com.winsun.mapper.HhrUserMapper;
import com.winsun.mapper.SchoolMapper;
......@@ -32,15 +31,13 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.security.NoSuchAlgorithmException;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.concurrent.TimeUnit;
/**
......@@ -271,7 +268,7 @@ public class LoginPwdController extends BaseController {
String username, String verificationCode,
@RequestParam(value = "remember", defaultValue = "false") boolean remember) {
log.info(accessToken+":"+openid+":"+":"+username+":"+verificationCode + ":" + remember);
if (StringUtils.isBlank(accessToken) || StringUtils.isBlank(openid) || StringUtils.isBlank(username) || StringUtils.isBlank(verificationCode)) {
if (StringUtils.isBlank(username) || StringUtils.isBlank(verificationCode)) {
return ResponseData.error("绑定失败,授权失效或账号验证码为空!");
}
String str = stringRedisTemplate.opsForValue().get(username + GETPHONECODE);
......@@ -287,39 +284,54 @@ public class LoginPwdController extends BaseController {
if (users.size() == 0) {
return ResponseData.error("当前账号有误!");
}
log.info("openId:"+openid);
String url1 = "https://api.weixin.qq.com/sns/userinfo?access_token="+accessToken+"&openid="+openid+"&lang=zh_CN";
String jsonObject1 = null;
try {
jsonObject1 = HttpHelper.sendGet(url1);
} catch (Exception e) {
log.error("微信登录获取用户信息失败"+ e.getMessage(),e);
}
if (StringUtils.isBlank(jsonObject1)) {
return ResponseData.error("微信授权失效,请重新授权!");
}
if(!jsonObject1.contains("openid")){
return ResponseData.error("微信授权失效,请重新授权!");
}
log.info(jsonObject1);
Map<String,Object> map1 = JSON.parseObject(jsonObject1, Map.class);
String headimgurl = map1.get("headimgurl").toString();
String nickname = map1.get("nickname").toString();
SysUser sysUser = users.get(0);
Wrapper wrapper = new EntityWrapper<>();
wrapper.eq("id", sysUser.getId());
Map<String, Object> dataMapping = new HashMap<>();
// 不绑定微信则不保存openId
if (remember) {
dataMapping.put("open_id", openid);
}
// 没有openid和accessToken直接登录,不访问微信
if (StringUtils.isNotBlank(openid) && StringUtils.isNotBlank(accessToken)) {
log.info("openId:"+openid);
String url1 = "https://api.weixin.qq.com/sns/userinfo?access_token="+accessToken+"&openid="+openid+"&lang=zh_CN";
String jsonObject1 = null;
try {
jsonObject1 = HttpHelper.sendGet(url1);
} catch (Exception e) {
log.error("微信登录获取用户信息失败"+ e.getMessage(),e);
}
if (StringUtils.isBlank(jsonObject1)) {
return ResponseData.error("微信授权失效,请重新授权!");
}
if(!jsonObject1.contains("openid")){
return ResponseData.error("微信授权失效,请重新授权!");
}
log.info(jsonObject1);
Map<String,Object> map1 = JSON.parseObject(jsonObject1, Map.class);
String headimgurl = map1.get("headimgurl").toString();
String nickname = map1.get("nickname").toString();
Wrapper wrapper = new EntityWrapper<>();
wrapper.eq("id", sysUser.getId());
Map<String, Object> dataMapping = new HashMap<>();
// 不绑定微信则不保存openId
if (remember) {
dataMapping.put("open_id", openid);
}
dataMapping.put("wx_head_img_url",headimgurl);
dataMapping.put("wx_nick_name",nickname);
Integer integer = hhrUserMapper.updateForSet(MyBatisPlusUpdateUtils.toUpdateSet(dataMapping), wrapper);
if (integer == 1) {
return this.loginvalid(null, sysUser.getAccount(), openid);
dataMapping.put("wx_head_img_url",headimgurl);
dataMapping.put("wx_nick_name",nickname);
Integer integer = hhrUserMapper.updateForSet(MyBatisPlusUpdateUtils.toUpdateSet(dataMapping), wrapper);
if (integer == 1) {
return this.loginvalid(null, sysUser.getAccount(), openid);
}
}else{
// 查询openid,模拟微信登录
HhrUser hhrUser = hhrUserMapper.selectById(sysUser.getId());
if (hhrUser == null) {
return ResponseData.error("合伙人信息有误!");
}
if (StringUtils.isBlank(hhrUser.getOpenId())) {
return ResponseData.error("请先在一人一码中绑定微信登录");
}
return this.loginvalid(null, sysUser.getAccount(), hhrUser.getOpenId());
}
return ResponseData.error("绑定失败!");
}
......@@ -489,6 +501,141 @@ public class LoginPwdController extends BaseController {
List<Map<String, Object>> list = schoolMapper.selectMaps(wrapper);
return ResponseData.success(list);
}
/**
* 打开无人厅
* @return
*/
@PostMapping("openHall")
public ResponseData<String> openHall() {
// 查询当前合伙人学校,合伙人添加appId字段
ShiroUser user = ShiroKit.getUser();
if (user == null || user.getId() == null || user.getId() == 0) {
return ResponseData.error("当前登录用户信息有误,请重新登录。");
}
List<Map<String, Object>> schools = hhrUserMapper.selectHehuorenSchool(user.getId().toString());
if (schools == null || schools.size() == 0) {
return ResponseData.error("当前合伙人未设置学校");
}
if (schools.size() > 1) {
return ResponseData.error("当前合伙人学校配置有误,请重新配置");
}
// 判断接入号终端是否存在
Map<String, Object> school = schools.get(0);
if (school.get("app_id") == null || school.get("app_key") == null
|| StringUtils.isBlank(school.get("app_id").toString())
|| StringUtils.isBlank(school.get("app_key").toString())) {
return ResponseData.error("当前学校未配置校园随身厅。");
}
if (school.get("lzgh") == null || StringUtils.isBlank(school.get("lzgh").toString())) {
return ResponseData.error("当前学校未配置揽装工号。");
}
String appId = school.get("app_id").toString();
String appKey = school.get("app_key").toString();
Map params = new HashMap();
params.put("r", RandomUtil.ramdomNum(10));
params.put("20210114_1", appId);
// 组装请求信息
String key2 = appKey.substring(0,24);
Map<String, Object> paramsMap = new HashMap<>();
paramsMap.put("apph5", "1"); //APPH5标识 固定:1
paramsMap.put("appid", appId); // 终端编码
paramsMap.put("apph5Type", "1"); // 入口类型 网迅固定:1
paramsMap.put("lzstaffcity", ""); // 揽装人县分
paramsMap.put("lzstaffmsc", ""); // 揽装人营服
paramsMap.put("lzstaffname", ""); // 揽装人姓名
paramsMap.put("lzstaffno", school.get("lzgh")); // 揽装工号
paramsMap.put("lzstaffphone", ""); // 揽装人手机
paramsMap.put("meid", ""); // 终端meid
paramsMap.put("sgstaffno", ""); // 施工工号
paramsMap.put("timestamp", new Date().getTime()); // 时间戳
paramsMap.put("username", appId + user.getAccount()); // 登录标识
paramsMap.put("xxstaffno1", ""); // 协销工号1
paramsMap.put("xxstaffno2", ""); // 协销工号2
List<Map.Entry<String, Object>> list = new ArrayList<>(paramsMap.entrySet());
// 对所有传入参数按照字段名的 ASCII 码从小到大排序(字典序)
Collections.sort(list, new Comparator<Map.Entry<String, Object>>() {
public int compare(Map.Entry<String, Object> o1, Map.Entry<String, Object> o2) {
return (o1.getKey()).toString().compareTo(o2.getKey());
}
});
log.info("获取的参数名和参数值:" + JSONObject.toJSONString(list));
// 获取map已有值
StringBuilder values = new StringBuilder();
for(Map.Entry<String, Object> map : list ) {
values.append(map.getValue());
}
// 拼接key2
values.append(appKey);
log.info("升序拼接参数值字符串:" + values.toString());
// md5加密
paramsMap.put("sign", MD5Utils.md5(values.toString())); // 签名
log.info("接口入参明文对象:" + JSONObject.toJSONString(paramsMap));
// 组装参数字符串
String interfaceParams = new String();
Iterator<Map.Entry<String, Object>> mapIterator = paramsMap.entrySet().iterator();
while(mapIterator.hasNext()) {
Map.Entry<String, Object> next = mapIterator.next();
interfaceParams += (next.getKey()+ "=" + next.getValue() + "&");
}
if (interfaceParams.lastIndexOf("&") == (interfaceParams.length() - 1)){
interfaceParams = interfaceParams.substring(0, (interfaceParams.lastIndexOf("&")));
}
log.info("接口入参明文字符串:" + interfaceParams);
// 3DES加密
byte[] eBy = EThreeDES.encryptMode(key2.getBytes(),interfaceParams.getBytes());
String eBase64 = "";
try {
eBase64 = EThreeDES.enBase64(eBy);
}catch (IOException e) {
log.error("3DES加密失败");
e.printStackTrace();
return ResponseData.error("数据加密失败");
}
log.info("3DES加密参数:" + eBase64);
// URL编码
String urlEncode = "";
try {
urlEncode = URLEncoder.encode(eBase64, "UTF-8");
}catch (UnsupportedEncodingException e) {
log.error("url编码失败");
e.printStackTrace();
return ResponseData.error("url编码失败");
}
//发送请求
params.put("20210114_8", urlEncode);
log.info("最终请求参数:" + JSONObject.toJSONString(params));
StringBuilder url = new StringBuilder("http://121.8.177.157:8443/UstpCustWeb/ustpSstAccess?");
url.append("r" + "=" + params.get("r") + "&");
url.append("20210114_1" + "=" + params.get("20210114_1") + "&");
url.append("20210114_8" + "=" + params.get("20210114_8"));
log.info("完整url:" + url);
return ResponseData.success(url.toString(), "打开成功!");
}
@RequestMapping(value = "registeredAccount", method = RequestMethod.POST)
public ResponseData<String> registeredAccount(@RequestParam("gender") String gender,@RequestParam("username") String username, @RequestParam("phone") String phone,
@RequestParam("idCard") String idCard, @RequestParam(value = "stuCard") String stuCard, @RequestParam("idcardZ") String idcardZ,
......
......@@ -96,8 +96,8 @@ spring:
prohibition: 600
datasource:
url: jdbc:mysql://localhost:3306/school_center?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=CTT&allowPublicKeyRetrieval=true
username: yzzx
password: yzzx123!@#
username: root
password: AMrGBg6ZSsRrDLs6
#用来搜集数据库的所有表
db-name: guns
filters: wall,mergeStat
......@@ -131,6 +131,8 @@ mybatis-plus:
typeAliasesPackage: com.winsun.auth.model.common,com.winsun.auth.model.merchant,com.winsun.auth.model.user,com.winsun.auth.core.node
mapper-locations:
- /com/winsun/item/modular/system/dao/mapping/*.xml
- /com/winsun/modular/dao/mapping/*.xml
- com/winsun/mapper/mapping/*.xml
management:
endpoints:
web:
......
......@@ -131,6 +131,7 @@ mybatis-plus:
mapper-locations:
- /com/winsun/item/modular/system/dao/mapping/*.xml
- /com/winsun/modular/dao/mapping/*.xml
- com/winsun/mapper/mapping/*.xml
management:
endpoints:
web:
......
package com.winsun.migration.mapper.db3;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;
/**
* 一人一码数据接口
* @author chengfengluo
* @date 2021-02-02 10:06
*/
@Mapper
@Component
public interface YrymDatabases {
@Select("SELECT " +
" du.*, " +
" GROUP_CONCAT( dr.NAME ) role_name, " +
" dus.spervisor " +
" FROM " +
" dzqd_user du " +
" LEFT JOIN dzqd_user_role dur ON du.user_id = dur.user_id " +
" LEFT JOIN dzqd_user_supervisor dus ON du.user_id = dus.id " +
" LEFT JOIN dzqd_role dr ON dur.role_id = dr.role_id " +
" GROUP BY " +
" du.user_id ")
List<Map<String, Object>> getLoginUserList();
@Select("select * from hhr_school_package where package_id is not null")
List<Map<String, Object>> getSchoolPackage();
@Select("select * from hhr_school_xb_package")
List<Map<String, Object>> getSchoolXbPackage();
}
eureka:
instance:
hostname: localhost
# 心跳时间,即服务续约间隔时间(缺省为30s)
lease-renewal-interval-in-seconds: 10
# 发呆时间,即服务续约到期时间(缺省为90s)
lease-expiration-duration-in-seconds: 20
client:
registry-fetch-interval-seconds: 5
serviceUrl:
defaultZone: http://localhost:20000/eureka/
server:
port: 8080
# 应用名称
spring:
devtools:
restart:
enabled: false
application:
name: migration
datasource:
db1:
jdbc-url: jdbc:mysql://localhost:3306/school_center?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=CTT&allowPublicKeyRetrieval=true
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
db2:
#jdbc-url: jdbc:mysql://172.18.101.171:3306/xyjl?useUnicode=true&characterEncoding=utf-8&serverTimezone=CTT&useSSL=false
#username: yzzx
#password: yzzx123!@#
jdbc-url: jdbc:mysql://localhost:3306/xyjl?useUnicode=true&characterEncoding=utf-8&serverTimezone=CTT&useSSL=false
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
db3:
#jdbc-url: jdbc:mysql://172.18.101.171:3306/dzqd?useUnicode=true&characterEncoding=utf-8&serverTimezone=CTT&useSSL=false
#username: yzzx
#password: yzzx123!@#
jdbc-url: jdbc:mysql://localhost:3306/dzqd?useUnicode=true&characterEncoding=utf-8&serverTimezone=CTT&useSSL=false
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
......@@ -131,10 +131,10 @@
<artifactId>easyexcel</artifactId>
<version>2.1.6</version>
</dependency>
<!-- <dependency>
<dependency>
<groupId>com.winsun.framework</groupId>
<artifactId>winsun-core-service</artifactId>
</dependency>-->
</dependency>
<dependency>
<groupId>dom4j</groupId>
......
package com.winsun.controller;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.winsun.auth.core.annotion.Permission;
import com.winsun.auth.core.base.controller.BaseController;
import com.winsun.auth.core.common.model.ResponseData;
import com.winsun.auth.core.shiro.ShiroUser;
import com.winsun.bean.AppConfig;
import com.winsun.mapper.AppConfigMapper;
import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.session.RowBounds;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* 应用配置
* @author chengfengluo
* @date 2021-02-20 10:45
*/
@RestController
@RequestMapping("/appConfig")
public class AppConfigController extends BaseController {
@Autowired
private AppConfigMapper appConfigMapper;
/**
* 新增应用配置
* @param appConfig
* @return
*/
@Permission(menuname = "添加应用配置", value = "add", method = RequestMethod.POST)
public ResponseData<String> addAppConfig(AppConfig appConfig) {
ShiroUser user = getShiroUser();
if (StringUtils.isBlank(appConfig.getAppName())) {
return ResponseData.error("应用名称不能为空");
}
if (StringUtils.isBlank(appConfig.getAppSecret())) {
return ResponseData.error("应用密匙不能为空");
}
// 查重
Wrapper<AppConfig> wrapper = new EntityWrapper<>();
wrapper.eq("app_name", appConfig.getAppName());
Integer integer = appConfigMapper.selectCount(wrapper);
if (integer != null && integer > 0) {
return ResponseData.error("应用名称重复");
}
appConfig.setCreateBy(user.getName());
appConfig.setCreateTime(new Date());
Integer insert = appConfigMapper.insert(appConfig);
if (insert > 0) {
return ResponseData.success(insert + "", "插入成功");
}
return ResponseData.error("插入失败");
}
/**
* 编辑应用配置
* @param appConfig
* @return
*/
@Permission(menuname = "更新应用配置", value = "update", method = RequestMethod.POST)
public ResponseData<String> updateAppConfig(AppConfig appConfig) {
ShiroUser user = getShiroUser();
if (appConfig.getId() == null || StringUtils.isBlank(appConfig.getAppName())) {
return ResponseData.error("参数错误");
}
// 查重
Wrapper<AppConfig> wrapper = new EntityWrapper<>();
wrapper.eq("app_name", appConfig.getAppName());
wrapper.ne("id", appConfig.getId());
Integer integer = appConfigMapper.selectCount(wrapper);
if (integer != null && integer > 0) {
return ResponseData.error("应用名称重复");
}
appConfig.setUpdateBy(user.getName());
appConfig.setUpdateTime(new Date());
Integer integer1 = appConfigMapper.updateById(appConfig);
if(integer1 > 0) {
return ResponseData.success(null, "更新成功");
}
return ResponseData.error("更新失败");
}
/**
* 获取配置信息
* @return
*/
@RequestMapping("/getConfigInfo")
public ResponseData<AppConfig> getConfigInfo (Integer id) {
AppConfig appConfig = appConfigMapper.selectById(id);
return ResponseData.success(appConfig);
}
/**
* 查询应用列表
* @param appConfig
* @param pageIndex
* @param pageSize
* @return
*/
@RequestMapping("/list")
public ResponseData<Page<AppConfig>> list(@RequestParam(value = "appName", required = false) String appName,
@RequestParam(name = "pageNo", required = false) Integer pageIndex,
@RequestParam(name = "pageSize", required = false) Integer pageSize) {
Wrapper<AppConfig> wrapper = new EntityWrapper<>();
wrapper.like(StringUtils.isNotBlank(appName),"app_name", appName);
List<AppConfig> appConfigs = appConfigMapper.selectList(wrapper);
Page<AppConfig> page = new Page<>();
page.setTotal(appConfigs.size());
Integer endpageSize = (pageIndex-1) == appConfigs.size()/pageSize ? (pageIndex-1)*pageSize+appConfigs.size()%pageSize : pageIndex*pageSize;
appConfigs = appConfigs.subList((pageIndex - 1)*pageSize, endpageSize);
page.setRecords(appConfigs);
page.setSize(appConfigs.size());
return ResponseData.success(page, "查询成功");
}
}
package com.winsun.controller;
import com.winsun.auth.core.annotion.Permission;
import com.winsun.constant.FilePath;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.MediaType;
......@@ -20,7 +21,7 @@ import java.io.FileInputStream;
public class ImgController {
//menuname = "图片路径" 只支持jpeg 和 png
@RequestMapping( value = "/images/**",produces ={MediaType.IMAGE_JPEG_VALUE,MediaType.IMAGE_PNG_VALUE} )
@Permission(menuname = "图片查询", value = "/images/**", produces ={MediaType.IMAGE_JPEG_VALUE,MediaType.IMAGE_PNG_VALUE})
public byte[] getbackground(HttpServletRequest request) {
byte[] bytes={};
request.getServletPath();
......
......@@ -261,7 +261,7 @@ public class OrderController extends BaseController {
updateOrder.setMsg(msg);
try {
// 添加操作记录
appMapper.inserOrderHis(order.getId(), "审核失败!", new Date(), "智能平台");
appMapper.inserOrderHis(order.getId(), msg, new Date(), "智能平台");
} catch (Exception e) {
e.printStackTrace();
}
......
......@@ -120,6 +120,9 @@ spring:
exprie: 600
prohibition: 600
datasource:
url: jdbc:mysql://localhost:3306/school_center?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=CTT&allowPublicKeyRetrieval=true
username: root
password: AMrGBg6ZSsRrDLs6
dynamic:
primary: master
p6spy: true
......@@ -128,9 +131,9 @@ spring:
max-active: 30
datasource:
master:
url: jdbc:mysql://localhost:3306/school_center?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=CTT&allowPublicKeyRetrieval=true
username: yzzx
password: yzzx123!@#
url: ${spring.datasource.url}
username: ${spring.datasource.username}
password: ${spring.datasource.password}
driver-class-name: com.mysql.cj.jdbc.Driver
devtools:
restart:
......
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