| | |
| | | int updateSettle(@Param("orderId")Long orderId, @Param("settle")Long settle, @Param("userId")Long userId); |
| | | |
| | | List<Order> selectComplete(); |
| | | List<Order> selectComplete8(); |
| | | |
| | | int addToLogTable(Order order); |
| | | |
| | |
| | | void remove(Long orderId); |
| | | |
| | | List<Order> selectComplete(); |
| | | List<Order> selectComplete8(); |
| | | |
| | | boolean addToLogTable(Order order); |
| | | |
| | |
| | | } |
| | | |
| | | @Override |
| | | public List<Order> selectComplete8() { |
| | | return this.baseMapper.selectComplete8(); |
| | | } |
| | | |
| | | @Override |
| | | public boolean addToLogTable(Order order) { |
| | | return this.baseMapper.addToLogTable(order) > 0; |
| | | } |
| | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * Created by vincent on 2020/7/7 |
| | | * Created by vincent on 2023/10/21 |
| | | */ |
| | | @Slf4j |
| | | @Component |
| | |
| | | private ReviewOrderSyncHandler reviewOrderSyncHandler; |
| | | @Autowired |
| | | private OrderService orderService; |
| | | @Autowired |
| | | private ApiLogService apiLogService; |
| | | |
| | | @Value("${erp.switch.ReviewOrderSwitch}") |
| | | private boolean ReviewOrderSwitch; |
| | | // @Scheduled(cron = "0 0 1 * * ? ") |
| | | public void clearApiLog(){ |
| | | try { |
| | | apiLogService.clearWeekBefore(); |
| | | } catch (Exception e) { |
| | | log.error("第三方接口日志自动清除失败(范围:一周之前", e); |
| | | } |
| | | } |
| | | |
| | | @Scheduled(cron = "0/3 * * * * ? ") |
| | | @Async("orderThreadPool") |
| | |
| | | for (Order order : orders) { |
| | | ReturnT<String> result = reviewOrderSyncHandler.start(order); |
| | | if (!result.isSuccess()) { |
| | | log.error("单据[orderNo={}]上报erp失败", order.getOrderNo()); |
| | | log.error("单据[orderNo={}]向erp审核失败", order.getOrderNo()); |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | package com.zy.asrs.task.kingdee; |
| | | |
| | | import com.zy.asrs.entity.Order; |
| | | import com.zy.asrs.service.OrderService; |
| | | import com.zy.asrs.task.core.ReturnT; |
| | | import com.zy.asrs.task.kingdee.handler.SubmitOrderSyncHandler; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.scheduling.annotation.Async; |
| | | import org.springframework.scheduling.annotation.Scheduled; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * Created by Monkey D. Luffy on 2023.10.21 |
| | | */ |
| | | @Slf4j |
| | | @Component |
| | | public class SaveOrderSyncScheduler { |
| | | |
| | | @Autowired |
| | | private SubmitOrderSyncHandler submitOrderSyncHandler; |
| | | @Autowired |
| | | private OrderService orderService; |
| | | |
| | | @Value("${erp.switch.ReviewOrderSwitch}") |
| | | private boolean ReviewOrderSwitch; |
| | | |
| | | // @Scheduled(cron = "0/3 * * * * ? ") |
| | | @Async("orderThreadPool") |
| | | public void completeAndReport(){ |
| | | if (1==1) return; |
| | | if(!ReviewOrderSwitch){ |
| | | return; |
| | | } |
| | | List<Order> orders = orderService.selectComplete8(); |
| | | for (Order order : orders) { |
| | | ReturnT<String> result = submitOrderSyncHandler.start(order); |
| | | if (!result.isSuccess()) { |
| | | log.error("单据[orderNo={}]提交至erp失败", order.getOrderNo()); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.zy.asrs.task.kingdee; |
| | | |
| | | import com.zy.asrs.entity.Order; |
| | | import com.zy.asrs.service.ApiLogService; |
| | | import com.zy.asrs.service.OrderService; |
| | | import com.zy.asrs.task.core.ReturnT; |
| | | import com.zy.asrs.task.kingdee.handler.ReviewOrderSyncHandler; |
| | | import com.zy.asrs.task.kingdee.handler.SaveOrderSyncHandler; |
| | | import com.zy.asrs.task.kingdee.handler.SubmitOrderSyncHandler; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.scheduling.annotation.Async; |
| | | import org.springframework.scheduling.annotation.Scheduled; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * Created by Monkey D. Luffy on 2023.10.21 |
| | | */ |
| | | @Slf4j |
| | | @Component |
| | | public class SubmitOrderSyncScheduler { |
| | | |
| | | @Autowired |
| | | private SaveOrderSyncHandler saveOrderSyncHandler; |
| | | @Autowired |
| | | private OrderService orderService; |
| | | |
| | | @Value("${erp.switch.ReviewOrderSwitch}") |
| | | private boolean ReviewOrderSwitch; |
| | | |
| | | @Scheduled(cron = "0/3 * * * * ? ") |
| | | @Async("orderThreadPool") |
| | | public void completeAndReport(){ |
| | | if(!ReviewOrderSwitch){ |
| | | return; |
| | | } |
| | | List<Order> orders = orderService.selectComplete8(); |
| | | for (Order order : orders) { |
| | | ReturnT<String> result = saveOrderSyncHandler.start(order); |
| | | if (!result.isSuccess()) { |
| | | log.error("单据[orderNo={}]保存至erp失败", order.getOrderNo()); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | //端口 |
| | | private String URL; |
| | | |
| | | @Value("${erp.address.outaddress}") |
| | | @Value("${erp.address.outaddressAudit}") |
| | | //审核地址 |
| | | private String outaddress; |
| | | private String outaddressAudit; |
| | | |
| | | @Autowired |
| | | private OrderService orderService; |
| | |
| | | response = new HttpHandler.Builder() |
| | | .setHeaders(headers) |
| | | .setUri(URL) |
| | | .setPath(outaddress) |
| | | .setPath(outaddressAudit) |
| | | .setJson(add) |
| | | .build() |
| | | .doPost(); |
| | | JSONObject data = JSON.parseObject(response); |
| | | Object IsSuccess = findValueByKey(JSON.parseObject(response), "IsSuccess"); |
| | | String bool=IsSuccess.toString(); |
| | | //上报完成订单4转6 |
| | | //审核完成原订单4转8 8.审核完成 |
| | | if(bool.equals("true")){ |
| | | success = true; |
| | | order.setSettle(6L); |
| | | order.setSettle(8L); |
| | | orderService.update(order,new EntityWrapper<Order>().eq("order_no",order.getOrderNo())); |
| | | } |
| | | } catch (Exception e) { |
| | |
| | | // 保存接口日志 |
| | | apiLogService.save( |
| | | "审核", |
| | | URL+ outaddress, |
| | | URL+ outaddressAudit, |
| | | null, |
| | | "127.0.0.1", |
| | | add, |
New file |
| | |
| | | package com.zy.asrs.task.kingdee.handler; |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.zy.asrs.entity.DocType; |
| | | import com.zy.asrs.entity.Order; |
| | | import com.zy.asrs.service.ApiLogService; |
| | | import com.zy.asrs.service.DocTypeService; |
| | | import com.zy.asrs.service.OrderService; |
| | | import com.zy.asrs.task.AbstractHandler; |
| | | import com.zy.asrs.task.core.ReturnT; |
| | | import com.zy.common.utils.HttpHandler; |
| | | import com.zy.erp.kingdee.enums.KingDeeUtilType; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.HashMap; |
| | | import java.util.Set; |
| | | |
| | | /** |
| | | * Created by Monkey D. Luffy on 2023.10.21 |
| | | */ |
| | | @Slf4j |
| | | @Service |
| | | public class SaveOrderSyncHandler extends AbstractHandler<String> { |
| | | @Value("${erp.address.URL}") |
| | | //端口 |
| | | private String URL; |
| | | |
| | | @Value("${erp.address.outaddressSave}") |
| | | //审核地址 |
| | | private String outaddressSave; |
| | | |
| | | @Autowired |
| | | private OrderService orderService; |
| | | @Autowired |
| | | private ApiLogService apiLogService; |
| | | @Autowired |
| | | private DocTypeService docTypeService; |
| | | @Autowired |
| | | private LoginAuthenticationHandler loginAuthenticationHandler; |
| | | |
| | | @Transactional |
| | | public ReturnT<String> start(Order order) { |
| | | //登录金蝶r |
| | | ReturnT<String> start = loginAuthenticationHandler.start(); |
| | | DocType docType = docTypeService.selectById(order.getDocType()); |
| | | if (null == docType) { |
| | | return SUCCESS; |
| | | } |
| | | KingDeeUtilType kingDeeUtilType = KingDeeUtilType.get(docType.getDocName()); |
| | | |
| | | //条件拼接 |
| | | JSONObject jsonObject = new JSONObject(); |
| | | jsonObject.put("Numbers",order.getOrderNo()); |
| | | JSONObject jsonObject1 = new JSONObject(); |
| | | jsonObject1.put("data", jsonObject); |
| | | jsonObject1.put("FormId",kingDeeUtilType.correspondingFormId); |
| | | String add = jsonObject1.toJSONString(); |
| | | //上报 |
| | | String response = ""; |
| | | boolean success = false; |
| | | try { |
| | | //获取Cookie值 |
| | | HashMap<String, Object> headers = new HashMap<>(); |
| | | headers.put("Cookie", start.getContent()); |
| | | response = new HttpHandler.Builder() |
| | | .setHeaders(headers) |
| | | .setUri(URL) |
| | | .setPath(outaddressSave) |
| | | .setJson(add) |
| | | .build() |
| | | .doPost(); |
| | | JSONObject data = JSON.parseObject(response); |
| | | Object IsSuccess = findValueByKey(JSON.parseObject(response), "IsSuccess"); |
| | | String bool=IsSuccess.toString(); |
| | | //保存完成原订单8转6 |
| | | if(bool.equals("true")){ |
| | | success = true; |
| | | order.setSettle(6L); |
| | | orderService.update(order,new EntityWrapper<Order>().eq("order_no",order.getOrderNo())); |
| | | } |
| | | } catch (Exception e) { |
| | | log.error("fail", e); |
| | | // TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | return FAIL.setMsg(e.getMessage()); |
| | | } finally { |
| | | try { |
| | | // 保存接口日志 |
| | | apiLogService.save( |
| | | "保存", |
| | | URL+ outaddressSave, |
| | | null, |
| | | "127.0.0.1", |
| | | add, |
| | | response, |
| | | success |
| | | ); |
| | | } catch (Exception e) { |
| | | log.error("", e); |
| | | } |
| | | } |
| | | return SUCCESS; |
| | | } |
| | | public static Object findValueByKey(JSONObject json, String key) { |
| | | Set<String> keySet = json.keySet(); |
| | | for (String k : keySet) { |
| | | Object v = json.get(k); |
| | | if (k.equals(key)) { |
| | | return v; |
| | | } else if (v instanceof JSONArray) { |
| | | int size = ((JSONArray) v).size(); |
| | | for (int i = 0; i <= size - 1; i++) { |
| | | Object result = findValueByKey((JSONObject) ((JSONArray) v).get(i), key); |
| | | if (result != null){ |
| | | return result; |
| | | } |
| | | } |
| | | } else if (v instanceof JSONObject){ |
| | | Object result = findValueByKey((JSONObject) v, key); |
| | | if (result != null){ |
| | | return result; |
| | | } |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | } |
New file |
| | |
| | | package com.zy.asrs.task.kingdee.handler; |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.zy.asrs.entity.DocType; |
| | | import com.zy.asrs.entity.Order; |
| | | import com.zy.asrs.service.ApiLogService; |
| | | import com.zy.asrs.service.DocTypeService; |
| | | import com.zy.asrs.service.OrderService; |
| | | import com.zy.asrs.task.AbstractHandler; |
| | | import com.zy.asrs.task.core.ReturnT; |
| | | import com.zy.common.utils.HttpHandler; |
| | | import com.zy.erp.kingdee.enums.KingDeeUtilType; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.HashMap; |
| | | import java.util.Set; |
| | | |
| | | /** |
| | | * Created by Monkey D. Luffy on 2023.10.21 |
| | | */ |
| | | @Slf4j |
| | | @Service |
| | | public class SubmitOrderSyncHandler extends AbstractHandler<String> { |
| | | @Value("${erp.address.URL}") |
| | | //端口 |
| | | private String URL; |
| | | |
| | | @Value("${erp.address.outaddressSubmit}") |
| | | //审核地址 |
| | | private String outaddressSubmit; |
| | | |
| | | @Autowired |
| | | private OrderService orderService; |
| | | @Autowired |
| | | private ApiLogService apiLogService; |
| | | @Autowired |
| | | private DocTypeService docTypeService; |
| | | @Autowired |
| | | private LoginAuthenticationHandler loginAuthenticationHandler; |
| | | |
| | | @Transactional |
| | | public ReturnT<String> start(Order order) { |
| | | //登录金蝶r |
| | | ReturnT<String> start = loginAuthenticationHandler.start(); |
| | | DocType docType = docTypeService.selectById(order.getDocType()); |
| | | if (null == docType) { |
| | | return SUCCESS; |
| | | } |
| | | KingDeeUtilType kingDeeUtilType = KingDeeUtilType.get(docType.getDocName()); |
| | | |
| | | //条件拼接 |
| | | JSONObject jsonObject = new JSONObject(); |
| | | jsonObject.put("Numbers",order.getOrderNo()); |
| | | JSONObject jsonObject1 = new JSONObject(); |
| | | jsonObject1.put("data", jsonObject); |
| | | jsonObject1.put("FormId",kingDeeUtilType.correspondingFormId); |
| | | String add = jsonObject1.toJSONString(); |
| | | //上报 |
| | | String response = ""; |
| | | boolean success = false; |
| | | try { |
| | | //获取Cookie值 |
| | | HashMap<String, Object> headers = new HashMap<>(); |
| | | headers.put("Cookie", start.getContent()); |
| | | response = new HttpHandler.Builder() |
| | | .setHeaders(headers) |
| | | .setUri(URL) |
| | | .setPath(outaddressSubmit) |
| | | .setJson(add) |
| | | .build() |
| | | .doPost(); |
| | | JSONObject data = JSON.parseObject(response); |
| | | Object IsSuccess = findValueByKey(JSON.parseObject(response), "IsSuccess"); |
| | | String bool=IsSuccess.toString(); |
| | | //审核完成原订单8转6 |
| | | if(bool.equals("true")){ |
| | | success = true; |
| | | order.setSettle(6L); |
| | | orderService.update(order,new EntityWrapper<Order>().eq("order_no",order.getOrderNo())); |
| | | } |
| | | } catch (Exception e) { |
| | | log.error("fail", e); |
| | | // TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | return FAIL.setMsg(e.getMessage()); |
| | | } finally { |
| | | try { |
| | | // 保存接口日志 |
| | | apiLogService.save( |
| | | "提交", |
| | | URL+ outaddressSubmit, |
| | | null, |
| | | "127.0.0.1", |
| | | add, |
| | | response, |
| | | success |
| | | ); |
| | | } catch (Exception e) { |
| | | log.error("", e); |
| | | } |
| | | } |
| | | return SUCCESS; |
| | | } |
| | | public static Object findValueByKey(JSONObject json, String key) { |
| | | Set<String> keySet = json.keySet(); |
| | | for (String k : keySet) { |
| | | Object v = json.get(k); |
| | | if (k.equals(key)) { |
| | | return v; |
| | | } else if (v instanceof JSONArray) { |
| | | int size = ((JSONArray) v).size(); |
| | | for (int i = 0; i <= size - 1; i++) { |
| | | Object result = findValueByKey((JSONObject) ((JSONArray) v).get(i), key); |
| | | if (result != null){ |
| | | return result; |
| | | } |
| | | } |
| | | } else if (v instanceof JSONObject){ |
| | | Object result = findValueByKey((JSONObject) v, key); |
| | | if (result != null){ |
| | | return result; |
| | | } |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | } |
| | |
| | | public enum KingDeeUtilType { |
| | | BD_MATERIAL(0, "物料档案","BD_MATERIAL","","","",1), |
| | | // STK_InStock(1, "采购入库单","STK_InStock","FRealQty","","",1), |
| | | // PUR_MRB(2, "采购退料","PUR_MRB","FRMREALQTY","","",1), |
| | | // PRD_PickMtrl(3, "生产领料","PRD_PickMtrl","FActualQty","","",1), |
| | | // PRD_ReturnMtrl(4, "生产退料","PRD_ReturnMtrl","FQty","","",1), |
| | | // PRD_FeedMtrl(5, "生产补料","PRD_FeedMtrl","FActualQty","","",1), |
| | | // PUR_MRB(2, "采购退料单","PUR_MRB","FRMREALQTY","","",1), |
| | | // PRD_PickMtrl(3, "生产领料单","PRD_PickMtrl","FActualQty","","",1), |
| | | // PRD_ReturnMtrl(4, "生产退料单","PRD_ReturnMtrl","FQty","","",1), |
| | | // PRD_FeedMtrl(5, "生产补料单","PRD_FeedMtrl","FActualQty","","",1), |
| | | // STK_TransferDirect(6, "直接调拨单","STK_TransferDirect","","FQty","",1), |
| | | // STK_StockCountGain(7, "盘盈单","STK_StockCountGain","FGainQty","","",1), |
| | | // STK_StockCountLoss(8, "盘亏单","STK_StockCountLoss","FLossQty","","",1), |
| | | // STK_MisDelivery(9, "其他出库单","STK_MisDelivery","FQty","","",1), |
| | | // SP_PickMtrl(10, "简单生产领料","SP_PickMtrl","FActualQty","","",1), |
| | | // SP_ReturnMtrl(11, "简单生产退料","SP_ReturnMtrl","FQty","","",1), |
| | | // SP_PickMtrl(10, "简单生产领料单","SP_PickMtrl","FActualQty","","",1), |
| | | // SP_ReturnMtrl(11, "简单生产退料单","SP_ReturnMtrl","FQty","","",1), |
| | | // SAL_OUTSTOCK(12, "销售出库单","SAL_OUTSTOCK","FRealQty","","",1), |
| | | // SAL_RETURNSTOCK(13, "销售退货","SAL_RETURNSTOCK","FRealQty","","",1), |
| | | // SAL_RETURNSTOCK(13, "销售退货单","SAL_RETURNSTOCK","FRealQty","","",1), |
| | | SAL_DELIVERYNOTICE(14, "发货通知单","SAL_DELIVERYNOTICE","","销售出库单","SAL_OUTSTOCK",0), |
| | | STK_MISCELLANEOUS(15, "其他入库单","STK_MISCELLANEOUS","","其他入库单","STK_MISCELLANEOUS",1), |
| | | // BD_Supplier(16, "供应商","BD_Supplier","","","",1), |
| | | PUR_ReceiveBill(17, "收料通知单","PUR_ReceiveBill","","采购入库单","STK_InStock",1), |
| | | PRD_MORPT(18, "生产汇报单","PRD_MORPT","","生产入库单","PRD_INSTOCK",1), |
| | | // PRD_INSTOCK(19, "生产入库单","PRD_INSTOCK","","","",1), |
| | | SAL_RETURNNOTICE(20, "退货通知单","SAL_RETURNNOTICE","","退货入库单","null",1), |
| | | SAL_RETURNNOTICE(20, "退货通知单","SAL_RETURNNOTICE","","销售退货单","SAL_RETURNSTOCK",1), |
| | | STK_OutStockApply(21, "出库申请单","STK_OutStockApply","","其他出库单","STK_MisDelivery",0), |
| | | ; |
| | | public Integer id; |
| | |
| | | erp: |
| | | # 开关 |
| | | switch: |
| | | InboundOrderSwitch: true |
| | | #获取单据开关 |
| | | InboundOrderSwitch: false |
| | | #登录接口开关 |
| | | LoginAuthenticationSwitch: false |
| | | #上报、审核单据开关 |
| | | ReviewOrderSwitch: false |
| | | # 地址 |
| | | address: |
| | |
| | | loginaddress: K3CLOUD/Kingdee.BOS.WebApi.ServicesStub.AuthService.ValidateUser.common.kdsvc |
| | | #单据,商品档案地址 |
| | | inaddress: K3CLOUD/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery.common.kdsvc |
| | | #结果上报(保存)单地址 |
| | | outaddressSave: K3CLOUD/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save.common.kdsvc |
| | | #结果上报(提交)单地址 |
| | | outaddressSubmit: K3Cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit.common.kdsvc |
| | | #结果上报(审核)单地址 |
| | | outaddress: K3CLOUD/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit.common.kdsvc |
| | | outaddressAudit: K3CLOUD/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit.common.kdsvc |
| | | # 登录账号管理 |
| | | login : |
| | | acctID: "647e849ab6fa0f" |
| | |
| | | order by create_time asc |
| | | </select> |
| | | |
| | | <select id="selectComplete8" resultMap="BaseResultMap"> |
| | | select top 5 * |
| | | from man_order |
| | | where 1=1 |
| | | and settle = 8 |
| | | and status = 1 |
| | | order by create_time asc |
| | | </select> |
| | | |
| | | <insert id="addToLogTable"> |
| | | INSERT INTO man_order_log SELECT * FROM man_order WHERE id = #{id} |
| | | </insert> |
| | |
| | | { |
| | | "code": 0 |
| | | ,"msg": "" |
| | | ,"count": "100" |
| | | ,"data": [{ |
| | | "prograss": "开会" |
| | | ,"time": "一小时" |
| | | ,"complete": "已完成" |
| | | ,"LAY_CHECKED": true |
| | | },{ |
| | | "prograss": "项目开发" |
| | | ,"time": "两小时" |
| | | ,"complete": "进行中" |
| | | ,"LAY_CHECKED": true |
| | | },{ |
| | | "prograss": "陪吃饭" |
| | | ,"time": "一小时" |
| | | ,"complete": "未完成" |
| | | },{ |
| | | "prograss": "修改小bug" |
| | | ,"time": "半小时" |
| | | ,"complete": "未完成" |
| | | },{ |
| | | "prograss": "修改大bug" |
| | | ,"time": "两小时" |
| | | ,"complete": "未完成" |
| | | },{ |
| | | "prograss": "修改小bug" |
| | | ,"time": "半小时" |
| | | ,"complete": "未完成" |
| | | },{ |
| | | "prograss": "修改大bug" |
| | | ,"time": "两小时" |
| | | ,"complete": "未完成" |
| | | }] |
| | | } |
| | | {"code":0,"msg":"","count":"100","data":[{"prograss":"开会","time":"一小时","complete":"已完成","LAY_CHECKED":true},{"prograss":"项目开发","time":"两小时","complete":"进行中","LAY_CHECKED":true},{"prograss":"陪吃饭","time":"一小时","complete":"未完成"},{"prograss":"修改小bug","time":"半小时","complete":"未完成"},{"prograss":"修改大bug","time":"两小时","complete":"未完成"},{"prograss":"修改小bug","time":"半小时","complete":"未完成"},{"prograss":"修改大bug","time":"两小时","complete":"未完成"}]} |
| | |
| | | { |
| | | "code": 0 |
| | | ,"msg": "" |
| | | ,"count": "100" |
| | | ,"data": [{ |
| | | "id": 111 |
| | | ,"title": "社区开始接受 “赞助商广告” 投放" |
| | | ,"username": "贤心" |
| | | ,"channel": "公告" |
| | | ,"href": "http://fly.layui.com/jie/15697/" |
| | | ,"crt": 61632 |
| | | },{ |
| | | "id": 222 |
| | | ,"title": "layui 一周年" |
| | | ,"username": "猫吃" |
| | | ,"channel": "讨论" |
| | | ,"href": "http://fly.layui.com/jie/16622/" |
| | | ,"crt": 61632 |
| | | },{ |
| | | "id": 333 |
| | | ,"title": "四个月的前端" |
| | | ,"username": "fd" |
| | | ,"channel": "分享" |
| | | ,"href": "http://fly.layui.com/jie/16651/" |
| | | ,"crt": 61632 |
| | | },{ |
| | | "id": 333 |
| | | ,"title": "如何评价LayUI和他的作者闲心" |
| | | ,"username": "纸飞机" |
| | | ,"channel": "提问" |
| | | ,"href": "http://fly.layui.com/jie/9352/" |
| | | ,"crt": 61632 |
| | | },{ |
| | | "id": 333 |
| | | ,"title": "如何评价LayUI和他的作者闲心" |
| | | ,"username": "纸飞机" |
| | | ,"channel": "提问" |
| | | ,"href": "http://fly.layui.com/jie/9352/" |
| | | ,"crt": 61632 |
| | | },{ |
| | | "id": 333 |
| | | ,"title": "如何评价LayUI和他的作者闲心" |
| | | ,"username": "纸飞机" |
| | | ,"channel": "提问" |
| | | ,"href": "http://fly.layui.com/jie/9352/" |
| | | ,"crt": 61632 |
| | | },{ |
| | | "id": 333 |
| | | ,"title": "如何评价LayUI和他的作者闲心" |
| | | ,"username": "纸飞机" |
| | | ,"channel": "提问" |
| | | ,"href": "http://fly.layui.com/jie/9352/" |
| | | ,"crt": 61632 |
| | | },{ |
| | | "id": 333 |
| | | ,"title": "如何评价LayUI和他的作者闲心" |
| | | ,"username": "纸飞机" |
| | | ,"channel": "提问" |
| | | ,"href": "http://fly.layui.com/jie/9352/" |
| | | ,"crt": 61632 |
| | | },{ |
| | | "id": 333 |
| | | ,"title": "如何评价LayUI和他的作者闲心" |
| | | ,"username": "纸飞机" |
| | | ,"channel": "提问" |
| | | ,"href": "http://fly.layui.com/jie/9352/" |
| | | ,"crt": 61632 |
| | | },{ |
| | | "id": 333 |
| | | ,"title": "如何评价LayUI和他的作者闲心" |
| | | ,"username": "纸飞机" |
| | | ,"channel": "提问" |
| | | ,"href": "http://fly.layui.com/jie/9352/" |
| | | ,"crt": 61632 |
| | | }] |
| | | } |
| | | {"code":0,"msg":"","count":"100","data":[{"id":111,"title":"社区开始接受 “赞助商广告” 投放","username":"贤心","channel":"公告","href":"http://fly.layui.com/jie/15697/","crt":61632},{"id":222,"title":"layui 一周年","username":"猫吃","channel":"讨论","href":"http://fly.layui.com/jie/16622/","crt":61632},{"id":333,"title":"四个月的前端","username":"fd","channel":"分享","href":"http://fly.layui.com/jie/16651/","crt":61632},{"id":333,"title":"如何评价LayUI和他的作者闲心","username":"纸飞机","channel":"提问","href":"http://fly.layui.com/jie/9352/","crt":61632},{"id":333,"title":"如何评价LayUI和他的作者闲心","username":"纸飞机","channel":"提问","href":"http://fly.layui.com/jie/9352/","crt":61632},{"id":333,"title":"如何评价LayUI和他的作者闲心","username":"纸飞机","channel":"提问","href":"http://fly.layui.com/jie/9352/","crt":61632},{"id":333,"title":"如何评价LayUI和他的作者闲心","username":"纸飞机","channel":"提问","href":"http://fly.layui.com/jie/9352/","crt":61632},{"id":333,"title":"如何评价LayUI和他的作者闲心","username":"纸飞机","channel":"提问","href":"http://fly.layui.com/jie/9352/","crt":61632},{"id":333,"title":"如何评价LayUI和他的作者闲心","username":"纸飞机","channel":"提问","href":"http://fly.layui.com/jie/9352/","crt":61632},{"id":333,"title":"如何评价LayUI和他的作者闲心","username":"纸飞机","channel":"提问","href":"http://fly.layui.com/jie/9352/","crt":61632}]} |
| | |
| | | { |
| | | "code": 0 |
| | | ,"msg": "" |
| | | ,"count": "100" |
| | | ,"data": [{ |
| | | "keywords": "贤心是男是女" |
| | | ,"frequency": 8520 |
| | | ,"userNums": 2216 |
| | | },{ |
| | | "keywords": "Java程序员能找到女朋友吗" |
| | | ,"frequency": 666 |
| | | ,"userNums": 333 |
| | | },{ |
| | | "keywords": "此表格是静态模拟数据" |
| | | ,"frequency": 666 |
| | | ,"userNums": 333 |
| | | },{ |
| | | "keywords": "layui官方教程" |
| | | ,"frequency": 666 |
| | | ,"userNums": 333 |
| | | },{ |
| | | "keywords": "layui官方教程" |
| | | ,"frequency": 666 |
| | | ,"userNums": 333 |
| | | },{ |
| | | "keywords": "layui官方教程" |
| | | ,"frequency": 666 |
| | | ,"userNums": 333 |
| | | },{ |
| | | "keywords": "layui官方教程" |
| | | ,"frequency": 666 |
| | | ,"userNums": 333 |
| | | },{ |
| | | "keywords": "layui官方教程" |
| | | ,"frequency": 666 |
| | | ,"userNums": 333 |
| | | },{ |
| | | "keywords": "layui官方教程" |
| | | ,"frequency": 666 |
| | | ,"userNums": 333 |
| | | },{ |
| | | "keywords": "layui官方教程" |
| | | ,"frequency": 666 |
| | | ,"userNums": 333 |
| | | }] |
| | | } |
| | | {"code":0,"msg":"","count":"100","data":[{"keywords":"贤心是男是女","frequency":8520,"userNums":2216},{"keywords":"Java程序员能找到女朋友吗","frequency":666,"userNums":333},{"keywords":"此表格是静态模拟数据","frequency":666,"userNums":333},{"keywords":"layui官方教程","frequency":666,"userNums":333},{"keywords":"layui官方教程","frequency":666,"userNums":333},{"keywords":"layui官方教程","frequency":666,"userNums":333},{"keywords":"layui官方教程","frequency":666,"userNums":333},{"keywords":"layui官方教程","frequency":666,"userNums":333},{"keywords":"layui官方教程","frequency":666,"userNums":333},{"keywords":"layui官方教程","frequency":666,"userNums":333}]} |